@import url('https://fonts.googleapis.com/css2?family=DM+Serif+Display:ital@0;1&family=DM+Sans:ital,opsz,wght@0,9..40,300;0,9..40,400;0,9..40,500;0,9..40,600;0,9..40,700;1,9..40,400&display=swap');

:root {
  --bg:#0e0c0a;--bg2:#161210;--panel:#1d1917;--panel2:#262220;
  --border:#2e2825;--border2:#3d3530;
  --text:#f0ebe5;--muted:#9b8e84;--faint:#5a504a;
  --gold:#c9a84c;--gold2:#e8c96a;--gold-dim:rgba(201,168,76,.15);--gold-glow:rgba(201,168,76,.07);
  --teal:#4a9e8a;--teal-dim:rgba(74,158,138,.15);
  --rose:#c96a6a;--rose-dim:rgba(201,106,106,.15);
  --sky:#5a8ec9;--sky-dim:rgba(90,142,201,.15);
  --green:#6aa87a;--green-dim:rgba(106,168,122,.15);
  --amber:#c99a4a;--amber-dim:rgba(201,154,74,.15);
  --r:12px;--r-sm:8px;
  --shadow:0 4px 24px rgba(0,0,0,.4);--shadow-lg:0 8px 48px rgba(0,0,0,.6);
}
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html{font-size:15px}
body{background:var(--bg);color:var(--text);font-family:'DM Sans',sans-serif;line-height:1.6;min-height:100vh}
::-webkit-scrollbar{width:5px;height:5px}
::-webkit-scrollbar-track{background:var(--bg2)}
::-webkit-scrollbar-thumb{background:var(--border2);border-radius:3px}

/* LAYOUT */
.app-shell{display:grid;grid-template-columns:230px 1fr;min-height:100vh}
.sidebar{grid-row:1/-1;background:var(--bg2);border-right:1px solid var(--border);display:flex;flex-direction:column;position:sticky;top:0;height:100vh;overflow-y:auto}
.main-wrap{display:flex;flex-direction:column;min-width:0}

