:root{--ink:#1c2430;--muted:#5b6570;--line:#dfe3e8;--bg:#fff;--soft:#f5f7f9;--accent:#245b8f;
  --ok:#1f7a44;--okbg:#e9f7ef;--bad:#b23a2e;--badbg:#fdecea;--warn:#8a5a00;--warnbg:#fff6e6;--code:#15181f;--codefg:#e6f4ef}
*{box-sizing:border-box}
html,body{margin:0;height:100%}
body{font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;color:var(--ink);background:var(--soft);line-height:1.5}
.mono,pre,code{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace}
a{color:var(--accent)}
.ex-top{display:flex;justify-content:space-between;align-items:center;gap:16px;flex-wrap:wrap;background:#fff;
  border-top:6px solid var(--accent);border-bottom:1px solid var(--line);padding:12px 20px}
.ex-ttl{font-size:22px;font-weight:800}
.ex-sub{color:var(--muted);font-size:14px}
.ex-status{font-size:14px;text-align:right}
.ex-status .who{font-weight:700}
.ex-status .tot{display:inline-block;background:var(--accent);color:#fff;border-radius:20px;padding:2px 12px;font-weight:700;margin-left:8px}
main{padding:16px 20px 40px}
.card{background:#fff;border:1px solid var(--line);border-radius:10px;padding:16px 18px;margin:0 0 14px}
.narrow{max-width:900px;margin:0 auto}
label{font-weight:600;font-size:14px;display:block;margin:0 0 5px}
input[type=text]{width:100%;padding:9px 11px;border:1px solid var(--line);border-radius:7px;font-size:15px}
.grid3{display:grid;grid-template-columns:1fr 1fr 1fr;gap:12px}
@media (max-width:700px){.grid3{grid-template-columns:1fr}}
.btn{display:inline-block;background:var(--accent);color:#fff;padding:9px 16px;border-radius:7px;font-weight:700;border:0;cursor:pointer;font-size:14px}
.btn:hover{filter:brightness(1.08)}.btn:disabled{opacity:.55;cursor:default}
.btn.gray{background:#6b7480}.btn.green{background:#1f7a44}.btn.sm{padding:5px 10px;font-size:13px}
.msg{font-size:14px;margin-top:8px;color:var(--muted)}.msg.err{color:var(--bad)}
.tabs{display:flex;gap:4px;flex-wrap:wrap;margin:0 0 12px;border-bottom:2px solid var(--accent)}
.tab{background:#e8edf2;border:0;border-radius:8px 8px 0 0;padding:9px 16px;font-weight:700;font-size:14px;cursor:pointer;color:var(--ink)}
.tab.on{background:var(--accent);color:#fff}
.tab .pts{font-weight:400;opacity:.85;margin-left:6px;font-size:12.5px}
.q{border:1px solid var(--line);border-radius:10px;padding:12px 14px;margin:0 0 12px;background:#fff}
.q h3{margin:0 0 6px;font-size:15px}
.q pre{background:var(--code);color:var(--codefg);padding:10px 12px;border-radius:8px;overflow:auto;font-size:13.5px}
.opt{display:flex;gap:9px;align-items:flex-start;padding:7px 10px;border:1px solid var(--line);border-radius:8px;margin:5px 0;cursor:pointer;font-weight:400}
.opt:hover{background:var(--soft)}.opt input{margin-top:4px}
.opt.right{border-color:#a9dcbf;background:var(--okbg)}.opt.wrong{border-color:#f2b8b1;background:var(--badbg)}
.prob{display:grid;grid-template-columns:minmax(300px,38%) 1fr;gap:14px;align-items:start}
@media (max-width:1000px){.prob{grid-template-columns:1fr}}
.prob-left{max-height:calc(100vh - 170px);overflow:auto}
.prob-left h2{margin:0 0 6px;font-size:19px}
.prob-left ul{padding-left:20px}.prob-left li{margin:4px 0}
details.sample{border:1px solid var(--line);border-radius:8px;margin:8px 0;background:#fff}
details.sample summary{cursor:pointer;padding:8px 12px;font-weight:700;font-size:14px}
details.sample pre{margin:0 12px 12px;background:var(--code);color:var(--codefg);padding:10px;border-radius:7px;overflow:auto;font-size:12.5px;max-height:320px}
.ed-wrap{background:#fff;border:1px solid var(--line);border-radius:10px;overflow:hidden}
.ftabs{display:flex;gap:2px;background:#eef1f4;padding:6px 6px 0;flex-wrap:wrap}
.ftab{border:0;background:transparent;padding:7px 12px;font-size:13px;border-radius:7px 7px 0 0;cursor:pointer;font-family:ui-monospace,Menlo,Consolas,monospace}
.ftab.on{background:#fff;font-weight:700}
.ftab .dot{color:var(--accent);margin-left:3px}
#editor,.editor{height:calc(100vh - 380px);min-height:320px}
textarea.fallback{width:100%;height:100%;border:0;padding:10px;font-family:ui-monospace,Menlo,Consolas,monospace;font-size:14px;resize:none}
.bar{display:flex;gap:8px;align-items:center;flex-wrap:wrap;padding:10px;border-top:1px solid var(--line);background:#fafbfc}
.bar .hint{color:var(--muted);font-size:12.5px;margin-left:auto}
.console{background:var(--code);color:var(--codefg);font-family:ui-monospace,Menlo,Consolas,monospace;font-size:13px;
  white-space:pre-wrap;padding:12px;min-height:90px;max-height:300px;overflow:auto;border-top:1px solid #000}
.console .h{color:#8fb8a8;font-weight:700}.console .e{color:#ff9b8f}.console .g{color:#7fe0a6}
.results{margin-top:12px}
.tres{display:flex;gap:10px;align-items:flex-start;padding:7px 10px;border-radius:7px;margin:4px 0;font-size:14px}
.tres.pass{background:var(--okbg)}.tres.fail,.tres.compile_error,.tres.runtime_error,.tres.timeout{background:var(--badbg)}
.tres .st{font-weight:800;min-width:118px}.tres.pass .st{color:var(--ok)}.tres:not(.pass) .st{color:var(--bad)}
.tres pre{margin:4px 0 0;font-size:12px;white-space:pre-wrap}
.diff{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:6px}
.diff pre{background:#fff;border:1px solid var(--line);border-radius:6px;padding:6px 8px;margin:0;max-height:220px;overflow:auto}
.score{font-size:16px;font-weight:800;margin:8px 0}
.best{display:inline-block;background:var(--okbg);border:1px solid #a9dcbf;color:var(--ok);border-radius:20px;padding:2px 12px;font-size:13px;font-weight:700}
.warnbox{background:var(--warnbg);border:1px solid #f2d79a;border-radius:8px;padding:10px 14px;font-size:14px;margin:0 0 12px}
.clock{display:inline-block;background:#eef1f4;border-radius:20px;padding:2px 12px;font-weight:700;margin-left:8px;font-variant-numeric:tabular-nums}
.clock.late{background:var(--badbg);color:var(--bad)}
.mcprog{position:sticky;top:0;z-index:5;background:#fff;border:1px solid var(--line);border-radius:8px;padding:8px 14px;margin:0 0 12px;font-size:14px}
.mcprog .unsaved{color:var(--warn);font-weight:700}.mcprog .saved{color:var(--ok)}
.bar .fs{display:inline-flex;gap:4px}
.tab.ans{background:#fff6e6;color:var(--warn);margin-left:auto}.tab.ans.on{background:var(--warn);color:#fff}
.ans-h{font-size:19px;margin:6px 0 10px}
.ans-tag{font-size:12.5px;font-weight:700;border-radius:20px;padding:1px 9px;margin-left:6px;background:#eef1f4;color:var(--muted)}
.ans-tag.ok{background:var(--okbg);color:var(--ok)}.ans-tag.bad{background:var(--badbg);color:var(--bad)}
.ans-why{background:var(--soft);border-left:4px solid var(--accent);border-radius:6px;padding:8px 12px;margin-top:8px;font-size:14px}
