:root{--navy:#0b0b3b;--blue:#13259c;--blue2:#2a44d8;--bg:#f3f5fb;--card:#fff;--line:#dde2f0;--text:#1b1f33;--muted:#5d6480;--ok:#147a4b;--warn:#a05a00;--bad:#b3261e}
*{box-sizing:border-box}html,body{margin:0}
body{font:16px/1.5 system-ui,-apple-system,"Segoe UI",Roboto,"Noto Sans Bengali",sans-serif;background:var(--bg);color:var(--text)}
a{color:var(--blue)}code{background:#eef1fa;padding:1px 5px;border-radius:4px;font-size:.92em}
.wrap{max-width:1100px;margin:0 auto;padding:0 16px}
.topbar{background:var(--navy);color:#fff;box-shadow:0 2px 8px rgba(0,0,0,.15)}
.topbar-in{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:64px;flex-wrap:wrap}
.brand{display:flex;align-items:center;gap:10px;color:#fff;text-decoration:none}
.brand img{height:40px;background:#fff;border-radius:8px;padding:3px 6px}
.brand span{display:flex;flex-direction:column;line-height:1.15}.brand small{opacity:.75;font-size:.8em}
.topbar nav{display:flex;align-items:center;gap:14px;flex-wrap:wrap}.topbar nav a{color:#dfe5ff;text-decoration:none}
.topbar nav a:hover{color:#fff}.who{font-size:.9em;opacity:.9}.who code{background:rgba(255,255,255,.15);color:#fff}
main{padding:24px 16px 40px}.foot{color:var(--muted);font-size:.82em;padding-bottom:24px;text-align:center}
.card{background:var(--card);border:1px solid var(--line);border-radius:12px;padding:20px;margin-bottom:18px;box-shadow:0 1px 2px rgba(20,30,80,.04)}
.narrow{max-width:420px;margin:30px auto}
h1{font-size:1.5rem;margin:0 0 12px}h2{font-size:1.2rem;margin:0 0 10px}h3{margin:0 0 8px}
label{display:block;font-weight:600;margin:10px 0 4px;font-size:.93em}
input[type=text],input[type=password],input[type=number],input[type=email],input[type=datetime-local],select,textarea{width:100%;padding:10px 12px;border:1px solid #c7cde3;border-radius:8px;font:inherit;background:#fff}
textarea{min-height:90px;font-family:ui-monospace,Consolas,monospace;font-size:.88em}
input:focus,select:focus,textarea:focus{outline:2px solid var(--blue2);border-color:transparent}
.btn{display:inline-block;background:var(--blue);color:#fff;border:0;border-radius:8px;padding:10px 18px;font:inherit;font-weight:600;cursor:pointer;text-decoration:none}
.btn:hover{background:var(--blue2)}.btn.ghost{background:transparent;border:1px solid currentColor;color:inherit}
.btn.sm{padding:5px 11px;font-size:.85em}.btn.danger{background:var(--bad)}.btn.ok{background:var(--ok)}.btn.grey{background:#6b7290}
.btn:disabled{opacity:.5;cursor:not-allowed}
.inline{display:inline}.row{display:flex;gap:12px;flex-wrap:wrap}.row>*{flex:1 1 200px}
.muted{color:var(--muted)}.small{font-size:.86em}.right{text-align:right}
.flash{padding:10px 14px;border-radius:8px;margin-bottom:14px;border:1px solid}
.flash.info{background:#eaf0ff;border-color:#bccbff}.flash.ok{background:#e6f6ee;border-color:#9fd8bb}.flash.err{background:#fdecea;border-color:#f3b4ae}
table{width:100%;border-collapse:collapse;font-size:.92em}th,td{padding:8px 9px;border-bottom:1px solid var(--line);text-align:left;vertical-align:top}
th{background:#f0f3fb;font-weight:600;white-space:nowrap}.tablewrap{overflow-x:auto}
.pill{display:inline-block;padding:2px 9px;border-radius:99px;font-size:.78em;font-weight:600;background:#e8ebf7;color:#333}
.pill.open{background:#dff5e9;color:var(--ok)}.pill.upcoming{background:#e7ecff;color:var(--blue)}.pill.closed{background:#eee;color:#666}
.pill.ok{background:#dff5e9;color:var(--ok)}.pill.warn{background:#fff1dc;color:var(--warn)}.pill.bad{background:#fde3e0;color:var(--bad)}
.examlist .card{display:flex;justify-content:space-between;align-items:center;gap:14px;flex-wrap:wrap}
ul.rules{padding-left:20px}ul.rules li{margin:4px 0}
/* exam page */
body.exam{user-select:none;-webkit-user-select:none;-webkit-touch-callout:none}
.exam-bar{position:sticky;top:0;z-index:20;background:#fff;border-bottom:1px solid var(--line);box-shadow:0 2px 6px rgba(0,0,0,.05)}
.exam-bar .wrap{display:flex;justify-content:space-between;align-items:center;gap:10px;min-height:56px;flex-wrap:wrap}
.timer{font:700 1.35rem/1 ui-monospace,Consolas,monospace;color:var(--navy);background:#eef1fb;padding:8px 14px;border-radius:8px}
.timer.low{color:#fff;background:var(--bad);animation:pulse 1s infinite}@keyframes pulse{50%{opacity:.75}}
.save{font-size:.85em}.save.ok{color:var(--ok)}.save.pending{color:var(--warn)}.save.err{color:var(--bad);font-weight:700}
.exam-grid{display:grid;grid-template-columns:1fr 260px;gap:18px;margin-top:18px}
@media (max-width:820px){.exam-grid{grid-template-columns:1fr}.exam-bar .brand small{display:none}}
.qhead{display:flex;justify-content:space-between;color:var(--muted);font-size:.9em;margin-bottom:8px;gap:8px;flex-wrap:wrap}
.qtext{font-size:1.12rem;font-weight:600;margin:4px 0 14px;white-space:pre-wrap}
.opt{display:flex;gap:12px;align-items:flex-start;border:2px solid var(--line);border-radius:10px;padding:12px 14px;margin:9px 0;cursor:pointer;background:#fff;transition:border-color .1s}
.opt:hover{border-color:#aab6e6}.opt.sel{border-color:var(--blue);background:#eef1ff}
.opt input{margin-top:4px;transform:scale(1.25)}.opt .k{font-weight:700;color:var(--blue);min-width:20px}
.navbtns{display:flex;justify-content:space-between;gap:8px;margin-top:16px;flex-wrap:wrap}
.palette{display:grid;grid-template-columns:repeat(auto-fill,minmax(40px,1fr));gap:6px}
.palette button{height:40px;border:1px solid #c7cde3;border-radius:8px;background:#fff;font-weight:600;cursor:pointer}
.palette button.ans{background:var(--ok);color:#fff;border-color:var(--ok)}
.palette button.rev{box-shadow:inset 0 -4px 0 #e6a100}.palette button.cur{outline:3px solid var(--blue2)}
.legend{font-size:.8em;color:var(--muted);margin-top:10px;line-height:1.8}
.legend i{display:inline-block;width:12px;height:12px;border-radius:3px;vertical-align:middle;margin-right:4px;border:1px solid #c7cde3}
.overlay{position:fixed;inset:0;background:rgba(11,11,59,.92);color:#fff;z-index:100;display:flex;align-items:center;justify-content:center;padding:20px;text-align:center}
.overlay .box{max-width:480px}.overlay h2{font-size:1.5rem}.hidden{display:none!important}
.watermark{position:fixed;inset:0;pointer-events:none;z-index:5;opacity:.05;font:700 22px sans-serif;color:#000;overflow:hidden;
  display:flex;flex-wrap:wrap;align-content:flex-start;gap:60px 80px;padding:40px;transform:rotate(-18deg) scale(1.4)}
.stat{display:inline-block;margin-right:22px}.stat b{display:block;font-size:1.5rem;color:var(--navy)}