/* SIDEBAR */
.sidebar-brand{padding:22px 20px 16px;border-bottom:1px solid var(--border)}
.brand-icon{width:38px;height:38px;background:linear-gradient(135deg,var(--gold),var(--gold2));border-radius:9px;display:grid;place-items:center;margin-bottom:8px;color:#1a1200;font-size:1rem}
.brand-name{font-family:'DM Serif Display',serif;font-size:1.05rem;color:var(--text);line-height:1.2}
.brand-sub{font-size:.68rem;color:var(--muted);text-transform:uppercase;letter-spacing:.08em;margin-top:2px}
.sidebar-user{padding:12px 20px;border-bottom:1px solid var(--border);display:flex;align-items:center;gap:9px}
.user-avatar{width:32px;height:32px;border-radius:50%;background:var(--gold-dim);border:1px solid var(--gold);display:grid;place-items:center;font-weight:700;font-size:.75rem;color:var(--gold);flex-shrink:0}
.user-name{font-size:.8rem;font-weight:600;line-height:1.2}
.user-role{font-size:.68rem;color:var(--muted);text-transform:capitalize}
.sidebar-nav{flex:1;padding:10px 0}
.nav-section{padding:12px 16px 3px;font-size:.6rem;font-weight:700;text-transform:uppercase;letter-spacing:.1em;color:var(--faint)}
.nav-link{display:flex;align-items:center;gap:9px;padding:8px 20px;color:var(--muted);text-decoration:none;font-size:.82rem;font-weight:500;transition:all .14s;border-left:2px solid transparent}
.nav-link:hover{color:var(--text);background:var(--panel)}
.nav-link.active{color:var(--gold);background:var(--gold-glow);border-left-color:var(--gold)}
.nav-link i{width:16px;text-align:center;font-size:.88rem;flex-shrink:0}
.nav-badge{margin-left:auto;background:var(--rose);color:#fff;font-size:.6rem;font-weight:700;padding:1px 6px;border-radius:10px}
.sidebar-footer{padding:14px 20px;border-top:1px solid var(--border)}
.sidebar-footer a{display:flex;align-items:center;gap:8px;color:var(--rose);text-decoration:none;font-size:.8rem;padding:6px 0;transition:opacity .14s}
.sidebar-footer a:hover{opacity:.75}

/* TOPBAR */
.topbar{background:var(--bg2);border-bottom:1px solid var(--border);padding:14px 24px;display:flex;align-items:center;justify-content:space-between;gap:16px;position:sticky;top:0;z-index:100}
.page-heading{font-family:'DM Serif Display',serif;font-size:1.3rem;color:var(--text)}
.page-sub{font-size:.72rem;color:var(--muted);margin-top:1px}
.topbar-actions{display:flex;align-items:center;gap:8px}

/* MAIN */
.main-content{padding:24px}

/* CARDS */
.card{background:var(--panel);border:1px solid var(--border);border-radius:var(--r);overflow:hidden}
.card-header{padding:14px 18px;border-bottom:1px solid var(--border);display:flex;align-items:center;justify-content:space-between}
.card-header h5,.card-header h6{font-family:'DM Serif Display',serif;font-size:.95rem;font-weight:400;color:var(--text);margin:0}
.card-body{padding:18px}

/* STAT CARDS */
.stat-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:14px;margin-bottom:22px}
.stat-card{background:var(--panel);border:1px solid var(--border);border-radius:var(--r);padding:18px;position:relative;overflow:hidden;transition:transform .2s,border-color .2s}
.stat-card:hover{transform:translateY(-2px);border-color:var(--border2)}
.stat-card::before{content:'';position:absolute;top:0;left:0;right:0;height:2px}
.stat-card.gold::before{background:linear-gradient(90deg,var(--gold),var(--gold2))}
.stat-card.teal::before{background:var(--teal)}
.stat-card.rose::before{background:var(--rose)}
.stat-card.sky::before{background:var(--sky)}
.stat-card.green::before{background:var(--green)}
.stat-card.amber::before{background:var(--amber)}
.stat-icon{width:38px;height:38px;border-radius:var(--r-sm);display:grid;place-items:center;font-size:.95rem;margin-bottom:10px}
.stat-icon.gold{background:var(--gold-dim);color:var(--gold)}
.stat-icon.teal{background:var(--teal-dim);color:var(--teal)}
.stat-icon.rose{background:var(--rose-dim);color:var(--rose)}
.stat-icon.sky{background:var(--sky-dim);color:var(--sky)}
.stat-icon.green{background:var(--green-dim);color:var(--green)}
.stat-icon.amber{background:var(--amber-dim);color:var(--amber)}
.stat-label{font-size:.68rem;color:var(--muted);text-transform:uppercase;letter-spacing:.06em;margin-bottom:5px}
.stat-value{font-family:'DM Serif Display',serif;font-size:1.6rem;color:var(--text);line-height:1}
.stat-sub{font-size:.7rem;color:var(--muted);margin-top:5px}

/* TABLES */
.data-table-wrap{overflow-x:auto}
.data-table{width:100%;border-collapse:collapse}
.data-table thead tr{border-bottom:1px solid var(--border)}
.data-table th{padding:9px 13px;font-size:.67rem;font-weight:700;text-transform:uppercase;letter-spacing:.07em;color:var(--muted);text-align:left;white-space:nowrap}
.data-table tbody tr{border-bottom:1px solid var(--border);transition:background .12s}
.data-table tbody tr:last-child{border-bottom:none}
.data-table tbody tr:hover{background:var(--panel2)}
.data-table td{padding:11px 13px;font-size:.82rem;color:var(--text);vertical-align:middle}

/* BADGES */
.badge{display:inline-flex;align-items:center;gap:3px;padding:2px 8px;border-radius:20px;font-size:.67rem;font-weight:700;letter-spacing:.02em}
.badge-gold{background:var(--gold-dim);color:var(--gold);border:1px solid rgba(201,168,76,.25)}
.badge-teal{background:var(--teal-dim);color:var(--teal);border:1px solid rgba(74,158,138,.25)}
.badge-rose{background:var(--rose-dim);color:var(--rose);border:1px solid rgba(201,106,106,.25)}
.badge-sky{background:var(--sky-dim);color:var(--sky);border:1px solid rgba(90,142,201,.25)}
.badge-green{background:var(--green-dim);color:var(--green);border:1px solid rgba(106,168,122,.25)}
.badge-amber{background:var(--amber-dim);color:var(--amber);border:1px solid rgba(201,154,74,.25)}
.badge-muted{background:var(--panel2);color:var(--muted);border:1px solid var(--border2)}

/* BUTTONS */
.btn{display:inline-flex;align-items:center;gap:6px;padding:8px 16px;border-radius:var(--r-sm);border:1px solid transparent;font-family:'DM Sans',sans-serif;font-size:.8rem;font-weight:600;cursor:pointer;text-decoration:none;transition:all .14s;white-space:nowrap;line-height:1.4}
.btn-sm{padding:4px 11px;font-size:.73rem}
.btn-lg{padding:11px 22px;font-size:.88rem}
.btn-primary{background:linear-gradient(135deg,var(--gold),var(--gold2));color:#0e0c0a;border-color:var(--gold);font-weight:700}
.btn-primary:hover{opacity:.9;transform:translateY(-1px);box-shadow:0 4px 14px rgba(201,168,76,.3);color:#0e0c0a;text-decoration:none}
.btn-secondary{background:var(--panel2);color:var(--text);border-color:var(--border2)}
.btn-secondary:hover{background:var(--border);color:var(--text);text-decoration:none}
.btn-danger{background:var(--rose-dim);color:var(--rose);border-color:rgba(201,106,106,.3)}
.btn-danger:hover{background:rgba(201,106,106,.25);color:var(--rose);text-decoration:none}
.btn-teal{background:var(--teal-dim);color:var(--teal);border-color:rgba(74,158,138,.3)}
.btn-teal:hover{background:rgba(74,158,138,.25);color:var(--teal);text-decoration:none}
.btn-sky{background:var(--sky-dim);color:var(--sky);border-color:rgba(90,142,201,.3)}
.btn-sky:hover{background:rgba(90,142,201,.25);color:var(--sky);text-decoration:none}
.btn-success{background:var(--green-dim);color:var(--green);border-color:rgba(106,168,122,.3)}
.btn-success:hover{background:rgba(106,168,122,.25);color:var(--green);text-decoration:none}
.btn-icon{padding:6px}
.btn-icon.btn-sm{padding:4px}

/* FORMS */
.form-group{margin-bottom:16px}
.form-label{display:block;font-size:.7rem;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);margin-bottom:5px}
.form-control,.form-select{width:100%;padding:9px 13px;background:var(--bg2);border:1px solid var(--border2);border-radius:var(--r-sm);color:var(--text);font-family:'DM Sans',sans-serif;font-size:.82rem;transition:border-color .14s,box-shadow .14s;outline:none;appearance:none;-webkit-appearance:none}
.form-control:focus,.form-select:focus{border-color:var(--gold);box-shadow:0 0 0 3px rgba(201,168,76,.12)}
.form-control::placeholder{color:var(--faint)}
.form-select{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 16 16'%3E%3Cpath fill='%235a504a' d='M7.247 11.14L2.451 5.658C1.885 5.013 2.345 4 3.204 4h9.592a1 1 0 0 1 .753 1.659l-4.796 5.48a1 1 0 0 1-1.506 0z'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 11px center;padding-right:32px}
.form-select option{background:var(--panel)}
textarea.form-control{resize:vertical;min-height:75px}
.input-group{display:flex;gap:0}
.input-group .form-control{border-radius:var(--r-sm) 0 0 var(--r-sm)}
.input-group .btn{border-radius:0 var(--r-sm) var(--r-sm) 0}
.form-check{display:flex;align-items:center;gap:7px}
.form-check-input{width:15px;height:15px;accent-color:var(--gold);cursor:pointer}
.form-row{display:grid;gap:14px}
.form-row.cols-2{grid-template-columns:1fr 1fr}
.form-row.cols-3{grid-template-columns:1fr 1fr 1fr}

/* ALERTS */
.alert{padding:11px 14px;border-radius:var(--r-sm);font-size:.82rem;display:flex;align-items:flex-start;gap:9px;margin-bottom:18px}
.alert-success{background:var(--green-dim);color:var(--green);border:1px solid rgba(106,168,122,.25)}
.alert-danger{background:var(--rose-dim);color:var(--rose);border:1px solid rgba(201,106,106,.25)}
.alert-warning{background:var(--amber-dim);color:var(--amber);border:1px solid rgba(201,154,74,.25)}
.alert-info{background:var(--sky-dim);color:var(--sky);border:1px solid rgba(90,142,201,.25)}
.alert-gold{background:var(--gold-dim);color:var(--gold);border:1px solid rgba(201,168,76,.25)}

/* MODALS */
.modal-overlay{display:none;position:fixed;inset:0;background:rgba(0,0,0,.72);z-index:1000;align-items:center;justify-content:center;padding:20px;backdrop-filter:blur(4px)}
.modal-overlay.open{display:flex}
.modal{background:var(--panel);border:1px solid var(--border2);border-radius:var(--r);width:100%;max-width:540px;max-height:90vh;overflow-y:auto;box-shadow:var(--shadow-lg);animation:modalIn .18s ease}
@keyframes modalIn{from{opacity:0;transform:scale(.95) translateY(12px)}to{opacity:1;transform:scale(1) translateY(0)}}
.modal-header{padding:16px 20px;border-bottom:1px solid var(--border);display:flex;align-items:center;justify-content:space-between}
.modal-title{font-family:'DM Serif Display',serif;font-size:1rem;color:var(--text)}
.modal-close{background:var(--panel2);border:1px solid var(--border2);color:var(--muted);border-radius:6px;width:26px;height:26px;display:grid;place-items:center;cursor:pointer;transition:all .14s;font-size:.8rem}
.modal-close:hover{color:var(--text)}
.modal-body{padding:20px}
.modal-footer{padding:14px 20px;border-top:1px solid var(--border);display:flex;gap:9px;justify-content:flex-end}

/* FILTER BAR */
.filter-bar{background:var(--panel);border:1px solid var(--border);border-radius:var(--r);padding:14px 18px;margin-bottom:18px}
.filter-row{display:flex;gap:10px;align-items:flex-end;flex-wrap:wrap}
.filter-group{flex:1;min-width:130px}
.filter-group label{font-size:.68rem;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);display:block;margin-bottom:4px}

/* MISC UTILS */
.divider{height:1px;background:var(--border);margin:18px 0}
.text-gold{color:var(--gold)}.text-teal{color:var(--teal)}.text-rose{color:var(--rose)}
.text-sky{color:var(--sky)}.text-green{color:var(--green)}.text-amber{color:var(--amber)}
.text-muted{color:var(--muted)}.text-faint{color:var(--faint)}
.fw-600{font-weight:600}.fw-700{font-weight:700}
.flex{display:flex}.flex-col{display:flex;flex-direction:column}
.items-center{align-items:center}.items-start{align-items:flex-start}
.justify-between{justify-content:space-between}.justify-end{justify-content:flex-end}
.flex-1{flex:1}.flex-wrap{flex-wrap:wrap}.gap-6{gap:6px}.gap-8{gap:8px}.gap-10{gap:10px}.gap-12{gap:12px}.gap-16{gap:16px}
.grid-2{display:grid;grid-template-columns:1fr 1fr;gap:18px}
.grid-3{display:grid;grid-template-columns:1fr 1fr 1fr;gap:18px}
.mb-0{margin-bottom:0}.mb-8{margin-bottom:8px}.mb-12{margin-bottom:12px}
.mb-16{margin-bottom:16px}.mb-20{margin-bottom:20px}.mb-24{margin-bottom:24px}
.mt-4{margin-top:4px}.mt-8{margin-top:8px}.mt-16{margin-top:16px}.mt-20{margin-top:20px}
.w-full{width:100%}.min-w-0{min-width:0}.no-wrap{white-space:nowrap}
.page-header{display:flex;align-items:flex-start;justify-content:space-between;gap:14px;margin-bottom:22px;flex-wrap:wrap}
.page-title{font-family:'DM Serif Display',serif;font-size:1.5rem;color:var(--text);line-height:1.2}
.page-desc{font-size:.78rem;color:var(--muted);margin-top:3px}
.id-chip{font-family:'Courier New',monospace;font-size:.72rem;background:var(--panel2);border:1px solid var(--border2);border-radius:4px;padding:1px 5px;color:var(--muted)}
.progress{height:5px;background:var(--panel2);border-radius:3px;overflow:hidden;margin-top:5px}
.progress-bar{height:100%;border-radius:3px;background:linear-gradient(90deg,var(--gold),var(--gold2))}
.item-row{background:var(--panel2);border:1px solid var(--border);border-radius:var(--r-sm);padding:13px;margin-bottom:9px}
.empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:52px 20px;color:var(--faint);text-align:center;gap:10px}
.empty-state i{font-size:2.2rem}
.empty-state p{font-size:.85rem}

/* LOGIN */
.login-wrapper{min-height:100vh;display:grid;grid-template-columns:1fr 1fr;background:var(--bg)}
.login-art{background:linear-gradient(160deg,#1a1208 0%,#0e0c0a 50%,#12100e 100%);display:flex;flex-direction:column;justify-content:center;padding:56px;border-right:1px solid var(--border);position:relative;overflow:hidden}
.login-art::before{content:'';position:absolute;inset:0;background:radial-gradient(ellipse at 30% 50%,rgba(201,168,76,.08) 0%,transparent 60%)}
.login-art .art-title{font-family:'DM Serif Display',serif;font-size:3.2rem;line-height:1.15;color:var(--text);position:relative}
.login-art .art-title span{color:var(--gold)}
.login-art .art-desc{color:var(--muted);font-size:.95rem;margin-top:14px;max-width:340px;position:relative}
.login-art .art-deco{position:absolute;bottom:56px;right:-36px;width:220px;height:220px;border:1px solid var(--border);border-radius:50%;opacity:.35}
.login-art .art-deco::before{content:'';position:absolute;inset:18px;border:1px solid var(--border);border-radius:50%}
.login-form-wrap{display:flex;flex-direction:column;justify-content:center;padding:56px}
.login-logo{width:46px;height:46px;background:linear-gradient(135deg,var(--gold),var(--gold2));border-radius:11px;display:grid;place-items:center;color:#1a1200;font-size:1.25rem;margin-bottom:24px}
.login-title{font-family:'DM Serif Display',serif;font-size:1.7rem;margin-bottom:5px}
.login-sub{color:var(--muted);font-size:.85rem;margin-bottom:32px}
.login-creds{background:var(--panel);border:1px solid var(--border);border-radius:var(--r-sm);padding:12px 14px;font-size:.75rem;color:var(--muted);margin-top:20px}
.login-creds strong{color:var(--text);display:block;margin-bottom:5px}

/* PRINT */
@media print{.sidebar,.topbar,.no-print{display:none!important}body{background:#fff;color:#000;font-family:Arial,sans-serif}.main-content{padding:0}.card{border:1px solid #ccc;break-inside:avoid}.stat-card{border:1px solid #ccc}}

/* RESPONSIVE */
@media(max-width:900px){.app-shell{grid-template-columns:1fr}.sidebar{display:none}.main-content{padding:16px}.grid-2,.grid-3{grid-template-columns:1fr}.stat-grid{grid-template-columns:repeat(2,1fr)}.login-wrapper{grid-template-columns:1fr}.login-art{display:none}}

/* ── BOOTSTRAP COMPATIBILITY OVERRIDES ───────────── */
/* These make Bootstrap-powered pages (not fully rewritten) look correct with our dark theme */
body .container-fluid { max-width:100% }
body h2 { font-family:'DM Serif Display',serif; color:var(--text); font-weight:400 }
body h3, body h4, body h5 { color:var(--text) }
body .card { background:var(--panel)!important; border-color:var(--border)!important; color:var(--text) }
body .card-header { background:rgba(0,0,0,.2)!important; border-color:var(--border)!important; color:var(--text) }
body .card-header.bg-dark { background:rgba(0,0,0,.4)!important }
body .card-header.bg-primary { background:rgba(201,168,76,.15)!important; border-color:rgba(201,168,76,.2)!important }
body .card-header.bg-success { background:var(--green-dim)!important; border-color:rgba(106,168,122,.2)!important }
body .card-header.bg-danger  { background:var(--rose-dim)!important; border-color:rgba(201,106,106,.2)!important }
body .card-body, body .card-footer { background:transparent }
body .table { color:var(--text)!important }
body .table > :not(caption) > * > * { background:transparent!important; border-color:var(--border)!important; color:var(--text) }
body .table-striped > tbody > tr:nth-of-type(odd) > * { background:rgba(255,255,255,.02)!important }
body .table-striped > tbody > tr:hover > *, body tbody tr:hover { background:var(--panel2)!important }
body .table thead th { color:var(--muted); font-size:.7rem; text-transform:uppercase; letter-spacing:.06em; font-weight:700; border-color:var(--border)!important }
body .table-sm td, body .table-sm th { padding:9px 12px }
body .form-control, body .form-select { background:var(--bg2)!important; border-color:var(--border2)!important; color:var(--text)!important }
body .form-control:focus, body .form-select:focus { border-color:var(--gold)!important; box-shadow:0 0 0 3px rgba(201,168,76,.12)!important }
body .form-label { color:var(--muted); font-size:.72rem; font-weight:700; text-transform:uppercase; letter-spacing:.06em }
body .form-control::placeholder { color:var(--faint) }
body .input-group-text { background:var(--panel2)!important; border-color:var(--border2)!important; color:var(--muted) }
body .btn-primary { background:linear-gradient(135deg,var(--gold),var(--gold2))!important; border-color:var(--gold)!important; color:#0e0c0a!important; font-weight:700 }
body .btn-secondary { background:var(--panel2)!important; border-color:var(--border2)!important; color:var(--text)!important }
body .btn-success { background:var(--green-dim)!important; border-color:rgba(106,168,122,.3)!important; color:var(--green)!important }
body .btn-danger { background:var(--rose-dim)!important; border-color:rgba(201,106,106,.3)!important; color:var(--rose)!important }
body .btn-warning { background:var(--amber-dim)!important; border-color:rgba(201,154,74,.3)!important; color:var(--amber)!important }
body .btn-info { background:var(--sky-dim)!important; border-color:rgba(90,142,201,.3)!important; color:var(--sky)!important }
body .btn-outline-success { border-color:var(--green)!important; color:var(--green)!important }
body .btn-outline-success:hover { background:var(--green-dim)!important }
body .alert-success { background:var(--green-dim)!important; border-color:rgba(106,168,122,.25)!important; color:var(--green)!important }
body .alert-danger  { background:var(--rose-dim)!important;  border-color:rgba(201,106,106,.25)!important; color:var(--rose)!important }
body .alert-warning { background:var(--amber-dim)!important; border-color:rgba(201,154,74,.25)!important; color:var(--amber)!important }
body .alert-info    { background:var(--sky-dim)!important;   border-color:rgba(90,142,201,.25)!important; color:var(--sky)!important }
body .badge.bg-primary  { background:var(--sky-dim)!important;   color:var(--sky)!important }
body .badge.bg-success  { background:var(--green-dim)!important; color:var(--green)!important }
body .badge.bg-danger   { background:var(--rose-dim)!important;  color:var(--rose)!important }
body .badge.bg-warning  { background:var(--amber-dim)!important; color:var(--amber)!important }
body .badge.bg-info     { background:var(--sky-dim)!important;   color:var(--sky)!important }
body .badge.bg-secondary{ background:var(--panel2)!important;    color:var(--muted)!important }
body .badge.bg-dark     { background:rgba(0,0,0,.4)!important;   color:var(--text)!important }
body .modal-content { background:var(--panel)!important; border-color:var(--border2)!important; color:var(--text) }
body .modal-header { border-color:var(--border)!important }
body .modal-footer { border-color:var(--border)!important }
body .modal-title { color:var(--text); font-family:'DM Serif Display',serif }
body .btn-close { filter:invert(1) }
body .dropdown-menu { background:var(--panel)!important; border-color:var(--border2)!important }
body .dropdown-item { color:var(--text)!important }
body .dropdown-item:hover { background:var(--panel2)!important }
body .dropdown-divider { border-color:var(--border)!important }
body .nav-tabs .nav-link { color:var(--muted); border-color:transparent }
body .nav-tabs .nav-link.active { color:var(--gold); background:var(--gold-glow); border-color:var(--border) var(--border) transparent }
body .nav-tabs { border-color:var(--border) }
body .tab-content { background:var(--panel); border:1px solid var(--border); border-top:none; border-radius:0 0 var(--r) var(--r); padding:18px }
body .border { border-color:var(--border)!important }
body .border-success { border-color:rgba(106,168,122,.35)!important }
body .border-danger  { border-color:rgba(201,106,106,.35)!important }
body .text-muted { color:var(--muted)!important }
body .text-success { color:var(--green)!important }
body .text-danger  { color:var(--rose)!important }
body .text-warning { color:var(--amber)!important }
body .text-info    { color:var(--sky)!important }
body .text-primary { color:var(--gold)!important }
body .bg-primary  { background:var(--gold-dim)!important; color:var(--gold)!important }
body .bg-success  { background:var(--green-dim)!important; color:var(--green)!important }
body .bg-danger   { background:var(--rose-dim)!important; color:var(--rose)!important }
body .bg-warning  { background:var(--amber-dim)!important; color:var(--amber)!important }
body .bg-info     { background:var(--sky-dim)!important; color:var(--sky)!important }
body .bg-dark     { background:rgba(0,0,0,.5)!important; color:var(--text)!important }
body .bg-light    { background:var(--panel2)!important; color:var(--text) }
body select option { background:var(--panel); color:var(--text) }
body .text-white  { color:var(--text)!important }
body hr { border-color:var(--border)!important; opacity:1 }
body code { background:var(--panel2); color:var(--gold); padding:1px 5px; border-radius:3px; font-size:.85em }
body .navbar { display:none!important }

/* Adjust body + navbar-removed pages */
body { padding-top:0!important }
.mt-4 { margin-top:0!important }

/* LIGHT THEME — vibrant & colourful */
body.theme-light {
  /* Backgrounds */
  --bg:#f0f4ff;--bg2:#ffffff;--panel:#ffffff;--panel2:#f5f7ff;
  --border:#dde3f5;--border2:#c4cef0;
  /* Text */
  --text:#12133a;--muted:#5a6080;--faint:#a0a8c8;
  /* Accent — vivid indigo-gold primary */
  --gold:#6c47ff;--gold2:#9b7fff;
  --gold-dim:rgba(108,71,255,.10);--gold-glow:rgba(108,71,255,.06);
  /* Semantic colours — full-saturation versions */
  --teal:#00a98f;--teal-dim:rgba(0,169,143,.12);
  --rose:#e8365d;--rose-dim:rgba(232,54,93,.12);
  --sky:#1a7de8;--sky-dim:rgba(26,125,232,.12);
  --green:#18b06a;--green-dim:rgba(24,176,106,.12);
  --amber:#f5920a;--amber-dim:rgba(245,146,10,.12);
  --shadow:0 4px 24px rgba(108,71,255,.10);--shadow-lg:0 8px 48px rgba(108,71,255,.18);
}

/* Scrollbar */
body.theme-light ::-webkit-scrollbar-track{background:#eef0fb}
body.theme-light ::-webkit-scrollbar-thumb{background:var(--border2)}

/* Colourful gradient sidebar */
body.theme-light .sidebar{
  background:linear-gradient(170deg,#1e1560 0%,#3a2fa0 45%,#5b3ec9 75%,#7b5ee8 100%);
  border-right:none;
}
body.theme-light .sidebar-brand{border-bottom-color:rgba(255,255,255,.12)}
body.theme-light .brand-icon{background:linear-gradient(135deg,#f5920a,#ffc94a);color:#1e1560}
body.theme-light .brand-name{color:#fff}
body.theme-light .brand-sub{color:rgba(255,255,255,.55)}
body.theme-light .sidebar-user{border-bottom-color:rgba(255,255,255,.12)}
body.theme-light .user-avatar{background:rgba(255,255,255,.18);border-color:rgba(255,255,255,.55);color:#fff}
body.theme-light .user-name{color:#fff}
body.theme-light .user-role{color:rgba(255,255,255,.6)}
body.theme-light .nav-section{color:rgba(255,255,255,.38)}
body.theme-light .nav-link{color:rgba(255,255,255,.65)}
body.theme-light .nav-link:hover{color:#fff;background:rgba(255,255,255,.12)}
body.theme-light .nav-link.active{color:#fff;background:rgba(255,255,255,.2);border-left-color:#ffc94a}
body.theme-light .sidebar-footer{border-top-color:rgba(255,255,255,.12)}
body.theme-light .sidebar-footer a{color:#ff8fa8}
body.theme-light .sidebar-footer a:hover{opacity:.8}

/* Topbar */
body.theme-light .topbar{
  background:linear-gradient(90deg,#6c47ff 0%,#1a7de8 100%);
  border-bottom:none;
  box-shadow:0 2px 16px rgba(108,71,255,.25);
}
body.theme-light .page-heading{color:#fff}
body.theme-light .page-sub{color:rgba(255,255,255,.7)}

/* Main background with subtle pattern */
body.theme-light .main-content{background:var(--bg)}

/* Cards */
body.theme-light .card{
  background:#fff;
  border-color:var(--border);
  box-shadow:0 2px 12px rgba(108,71,255,.07);
}
body.theme-light .card-header{
  background:linear-gradient(90deg,rgba(108,71,255,.06),rgba(26,125,232,.04));
  border-bottom-color:var(--border);
}

/* Stat cards — vivid top stripe + icon tint */
body.theme-light .stat-card{box-shadow:0 2px 12px rgba(108,71,255,.08)}
body.theme-light .stat-card.gold::before{background:linear-gradient(90deg,#6c47ff,#9b7fff)}
body.theme-light .stat-card.teal::before{background:linear-gradient(90deg,#00a98f,#00d4b4)}
body.theme-light .stat-card.rose::before{background:linear-gradient(90deg,#e8365d,#ff7096)}
body.theme-light .stat-card.sky::before{background:linear-gradient(90deg,#1a7de8,#5aade8)}
body.theme-light .stat-card.green::before{background:linear-gradient(90deg,#18b06a,#52d49a)}
body.theme-light .stat-card.amber::before{background:linear-gradient(90deg,#f5920a,#ffc94a)}

/* Tables */
body.theme-light .data-table th{color:var(--muted)}
body.theme-light .data-table tbody tr:hover{background:#f0f4ff}

/* Badges — more saturated */
body.theme-light .badge-gold{background:rgba(108,71,255,.12);color:#6c47ff;border-color:rgba(108,71,255,.25)}
body.theme-light .badge-teal{background:rgba(0,169,143,.12);color:#00a98f;border-color:rgba(0,169,143,.25)}
body.theme-light .badge-rose{background:rgba(232,54,93,.12);color:#e8365d;border-color:rgba(232,54,93,.25)}
body.theme-light .badge-sky{background:rgba(26,125,232,.12);color:#1a7de8;border-color:rgba(26,125,232,.25)}
body.theme-light .badge-green{background:rgba(24,176,106,.12);color:#18b06a;border-color:rgba(24,176,106,.25)}
body.theme-light .badge-amber{background:rgba(245,146,10,.12);color:#f5920a;border-color:rgba(245,146,10,.25)}

/* Forms */
body.theme-light .form-control,
body.theme-light .form-select{background:#fff!important;border-color:var(--border2)!important;color:var(--text)!important}
body.theme-light .form-control:focus,
body.theme-light .form-select:focus{border-color:#6c47ff!important;box-shadow:0 0 0 3px rgba(108,71,255,.12)!important}
body.theme-light .input-group-text{background:#f0f4ff!important;border-color:var(--border2)!important;color:var(--muted)}
body.theme-light .form-control::placeholder{color:#a0a8c8}

/* Buttons */
body.theme-light .btn-primary{background:linear-gradient(135deg,#6c47ff,#9b7fff)!important;border-color:#6c47ff!important;color:#fff!important;font-weight:700}
body.theme-light .btn-success{background:linear-gradient(135deg,#18b06a,#52d49a)!important;border-color:#18b06a!important;color:#fff!important}
body.theme-light .btn-danger{background:linear-gradient(135deg,#e8365d,#ff7096)!important;border-color:#e8365d!important;color:#fff!important}
body.theme-light .btn-warning{background:linear-gradient(135deg,#f5920a,#ffc94a)!important;border-color:#f5920a!important;color:#fff!important}
body.theme-light .btn-info{background:linear-gradient(135deg,#1a7de8,#5aade8)!important;border-color:#1a7de8!important;color:#fff!important}
body.theme-light .btn-secondary{background:#f0f4ff!important;border-color:var(--border2)!important;color:var(--text)!important}

/* Alerts */
body.theme-light .alert-success{background:rgba(24,176,106,.1)!important;border-color:rgba(24,176,106,.3)!important;color:#18b06a!important}
body.theme-light .alert-danger{background:rgba(232,54,93,.1)!important;border-color:rgba(232,54,93,.3)!important;color:#e8365d!important}
body.theme-light .alert-warning{background:rgba(245,146,10,.1)!important;border-color:rgba(245,146,10,.3)!important;color:#f5920a!important}
body.theme-light .alert-info{background:rgba(26,125,232,.1)!important;border-color:rgba(26,125,232,.3)!important;color:#1a7de8!important}

/* Modals & dropdowns */
body.theme-light .modal-content{background:#fff!important;border-color:var(--border2)!important;color:var(--text)}
body.theme-light .modal-header,.modal-footer{border-color:var(--border)!important}
body.theme-light .btn-close{filter:none}
body.theme-light .dropdown-menu{background:#fff!important;border-color:var(--border2)!important;box-shadow:0 8px 32px rgba(108,71,255,.12)}
body.theme-light .dropdown-item{color:var(--text)!important}
body.theme-light .dropdown-item:hover{background:#f0f4ff!important}

/* Nav tabs */
body.theme-light .nav-tabs .nav-link{color:var(--muted);border-color:transparent}
body.theme-light .nav-tabs .nav-link.active{color:#6c47ff;background:rgba(108,71,255,.06);border-color:var(--border) var(--border) transparent}
body.theme-light .nav-tabs{border-color:var(--border)}
body.theme-light .tab-content{background:#fff;border:1px solid var(--border);border-top:none;border-radius:0 0 var(--r) var(--r);padding:18px}

/* Bootstrap overrides for light */
body.theme-light .card.bg-light,.card.bg-white{background:#fff!important}
body.theme-light .table>:not(caption)>*>*{background:transparent!important;border-color:var(--border)!important;color:var(--text)}
body.theme-light .table-striped>tbody>tr:nth-of-type(odd)>*{background:rgba(108,71,255,.03)!important}
body.theme-light .card-header.bg-primary{background:linear-gradient(90deg,rgba(108,71,255,.12),rgba(26,125,232,.08))!important;border-color:rgba(108,71,255,.2)!important}
body.theme-light .card-header.bg-success{background:rgba(24,176,106,.1)!important;border-color:rgba(24,176,106,.2)!important}
body.theme-light .card-header.bg-danger{background:rgba(232,54,93,.1)!important;border-color:rgba(232,54,93,.2)!important}
body.theme-light .text-primary{color:#6c47ff!important}
body.theme-light .text-success{color:#18b06a!important}
body.theme-light .text-danger{color:#e8365d!important}
body.theme-light .text-warning{color:#f5920a!important}
body.theme-light .text-info{color:#1a7de8!important}
body.theme-light .text-muted{color:var(--muted)!important}
body.theme-light .text-white{color:var(--text)!important}
body.theme-light select option{background:#fff;color:var(--text)}
body.theme-light hr{border-color:var(--border)!important;opacity:1}
body.theme-light code{background:#f0f4ff;color:#6c47ff;padding:1px 5px;border-radius:3px;font-size:.85em}

/* Theme toggle button in light mode */
body.theme-light .theme-toggle{color:rgba(255,255,255,.65)}
body.theme-light .theme-toggle:hover{color:#fff;background:rgba(255,255,255,.12)}

/* THEME TOGGLE BUTTON */
.theme-toggle{display:flex;align-items:center;gap:8px;width:100%;padding:8px 20px;background:none;border:none;cursor:pointer;color:var(--muted);font-size:.82rem;font-weight:500;font-family:'DM Sans',sans-serif;text-align:left;transition:all .14s;border-left:2px solid transparent}
.theme-toggle:hover{color:var(--text);background:var(--panel)}
.theme-toggle i{width:16px;text-align:center;font-size:.88rem;flex-shrink:0}
.theme-toggle .toggle-label{flex:1}
