/* Layout: OMR answer-sheet world — sticky exam bar, question booklet column, bubble palette rail */
:root{
  --paper:#f6f7fb; --sheet:#ffffff; --ink:#1c2440; --muted:#5d6582; --rule:#dcdfeb;
  --omr:#c0295a; --omr-soft:#fbe7ee; --fill:#1c2440;
  --ok:#1f7a4d; --ok-soft:#e3f3ea; --bad:#b3261e; --bad-soft:#fbe6e4; --flag:#a66300; --flag-soft:#fbf0dc;
  --f-display:"Martel","Mukta",Georgia,serif; --f-body:"Mukta","Noto Sans Devanagari",system-ui,sans-serif; --f-mono:"IBM Plex Mono",ui-monospace,monospace;
}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]){
  --paper:#12141d; --sheet:#1a1d29; --ink:#e7e9f3; --muted:#9aa1bb; --rule:#2c3142;
  --omr:#ff6f98; --omr-soft:#3a1b29; --fill:#e7e9f3;
  --ok:#5fd19a; --ok-soft:#173226; --bad:#ff8a80; --bad-soft:#3a1c1a; --flag:#f0b453; --flag-soft:#3a2c14; color-scheme:dark}}
:root[data-theme="dark"]{
  --paper:#12141d; --sheet:#1a1d29; --ink:#e7e9f3; --muted:#9aa1bb; --rule:#2c3142;
  --omr:#ff6f98; --omr-soft:#3a1b29; --fill:#e7e9f3;
  --ok:#5fd19a; --ok-soft:#173226; --bad:#ff8a80; --bad-soft:#3a1c1a; --flag:#f0b453; --flag-soft:#3a2c14; color-scheme:dark}
*{box-sizing:border-box}
body{background:var(--paper);color:var(--ink);font-family:var(--f-body);font-size:16px;line-height:1.55}
body::before{content:"";position:fixed;inset:0 0 auto;height:env(safe-area-inset-top,0px);z-index:10;background:var(--sheet)}
button{font:inherit;color:inherit;cursor:pointer}
button:focus-visible,input:focus-visible{outline:2px solid var(--omr);outline-offset:2px}
.wrap{max-width:1180px;margin:0 auto;padding-left:max(16px,env(safe-area-inset-left,0px));padding-right:max(16px,env(safe-area-inset-right,0px))}

/* top bar */
.bar{position:sticky;top:env(safe-area-inset-top,0px);z-index:5;background:var(--sheet);border-bottom:2px solid var(--omr)}
.bar .wrap{display:flex;align-items:center;gap:12px;flex-wrap:wrap;padding-block:10px}
.brand{display:flex;flex-direction:column;min-width:0;flex:1 1 220px}
.brand b{font-family:var(--f-display);font-weight:800;font-size:17px;letter-spacing:-.01em}
.brand span{font-size:12px;color:var(--muted);letter-spacing:.06em;text-transform:uppercase}
.timer{font-family:var(--f-mono);font-size:20px;font-weight:600;font-variant-numeric:tabular-nums;padding:4px 10px;border:1.5px solid var(--rule);border-radius:6px}
.timer.low{color:var(--bad);border-color:var(--bad)}
.seg{display:inline-flex;border:1.5px solid var(--rule);border-radius:999px;overflow:hidden}
.seg button{border:0;background:none;padding:5px 12px;font-size:14px}
.seg button[aria-pressed="true"]{background:var(--ink);color:var(--sheet)}
.btn{border:1.5px solid var(--ink);background:var(--sheet);padding:8px 16px;border-radius:6px;font-weight:600}
.btn.primary{background:var(--omr);border-color:var(--omr);color:#fff}
.btn.ghost{border-color:var(--rule)}
.btn:disabled{opacity:.45;cursor:not-allowed}

/* intro */
.intro{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(0,1fr);gap:28px;padding-block:32px}
.intro h1{font-family:var(--f-display);font-weight:800;font-size:clamp(26px,4vw,38px);line-height:1.15;margin:0 0 6px;text-wrap:balance}
.intro .hi{font-family:var(--f-display);font-size:clamp(18px,2.6vw,23px);color:var(--muted);margin:0 0 20px}
.facts{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));border:1.5px solid var(--ink);border-radius:8px;overflow:hidden;margin-bottom:22px;background:var(--sheet)}
.facts div{padding:12px;border-right:1px solid var(--rule)}
.facts div:last-child{border-right:0}
.facts b{display:block;font-family:var(--f-mono);font-size:22px;font-variant-numeric:tabular-nums}
.facts small{font-size:12px;color:var(--muted);text-transform:uppercase;letter-spacing:.06em}
.rules{background:var(--sheet);border:1px solid var(--rule);border-radius:8px;padding:18px 20px}
.rules h2{font-size:13px;letter-spacing:.1em;text-transform:uppercase;color:var(--omr);margin:0 0 10px}
.rules ol{margin:0;padding-left:20px;display:grid;gap:8px}
.rules li span{display:block;color:var(--muted);font-size:15px}
.mix{background:var(--sheet);border:1px solid var(--rule);border-radius:8px;padding:18px 20px}
.mix h2{font-size:13px;letter-spacing:.1em;text-transform:uppercase;color:var(--omr);margin:0 0 12px}
.mix table{width:100%;border-collapse:collapse;font-variant-numeric:tabular-nums}
.mix td{padding:6px 0;border-bottom:1px dashed var(--rule)}
.mix td:last-child{text-align:right;font-family:var(--f-mono)}
.startrow{display:flex;gap:12px;flex-wrap:wrap;margin-top:20px;align-items:center}
.startrow .note{font-size:14px;color:var(--muted)}

/* exam */
.exam{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:24px;padding-block:22px}
.qcard{background:var(--sheet);border:1px solid var(--rule);border-radius:10px;padding:22px 24px;min-width:0}
.qhead{display:flex;justify-content:space-between;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:14px}
.qno{font-family:var(--f-mono);font-weight:600;font-size:14px;color:var(--omr);letter-spacing:.04em}
.tag{font-size:12px;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);border:1px solid var(--rule);padding:2px 8px;border-radius:999px}
.qtext{font-family:var(--f-display);font-size:18px;line-height:1.65;white-space:pre-line;margin:0}
.qtext.hi{margin-top:10px;padding-top:10px;border-top:1px dashed var(--rule)}
.qtext.secondary{font-size:16.5px;color:var(--muted)}
.opts{display:grid;gap:10px;margin:20px 0 0;padding:0;list-style:none}
.opt{display:flex;gap:14px;align-items:flex-start;width:100%;text-align:left;background:none;border:1.5px solid var(--rule);border-radius:8px;padding:11px 14px}
.opt:hover{border-color:var(--muted)}
.bub{flex:0 0 28px;height:28px;border-radius:50%;border:1.5px solid var(--omr);display:grid;place-items:center;font-family:var(--f-mono);font-size:13px;color:var(--omr);font-weight:600}
.opt[aria-checked="true"]{border-color:var(--fill)}
.opt[aria-checked="true"] .bub{background:var(--fill);border-color:var(--fill);color:var(--sheet)}
.otext{min-width:0}
.otext .s{display:block;color:var(--muted);font-size:15px}
.opt.right{border-color:var(--ok);background:var(--ok-soft)}
.opt.right .bub{border-color:var(--ok);background:var(--ok);color:var(--sheet)}
.opt.wrong{border-color:var(--bad);background:var(--bad-soft)}
.opt.wrong .bub{border-color:var(--bad);background:var(--bad);color:var(--sheet)}
.qnav{display:flex;gap:10px;flex-wrap:wrap;margin-top:22px;align-items:center}
.qnav .sp{flex:1}
.expl{margin-top:18px;border-left:3px solid var(--omr);background:var(--omr-soft);padding:12px 14px;border-radius:0 8px 8px 0}
.expl b{font-size:12px;letter-spacing:.1em;text-transform:uppercase;color:var(--omr)}
.expl p{margin:6px 0 0}
.expl p.s{color:var(--muted)}

