/* Operation 85+ — question-bank look.
   Layout: navy toolbar across the top; content in flat bordered panels and data tables;
   the exam screen is a three-part frame (toolbar / question list + item / bottom bar). */
:root{
  --navy:#1D3557;        /* toolbars */
  --navy-2:#264A75;      /* toolbar hover / active */
  --navy-ink:#FFFFFF;
  --page:#EEF1F4;        /* app background */
  --panel:#FFFFFF;
  --sub:#F6F8FA;         /* table headers, inset areas */
  --line:#D5DBE1;
  --line-2:#E6EAEE;
  --ink:#1B2430;
  --muted:#5B6776;
  --link:#1F5FAD;
  --sel:#E3EDF8;         /* selected option */
  --ok:#2E7D32; --ok-bg:#E8F3E9;
  --bad:#C62828; --bad-bg:#FBEAEA;
  --warn:#9A6400; --warn-bg:#FFF4DC;
  --f:"Source Sans 3","Segoe UI",Roboto,Helvetica,Arial,sans-serif;
  --r:3px;
}
@media (prefers-color-scheme: dark){:root:not([data-theme="light"]){
  --navy:#16253A; --navy-2:#22385A; --navy-ink:#F2F5F8;
  --page:#11161D; --panel:#19212B; --sub:#1F2935; --line:#2E3A48; --line-2:#26313D;
  --ink:#E4E9EF; --muted:#9AA6B4; --link:#7FB0F0; --sel:#1E3350;
  --ok:#66BB6A; --ok-bg:#1B3020; --bad:#EF7A70; --bad-bg:#3A1F1F; --warn:#E2B24F; --warn-bg:#33291A; color-scheme:dark}}
:root[data-theme="dark"]{
  --navy:#16253A; --navy-2:#22385A; --navy-ink:#F2F5F8;
  --page:#11161D; --panel:#19212B; --sub:#1F2935; --line:#2E3A48; --line-2:#26313D;
  --ink:#E4E9EF; --muted:#9AA6B4; --link:#7FB0F0; --sel:#1E3350;
  --ok:#66BB6A; --ok-bg:#1B3020; --bad:#EF7A70; --bad-bg:#3A1F1F; --warn:#E2B24F; --warn-bg:#33291A; color-scheme:dark}

*{box-sizing:border-box}
html,body{margin:0;height:100%}
body{background:var(--page);color:var(--ink);font-family:var(--f);font-size:15px;line-height:1.45;font-variant-numeric:tabular-nums}
button,input,select{font:inherit;color:inherit}
button{cursor:pointer}
:focus-visible{outline:2px solid var(--link);outline-offset:1px}
a{color:var(--link)}
h1,h2,h3{margin:0;font-weight:600;line-height:1.25}
h1{font-size:22px}
h2{font-size:16px}
h3{font-size:15px}
p{margin:0}
.muted{color:var(--muted)}
.num{text-align:right}
.hide{display:none!important}

/* ── top toolbar ── */
.bar{background:var(--navy);color:var(--navy-ink);position:sticky;top:0;z-index:20;padding-top:env(safe-area-inset-top,0px)}
.bar-in{display:flex;align-items:center;gap:4px;height:48px;max-width:1180px;margin:0 auto;padding-left:max(12px,env(safe-area-inset-left,0px));padding-right:max(12px,env(safe-area-inset-right,0px))}
.logo{font-weight:700;letter-spacing:.02em;margin-right:14px;white-space:nowrap;background:none;border:0;color:inherit;padding:0;font-size:16px}
.logo small{font-weight:400;opacity:.7;margin-left:6px;font-size:13px}
.nav{display:flex;gap:2px;flex:1;min-width:0;overflow-x:auto;scrollbar-width:none}
.nav button,.bar .tb{background:none;border:0;color:var(--navy-ink);padding:0 12px;height:48px;font-size:14px;white-space:nowrap;opacity:.85}
.nav button:hover,.bar .tb:hover{background:var(--navy-2);opacity:1}
.nav button[aria-current="page"]{opacity:1;box-shadow:inset 0 -3px 0 #8FB8E8}
.who{font-size:13px;opacity:.85;white-space:nowrap;max-width:16ch;overflow:hidden;text-overflow:ellipsis}

.page{max-width:1180px;margin:0 auto;padding-left:max(12px,env(safe-area-inset-left,0px));padding-right:max(12px,env(safe-area-inset-right,0px));padding-block:18px 48px;display:grid;gap:16px}
.ph{display:flex;align-items:flex-end;justify-content:space-between;gap:12px;flex-wrap:wrap}
.crumb{font-size:13px;color:var(--muted)}
.crumb button{background:none;border:0;padding:0;color:var(--link);font-size:13px}
.notice{background:var(--warn-bg);border:1px solid var(--warn);color:var(--ink);padding:8px 12px;font-size:14px;border-radius:var(--r)}

/* ── panels, tables ── */
.panel{background:var(--panel);border:1px solid var(--line);border-radius:var(--r)}
.panel>.hd{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:10px 14px;border-bottom:1px solid var(--line);background:var(--sub)}
.panel>.hd h2{font-size:14px;text-transform:uppercase;letter-spacing:.04em;color:var(--muted);font-weight:600}
.panel>.bd{padding:14px}
.cols{display:grid;grid-template-columns:minmax(0,340px) minmax(0,1fr);gap:16px;align-items:start}
@media (max-width:860px){.cols{grid-template-columns:1fr}}
.stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));background:var(--panel);border:1px solid var(--line);border-radius:var(--r)}
.stat{padding:12px 14px;border-right:1px solid var(--line-2)}
.stat:last-child{border-right:0}
.stat b{display:block;font-size:24px;font-weight:600}
.stat span{font-size:13px;color:var(--muted)}
@media (max-width:640px){.stats{grid-template-columns:1fr 1fr}.stat:nth-child(2){border-right:0}.stat:nth-child(-n+2){border-bottom:1px solid var(--line-2)}}

.tw{overflow-x:auto}
table{border-collapse:collapse;width:100%;font-size:14px}
th,td{padding:8px 12px;border-bottom:1px solid var(--line-2);text-align:left;vertical-align:middle}
th{background:var(--sub);font-weight:600;font-size:13px;color:var(--muted);white-space:nowrap;border-bottom:1px solid var(--line)}
th.sort{cursor:pointer;user-select:none}
tbody tr:last-child td{border-bottom:0}
tr.click{cursor:pointer}
tr.click:hover td{background:var(--sel)}
td .sub{font-size:12px;color:var(--muted)}
.pbar{height:8px;background:var(--line-2);border-radius:2px;position:relative;min-width:90px}
.pbar i{position:absolute;inset:0 auto 0 0;border-radius:2px;background:var(--link)}
.pbar b{position:absolute;top:-3px;bottom:-3px;width:1px;background:var(--ink)}
.tag{display:inline-block;font-size:12px;font-weight:600;padding:1px 6px;border-radius:2px;border:1px solid var(--line);color:var(--muted);white-space:nowrap}
.tag.ok{color:var(--ok);border-color:var(--ok);background:var(--ok-bg)}
.tag.bad{color:var(--bad);border-color:var(--bad);background:var(--bad-bg)}
.tag.warn{color:var(--warn);border-color:var(--warn);background:var(--warn-bg)}
.r-ok{color:var(--ok);font-weight:600}
.r-bad{color:var(--bad);font-weight:600}

/* ── controls ── */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;min-height:36px;padding:0 14px;border:1px solid var(--line);background:var(--panel);border-radius:var(--r);font-size:14px;font-weight:600;color:var(--ink);white-space:nowrap}
.btn:hover{border-color:var(--link)}
.btn.pri{background:var(--link);border-color:var(--link);color:#fff}
.btn.pri:hover{filter:brightness(1.08)}
.btn.lnk{border-color:transparent;background:none;color:var(--link);padding:0 6px}
.btn:disabled{opacity:.45;cursor:default;filter:none}
.row{display:flex;gap:8px;flex-wrap:wrap;align-items:center}
.fld{display:grid;gap:4px;margin-bottom:14px}
.fld>label,.fld>.lb{font-size:13px;font-weight:600}
.fld .hint{font-size:12px;color:var(--muted)}
input[type=text],input[type=email],input[type=password],input[type=search],input[type=number],select{width:100%;height:36px;padding:0 10px;border:1px solid var(--line);border-radius:var(--r);background:var(--panel);font-size:15px}
input:focus,select:focus{border-color:var(--link);outline:none;box-shadow:0 0 0 2px var(--sel)}
.chk{display:flex;align-items:center;gap:8px;padding:5px 0;font-size:14px;cursor:pointer}
.chk input{width:16px;height:16px;margin:0;accent-color:var(--link)}
.chk .c{margin-left:auto;color:var(--muted);font-size:13px}
.radios{display:flex;border:1px solid var(--line);border-radius:var(--r);overflow:hidden}
.radios button{flex:1;border:0;background:var(--panel);padding:7px 6px;font-size:13px;font-weight:600;color:var(--muted);border-right:1px solid var(--line)}
.radios button:last-child{border-right:0}
.radios button[aria-pressed="true"]{background:var(--navy);color:var(--navy-ink)}
.err{background:var(--bad-bg);border:1px solid var(--bad);color:var(--bad);padding:8px 10px;font-size:14px;border-radius:var(--r)}
.okmsg{background:var(--ok-bg);border:1px solid var(--ok);color:var(--ok);padding:8px 10px;font-size:14px;border-radius:var(--r)}
.empty{padding:22px;text-align:center;color:var(--muted);font-size:14px}
.loading{padding:40px;text-align:center;color:var(--muted)}

/* ── auth ── */
.auth{max-width:400px;margin:7vh auto 0;padding-inline:16px}
.auth .panel>.hd{background:var(--navy);color:var(--navy-ink);border-bottom:0}
.auth .panel>.hd h2{color:var(--navy-ink)}
.auth .foot{font-size:14px;color:var(--muted);margin-top:12px;text-align:center}
.linkbtn{background:none;border:0;padding:0;color:var(--link);font-size:14px}

/* ── exam screen ── */
.exam{display:grid;grid-template-rows:auto 1fr auto;height:100vh;height:100dvh;background:var(--panel)}
.xbar{background:var(--navy);color:var(--navy-ink);display:flex;align-items:center;gap:4px;padding:0 max(8px,env(safe-area-inset-right,0px)) 0 max(8px,env(safe-area-inset-left,0px));min-height:48px;padding-top:env(safe-area-inset-top,0px)}
.xbar .item{font-weight:600;font-size:15px;white-space:nowrap}
.xbar .qid{font-size:12px;opacity:.75;white-space:nowrap}
.xbar .sp{flex:1}
.xbar .tb{background:none;border:0;color:var(--navy-ink);height:48px;padding:0 10px;font-size:14px;display:inline-flex;align-items:center;gap:6px;white-space:nowrap}
.xbar .tb:hover{background:var(--navy-2)}
.xbar .tb[aria-pressed="true"]{color:#FFD27A}
.timer{font-size:15px;font-weight:600;padding:0 10px;white-space:nowrap}
.timer.low{color:#FF9C8F}
.xmain{display:grid;grid-template-columns:76px minmax(0,1fr);min-height:0}
.qlist{border-right:1px solid var(--line);overflow-y:auto;background:var(--sub)}
.qlist button{display:flex;align-items:center;justify-content:space-between;width:100%;border:0;border-bottom:1px solid var(--line-2);background:none;padding:6px 8px;font-size:13px;color:var(--ink)}
.qlist button.cur{background:var(--navy);color:var(--navy-ink)}
.qlist button .st{font-size:11px;width:14px;text-align:center}
.qlist button.ans .st::after{content:"●";color:var(--link)}
.qlist button.ok .st::after{content:"✓";color:var(--ok);font-weight:700}
.qlist button.bad .st::after{content:"✗";color:var(--bad);font-weight:700}
.qlist button.cur .st::after{color:inherit}
.qlist button .fl{color:#D08A00;font-size:11px}
.qpane{overflow-y:auto;padding:22px clamp(14px,4vw,40px) 40px}
.qpane-in{max-width:820px;display:grid;gap:18px}
.stem{font-size:16.5px;line-height:1.6}
.meta{display:flex;gap:6px;flex-wrap:wrap}
.opts{display:grid;gap:2px;border:1px solid var(--line);border-radius:var(--r);padding:6px}
.opt{display:flex;gap:10px;align-items:flex-start;text-align:left;border:1px solid transparent;background:none;padding:8px 10px;border-radius:2px;font-size:16px;line-height:1.45;width:100%}
.opt:hover:not(:disabled){background:var(--sub)}
.opt:disabled{cursor:default}
.opt .rd{flex:none;width:16px;height:16px;border:1.5px solid var(--muted);border-radius:50%;margin-top:3px;position:relative}
.opt .lt{font-weight:600;min-width:20px}
.opt .tx{min-width:0;overflow-wrap:anywhere;flex:1}
.opt .mk{font-weight:700;font-size:14px;margin-left:8px}
.opt.sel{background:var(--sel)}
.opt.sel .rd::after{content:"";position:absolute;inset:3px;border-radius:50%;background:var(--link)}
.opt.right{background:var(--ok-bg);border-color:var(--ok)}
.opt.right .mk{color:var(--ok)}
.opt.wrong{background:var(--bad-bg);border-color:var(--bad)}
.opt.wrong .mk{color:var(--bad)}
.opt.alt{border-style:dashed;border-color:var(--warn)}
.opt.sel.right .rd::after{background:var(--ok)}
.opt.sel.wrong .rd::after{background:var(--bad)}
.xpl{border-top:3px solid var(--navy);background:var(--sub);padding:14px 16px;display:grid;gap:8px;font-size:15px}
.xpl .verdict{font-weight:700}
.xpl .verdict.ok{color:var(--ok)}
.xpl .verdict.bad{color:var(--bad)}
.dispute{border-left:3px solid var(--warn);background:var(--warn-bg);padding:8px 10px;font-size:14px}
.xfoot{background:var(--navy);color:var(--navy-ink);display:flex;align-items:center;gap:4px;padding:0 max(8px,env(safe-area-inset-right,0px)) env(safe-area-inset-bottom,0px) max(8px,env(safe-area-inset-left,0px));min-height:48px}
.xfoot .tb{background:none;border:0;color:var(--navy-ink);height:48px;padding:0 14px;font-size:14px;font-weight:600}
.xfoot .tb:hover:not(:disabled){background:var(--navy-2)}
.xfoot .tb:disabled{opacity:.4;cursor:default}
.xfoot .go{background:#3E7BCB;margin:6px 0;height:36px;border-radius:var(--r)}
.xfoot .go:hover:not(:disabled){background:#4A88D8}
.xfoot .keys{font-size:12px;opacity:.6;margin-inline:auto}
.overlay{position:fixed;inset:0;background:rgba(10,18,28,.45);display:grid;place-items:center;z-index:50;padding:16px}
.dialog{background:var(--panel);border:1px solid var(--line);border-radius:var(--r);max-width:400px;width:100%}
.dialog .hd{background:var(--navy);color:var(--navy-ink);padding:10px 14px;font-weight:600}
.dialog .bd{padding:14px;display:grid;gap:12px;font-size:15px}
@media (max-width:700px){
  .xmain{grid-template-columns:1fr;grid-template-rows:auto minmax(0,1fr)}
  .qlist{display:flex;overflow-x:auto;overflow-y:hidden;border-right:0;border-bottom:1px solid var(--line)}
  .qlist button{flex:none;width:auto;min-width:46px;border-bottom:0;border-right:1px solid var(--line-2);gap:4px;padding:8px}
  .xbar .qid,.xfoot .keys,.xbar .lbl{display:none}
  .qpane{padding-top:16px}
}

/* ── results / review ── */
.score{display:flex;gap:24px;align-items:center;flex-wrap:wrap}
.score .big{font-size:40px;font-weight:600;line-height:1}
.score .big small{font-size:18px;color:var(--muted);font-weight:400}
.score .bar2{flex:1;min-width:200px;display:grid;gap:4px}
.score .bar2 .pbar{height:12px}
.score .bar2 .lbls{display:flex;justify-content:space-between;font-size:12px;color:var(--muted)}
.rvq td{vertical-align:top}
.rvq .exp{font-size:14px;color:var(--muted);margin-top:4px}
.seg2{display:flex;border:1px solid var(--line);border-radius:var(--r);overflow:hidden}
.seg2 button{border:0;background:var(--panel);padding:5px 12px;font-size:13px;font-weight:600;color:var(--muted);border-right:1px solid var(--line)}
.seg2 button:last-child{border-right:0}
.seg2 button[aria-pressed="true"]{background:var(--navy);color:var(--navy-ink)}
.foot{font-size:13px;color:var(--muted);max-width:80ch}
@media (prefers-reduced-motion:no-preference){.btn,.opt,tr.click td{transition:background-color .12s,border-color .12s}}

/* fixes: keep wide tables inside their own scroller; two-row toolbar on phones */
.page>*,.cols>*{min-width:0}
.xbar .timer.muted{color:var(--navy-ink)}
@media (max-width:760px){
  .bar-in{flex-wrap:wrap;height:auto;row-gap:0}
  .bar-in .logo{height:44px}
  .bar-in .who{margin-left:auto}
  .bar-in>.tb{height:44px}
  .nav{order:3;flex:1 0 100%;border-top:1px solid rgba(255,255,255,.12);margin-inline:-12px;padding-inline:4px}
  .nav button{height:42px;padding:0 10px}
}
@media (max-width:420px){.bar-in .who{display:none}.bar-in>.tb{margin-left:auto}}
