@import url('https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap');

*, *::before, *::after {
    box-sizing: border-box;
}

body {
    background-color: #f0f2f5;
    font-family: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
    font-size: 14px;
    color: #1e293b;
    margin: 0;
    padding: 0;
    overflow-x: hidden;
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
}

h1, h2, h3, h4, h5, h6 {
    font-weight: 700;
    letter-spacing: -0.02em;
    color: #0f172a;
}

#wrapper {
    display: flex;
    min-height: 100vh;
    width: 100%;
}

.sidebar {
    width: 250px;
    min-width: 250px;
    max-width: 250px;
    min-height: 100vh;
    position: fixed;
    left: 0;
    top: 0;
    z-index: 100;
    overflow-y: auto;
    background: linear-gradient(180deg, #07092b 0%, #0e1650 100%);
    transition: transform 0.3s cubic-bezier(0.4, 0, 0.2, 1);
}

.sidebar .nav-link {
    border-radius: 10px;
    margin: 2px 8px;
    padding: 11px 16px;
    font-size: 13.5px;
    font-weight: 500;
    color: rgba(255,255,255,0.65);
    transition: all 0.2s ease;
    letter-spacing: 0.01em;
}

.sidebar .nav-link i {
    font-size: 16px;
    width: 22px;
    text-align: center;
}

.sidebar .nav-link:hover {
    background-color: rgba(255,255,255,0.1);
    color: rgba(255,255,255,0.95);
}

.sidebar .nav-link.active {
    background: linear-gradient(135deg, rgba(59,130,246,0.25) 0%, rgba(59,130,246,0.15) 100%);
    color: #fff;
    font-weight: 600;
}

.main-content {
    margin-left: 250px;
    padding: 28px 32px;
    width: calc(100% - 250px);
    min-width: 0;
    flex: 1;
}

.main-content h4 {
    font-size: 1.35rem;
    font-weight: 700;
}

.card {
    border: none;
    border-radius: 14px;
    box-shadow: 0 1px 3px rgba(0,0,0,0.06), 0 4px 12px rgba(0,0,0,0.04);
}

.card-header {
    border-bottom: 1px solid #f1f5f9;
    font-weight: 600;
    font-size: 14px;
}

.stat-card {
    border: none;
    border-radius: 14px;
    box-shadow: 0 1px 3px rgba(0,0,0,0.06), 0 4px 12px rgba(0,0,0,0.04);
    transition: transform 0.2s ease, box-shadow 0.2s ease;
    overflow: hidden;
}

.stat-card:hover {
    transform: translateY(-2px);
    box-shadow: 0 4px 16px rgba(0,0,0,0.1);
}

.stat-card .card-body {
    padding: 22px;
}

.stat-card .stat-icon {
    width: 48px;
    height: 48px;
    border-radius: 12px;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 1.35rem;
}

.stat-card .stat-value {
    font-size: 1.5rem;
    font-weight: 800;
    letter-spacing: -0.03em;
    font-variant-numeric: tabular-nums;
}

.stat-card .text-muted {
    font-size: 12.5px;
    font-weight: 500;
    text-transform: uppercase;
    letter-spacing: 0.04em;
}

.table-container {
    background: #fff;
    border-radius: 14px;
    box-shadow: 0 1px 3px rgba(0,0,0,0.06), 0 4px 12px rgba(0,0,0,0.04);
    padding: 20px;
    width: 100%;
}

.data-toolbar {
    background: #fff;
    border-radius: 14px;
    box-shadow: 0 1px 3px rgba(0,0,0,0.06), 0 4px 12px rgba(0,0,0,0.04);
    padding: 16px 20px;
    margin-bottom: 16px;
}

.data-tabs .nav-tabs {
    border-bottom: 2px solid #e2e8f0;
    margin-bottom: 0;
}

.data-tabs .nav-link {
    border: none;
    border-bottom: 3px solid transparent;
    padding: 10px 18px;
    font-weight: 500;
    font-size: 13.5px;
    color: #64748b;
    transition: all 0.2s;
    white-space: nowrap;
}

.data-tabs .nav-link:hover {
    color: #3b82f6;
    border-bottom-color: #93c5fd;
    background: transparent;
}

.data-tabs .nav-link.active {
    color: #2563eb;
    border-bottom-color: #2563eb;
    background: transparent;
    font-weight: 600;
}

.data-tabs .badge {
    font-size: 0.68rem;
    font-weight: 600;
    vertical-align: middle;
    padding: 3px 7px;
    border-radius: 6px;
}

.data-table-wrap {
    background: #fff;
    border-radius: 14px;
    box-shadow: 0 1px 3px rgba(0,0,0,0.06), 0 4px 12px rgba(0,0,0,0.04);
    padding: 0;
    overflow: hidden;
    width: 100%;
}

.data-table-wrap .table-responsive {
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
    width: 100%;
}

.data-table-wrap table {
    width: 100%;
    margin-bottom: 0;
    font-size: 13px;
    table-layout: auto;
}

.data-table-wrap th {
    white-space: nowrap;
    font-weight: 600;
    font-size: 12px;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    color: #64748b;
    padding: 12px 14px;
    background: #f8fafc;
    border-bottom: 2px solid #e2e8f0;
    position: sticky;
    top: 0;
    z-index: 1;
}

.th-sort {
    cursor: pointer;
    user-select: none;
    position: relative;
    padding-right: 24px !important;
    transition: background 0.15s;
}

.th-sort:hover {
    background: #eef2f7;
}

.th-sort .sort-icon {
    position: absolute;
    right: 6px;
    top: 50%;
    transform: translateY(-50%);
    display: inline-flex;
    flex-direction: column;
    align-items: center;
    line-height: 1;
    gap: 0px;
    opacity: 0.3;
    font-size: 0.55rem;
    transition: opacity 0.15s;
}

.th-sort:hover .sort-icon {
    opacity: 0.5;
}

.th-sort.sort-asc .sort-icon,
.th-sort.sort-desc .sort-icon {
    opacity: 1;
}

.th-sort .sort-icon .arrow-up,
.th-sort .sort-icon .arrow-down {
    color: #94a3b8;
    transition: color 0.15s;
}

.th-sort.sort-asc .sort-icon .arrow-up {
    color: #2563eb;
}

.th-sort.sort-desc .sort-icon .arrow-down {
    color: #2563eb;
}

.data-table-wrap td {
    padding: 10px 14px;
    vertical-align: middle;
    white-space: nowrap;
    border-bottom: 1px solid #f1f5f9;
    color: #334155;
    font-size: 13px;
}

.data-table-wrap tbody tr:hover {
    background-color: #f8faff;
}

.data-table-wrap .cell-truncate {
    max-width: 180px;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.data-table-wrap .cell-id {
    width: 50px;
    color: #94a3b8;
    font-size: 12px;
    font-weight: 500;
}

.data-table-wrap .cell-amount {
    font-variant-numeric: tabular-nums;
    font-family: 'Inter', 'SF Mono', 'Cascadia Code', monospace;
    font-size: 13px;
    font-weight: 600;
    color: #0f172a;
}

.data-table-wrap .cell-action {
    width: 44px;
    text-align: center;
    padding: 4px 8px;
}

.data-pagination {
    padding: 12px 20px;
    border-top: 1px solid #f1f5f9;
    background: #fafbfc;
    border-radius: 0 0 14px 14px;
}

.data-pagination .pagination {
    margin: 0;
}

.data-pagination .page-link {
    font-size: 13px;
    font-weight: 500;
    padding: 5px 12px;
    border-radius: 8px;
    margin: 0 2px;
    border: 1px solid #e2e8f0;
    color: #475569;
    transition: all 0.15s;
}

.data-pagination .page-link:hover {
    background: #f1f5f9;
    border-color: #cbd5e1;
}

.data-pagination .page-item.active .page-link {
    background: #2563eb;
    border-color: #2563eb;
    font-weight: 600;
}

.login-container {
    min-height: 100vh;
    min-height: 100dvh;
    display: flex;
    align-items: center;
    justify-content: center;
    background: linear-gradient(135deg, #07092b 0%, #0e1650 45%, #151e6e 100%);
    padding: 16px;
}

.login-card {
    background: #fff;
    border-radius: 20px;
    padding: 44px 40px;
    width: 100%;
    max-width: 420px;
    box-shadow: 0 25px 60px rgba(0,0,0,0.35), 0 0 0 1px rgba(255,255,255,0.05);
}

.login-card h3 {
    color: #0f172a;
    font-weight: 800;
    font-size: 1.6rem;
    letter-spacing: -0.03em;
}

.login-card p.text-muted {
    font-size: 14px;
    color: #64748b !important;
}

.login-card .form-label {
    font-size: 13px;
    font-weight: 600;
    color: #334155;
    margin-bottom: 6px;
}

.login-card .input-group-text {
    background: #f8fafc;
    border: 1.5px solid #e2e8f0;
    border-right: none;
    color: #64748b;
    padding: 10px 14px;
}

.login-card .form-control {
    border: 1.5px solid #e2e8f0;
    border-left: none;
    padding: 10px 14px;
    font-size: 14px;
    font-weight: 500;
    transition: border-color 0.2s, box-shadow 0.2s;
}

.login-card .form-control:focus {
    border-color: #3b82f6;
    box-shadow: 0 0 0 3px rgba(59,130,246,0.15);
}

.login-card .form-control:focus + .input-group-text,
.login-card .input-group:focus-within .input-group-text {
    border-color: #3b82f6;
}

.login-card .btn-primary {
    background: linear-gradient(135deg, #2563eb 0%, #1d4ed8 100%);
    border: none;
    padding: 12px;
    font-size: 15px;
    font-weight: 600;
    border-radius: 10px;
    letter-spacing: 0.01em;
    transition: all 0.2s ease;
    box-shadow: 0 2px 8px rgba(37,99,235,0.3);
}

.login-card .btn-primary:hover {
    background: linear-gradient(135deg, #1d4ed8 0%, #1e40af 100%);
    box-shadow: 0 4px 16px rgba(37,99,235,0.4);
    transform: translateY(-1px);
}

.login-card .btn-primary:active {
    transform: translateY(0);
}

.badge-rank {
    font-size: 0.85rem;
    font-weight: 600;
    padding: 5px 10px;
    border-radius: 8px;
}

.btn {
    font-weight: 500;
    letter-spacing: 0.01em;
    border-radius: 8px;
    transition: all 0.15s ease;
}

.btn-sm {
    font-size: 13px;
    padding: 6px 14px;
}

.btn-primary {
    background: #2563eb;
    border-color: #2563eb;
}

.btn-primary:hover {
    background: #1d4ed8;
    border-color: #1d4ed8;
}

.btn-success {
    background: #059669;
    border-color: #059669;
}

.btn-success:hover {
    background: #047857;
    border-color: #047857;
}

.btn-danger {
    background: #dc2626;
    border-color: #dc2626;
}

.btn-danger:hover {
    background: #b91c1c;
    border-color: #b91c1c;
}

.alert {
    border-radius: 10px;
    font-size: 13.5px;
    font-weight: 500;
    border: none;
}

.alert-success {
    background: #ecfdf5;
    color: #065f46;
}

.alert-danger {
    background: #fef2f2;
    color: #991b1b;
}

.alert-warning {
    background: #fffbeb;
    color: #92400e;
}

.modal-content {
    border: none;
    border-radius: 16px;
    box-shadow: 0 25px 50px rgba(0,0,0,0.15);
}

.modal-header {
    border-radius: 16px 16px 0 0;
    padding: 16px 20px;
}

.modal-header h6 {
    font-weight: 600;
    font-size: 14px;
}

.modal-body {
    padding: 20px;
}

.modal-footer {
    border-top: 1px solid #f1f5f9;
    padding: 14px 20px;
}

.form-control, .form-select {
    font-size: 13.5px;
    border-radius: 8px;
    border: 1.5px solid #e2e8f0;
    padding: 8px 12px;
    transition: border-color 0.2s, box-shadow 0.2s;
}

.form-control:focus, .form-select:focus {
    border-color: #3b82f6;
    box-shadow: 0 0 0 3px rgba(59,130,246,0.12);
}

.form-label {
    font-size: 13px;
    font-weight: 600;
    color: #475569;
    margin-bottom: 5px;
}

.text-muted {
    color: #94a3b8 !important;
}

.progress {
    border-radius: 10px;
    background: #f1f5f9;
    overflow: hidden;
}

.progress-bar {
    border-radius: 10px;
    font-size: 12px;
    font-weight: 600;
}

.table {
    font-size: 13px;
}

.table th {
    font-size: 12px;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    color: #64748b;
}

.sidebar-toggle {
    display: none;
    position: fixed;
    top: 14px;
    left: 14px;
    z-index: 200;
    border: none;
    background: #0e1650;
    color: #fff;
    width: 42px;
    height: 42px;
    border-radius: 10px;
    font-size: 1.2rem;
    cursor: pointer;
    box-shadow: 0 4px 12px rgba(0,0,0,0.2);
    transition: all 0.2s;
}

.sidebar-toggle:hover {
    background: #151e6e;
    transform: scale(1.05);
}

.sidebar-overlay {
    display: none;
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: rgba(0,0,0,0.5);
    z-index: 99;
    backdrop-filter: blur(2px);
}

@media (max-width: 992px) {
    .sidebar {
        transform: translateX(-100%);
    }

    .sidebar.show {
        transform: translateX(0);
    }

    .sidebar-toggle {
        display: flex;
        align-items: center;
        justify-content: center;
    }

    .sidebar-overlay.show {
        display: block;
    }

    .main-content {
        margin-left: 0;
        width: 100%;
        padding: 16px;
        padding-top: 64px;
    }
}

@media (max-width: 576px) {
    .main-content {
        padding: 12px;
        padding-top: 58px;
    }

    .main-content h4 {
        font-size: 1.1rem;
    }

    .stat-card .stat-value {
        font-size: 1.2rem;
    }

    .stat-card .card-body {
        padding: 16px;
    }

    .data-toolbar {
        padding: 12px;
    }

    .data-toolbar .btn {
        font-size: 12px;
        padding: 5px 10px;
    }

    .data-table-wrap th,
    .data-table-wrap td {
        padding: 8px 10px;
        font-size: 12px;
    }

    .login-card {
        padding: 32px 24px;
        border-radius: 16px;
    }

    .login-card h3 {
        font-size: 1.3rem;
    }
}

body.dark-mode,
html.dark-mode body {
    background-color: #0f172a;
    color: #e2e8f0;
}

.dark-mode h1, .dark-mode h2, .dark-mode h3,
.dark-mode h4, .dark-mode h5, .dark-mode h6 {
    color: #f1f5f9;
}

.dark-mode .main-content {
    background: #0f172a;
}

.dark-mode .main-content h4 {
    color: #f1f5f9;
}

.dark-mode .card {
    background: #1e293b;
    box-shadow: 0 1px 3px rgba(0,0,0,0.3), 0 4px 12px rgba(0,0,0,0.2);
}

.dark-mode .card-header {
    background: #1e293b !important;
    border-bottom-color: #334155;
    color: #e2e8f0;
}

.dark-mode .card-header h6 {
    color: #e2e8f0;
}

.dark-mode .card-body {
    color: #cbd5e1;
}

.dark-mode .stat-card {
    background: #1e293b;
    box-shadow: 0 1px 3px rgba(0,0,0,0.3), 0 4px 12px rgba(0,0,0,0.2);
}

.dark-mode .stat-card:hover {
    box-shadow: 0 4px 16px rgba(0,0,0,0.4);
}

.dark-mode .stat-card .stat-value {
    color: #f1f5f9;
}

.dark-mode .stat-card .text-muted {
    color: #94a3b8 !important;
}

.dark-mode .data-toolbar {
    background: #1e293b;
    box-shadow: 0 1px 3px rgba(0,0,0,0.3), 0 4px 12px rgba(0,0,0,0.2);
}

.dark-mode .table-container {
    background: #1e293b;
    box-shadow: 0 1px 3px rgba(0,0,0,0.3);
}

.dark-mode .data-table-wrap {
    background: #1e293b;
    box-shadow: 0 1px 3px rgba(0,0,0,0.3);
}

.dark-mode .data-table-wrap th {
    background: #0f172a;
    color: #94a3b8;
    border-bottom-color: #334155;
}

.dark-mode .data-table-wrap td {
    color: #cbd5e1;
    border-bottom-color: #1e293b;
}

.dark-mode .data-table-wrap tbody tr:hover {
    background-color: #263347;
}

.dark-mode .table {
    color: #cbd5e1;
}

.dark-mode .table th {
    color: #94a3b8;
    background: #0f172a !important;
    border-bottom-color: #334155 !important;
}

.dark-mode .table td {
    border-bottom-color: #1e293b !important;
}

.dark-mode .table-hover > tbody > tr:hover {
    background-color: #263347;
    color: #e2e8f0;
}

.dark-mode .form-control,
.dark-mode .form-select {
    background-color: #0f172a;
    border-color: #334155;
    color: #e2e8f0;
}

.dark-mode .form-control:focus,
.dark-mode .form-select:focus {
    background-color: #0f172a;
    border-color: #3b82f6;
    color: #e2e8f0;
    box-shadow: 0 0 0 3px rgba(59,130,246,0.2);
}

.dark-mode .form-control::placeholder {
    color: #64748b;
}

.dark-mode .form-label {
    color: #94a3b8;
}

.dark-mode .input-group-text {
    background: #0f172a;
    border-color: #334155;
    color: #94a3b8;
}

.dark-mode .text-muted {
    color: #94a3b8 !important;
}

.dark-mode .form-label {
    color: #cbd5e1;
}

.dark-mode small.text-muted,
.dark-mode .small.text-muted {
    color: #94a3b8 !important;
}

.dark-mode .col-auto.text-muted {
    color: #94a3b8 !important;
}

.dark-mode .text-secondary {
    color: #94a3b8 !important;
}

.dark-mode .border,
.dark-mode .border-bottom {
    border-color: #334155 !important;
}

.dark-mode .dropdown-menu {
    background: #1e293b;
    border-color: #334155;
    color: #e2e8f0;
}

.dark-mode .dropdown-item {
    color: #cbd5e1;
}

.dark-mode .dropdown-item:hover {
    background: #334155;
    color: #f1f5f9;
}

.dark-mode .badge.bg-danger {
    background: #7f1d1d !important;
    color: #fecaca !important;
}

.dark-mode .badge.bg-primary {
    background: #1e3a5f !important;
    color: #93c5fd !important;
}

.dark-mode .badge.bg-success {
    background: #064e3b !important;
    color: #a7f3d0 !important;
}

.dark-mode .badge.bg-warning {
    background: #78350f !important;
    color: #fde68a !important;
}

.dark-mode .alert-success {
    background: #064e3b;
    color: #a7f3d0;
}

.dark-mode .alert-danger {
    background: #7f1d1d;
    color: #fecaca;
}

.dark-mode .alert-warning {
    background: #78350f;
    color: #fde68a;
}

.dark-mode .modal-content {
    background: #1e293b;
    color: #e2e8f0;
}

.dark-mode .modal-header {
    border-bottom-color: #334155;
}

.dark-mode .modal-footer {
    border-top-color: #334155;
}

.dark-mode .btn-close {
    filter: invert(1);
}

.dark-mode .nav-tabs {
    border-bottom-color: #334155 !important;
}

.dark-mode .data-tabs .nav-link {
    color: #94a3b8;
}

.dark-mode .data-tabs .nav-link:hover {
    color: #93c5fd;
    border-bottom-color: #60a5fa;
}

.dark-mode .data-tabs .nav-link.active {
    color: #3b82f6;
    border-bottom-color: #3b82f6;
}

.dark-mode .data-pagination {
    background: #0f172a;
    border-top-color: #334155;
}

.dark-mode .data-pagination .page-link {
    background: #1e293b;
    border-color: #334155;
    color: #cbd5e1;
}

.dark-mode .data-pagination .page-link:hover {
    background: #334155;
    border-color: #475569;
}

.dark-mode .data-pagination .page-item.active .page-link {
    background: #2563eb;
    border-color: #2563eb;
}

.dark-mode .progress {
    background: #334155;
}

.dark-mode .sidebar-toggle {
    background: #1e293b;
    box-shadow: 0 4px 12px rgba(0,0,0,0.4);
}

.dark-mode a {
    color: #60a5fa;
}

.dark-mode a.text-decoration-none {
    color: #cbd5e1;
}

.dark-mode .bg-white {
    background-color: #1e293b !important;
}

.dark-mode .th-sort:hover {
    background: #334155;
}

.dark-mode .login-container {
    background: linear-gradient(135deg, #020617 0%, #0f172a 40%, #0a1628 100%);
}

.dark-mode .login-card {
    background: #1e293b;
    box-shadow: 0 25px 60px rgba(0,0,0,0.5), 0 0 0 1px rgba(255,255,255,0.05);
}

.dark-mode .login-card h3 {
    color: #f1f5f9;
}

.dark-mode .login-card p.text-muted {
    color: #94a3b8 !important;
}

.dark-mode .login-card .form-label {
    color: #94a3b8;
}

.dark-mode .login-card .input-group-text {
    background: #0f172a;
    border-color: #334155;
    color: #64748b;
}

.dark-mode .login-card .form-control {
    background: #0f172a;
    border-color: #334155;
    color: #e2e8f0;
}

.dark-mode .login-card .form-control::placeholder {
    color: #475569;
}

.dark-mode .login-card .form-control:focus {
    border-color: #3b82f6;
    box-shadow: 0 0 0 3px rgba(59,130,246,0.2);
}

.dark-mode .theme-option {
    background: #0f172a;
    border-color: #334155 !important;
}

.dark-mode .theme-option.active {
    border-color: #2563eb !important;
}

.dark-mode .sidebar .nav-link {
    color: rgba(255,255,255,0.65);
}

/* ── Tag Input Widget ─────────────────────────────────── */
.tag-input-wrapper {
    display: flex;
    flex-wrap: wrap;
    gap: 4px;
    padding: 3px 6px;
    min-height: 32px;
    height: auto;
    cursor: text;
    align-items: center;
    border-radius: 6px;
    border: 1px solid #d1d5db;
    background: #fff;
    transition: border-color .15s, box-shadow .15s;
}
.tag-input-wrapper:focus-within {
    border-color: #2563eb;
    box-shadow: 0 0 0 3px rgba(37,99,235,.15);
    outline: none;
}
.tag-chip {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    background: #eff6ff;
    color: #1d4ed8;
    border: 1px solid #bfdbfe;
    border-radius: 4px;
    padding: 1px 6px;
    font-size: 12px;
    font-weight: 500;
    white-space: nowrap;
    line-height: 1.6;
}
.tag-rm {
    cursor: pointer;
    font-size: 14px;
    line-height: 1;
    color: #3b82f6;
    margin-left: 2px;
    padding: 0 1px;
    border-radius: 2px;
}
.tag-rm:hover { color: #dc2626; }
.tag-text-input {
    border: none;
    outline: none;
    flex: 1;
    min-width: 70px;
    padding: 0;
    background: transparent;
    font-size: 13px;
    color: #1e293b;
    font-family: inherit;
}
.tag-text-input::placeholder { color: #94a3b8; }
.tag-dropdown {
    position: absolute;
    top: calc(100% + 2px);
    left: 0;
    right: 0;
    background: #fff;
    border: 1px solid #e2e8f0;
    border-radius: 8px;
    box-shadow: 0 6px 20px rgba(0,0,0,.1);
    z-index: 9999;
    max-height: 220px;
    overflow-y: auto;
    display: none;
}
.tag-drop-item {
    padding: 7px 12px;
    cursor: pointer;
    font-size: 13px;
    color: #1e293b;
    transition: background .1s;
}
.tag-drop-item:hover,
.tag-drop-item:focus { background: #eff6ff; outline: none; }
.tag-drop-item:first-child { border-radius: 8px 8px 0 0; }
.tag-drop-item:last-child  { border-radius: 0 0 8px 8px; }

/* Dark mode */
.dark-mode .tag-input-wrapper { background: #0f172a; border-color: #334155; }
.dark-mode .tag-input-wrapper:focus-within { border-color: #3b82f6; box-shadow: 0 0 0 3px rgba(59,130,246,.2); }
.dark-mode .tag-chip { background: #1e3a5f; color: #93c5fd; border-color: #1d4ed8; }
.dark-mode .tag-rm { color: #60a5fa; }
.dark-mode .tag-rm:hover { color: #f87171; }
.dark-mode .tag-text-input { color: #e2e8f0; }
.dark-mode .tag-dropdown { background: #1e293b; border-color: #334155; }
.dark-mode .tag-drop-item { color: #e2e8f0; }
.dark-mode .tag-drop-item:hover,
.dark-mode .tag-drop-item:focus { background: #1e3a5f; }

/* ===== HORIZONTAL SCROLL HINTS FOR WIDE TABLES ===== */
.table-responsive,
[class*="table-responsive"],
div[style*="overflow-x:auto"],
div[style*="overflow-x: auto"] {
    position: relative;
    scrollbar-width: auto;
    scrollbar-color: #94a3b8 #f1f5f9;
}

/* Chunky always-visible horizontal scrollbar (chromium) */
.table-responsive::-webkit-scrollbar,
div[style*="overflow-x:auto"]::-webkit-scrollbar,
div[style*="overflow-x: auto"]::-webkit-scrollbar {
    height: 12px;
    width: 12px;
    background: #f1f5f9;
}
.table-responsive::-webkit-scrollbar-thumb,
div[style*="overflow-x:auto"]::-webkit-scrollbar-thumb,
div[style*="overflow-x: auto"]::-webkit-scrollbar-thumb {
    background: linear-gradient(180deg,#64748b,#475569);
    border-radius: 8px;
    border: 2px solid #f1f5f9;
}
.table-responsive::-webkit-scrollbar-thumb:hover,
div[style*="overflow-x:auto"]::-webkit-scrollbar-thumb:hover,
div[style*="overflow-x: auto"]::-webkit-scrollbar-thumb:hover {
    background: linear-gradient(180deg,#0ea5e9,#0369a1);
}
.table-responsive::-webkit-scrollbar-track,
div[style*="overflow-x:auto"]::-webkit-scrollbar-track,
div[style*="overflow-x: auto"]::-webkit-scrollbar-track {
    background: #f1f5f9;
    border-radius: 8px;
}

/* Wrapper that adds a "more →" gradient hint on right edge when overflows */
.scroll-x-wrap {
    position: relative;
}
.scroll-x-wrap::after { content: none; display: none; }

/* Floating scroll-arrow buttons for wide tables */
.scroll-x-wrap .scroll-x-btn {
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    width: 32px;
    height: 32px;
    border-radius: 50%;
    background: rgba(15,23,42,.85);
    color: #fff;
    border: none;
    font-size: 16px;
    box-shadow: 0 4px 12px rgba(0,0,0,.25);
    cursor: pointer;
    z-index: 5;
    display: none;
    align-items: center;
    justify-content: center;
    transition: background .15s, transform .15s;
}
.scroll-x-wrap .scroll-x-btn:hover { background: #0ea5e9; transform: translateY(-50%) scale(1.08);}
.scroll-x-wrap .scroll-x-btn-left  { left: 6px; }
.scroll-x-wrap .scroll-x-btn-right { right: 6px; }
.scroll-x-wrap.has-overflow .scroll-x-btn { display: inline-flex; }
.scroll-x-wrap.scrolled-start .scroll-x-btn-left { display: none; }
.scroll-x-wrap.scrolled-end   .scroll-x-btn-right { display: none; }

/* Sticky first column for wide tables (opt-in via .table-sticky-first) */
.table-sticky-first thead th:first-child,
.table-sticky-first tbody td:first-child,
.table-sticky-first tfoot th:first-child,
.table-sticky-first tfoot td:first-child {
    position: sticky;
    left: 0;
    z-index: 2;
    background: #fff;
    box-shadow: 4px 0 6px -4px rgba(15,23,42,.15);
}
.table-sticky-first thead th:first-child { z-index: 4; background: #f8fafc; }

/* Dark mode overrides */
.dark-mode .table-responsive::-webkit-scrollbar,
.dark-mode div[style*="overflow-x:auto"]::-webkit-scrollbar,
.dark-mode div[style*="overflow-x: auto"]::-webkit-scrollbar { background: #1e293b; }
.dark-mode .table-responsive::-webkit-scrollbar-thumb,
.dark-mode div[style*="overflow-x:auto"]::-webkit-scrollbar-thumb,
.dark-mode div[style*="overflow-x: auto"]::-webkit-scrollbar-thumb {
    background: linear-gradient(180deg,#475569,#1e293b);
    border-color: #1e293b;
}
.dark-mode .table-responsive::-webkit-scrollbar-track,
.dark-mode div[style*="overflow-x:auto"]::-webkit-scrollbar-track,
.dark-mode div[style*="overflow-x: auto"]::-webkit-scrollbar-track { background: #1e293b; }
.dark-mode .scroll-x-wrap::after { display: none; }
.dark-mode .table-sticky-first thead th:first-child { background: #1e293b; }
.dark-mode .table-sticky-first tbody td:first-child { background: #0f172a; }

/* =============================================================
   THEME V2 — Modern professional refresh (appended overlay)
   ============================================================= */

:root {
    --bg:        #f5f7fb;
    --surface:   #ffffff;
    --surface-2: #f8fafc;
    --border:    #e6eaf2;
    --text:      #0f172a;
    --text-2:    #334155;
    --muted:     #64748b;
    --muted-2:   #94a3b8;

    --brand:     #0ea5e9;
    --brand-2:   #0369a1;
    --primary:   #2563eb;
    --primary-2: #1d4ed8;
    --success:   #10b981;
    --success-2: #047857;
    --warning:   #f59e0b;
    --warning-2: #b45309;
    --danger:    #ef4444;
    --danger-2:  #b91c1c;
    --purple:    #8b5cf6;
    --purple-2:  #6d28d9;

    --side-bg-1: #0b1220;
    --side-bg-2: #111c2f;
    --side-text: rgba(226,232,240,.78);
    --side-text-strong: #ffffff;
    --side-muted: rgba(148,163,184,.55);
    --side-active-bg: linear-gradient(135deg, rgba(14,165,233,.22), rgba(37,99,235,.18));
    --side-active-bar: #0ea5e9;

    --shadow-sm: 0 1px 2px rgba(15,23,42,.05);
    --shadow:    0 1px 3px rgba(15,23,42,.06), 0 6px 18px rgba(15,23,42,.05);
    --shadow-lg: 0 10px 30px rgba(15,23,42,.10), 0 4px 10px rgba(15,23,42,.05);
    --radius:    14px;
    --radius-sm: 10px;
}

body { background: var(--bg); }

/* ─── SIDEBAR V2 ─────────────────────────────────────────────── */
.sidebar {
    background: linear-gradient(180deg, var(--side-bg-1) 0%, var(--side-bg-2) 100%);
    color: var(--side-text);
    display: flex;
    flex-direction: column;
    padding: 0;
    box-shadow: 1px 0 0 rgba(255,255,255,.04), 4px 0 24px rgba(0,0,0,.18);
}

.sidebar-brand {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 20px 18px 18px;
    border-bottom: 1px solid rgba(255,255,255,.06);
}
.sidebar-brand-icon {
    width: 40px; height: 40px;
    border-radius: 12px;
    background: linear-gradient(135deg, var(--brand) 0%, var(--primary) 100%);
    color: #fff;
    display: flex; align-items: center; justify-content: center;
    font-size: 19px;
    box-shadow: 0 6px 18px rgba(14,165,233,.45);
    flex-shrink: 0;
}
.sidebar-brand-text .brand-title {
    color: #fff; font-weight: 700; font-size: 16px; letter-spacing: -.01em; line-height: 1.1;
}
.sidebar-brand-text .brand-sub {
    color: rgba(148,163,184,.7);
    font-size: 11.5px; margin-top: 2px; letter-spacing: .03em;
}

.sidebar-nav { padding: 12px 10px; flex: 1; overflow-y: auto; }

.sidebar-section-label {
    text-transform: uppercase;
    color: var(--side-muted);
    font-size: 10.5px;
    font-weight: 700;
    letter-spacing: .12em;
    padding: 14px 12px 6px;
}
.sidebar-section-label:first-child { padding-top: 4px; }

.sidebar-link {
    display: flex; align-items: center;
    padding: 9px 12px;
    margin: 2px 0;
    border-radius: 10px;
    font-size: 13.5px;
    font-weight: 500;
    color: var(--side-text);
    text-decoration: none;
    transition: background .15s ease, color .15s ease, transform .15s ease;
    position: relative;
    line-height: 1.25;
    gap: 10px;
}
.sidebar-link i {
    font-size: 15.5px; width: 20px; text-align: center;
    color: rgba(148,163,184,.85);
    transition: color .15s ease;
    flex-shrink: 0;
}
.sidebar-link span { flex: 1; }
.sidebar-link:hover {
    background: rgba(255,255,255,.05);
    color: #fff;
}
.sidebar-link:hover i { color: #cbd5e1; }
.sidebar-link.active {
    background: var(--side-active-bg);
    color: #fff; font-weight: 600;
}
.sidebar-link.active i { color: var(--brand); }
.sidebar-link.active::before {
    content: '';
    position: absolute; left: -10px; top: 8px; bottom: 8px;
    width: 3px; border-radius: 0 3px 3px 0;
    background: var(--side-active-bar);
    box-shadow: 0 0 12px rgba(14,165,233,.6);
}

.sidebar-footer {
    padding: 10px 10px 14px;
    border-top: 1px solid rgba(255,255,255,.06);
    display: flex; flex-direction: column; gap: 2px;
}
.sidebar-lang-btn {
    margin-top: 8px;
    background: rgba(255,255,255,.06);
    color: #fff;
    border: 1px solid rgba(255,255,255,.10);
    border-radius: 10px;
    padding: 8px 12px;
    font-size: 13px; font-weight: 600;
    text-align: left;
    transition: background .15s, border-color .15s;
}
.sidebar-lang-btn:hover {
    background: rgba(14,165,233,.18);
    border-color: rgba(14,165,233,.55);
    color: #fff;
}

/* Hide old bg-dark forced colors that may conflict */
.sidebar.bg-dark { background: linear-gradient(180deg, var(--side-bg-1) 0%, var(--side-bg-2) 100%) !important; }

/* ─── MAIN CONTENT / PAGE HEADER ──────────────────────────────── */
.main-content { padding: 24px 28px 36px; }

/* Top bar (h4 + user) refinement */
.main-content > .d-flex.justify-content-between.align-items-center.mb-4 {
    background: var(--surface);
    border: 1px solid var(--border);
    border-radius: var(--radius);
    padding: 14px 20px;
    box-shadow: var(--shadow-sm);
    margin-bottom: 20px !important;
}
.main-content > .d-flex.justify-content-between.align-items-center.mb-4 h4 {
    font-size: 1.2rem;
    margin: 0;
    color: var(--text);
    display: flex; align-items: center; gap: 10px;
}
.main-content > .d-flex.justify-content-between.align-items-center.mb-4 h4::before {
    content: '';
    display: inline-block;
    width: 4px; height: 22px;
    border-radius: 2px;
    background: linear-gradient(180deg, var(--brand), var(--primary));
}

/* ─── CARDS ─────────────────────────────────────────────────── */
.card {
    border: 1px solid var(--border);
    box-shadow: var(--shadow-sm);
    background: var(--surface);
}
.card-header {
    background: var(--surface);
    border-bottom: 1px solid var(--border);
    padding: 12px 16px;
}

/* ─── STAT CARDS ─ accent variants ──────────────────────────── */
.stat-card {
    border: 1px solid var(--border);
    background: var(--surface);
    position: relative;
}
.stat-card::before {
    content: '';
    position: absolute; top: 0; left: 0; right: 0;
    height: 3px;
    background: linear-gradient(90deg, var(--brand), var(--primary));
    border-radius: var(--radius) var(--radius) 0 0;
    opacity: .9;
}
.stat-card.accent-success::before { background: linear-gradient(90deg, var(--success), #34d399); }
.stat-card.accent-warning::before { background: linear-gradient(90deg, var(--warning), #fbbf24); }
.stat-card.accent-danger::before  { background: linear-gradient(90deg, var(--danger),  #f87171); }
.stat-card.accent-purple::before  { background: linear-gradient(90deg, var(--purple),  #a78bfa); }

.stat-card .stat-icon {
    box-shadow: inset 0 0 0 1px rgba(0,0,0,.04);
}

/* ─── BUTTONS ──────────────────────────────────────────────── */
.btn {
    border-radius: 10px;
    font-weight: 600;
    letter-spacing: .01em;
    transition: transform .12s ease, box-shadow .15s ease, background .15s ease;
}
.btn:active { transform: translateY(1px); }
.btn-primary {
    background: linear-gradient(135deg, var(--primary) 0%, var(--primary-2) 100%);
    border: none;
    box-shadow: 0 2px 6px rgba(37,99,235,.25);
}
.btn-primary:hover {
    background: linear-gradient(135deg, var(--primary-2) 0%, #1e40af 100%);
    box-shadow: 0 4px 14px rgba(37,99,235,.35);
}
.btn-success {
    background: linear-gradient(135deg, var(--success) 0%, var(--success-2) 100%);
    border: none;
    box-shadow: 0 2px 6px rgba(16,185,129,.25);
}
.btn-success:hover { background: linear-gradient(135deg, var(--success-2) 0%, #065f46 100%); }
.btn-danger {
    background: linear-gradient(135deg, var(--danger) 0%, var(--danger-2) 100%);
    border: none;
    box-shadow: 0 2px 6px rgba(239,68,68,.22);
}
.btn-danger:hover { background: linear-gradient(135deg, var(--danger-2) 0%, #991b1b 100%); }
.btn-outline-secondary {
    border-color: var(--border);
    color: var(--text-2);
    background: var(--surface);
}
.btn-outline-secondary:hover {
    background: var(--surface-2);
    border-color: #cbd5e1;
    color: var(--text);
}

/* ─── FORMS ──────────────────────────────────────────────── */
.form-control, .form-select {
    border: 1.5px solid var(--border);
    border-radius: 10px;
    background: var(--surface);
}
.form-control:focus, .form-select:focus {
    border-color: var(--primary);
    box-shadow: 0 0 0 3px rgba(37,99,235,.12);
}
input[type="date"].form-control { line-height: 1.2; }

/* ─── TABLES ─────────────────────────────────────────────── */
.data-table-wrap { border: 1px solid var(--border); }
.data-table-wrap th {
    background: var(--surface-2);
    color: var(--muted);
    border-bottom: 1px solid var(--border);
}
.data-table-wrap tbody tr:nth-child(even) td { background: rgba(248,250,252,.55); }
.data-table-wrap tbody tr:hover td { background: #eff6ff !important; }
.table > :not(caption) > * > * { background: transparent; }

/* ─── BADGES ───────────────────────────────────────────── */
.badge { font-weight: 600; letter-spacing: .02em; }
.badge.bg-warning { color: #78350f !important; }
.badge.bg-info    { color: #0c4a6e !important; }

/* ─── SCROLLBAR (page) ─────────────────────────────────── */
::-webkit-scrollbar { width: 10px; height: 10px; }
::-webkit-scrollbar-track { background: var(--bg); }
::-webkit-scrollbar-thumb { background: #cbd5e1; border-radius: 8px; border: 2px solid var(--bg); }
::-webkit-scrollbar-thumb:hover { background: #94a3b8; }

/* ─── DARK MODE OVERRIDES ─────────────────────────────── */
.dark-mode {
    --bg: #0a0f1c;
    --surface: #111827;
    --surface-2: #1e293b;
    --border: #1f2937;
    --text: #e5e7eb;
    --text-2: #cbd5e1;
    --muted: #94a3b8;
}
.dark-mode body { background: var(--bg); }
.dark-mode .card,
.dark-mode .stat-card,
.dark-mode .data-table-wrap,
.dark-mode .table-container {
    background: var(--surface);
    border-color: var(--border);
    color: var(--text);
}
.dark-mode .data-table-wrap th { background: #0f172a; color: #94a3b8; }
.dark-mode .data-table-wrap tbody tr:nth-child(even) td { background: rgba(15,23,42,.45); }
.dark-mode .data-table-wrap tbody tr:hover td { background: #1e3a5f !important; }
.dark-mode .form-control,
.dark-mode .form-select {
    background: #0f172a;
    border-color: #1f2937;
    color: var(--text);
}
.dark-mode .main-content > .d-flex.justify-content-between.align-items-center.mb-4 {
    background: var(--surface);
    border-color: var(--border);
}
.dark-mode .main-content > .d-flex.justify-content-between.align-items-center.mb-4 h4 { color: var(--text); }
.dark-mode ::-webkit-scrollbar-track { background: var(--bg); }
.dark-mode ::-webkit-scrollbar-thumb { background: #334155; border-color: var(--bg); }

/* =============================================================
   THEME V3 — Layout overhaul (richer top bar, container, KPI)
   ============================================================= */

.main-content {
    padding: 0;
    background: var(--bg);
    min-height: 100vh;
}

/* Fixed-width left padding compensation already provided by .sidebar (250px).
   Add inner page container with max width and consistent padding. */
.page-topbar,
.page-body {
    max-width: 1500px;
    margin: 0 auto;
    padding-left: 28px;
    padding-right: 28px;
}

.page-topbar {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: 24px;
    padding-top: 22px;
    padding-bottom: 18px;
    margin-bottom: 18px;
    border-bottom: 1px solid var(--border);
    background:
      radial-gradient(1200px 220px at 0% 0%, rgba(14,165,233,.06), transparent 60%),
      radial-gradient(900px 180px at 100% 0%, rgba(124,58,237,.05), transparent 60%);
    flex-wrap: wrap;
}

.page-breadcrumb {
    display: flex; align-items: center; gap: 8px;
    font-size: 12.5px;
    color: var(--muted);
    margin-bottom: 8px;
}
.page-breadcrumb a {
    color: var(--muted);
    text-decoration: none;
    display: inline-flex; align-items: center;
    transition: color .15s;
}
.page-breadcrumb a:hover { color: var(--primary); }
.page-breadcrumb .sep { font-size: 10px; opacity: .55; }
.page-breadcrumb .current { color: var(--text); font-weight: 600; }

.page-title-row {
    display: flex; align-items: center; gap: 14px;
}
.page-title-icon {
    width: 46px; height: 46px;
    border-radius: 12px;
    display: inline-flex; align-items: center; justify-content: center;
    background: linear-gradient(135deg, rgba(14,165,233,.15), rgba(37,99,235,.15));
    color: var(--primary);
    font-size: 22px;
    box-shadow: inset 0 0 0 1px rgba(37,99,235,.18);
    flex-shrink: 0;
}
.page-title {
    font-size: 22px;
    font-weight: 700;
    color: var(--text);
    letter-spacing: -.02em;
    line-height: 1.15;
    margin: 0;
}
.page-subtitle {
    margin: 3px 0 0;
    font-size: 13px;
    color: var(--muted);
    line-height: 1.35;
}

.page-topbar-actions {
    display: flex; align-items: center; gap: 10px;
}
.topbar-icon-btn {
    width: 38px; height: 38px;
    border-radius: 10px;
    display: inline-flex; align-items: center; justify-content: center;
    background: var(--surface);
    border: 1px solid var(--border);
    color: var(--text-2);
    font-size: 16px;
    cursor: pointer;
    transition: background .15s, border-color .15s, color .15s;
}
.topbar-icon-btn:hover {
    background: var(--surface-2);
    border-color: #cbd5e1;
    color: var(--primary);
}
.topbar-user {
    display: flex; align-items: center; gap: 10px;
    padding: 6px 12px 6px 6px;
    border-radius: 999px;
    background: var(--surface);
    border: 1px solid var(--border);
    text-decoration: none;
    color: var(--text);
    transition: background .15s, border-color .15s, transform .12s;
}
.topbar-user:hover { border-color: #cbd5e1; background: var(--surface-2); }
.topbar-user img,
.topbar-user .topbar-user-avatar {
    width: 32px; height: 32px;
    border-radius: 50%;
    object-fit: cover;
    background: linear-gradient(135deg, var(--brand), var(--primary));
    color: #fff;
    display: inline-flex; align-items: center; justify-content: center;
    font-weight: 700; font-size: 13px;
    flex-shrink: 0;
}
.topbar-user-name { font-size: 13px; font-weight: 600; line-height: 1.1; color: var(--text); }
.topbar-user-role { font-size: 11px; color: var(--muted); margin-top: 2px; }

/* Hide leftover wrapper if exists */
.main-content > .d-flex.justify-content-between.align-items-center.mb-4 { display: none; }

/* ─── PAGE BODY SPACING ──────────────────────────────────── */
.page-body { padding-bottom: 40px; }
.page-body > .row + .row,
.page-body > .card + .card,
.page-body > .row + .card,
.page-body > .card + .row { margin-top: 14px; }

/* ─── KPI / STAT CARDS — bigger, bolder ──────────────────── */
.dashboard-stats .stat-card { border-radius: 14px; transition: transform .15s ease, box-shadow .15s ease; }
.dashboard-stats .stat-card:hover { transform: translateY(-2px); box-shadow: var(--shadow); }
.dashboard-stats .stat-card .card-body { padding: 18px 18px 16px; }
.dashboard-stats .stat-card .stat-icon {
    width: 44px !important; height: 44px !important;
    border-radius: 12px;
    font-size: 1.35rem !important;
    display: inline-flex; align-items: center; justify-content: center;
}
.dashboard-stats .stat-card small.text-muted {
    font-size: 11.5px !important;
    letter-spacing: .08em !important;
    color: var(--muted) !important;
    font-weight: 600;
}
.dashboard-stats .stat-card .stat-value {
    font-size: 1.55rem !important;
    font-weight: 800 !important;
    letter-spacing: -.02em;
    line-height: 1.15;
    margin-top: 2px;
}

/* ─── FILTER CARD — make it a "toolbar" feel ─────────────── */
.page-body > .card.shadow-sm.mb-3:first-child {
    border: 1px solid var(--border);
    border-radius: 12px;
    background: linear-gradient(180deg, #fff 0%, #fafbfd 100%);
}
.page-body > .card.shadow-sm.mb-3:first-child .card-body { padding: 14px 18px; }

/* ─── SECTION CARD HEADERS ──────────────────────────────── */
.card-header.bg-white {
    background: var(--surface) !important;
    border-bottom: 1px solid var(--border) !important;
}
.card-header .fw-semibold { color: var(--text); }

/* ─── CHART/CONTENT CARD POLISH ─────────────────────────── */
.card.shadow-sm.border-0 { border: 1px solid var(--border) !important; }

/* ─── METRIC TOGGLE BUTTONS ─────────────────────────────── */
.metric-btn { border-radius: 999px !important; padding: 5px 14px !important; font-size: 12.5px !important; }

/* ─── TABLE WRAP ────────────────────────────────────────── */
.data-table-wrap { border-radius: 12px; }

/* ─── DARK MODE TOPBAR ──────────────────────────────────── */
.dark-mode .page-topbar { border-bottom-color: var(--border); background: transparent; }
.dark-mode .topbar-icon-btn,
.dark-mode .topbar-user { background: var(--surface); border-color: var(--border); color: var(--text); }
.dark-mode .topbar-icon-btn:hover { background: var(--surface-2); }
.dark-mode .page-title-icon { background: linear-gradient(135deg, rgba(14,165,233,.18), rgba(37,99,235,.18)); }
.dark-mode .page-title { color: var(--text); }
.dark-mode .page-body > .card.shadow-sm.mb-3:first-child {
    background: linear-gradient(180deg, var(--surface) 0%, var(--surface-2) 100%);
}

/* ─── RESPONSIVE ─────────────────────────────────────────── */
@media (max-width: 768px) {
    .page-topbar, .page-body { padding-left: 16px; padding-right: 16px; }
    .page-title { font-size: 18px; }
    .page-title-icon { width: 38px; height: 38px; font-size: 18px; }
    .topbar-user-meta { display: none; }
}

/* =================================================================
   THEME V4 — Premium top-nav layout (replaces left sidebar entirely)
   Premium indigo / violet palette · sophisticated app shell
   ================================================================= */

:root {
    --bg:        #f5f6fb;
    --surface:   #ffffff;
    --surface-2: #f1f3f9;
    --border:    #e3e7f0;
    --border-2:  #eef0f7;
    --text:      #0f1729;
    --text-2:    #2d3548;
    --muted:     #6b7693;
    --muted-2:   #9aa3b8;

    --primary:   #5b50ee;
    --primary-2: #4839c8;
    --primary-3: #3a2bb5;
    --violet:    #8b5cf6;
    --pink:      #ec4899;
    --cyan:      #06b6d4;
    --success:   #10b981;
    --warning:   #f59e0b;
    --danger:    #ef4444;

    --topnav-h:    66px;
    --topnav-bg:   linear-gradient(120deg, #0a0e1f 0%, #14163a 45%, #1c1d4f 100%);
    --topnav-fg:   rgba(226,232,240,.85);
    --topnav-fg-strong: #ffffff;
    --topnav-glow: 0 1px 0 rgba(139,92,246,.35), 0 12px 30px rgba(11,15,40,.45);

    --shadow-xs: 0 1px 1px rgba(15,23,42,.04);
    --shadow-sm: 0 1px 2px rgba(15,23,42,.05), 0 1px 3px rgba(15,23,42,.04);
    --shadow:    0 1px 3px rgba(15,23,42,.06), 0 8px 24px rgba(15,23,42,.06);
    --shadow-lg: 0 10px 30px rgba(15,23,42,.10), 0 4px 10px rgba(15,23,42,.05);
    --radius:    14px;
    --radius-sm: 10px;
}

/* ─── BODY backdrop with subtle premium gradient ───────────── */
body {
    background:
      radial-gradient(1200px 600px at 12% -10%, rgba(91,80,238,.07), transparent 55%),
      radial-gradient(900px 500px at 100% 0%,  rgba(236,72,153,.05), transparent 60%),
      var(--bg) !important;
    color: var(--text);
}

/* ─── KILL old sidebar layout ──────────────────────────────── */
#wrapper { display: block !important; min-height: auto !important; }
.sidebar,
.sidebar-toggle,
.sidebar-overlay { display: none !important; }

.main-content {
    margin-left: 0 !important;
    width: 100% !important;
    padding: 0 !important;
    background: transparent;
    min-height: calc(100vh - var(--topnav-h));
}

/* ============================================================
   APP TOP NAV
   ============================================================ */
.app-topnav {
    position: sticky; top: 0; z-index: 1030;
    height: var(--topnav-h);
    background: var(--topnav-bg);
    box-shadow: var(--topnav-glow);
    border-bottom: 1px solid rgba(255,255,255,.04);
    color: var(--topnav-fg);
}
.app-topnav::before {
    content: '';
    position: absolute; left: 0; right: 0; bottom: -1px; height: 1px;
    background: linear-gradient(90deg,
        transparent 0%,
        rgba(91,80,238,.45) 25%,
        rgba(236,72,153,.45) 60%,
        transparent 100%);
}

.topnav-inner {
    max-width: 1500px;
    height: 100%;
    margin: 0 auto;
    padding: 0 24px;
    display: flex; align-items: center;
    gap: 18px;
}

/* Brand */
.topnav-brand {
    display: flex; align-items: center; gap: 12px;
    text-decoration: none;
    color: #fff;
    flex-shrink: 0;
}
.brand-mark {
    width: 38px; height: 38px;
    border-radius: 11px;
    display: inline-flex; align-items: center; justify-content: center;
    background: #fff;
    color: #fff;
    font-size: 18px;
    box-shadow: 0 4px 14px rgba(15,23,42,.18), inset 0 1px 0 rgba(255,255,255,.6);
}
.brand-wordmark { display: flex; flex-direction: column; line-height: 1.05; }
.brand-name { font-weight: 700; font-size: 14.5px; color: #fff; letter-spacing: -.01em; }
.brand-sub  { font-size: 10.5px; color: rgba(148,163,184,.75); letter-spacing: .12em; text-transform: uppercase; margin-top: 2px; }

/* Menu */
.topnav-menu {
    display: flex; align-items: center;
    flex: 1;
    gap: 4px;
    margin-left: 14px;
}

.topnav-item {
    display: inline-flex; align-items: center; gap: 8px;
    height: 38px;
    padding: 0 12px;
    border-radius: 10px;
    background: transparent;
    border: 0;
    color: var(--topnav-fg);
    font-size: 13.5px;
    font-weight: 500;
    text-decoration: none;
    cursor: pointer;
    transition: background .15s ease, color .15s ease;
    position: relative;
}
.topnav-item i.bi:not(.chev) { font-size: 15px; opacity: .85; }
.topnav-item:hover { background: rgba(255,255,255,.07); color: #fff; }
.topnav-item:hover i.bi { opacity: 1; }
.topnav-item.active {
    background: rgba(255,255,255,.10);
    color: #fff;
}
.topnav-item.active::after {
    content: '';
    position: absolute; left: 12px; right: 12px; bottom: -10px;
    height: 2px;
    border-radius: 2px;
    background: linear-gradient(90deg, var(--primary), var(--violet), var(--pink));
    box-shadow: 0 0 10px rgba(139,92,246,.7);
}
.topnav-item .chev { font-size: 11px; opacity: .65; transition: transform .15s; }
.topnav-dd.show .topnav-item .chev,
.topnav-item-dd[aria-expanded="true"] .chev { transform: rotate(180deg); opacity: 1; }

/* Dropdown menu (shared with user menu) */
.topnav-dd-menu,
.topnav-user-menu {
    border: 1px solid var(--border) !important;
    border-radius: 14px !important;
    box-shadow: 0 20px 60px rgba(15,23,42,.18), 0 4px 14px rgba(15,23,42,.10) !important;
    padding: 8px !important;
    min-width: 280px;
    margin-top: 10px !important;
    background: var(--surface);
}
.topnav-dd-menu {
    min-width: 320px;
}
.topnav-dd-item {
    display: flex; align-items: flex-start; gap: 12px;
    padding: 9px 10px;
    border-radius: 10px;
    text-decoration: none;
    color: var(--text);
    transition: background .12s, color .12s;
}
.topnav-dd-item:hover { background: var(--surface-2); }
.topnav-dd-item.active { background: linear-gradient(135deg, rgba(91,80,238,.10), rgba(139,92,246,.07)); }
.topnav-dd-item.active .dd-label { color: var(--primary); }
.dd-icon {
    width: 36px; height: 36px;
    border-radius: 10px;
    background: linear-gradient(135deg, rgba(91,80,238,.10), rgba(139,92,246,.10));
    color: var(--primary);
    display: inline-flex; align-items: center; justify-content: center;
    font-size: 15px;
    flex-shrink: 0;
}
.dd-text { display: flex; flex-direction: column; line-height: 1.2; }
.dd-label { font-size: 13.5px; font-weight: 600; color: var(--text); }
.dd-sub   { font-size: 11.5px; color: var(--muted); margin-top: 2px; }

.topnav-user-menu .dropdown-item {
    border-radius: 8px;
    padding: 8px 12px;
    font-size: 13.5px;
}
.topnav-user-menu .dropdown-item:hover { background: var(--surface-2); }

/* Actions */
.topnav-actions { display: flex; align-items: center; gap: 8px; flex-shrink: 0; }
.topnav-icon-btn {
    width: 38px; height: 38px;
    border-radius: 10px;
    background: rgba(255,255,255,.06);
    border: 1px solid rgba(255,255,255,.08);
    color: rgba(255,255,255,.85);
    display: inline-flex; align-items: center; justify-content: center;
    font-size: 15px;
    cursor: pointer;
    transition: background .15s, border-color .15s, color .15s, transform .12s;
}
.topnav-icon-btn:hover { background: rgba(139,92,246,.18); border-color: rgba(139,92,246,.5); color: #fff; }
.topnav-icon-btn:active { transform: translateY(1px); }

.topnav-user {
    display: inline-flex; align-items: center; gap: 10px;
    padding: 5px 12px 5px 5px;
    height: 40px;
    border-radius: 999px;
    background: rgba(255,255,255,.06);
    border: 1px solid rgba(255,255,255,.08);
    color: #fff;
    cursor: pointer;
    transition: background .15s, border-color .15s;
}
.topnav-user:hover { background: rgba(139,92,246,.18); border-color: rgba(139,92,246,.5); }
.topnav-user img,
.topnav-user .user-mono {
    width: 30px; height: 30px;
    border-radius: 50%;
    object-fit: cover;
    background: linear-gradient(135deg, var(--primary), var(--violet));
    color: #fff;
    display: inline-flex; align-items: center; justify-content: center;
    font-weight: 700; font-size: 12.5px;
}
.topnav-user .user-name { font-size: 13px; font-weight: 600; max-width: 140px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.topnav-user .chev { font-size: 11px; opacity: .7; }

.topnav-mobile-toggle {
    display: none;
    width: 38px; height: 38px;
    border-radius: 10px;
    background: rgba(255,255,255,.08);
    border: 1px solid rgba(255,255,255,.10);
    color: #fff;
    font-size: 18px;
    align-items: center; justify-content: center;
}

/* ============================================================
   PAGE SHELL — page header + body container
   ============================================================ */
.page-topbar,
.page-body {
    max-width: 1500px;
    margin: 0 auto;
    padding-left: 24px; padding-right: 24px;
}
.page-topbar {
    display: flex; align-items: flex-end; justify-content: space-between;
    gap: 24px; flex-wrap: wrap;
    padding-top: 26px; padding-bottom: 18px;
    border-bottom: none;
    background: transparent;
    margin-bottom: 18px;
}
.page-topbar-actions { display: none; }
.page-topbar-info { width: 100%; }

.page-breadcrumb {
    display: flex; align-items: center; gap: 8px;
    font-size: 12.5px; color: var(--muted); margin-bottom: 10px;
}
.page-breadcrumb a { color: var(--muted); text-decoration: none; transition: color .15s; }
.page-breadcrumb a:hover { color: var(--primary); }
.page-breadcrumb .sep { font-size: 10px; opacity: .5; }
.page-breadcrumb .current { color: var(--text); font-weight: 600; }

.page-title-row { display: flex; align-items: center; gap: 16px; }
.page-title-icon {
    width: 50px; height: 50px;
    border-radius: 14px;
    background: linear-gradient(135deg, rgba(91,80,238,.16), rgba(139,92,246,.14));
    color: var(--primary);
    font-size: 22px;
    display: inline-flex; align-items: center; justify-content: center;
    box-shadow: inset 0 0 0 1px rgba(91,80,238,.22), 0 6px 18px rgba(91,80,238,.12);
}
.page-title { font-size: 24px; font-weight: 700; color: var(--text); letter-spacing: -.025em; line-height: 1.15; margin: 0; }
.page-subtitle { margin: 4px 0 0; font-size: 13.5px; color: var(--muted); line-height: 1.4; }

.page-body { padding-bottom: 48px; }
.page-body > .row + .row,
.page-body > .card + .card,
.page-body > .row + .card,
.page-body > .card + .row { margin-top: 16px; }

/* ============================================================
   CARDS (premium soft borders + refined corners)
   ============================================================ */
.card {
    background: var(--surface);
    border: 1px solid var(--border) !important;
    border-radius: var(--radius);
    box-shadow: var(--shadow-xs);
}
.card-header {
    background: var(--surface);
    border-bottom: 1px solid var(--border-2);
    padding: 14px 18px;
    border-top-left-radius: var(--radius);
    border-top-right-radius: var(--radius);
}
.card-header.bg-white { background: var(--surface) !important; border-bottom: 1px solid var(--border-2) !important; }
.card.shadow-sm { box-shadow: var(--shadow-sm) !important; }

/* Filter card on top of pages */
.page-body > .card.shadow-sm.mb-3:first-child {
    background: var(--surface);
    border: 1px solid var(--border) !important;
    border-radius: var(--radius);
}
.page-body > .card.shadow-sm.mb-3:first-child .card-body { padding: 14px 18px; }

/* ============================================================
   STAT / KPI CARDS (premium)
   ============================================================ */
.dashboard-stats .stat-card {
    border-radius: 14px !important;
    border: 1px solid var(--border) !important;
    background:
      linear-gradient(180deg, rgba(255,255,255,1), rgba(248,249,253,1)),
      var(--surface) !important;
    transition: transform .18s ease, box-shadow .18s ease, border-color .18s ease;
    overflow: hidden;
    position: relative;
}
.dashboard-stats .stat-card::before {
    content: '';
    position: absolute; left: 0; top: 0; bottom: 0; width: 3px;
    background: linear-gradient(180deg, var(--primary), var(--violet));
}
.dashboard-stats .stat-card:hover {
    transform: translateY(-3px);
    box-shadow: var(--shadow);
    border-color: rgba(91,80,238,.25) !important;
}
.dashboard-stats .stat-card .card-body { padding: 18px 18px 16px 22px; }
.dashboard-stats .stat-card .stat-icon {
    width: 44px !important; height: 44px !important;
    border-radius: 12px;
    font-size: 1.3rem !important;
    display: inline-flex; align-items: center; justify-content: center;
    box-shadow: inset 0 0 0 1px rgba(0,0,0,.05);
}
.dashboard-stats .stat-card small.text-muted {
    font-size: 11px !important;
    letter-spacing: .1em !important;
    color: var(--muted) !important;
    font-weight: 700;
}
.dashboard-stats .stat-card .stat-value {
    font-size: 1.6rem !important;
    font-weight: 800 !important;
    letter-spacing: -.025em;
    line-height: 1.15;
    margin-top: 2px;
    color: var(--text);
}
/* Override colored values to use deep text but keep semantic icons */
.dashboard-stats .stat-card .text-success.stat-value,
.dashboard-stats .stat-card .text-danger.stat-value,
.dashboard-stats .stat-card .text-info.stat-value,
.dashboard-stats .stat-card .text-warning.stat-value { color: var(--text) !important; }

/* ============================================================
   BUTTONS — premium indigo gradient
   ============================================================ */
.btn { font-weight: 600; border-radius: 10px; letter-spacing: .005em; transition: transform .12s, box-shadow .15s, background .15s; }
.btn:active { transform: translateY(1px); }
.btn-primary {
    background: linear-gradient(135deg, var(--primary) 0%, var(--primary-2) 100%) !important;
    border: none !important;
    box-shadow: 0 1px 2px rgba(91,80,238,.3), 0 4px 12px rgba(91,80,238,.18);
}
.btn-primary:hover, .btn-primary:focus {
    background: linear-gradient(135deg, var(--primary-2) 0%, var(--primary-3) 100%) !important;
    box-shadow: 0 2px 4px rgba(91,80,238,.35), 0 8px 18px rgba(91,80,238,.25);
}
.btn-success { background: linear-gradient(135deg, #10b981 0%, #047857 100%) !important; border: none !important; }
.btn-danger  { background: linear-gradient(135deg, #ef4444 0%, #b91c1c 100%) !important; border: none !important; }
.btn-warning { background: linear-gradient(135deg, #f59e0b 0%, #b45309 100%) !important; border: none !important; color: #fff !important; }
.btn-outline-secondary {
    background: var(--surface);
    border: 1px solid var(--border) !important;
    color: var(--text-2);
}
.btn-outline-secondary:hover {
    background: var(--surface-2);
    border-color: #cbd5e1 !important;
    color: var(--text);
}
.metric-btn { border-radius: 999px !important; padding: 5px 14px !important; font-size: 12.5px !important; }

/* ============================================================
   FORMS
   ============================================================ */
.form-control, .form-select {
    border: 1px solid var(--border);
    border-radius: 10px;
    background: var(--surface);
    color: var(--text);
}
.form-control:focus, .form-select:focus {
    border-color: var(--primary);
    box-shadow: 0 0 0 3px rgba(91,80,238,.15);
}
.form-label { color: var(--text-2); }

/* ============================================================
   TABLES
   ============================================================ */
.data-table-wrap { border-radius: 12px; border: 1px solid var(--border); }
.data-table-wrap th {
    background: var(--surface-2);
    color: var(--muted);
    border-bottom: 1px solid var(--border);
    font-weight: 700;
}
.data-table-wrap tbody tr:nth-child(even) td { background: rgba(245,246,251,.55); }
.data-table-wrap tbody tr:hover td { background: rgba(91,80,238,.06) !important; }

/* ============================================================
   BADGES
   ============================================================ */
.badge { font-weight: 600; letter-spacing: .02em; border-radius: 6px; padding: .35em .6em; }
.badge.bg-warning { color: #78350f !important; }

/* ============================================================
   SCROLLBAR
   ============================================================ */
::-webkit-scrollbar { width: 10px; height: 10px; }
::-webkit-scrollbar-track { background: transparent; }
::-webkit-scrollbar-thumb { background: #cdd2dc; border-radius: 8px; border: 2px solid var(--bg); }
::-webkit-scrollbar-thumb:hover { background: var(--primary); }

/* ============================================================
   DARK MODE
   ============================================================ */
.dark-mode {
    --bg:        #0a0c18;
    --surface:   #12152b;
    --surface-2: #1a1d36;
    --border:    #232745;
    --border-2:  #1c2040;
    --text:      #e6e8f5;
    --text-2:    #c8cce0;
    --muted:     #8d93b0;
    --muted-2:   #6e7392;
}
.dark-mode body {
    background:
      radial-gradient(1200px 600px at 12% -10%, rgba(91,80,238,.15), transparent 55%),
      radial-gradient(900px 500px at 100% 0%,  rgba(236,72,153,.10), transparent 60%),
      var(--bg) !important;
    color: var(--text);
}
.dark-mode .card,
.dark-mode .data-table-wrap,
.dark-mode .table-container,
.dark-mode .dashboard-stats .stat-card {
    background: var(--surface) !important;
    border-color: var(--border) !important;
    color: var(--text);
}
.dark-mode .dashboard-stats .stat-card {
    background: linear-gradient(180deg, var(--surface), var(--surface-2)) !important;
}
.dark-mode .card-header,
.dark-mode .card-header.bg-white { background: var(--surface) !important; border-color: var(--border-2) !important; }
.dark-mode .data-table-wrap th { background: #0f1330; color: var(--muted); }
.dark-mode .data-table-wrap tbody tr:nth-child(even) td { background: rgba(15,19,48,.45); }
.dark-mode .data-table-wrap tbody tr:hover td { background: rgba(91,80,238,.18) !important; }
.dark-mode .form-control,
.dark-mode .form-select { background: #0f1330; border-color: var(--border); color: var(--text); }
.dark-mode .topnav-dd-menu,
.dark-mode .topnav-user-menu {
    background: var(--surface);
    border-color: var(--border) !important;
}
.dark-mode .topnav-dd-item:hover { background: var(--surface-2); }
.dark-mode .topnav-user-menu .dropdown-item { color: var(--text); }
.dark-mode .topnav-user-menu .dropdown-item:hover { background: var(--surface-2); color: var(--text); }
.dark-mode .topnav-user-menu .dropdown-divider { border-color: var(--border); }
.dark-mode .page-title { color: var(--text); }

/* ============================================================
   RESPONSIVE
   ============================================================ */
@media (max-width: 992px) {
    .topnav-mobile-toggle { display: inline-flex; margin-left: auto; }
    .topnav-menu {
        position: absolute; top: var(--topnav-h); left: 0; right: 0;
        flex-direction: column;
        background: var(--topnav-bg);
        padding: 12px;
        gap: 4px;
        border-bottom: 1px solid rgba(255,255,255,.08);
        max-height: 0; overflow: hidden;
        transition: max-height .25s ease;
    }
    .topnav-menu.open { max-height: 80vh; overflow: auto; }
    .topnav-menu .topnav-item { width: 100%; justify-content: flex-start; }
    .topnav-menu .topnav-item.active::after { display: none; }
    .topnav-actions { margin-left: 8px; }
    .topnav-actions .topnav-user .user-name { display: none; }
    .topnav-actions .topnav-user .chev { display: none; }
    .topnav-dd-menu { min-width: 240px; }
}
@media (max-width: 576px) {
    .page-topbar, .page-body { padding-left: 14px; padding-right: 14px; }
    .topnav-inner { padding: 0 14px; gap: 10px; }
    .brand-wordmark { display: none; }
    .page-title { font-size: 19px; }
    .page-title-icon { width: 42px; height: 42px; font-size: 18px; }
}

/* =================================================================
   THEME V4.1 — Dark mode contrast fixes + mobile menu polish
   ================================================================= */

/* Force light text on dark surfaces — override Bootstrap utility colors */
.dark-mode {
    color: var(--text);
}
.dark-mode .text-dark,
.dark-mode .text-body,
.dark-mode .text-black,
.dark-mode .text-secondary { color: var(--text) !important; }
.dark-mode .text-muted { color: var(--muted) !important; }
.dark-mode small.text-muted,
.dark-mode .small.text-muted { color: var(--muted-2) !important; }

/* Bootstrap "white" backgrounds → become surface in dark */
.dark-mode .bg-white,
.dark-mode .card-header.bg-white,
.dark-mode .card-body,
.dark-mode .card { background: var(--surface) !important; color: var(--text); }
.dark-mode .bg-light,
.dark-mode .table-light,
.dark-mode .table-light > * { background: var(--surface-2) !important; color: var(--text) !important; border-color: var(--border) !important; }

/* All headings, paragraphs, labels, links inherit text color */
.dark-mode h1, .dark-mode h2, .dark-mode h3, .dark-mode h4, .dark-mode h5, .dark-mode h6,
.dark-mode .h1, .dark-mode .h2, .dark-mode .h3, .dark-mode .h4, .dark-mode .h5, .dark-mode .h6 { color: var(--text); }
.dark-mode label, .dark-mode .form-label { color: var(--text-2); }
.dark-mode a:not(.btn):not(.dropdown-item):not(.topnav-item):not(.topnav-dd-item):not(.topnav-brand):not(.topnav-user):not(.page-breadcrumb a) { color: #a5b4fc; }
.dark-mode a:not(.btn):not(.dropdown-item):not(.topnav-item):not(.topnav-dd-item):not(.topnav-brand):not(.topnav-user):not(.page-breadcrumb a):hover { color: #c7d2fe; }

/* Bootstrap tables — convert to dark */
.dark-mode .table,
.dark-mode .table > :not(caption) > * > * { color: var(--text) !important; background-color: transparent !important; border-color: var(--border) !important; }
.dark-mode .table > thead th,
.dark-mode .table > thead td { background: var(--surface-2) !important; color: var(--muted) !important; border-color: var(--border) !important; }
.dark-mode .table-hover > tbody > tr:hover > * { background: rgba(91,80,238,.18) !important; color: var(--text) !important; }
.dark-mode .table-striped > tbody > tr:nth-of-type(odd) > * { background: rgba(15,19,48,.40) !important; }

/* Modals + dropdowns + popovers */
.dark-mode .modal-content,
.dark-mode .dropdown-menu,
.dark-mode .popover { background: var(--surface) !important; border-color: var(--border) !important; color: var(--text); }
.dark-mode .modal-header,
.dark-mode .modal-footer { border-color: var(--border) !important; }
.dark-mode .dropdown-item { color: var(--text); }
.dark-mode .dropdown-item:hover,
.dark-mode .dropdown-item:focus { background: var(--surface-2); color: var(--text); }
.dark-mode .dropdown-divider { border-color: var(--border); }

/* List groups, alerts */
.dark-mode .list-group-item { background: var(--surface); color: var(--text); border-color: var(--border); }
.dark-mode .alert { background: var(--surface-2); color: var(--text); border: 1px solid var(--border); }
.dark-mode .alert-success { background: rgba(16,185,129,.10); color: #6ee7b7; }
.dark-mode .alert-danger  { background: rgba(239,68,68,.10);  color: #fca5a5; }
.dark-mode .alert-warning { background: rgba(245,158,11,.12); color: #fcd34d; }
.dark-mode .alert-info    { background: rgba(56,189,248,.12); color: #7dd3fc; }

/* Inputs/buttons */
.dark-mode input,
.dark-mode select,
.dark-mode textarea,
.dark-mode .form-control,
.dark-mode .form-select { background: #0f1330 !important; border-color: var(--border) !important; color: var(--text) !important; }
.dark-mode .form-control::placeholder { color: var(--muted-2) !important; }
.dark-mode .input-group-text { background: var(--surface-2); border-color: var(--border); color: var(--text-2); }
.dark-mode .btn-outline-secondary { background: var(--surface); border-color: var(--border) !important; color: var(--text); }
.dark-mode .btn-outline-secondary:hover { background: var(--surface-2); color: var(--text); }
.dark-mode .btn-light { background: var(--surface-2) !important; color: var(--text) !important; border-color: var(--border) !important; }

/* Badges (keep semantic but fix bg-light) */
.dark-mode .badge.bg-light { background: var(--surface-2) !important; color: var(--text) !important; }
.dark-mode .badge.bg-warning { color: #fde68a !important; }

/* Pagination */
.dark-mode .page-link { background: var(--surface); color: var(--text); border-color: var(--border); }
.dark-mode .page-link:hover { background: var(--surface-2); }
.dark-mode .page-item.active .page-link { background: var(--primary); border-color: var(--primary); color: #fff; }

/* Specific data-table-wrap tweaks already covered, just ensure cells */
.dark-mode .data-table-wrap td { color: var(--text); border-color: var(--border-2) !important; }
.dark-mode .data-table-wrap .cell-amount { color: var(--text); }

/* Hard-coded inline color="#475569" etc. that PHP emits */
.dark-mode [style*="color:#475569"],
.dark-mode [style*="color: #475569"],
.dark-mode [style*="color:#334155"],
.dark-mode [style*="color: #334155"],
.dark-mode [style*="color:#0f172a"],
.dark-mode [style*="color: #0f172a"],
.dark-mode [style*="color:#1e293b"],
.dark-mode [style*="color: #1e293b"] { color: var(--text) !important; }
.dark-mode [style*="background:#fff"],
.dark-mode [style*="background: #fff"],
.dark-mode [style*="background:#ffffff"],
.dark-mode [style*="background-color:#fff"] { background: var(--surface) !important; }
.dark-mode [style*="background:#f8fafc"],
.dark-mode [style*="background: #f8fafc"],
.dark-mode [style*="background:#f1f5f9"] { background: var(--surface-2) !important; }
.dark-mode [style*="border:1px solid #e"],
.dark-mode [style*="border: 1px solid #e"] { border-color: var(--border) !important; }

/* Page subtitle / muted texts in light mode (improve contrast) */
.text-muted { color: var(--muted) !important; }

/* ─── MOBILE menu toggle button visible on the dark topbar ─── */
.topnav-mobile-toggle.active {
    background: rgba(139,92,246,.25);
    border-color: rgba(139,92,246,.5);
}
@media (max-width: 992px) {
    .topnav-menu {
        padding: 14px;
        gap: 6px;
        box-shadow: 0 16px 40px rgba(0,0,0,.45);
    }
    .topnav-menu .topnav-item {
        background: rgba(255,255,255,.04);
        border: 1px solid rgba(255,255,255,.06);
    }
    .topnav-menu .topnav-item:hover,
    .topnav-menu .topnav-item.active { background: rgba(139,92,246,.22); border-color: rgba(139,92,246,.45); }
    /* Dropdown menu fits nicely as a stacked panel on mobile */
    .topnav-menu .dropdown-menu.topnav-dd-menu {
        position: static !important;
        transform: none !important;
        margin-top: 4px !important;
        min-width: 100% !important;
        box-shadow: none;
        border: 1px solid var(--border) !important;
    }
}

/* =================================================================
   THEME V4.2 — Mobile drawer redesign (rich, sectioned, slide-in)
   ================================================================= */
@media (max-width: 992px) {
    /* Backdrop overlay */
    body::after {
        content: '';
        position: fixed; inset: 0;
        background: rgba(5,7,18,.55);
        backdrop-filter: blur(6px);
        -webkit-backdrop-filter: blur(6px);
        opacity: 0; visibility: hidden;
        transition: opacity .25s ease, visibility .25s ease;
        z-index: 1029;
    }
    body:has(.topnav-menu.open)::after { opacity: 1; visibility: visible; }

    /* Drawer panel — slide in from right (clean light theme) */
    .topnav-menu {
        position: fixed !important;
        top: 0 !important;
        right: 0 !important;
        left: auto !important;
        width: min(86vw, 340px);
        height: 100dvh;
        max-height: 100dvh;
        background: #ffffff;
        padding: 0 !important;
        gap: 0 !important;
        box-shadow: -16px 0 48px rgba(15,23,42,.18);
        border-left: 1px solid rgba(15,23,42,.06);
        transform: translateX(100%);
        transition: transform .26s cubic-bezier(.4,0,.2,1);
        overflow-y: auto;
        overflow-x: hidden;
        -webkit-overflow-scrolling: touch;
        display: flex !important;
        flex-direction: column;
        z-index: 1031;
    }
    .topnav-menu.open { transform: translateX(0); }

    /* Drawer header */
    .topnav-menu::before {
        content: 'Menu';
        display: block;
        padding: 18px 20px 14px;
        font-size: 12px;
        font-weight: 700;
        text-transform: uppercase;
        letter-spacing: .14em;
        color: #94a3b8;
        border-bottom: 1px solid #f1f5f9;
        background: #fff;
        position: sticky; top: 0; z-index: 2;
    }
    body.dark-mode .topnav-menu { background: #0f172a; border-left-color: rgba(255,255,255,.06); }
    body.dark-mode .topnav-menu::before { background: #0f172a; color: #64748b; border-bottom-color: rgba(255,255,255,.06); }

    /* Scrollable items zone */
    .topnav-menu > * {
        flex-shrink: 0;
    }
    .topnav-menu {
        scrollbar-width: thin;
    }
    .topnav-menu > .topnav-item:first-of-type { margin-top: 14px; }

    /* Top-level direct items (e.g. "Tổng quan") */
    .topnav-menu > .topnav-item {
        margin: 4px 12px !important;
        padding: 11px 12px !important;
        height: auto !important;
        background: transparent;
        border: 1px solid transparent;
        border-radius: 10px;
        font-size: 14px;
        font-weight: 600;
        gap: 12px;
        color: #1e293b !important;
    }
    .topnav-menu > .topnav-item i.bi:not(.chev) {
        font-size: 17px;
        width: 32px; height: 32px;
        border-radius: 9px;
        background: #eef2ff;
        color: #4f46e5;
        display: inline-flex; align-items: center; justify-content: center;
        opacity: 1;
    }
    .topnav-menu > .topnav-item:hover { background: #f8fafc; }
    .topnav-menu > .topnav-item.active {
        background: #eef2ff;
        border-color: #c7d2fe;
        color: #312e81 !important;
    }
    .topnav-menu > .topnav-item.active::after { display: none; }
    .topnav-menu > .topnav-item.active i.bi:not(.chev) {
        background: linear-gradient(135deg, #4f46e5, #8b5cf6);
        color: #fff;
        box-shadow: 0 4px 10px rgba(79,70,229,.35);
    }
    body.dark-mode .topnav-menu > .topnav-item { color: #e2e8f0 !important; }
    body.dark-mode .topnav-menu > .topnav-item:hover { background: rgba(255,255,255,.05); }
    body.dark-mode .topnav-menu > .topnav-item.active { background: rgba(99,102,241,.18); border-color: rgba(99,102,241,.4); color: #fff !important; }
    body.dark-mode .topnav-menu > .topnav-item i.bi:not(.chev) { background: rgba(99,102,241,.16); color: #a5b4fc; }

    /* Group: label + always-visible items (no click-to-open on mobile) */
    .topnav-menu .dropdown.topnav-dd { margin: 8px 0 0; padding: 0 14px; }

    /* Convert dropdown TOGGLE button into a sticky section header */
    .topnav-menu .topnav-item-dd {
        all: unset;
        display: flex; align-items: center; gap: 10px;
        margin: 14px 0 6px;
        padding: 4px 4px;
        font-size: 11px !important;
        font-weight: 700;
        text-transform: uppercase;
        letter-spacing: .14em;
        color: #94a3b8;
        cursor: default;
        background: transparent !important;
        border: 0 !important;
        border-radius: 0 !important;
        height: auto !important;
        pointer-events: none;
    }
    .topnav-menu .topnav-item-dd::before {
        content: '';
        flex: 1 0 auto;
        order: 2;
        height: 1px;
        background: linear-gradient(90deg, #e2e8f0, transparent);
        margin-left: 10px;
    }
    body.dark-mode .topnav-menu .topnav-item-dd { color: #64748b; }
    body.dark-mode .topnav-menu .topnav-item-dd::before { background: linear-gradient(90deg, rgba(255,255,255,.08), transparent); }
    .topnav-menu .topnav-item-dd .chev { display: none; }
    .topnav-menu .topnav-item-dd > span { order: 1; }
    .topnav-menu .topnav-item-dd > i.bi { order: 0; font-size: 13px; opacity: .7; }
    .topnav-menu .topnav-item-dd.active { color: var(--violet); }

    /* Make dropdown menus always shown inline */
    .topnav-menu .dropdown-menu.topnav-dd-menu {
        display: block !important;
        position: static !important;
        transform: none !important;
        margin: 0 !important;
        padding: 0 !important;
        background: transparent !important;
        border: 0 !important;
        box-shadow: none !important;
        min-width: 0 !important;
        width: 100%;
    }

    /* Each sub-item is a clean light row */
    .topnav-menu .topnav-dd-item {
        background: transparent;
        border: 1px solid transparent;
        border-radius: 10px;
        padding: 10px 10px !important;
        margin-bottom: 2px;
        gap: 12px;
        transition: background .12s, border-color .12s;
    }
    .topnav-menu .topnav-dd-item:hover { background: #f8fafc; }
    .topnav-menu .topnav-dd-item.active {
        background: #eef2ff;
        border-color: #c7d2fe;
    }
    .topnav-menu .topnav-dd-item .dd-icon {
        width: 34px; height: 34px;
        background: #eef2ff;
        color: #4f46e5;
        font-size: 15px;
        border-radius: 9px;
    }
    .topnav-menu .topnav-dd-item.active .dd-icon {
        background: linear-gradient(135deg, #4f46e5, #8b5cf6);
        color: #fff;
        box-shadow: 0 3px 10px rgba(79,70,229,.35);
    }
    .topnav-menu .topnav-dd-item .dd-label { color: #1e293b; font-size: 13.5px; font-weight: 600; }
    .topnav-menu .topnav-dd-item .dd-sub   { color: #94a3b8; font-size: 11.5px; }
    .topnav-menu .topnav-dd-item.active .dd-label { color: #312e81; }

    body.dark-mode .topnav-menu .topnav-dd-item:hover { background: rgba(255,255,255,.04); }
    body.dark-mode .topnav-menu .topnav-dd-item.active { background: rgba(99,102,241,.18); border-color: rgba(99,102,241,.4); }
    body.dark-mode .topnav-menu .topnav-dd-item .dd-icon { background: rgba(99,102,241,.16); color: #a5b4fc; }
    body.dark-mode .topnav-menu .topnav-dd-item .dd-label { color: #e2e8f0; }
    body.dark-mode .topnav-menu .topnav-dd-item.active .dd-label { color: #fff; }

    .topnav-menu::after { content: ''; height: 16px; flex: 0 0 auto; }

    /* Mobile toggle button — flip to X when open */
    .topnav-mobile-toggle.active i { display: none; }
    .topnav-mobile-toggle.active::before {
        content: '\F659'; /* bi-x-lg */
        font-family: 'bootstrap-icons';
        font-size: 18px;
    }
    .topnav-mobile-toggle.active {
        position: fixed;
        top: 14px; right: 14px;
        z-index: 1032;
    }
}

/* On very small screens shrink padding */
@media (max-width: 420px) {
    .topnav-menu { width: 92vw; }
}

/* =================================================================
   THEME V4.3 — Desktop top nav polish (less generic, more premium)
   ================================================================= */

/* Refined top nav bar */
.app-topnav {
    background:
      radial-gradient(900px 220px at 15% -50%, rgba(99,102,241,.38), transparent 60%),
      radial-gradient(700px 200px at 82% -45%, rgba(139,92,246,.28), transparent 60%),
      linear-gradient(180deg, #07092b 0%, #0e1650 100%) !important;
    border-bottom: 1px solid rgba(255,255,255,.06) !important;
    box-shadow: 0 1px 0 rgba(255,255,255,.04) inset, 0 8px 32px rgba(0,0,0,.35) !important;
}
.app-topnav .topnav-inner {
    gap: 28px !important;
    padding: 0 22px !important;
}

/* Brand: cleaner mark + tighter type */
.app-topnav .topnav-brand .brand-mark {
    width: 38px !important; height: 38px !important;
    border-radius: 11px !important;
    background: #fff !important;
    box-shadow: 0 4px 14px rgba(15,23,42,.18), inset 0 1px 0 rgba(255,255,255,.6) !important;
    color: #fff !important;
    font-size: 18px !important;
}
.app-topnav .topnav-brand .brand-name {
    font-weight: 700 !important;
    letter-spacing: -.01em !important;
    background: linear-gradient(120deg, #fff 0%, #c7d2fe 100%);
    -webkit-background-clip: text; background-clip: text;
    -webkit-text-fill-color: transparent;
}
.app-topnav .topnav-brand .brand-name span {
    background: linear-gradient(120deg, #fff 0%, #c7d2fe 100%);
    -webkit-background-clip: text; background-clip: text;
    -webkit-text-fill-color: transparent;
    display: inline;
}
.app-topnav .topnav-brand .brand-sub {
    color: rgba(148,163,184,.7) !important;
    font-size: 10.5px !important;
    letter-spacing: .12em !important;
    text-transform: uppercase !important;
    font-weight: 600 !important;
}

/* Vertical separator after brand */
.app-topnav .topnav-brand {
    padding-right: 22px;
    border-right: 1px solid rgba(255,255,255,.07);
    margin-right: 4px;
}

/* Menu items: text-style with hover lift + active underline indicator */
@media (min-width: 993px) {
    .app-topnav .topnav-menu {
        gap: 4px !important;
    }
    .app-topnav .topnav-menu .topnav-item {
        position: relative;
        background: transparent !important;
        border: 0 !important;
        padding: 0 14px !important;
        height: 44px !important;
        border-radius: 10px !important;
        color: rgba(226,232,240,.78) !important;
        font-size: 13.5px !important;
        font-weight: 500 !important;
        letter-spacing: .005em !important;
        gap: 8px !important;
        transition: color .15s, background .15s !important;
    }
    .app-topnav .topnav-menu .topnav-item i.bi:not(.chev) {
        font-size: 15px;
        opacity: .75;
        transition: opacity .15s, color .15s;
    }
    .app-topnav .topnav-menu .topnav-item:hover {
        background: rgba(255,255,255,.05) !important;
        color: #fff !important;
    }
    .app-topnav .topnav-menu .topnav-item:hover i.bi:not(.chev) { opacity: 1; color: #c4b5fd; }
    .app-topnav .topnav-menu .topnav-item.active,
    .app-topnav .topnav-menu .topnav-item[aria-expanded="true"] {
        background: rgba(139,92,246,.12) !important;
        color: #fff !important;
    }
    .app-topnav .topnav-menu .topnav-item.active i.bi:not(.chev),
    .app-topnav .topnav-menu .topnav-item[aria-expanded="true"] i.bi:not(.chev) {
        color: #c4b5fd; opacity: 1;
    }
    /* Underline indicator for active */
    .app-topnav .topnav-menu .topnav-item.active::after {
        content: '';
        position: absolute;
        left: 14px; right: 14px; bottom: -1px;
        height: 2px;
        background: linear-gradient(90deg, #5b50ee, #8b5cf6, #ec4899);
        border-radius: 2px 2px 0 0;
    }
    .app-topnav .topnav-menu .topnav-item-dd .chev {
        font-size: 10px !important;
        opacity: .55;
        transition: transform .2s, opacity .2s;
    }
    .app-topnav .topnav-menu .topnav-item-dd[aria-expanded="true"] .chev {
        transform: rotate(180deg); opacity: 1;
    }
}

/* Right-side actions */
.app-topnav .topnav-actions {
    gap: 8px !important;
    align-items: center;
}
.app-topnav .topnav-icon-btn {
    width: 38px !important; height: 38px !important;
    border-radius: 10px !important;
    background: rgba(255,255,255,.04) !important;
    border: 1px solid rgba(255,255,255,.08) !important;
    color: rgba(226,232,240,.85) !important;
    display: inline-flex; align-items: center; justify-content: center;
    font-size: 15px;
    transition: background .15s, border-color .15s, color .15s, transform .12s;
}
.app-topnav .topnav-icon-btn:hover {
    background: rgba(139,92,246,.15) !important;
    border-color: rgba(139,92,246,.35) !important;
    color: #fff !important;
}
.app-topnav .topnav-icon-btn:active { transform: scale(.95); }

/* User pill */
.app-topnav .topnav-user {
    display: inline-flex; align-items: center; gap: 10px;
    height: 38px;
    padding: 3px 14px 3px 4px !important;
    border-radius: 999px !important;
    background: rgba(255,255,255,.05) !important;
    border: 1px solid rgba(255,255,255,.09) !important;
    color: #fff !important;
    transition: background .15s, border-color .15s;
}
.app-topnav .topnav-user:hover {
    background: rgba(139,92,246,.12) !important;
    border-color: rgba(139,92,246,.35) !important;
}
.app-topnav .topnav-user img {
    width: 30px; height: 30px;
    border-radius: 50%;
    object-fit: cover;
    border: 1.5px solid rgba(139,92,246,.35);
}
.app-topnav .topnav-user .user-name {
    font-size: 12.5px !important;
    font-weight: 600 !important;
    letter-spacing: .02em;
    max-width: 140px;
    overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
}
.app-topnav .topnav-user .chev { font-size: 10px; opacity: .6; }

/* Mega-menu polish */
.app-topnav .topnav-dd-menu {
    background: rgba(13,17,46,.96) !important;
    backdrop-filter: blur(20px) saturate(140%);
    -webkit-backdrop-filter: blur(20px) saturate(140%);
    border: 1px solid rgba(139,92,246,.22) !important;
    border-radius: 14px !important;
    box-shadow:
      0 24px 60px rgba(0,0,0,.55),
      0 0 0 1px rgba(255,255,255,.04) inset !important;
    padding: 8px !important;
    margin-top: 10px !important;
    min-width: 320px !important;
}
.app-topnav .topnav-dd-menu .topnav-dd-item {
    display: flex; align-items: center; gap: 12px;
    padding: 10px 12px !important;
    border-radius: 10px !important;
    color: rgba(226,232,240,.88) !important;
    transition: background .15s;
}
.app-topnav .topnav-dd-menu .topnav-dd-item:hover {
    background: linear-gradient(90deg, rgba(91,80,238,.18), rgba(139,92,246,.10)) !important;
}
.app-topnav .topnav-dd-menu .topnav-dd-item .dd-icon {
    width: 38px; height: 38px;
    border-radius: 10px;
    background: linear-gradient(135deg, rgba(91,80,238,.20), rgba(236,72,153,.16));
    color: #c4b5fd;
    display: inline-flex; align-items: center; justify-content: center;
    font-size: 16px;
    flex-shrink: 0;
    transition: transform .15s;
}
.app-topnav .topnav-dd-menu .topnav-dd-item:hover .dd-icon {
    background: linear-gradient(135deg, #5b50ee, #8b5cf6);
    color: #fff;
    transform: scale(1.05);
}
.app-topnav .topnav-dd-menu .topnav-dd-item .dd-text { display: flex; flex-direction: column; min-width: 0; }
.app-topnav .topnav-dd-menu .topnav-dd-item .dd-label {
    font-size: 13.5px; font-weight: 600; color: #fff;
    line-height: 1.25;
}
.app-topnav .topnav-dd-menu .topnav-dd-item .dd-sub {
    font-size: 11.5px;
    color: rgba(148,163,184,.7);
    margin-top: 2px;
}
.app-topnav .topnav-dd-menu .topnav-dd-item.active {
    background: linear-gradient(90deg, rgba(91,80,238,.24), rgba(139,92,246,.14)) !important;
}
.app-topnav .topnav-dd-menu .topnav-dd-item.active .dd-icon {
    background: linear-gradient(135deg, #5b50ee, #8b5cf6);
    color: #fff;
    box-shadow: 0 4px 14px rgba(91,80,238,.45);
}

/* User dropdown menu */
.app-topnav .topnav-user-menu {
    background: rgba(13,17,46,.96) !important;
    border: 1px solid rgba(139,92,246,.22) !important;
    border-radius: 12px !important;
    box-shadow: 0 24px 60px rgba(0,0,0,.55) !important;
    padding: 6px !important;
    margin-top: 10px !important;
}
.app-topnav .topnav-user-menu .dropdown-item {
    color: rgba(226,232,240,.88) !important;
    border-radius: 8px;
    padding: 9px 12px;
    font-size: 13px;
}
.app-topnav .topnav-user-menu .dropdown-item:hover { background: rgba(139,92,246,.15) !important; color: #fff !important; }
.app-topnav .topnav-user-menu .dropdown-item.text-danger { color: #fca5a5 !important; }
.app-topnav .topnav-user-menu .dropdown-item.text-danger:hover { background: rgba(239,68,68,.15) !important; color: #fecaca !important; }
.app-topnav .topnav-user-menu .dropdown-divider { border-color: rgba(255,255,255,.08) !important; margin: 4px 6px !important; }