/* palette */
.rail{position:sticky;top:calc(env(safe-area-inset-top,0px) + 80px);align-self:start;background:var(--sheet);border:1px solid var(--rule);border-radius:10px;padding:16px;min-width:0}
.rail h3{margin:0 0 4px;font-size:13px;letter-spacing:.1em;text-transform:uppercase;color:var(--omr)}
.counts{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;margin:10px 0 12px;font-size:12px;color:var(--muted)}
.counts b{display:block;font-family:var(--f-mono);font-size:18px;color:var(--ink);font-variant-numeric:tabular-nums}
.grid{display:grid;grid-template-columns:repeat(10,minmax(0,1fr));gap:4px;max-height:52vh;overflow:auto;padding:2px}
.cell{aspect-ratio:1;max-width:100%;border:1.2px solid var(--omr);border-radius:50%;background:none;font-family:var(--f-mono);font-size:10px;padding:0;color:var(--omr);display:grid;place-items:center}
.cell.ans{background:var(--fill);border-color:var(--fill);color:var(--sheet)}
.cell.flag{box-shadow:0 0 0 2px var(--flag)}
.cell.cur{outline:2px solid var(--ink);outline-offset:1px}
.cell.right{background:var(--ok);border-color:var(--ok);color:var(--sheet)}
.cell.wrong{background:var(--bad);border-color:var(--bad);color:var(--sheet)}
.legend{display:flex;flex-wrap:wrap;gap:10px;font-size:12px;color:var(--muted);margin-top:12px}
.legend i{display:inline-block;width:11px;height:11px;border-radius:50%;border:1.2px solid var(--omr);vertical-align:-1px;margin-right:4px}
.legend i.a{background:var(--fill);border-color:var(--fill)}
.legend i.f{box-shadow:0 0 0 2px var(--flag)}
.legend i.r{background:var(--ok);border-color:var(--ok)}
.legend i.w{background:var(--bad);border-color:var(--bad)}
.paltoggle{display:none}

