*{margin:0;padding:0;box-sizing:border-box;}
:root{
  --bg:#07090f;--s1:#0d1117;--s2:#111720;--s3:#161d2a;
  --bdr:#1e2d3d;--bdr2:#263545;
  --acc:#f97316;--acc2:#fb923c;
  --text:#e2eaf5;--text2:#8899aa;--text3:#4a5f72;
  --green:#22c55e;--red:#ef4444;--blue:#3b82f6;
  --yellow:#eab308;--purple:#a855f7;
  --r:14px;--r2:10px;
}
/* Light Theme */
body.light{
  --bg:#f0f4f8;--s1:#ffffff;--s2:#f8fafc;--s3:#eef2f7;
  --bdr:#d1dce8;--bdr2:#b8c8d8;
  --text:#1a2535;--text2:#5a6a7a;--text3:#94a3b5;
}
body.light .topbar{background:rgba(240,244,248,.92);}
body.light .sidebar{background:#fff;}
body.light .stat{box-shadow:0 2px 8px rgba(0,0,0,.06);}
body.light .modal{box-shadow:0 20px 60px rgba(0,0,0,.15);}
/* Theme + Lang switch */
.tl-switch{display:flex;align-items:center;gap:.4rem;padding:.38rem .7rem;border-radius:var(--r2);border:1px solid var(--bdr);background:var(--s3);cursor:pointer;font-size:.78rem;font-weight:600;color:var(--text2);transition:all .18s;user-select:none;}
.tl-switch:hover{border-color:var(--bdr2);color:var(--text);}
/* Print + Export buttons */
.btn-export{background:rgba(34,197,94,.08);color:var(--green);border:1px solid rgba(34,197,94,.2);}
.btn-export:hover{background:rgba(34,197,94,.18);}
.btn-import{background:rgba(59,130,246,.08);color:var(--blue);border:1px solid rgba(59,130,246,.2);}
.btn-import:hover{background:rgba(59,130,246,.18);}
.btn-print{background:rgba(168,85,247,.08);color:var(--purple);border:1px solid rgba(168,85,247,.2);}
.btn-print:hover{background:rgba(168,85,247,.18);}
/* Print styles */
@media print{
  .sidebar,.topbar,.filters,.btn,.tabs,.no-print{display:none!important;}
  .main{margin-left:0!important;}
  .page{display:block!important;}
  body{background:#fff!important;color:#000!important;}
  .stat,.sec{border:1px solid #ccc!important;background:#fff!important;}
  .stat-val,.amount-pos,.amount-neg{color:#000!important;}
}
body{font-family:'Plus Jakarta Sans',sans-serif;background:var(--bg);color:var(--text);min-height:100vh;overflow-x:hidden;}
#loginPage{display:flex;align-items:center;justify-content:center;min-height:100vh;background:radial-gradient(ellipse 600px 500px at 80% 20%,rgba(249,115,22,.06),transparent 70%),radial-gradient(ellipse 400px 400px at 10% 80%,rgba(59,130,246,.04),transparent 60%),var(--bg);}
#loginPage::before{content:'';position:fixed;inset:0;background-image:linear-gradient(rgba(255,255,255,.015) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.015) 1px,transparent 1px);background-size:48px 48px;pointer-events:none;}
.login-wrap{position:relative;z-index:1;width:420px;background:var(--s2);border:1px solid var(--bdr);border-radius:20px;padding:2.8rem 2.5rem;box-shadow:0 40px 80px rgba(0,0,0,.6);}
.login-logo{display:flex;align-items:center;gap:12px;margin-bottom:2rem;}
.login-logo-icon{width:48px;height:48px;border-radius:12px;background:linear-gradient(135deg,var(--acc),#c2410c);display:flex;align-items:center;justify-content:center;font-size:1.4rem;box-shadow:0 8px 20px rgba(249,115,22,.3);}
.login-logo-text h2{font-size:1.35rem;font-weight:800;letter-spacing:-.5px;}
.login-logo-text h2 span{color:var(--acc);}
.login-logo-text p{font-size:.72rem;color:var(--text2);margin-top:2px;letter-spacing:.04em;}
.login-title{font-size:1.5rem;font-weight:700;margin-bottom:.4rem;}
.login-sub{font-size:.83rem;color:var(--text2);margin-bottom:1.8rem;}
.lf{margin-bottom:1.1rem;}
.lf label{display:block;font-size:.72rem;font-weight:700;color:var(--text2);letter-spacing:.03em;text-transform:none;margin-bottom:.45rem;}
.lf input{width:100%;background:var(--s1);border:1px solid var(--bdr);color:var(--text);padding:.82rem 1rem;border-radius:var(--r2);font-family:'Plus Jakarta Sans',sans-serif;font-size:.92rem;outline:none;transition:border-color .2s,box-shadow .2s;}
.lf input:focus{border-color:rgba(249,115,22,.5);box-shadow:0 0 0 3px rgba(249,115,22,.08);}
.login-btn{width:100%;margin-top:.4rem;background:linear-gradient(135deg,var(--acc),#ea6c0a);color:#fff;border:none;cursor:pointer;padding:.9rem;border-radius:var(--r2);font-family:'Plus Jakarta Sans',sans-serif;font-weight:700;font-size:.95rem;transition:all .2s;box-shadow:0 4px 16px rgba(249,115,22,.25);}
.login-btn:hover{transform:translateY(-1px);box-shadow:0 8px 24px rgba(249,115,22,.35);}
.login-err{color:var(--red);font-size:.82rem;margin-top:.8rem;text-align:center;display:none;padding:.6rem;background:rgba(239,68,68,.08);border-radius:8px;border:1px solid rgba(239,68,68,.2);}
#adminPage{display:none;}
.layout{display:flex;min-height:100vh;}
.sidebar{width:256px;background:var(--s1);border-right:1px solid var(--bdr);position:fixed;height:100vh;display:flex;flex-direction:column;z-index:100;overflow-y:auto;}
.sb-head{padding:1.4rem 1.3rem;border-bottom:1px solid var(--bdr);}
.sb-logo{display:flex;align-items:center;gap:10px;}
.sb-logo-icon{width:38px;height:38px;border-radius:10px;background:linear-gradient(135deg,var(--acc),#c2410c);display:flex;align-items:center;justify-content:center;font-size:1.1rem;flex-shrink:0;}
.sb-logo-text h3{font-size:1.1rem;font-weight:800;letter-spacing:-.3px;}
.sb-logo-text h3 span{color:var(--acc);}
.sb-logo-text p{font-size:.68rem;color:var(--text3);margin-top:1px;}
.sb-nav{padding:.8rem .7rem;flex:1;}
.nav-section{margin-bottom:1.2rem;}
.nav-section-title{font-size:.62rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--text3);padding:.3rem .65rem;margin-bottom:.3rem;}
.ni{display:flex;align-items:center;gap:.7rem;padding:.65rem .75rem;border-radius:var(--r2);cursor:pointer;transition:all .18s;color:var(--text2);font-size:.86rem;font-weight:500;border:1px solid transparent;margin-bottom:2px;}
.ni:hover{background:var(--s3);color:var(--text);}
.ni.active{background:rgba(249,115,22,.1);color:var(--acc2);border-color:rgba(249,115,22,.2);}
.ni-icon{width:20px;text-align:center;font-size:1rem;flex-shrink:0;}
.ni-badge{margin-left:auto;font-size:.65rem;font-weight:700;padding:.15rem .5rem;border-radius:20px;background:rgba(249,115,22,.15);color:var(--acc);}
.sb-footer{padding:1rem .9rem;border-top:1px solid var(--bdr);}
.sb-user{display:flex;align-items:center;gap:.7rem;padding:.65rem .75rem;border-radius:var(--r2);background:var(--s3);margin-bottom:.7rem;}
.sb-avatar{width:34px;height:34px;border-radius:50%;background:linear-gradient(135deg,var(--acc),#7c2d12);display:flex;align-items:center;justify-content:center;font-weight:700;font-size:.9rem;flex-shrink:0;}
.sb-uname{font-size:.82rem;font-weight:600;}
.sb-urole{font-size:.68rem;color:var(--text3);margin-top:1px;}
.logout-btn{width:100%;background:rgba(239,68,68,.08);color:var(--red);border:1px solid rgba(239,68,68,.18);padding:.6rem;border-radius:var(--r2);cursor:pointer;font-family:'Plus Jakarta Sans',sans-serif;font-weight:600;font-size:.82rem;transition:all .2s;}
.logout-btn:hover{background:rgba(239,68,68,.15);}
.main{margin-left:256px;flex:1;min-width:0;display:flex;flex-direction:column;}
.topbar{padding:.9rem 2rem;border-bottom:1px solid var(--bdr);display:flex;align-items:center;justify-content:space-between;background:rgba(7,9,15,.85);backdrop-filter:blur(12px);position:sticky;top:0;z-index:50;}
.tb-left h1{font-size:1.25rem;font-weight:700;letter-spacing:-.3px;}
.tb-left p{font-size:.75rem;color:var(--text2);margin-top:2px;}
.tb-right{display:flex;gap:.6rem;align-items:center;}
.content{padding:1.6rem 2rem 4rem;flex:1;}
.page{display:none;animation:fadeIn .25s ease;}
.page.active{display:block;}
@keyframes fadeIn{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}
.stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:1rem;margin-bottom:1.5rem;}
.stat{background:var(--s2);border:1px solid var(--bdr);border-radius:var(--r);padding:1.3rem 1.4rem;cursor:default;transition:border-color .2s,transform .2s;position:relative;overflow:hidden;}
.stat:hover{border-color:var(--bdr2);transform:translateY(-2px);}
.stat-glow{position:absolute;top:-30px;right:-30px;width:90px;height:90px;border-radius:50%;opacity:.07;filter:blur(10px);}
.stat-icon{font-size:1.4rem;margin-bottom:.8rem;}
.stat-val{font-size:1.75rem;font-weight:800;font-variant-numeric:tabular-nums;letter-spacing:-.5px;line-height:1;}
.stat-lbl{font-size:.75rem;color:var(--text2);margin-top:.35rem;}
.stat-chg{font-size:.7rem;margin-top:.5rem;display:flex;align-items:center;gap:4px;}
.chg-up{color:var(--green);}
.chg-dn{color:var(--red);}
.sec{background:var(--s2);border:1px solid var(--bdr);border-radius:var(--r);overflow:hidden;margin-bottom:1.2rem;}
.sec-head{display:flex;align-items:center;justify-content:space-between;padding:1rem 1.4rem;border-bottom:1px solid var(--bdr);flex-wrap:wrap;gap:.6rem;}
.sec-head h3{font-size:.93rem;font-weight:700;display:flex;align-items:center;gap:.5rem;}
.sec-actions{display:flex;gap:.5rem;align-items:center;flex-wrap:wrap;}
.tw{overflow-x:auto;}
table{width:100%;border-collapse:collapse;}
th{text-align:left;padding:.7rem 1.1rem;font-size:.68rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--text3);border-bottom:1px solid var(--bdr);white-space:nowrap;}
td{padding:.78rem 1.1rem;font-size:.84rem;border-bottom:1px solid rgba(255,255,255,.035);vertical-align:middle;}
tr:last-child td{border-bottom:none;}
tr:hover td{background:rgba(255,255,255,.018);}
.no-data{text-align:center;color:var(--text3);padding:2.5rem;font-size:.85rem;}
.badge{display:inline-flex;align-items:center;gap:4px;padding:.22rem .65rem;border-radius:20px;font-size:.68rem;font-weight:700;letter-spacing:.03em;white-space:nowrap;}
.b-green{background:rgba(34,197,94,.1);color:var(--green);border:1px solid rgba(34,197,94,.2);}
.b-red{background:rgba(239,68,68,.1);color:var(--red);border:1px solid rgba(239,68,68,.2);}
.b-orange{background:rgba(249,115,22,.1);color:var(--acc);border:1px solid rgba(249,115,22,.2);}
.b-blue{background:rgba(59,130,246,.1);color:var(--blue);border:1px solid rgba(59,130,246,.2);}
.b-yellow{background:rgba(234,179,8,.1);color:var(--yellow);border:1px solid rgba(234,179,8,.2);}
.b-purple{background:rgba(168,85,247,.1);color:var(--purple);border:1px solid rgba(168,85,247,.2);}
.b-gray{background:rgba(138,153,170,.1);color:var(--text2);border:1px solid rgba(138,153,170,.2);}
/* ✅ FIX: partial instalment badge — orange color, consistent with app & student portal */
.b-partial{background:rgba(249,115,22,.1);color:var(--acc);border:1px solid rgba(249,115,22,.2);}
.btn{display:inline-flex;align-items:center;gap:.4rem;padding:.58rem 1.1rem;border-radius:var(--r2);border:none;cursor:pointer;font-family:'Plus Jakarta Sans',sans-serif;font-weight:600;font-size:.8rem;transition:all .18s;white-space:nowrap;}
.btn-primary{background:var(--acc);color:#fff;}
.btn-primary:hover{background:var(--acc2);box-shadow:0 4px 14px rgba(249,115,22,.3);}
.btn-ghost{background:var(--s3);color:var(--text);border:1px solid var(--bdr);}
.btn-ghost:hover{border-color:var(--bdr2);background:rgba(255,255,255,.05);}
.btn-success{background:rgba(34,197,94,.1);color:var(--green);border:1px solid rgba(34,197,94,.2);}
.btn-success:hover{background:rgba(34,197,94,.2);}
.btn-danger{background:rgba(239,68,68,.1);color:var(--red);border:1px solid rgba(239,68,68,.2);}
.btn-danger:hover{background:rgba(239,68,68,.2);}
.btn-sm{padding:.32rem .7rem;font-size:.74rem;}
.btn-xs{padding:.22rem .55rem;font-size:.7rem;}
.inp{background:var(--s1);border:1px solid var(--bdr);color:var(--text);padding:.72rem 1rem;border-radius:var(--r2);font-family:'Plus Jakarta Sans',sans-serif;font-size:.88rem;outline:none;transition:border-color .2s,box-shadow .2s;}
.inp:focus{border-color:rgba(249,115,22,.4);box-shadow:0 0 0 3px rgba(249,115,22,.06);}
select.inp option{background:var(--s2);}
.filters{display:flex;gap:.7rem;margin-bottom:1.2rem;flex-wrap:wrap;align-items:center;}
.filters .inp{flex:1;min-width:160px;}
.g2{display:grid;grid-template-columns:1fr 1fr;gap:1.2rem;}
.g3{display:grid;grid-template-columns:1fr 1fr 1fr;gap:1.2rem;}
.chart-area{padding:1.2rem 1.4rem 1.4rem;}
.bars{display:flex;align-items:flex-end;gap:.8rem;height:140px;padding-bottom:4px;}
.bar-col{display:flex;flex-direction:column;align-items:center;gap:.4rem;flex:1;min-width:0;}
.bar{width:100%;border-radius:5px 5px 0 0;min-height:4px;background:linear-gradient(to top,var(--acc),var(--acc2));opacity:.85;transition:height .6s ease,opacity .2s;cursor:pointer;}
.bar:hover{opacity:1;}
.bar-v{font-size:.65rem;color:var(--text2);font-family:'JetBrains Mono',monospace;white-space:nowrap;}
.bar-l{font-size:.64rem;color:var(--text3);white-space:nowrap;}
.overlay{display:none;position:fixed;inset:0;background:rgba(0,0,0,.75);z-index:500;align-items:center;justify-content:center;padding:1rem;backdrop-filter:blur(4px);}
.overlay.open{display:flex;animation:fadeIn .2s ease;}
.modal{background:var(--s2);border:1px solid var(--bdr);border-radius:18px;padding:2rem;width:100%;max-width:600px;max-height:92vh;overflow-y:auto;box-shadow:0 40px 80px rgba(0,0,0,.7);}
.modal-title{font-size:1.1rem;font-weight:700;margin-bottom:1.5rem;display:flex;align-items:center;gap:.5rem;}
.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:.9rem;}
.form-grid .full{grid-column:1/-1;}
.fg2{display:flex;flex-direction:column;gap:.38rem;}
.fg2 label{font-size:.7rem;font-weight:700;color:var(--text2);letter-spacing:.03em;text-transform:none;}
.fg2 .inp{width:100%;}
.modal-footer{display:flex;gap:.7rem;justify-content:flex-end;margin-top:1.6rem;padding-top:1.2rem;border-top:1px solid var(--bdr);}
.att-wrap{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:.7rem;padding:1.1rem;}
.att-card{background:var(--s3);border:1px solid var(--bdr);border-radius:var(--r2);padding:.85rem 1rem;display:flex;align-items:center;justify-content:space-between;gap:.5rem;transition:border-color .15s;}
.att-info{min-width:0;}
.att-name{font-size:.84rem;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.att-mob{font-size:.7rem;color:var(--text3);margin-top:1px;}
.att-btns{display:flex;gap:.35rem;flex-shrink:0;}
.a-btn{width:30px;height:28px;border-radius:7px;border:1px solid;cursor:pointer;font-size:.72rem;font-weight:700;transition:all .15s;display:flex;align-items:center;justify-content:center;}
.a-p{background:rgba(34,197,94,.08);border-color:rgba(34,197,94,.25);color:var(--green);}
.a-p.on{background:var(--green);border-color:var(--green);color:#000;}
.a-a{background:rgba(239,68,68,.08);border-color:rgba(239,68,68,.25);color:var(--red);}
.a-a.on{background:var(--red);border-color:var(--red);color:#fff;}
.a-l{background:rgba(234,179,8,.08);border-color:rgba(234,179,8,.25);color:var(--yellow);}
.a-l.on{background:var(--yellow);border-color:var(--yellow);color:#000;}
.att-summary{display:flex;gap:1.2rem;font-size:.78rem;color:var(--text2);padding:.7rem 1.4rem;border-top:1px solid var(--bdr);background:var(--s1);}
.att-summary b{color:var(--text);}
#idCardPreview{background:linear-gradient(145deg,#111828,#0a0f1a);border:1.5px solid var(--acc);border-radius:16px;padding:1.8rem;width:300px;position:relative;overflow:hidden;box-shadow:0 20px 50px rgba(0,0,0,.5);}
#idCardPreview::before{content:'';position:absolute;top:-50px;right:-50px;width:150px;height:150px;border-radius:50%;background:radial-gradient(circle,rgba(249,115,22,.15),transparent 70%);}
.idc-logo{font-size:1.1rem;font-weight:800;margin-bottom:.2rem;}
.idc-logo span{color:var(--acc);}
.idc-sub{font-size:.58rem;color:var(--text3);letter-spacing:.12em;text-transform:uppercase;margin-bottom:1.2rem;}
.idc-photo{width:72px;height:72px;border-radius:50%;background:rgba(249,115,22,.1);border:2.5px solid var(--acc);margin:0 auto .8rem;display:flex;align-items:center;justify-content:center;font-size:1.8rem;}
.idc-name{font-size:1rem;font-weight:700;text-align:center;margin-bottom:.2rem;}
.idc-course{font-size:.72rem;color:var(--acc);text-align:center;margin-bottom:1rem;}
.idc-divider{border:none;border-top:1px solid rgba(255,255,255,.07);margin:.8rem 0;}
.idc-row{display:grid;grid-template-columns:1fr 1fr;gap:.6rem;margin-top:.6rem;}
.idc-field label{font-size:.58rem;color:var(--text3);text-transform:uppercase;letter-spacing:.06em;display:block;}
.idc-field span{font-size:.76rem;font-weight:600;display:block;margin-top:1px;}
.idc-footer{text-align:center;font-size:.6rem;color:var(--text3);margin-top:1rem;font-family:'JetBrains Mono',monospace;}
.tabs{display:flex;gap:.4rem;margin-bottom:1.2rem;border-bottom:1px solid var(--bdr);padding-bottom:0;}
.tab{padding:.65rem 1.1rem;font-size:.83rem;font-weight:600;cursor:pointer;color:var(--text2);border-bottom:2px solid transparent;margin-bottom:-1px;transition:all .18s;}
.tab:hover{color:var(--text);}
.tab.active{color:var(--acc);border-bottom-color:var(--acc);}
.toast{position:fixed;bottom:1.5rem;right:1.5rem;background:var(--s2);border:1px solid var(--bdr);border-radius:12px;padding:.85rem 1.2rem;font-size:.85rem;z-index:9999;transform:translateY(80px);opacity:0;transition:all .3s cubic-bezier(0.34,1.56,0.64,1);max-width:320px;display:flex;align-items:center;gap:.6rem;box-shadow:0 20px 40px rgba(0,0,0,.4);}
.toast.show{transform:translateY(0);opacity:1;}
.toast.ok{border-color:rgba(34,197,94,.3);background:rgba(34,197,94,.05);}
.toast.fail{border-color:rgba(239,68,68,.3);background:rgba(239,68,68,.05);}
.amount-pos{color:var(--green);font-weight:600;font-family:'JetBrains Mono',monospace;}
.amount-neg{color:var(--red);font-weight:600;font-family:'JetBrains Mono',monospace;}
.amount{font-family:'JetBrains Mono',monospace;}
.mono{font-family:'JetBrains Mono',monospace;font-size:.82rem;}
.avatar{width:30px;height:30px;border-radius:50%;background:linear-gradient(135deg,var(--acc),#7c2d12);display:inline-flex;align-items:center;justify-content:center;font-size:.75rem;font-weight:700;flex-shrink:0;}
.info-row{display:flex;gap:.5rem;padding:.5rem 0;border-bottom:1px solid var(--bdr);}
.info-row:last-child{border-bottom:none;}
.info-lbl{font-size:.78rem;color:var(--text2);min-width:130px;}
.info-val{font-size:.82rem;font-weight:500;}
/* Notice Board */
.notice-card{background:var(--s3);border:1px solid var(--bdr);border-radius:var(--r2);padding:1.1rem 1.3rem;margin-bottom:.7rem;transition:border-color .2s;}
.notice-card:hover{border-color:var(--bdr2);}
.notice-card.private{border-left:3px solid var(--purple);}
.notice-card.expiring{border-left:3px solid var(--yellow);}
.nc-top{display:flex;align-items:flex-start;justify-content:space-between;gap:.8rem;margin-bottom:.5rem;}
.nc-msg{font-size:.9rem;font-weight:500;line-height:1.5;flex:1;}
.nc-meta{font-size:.72rem;color:var(--text3);display:flex;gap:.8rem;flex-wrap:wrap;align-items:center;margin-top:.4rem;}
/* Exam */
.exam-card{background:var(--s3);border:1px solid var(--bdr);border-radius:var(--r2);padding:1.2rem 1.4rem;margin-bottom:.8rem;display:flex;align-items:center;justify-content:space-between;gap:1rem;transition:border-color .2s;}
.exam-card:hover{border-color:var(--bdr2);}
.ec-info h4{font-size:.95rem;font-weight:700;margin-bottom:.3rem;}
.ec-meta{font-size:.75rem;color:var(--text2);display:flex;gap:.8rem;flex-wrap:wrap;}
.ec-actions{display:flex;gap:.5rem;flex-shrink:0;}
.q-card{background:var(--s1);border:1px solid var(--bdr);border-radius:var(--r2);padding:1rem 1.2rem;margin-bottom:.6rem;}
.q-text{font-size:.88rem;font-weight:600;margin-bottom:.7rem;}
.q-opts{display:grid;grid-template-columns:1fr 1fr;gap:.4rem;}
.q-opt{padding:.55rem .8rem;border-radius:8px;font-size:.82rem;cursor:pointer;border:1px solid var(--bdr);background:var(--s2);transition:all .15s;text-align:left;color:var(--text);display:flex;align-items:center;gap:.5rem;}
.q-opt:hover{border-color:rgba(249,115,22,.4);background:rgba(249,115,22,.05);}
.q-opt.selected{border-color:var(--acc);background:rgba(249,115,22,.12);color:var(--acc2);}
.q-opt.correct{border-color:var(--green);background:rgba(34,197,94,.12);color:var(--green);}
.q-opt.wrong{border-color:var(--red);background:rgba(239,68,68,.12);color:var(--red);}
.exam-timer{font-family:'JetBrains Mono',monospace;font-size:1.6rem;font-weight:700;color:var(--acc);padding:.6rem 1.2rem;background:rgba(249,115,22,.08);border:1px solid rgba(249,115,22,.2);border-radius:10px;}
.exam-timer.warn{color:var(--red);background:rgba(239,68,68,.08);border-color:rgba(239,68,68,.3);animation:pulse .8s infinite;}
@keyframes pulse{0%,100%{opacity:1}50%{opacity:.6}}
.progress-bar{height:4px;background:var(--bdr);border-radius:2px;margin-bottom:1.5rem;}
.progress-fill{height:100%;border-radius:2px;background:linear-gradient(90deg,var(--acc),var(--acc2));transition:width .3s;}
.result-wrap{max-width:500px;margin:0 auto;text-align:center;padding:2rem;}
.result-icon{font-size:4rem;margin-bottom:1rem;}
.result-grade{font-size:4rem;font-weight:800;line-height:1;}
.result-pct{font-size:1.1rem;color:var(--text2);margin-bottom:.5rem;}
.result-cert{margin-top:1.5rem;padding:1rem 1.5rem;background:rgba(249,115,22,.08);border:1px solid rgba(249,115,22,.2);border-radius:var(--r2);font-family:'JetBrains Mono',monospace;font-size:.95rem;}
/* Certificate */
.cert-preview{width:680px;max-width:100%;background:linear-gradient(160deg,#0d1520,#07090f);border:2px solid var(--acc);border-radius:18px;padding:3rem;position:relative;overflow:hidden;text-align:center;}
.cert-preview::before{content:'';position:absolute;top:-60px;left:-60px;width:200px;height:200px;border-radius:50%;background:radial-gradient(circle,rgba(249,115,22,.12),transparent 70%);}
.cert-preview::after{content:'';position:absolute;bottom:-60px;right:-60px;width:200px;height:200px;border-radius:50%;background:radial-gradient(circle,rgba(59,130,246,.08),transparent 70%);}
.cert-border{position:absolute;inset:10px;border:1px solid rgba(249,115,22,.15);border-radius:12px;pointer-events:none;}
.cert-logo{font-size:1.6rem;font-weight:800;letter-spacing:-.5px;margin-bottom:.2rem;}
.cert-logo span{color:var(--acc);}
.cert-institute{font-size:.7rem;color:var(--text3);letter-spacing:.15em;text-transform:uppercase;margin-bottom:1.5rem;}
.cert-title{font-size:1rem;color:var(--text2);letter-spacing:.2em;text-transform:uppercase;margin-bottom:.5rem;}
.cert-heading{font-size:2rem;font-weight:800;letter-spacing:-.5px;margin-bottom:1.2rem;background:linear-gradient(135deg,#fff,var(--acc2));-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;}
.cert-text{font-size:.85rem;color:var(--text2);line-height:1.8;margin-bottom:1rem;}
.cert-name{font-size:1.8rem;font-weight:800;color:var(--acc2);margin:.4rem 0;}
.cert-course{font-size:1rem;font-weight:600;margin-bottom:1.5rem;}
.cert-details{display:flex;justify-content:center;gap:2.5rem;margin:1.5rem 0;padding:1rem;background:rgba(255,255,255,.03);border-radius:10px;border:1px solid var(--bdr);}
.cert-field label{font-size:.6rem;color:var(--text3);letter-spacing:.08em;text-transform:uppercase;display:block;margin-bottom:2px;}
.cert-field span{font-size:.88rem;font-weight:700;}
.cert-sign{display:flex;justify-content:space-between;margin-top:2rem;padding-top:1rem;border-top:1px solid var(--bdr);}
.cert-sign-block{text-align:center;}
.cert-sign-line{width:120px;height:1px;background:var(--bdr2);margin:0 auto .4rem;}
.cert-sign-label{font-size:.65rem;color:var(--text3);letter-spacing:.06em;text-transform:uppercase;}
.cert-no-badge{font-family:'JetBrains Mono',monospace;font-size:.72rem;color:var(--text3);margin-top:1.5rem;}
.verify-box{max-width:480px;margin:0 auto;background:var(--s2);border:1px solid var(--bdr);border-radius:18px;padding:2.5rem;}
.verify-result{margin-top:1.5rem;padding:1.5rem;border-radius:var(--r2);}
.verify-valid{background:rgba(34,197,94,.06);border:1px solid rgba(34,197,94,.2);}
.verify-invalid{background:rgba(239,68,68,.06);border:1px solid rgba(239,68,68,.2);}
/* E-Learning */
.lc-card{background:var(--s3);border:1px solid var(--bdr);border-radius:var(--r2);padding:1.2rem 1.4rem;margin-bottom:.8rem;display:flex;align-items:center;justify-content:space-between;gap:1rem;transition:border-color .2s;}
.lc-card:hover{border-color:var(--bdr2);}
.file-icon{font-size:1.4rem;flex-shrink:0;}
@media(max-width:900px){.sidebar{transform:translateX(-100%);}.main{margin-left:0;}.stats{grid-template-columns:1fr 1fr;}.g2,.g3{grid-template-columns:1fr;}.form-grid{grid-template-columns:1fr;}}