:root{--bg:#10151c;--panel:#18202a;--line:#2b3644;--text:#e7edf4;--muted:#9aa8b8;--ok:#4fd18b;--bad:#ff8a80;--accent:#6cb6ff}
*{box-sizing:border-box}[hidden]{display:none!important}
body{margin:0;background:var(--bg);color:var(--text);font:16px/1.45 system-ui,"Segoe UI",Roboto,sans-serif}
main{max-width:860px;margin:0 auto;padding:18px 18px 60px}main.wide{max-width:1040px}
a{color:var(--accent)}
header{display:flex;justify-content:space-between;gap:20px;align-items:flex-start;flex-wrap:wrap;position:sticky;top:0;background:var(--bg);padding:12px 0;z-index:2;border-bottom:1px solid var(--line)}
h1{font-size:22px;margin:0 0 4px}.sub{color:var(--muted);font-size:14px}.teamline{margin-top:14px}
.score{text-align:right}.score b{font-size:30px;color:var(--ok);font-variant-numeric:tabular-nums}.score span{display:block;color:var(--muted);font-size:13px}.score span span{display:inline}
input{background:#0d1218;color:var(--text);border:1px solid var(--line);border-radius:6px;padding:10px 12px;font:15px ui-monospace,Consolas,monospace}
input:focus{outline:2px solid var(--accent)}
.task{background:var(--panel);border:1px solid var(--line);border-radius:8px;padding:16px;margin:12px 0}.task.done{border-color:var(--ok)}
.joinform{display:grid;gap:8px;max-width:420px;margin-top:24px}.joinform button{margin-top:8px}
.top{display:flex;justify-content:space-between;gap:12px;color:var(--muted);font-size:13px}.q{margin:6px 0 12px}
.row{display:flex;gap:8px}.row input{flex:1;min-width:0}
button{background:var(--accent);color:#08121d;border:0;border-radius:6px;padding:10px 16px;font:600 15px system-ui,sans-serif;cursor:pointer}button:disabled{opacity:.55;cursor:default}
.ghost{background:none;color:var(--accent);padding:8px 0 0;font-weight:400;font-size:14px}
.msg{margin-top:8px;font-size:14px;min-height:20px}.msg.ok{color:var(--ok)}.msg.bad{color:var(--bad)}
.hint{margin-top:6px;color:var(--muted);font-size:14px}footer{color:var(--muted);font-size:14px;margin-top:20px}
table{width:100%;border-collapse:collapse;margin-top:18px}th,td{padding:10px 8px;border-bottom:1px solid var(--line);text-align:left;overflow-wrap:anywhere}th{color:var(--muted);font-size:13px;font-weight:500}.n{text-align:right;font-variant-numeric:tabular-nums}