/* confirm + results */
.confirm{background:var(--flag-soft);border:1.5px solid var(--flag);border-radius:8px;padding:14px 16px;margin-bottom:16px}
.confirm p{margin:0 0 10px}
.res{padding-block:28px;display:grid;gap:20px}
.score{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,2fr);gap:20px;background:var(--sheet);border:1.5px solid var(--ink);border-radius:10px;padding:22px}
.big{font-family:var(--f-mono);font-size:clamp(40px,7vw,60px);font-weight:600;line-height:1;font-variant-numeric:tabular-nums}
.big small{font-size:.4em;color:var(--muted)}
.score h2{font-family:var(--f-display);margin:0 0 8px;font-size:22px}
.kv{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}
.kv div{border-top:2px solid var(--rule);padding-top:8px}
.kv b{display:block;font-family:var(--f-mono);font-size:22px;font-variant-numeric:tabular-nums}
.kv small{font-size:12px;color:var(--muted);text-transform:uppercase;letter-spacing:.06em}
.verdict{margin:14px 0 0;color:var(--muted);font-size:15px}
.sect{background:var(--sheet);border:1px solid var(--rule);border-radius:10px;padding:18px 20px;overflow-x:auto}
.sect h3{margin:0 0 12px;font-size:13px;letter-spacing:.1em;text-transform:uppercase;color:var(--omr)}
.sect table{width:100%;border-collapse:collapse;font-variant-numeric:tabular-nums;min-width:520px}
.sect th,.sect td{text-align:right;padding:8px 6px;border-bottom:1px solid var(--rule);font-size:15px}
.sect th:first-child,.sect td:first-child{text-align:left}
.sect th{font-size:12px;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);font-weight:500}
.meter{height:6px;background:var(--rule);border-radius:3px;overflow:hidden;width:90px;display:inline-block;vertical-align:middle;margin-left:8px}
.meter span{display:block;height:100%;background:var(--ok)}
.filters{display:flex;gap:8px;flex-wrap:wrap}
.filters button{border:1.5px solid var(--rule);background:var(--sheet);border-radius:999px;padding:5px 12px;font-size:14px}
.filters button[aria-pressed="true"]{border-color:var(--omr);color:var(--omr);font-weight:600}
.rlist{display:grid;gap:14px}
.foot{color:var(--muted);font-size:13px;padding-block:24px 40px}

