﻿/* ===== Custom Variables ===== */
:root {
    --primary: #4e73df;
    --success: #1cc88a;
    --warning: #f6c23e;
    --danger: #e74a3b;
    --info: #36b9cc;
    --dark: #5a5c69;
    --light-bg: #f8f9fc;
}

/* ===== General ===== */
body {
    font-family: 'Segoe UI', Tahoma, sans-serif;
    background-color: var(--light-bg);
    min-height: 100vh;
    display: flex;
    flex-direction: column;
}

main {
    flex: 1;
}

/* ===== Navbar ===== */
.navbar {
    background: linear-gradient(135deg, var(--primary) 0%, #224abe 100%) !important;
}

.navbar-brand {
    font-weight: 700;
    letter-spacing: 0.5px;
}

.nav-link.active {
    background-color: rgba(255, 255, 255, 0.2);
    border-radius: 8px;
}

/* ===== Cards ===== */
.card {
    border: none;
    border-radius: 15px;
    box-shadow: 0 2px 10px rgba(0,0,0,0.05);
    transition: transform 0.2s, box-shadow 0.2s;
}

    .card:hover {
        transform: translateY(-2px);
        box-shadow: 0 8px 25px rgba(0,0,0,0.1);
    }

.card-header {
    background-color: transparent;
    border-bottom: 1px solid rgba(0,0,0,0.05);
    border-radius: 15px 15px 0 0 !important;
    padding: 15px 20px;
    font-weight: 600;
}

/* ===== Stat Cards ===== */
.stat-card {
    border-radius: 15px;
    padding: 20px;
    color: white;
    text-align: center;
}

    .stat-card .icon {
        font-size: 2em;
        margin-bottom: 10px;
    }

    .stat-card .value {
        font-size: 2em;
        font-weight: 700;
    }

    .stat-card .label {
        font-size: 0.85em;
        opacity: 0.9;
    }

.bg-primary-gradient {
    background: linear-gradient(45deg, #4e73df, #224abe);
}

.bg-success-gradient {
    background: linear-gradient(45deg, #1cc88a, #13855c);
}

.bg-warning-gradient {
    background: linear-gradient(45deg, #f6c23e, #dda20a);
}

.bg-info-gradient {
    background: linear-gradient(45deg, #36b9cc, #258391);
}

/* ===== Tables ===== */
.table th {
    font-weight: 600;
    font-size: 0.85em;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    background-color: #f8f9fc;
}

.table td {
    vertical-align: middle;
}

/* ===== Buttons ===== */
.btn {
    border-radius: 10px;
    font-weight: 500;
    transition: all 0.2s;
}

    .btn:hover {
        transform: translateY(-1px);
        box-shadow: 0 4px 12px rgba(0,0,0,0.15);
    }

/* ===== Forms ===== */
.form-control, .form-select {
    border-radius: 10px;
    border: 2px solid #e3e6f0;
    padding: 10px 15px;
}

    .form-control:focus, .form-select:focus {
        border-color: var(--primary);
        box-shadow: 0 0 0 0.2rem rgba(78,115,223,0.15);
    }

.form-label {
    font-weight: 600;
    color: var(--dark);
    margin-bottom: 4px;
}

/* ===== Badges ===== */
.badge {
    padding: 6px 12px;
    border-radius: 8px;
    font-weight: 500;
}

/* ===== Alerts ===== */
.alert {
    border: none;
    border-radius: 15px;
}

/* ===== Nav Tabs ===== */
.nav-tabs .nav-link {
    border: none;
    border-radius: 10px 10px 0 0;
    color: var(--dark);
    font-weight: 500;
    padding: 12px 20px;
}

    .nav-tabs .nav-link.active {
        color: var(--primary);
        border-bottom: 3px solid var(--primary);
        background-color: transparent;
    }

/* ===== Pagination ===== */
.pagination .page-link {
    border-radius: 8px;
    margin: 0 3px;
    border: none;
    padding: 8px 16px;
}

.pagination .page-item.active .page-link {
    background: var(--primary);
}

/* ===== Progress ===== */
.progress {
    height: 10px;
    border-radius: 10px;
    background-color: #eaecf4;
}

.progress-bar {
    border-radius: 10px;
}

/* ===== Animations ===== */
@keyframes fadeIn {
    from {
        opacity: 0;
        transform: translateY(20px);
    }

    to {
        opacity: 1;
        transform: translateY(0);
    }
}

.fade-in {
    animation: fadeIn 0.4s ease;
}

@keyframes slideIn {
    from {
        transform: translateX(50px);
        opacity: 0;
    }

    to {
        transform: translateX(0);
        opacity: 1;
    }
}

.slide-in {
    animation: slideIn 0.3s ease;
}

/* ===== Responsive ===== */
@media (max-width: 768px) {
    .stat-card .value {
        font-size: 1.5em;
    }

    .table {
        font-size: 0.85em;
    }
}

/* ===== Print ===== */
@media print {
    .navbar, .footer, .btn, form {
        display: none !important;
    }
}

.ofooter:hover {
    transform: translateX(5px);
}