:root{--gap:12px;--border:#3a3e48;--half:#7cc4f5}*{box-sizing:border-box}body{-webkit-text-size-adjust:100%;font-size:18px;line-height:1.4}a{color:var(--accent)}h1,h2,h3{margin:0;line-height:1.2}h2{font-size:1.25rem}h3{margin-top:8px;font-size:1.1rem}:focus-visible{outline:3px solid var(--focus);outline-offset:2px}.page{max-width:720px;padding:12px 16px calc(96px + env(safe-area-inset-bottom));gap:var(--gap);flex-direction:column;margin:0 auto;display:flex}.page--narrow{max-width:440px}.stack{gap:var(--gap);flex-direction:column;display:flex}.row{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.row.between{justify-content:space-between}.row>.field{flex:140px}.muted{color:var(--text-muted)}.small{font-size:.9rem}.visually-hidden{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.topbar{min-height:var(--tap);align-items:center;gap:12px;display:flex}.topbar__title{font-size:1.35rem}.brand{color:var(--accent);letter-spacing:.02em;font-weight:800}.btn{min-height:var(--tap);min-width:var(--tap);border-radius:var(--radius);border:2px solid var(--border);background:var(--surface-2);color:var(--text);font:inherit;cursor:pointer;touch-action:manipulation;justify-content:center;align-items:center;gap:6px;padding:0 18px;font-weight:600;text-decoration:none;display:inline-flex}.btn:disabled{opacity:.5;cursor:not-allowed}.btn--primary{background:var(--accent);border-color:var(--accent);color:#111}.btn--ghost{color:var(--text-muted);background:0 0;border-color:#0000}.btn--block{width:100%}.btn--big{min-height:72px;font-size:1.2rem}.btn--on{border-color:var(--accent);color:var(--accent)}.btn--match{border-color:var(--match);color:var(--match);background:0 0}.btn--half{border-color:var(--half);color:var(--half);background:0 0}.btn--miss{border-color:var(--miss);color:var(--miss);background:0 0}.btn[aria-busy=true]{opacity:.7}.field{flex-direction:column;gap:4px;display:flex}.field__label{color:var(--text-muted);text-transform:uppercase;letter-spacing:.04em;font-size:.85rem;font-weight:600}.field-error{color:var(--miss);min-height:0;margin:0;font-size:.95rem}.field-error:empty{display:none}.input{min-height:var(--tap);border:2px solid var(--border);background:var(--bg);color:var(--text);font:inherit;border-radius:10px;width:100%;padding:10px 14px}.input--num{max-width:120px}.textarea{min-height:200px;font-family:ui-monospace,Menlo,monospace;font-size:15px}.check{min-height:var(--tap);align-items:center;gap:8px;display:inline-flex}.check input{width:28px;height:28px;accent-color:var(--accent)}fieldset{border:0;margin:0}legend{padding:0;font-weight:700}details>summary{min-height:var(--tap);cursor:pointer;align-items:center;font-weight:600;display:flex}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:14px}.card--link{color:var(--text);text-decoration:none;display:block}.card__title{font-size:1.1rem;font-weight:700}.card__meta{color:var(--text-muted);margin-top:4px;font-size:.95rem}.room-code{margin-top:8px;font-size:1.1rem}.room-code strong{letter-spacing:.15em;color:var(--accent)}.notice{border-radius:var(--radius);background:var(--surface-2);border-left:6px solid var(--match);margin:0;padding:12px 14px}.notice--warn{border-left-color:var(--flag)}.notice--error{border-left-color:var(--miss)}ul.notice{padding-left:32px}.pill{background:var(--surface-2);border-radius:999px;padding:2px 10px;font-size:.85rem;font-weight:700;display:inline-block}.pill--live,.pill--ok{color:var(--match)}.pill--warn{color:var(--flag)}.tabbar{background:var(--surface);border-top:1px solid var(--border);padding-bottom:env(safe-area-inset-bottom);z-index:10;display:flex;position:fixed;bottom:0;left:0;right:0}.tab{min-height:var(--tap);color:var(--text-muted);flex:1;justify-content:center;align-items:center;font-weight:600;text-decoration:none;display:flex}.tab--on{color:var(--accent)}.segmented{gap:6px;display:flex}.seg{min-height:var(--tap);border:2px solid var(--border);background:var(--bg);color:var(--text);font:inherit;border-radius:10px;flex:1;font-weight:600}.seg--on{border-color:var(--accent);background:var(--surface-2)}.seg--match.seg--on{border-color:var(--match);color:var(--match)}.seg--flag.seg--on{border-color:var(--flag);color:var(--flag)}.seg--miss.seg--on{border-color:var(--miss);color:var(--miss)}.seg--half.seg--on{border-color:var(--half);color:var(--half)}.row-button{width:100%;min-height:var(--tap);color:inherit;font:inherit;text-align:left;cursor:pointer;background:0 0;border:0;justify-content:space-between;align-items:center;gap:8px;padding:0;display:flex}.table{border-collapse:collapse;width:100%;font-size:.95rem}.table th,.table td{text-align:left;border-bottom:1px solid var(--border);padding:6px 4px}.conn{font-size:.9rem;font-weight:700}.conn--open{color:var(--match)}.conn--connecting,.conn--closed{color:var(--flag)}.rounds{scrollbar-width:none;gap:6px;padding-bottom:4px;display:flex;overflow-x:auto}.round-tab{min-width:72px;min-height:var(--tap);border:2px solid var(--border);background:var(--surface);color:var(--text);font:inherit;border-radius:10px;flex-direction:column;flex:none;justify-content:center;align-items:center;padding:4px 8px;display:flex}.round-tab__n{font-weight:800}.round-tab__s{color:var(--text-muted);font-size:.75rem}.round-tab--open .round-tab__s{color:var(--match)}.round-tab--locked .round-tab__s{color:var(--flag)}.round-tab--on{border-color:var(--accent);background:var(--surface-2)}.chip{white-space:nowrap;border:2px solid;border-radius:999px;align-items:center;gap:4px;padding:2px 10px;font-size:.9rem;font-weight:700;display:inline-flex}.chip__icon{font-weight:900}.chip--match{color:var(--match)}.chip--flag{color:var(--flag);background:#f2a33a1f}.chip--miss{color:var(--miss)}.cell{background:var(--surface);border:1px solid var(--border);border-left:6px solid var(--border);border-radius:10px}.cell--match{border-left-color:var(--match)}.cell--flag{border-left-color:var(--flag)}.cell--miss{border-left-color:var(--miss)}.cell--empty{color:var(--text-muted);padding:12px}.cell__main{width:100%;min-height:var(--tap);color:inherit;font:inherit;text-align:left;cursor:pointer;background:0 0;border:0;grid-template-columns:auto 1fr auto;grid-template-areas:"q text chip""hint hint hint";align-items:center;gap:4px 10px;padding:10px 12px;display:grid}.cell__q{color:var(--text-muted);grid-area:q;font-weight:800}.cell__text{overflow-wrap:anywhere;grid-area:text;font-size:1.1rem;font-weight:600}.cell__main .chip{grid-area:chip}.cell__hint{color:var(--text-muted);grid-area:hint;font-size:.85rem}.resolve{grid-template-columns:repeat(3,1fr);gap:6px;padding:0 10px 10px;display:grid}.resolve .btn{min-height:60px;padding:0 6px;font-size:1.05rem}.team-row__name{font-weight:700}.team-row__nums{white-space:nowrap;align-items:center;gap:10px;display:flex}.board{flex-direction:column;gap:6px;margin:8px 0 0;padding-left:0;list-style:none;display:flex}.board li{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;gap:8px;min-height:40px;display:flex}.log{flex-direction:column;gap:8px;margin:0;padding:0;list-style:none;display:flex}.progress{background:var(--surface-2);border-radius:var(--radius);margin:0;padding:12px 14px;font-weight:600}.progress progress{width:100%;height:12px;accent-color:var(--accent);margin-top:6px}.snapbar-spacer{height:24px}.snapbar{padding:10px 16px calc(10px + env(safe-area-inset-bottom));background:linear-gradient(to top, var(--bg) 70%, transparent);z-index:10;position:fixed;bottom:0;left:0;right:0}.btn--snap{width:100%;max-width:688px;min-height:76px;margin:0 auto;font-size:1.3rem;display:flex}.sheet-backdrop{z-index:20;background:#0009;justify-content:center;align-items:flex-end;display:flex;position:fixed;inset:0}.sheet{background:var(--surface);width:100%;max-width:720px;max-height:92vh;padding:12px 16px calc(16px + env(safe-area-inset-bottom));gap:var(--gap);border-radius:18px 18px 0 0;flex-direction:column;display:flex;overflow-y:auto}.sheet__head{justify-content:space-between;align-items:center;gap:8px;display:flex}#toasts{left:16px;right:16px;bottom:calc(96px + env(safe-area-inset-bottom));z-index:30;pointer-events:none;flex-direction:column;gap:8px;display:flex;position:fixed}.toast{border-radius:var(--radius);background:var(--surface-2);border:2px solid var(--match);width:100%;max-width:688px;margin:0 auto;padding:12px 16px;font-weight:600}.toast--error{border-color:var(--miss)}@media (prefers-reduced-motion:no-preference){.btn,.seg,.round-tab{transition:background-color .12s,border-color .12s}}@media (min-width:900px){.page{padding-top:24px}}.cell__key{color:var(--text);grid-area:2/1/auto/-1;font-size:1rem}.cell--flag .cell__hint{grid-area:3/1/auto/-1}.resolve>.input{grid-column:1/-1;max-width:none}.pending-teams>h3{margin:0}