@media (max-width:900px){
  .intro{grid-template-columns:minmax(0,1fr)}
  .exam{grid-template-columns:minmax(0,1fr)}
  .rail{position:static;order:2}
  .rail.closed .grid,.rail.closed .legend,.rail.closed .counts{display:none}
  .paltoggle{display:inline-block}
  .score{grid-template-columns:minmax(0,1fr)}
}
@media (max-width:560px){
  .facts{grid-template-columns:repeat(2,minmax(0,1fr))}
  .facts div:nth-child(2){border-right:0}
  .facts div:nth-child(-n+2){border-bottom:1px solid var(--rule)}
  .kv{grid-template-columns:repeat(2,minmax(0,1fr))}
  .qcard{padding:18px 16px}
  .qtext{font-size:17px}
  .grid{grid-template-columns:repeat(10,minmax(0,1fr))}
}
@media (prefers-reduced-motion:no-preference){.opt,.cell{transition:background-color .12s,border-color .12s}}

/* home */
.bar a.home{color:inherit;text-decoration:none}
.hero{padding-block:30px 8px}
.hero h1{font-family:var(--f-display);font-weight:800;font-size:clamp(26px,4vw,38px);line-height:1.15;margin:0 0 6px;text-wrap:balance}
.hero .hi{font-family:var(--f-display);font-size:clamp(17px,2.4vw,21px);color:var(--muted);margin:0}
.hero .meta{margin:14px 0 0;color:var(--muted);font-size:15px;max-width:65ch}
.tests{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,340px),1fr));gap:18px;padding-block:22px}
.tcard{background:var(--sheet);border:1px solid var(--rule);border-radius:10px;padding:20px;display:flex;flex-direction:column;gap:12px;min-width:0}
.tcard h2{font-family:var(--f-display);font-size:20px;line-height:1.3;margin:0}
.tcard .sub{color:var(--muted);font-size:15px;margin:0}
.chips{display:flex;flex-wrap:wrap;gap:6px}
.chip{font-family:var(--f-mono);font-size:12px;border:1px solid var(--rule);border-radius:999px;padding:2px 9px;color:var(--muted)}
.status{display:inline-flex;align-items:center;gap:6px;font-size:13px;font-weight:600;letter-spacing:.04em;text-transform:uppercase}
.status::before{content:"";width:9px;height:9px;border-radius:50%;border:1.5px solid currentColor}
.status.new{color:var(--muted)}
.status.prog{color:var(--flag)}
.status.prog::before{background:var(--flag-soft)}
.status.done{color:var(--ok)}
.status.done::before{background:currentColor}
.tcard .actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:auto}
.hist{width:100%;border-collapse:collapse;font-variant-numeric:tabular-nums;font-size:14px}
.hist th,.hist td{padding:5px 4px;border-bottom:1px dashed var(--rule);text-align:right}
.hist th:first-child,.hist td:first-child{text-align:left}
.hist th{font-size:11px;letter-spacing:.06em;text-transform:uppercase;color:var(--muted);font-weight:500}
.best{font-family:var(--f-mono);font-size:28px;font-weight:600;line-height:1}
.best small{font-size:13px;color:var(--muted);font-family:var(--f-body);font-weight:400;margin-left:6px}
.notice{background:var(--sheet);border:1px solid var(--rule);border-left:3px solid var(--omr);border-radius:0 8px 8px 0;padding:12px 16px;color:var(--muted);font-size:14px}
.err{background:var(--bad-soft);border:1px solid var(--bad);border-radius:8px;padding:14px 16px;margin-block:24px}
.backlink{background:none;border:0;padding:0;color:var(--omr);font-weight:600}
.tcard h2 .s{display:block;font-size:16px;font-weight:600;color:var(--muted);margin-top:2px}
a.btn{text-decoration:none;display:inline-block}
@media (max-width:560px){
  .bar .wrap{gap:8px;padding-block:8px}
  .brand{flex-basis:100%}
  .brand span{display:none}
  .seg button{padding:4px 9px;font-size:13px}
  .timer{font-size:16px;padding:3px 8px}
  #submitTop{padding:6px 12px}
  .rail{top:auto}
}
.passage{background:var(--paper);border:1px solid var(--rule);border-radius:8px;padding:14px 16px;margin-bottom:18px;font-family:var(--f-display);font-size:16px;line-height:1.7}
.passage b,.passage summary{display:block;font-family:var(--f-body);font-size:12px;letter-spacing:.08em;text-transform:uppercase;color:var(--omr);margin-bottom:6px}
.passage summary{cursor:pointer;margin:0}
.passage[open] summary{margin-bottom:6px}
.passage p{margin:0 0 10px}
.passage p:last-child{margin-bottom:0}
.passage p.s{color:var(--muted);border-top:1px dashed var(--rule);padding-top:10px}
/* site chrome: listing headings, prose, breadcrumbs, footer */
.tcard h3{font-family:var(--f-display);font-size:20px;line-height:1.3;margin:0}
.tcard h3 a,.tcard h2 a{color:inherit;text-decoration:none}
.tcard h3 a:hover,.tcard h2 a:hover{text-decoration:underline;text-decoration-color:var(--omr)}
.tcard h3 .s{display:block;font-size:16px;font-weight:600;color:var(--muted);margin-top:2px}
.sect-h{font-size:13px;letter-spacing:.1em;text-transform:uppercase;color:var(--omr);margin:26px 0 0}
.crumbs{font-size:14px;color:var(--muted);margin:18px 0 8px;display:flex;flex-wrap:wrap;gap:6px}
.crumbs a{color:var(--omr);text-decoration:none}
.crumbs a:hover{text-decoration:underline}
.prose{max-width:72ch;padding-block:10px 24px}
.prose h2{font-family:var(--f-display);font-size:21px;margin:26px 0 8px}
.prose h1{font-family:var(--f-display);font-size:clamp(26px,4vw,34px);margin:6px 0 12px}
.prose p,.prose li{line-height:1.65}
.prose a{color:var(--omr)}
.prose a.btn{color:#fff}
.page{padding-block:12px 40px}
.tablewrap{overflow-x:auto;margin:10px 0}
.ptable{border-collapse:collapse;width:100%;min-width:420px;background:var(--sheet);font-variant-numeric:tabular-nums}
.ptable th,.ptable td{border-bottom:1px solid var(--rule);padding:9px 10px;text-align:left}
.ptable th{font-size:12px;letter-spacing:.06em;text-transform:uppercase;color:var(--muted);font-weight:500}
.mono{font-family:var(--f-mono)}
.site-foot{border-top:1px solid var(--rule);background:var(--sheet);margin-top:30px}
.site-foot .wrap{padding-block:20px 28px;font-size:14px;color:var(--muted)}
.site-foot nav{display:flex;flex-wrap:wrap;gap:16px;margin-bottom:8px}
.site-foot a{color:var(--ink);text-decoration:none}
.site-foot a:hover{color:var(--omr)}
.site-foot p{margin:0;max-width:80ch}
.btn:disabled{cursor:progress}
/* 2026 exam strip and badges */
.examstrip{background:var(--ink);color:var(--sheet)}
.examstrip .wrap{display:flex;flex-wrap:wrap;align-items:center;gap:6px 18px;padding-block:8px;font-size:14px}
.es-tag{font-family:var(--f-mono);font-weight:600;letter-spacing:.04em;background:var(--omr);color:#fff;padding:2px 10px;border-radius:4px}
.es-date b,.es-left b{font-family:var(--f-mono);font-variant-numeric:tabular-nums}
.es-left b{color:var(--omr);font-size:16px}
.es-hi{opacity:.75}
.es-upd{margin-left:auto;opacity:.7;font-size:13px}
.chip.y{border-color:var(--omr);color:var(--omr);background:var(--omr-soft);font-weight:600}
@media (max-width:560px){.es-upd{margin-left:0}.es-hi{display:none}}
