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

:root {
    --sw-bg: #f3f1ec;
    --sw-bg-soft: #faf8f3;
    --sw-sidebar: #111827;
    --sw-sidebar-2: #111827;
    --sw-navy: #111827;
    --sw-ink: #111827;
    --sw-slate: #3f3f46;
    --sw-surface: #ffffff;
    --sw-surface-soft: #faf8f3;
    --sw-text: #111827;
    --sw-muted: #6b7280;
    --sw-faint: #a1a1aa;
    --sw-border: #e5dfd2;
    --sw-border-soft: #eee8dc;
    --sw-primary: #b7791f;
    --sw-primary-dark: #92400e;
    --sw-primary-soft: #fef3c7;
    --sw-success: #b7791f;
    --sw-success-soft: #fef3c7;
    --sw-blue: #b7791f;
    --sw-red: #dc2626;
    --sw-amber: #d97706;
    --sw-radius-sm: 10px;
    --sw-radius: 16px;
    --sw-radius-lg: 24px;
    --sw-shadow-sm: 0 8px 24px rgba(15, 23, 42, .055);
    --sw-shadow: 0 20px 48px rgba(15, 23, 42, .11);
    --sw-sidebar-width: 252px;
}

*, *::before, *::after { box-sizing: border-box; }
html { min-height: 100%; }
body {
    font-family: 'Manrope', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
    color: var(--sw-text);
    background:
        radial-gradient(circle at 88% -8%, rgba(183, 121, 31, .13), transparent 29rem),
        radial-gradient(circle at 12% 10%, rgba(183, 121, 31, .08), transparent 24rem),
        linear-gradient(135deg, #fbfaf6 0%, var(--sw-bg) 100%);
    margin: 0;
    min-height: 100vh;
    display: flex;
    overflow-x: hidden;
}
a { transition: color .16s ease, background .16s ease, border-color .16s ease, transform .16s ease; }

#sidebar {
    width: var(--sw-sidebar-width);
    min-width: var(--sw-sidebar-width);
    color: #fff;
    height: 100vh;
    height: 100dvh;
    display: flex;
    flex-direction: column;
    position: fixed;
    top: 0;
    left: 0;
    z-index: 1000;
    overflow: hidden;
    background:
        radial-gradient(circle at 25% 0%, rgba(245, 158, 11, .18), transparent 18rem),
        linear-gradient(180deg, #111827 0%, #1f2937 58%, #111827 100%);
    box-shadow: 18px 0 46px rgba(15, 23, 42, .18);
    transition: transform .25s ease;
}
#sidebar::before {
    content: '';
    position: absolute;
    inset: 0;
    pointer-events: none;
    background-image: linear-gradient(rgba(255,255,255,.025) 1px, transparent 1px), linear-gradient(90deg, rgba(255,255,255,.025) 1px, transparent 1px);
    background-size: 34px 34px;
    mask-image: linear-gradient(to bottom, #000, transparent 72%);
}
#sidebar .sidebar-brand { position: relative; padding: 1.05rem 1rem .95rem; border-bottom: 1px solid rgba(226,232,240,.09); }
#sidebar .brand-icon {
    width: 46px; height: 46px;
    background: linear-gradient(135deg, #f59e0b, #b7791f);
    border-radius: 15px;
    display: inline-flex; align-items: center; justify-content: center;
    font-size: 1.25rem; color: #fff; margin-right: 12px;
    box-shadow: 0 16px 30px rgba(245, 158, 11, .22);
    overflow: hidden;
}
#sidebar .brand-icon img { width: 100%; height: 100%; object-fit: cover; border-radius: 15px !important; }
#sidebar .brand-name { font-family: 'Space Grotesk', 'Manrope', sans-serif; font-size: 1.15rem; line-height: 1.05; font-weight: 700; letter-spacing: -.03em; color: #fff; }
#sidebar .brand-sub { font-size: .74rem; color: #aab8ca; margin-top: .22rem; font-weight: 600; }
#sidebar .sidebar-nav { position: relative; flex: 1 1 auto; min-height: 0; overflow-y: auto; overflow-x: hidden; -webkit-overflow-scrolling: touch; scrollbar-width: thin; scrollbar-color: rgba(148,163,184,.55) rgba(255,255,255,.04); padding: .55rem .65rem .75rem; }
#sidebar .sidebar-nav::-webkit-scrollbar { width: 8px; }
#sidebar .sidebar-nav::-webkit-scrollbar-track { background: rgba(255,255,255,.04); }
#sidebar .sidebar-nav::-webkit-scrollbar-thumb { background: rgba(148,163,184,.55); border-radius: 999px; }
#sidebar .sidebar-nav::-webkit-scrollbar-thumb:hover { background: rgba(148,163,184,.78); }
#sidebar .nav-section { font-size: .66rem; font-weight: 900; letter-spacing: .15em; text-transform: uppercase; color: #66758a; padding: .85rem .62rem .4rem; }
#sidebar .nav-link { display: flex; align-items: center; gap: .72rem; min-height: 42px; padding: .58rem .72rem; color: #a7b7cc; font-size: .9rem; font-weight: 760; text-decoration: none; border-radius: 13px; border: 1px solid transparent; margin: .08rem 0; }
#sidebar .nav-link i { font-size: 1.02rem; width: 21px; flex-shrink: 0; color: #9eb6d4; }
#sidebar .nav-link:hover { color: #fff; background: rgba(255,255,255,.07); border-color: rgba(255,255,255,.08); transform: translateX(2px); }
#sidebar .nav-link:hover i { color: #fff; }
#sidebar .nav-link.active { color: #fff; background: linear-gradient(135deg, rgba(183,121,31,.42), rgba(183,121,31,.18)); border-color: rgba(251, 191, 36, .26); box-shadow: inset 3px 0 0 #f59e0b; }
#sidebar .nav-link.active i { color: #fff; }
#sidebar .sidebar-footer { position: relative; border-top: 1px solid rgba(226,232,240,.09); padding: .9rem .85rem 1rem; background: rgba(11,18,32,.97); z-index: 2; margin-top: auto; flex-shrink: 0; }
#sidebar .user-info .name { font-weight: 850; color: #fff; font-size: .86rem; }
#sidebar .user-info .role { color: #8fa2bb; font-size: .72rem; font-weight: 650; }
#sidebar .user-avatar { width: 38px; height: 38px; background: linear-gradient(135deg, #f59e0b, #b7791f); border-radius: 13px; display: flex; align-items: center; justify-content: center; font-size: .85rem; color: #fff; font-weight: 900; flex-shrink: 0; }
#sidebar .logout-link { color: #fecaca !important; padding: .55rem .65rem; border-radius: 12px; margin-top: .55rem; }
#sidebar .logout-link:hover { color: #fff !important; background: rgba(220, 38, 38, .18); }
.sidebar-scroll-btn { display: flex; align-items: center; justify-content: center; width: calc(100% - 1.3rem); height: 24px; margin: .25rem .65rem; background: rgba(255,255,255,.055); border: 1px solid rgba(255,255,255,.08); border-radius: 999px; color: #a1a1aa; font-size: .72rem; cursor: pointer; transition: opacity .2s, color .15s, background .15s; flex-shrink: 0; }
.sidebar-scroll-btn:hover { background: rgba(255,255,255,.11); color: #fff; }
.sidebar-scroll-up { opacity: 0; pointer-events: none; }
.sidebar-scroll-down { opacity: 1; }

#main-wrapper { margin-left: var(--sw-sidebar-width); flex: 1; display: flex; flex-direction: column; min-height: 100vh; min-width: 0; }
#topbar { min-height: 66px; background: rgba(255,255,255,.9); backdrop-filter: blur(18px); border-bottom: 1px solid rgba(216,225,234,.92); padding: .78rem 1.7rem; display: flex; align-items: center; justify-content: space-between; position: sticky; top: 0; z-index: 100; }
#topbar .page-title { font-family: 'Space Grotesk', 'Manrope', sans-serif; font-size: 1.3rem; font-weight: 700; letter-spacing: -.035em; color: var(--sw-text); margin: 0; }
#topbar .topbar-right { display: flex; align-items: center; gap: 1rem; }
#topbar .time-display { display: inline-flex; align-items: center; min-height: 34px; padding: .4rem .78rem; border-radius: 999px; background: #fff; border: 1px solid var(--sw-border-soft); box-shadow: var(--sw-shadow-sm); font-size: .82rem; color: #475569; font-weight: 850; }
#page-content { padding: 1.6rem; flex: 1; width: min(100%, 1560px); }

h1, h2, h3, h4, h5, h6 { letter-spacing: -.025em; }
.fw-bold { font-weight: 850 !important; }
.text-muted { color: var(--sw-muted) !important; }
.section-label { font-size: .74rem !important; font-weight: 900 !important; text-transform: uppercase; letter-spacing: .095em !important; color: #8b8a82 !important; }
.card { border: 1px solid var(--sw-border-soft); border-radius: var(--sw-radius); box-shadow: var(--sw-shadow-sm); background: rgba(255,255,255,.97); }
.card-header { background: rgba(255,255,255,.98); border-bottom: 1px solid var(--sw-border-soft); border-radius: var(--sw-radius) var(--sw-radius) 0 0 !important; padding: 1rem 1.15rem; }
.card-body { padding: 1.15rem; }
.stat-card { border-radius: 18px !important; border: 1px solid var(--sw-border-soft) !important; box-shadow: var(--sw-shadow-sm) !important; transition: transform .16s ease, box-shadow .16s ease; }
.stat-card:hover { transform: translateY(-3px); box-shadow: var(--sw-shadow) !important; }
.stat-icon { width: 48px; height: 48px; border-radius: 15px; display: flex; align-items: center; justify-content: center; font-size: 1.18rem; }
.table-responsive { border-radius: var(--sw-radius); }
.table { --bs-table-bg: transparent; }
.table thead th { font-size: .72rem; font-weight: 900; text-transform: uppercase; letter-spacing: .07em; color: #8b8a82; background: #faf8f3; border-bottom: 1px solid var(--sw-border); padding: .88rem 1rem; white-space: nowrap; }
.table td { padding: .86rem 1rem; border-color: #eee8dc; vertical-align: middle; font-size: .9rem; }
.table tr:last-child td { border-bottom: none; }
.table-hover tbody tr:hover, .table tbody tr:hover { background: rgba(183,121,31,.028); }
.btn { border-radius: 12px; font-weight: 850; font-size: .9rem; padding: .58rem .9rem; box-shadow: none !important; }
.btn-sm { border-radius: 10px; padding: .42rem .7rem; font-size: .82rem; }
.btn-lg { border-radius: 15px; padding: .82rem 1.15rem; }
.btn-success, .btn-primary { background: linear-gradient(135deg, #b7791f, #92400e); border-color: #92400e; color: #fff; }
.btn-success:hover, .btn-primary:hover { background: linear-gradient(135deg, #92400e, #78350f); border-color: #78350f; transform: translateY(-1px); }
.btn-outline-success, .btn-outline-primary { color: var(--sw-primary); border-color: rgba(183,121,31,.65); background: #fff; }
.btn-outline-success:hover, .btn-outline-primary:hover { background: var(--sw-primary); border-color: var(--sw-primary); color: #fff; transform: translateY(-1px); }
.btn-outline-secondary { border-color: #cbd5e1; color: #475569; }
.btn-outline-secondary:hover { background: #faf8f3; color: #111827; border-color: #a1a1aa; }
.form-control, .form-select { border-radius: 13px; border-color: #e5dfd2; background-color: #fff; color: var(--sw-text); font-size: .9rem; padding: .72rem .9rem; min-height: 44px; }
.form-control::placeholder { color: #8a98aa; }
.form-control:focus, .form-select:focus { border-color: var(--sw-primary); box-shadow: 0 0 0 4px rgba(183,121,31,.13); }
.input-group-text { border-radius: 13px; border-color: #e5dfd2; background: #faf8f3; }
.form-label { font-weight: 850; font-size: .8rem; color: #3f3f46; margin-bottom: .4rem; }
.badge { font-weight: 850; padding: .42em .76em; border-radius: 999px; }
.alert { border-radius: 16px; border-width: 1px; }
.alert-info { background: #fffbeb; border-color: #fde68a; color: #92400e; }
.alert-success { background: #fffbeb; border-color: #fde68a; color: #92400e; }
.alert-warning { background: #fffbeb; border-color: #fde68a; color: #92400e; }
.alert-danger { background: #fef2f2; border-color: #fecaca; color: #991b1b; }
.modal-content { border: 0; border-radius: 22px; box-shadow: 0 28px 80px rgba(15,23,42,.24); overflow: hidden; }
.modal-header { background: #111827; color: #fff; border-bottom: 0; padding: 1rem 1.2rem; }
.modal-title { font-weight: 900; letter-spacing: -.025em; }
.modal-body { padding: 1.25rem; }
.modal-footer { background: #faf8f3; border-top: 1px solid #f3f1ec; }
#sidebarToggle { display: none; width: 40px; height: 40px; border: 1px solid var(--sw-border-soft); border-radius: 13px; background: #fff; color: #111827; font-size: 1.3rem; cursor: pointer; }
#sidebarOverlay { display: none; position: fixed; inset: 0; background: rgba(15, 23, 42, .52); z-index: 999; }
@media print { #sidebar, #topbar, .no-print, footer { display: none !important; } #main-wrapper { margin-left: 0; } #page-content { padding: 0; width: 100%; } body { background: #fff; } @page { size: 85.6mm 54mm landscape; margin: 0; } }
@media (max-width: 992px) { #page-content { padding: 1rem; } }
@media (max-width: 768px) { #sidebar { transform: translateX(-100%); } #sidebar.open { transform: translateX(0); } #sidebarOverlay.open { display: block; } #main-wrapper { margin-left: 0; } #sidebarToggle { display: inline-flex; align-items: center; justify-content: center; } #topbar { padding: .65rem .9rem; } #topbar .page-title { font-size: 1.05rem; } #topbar .time-display { display: none; } #page-content { padding: .85rem; } .card-body { padding: 1rem; } .table td, .table thead th { padding: .72rem .8rem; } }
.font-monospace { font-family: 'Space Grotesk', 'SF Mono', Monaco, monospace; }
.text-green { color: var(--sw-primary) !important; }
.bg-green { background: var(--sw-primary) !important; }
.student-profile-row { align-items: flex-start; }
.student-profile-row .col-lg-4 { margin-bottom: 1.5rem; }
.student-profile-row .col-lg-8 .card:first-child { margin-top: 0; }
#reader { width: 100%; min-height: 280px; }


/* Strict Premium Palette Overrides */
:root {
    --bs-primary: #b7791f;
    --bs-success: #b7791f;
    --bs-info: #b7791f;
    --bs-warning: #d97706;
    --bs-danger: #dc2626;
}
.bg-primary, .bg-success, .bg-info { background-color: #b7791f !important; color: #fff !important; }
.text-primary, .text-success, .text-info { color: #92400e !important; }
.border-primary, .border-success, .border-info { border-color: #d6a64f !important; }
.bg-primary-subtle, .bg-success-subtle, .bg-info-subtle { background-color: #fef3c7 !important; }
.text-primary-emphasis, .text-success-emphasis, .text-info-emphasis { color: #78350f !important; }
.btn-info { background: #b7791f !important; border-color: #92400e !important; color: #fff !important; }
.btn-outline-info { color: #92400e !important; border-color: #d6a64f !important; background: #fff !important; }
.btn-outline-info:hover { background: #b7791f !important; border-color: #92400e !important; color: #fff !important; }
.nav-tabs .nav-link.active { color: #92400e !important; border-color: #d6a64f #d6a64f #fff !important; }
.nav-tabs .nav-link { color: #6b7280; }
.progress-bar { background-color: #b7791f; }
.list-group-item.active { background-color: #b7791f; border-color: #92400e; }
/* Enterprise Premium Theme Lock - minimal school-finance palette */
:root {
    --sw-bg: #f4f1ea;
    --sw-bg-soft: #fbfaf6;
    --sw-sidebar: #101722;
    --sw-sidebar-2: #17202d;
    --sw-navy: #101722;
    --sw-ink: #111827;
    --sw-slate: #374151;
    --sw-surface: #ffffff;
    --sw-surface-soft: #fbfaf6;
    --sw-text: #111827;
    --sw-muted: #687386;
    --sw-faint: #98a2b3;
    --sw-border: #e6dfd2;
    --sw-border-soft: #efe8dc;
    --sw-primary: #a86f1d;
    --sw-primary-dark: #7c4a12;
    --sw-primary-soft: #f8ead1;
    --sw-danger: #b42318;
    --sw-danger-soft: #fef3f2;
    --sw-neutral-chip: #f3f1ec;
    --sw-neutral-chip-text: #374151;
    --bs-primary: #a86f1d;
    --bs-success: #a86f1d;
    --bs-info: #6b7280;
    --bs-warning: #a86f1d;
    --bs-danger: #b42318;
}
body {
    background: linear-gradient(135deg, #fbfaf6 0%, #f4f1ea 100%) !important;
}
#sidebar {
    background: linear-gradient(180deg, #101722 0%, #17202d 100%) !important;
    box-shadow: 16px 0 42px rgba(16, 23, 34, .22) !important;
}
#sidebar .brand-icon,
#sidebar .user-avatar,
.stat-icon,
.bg-primary,
.bg-success,
.bg-info,
.bg-warning {
    background: #a86f1d !important;
    color: #fff !important;
}
#sidebar .nav-link.active {
    background: rgba(168,111,29,.22) !important;
    border-color: rgba(168,111,29,.32) !important;
    box-shadow: inset 3px 0 0 #c9943d !important;
}
#topbar {
    background: rgba(255,255,255,.94) !important;
    border-bottom-color: #ebe3d7 !important;
}
.card,
.table-responsive,
.modal-content,
.clean-table-card,
.report-card,
.backup-card,
.health-card,
.portal-card,
.scan-card,
.payment-card {
    border-color: #efe8dc !important;
    box-shadow: 0 12px 34px rgba(16,23,34,.07) !important;
}
.card-header,
.table thead th,
.table-light,
.bg-light {
    background: #fbfaf6 !important;
    border-color: #e6dfd2 !important;
}
.btn-primary,
.btn-success,
.btn-info,
.btn-warning,
.btn-enterprise,
.btn-premium,
button[type="submit"].btn:not(.btn-outline-danger):not(.btn-danger) {
    background: linear-gradient(135deg, #a86f1d, #7c4a12) !important;
    border-color: #7c4a12 !important;
    color: #fff !important;
}
.btn-primary:hover,
.btn-success:hover,
.btn-info:hover,
.btn-warning:hover,
.btn-enterprise:hover,
.btn-premium:hover {
    background: linear-gradient(135deg, #7c4a12, #5f370c) !important;
    border-color: #5f370c !important;
}
.btn-outline-primary,
.btn-outline-success,
.btn-outline-info,
.btn-outline-warning {
    color: #7c4a12 !important;
    border-color: #c99a4c !important;
    background: #fff !important;
}
.btn-outline-primary:hover,
.btn-outline-success:hover,
.btn-outline-info:hover,
.btn-outline-warning:hover {
    color: #fff !important;
    background: #a86f1d !important;
    border-color: #7c4a12 !important;
}
.text-primary,
.text-success,
.text-info,
.text-warning,
.text-green {
    color: #7c4a12 !important;
}
.border-primary,
.border-success,
.border-info,
.border-warning {
    border-color: #d8b46d !important;
}
.bg-primary-subtle,
.bg-success-subtle,
.bg-info-subtle,
.bg-warning-subtle,
.alert-success,
.alert-info,
.alert-warning {
    background-color: #f8ead1 !important;
    border-color: #e4c37a !important;
    color: #5f370c !important;
}
.text-primary-emphasis,
.text-success-emphasis,
.text-info-emphasis,
.text-warning-emphasis {
    color: #5f370c !important;
}
.badge:not(.bg-danger):not(.text-bg-danger),
.clean-chip:not(.danger),
.role-badge,
.status-badge,
.health-badge.success,
.health-badge.warning {
    background: #f3f1ec !important;
    border: 1px solid #e6dfd2 !important;
    color: #374151 !important;
}
.badge.bg-primary,
.badge.bg-success,
.badge.bg-info,
.badge.bg-warning,
.badge.text-bg-primary,
.badge.text-bg-success,
.badge.text-bg-info,
.badge.text-bg-warning {
    background: #f3f1ec !important;
    color: #374151 !important;
    border: 1px solid #e6dfd2 !important;
}
.badge.bg-danger,
.badge.text-bg-danger,
.alert-danger,
.text-danger {
    color: #b42318 !important;
}
.alert-danger,
.bg-danger-subtle {
    background-color: #fef3f2 !important;
    border-color: #fecdca !important;
}
.form-control:focus,
.form-select:focus {
    border-color: #a86f1d !important;
    box-shadow: 0 0 0 4px rgba(168,111,29,.14) !important;
}
.progress-bar,
.list-group-item.active,
.nav-pills .nav-link.active,
.dropdown-item.active,
.dropdown-item:active {
    background-color: #a86f1d !important;
    border-color: #7c4a12 !important;
    color: #fff !important;
}
a,
.page-link {
    color: #7c4a12;
}
a:hover,
.page-link:hover {
    color: #5f370c;
}
.table-hover tbody tr:hover,
.table tbody tr:hover {
    background: rgba(168,111,29,.035) !important;
}
canvas {
    filter: saturate(.78);
}