:root{--bg:#0d1117;--panel:#10161eeb;--line:#ffffff1f;--text:#e9eef4;--muted:#93a1b2;--blue:#4c8dff;--red:#ff5a4e;--accent:#ffe14a}*{box-sizing:border-box}html,body{background:var(--bg);height:100%;color:var(--text);margin:0;font:15px/1.4 system-ui,-apple-system,Segoe UI,sans-serif;overflow:hidden}#stage canvas{display:block}[hidden]{display:none!important}.panel{background:var(--panel);border:1px solid var(--line);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-radius:16px;width:min(560px,100vw - 32px);max-height:calc(100vh - 32px);padding:28px;position:fixed;top:50%;left:50%;overflow:auto;transform:translate(-50%,-50%);box-shadow:0 20px 60px #00000080}.small-panel{text-align:center;width:min(380px,100vw - 32px)}h1{letter-spacing:-.02em;margin:0;font-size:40px}h1 span{color:var(--accent)}h2{margin:0 0 8px}.sub{color:var(--muted);margin:4px 0 20px}.small{color:var(--muted);font-size:13px}.field{color:var(--muted);flex-direction:column;gap:6px;margin-bottom:16px;font-size:13px;display:flex}input{border:1px solid var(--line);color:var(--text);font:inherit;background:#ffffff0f;border-radius:10px;padding:10px 12px;font-size:16px}input:focus{outline:2px solid var(--accent);outline-offset:1px}.buttons{flex-direction:column;gap:10px;display:flex}.buttons.row{flex-flow:wrap}.buttons.row button{flex:1}button{color:var(--text);border:1px solid var(--line);font:inherit;cursor:pointer;background:#ffffff14;border-radius:10px;padding:12px 16px;font-weight:600}button:hover:not(:disabled){background:#ffffff24}button:focus-visible{outline:2px solid var(--accent)}button:disabled{opacity:.4;cursor:default}button.primary{background:var(--accent);color:#111;border-color:#0000}button.primary:hover:not(:disabled){background:#fff07a}button.ghost{background:0 0}.join{gap:10px;display:flex}.join input{text-transform:uppercase;letter-spacing:.15em;flex:1;min-width:0}.error{color:var(--red);min-height:1.4em;margin-top:10px;font-size:14px}.controls{border-collapse:collapse;width:100%;margin-top:8px;font-size:13px}.controls th,.controls td{text-align:left;border-bottom:1px solid var(--line);padding:5px 6px}.controls th{color:var(--muted);font-weight:500}.controls td:first-child{color:var(--muted)}.lobby-head{justify-content:space-between;align-items:center;gap:12px;margin-bottom:20px;display:flex}.label{color:var(--muted);text-transform:uppercase;letter-spacing:.1em;font-size:12px}.code{letter-spacing:.2em;color:var(--accent);font-size:34px;font-weight:800}.teams{grid-template-columns:1fr 1fr;gap:14px;display:grid}.team-col{border:1px solid var(--line);background:#ffffff0a;border-radius:12px;flex-direction:column;gap:8px;padding:12px;display:flex}.team-col h3{text-transform:uppercase;letter-spacing:.1em;margin:0;font-size:14px}h3.blue,.team.blue{color:var(--blue)}h3.red,.team.red{color:var(--red)}.team-col ul{min-height:150px;margin:0;padding:0;list-style:none}.team-col li{border-bottom:1px solid var(--line);justify-content:space-between;gap:6px;padding:5px 0;font-size:14px;display:flex}.team-col li.bot{color:var(--muted);font-style:italic}.team-col li .meta{color:var(--muted);white-space:nowrap;font-size:12px}.team-col li.me{color:var(--accent)}.switch{padding:8px;font-size:13px}#fill-status{text-align:center;color:var(--muted);margin:16px 0}#fill-status b{color:var(--text)}#hud{pointer-events:none;position:fixed;inset:0}.scoreboard{border:1px solid var(--line);white-space:nowrap;background:#0a0e14cc;border-radius:12px;align-items:center;gap:12px;padding:8px 18px;font-size:20px;font-weight:800;display:flex;position:absolute;top:14px;left:50%;transform:translate(-50%)}.scoreboard .team{letter-spacing:.12em;font-size:13px}.scoreboard .num{text-align:center;min-width:1ch;font-size:26px}.scoreboard .sep{color:var(--muted)}#clock{border-left:1px solid var(--line);font-variant-numeric:tabular-nums;color:var(--accent);margin-left:8px;padding-left:14px}#banner,#drill-banner{text-align:center;letter-spacing:-.01em;text-shadow:0 4px 20px #0009;font-size:clamp(28px,6vw,64px);font-weight:900;position:absolute;top:38%;left:0;right:0}#banner.blue{color:var(--blue)}#banner.red{color:var(--red)}#drill-banner{padding:0 16px;font-size:clamp(22px,4vw,44px);top:22%}#drill-banner.good{color:#5ee08a}#drill-banner.bad{color:var(--red)}#notice{border:1px solid var(--accent);background:#0a0e14d9;border-radius:10px;padding:6px 14px;font-size:14px;position:absolute;top:74px;left:50%;transform:translate(-50%)}#notice:empty{display:none}#net,#hint{color:var(--muted);background:#0a0e14b3;border-radius:8px;padding:5px 10px;font-size:13px;position:absolute;bottom:12px}#net{left:12px}#hint{right:12px}.end-score{margin:8px 0 20px;font-size:44px;font-weight:900}@media (width<=600px){.panel{padding:20px}#hint{display:none}}.row2{grid-template-columns:1fr 1fr;gap:10px;display:grid}.drill-list{flex-direction:column;gap:10px;margin:16px 0;display:flex}.drill-item{text-align:left;grid-template-columns:1fr auto;gap:4px 12px;padding:14px 16px;display:grid}.drill-item .name{font-size:16px}.drill-item .blurb{color:var(--muted);grid-column:1;font-size:13px;font-weight:400}.drill-item .best{text-align:right;color:var(--muted);grid-area:1/2/span 2;align-self:center;font-size:12px;font-weight:500}.drill-item .best b{color:var(--accent);font-size:20px;display:block}#drill-hud{pointer-events:none;position:fixed;inset:0}.drill-card,.drill-stats{border:1px solid var(--line);background:#0a0e14cc;border-radius:12px;padding:8px 14px;position:absolute;top:14px}.drill-card{left:14px}.drill-title{font-size:17px;font-weight:800}.drill-stats{gap:16px;display:flex;right:14px}.drill-stats div{text-align:center;color:var(--muted);text-transform:uppercase;letter-spacing:.08em;font-size:11px}.drill-stats b{color:var(--text);letter-spacing:0;font-size:20px;display:block}.drill-stats div:first-child b{color:var(--accent)}#drill-tip{text-align:center;border:1px solid var(--line);background:#0a0e14cc;border-radius:10px;width:min(720px,100vw - 32px);padding:8px 14px;font-size:14px;position:absolute;bottom:14px;left:50%;transform:translate(-50%)}#drill-tip.intro{border-color:var(--accent);padding:14px 18px;font-size:17px;top:34%;bottom:auto}.best{color:var(--accent);min-height:1.4em;font-weight:700}.result-lines{color:var(--muted);margin:12px 0 20px;padding:0;font-size:14px;list-style:none}.result-lines li{padding:3px 0}@media (width<=700px){.drill-stats{gap:10px;top:76px;left:14px;right:auto}}.visibility{color:var(--muted);justify-content:space-between;align-items:center;gap:12px;margin:-8px 0 14px;font-size:13px;display:flex}button.link{padding:4px 10px;font-size:12px;font-weight:600}.size-row{justify-content:space-between;align-items:center;gap:12px;margin-bottom:12px;display:flex}.size-picker{gap:6px;margin:6px 0 14px;display:flex}.size-row .size-picker{margin:0}.size-picker button{flex:1;padding:8px 10px;font-size:13px}.size-picker button.selected{background:var(--accent);color:#111;border-color:#0000}.size-picker button.selected:disabled{opacity:1}.team-col li .who{align-items:center;gap:6px;min-width:0;display:flex}.team-col li .side{align-items:center;gap:6px;display:flex}.team-col li.gk{font-weight:600}button.mini{white-space:nowrap;border-radius:6px;padding:2px 8px;font-size:11px;font-weight:600}#net-warning{border:1px solid var(--red);white-space:nowrap;background:#781410e6;border-radius:10px;padding:6px 14px;font-size:14px;font-weight:600;position:absolute;top:112px;left:50%;transform:translate(-50%)}#net-warning:empty{display:none}#netstats{border:1px solid var(--line);background:#0a0e14e0;border-radius:10px;max-width:min(560px,100vw - 24px);padding:10px 12px;font:12px/1.5 ui-monospace,SFMono-Regular,Menlo,monospace;position:absolute;top:74px;left:12px}#netstats .row{grid-template-columns:minmax(150px,auto) 1fr;gap:12px;display:grid}#netstats .label{color:var(--muted);text-transform:none;letter-spacing:0;font-size:12px}#netstats .warn{color:#ffb347}#netstats .title{margin-bottom:4px;font-weight:700}body.pad-nav .panel button:focus{outline:3px solid var(--accent);outline-offset:2px}.hud-menu{pointer-events:auto;background:#0a0e14cc;padding:8px 12px;font-size:13px;position:absolute;top:14px;right:14px}
