:root{--ground:#f5f4f0;--surface:#fff;--line:#dddad2;--line-strong:#cfcbc1;--ink:#1b1a17;--muted:#5c584f;--accent:#f2b300;--red:#b3261e;--blue:#1a56b0;--green:#2e7d32;--orange:#b54708;--radius:12px;color:var(--ink);background:var(--ground);font-family:Inter,system-ui,sans-serif}*{box-sizing:border-box}body{background:var(--ground);margin:0}h1{margin:0 0 1rem;font-size:1.6rem;font-weight:800}h2{margin:0 0 1rem;font-size:1.15rem;font-weight:800}a{color:var(--ink);font-weight:600}input,select,textarea,button{font:inherit}input,select{border:1.5px solid var(--line-strong);background:var(--surface);min-height:48px;color:var(--ink);border-radius:10px;padding:0 12px}input:focus-visible,select:focus-visible,button:focus-visible,a:focus-visible{outline:3px solid var(--accent);outline-offset:2px}label{flex-direction:column;gap:6px;font-size:.9rem;font-weight:600;display:flex}button.primary{border-radius:var(--radius);background:var(--ink);color:#fff;cursor:pointer;border:none;min-height:52px;padding:0 20px;font-weight:700}button.primary:disabled{opacity:.6;cursor:wait}button.link{min-height:44px;color:var(--ink);cursor:pointer;background:0 0;border:none;padding:0 8px;font-weight:700}button.link.danger{color:var(--red)}button.link.on-dark{color:#fff}.stack{flex-direction:column;gap:14px;display:flex}.row{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.hint{color:var(--muted);margin:0;font-size:.85rem}.error{color:var(--red);margin:0;font-weight:600}.success{color:var(--green);margin:0;font-weight:600}.loading{text-align:center;color:var(--muted);padding:2rem}.visually-hidden{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.login{flex-direction:column;justify-content:center;gap:32px;max-width:420px;min-height:100vh;margin:0 auto;padding:32px 24px;display:flex}.login-brand{text-align:center;flex-direction:column;align-items:center;gap:8px;display:flex}.login-brand h1{letter-spacing:.5px;margin:0;font-size:1.6rem}.login-brand p{color:var(--muted);margin:0}.login .hint{text-align:center}.topbar{background:var(--ink);color:#fff;flex-wrap:wrap;align-items:center;gap:4px 20px;min-height:60px;padding:8px 20px;display:flex}.topbar .brand{color:#fff;font-weight:800;text-decoration:none}.topbar nav{flex-wrap:wrap;gap:4px 16px;display:flex}.topbar nav a{color:#fff;border-bottom:3px solid #0000;padding:10px 0;font-weight:600;text-decoration:none}.topbar nav a.active{color:var(--accent);border-bottom-color:var(--accent)}.topbar .who{color:#cfcbc1;margin-left:auto;font-size:.9rem}.content{max-width:1200px;margin:0 auto;padding:24px 16px}.page{flex-direction:column;gap:16px;display:flex}.card{background:var(--surface);border:1px solid var(--line);border-radius:16px;padding:20px}.card.narrow{max-width:460px}.columns{flex-wrap:wrap;align-items:flex-start;gap:20px;display:flex}.columns .grow{flex-direction:column;flex:3 520px;gap:14px;min-width:0;display:flex}.columns .side{flex:300px;min-width:0}.inset{background:var(--ground);border-radius:var(--radius);padding:16px}.table-box{overflow-x:auto}table{border-collapse:collapse;width:100%;min-width:560px;font-size:.95rem}th{text-align:left;letter-spacing:.5px;color:var(--muted);text-transform:uppercase;border-bottom:1px solid var(--line);padding:10px 12px;font-size:.75rem}td{border-bottom:1px solid #edebe5;padding:8px 12px}tr.inactive td{color:#8a857a}tr.highlight td{background:#fffbeb}td.actions{white-space:nowrap;text-align:right;justify-content:flex-end;align-items:center;gap:12px;display:flex}td.red,label.red{color:var(--red);font-weight:600}td.blue,label.blue{color:var(--blue);font-weight:600}label.red select,label.blue select{color:var(--ink)}.scouter{flex-direction:column;gap:14px;max-width:480px;margin:0 auto;display:flex}.scouter h1{margin:0;font-size:1.4rem}.eyebrow{letter-spacing:.8px;color:var(--muted);text-transform:uppercase;margin:0;font-size:.75rem;font-weight:700}.center{text-align:center;justify-content:center}.scouter-head{flex-direction:column;gap:2px;display:flex}.match-card{background:var(--surface);border:1px solid var(--line);border-radius:14px;flex-direction:column;gap:6px;padding:14px 16px;text-decoration:none;display:flex}.match-card.featured{border:2px solid var(--ink);box-shadow:0 2px 0 var(--ink)}.match-card-head{justify-content:space-between;align-items:baseline;display:flex}.match-card-head strong{font-size:1.4rem;font-weight:800}.alliance-line{font-size:1.05rem;font-weight:700}.alliance-line.red,.red{color:var(--red)}.alliance-line.blue,.blue{color:var(--blue)}button.dashed{min-height:44px;color:var(--muted);cursor:pointer;background:0 0;border:1px dashed #9a958a;border-radius:12px;font-weight:600}.footer-link{background:#fff4d1;border:1px solid #e8d48a;border-radius:12px;padding:14px 16px;text-decoration:none}.team-card{text-align:left;background:var(--surface);border:1px solid var(--line);cursor:pointer;color:var(--ink);border-left:10px solid;border-radius:14px;flex-direction:column;align-items:flex-start;gap:4px;padding:16px;display:flex}.team-card.red{border-left-color:var(--red)}.team-card.blue{border-left-color:var(--blue)}.team-card-number{font-size:1.6rem;font-weight:800}.observed{color:var(--green);font-size:.85rem;font-weight:600}.confirm{border:2px solid var(--orange)}.option-card{text-align:left;background:var(--surface);border:1px solid var(--line);cursor:pointer;color:var(--ink);border-radius:18px;flex-direction:column;align-items:flex-start;gap:6px;padding:22px 20px;display:flex}.option-card strong{font-size:1.35rem}.option-card.chosen{border:3px solid var(--ink)}.collect-head{background:var(--ink);color:#fff;border-radius:12px;align-items:center;gap:10px;padding:10px 14px;display:flex}.collect-head .tag{border:1px solid #cfcbc1;border-radius:6px;padding:2px 6px;font-size:.7rem;font-weight:700}.collect-head .red{color:#e57373}.collect-head .blue{color:#90caf9}.save-state{color:#cfcbc1;margin-left:auto;font-size:.8rem;font-weight:600}.save-state.saved{color:#a5d6a7}.save-state.offline,.save-state.error{color:#ffcc80}.big-label{text-align:center;margin:24px 0 0;font-size:1.25rem;font-weight:700}.start-button{background:var(--green);color:#fff;cursor:pointer;border:none;border-radius:28px;min-height:200px;font-size:2rem;font-weight:800;box-shadow:0 6px #1e5420}.chip{border:1.5px solid var(--line-strong);background:var(--surface);cursor:pointer;min-height:44px;color:var(--ink);border-radius:22px;padding:0 14px;font-weight:600}.chip.on{background:var(--ink);color:#fff;border-color:var(--ink)}.chip.on.warn{background:var(--orange);border-color:var(--orange)}.chips{flex-wrap:wrap;gap:8px;display:flex}.phase-band{color:#fff;letter-spacing:.5px;border-radius:12px;justify-content:space-between;align-items:center;padding:8px 16px;font-weight:800;display:flex}.phase-band .clock{font-variant-numeric:tabular-nums;font-size:1.9rem}.phase-band.auto{background:var(--blue)}.phase-band.transition{background:var(--muted)}.phase-band.teleop{background:var(--green)}.phase-band.endgame{background:var(--orange)}.phase-band.end{background:var(--ink)}.tap-group{border:none;flex-direction:column;gap:6px;margin:0;padding:0;display:flex}.tap-group legend{color:var(--muted);text-transform:uppercase;margin-bottom:6px;padding:0;font-size:.8rem;font-weight:700}.tap-row{gap:8px;display:grid}.tap-row.two{grid-template-columns:repeat(2,minmax(0,1fr))}.tap-row.four{grid-template-columns:repeat(4,minmax(0,1fr))}.tap-row.five{grid-template-columns:repeat(5,minmax(0,1fr))}.tap{border:1.5px solid var(--line-strong);background:var(--surface);cursor:pointer;min-height:52px;color:var(--ink);border-radius:12px;font-size:1.4rem;font-weight:800}.tap.big{min-height:76px;box-shadow:inset 0 0 0 2px var(--ink);border:none;font-size:1.8rem}.tap.selected{background:var(--ink);color:#fff;border-color:var(--ink)}.tap.accent{background:var(--accent);border-color:var(--accent)}.tap:disabled{color:#b5b0a5;box-shadow:none;cursor:not-allowed;background:#edebe5}.tip-button{background:var(--accent);min-height:92px;color:var(--ink);letter-spacing:2px;cursor:pointer;border:none;border-radius:20px;font-size:2rem;font-weight:800;box-shadow:0 5px #a67b00}.totals{margin:0;font-weight:600}.timeline,.review,.report-list{background:var(--surface);border:1px solid var(--line);border-radius:12px;margin:0;padding:0;list-style:none}.timeline li,.review li,.report-list li{border-bottom:1px solid #edebe5;flex-wrap:wrap;align-items:center;gap:10px;padding:10px 14px;display:flex}.timeline li:last-child,.review li:last-child,.report-list li:last-child{border-bottom:none}.timeline li span:first-child,.review li span:first-child{color:var(--muted);font-variant-numeric:tabular-nums}.tip-question{background:var(--ink);color:#fff;border-radius:14px;flex-direction:column;gap:10px;padding:14px;display:flex;position:sticky;bottom:12px}.tip-question p{margin:0}.toast{background:var(--ink);color:#fff;border-radius:12px;margin:0;padding:12px 14px;position:sticky;bottom:12px}.bottom-bar{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;display:grid}button.secondary,a.button.secondary{border:1.5px solid var(--ink);background:var(--surface);cursor:pointer;min-height:52px;color:var(--ink);border-radius:12px;justify-content:center;align-items:center;padding:0 16px;font-weight:700;text-decoration:none;display:inline-flex}.replay-controls .primary{flex:2}.assessment .choice{border:1px solid var(--line);flex-direction:column;gap:10px;display:flex}.assessment .choice legend{padding:0 4px;font-weight:700}.assessment textarea{border:1.5px solid var(--line-strong);font:inherit;resize:vertical;border-radius:12px;padding:12px}.required{color:var(--red)}.send-button{background:var(--green);color:#fff;letter-spacing:1px;cursor:pointer;border:none;border-radius:14px;min-height:60px;font-size:1.15rem;font-weight:800}.send-button:disabled{opacity:.6}.sent{text-align:center;align-items:center;padding-top:48px}.next-button{background:var(--ink);color:#fff;border-radius:16px;justify-content:center;align-items:center;min-height:64px;padding:0 24px;font-weight:800;text-decoration:none;display:flex}.report-title{flex:1;font-weight:700}.pill{background:var(--ink);color:#fff;border-radius:10px;align-items:center;min-height:44px;padding:0 16px;text-decoration:none;display:inline-flex}.report-list li.draft{background:#fff4d1}.badge.warn{color:var(--orange);background:#fdebdd}.badge{letter-spacing:.4px;text-transform:uppercase;border-radius:6px;margin-left:8px;padding:3px 8px;font-size:.7rem;font-weight:700;display:inline-block}.badge.accent{background:var(--accent);color:var(--ink)}.grow-field{flex:140px}.plain{margin:0;padding:0;list-style:none}.chip.static{cursor:default;align-items:center;min-height:28px;padding:2px 10px;font-size:.85rem;display:inline-flex}.tabs{background:var(--ground);border-radius:12px;gap:4px;padding:4px;display:flex}.tabs [role=tab]{min-height:44px;color:var(--muted);cursor:pointer;background:0 0;border:0;border-radius:9px;flex:1;font-weight:700}.tabs [role=tab][aria-selected=true]{background:var(--surface);color:var(--ink);box-shadow:0 1px 2px #0000001f}.gap-card{gap:10px}.chip.gap-team.red{border-color:var(--red);color:var(--red)}.chip.gap-team.blue{border-color:var(--blue);color:var(--blue)}.page.wide{max-width:1400px}.toolbar{flex-wrap:wrap;align-items:flex-end;gap:16px}.check{flex-direction:row;align-items:center;gap:8px}.ranking th{white-space:nowrap;vertical-align:bottom}.ranking th.sorted{background:var(--ground)}.sort{font:inherit;color:inherit;cursor:pointer;text-align:left;background:0 0;border:0;align-items:center;gap:6px;padding:0;font-weight:700;display:inline-flex}td.num{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}.metric-groups{grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:16px;display:grid}.metrics{gap:8px;margin:0;display:grid}.metric{border-bottom:1px solid var(--line);justify-content:space-between;align-items:baseline;gap:12px;padding-bottom:6px;display:flex}.metric dt{align-items:center;gap:6px;display:flex}.metric dd{text-align:right;flex-direction:column;margin:0;display:flex}.timeline{color:var(--muted);min-width:220px;font-size:.85rem}.grid-fields{grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:12px;display:grid}.field{flex-direction:column;gap:4px;font-weight:600;display:flex}.merge tr.different td{background:#fff7e6}.radios{flex-wrap:wrap;gap:12px;display:inline-flex}.radios label{flex-direction:row;align-items:center;gap:4px;font-weight:600;display:inline-flex}ul.plain{margin:0;padding:0;list-style:none}
