:root{
  --ink:#1c2430;--ink2:#4a5566;--mute:#6b7686;--line:#d9dee6;--line2:#eceff4;
  --bg:#f3f5f8;--paper:#fff;--acc:#1f5f8b;--acc2:#e8f1f8;--ok:#2e7d4f;--okbg:#e9f6ee;
  --bad:#b3261e;--badbg:#fdeceb;--warn:#8a5a00;--warnbg:#fff5e0;--hl:#fff3c4;
  --r:10px;--sh:0 1px 2px rgba(20,30,50,.06),0 4px 14px rgba(20,30,50,.05);
}
*{box-sizing:border-box}
html,body{margin:0;background:var(--bg);color:var(--ink);font:16px/1.55 Inter,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;-webkit-font-smoothing:antialiased}
button,input,select,textarea{font:inherit;color:inherit}
h1,h2,h3{line-height:1.25;margin:0 0 .5em}
p{margin:0 0 .8em}
.wrap{max-width:1180px;margin:0 auto;padding:22px 20px 120px}
.wrap.narrow{max-width:760px}
.sheet{background:var(--paper);border:1px solid var(--line);border-radius:var(--r);box-shadow:var(--sh);padding:26px 28px;margin-bottom:18px}
.eyebrow{font-size:12.5px;letter-spacing:.06em;text-transform:uppercase;color:var(--mute);font-weight:600;margin-bottom:6px}
.title{font-size:30px;font-weight:700;letter-spacing:-.01em}
.note{color:var(--mute);font-size:14px}
.top{position:sticky;top:0;z-index:20;background:#18324a;color:#fff;display:flex;align-items:center;gap:16px;padding:10px 20px;min-height:54px}
.top .brand{font-weight:700;white-space:nowrap}
.top .where{color:#c6d4e2;font-size:14.5px}
.top .sp{flex:1}
.clock{font-variant-numeric:tabular-nums;font-weight:700;font-size:18px;background:rgba(255,255,255,.12);padding:4px 12px;border-radius:8px;min-width:92px;text-align:center}
.clock.low{background:#b3261e}
.saved{font-size:13px;color:#a9bed2}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;border:1px solid var(--acc);background:var(--acc);color:#fff;border-radius:8px;padding:10px 18px;font-weight:600;cursor:pointer;text-decoration:none;min-height:44px}
.btn:hover{filter:brightness(1.08)}
.btn:disabled{opacity:.45;cursor:not-allowed;filter:none}
.btn.alt{background:#fff;color:var(--acc)}
.btn.ghost{background:transparent;border-color:transparent;color:var(--acc);padding-left:8px;padding-right:8px}
.btn.small{min-height:34px;padding:5px 12px;font-size:14px}
.btn.danger{border-color:var(--bad);color:var(--bad);background:#fff}
.btns{display:flex;gap:10px;flex-wrap:wrap;align-items:center}
.field{display:block;font-weight:600;margin:18px 0 14px}
.field input{display:block;width:100%;max-width:420px;margin-top:6px;padding:10px 12px;border:1px solid var(--line);border-radius:8px;font-weight:400}
table{border-collapse:collapse;width:100%}
.steps td,.steps th{border-bottom:1px solid var(--line2);padding:9px 10px;text-align:left}
.steps th{font-size:13px;color:var(--mute);font-weight:600}
.tablebox{overflow-x:auto;margin:14px 0}
.jump{margin-top:24px;padding-top:18px;border-top:1px solid var(--line2)}
.jump .btns{margin-top:10px}
.testid{display:grid;gap:12px;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));margin:18px 0}
.testcard{border:1px solid var(--line);border-radius:var(--r);padding:16px;background:#fff;text-decoration:none;color:var(--ink);display:block}
.testcard:hover{border-color:var(--acc);box-shadow:var(--sh)}
.testcard b{display:block;font-size:19px;margin-bottom:4px}
.testcard span{color:var(--mute);font-size:14px}
.testcard .st{margin-top:8px;font-size:13px;color:var(--acc);font-weight:600}

/* Ülesanne */
.task-head{display:flex;gap:12px;align-items:baseline;flex-wrap:wrap;margin-bottom:6px}
.task-head h2{font-size:21px;margin:0}
.tag{font-size:12px;font-weight:700;border:1px solid var(--line);border-radius:999px;padding:2px 9px;color:var(--ink2);background:#fff}
.juhis{font-weight:600;margin:6px 0 16px}
.grid2{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,1fr);gap:22px;align-items:start}
.textbox{border:1px solid var(--line);border-radius:var(--r);padding:18px 20px;background:#fbfcfd;max-height:calc(100vh - 220px);overflow:auto;position:sticky;top:76px}
.textbox h3{font-size:18px}
.textbox p{margin:0 0 .85em}
.q{border:1px solid var(--line2);border-radius:var(--r);padding:12px 14px;margin-bottom:10px;background:#fff}
.q.flagged{border-color:#e0b100;background:#fffcf0}
.qtop{display:flex;gap:10px;align-items:flex-start}
.qn{flex:none;font-weight:700;min-width:26px;color:var(--acc)}
.qt{flex:1}
.flag{flex:none;border:none;background:none;color:var(--mute);cursor:pointer;font-size:13px;padding:2px 4px;text-decoration:underline}
.flag[aria-pressed=true]{color:#8a5a00;font-weight:700}
.opts select{width:100%;max-width:420px}
.opts{margin:8px 0 0 36px;display:grid;gap:6px}
.opts.row{grid-template-columns:repeat(auto-fit,minmax(110px,max-content));gap:8px}
.opt{display:flex;gap:10px;align-items:flex-start;border:1px solid var(--line);border-radius:8px;padding:8px 12px;cursor:pointer;background:#fff}
.opt:hover{border-color:#9db6cc}
.opt input{margin-top:4px;accent-color:var(--acc)}
.opt.on{border-color:var(--acc);background:var(--acc2)}
select{border:1px solid var(--line);border-radius:7px;padding:7px 10px;background:#fff;min-height:40px;max-width:100%}
select.on{border-color:var(--acc);background:var(--acc2)}
input.fill{border:none;border-bottom:2px solid #8aa3ba;background:#f5f8fb;padding:3px 6px;border-radius:4px 4px 0 0;min-width:130px;width:auto}
input.fill:focus{outline:2px solid var(--acc);outline-offset:1px;background:#fff}
input.fill.on{border-bottom-color:var(--acc)}
.gaptext{font-size:17px;line-height:2.25;border:1px solid var(--line);border-radius:var(--r);padding:18px 22px;background:#fbfcfd}
.gaptext p{margin:0 0 .6em}
.gn{font-size:12px;font-weight:700;color:var(--acc);vertical-align:super;margin:0 2px 0 4px}
.bank{display:flex;flex-wrap:wrap;gap:8px;border:2px solid var(--ink);border-radius:8px;padding:12px 14px;margin-bottom:16px;background:#fff}
.bank span{border:1px solid var(--line);border-radius:6px;padding:3px 10px;font-weight:600}
.ads{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:10px;margin-bottom:18px}
.ad{border:1px solid var(--ink2);border-radius:6px;padding:10px 12px;background:#fff;font-size:15px}
.ad b{display:inline}
.ad .k{font-weight:800;font-size:17px;margin-right:6px;color:var(--acc)}
.ad .at{display:block;margin-top:4px}
.vlist{border:2px solid var(--ink);border-radius:8px;padding:12px 16px;background:#fff;margin-bottom:16px}
.vlist div{padding:2px 0}
.para{display:grid;grid-template-columns:auto 1fr;gap:12px;border:1px solid var(--line2);border-radius:var(--r);padding:12px 14px;margin-bottom:10px;background:#fff}
.para .ptxt{font-size:15.5px}
.para select{margin-top:8px}
.player{display:flex;gap:14px;align-items:center;border:1px solid var(--line);border-radius:var(--r);padding:12px 16px;margin-bottom:16px;background:#f7fafc}
.player .btn{min-width:150px}
.miss{color:var(--bad);font-size:14px}
.chars{position:fixed;right:18px;bottom:84px;z-index:15;display:flex;gap:4px;background:#fff;border:1px solid var(--line);border-radius:10px;padding:6px;box-shadow:var(--sh)}
.chars button{width:36px;height:36px;border:1px solid var(--line);border-radius:6px;background:#fff;cursor:pointer;font-weight:600}
.chars button:hover{background:var(--acc2)}
.foot{position:fixed;left:0;right:0;bottom:0;z-index:18;background:#fff;border-top:1px solid var(--line);padding:10px 20px;display:flex;gap:12px;align-items:center;flex-wrap:wrap}
.chips{display:flex;gap:6px;flex-wrap:wrap;flex:1}
.chip{min-width:38px;height:36px;border:1px solid var(--line);border-radius:7px;background:#fff;cursor:pointer;font-weight:600;font-size:14px;padding:0 8px}
.chip.done{background:#dfeaf3;border-color:#b6cde0}
.chip.part{background:repeating-linear-gradient(135deg,#fff,#fff 4px,#e9f0f6 4px,#e9f0f6 8px)}
.chip.here{outline:2px solid var(--acc);outline-offset:1px}
.chip.fl{border-color:#e0b100;box-shadow:inset 0 -3px 0 #e0b100}

/* Kirjutamine */
.wtask{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.25fr);gap:22px;align-items:start}
.wtask ul{margin:8px 0 12px 20px;padding:0}
.wtask li{margin:4px 0}
textarea.essay{width:100%;min-height:440px;border:1px solid var(--line);border-radius:var(--r);padding:14px 16px;line-height:1.6;resize:vertical;background:#fff}
textarea.essay:focus{outline:2px solid var(--acc);outline-offset:1px}
.wc{display:flex;justify-content:space-between;font-size:14px;color:var(--mute);margin-top:6px}
.wc b{color:var(--ink)}
.chart{border:1px solid var(--line);border-radius:var(--r);padding:14px 16px;background:#fff;margin-top:10px}
.chart h4{margin:0 0 10px;font-size:15px}
.bar{display:grid;grid-template-columns:150px 1fr 44px;gap:10px;align-items:center;margin:7px 0;font-size:14px}
.bar .tr{height:20px;background:var(--line2);border-radius:4px;overflow:hidden}
.bar .tr i{display:block;height:100%;background:#3e7cab}
.bar b{text-align:right;font-variant-numeric:tabular-nums}

/* Tulemused */
.res{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.3fr);gap:18px;align-items:start}
.score{font-size:54px;font-weight:800;line-height:1}
.score small{font-size:22px;color:var(--mute);font-weight:600}
.line{display:grid;grid-template-columns:150px 1fr 70px;gap:12px;align-items:center;padding:8px 0;border-bottom:1px solid var(--line2)}
.track{height:12px;background:var(--line2);border-radius:99px;overflow:hidden}
.track i{display:block;height:100%;background:var(--acc)}
.sec{margin-top:18px}
.sec h3{font-size:16px}
.wrong{border-left:3px solid var(--bad);background:var(--badbg);padding:8px 12px;border-radius:0 8px 8px 0;margin-bottom:8px;font-size:14.5px}
.wrong .t{font-size:12px;text-transform:uppercase;letter-spacing:.04em;color:var(--bad);font-weight:700}
.okmsg{background:var(--okbg);color:var(--ok);padding:10px 14px;border-radius:8px}
.mine{white-space:pre-wrap;border:1px solid var(--line);border-radius:8px;padding:12px;background:#fbfcfd;font-size:15px;margin-top:6px}
textarea.code{width:100%;height:96px;font:12px/1.4 ui-monospace,Menlo,Consolas,monospace;border:1px solid var(--line);border-radius:8px;padding:8px;word-break:break-all}
.callout{border:1px solid #b6cde0;background:var(--acc2);border-radius:var(--r);padding:14px 16px}

.modal-bg{position:fixed;inset:0;background:rgba(15,25,40,.45);display:flex;align-items:center;justify-content:center;z-index:50;padding:20px}
.modal{background:#fff;border-radius:12px;max-width:460px;width:100%;padding:24px;box-shadow:0 20px 60px rgba(0,0,0,.25)}
.modal h3{font-size:20px}

/* Õpetaja */
.dash td,.dash th{padding:8px 10px;border-bottom:1px solid var(--line2);text-align:left;font-size:14.5px;vertical-align:middle}
.dash th{font-size:12.5px;color:var(--mute);font-weight:700;text-transform:uppercase;letter-spacing:.03em;background:#fafbfc;position:sticky;top:0}
.dash tr:hover td{background:#fafcfe}
.dash td.num{font-variant-numeric:tabular-nums;text-align:right}
.dash th.num{text-align:right}
.pill{display:inline-block;min-width:44px;text-align:center;border-radius:6px;padding:2px 6px;font-weight:700;font-variant-numeric:tabular-nums}
.p-hi{background:var(--okbg);color:var(--ok)}
.p-mid{background:var(--warnbg);color:var(--warn)}
.p-lo{background:var(--badbg);color:var(--bad)}
.tabs{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:14px}
.tabs button{border:1px solid var(--line);background:#fff;border-radius:8px;padding:7px 14px;cursor:pointer;font-weight:600}
.tabs button[aria-pressed=true]{background:var(--acc);border-color:var(--acc);color:#fff}
.small-in{width:56px;padding:5px 6px;border:1px solid var(--line);border-radius:6px;text-align:center}
.kpi{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:10px;margin-bottom:16px}
.kpi div{border:1px solid var(--line);border-radius:var(--r);padding:12px 14px;background:#fff}
.kpi b{display:block;font-size:26px}
.kpi span{font-size:13px;color:var(--mute)}
.hard{display:grid;grid-template-columns:52px 1fr;gap:10px;padding:8px 0;border-bottom:1px solid var(--line2);font-size:14.5px}
.taskbar{display:grid;grid-template-columns:260px 1fr 56px;gap:10px;align-items:center;margin:6px 0;font-size:14px}

@media (max-width:900px){
  .grid2,.wtask,.res{grid-template-columns:1fr}
  .textbox{position:static;max-height:none}
  .chars{bottom:120px}
}
@media print{
  .top,.foot,.chars,.noprint{display:none!important}
  body{background:#fff}
  .sheet{box-shadow:none;border:none;padding:0}
  .wrap{padding:0}
}

/* ===== Tume teema (variant C) ===== */
:root{--ink:#e8edf5;--ink2:#b9c3d3;--mute:#8d99ad;--line:#2c3a50;--line2:#223047;--bg:#0e1622;--paper:#162131;
  --acc:#3ccfb4;--acc2:#163d3a;--ok:#5fd59a;--okbg:#14352a;--bad:#ff8a80;--badbg:#3a1d22;--warn:#f2c14e;--warnbg:#3a3018;
  --r:14px;--sh:0 10px 30px rgba(0,0,0,.25)}
html,body{background:#0e1622;color:var(--ink);color-scheme:dark}
a{color:var(--acc)}
.top{background:#0b121c;border-bottom:1px solid var(--line)}
.top a{color:var(--acc)!important}
.sheet,.testcard,.q,.opt,.textbox,.gaptext,.ad,.vlist,.para,.bank,.player,.chart,.kpi div,.modal,.chip,.tabs button,.field input,select,textarea.essay,textarea.code,.mine{background:var(--paper);color:var(--ink);border-color:var(--line)}
.sheet{box-shadow:var(--sh)}
.testcard b{color:#fff}
.testcard:hover{border-color:var(--acc)}
.foot{background:#0b121c;border-color:var(--line)}
.btn{color:#06231e;border-radius:10px}
.btn.alt,.btn.ghost{background:transparent;color:var(--acc)}
.btn.danger{background:transparent;color:var(--bad);border-color:var(--bad)}
.opt:hover{border-color:#3d5470}
.opt.on,select.on{background:var(--acc2);border-color:var(--acc)}
.q.flagged,.para.flagged{background:#2a2614;border-color:#8a7420}
.flag[aria-pressed=true]{color:var(--warn)}
input.fill{background:#1d2b3e;color:#fff;border-bottom-color:#4f6a88}
input.fill:focus{background:#22344a}
input.fill.on{border-bottom-color:var(--acc)}
.gn,.qn{color:var(--acc)}
.bank{border-color:#4f6a88}.bank span{border-color:var(--line);background:#1d2b3e}
.vlist{border-color:#4f6a88}
.ad{border-color:#3d5470}.ad .k{color:var(--acc)}
.tag{background:#1d2b3e;color:var(--ink2);border-color:var(--line)}
.chip.done{background:#1d3e46;border-color:#2f6a66}
.chip.part{background:repeating-linear-gradient(135deg,#162131,#162131 4px,#1d3e46 4px,#1d3e46 8px)}
.chip.here{outline-color:var(--acc)}
.chars{background:#162131;border-color:var(--line)}.chars button{background:#1d2b3e;color:#fff;border-color:var(--line)}
.chars button:hover{background:var(--acc2)}
.track,.bar .tr{background:#223047}
.track i{background:var(--acc)}
.bar .tr i{background:var(--acc)}
.clock{background:rgba(255,255,255,.08)}
.clock.low{background:#b3261e}
.wrong{background:var(--badbg);border-left-color:var(--bad)}.wrong .t{color:var(--bad)}
.okmsg{background:var(--okbg);color:var(--ok)}
.callout{background:#14302f;border-color:#2f6a66}
.modal-bg{background:rgba(0,0,0,.6)}
.steps th,.dash th{background:#121c2a;color:var(--mute)}
.steps td,.steps th,.dash td,.dash th{border-color:var(--line2)}
.dash tr:hover td{background:#1a273a}
.p-hi{background:var(--okbg);color:var(--ok)}.p-mid{background:var(--warnbg);color:var(--warn)}.p-lo{background:var(--badbg);color:var(--bad)}
.tabs button[aria-pressed=true]{background:var(--acc);color:#06231e;border-color:var(--acc)}
.small-in{background:#1d2b3e;color:#fff;border-color:var(--line)}
.hard{border-color:var(--line2)}
@media print{html,body,.sheet{background:#fff!important;color:#000!important}}
