:root{--color-bg: #090d12;--color-surface-1: #121820;--color-surface-2: #1a2330;--color-surface-3: #233040;--color-text: #f4f8fb;--color-text-muted: #9dafc2;--color-accent: #36c6ff;--color-accent-dim: #146f92;--color-success: #31d879;--color-error: #ff6262;--color-pass: #ffd166;--color-warning: #ffb454;--color-active-athlete: #36c6ff;--color-on-deck: #ffd166;--color-in-hole: #9dafc2;--color-eliminated: #6f7e8f;--color-focus: #7dd9ff;--color-border: #2b3747;--shadow-soft: 0 14px 30px rgba(0, 0, 0, .28);--glow-active: 0 0 18px rgba(54, 198, 255, .32);--radius-sm: 6px;--radius-md: 8px;--space-1: .25rem;--space-2: .5rem;--space-3: .75rem;--space-4: 1rem;--type-xs: .75rem;--type-sm: .85rem;--type-md: 1rem;--type-lg: 1.15rem;--type-xl: 1.5rem;--bg: var(--color-bg);--panel: var(--color-surface-1);--panel-2: var(--color-surface-2);--border: var(--color-border);--text: var(--color-text);--muted: var(--color-text-muted);--accent: var(--color-accent);--accent-dim: var(--color-accent-dim);--make: var(--color-success);--miss: var(--color-error);--pass: var(--color-pass);--radius: var(--radius-md);font-size:16px}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text);font-family:Segoe UI,system-ui,-apple-system,sans-serif;line-height:1.4;-webkit-font-smoothing:antialiased}h1,h2,h3{margin:0 0 .5rem;line-height:1.15}h1{font-size:1.5rem}h2{font-size:1.1rem;color:var(--accent);text-transform:uppercase;letter-spacing:.06em}a{color:var(--accent);text-decoration:none}a:hover{text-decoration:underline}.shell{max-width:1100px;margin:0 auto;padding:1rem}.topbar{display:flex;align-items:center;gap:.75rem;flex-wrap:wrap;padding:.75rem 1rem;border-bottom:1px solid var(--border);background:var(--panel)}.topbar .brand{font-weight:700;letter-spacing:.04em;color:var(--text)}.topbar .brand span{color:var(--accent)}.card{background:var(--panel);border:1px solid var(--border);border-radius:var(--radius);padding:1rem;margin-bottom:1rem}.grid{display:grid;gap:1rem}@media(min-width:860px){.grid.cols-2{grid-template-columns:1fr 1fr}.grid.operator{grid-template-columns:1.2fr 1fr}}label{display:block;font-size:.85rem;color:var(--muted);margin-bottom:.2rem}input,select{width:100%;background:var(--panel-2);color:var(--text);border:1px solid var(--border);border-radius:6px;padding:.55rem .65rem;font-size:1rem}input[type=color]{width:3rem;height:2.4rem;padding:2px;background:var(--panel-2);cursor:pointer}input[type=color]::-webkit-color-swatch-wrapper{padding:0}input[type=color]::-webkit-color-swatch{border:1px solid var(--border);border-radius:4px}input[type=color]::-moz-color-swatch{border:1px solid var(--border);border-radius:4px}input:focus,select:focus,textarea:focus,button:focus-visible{outline:2px solid var(--color-focus);outline-offset:2px}textarea{width:100%;min-height:8rem;background:var(--panel-2);color:var(--text);border:1px solid var(--border);border-radius:var(--radius-sm);padding:.65rem;font:inherit;resize:vertical}.field{margin-bottom:.75rem}.row{display:flex;gap:.75rem;flex-wrap:wrap}.row>*{flex:1;min-width:8rem}button{background:var(--panel-2);color:var(--text);border:1px solid var(--border);border-radius:8px;padding:.6rem 1rem;font-size:1rem;font-weight:600;cursor:pointer;touch-action:manipulation}button:hover:not(:disabled){border-color:var(--accent)}button:disabled{opacity:.4;cursor:not-allowed}button.primary{background:var(--accent);border-color:var(--accent);color:#04222f}button.big{font-size:1.6rem;padding:1.1rem 0;flex:1;border-width:2px}button.make{border-color:var(--make);color:var(--make)}button.miss{border-color:var(--miss);color:var(--miss)}button.passbtn{border-color:var(--pass);color:var(--pass)}button.make:hover,button.miss:hover,button.passbtn:hover{filter:brightness(1.2)}table.board{width:100%;border-collapse:collapse;font-variant-numeric:tabular-nums}table.board th,table.board td{border:1px solid var(--border);padding:.35rem .5rem;text-align:center;white-space:nowrap;font-size:.95rem}table.board th{background:var(--panel-2);color:var(--muted);font-weight:600}table.board td.name-cell{text-align:left}table.board tr.eliminated td{color:var(--muted);background:#ff5d5d0a}table.board td.current-cell{outline:2px solid var(--accent);outline-offset:-2px}table.board td.clickable{cursor:pointer}table.board td.clickable:hover{background:var(--panel-2)}table.board td.selected{background:var(--accent-dim)}.board-wrap{overflow-x:auto}table.board th.current-height{background:color-mix(in srgb,var(--pass) 18%,var(--panel-2));color:var(--pass);box-shadow:inset 0 -2px 0 var(--pass)}table.board .frozen-name{position:sticky;left:0;z-index:3;background:var(--panel);box-shadow:1px 0 0 var(--border)}table.board thead .frozen-name{z-index:5;background:var(--panel-2)}table.board tr.current-athlete-row td{background:color-mix(in srgb,var(--accent) 10%,var(--panel))}table.board tr.current-athlete-row .frozen-name{background:color-mix(in srgb,var(--accent) 14%,var(--panel));box-shadow:inset 3px 0 0 var(--accent),1px 0 0 var(--border)}.mark-O{color:var(--make);font-weight:700}.mark-X{color:var(--miss);font-weight:700}.mark-P,.mark-R{color:var(--pass);font-weight:700}.mark-DNS{color:var(--muted);font-weight:700;font-size:.8em;letter-spacing:.03em}.statchip{display:inline-block;padding:.1rem .5rem;border-radius:999px;font-size:.75rem;font-weight:700;text-transform:uppercase;letter-spacing:.04em}.statchip.active{background:#2fd67226;color:var(--make)}.statchip.waiting{background:#8fa0b326;color:var(--muted)}.statchip.eliminated{background:#ff5d5d26;color:var(--miss)}.statchip.retired{background:#ffc85726;color:var(--pass)}.statchip.dns{background:#8fa0b333;color:var(--muted)}.bignum{font-size:3rem;font-weight:800;line-height:1;font-variant-numeric:tabular-nums}.subtle{color:var(--muted);font-size:.85rem}.order-cards{display:grid;gap:.5rem;grid-template-columns:repeat(auto-fit,minmax(150px,1fr))}.order-card{background:var(--panel-2);border:1px solid var(--border);border-radius:var(--radius-md);padding:.6rem .8rem}.order-card.up{border-color:var(--color-active-athlete);box-shadow:var(--glow-active)}.order-card.on-deck{border-color:color-mix(in srgb,var(--color-on-deck) 45%,var(--border))}.order-card.in-hole{border-color:color-mix(in srgb,var(--color-in-hole) 35%,var(--border))}.order-card .role{font-size:.7rem;text-transform:uppercase;letter-spacing:.08em;color:var(--muted)}.order-card .who{font-size:1.15rem;font-weight:700}.team-badge{--team-primary: var(--accent);--team-accent: var(--accent);display:inline-flex;align-items:center;gap:.4rem;max-width:100%;vertical-align:middle}.team-mark{display:inline-grid;place-items:center;width:1.8rem;height:1.8rem;flex:0 0 1.8rem;border-radius:50%;background:linear-gradient(135deg,var(--team-primary),color-mix(in srgb,var(--team-primary) 45%,#000));border:2px solid color-mix(in srgb,var(--team-accent) 70%,white);color:#fff;font-size:.62rem;font-weight:800;line-height:1;box-shadow:0 0 0 1px #ffffff14;overflow:hidden}.team-mark img{width:100%;height:100%;object-fit:cover}.team-text{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.team-badge.compact .team-mark{width:1.5rem;height:1.5rem;flex-basis:1.5rem;font-size:.55rem}.welcome-band{background:linear-gradient(135deg,#36c6ff1f,#31d8790f);border:1px solid var(--border);border-radius:var(--radius-md);padding:1rem;margin-bottom:1rem;box-shadow:var(--shadow-soft)}.wizard-steps{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:.5rem;margin-top:.75rem}.wizard-step{background:#ffffff09;border:1px solid var(--border);border-radius:var(--radius-md);padding:.65rem}.wizard-step strong{display:block;color:var(--text)}.wizard-step span{color:var(--muted);font-size:var(--type-sm)}.clockface{font-size:4rem;font-weight:800;font-variant-numeric:tabular-nums;line-height:1}.clockface.warn{color:var(--pass)}.clockface.danger{color:var(--miss)}.offline-banner{position:sticky;top:0;z-index:60;background:#ff5d5d26;border-bottom:1px solid var(--miss);color:var(--miss);font-weight:700;text-align:center;padding:.5rem 1rem}.update-banner{position:sticky;top:0;z-index:70;display:flex;gap:.75rem;align-items:center;justify-content:center;flex-wrap:wrap;background:color-mix(in srgb,var(--accent) 20%,var(--panel));border-bottom:1px solid var(--accent);color:var(--text);font-weight:600;text-align:center;padding:.5rem 1rem}.update-banner button{padding:.35rem .9rem;font-size:.9rem;background:var(--accent);border-color:var(--accent);color:#04222f;font-weight:700}.tv{font-size:1.4rem;padding:1.5rem;max-width:none}.tv .bignum{font-size:7rem}.tv table.board th,.tv table.board td{font-size:1.5rem;padding:.5rem .9rem}.tv .order-card .who{font-size:2rem}.tv .order-card .role{font-size:1rem}.tv h1{font-size:2.6rem}.tv .statchip{font-size:1rem}@media(max-width:480px){.shell{padding:.6rem}.card{padding:.75rem}button.big{font-size:2rem;padding:1.3rem 0}.clockface{font-size:3.2rem}.bignum{font-size:2.4rem}}.toast{position:fixed;bottom:1rem;left:50%;transform:translate(-50%);background:var(--panel-2);border:1px solid var(--accent);border-radius:8px;padding:.6rem 1.2rem;z-index:50}
