:root{--ink: #0e1428;--ink-raised: #18203a;--ink-edge: #2a3457;--orange: #ff9e3d;--magenta: #c94f7c;--cyan: #3ed8e8;--text: #f2f4fb;--text-dim: #9aa4c4;--danger: #f2564c;--advancing: #5cdc85;--radius: 14px;--tap: 48px;--gap: 12px;color-scheme:dark}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}html,body{margin:0;background:var(--ink);color:var(--text);font:16px/1.45 -apple-system,BlinkMacSystemFont,Segoe UI,system-ui,sans-serif;overscroll-behavior-y:contain}#root{min-height:100dvh;display:flex;flex-direction:column}.app{display:flex;flex-direction:column;min-height:100dvh;max-width:620px;margin:0 auto;width:100%}.top{position:sticky;top:0;z-index:5;display:flex;align-items:center;gap:var(--gap);padding:max(10px,env(safe-area-inset-top)) 16px 10px;background:color-mix(in srgb,var(--ink) 88%,transparent);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-bottom:1px solid var(--ink-edge)}.top h1{font-size:17px;font-weight:700;margin:0;flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.wordmark{color:var(--orange);font-weight:900;letter-spacing:-.02em}main{flex:1;padding:16px 16px 24px;display:flex;flex-direction:column;gap:16px}.tabs{position:sticky;bottom:0;display:grid;grid-auto-flow:column;grid-auto-columns:1fr;gap:4px;padding:6px 8px calc(6px + env(safe-area-inset-bottom));background:color-mix(in srgb,var(--ink) 92%,transparent);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-top:1px solid var(--ink-edge)}.tabs button{appearance:none;border:0;background:transparent;color:var(--text-dim);font:inherit;font-size:11px;font-weight:600;min-height:var(--tap);border-radius:10px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;cursor:pointer}.tabs button[aria-current=true]{color:var(--orange);background:color-mix(in srgb,var(--orange) 12%,transparent)}.tabs .glyph{font-size:17px;line-height:1}.card{background:var(--ink-raised);border:1px solid var(--ink-edge);border-radius:var(--radius);padding:14px}.card+.card{margin-top:var(--gap)}.section-title{font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.07em;color:var(--text-dim);margin:0 0 8px 2px}.row{display:flex;align-items:center;gap:var(--gap);min-height:var(--tap)}.row .grow{flex:1;min-width:0}.row .name{font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.muted{color:var(--text-dim);font-size:13px}.list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column}.list>li+li{border-top:1px solid var(--ink-edge)}.retired .name{color:var(--text-dim);text-decoration:line-through}button,input,select{font:inherit}.btn{appearance:none;min-height:var(--tap);padding:0 18px;border-radius:12px;border:1px solid var(--ink-edge);background:var(--ink-raised);color:var(--text);font-weight:650;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;gap:8px}.btn:active{transform:scale(.985)}.btn:disabled{opacity:.42;cursor:default}.btn.primary{background:var(--orange);border-color:var(--orange);color:#241304}.btn.danger{color:var(--danger);border-color:color-mix(in srgb,var(--danger) 45%,var(--ink-edge))}.btn.wide{width:100%}.btn.small{min-height:38px;padding:0 12px;font-size:13px;border-radius:10px}input[type=text],input[type=number],select{width:100%;min-height:var(--tap);padding:0 14px;border-radius:12px;border:1px solid var(--ink-edge);background:#0b1022;color:var(--text)}input:focus,select:focus,.btn:focus-visible{outline:2px solid var(--cyan);outline-offset:1px}.field{display:flex;flex-direction:column;gap:6px}.field label{font-size:13px;color:var(--text-dim);font-weight:600}.inline-form{display:flex;gap:8px}.inline-form input{flex:1}.code-input{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:26px;letter-spacing:.28em;text-align:center;text-transform:uppercase}.banner{border-radius:12px;padding:11px 14px;font-size:14px;font-weight:600}.banner.error{background:color-mix(in srgb,var(--danger) 20%,var(--ink-raised));border:1px solid color-mix(in srgb,var(--danger) 50%,transparent)}.banner.info{background:color-mix(in srgb,var(--cyan) 14%,var(--ink-raised));border:1px solid color-mix(in srgb,var(--cyan) 34%,transparent)}.pill{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.05em;padding:3px 8px;border-radius:999px;background:var(--ink-edge);color:var(--text-dim);white-space:nowrap}.pill.live{background:color-mix(in srgb,var(--advancing) 22%,transparent);color:var(--advancing)}.pill.owner{background:color-mix(in srgb,var(--orange) 20%,transparent);color:var(--orange)}.link-dot{width:8px;height:8px;border-radius:50%;background:var(--text-dim);flex:none}.link-dot.live{background:var(--advancing)}.centre{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:18px;text-align:center;padding:28px}.centre h2{margin:0;font-size:30px;line-height:1.15}.lane{display:flex;align-items:center;gap:var(--gap);width:100%;min-height:60px;padding:10px 14px;border-radius:12px;border:1px solid var(--ink-edge);background:var(--ink-raised);color:var(--text);font-weight:650;text-align:left;cursor:pointer}.lane .place{width:30px;height:30px;border-radius:50%;display:grid;place-items:center;font-size:13px;font-weight:800;background:var(--ink-edge);color:var(--text-dim);flex:none}.lane.picked{border-color:var(--orange);background:color-mix(in srgb,var(--orange) 15%,var(--ink-raised))}.lane.picked .place{background:var(--orange);color:#241304}.lane+.lane{margin-top:8px}.bracket-round{display:flex;flex-direction:column;gap:6px}.heat-chip{display:flex;align-items:center;gap:8px;font-size:13px;padding:8px 10px;border-radius:10px;background:#0b1022;border:1px solid var(--ink-edge)}.heat-chip.done{border-color:color-mix(in srgb,var(--advancing) 34%,transparent)}.heat-chip .winner{color:var(--advancing);font-weight:700}.spinner{width:22px;height:22px;border:2px solid var(--ink-edge);border-top-color:var(--orange);border-radius:50%;animation:spin .7s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}@media(prefers-reduced-motion:reduce){.spinner{animation-duration:2s}.btn:active{transform:none}}
