:root{color-scheme:dark;--bg: #070a15;--panel: #0f1528;--ink: #f6f9ff;--muted: #9eabcf;--accent: #38d0ff;--accent2: #44ffb0}*{box-sizing:border-box}html,body,#root{margin:0;min-height:100%;font-family:Segoe UI,Tahoma,Geneva,Verdana,sans-serif;background:radial-gradient(circle at 10% -15%,#293c66,transparent 45%),radial-gradient(circle at 100% 0%,#16536b,transparent 40%),var(--bg);color:var(--ink)}.container{max-width:1400px;margin:0 auto;padding:1.2rem}h1{margin-top:.2rem;margin-bottom:.2rem;font-size:clamp(1.7rem,4.2vw,2.8rem)}h2{margin-top:0;margin-bottom:.6rem;font-size:1.1rem}h3{margin-top:1rem;margin-bottom:.4rem;font-size:.95rem;color:var(--accent)}p{color:var(--muted)}.grid{display:grid;gap:1rem;grid-template-columns:repeat(auto-fit,minmax(290px,1fr))}.panel{background:var(--panel);border:1px solid rgba(255,255,255,.12);border-radius:14px;padding:1rem}.row{display:grid;gap:.55rem;margin-bottom:.6rem}.row-2{display:grid;gap:.55rem;grid-template-columns:1fr 1fr}label{font-size:.86rem;color:#d8e2ff}input,select,button{border-radius:10px;border:1px solid rgba(255,255,255,.2);background:#0d1324;color:var(--ink);padding:.62rem .7rem}button{cursor:pointer}button.primary{background:linear-gradient(120deg,var(--accent),var(--accent2));color:#041326;font-weight:700;border:none}button.primary:disabled{opacity:.5;cursor:not-allowed}button.secondary{background:#121934}.button-row{display:flex;gap:.55rem;flex-wrap:wrap;align-items:center}.badge{display:inline-block;padding:.25rem .5rem;border-radius:999px;background:#44ffb024;border:1px solid rgba(68,255,176,.45);font-size:.77rem}.mono{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;overflow-wrap:anywhere}.list{margin:0;padding-left:1.2rem}.warning{color:#ffcf8a;font-size:.9rem}.muted{color:var(--muted);font-size:.9rem}.app-header{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin-bottom:.2rem}.mode-toggle{display:flex;border-radius:10px;overflow:hidden;border:1px solid rgba(255,255,255,.2)}.mode-btn{padding:.4rem .8rem;font-size:.75rem;font-weight:700;letter-spacing:.06em;border:none;border-radius:0;background:#0d1324;color:var(--muted);cursor:pointer;transition:background .15s,color .15s}.mode-btn-active{background:linear-gradient(120deg,var(--accent),var(--accent2));color:#041326}.dev-badge{display:inline-block;padding:.3rem .6rem;border-radius:8px;background:#38d0ff1f;border:1px solid rgba(56,208,255,.3);font-size:.78rem;font-weight:600;color:var(--accent);margin-bottom:.5rem}.nav-bar{display:flex;align-items:center;gap:1rem;margin:.8rem 0;padding:.5rem 0;border-bottom:1px solid rgba(255,255,255,.1)}.dashboard-status{display:flex;gap:1.2rem;flex-wrap:wrap;margin-bottom:.8rem}.status-item{display:flex;flex-direction:column;gap:.2rem}.status-item label{font-size:.75rem;text-transform:uppercase;letter-spacing:.05em;color:var(--muted)}.phase-badge{display:inline-block;padding:.2rem .6rem;border-radius:6px;font-size:.85rem;font-weight:600}.phase-0{background:#9eabcf26;color:var(--muted)}.phase-1{background:#38d0ff2e;color:var(--accent)}.phase-2{background:#ffcf8a2e;color:#ffcf8a}.phase-3{background:#44ffb02e;color:var(--accent2)}.race-table-wrapper{overflow-x:auto;-webkit-overflow-scrolling:touch}.race-table{width:100%;border-collapse:collapse;margin-top:.4rem}.race-table th,.race-table td{padding:.45rem .6rem;text-align:left;border-bottom:1px solid rgba(255,255,255,.08)}.race-table th{font-size:.78rem;text-transform:uppercase;letter-spacing:.04em;color:var(--muted);border-bottom-color:#fff3}.race-table td{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;font-size:.88rem}.results-table .winner td{color:var(--accent2);font-weight:700}.results-table .place{font-size:1.1rem;font-weight:700}.tick-log{margin-top:.8rem}.tick-log-entries{max-height:200px;overflow-y:auto;padding:.5rem;background:#0000004d;border-radius:8px;margin-top:.3rem}.tick-log-entries>div{padding:.15rem 0;border-bottom:1px solid rgba(255,255,255,.04)}.advanced-options{margin-top:.5rem;padding:.8rem;background:#0003;border-radius:10px;border:1px solid rgba(255,255,255,.08)}.bot-panel,.race-controls-panel{border-color:#38d0ff40}.bot-racer-list{display:flex;flex-direction:column;gap:.5rem}.bot-racer-row{display:flex;align-items:center;gap:.6rem;padding:.4rem .5rem;background:#0003;border-radius:8px}.bot-racer-row select{flex:1;min-width:0;padding:.4rem .5rem;font-size:.82rem}.bot-toggle{display:flex;align-items:center;gap:.4rem;white-space:nowrap;cursor:pointer}.bot-toggle input[type=checkbox]{width:1rem;height:1rem;accent-color:var(--accent)}.bot-status{font-size:.72rem;padding:.15rem .45rem;border-radius:999px;text-transform:uppercase;letter-spacing:.04em;background:#9eabcf1f;color:var(--muted);white-space:nowrap}.bot-status-ok{background:#44ffb024;color:var(--accent2)}.bot-status-pending{background:#38d0ff24;color:var(--accent)}.bot-status-err{background:#ffcf8a24;color:#ffcf8a}.bot-log{margin-top:.8rem}.bot-log-entries{max-height:180px;overflow-y:auto;padding:.5rem;background:#0000004d;border-radius:8px;margin-top:.3rem}.bot-log-entries>div{padding:.15rem 0;border-bottom:1px solid rgba(255,255,255,.04)}.control-mode-tabs{display:flex;gap:0;margin-top:.8rem;margin-bottom:.6rem;border-radius:8px;overflow:hidden;border:1px solid rgba(255,255,255,.15)}.control-mode-tab{flex:1;padding:.45rem .6rem;font-size:.78rem;font-weight:600;text-transform:uppercase;letter-spacing:.04em;border:none;border-radius:0;background:#0003;color:var(--muted);cursor:pointer;transition:background .15s,color .15s}.control-mode-tab:hover{background:#38d0ff14}.control-mode-tab-active{background:#38d0ff26;color:var(--accent)}.control-mode-tab:disabled{opacity:.5;cursor:not-allowed}.control-actions{display:flex;flex-direction:column;gap:.6rem}.speed-slider{display:flex;flex-direction:column;gap:.3rem}.speed-slider label{font-size:.78rem;color:var(--muted)}.speed-slider input[type=range]{width:100%;accent-color:var(--accent);padding:.2rem 0;border:none;background:transparent}.lobby-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:.6rem}.lobby-header h2{margin-bottom:0}.lobby-list{display:flex;gap:.5rem;flex-wrap:wrap}.lobby-card{display:flex;align-items:center;gap:.4rem;padding:.5rem 1rem;border-radius:10px;background:#00000040;border:1px solid rgba(255,255,255,.12);cursor:pointer;transition:border-color .15s,background .15s}.lobby-card:hover{border-color:#38d0ff66;background:#38d0ff0f}.lobby-card-selected{border-color:var(--accent);background:#38d0ff1a}.lobby-card-id{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;font-weight:700;font-size:.95rem}.racer-slots{display:flex;flex-direction:column;gap:.45rem}.racer-slot{display:flex;align-items:center;justify-content:space-between;padding:.55rem .7rem;border-radius:10px;background:#0003;border:1px solid rgba(255,255,255,.08);transition:border-color .15s,background .15s}.racer-slot-filled{border-color:#44ffb059;background:#44ffb00d}.racer-slot-left{display:flex;align-items:center;gap:.6rem}.racer-slot-right{display:flex;align-items:center;gap:.8rem}.racer-slot-id{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;font-weight:700;font-size:.95rem;color:var(--accent);min-width:2rem}.racer-slot-name{font-size:.88rem;color:var(--ink)}.racer-slot-stats{font-size:.8rem;color:var(--muted)}.racer-slot-badge{font-size:.72rem;padding:.15rem .5rem;border-radius:999px;text-transform:uppercase;letter-spacing:.04em;font-weight:600}.racer-joined{background:#44ffb024;color:var(--accent2)}.racer-empty{background:#9eabcf1a;color:var(--muted)}.racer-slots-legend{margin-top:.35rem;font-size:.75rem}.lobby-log-entries{max-height:160px;overflow-y:auto;padding:.5rem;background:#0000004d;border-radius:8px}.lobby-log-entries>div{padding:.15rem 0;border-bottom:1px solid rgba(255,255,255,.04)}.track-panel{border-color:#38d0ff33;margin-bottom:1rem}.track-leaderboard{display:flex;gap:1.2rem;flex-wrap:wrap;margin-bottom:1rem;padding:.5rem 0;border-bottom:1px solid rgba(255,255,255,.08)}.track-leader-item{display:flex;align-items:flex-start;gap:.5rem}.track-leader-pos{font-weight:700;font-size:.88rem;color:var(--muted);min-width:1.3rem;margin-top:.1rem}.track-leader-name{font-size:.82rem;color:var(--ink)}.track-leader-info{display:flex;flex-direction:column;gap:.15rem}.track-progress-bar{width:100%;height:3px;background:#ffffff14;border-radius:2px;overflow:hidden;margin-top:.1rem}.track-progress-fill{height:100%;border-radius:2px;transition:width .4s ease-out}.track-racer-chip{display:inline-flex;align-items:center;justify-content:center;width:2.2rem;height:1.6rem;border-radius:5px;font-size:.78rem;font-weight:800;color:#041326;flex-shrink:0;transition:box-shadow .3s ease}.track-container{overflow-x:auto;padding-bottom:.4rem}.track-grid{display:flex;gap:0;min-width:max-content}.track-lane-labels{display:flex;flex-direction:column;gap:0;padding-top:1.8rem}.track-lane-label{height:3rem;display:flex;align-items:center;justify-content:center;font-size:.72rem;font-weight:700;color:var(--muted);text-transform:uppercase;letter-spacing:.04em;width:2rem;border-right:2px solid rgba(255,255,255,.15)}.track-scroll{display:flex;flex-direction:column;gap:0}.track-header-row{display:flex;gap:0}.track-header-cell{width:3.2rem;height:1.8rem;display:flex;align-items:center;justify-content:center;font-size:.7rem;color:var(--muted);border-bottom:2px solid rgba(255,255,255,.15)}.track-header-cell.track-start{border-bottom-color:var(--accent2)}.track-header-cell.track-finish-line{border-bottom-color:#ffcf8a;font-size:.9rem}.track-lane-row{display:flex;gap:0}.track-cell{width:3.2rem;height:3rem;display:flex;align-items:center;justify-content:center;gap:.15rem;border:1px solid rgba(255,255,255,.06);background:#00000026;flex-wrap:wrap;overflow:hidden;transition:background .15s}.track-cell-start{border-left:2px solid var(--accent2)}.track-cell-finish{background:repeating-linear-gradient(45deg,rgba(255,207,138,.06),rgba(255,207,138,.06) 4px,transparent 4px,transparent 8px);border-left:2px solid #ffcf8a}.track-cell:hover{background:#ffffff0a}.track-racer{display:flex;align-items:center;justify-content:center;width:2rem;height:1.6rem;border-radius:4px;font-size:.72rem;font-weight:800;color:#041326;cursor:default;animation:track-pop .25s ease-out;transition:box-shadow .3s ease}.track-racer-push{box-shadow:0 0 6px 2px #ffffff4d}.track-racer-overdrive{box-shadow:0 0 10px 4px #ffcf8a99;animation:overdrive-pulse .8s ease-in-out infinite alternate}@keyframes overdrive-pulse{0%{box-shadow:0 0 8px 3px #ffcf8a66}to{box-shadow:0 0 14px 6px #ffcf8acc}}@keyframes track-pop{0%{transform:scale(.6);opacity:.5}to{transform:scale(1);opacity:1}}.track-legend{display:flex;gap:1rem;flex-wrap:wrap;margin-top:.6rem;padding-top:.5rem;border-top:1px solid rgba(255,255,255,.08)}.track-legend-item{display:flex;align-items:center;gap:.35rem}.event-log-panel{margin-top:1rem;border-color:#44ffb033}.event-log-entries{max-height:250px;overflow-y:auto;padding:.5rem;background:#0000004d;border-radius:8px}.event-log-entry{display:flex;align-items:flex-start;gap:.5rem;padding:.2rem 0;border-bottom:1px solid rgba(255,255,255,.04);font-size:.78rem}.event-log-racer{font-weight:700;font-size:.72rem;padding:.1rem .35rem;border-radius:3px;color:#041326;flex-shrink:0}.event-log-msg{color:var(--ink);font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;font-size:.75rem}.event-log-time{color:var(--muted);font-size:.68rem;flex-shrink:0}.event-log-item_pickup .event-log-msg{color:var(--accent2)}.event-log-item_use .event-log-msg{color:#ffcf8a}.race-config-panel{margin-bottom:.8rem}.race-config-toggle{width:100%;display:flex;align-items:center;gap:.5rem;padding:.5rem .8rem;border-radius:10px;border:1px solid rgba(255,255,255,.12);background:var(--panel);color:var(--ink);font-size:.88rem;font-weight:600;cursor:pointer;transition:border-color .15s}.race-config-toggle:hover{border-color:#38d0ff4d}.race-config-body{display:grid;gap:.5rem;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));padding:.7rem .8rem;margin-top:.3rem;background:var(--panel);border:1px solid rgba(255,255,255,.08);border-radius:10px}.race-config-row{display:flex;flex-direction:column;gap:.3rem}.race-config-row input{width:100%;padding:.4rem .5rem;font-size:.82rem}.speed-profiles{display:flex;flex-direction:column;gap:.3rem}.speed-profile-buttons{display:flex;gap:0;border-radius:8px;overflow:hidden;border:1px solid rgba(255,255,255,.15)}.speed-profile-btn{flex:1;padding:.4rem .3rem;font-size:.72rem;font-weight:600;text-transform:uppercase;letter-spacing:.03em;border:none;border-radius:0;background:#0003;color:var(--muted);cursor:pointer;transition:background .15s,color .15s}.speed-profile-btn:hover{background:#38d0ff14}.speed-profile-active{background:#38d0ff26;color:var(--accent)}.speed-profile-btn:disabled{opacity:.5;cursor:not-allowed}.player-badge{display:inline-block;padding:.1rem .35rem;margin-left:.3rem;border-radius:4px;background:#38d0ff33;color:var(--accent);font-size:.68rem;font-weight:700;text-transform:uppercase}.player-waiting-msg{padding:.5rem;border-radius:8px;background:#38d0ff14;border:1px solid rgba(56,208,255,.2);color:var(--accent);font-size:.82rem;text-align:center}.panel-player-turn{border-color:#38d0ff80;box-shadow:0 0 12px #38d0ff26}.player-turn-banner{text-align:center;padding:.4rem;margin-bottom:.6rem;border-radius:8px;background:linear-gradient(120deg,var(--accent),var(--accent2));color:#041326;font-weight:800;font-size:.9rem;letter-spacing:.1em;text-transform:uppercase}.oval-track-svg{width:100%;max-height:360px;margin:.5rem 0}.oval-racer circle{transition:cx .3s ease-out,cy .3s ease-out}.oval-racer-overdrive{animation:oval-overdrive-pulse .8s ease-in-out infinite alternate}@keyframes oval-overdrive-pulse{0%{filter:drop-shadow(0 0 4px rgba(255,207,138,.4))}to{filter:drop-shadow(0 0 10px rgba(255,207,138,.8))}}.oval-racer-push{filter:drop-shadow(0 0 4px rgba(255,255,255,.3))}.oval-item-badge{animation:item-pulse .4s ease-out}@keyframes item-pulse{0%{opacity:0;transform:scale(.5)}50%{transform:scale(1.3)}to{opacity:1;transform:scale(1)}}.track-item-badges{margin-left:.3rem;font-size:.85rem}.replay-panel{margin-top:1rem;border-color:#ffcf8a40}.replay-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:.5rem}.replay-header h2{margin-bottom:0}.replay-controls{display:flex;flex-direction:column;gap:.6rem}.replay-scrubber{display:flex;flex-direction:column;gap:.3rem}.replay-slider{width:100%;accent-color:#ffcf8a;padding:.2rem 0;border:none;background:transparent}.item-card-row{display:flex;gap:.5rem;flex-wrap:wrap}.item-card{display:flex;flex-direction:column;align-items:center;gap:.2rem;padding:.5rem .7rem;border-radius:10px;border:1px solid rgba(255,255,255,.15);background:#00000040;cursor:pointer;transition:border-color .15s,background .15s,box-shadow .15s;min-width:5rem}.item-card:hover:not(:disabled){border-color:#38d0ff66;background:#38d0ff0f}.item-card-selected{border-color:var(--accent);background:#38d0ff1f;box-shadow:0 0 8px #38d0ff33}.item-card-empty{opacity:.35;cursor:not-allowed}.item-card-skip{border-style:dashed}.item-card-emoji{font-size:1.3rem;line-height:1}.item-card-name{font-size:.72rem;color:var(--ink);font-weight:600}.item-card-slot{font-size:.62rem;color:var(--muted);font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace}.lane-selector{display:flex;gap:0;border-radius:8px;overflow:hidden;border:1px solid rgba(255,255,255,.15)}.lane-btn{flex:1;position:relative;padding:.5rem;font-size:.78rem;font-weight:600;border:none;border-radius:0;background:#0003;color:var(--muted);cursor:pointer;transition:background .15s,color .15s}.lane-btn:hover{background:#38d0ff14}.lane-btn-selected{background:#38d0ff26;color:var(--accent)}.lane-btn-current{border-bottom:2px solid var(--accent2)}.lane-here-dot{display:inline-block;width:6px;height:6px;border-radius:50%;background:var(--accent2);margin-left:.3rem;vertical-align:middle}.lane-btn-stay{border-left:1px solid rgba(255,255,255,.1)}.lane-btn-target.lane-btn-selected{background:#ff6b6b2e;color:#ff6b6b}.lane-btn-target:hover{background:#ff6b6b14}.inventory-panel{border-color:#44ffb033}.inventory-racer-row{display:flex;align-items:center;gap:.6rem;padding:.35rem 0;border-bottom:1px solid rgba(255,255,255,.06)}.inventory-racer-row:last-child{border-bottom:none}.inventory-racer-label{display:inline-flex;align-items:center;justify-content:center;width:2rem;height:1.4rem;border-radius:4px;font-size:.72rem;font-weight:800;color:#041326;flex-shrink:0}.inventory-racer-items{display:flex;gap:.5rem;flex-wrap:wrap;align-items:center}.inventory-item-pip{display:inline-flex;align-items:center;gap:.25rem;padding:.2rem .45rem;border-radius:6px;background:#ffffff0f;font-size:.82rem}.inventory-item-pip-empty{opacity:.35}.inventory-item-pip-name{font-size:.7rem;color:var(--muted)}.app-footer{text-align:center;padding:2rem 1rem 1rem;margin-top:2rem;border-top:1px solid rgba(255,255,255,.08);font-size:.78rem;color:var(--muted)}@media(min-width:1200px){.grid{gap:1.25rem}.panel{padding:1.25rem}.oval-track-svg{max-height:420px}.track-leaderboard{gap:1.5rem}.event-log-entries{max-height:320px}.lobby-card{padding:.6rem 1.2rem}}@media(min-width:1800px){.container{max-width:1600px}h1{font-size:3.2rem}h2{font-size:1.3rem}.grid{gap:1.5rem;grid-template-columns:repeat(auto-fit,minmax(340px,1fr))}.panel{padding:1.5rem;border-radius:16px}.oval-track-svg{max-height:480px}.race-table th,.race-table td{padding:.6rem .8rem}.event-log-entries{max-height:400px}.app-footer{padding:2.5rem 1rem 1.5rem;margin-top:3rem;font-size:.88rem}}@media(max-width:768px)and (min-width:601px){.container{padding:1rem}.grid{gap:.85rem}.oval-track-svg{max-height:300px}.race-config-body{grid-template-columns:repeat(auto-fit,minmax(120px,1fr))}.app-footer{padding:1.5rem 1rem 1rem;margin-top:1.5rem}}@media(max-width:600px){.container{padding:.7rem}.grid,.row-2{grid-template-columns:1fr}.app-header{gap:.5rem}h1{font-size:clamp(1.3rem,5vw,1.8rem)}h2{font-size:.95rem}.nav-bar{flex-wrap:wrap;gap:.5rem}.panel{padding:.75rem;border-radius:10px}.item-card-row{flex-direction:column;gap:.4rem}.item-card{flex-direction:row;min-width:0;width:100%;gap:.5rem;padding:.45rem .7rem}.item-card-emoji{font-size:1.1rem}.item-card-name{flex:1;text-align:left}.item-card-slot{margin-left:auto}.lane-selector{flex-wrap:wrap}.lane-btn{min-width:0;padding:.5rem .3rem;font-size:.72rem}.inventory-racer-row{flex-wrap:wrap;gap:.3rem}.inventory-racer-items{gap:.3rem}.inventory-item-pip{padding:.15rem .35rem;font-size:.75rem}.inventory-item-pip-name{font-size:.65rem}.track-leaderboard{gap:.6rem}.oval-track-svg{max-height:240px}.speed-profile-btn{padding:.45rem .2rem;font-size:.68rem}.bot-racer-row{flex-wrap:wrap;gap:.4rem}.race-config-body{grid-template-columns:1fr 1fr}.event-log-entry{flex-wrap:wrap;gap:.25rem}.control-mode-tab{padding:.4rem .3rem;font-size:.7rem}.lobby-list{flex-direction:column}.lobby-card{width:100%;justify-content:space-between}.racer-slot{padding:.4rem .55rem;flex-wrap:wrap;gap:.3rem}.racer-slot-right{gap:.4rem;width:100%;justify-content:flex-end}.racer-slot-stats{font-size:.72rem}.dashboard-status{gap:.8rem}.replay-header{flex-direction:column;align-items:flex-start;gap:.4rem}.race-table{min-width:480px}.mode-btn{padding:.35rem .6rem;font-size:.7rem}.app-footer{padding:1.2rem .7rem .8rem;margin-top:1.2rem}}@media(max-width:480px){.container{padding:.55rem}h1{font-size:clamp(1.15rem,5vw,1.5rem)}.app-header{flex-wrap:wrap;gap:.3rem}.panel{padding:.6rem;border-radius:8px}.phase-badge{font-size:.75rem;padding:.15rem .45rem}.dev-badge{font-size:.72rem;padding:.2rem .5rem}.oval-track-svg{max-height:200px}.lobby-header{flex-direction:column;align-items:flex-start;gap:.3rem}.bot-racer-row select{font-size:.78rem}button{padding:.5rem .6rem;font-size:.82rem}button.primary{font-size:.82rem}.track-legend{gap:.5rem;font-size:.7rem}.advanced-options{padding:.6rem}.race-config-body{grid-template-columns:1fr 1fr;padding:.5rem;gap:.4rem}}.racer-picker-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:.6rem}.racer-pick-card{display:flex;flex-direction:column;gap:.5rem;padding:.7rem;border-radius:10px;border:2px solid rgba(255,255,255,.12);background:#0003;cursor:pointer;transition:border-color .15s,background .15s,transform .15s}.racer-pick-card:hover{background:#38d0ff0f;transform:translateY(-2px)}.racer-card-selected{background:#38d0ff1a;box-shadow:0 0 12px #38d0ff33}.racer-pick-header{display:flex;align-items:center;justify-content:space-between}.racer-pick-id{display:inline-flex;align-items:center;justify-content:center;width:2rem;height:1.4rem;border-radius:4px;font-size:.72rem;font-weight:800;color:#041326}.racer-playstyle-badge{font-size:.65rem;font-weight:700;padding:.1rem .4rem;border-radius:4px;border:1px solid;text-transform:uppercase;letter-spacing:.03em}.racer-stat-row{display:flex;align-items:center;gap:.4rem}.racer-stat-label{font-size:.62rem;font-weight:700;color:var(--muted);width:2rem;text-transform:uppercase;letter-spacing:.04em}.racer-stat-bars{flex:1;height:6px;background:#ffffff14;border-radius:3px;overflow:hidden}.racer-stat-fill{height:100%;background:linear-gradient(90deg,var(--accent),var(--accent2));border-radius:3px;transition:width .3s ease-out}.racer-stat-value{font-size:.68rem;font-weight:700;color:var(--ink);width:1.2rem;text-align:right;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace}.stats-panel{margin-top:1.5rem;border-color:#44ffb033}.stats-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:.5rem}.stats-header h2{margin-bottom:0}.stats-tabs{display:flex;gap:0;border-radius:8px;overflow:hidden;border:1px solid rgba(255,255,255,.15);margin-bottom:.8rem}.stats-tab{flex:1;padding:.4rem .6rem;font-size:.78rem;font-weight:600;border:none;border-radius:0;background:#0003;color:var(--muted);cursor:pointer;transition:background .15s,color .15s}.stats-tab:hover{background:#44ffb014}.stats-tab-active{background:#44ffb026;color:var(--accent2)}.stats-filter{display:flex;align-items:center;gap:.5rem;margin-bottom:.6rem}.stats-filter-buttons{display:flex;gap:0;border-radius:6px;overflow:hidden;border:1px solid rgba(255,255,255,.12)}.stats-filter-btn{padding:.3rem .5rem;font-size:.72rem;font-weight:600;border:none;border-radius:0;background:#0003;color:var(--muted);cursor:pointer}.stats-filter-active{background:#38d0ff26;color:var(--accent)}.history-list{display:flex;flex-direction:column;gap:.4rem;max-height:400px;overflow-y:auto}.history-card{border:1px solid rgba(255,255,255,.08);border-radius:8px;overflow:hidden}.history-card-header{width:100%;display:flex;align-items:center;gap:.8rem;padding:.5rem .7rem;border:none;background:#0003;color:var(--ink);cursor:pointer;font-size:.82rem}.history-card-header:hover{background:#ffffff08}.history-winner{margin-left:auto;font-size:.78rem}.history-card-body{padding:.5rem .7rem;display:flex;flex-direction:column;gap:.3rem;background:#00000026}.history-result-row{display:flex;align-items:center;gap:.5rem}.leaderboard-rank{font-size:.88rem;min-width:1.5rem}@keyframes item-flash-expand{0%{r:12;opacity:.8}to{r:28;opacity:0}}@keyframes finish-pulse{0%{r:14;opacity:.6;stroke-width:2}to{r:24;opacity:0;stroke-width:0}}.oval-draft-line{pointer-events:none;opacity:.6}.oval-item-flash{animation:item-flash-expand .5s ease-out forwards;fill:none;stroke:var(--accent2);pointer-events:none}.oval-finish-celebration{animation:finish-pulse 1s ease-out infinite;fill:none;stroke:#ffcf8a;pointer-events:none}.volume-control{display:flex;align-items:center;gap:.2rem;position:relative}.mute-btn{padding:.3rem .5rem;border:1px solid rgba(255,255,255,.15);border-radius:6px;background:#0003;color:var(--ink);cursor:pointer;font-size:.9rem;line-height:1;transition:background .15s}.mute-btn:hover{background:#ffffff0d}.volume-sliders{position:absolute;top:100%;right:0;z-index:50;margin-top:.3rem;padding:.6rem;background:var(--panel);border:1px solid rgba(255,255,255,.15);border-radius:10px;display:flex;flex-direction:column;gap:.4rem;min-width:160px}.volume-sliders label{display:flex;flex-direction:column;gap:.15rem;font-size:.72rem;color:var(--muted)}.volume-slider{width:100%;accent-color:var(--accent);padding:.1rem 0;border:none;background:transparent}.track-preview{margin-top:.6rem;padding:.5rem;background:#0003;border-radius:8px;border:1px solid rgba(255,255,255,.06)}.track-preview-header{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:.5rem;margin-bottom:.4rem}.track-preview-legend{display:flex;gap:.6rem;flex-wrap:wrap}.track-preview-legend-item{display:flex;align-items:center;gap:.25rem;font-size:.68rem;color:var(--muted)}.track-preview-legend-swatch{display:inline-block;width:10px;height:10px;border-radius:2px}.track-preview-scroll{overflow-x:auto;padding-bottom:.3rem}.track-preview-svg{min-width:400px;height:auto;max-height:100px}.tournament-results{margin-top:.5rem;padding:.5rem;background:#0003;border-radius:8px}.strategy-select{flex:1;min-width:0}.spectator-view{padding:.5rem 0}.spectator-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:1rem}.spectator-header h2{margin-bottom:0;color:var(--accent)}.spectator-layout{display:grid;grid-template-columns:1fr 280px;gap:1rem;margin-bottom:1rem}.spectator-main{min-width:0}.spectator-main .oval-track-svg{max-height:460px}.spectator-sidebar{background:var(--panel);border:1px solid rgba(255,255,255,.12);border-radius:14px;padding:1rem}.spectator-leaderboard{display:flex;flex-direction:column;gap:.5rem}.spectator-leader-row{display:flex;align-items:flex-start;gap:.4rem}.spectator-rank{font-weight:700;font-size:.88rem;color:var(--muted);min-width:1.2rem;margin-top:.1rem}.spectator-leader-info{flex:1;display:flex;flex-direction:column;gap:.1rem}.spectator-finished{text-align:center;padding:1rem;margin-top:1rem;background:#44ffb01a;border:1px solid rgba(68,255,176,.3);border-radius:10px;color:var(--accent2);font-weight:700;font-size:1.1rem}.race-ticker{display:flex;flex-direction:column;gap:.2rem;padding:.5rem;background:#0000004d;border-radius:8px;max-height:120px;overflow-y:auto}.ticker-item{font-size:.78rem;color:var(--ink);padding:.15rem 0;border-bottom:1px solid rgba(255,255,255,.04)}.ticker-racer{font-weight:700}.collapsible-panel{margin-top:.5rem}.collapsible-header{width:100%;display:flex;align-items:center;justify-content:space-between;padding:.5rem .7rem;border:1px solid rgba(255,255,255,.12);border-radius:10px;background:var(--panel);color:var(--ink);font-size:.88rem;font-weight:600;cursor:pointer;transition:border-color .15s}.collapsible-header:hover{border-color:#38d0ff4d}.collapsible-chevron{font-size:.7rem;color:var(--muted)}.collapsible-body{overflow:hidden;transition:max-height .3s ease-out,opacity .3s}.collapsible-collapsed{max-height:0;opacity:0}.collapsible-expanded{max-height:2000px;opacity:1}.mobile-action-bar{position:fixed;bottom:0;left:0;right:0;z-index:50;display:flex;justify-content:space-around;padding:.4rem;background:#0f1528f2;border-top:1px solid rgba(255,255,255,.12);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}.mobile-action-btn{display:flex;flex-direction:column;align-items:center;gap:.15rem;padding:.4rem .6rem;border:none;border-radius:8px;background:transparent;color:var(--muted);cursor:pointer;font-size:.65rem;font-weight:600;min-height:44px;min-width:44px;transition:color .15s,background .15s}.mobile-action-btn:hover,.mobile-action-btn:active{background:#38d0ff1a;color:var(--accent)}.mobile-action-icon{font-size:1.2rem;line-height:1}.mobile-action-pulse{animation:mobile-pulse 1.5s ease-in-out infinite}@keyframes mobile-pulse{0%,to{color:var(--muted)}50%{color:var(--accent)}}.container-mobile-bar{padding-bottom:70px}.mobile-hidden{display:none!important}@media(max-width:768px){.mobile-action-bar{display:flex}button,.lane-btn,.speed-profile-btn,.control-mode-tab,.item-card{min-height:44px}.spectator-layout{grid-template-columns:1fr}.spectator-main .oval-track-svg{max-height:280px}}@media(max-width:380px){.container{padding:.4rem}h1{font-size:1.1rem}.lane-selector{border-radius:6px}.lane-btn{padding:.4rem .2rem;font-size:.65rem}.race-config-body{grid-template-columns:1fr}.track-legend{gap:.4rem}.track-racer-chip{width:1.8rem;height:1.3rem;font-size:.68rem}.oval-track-svg{max-height:170px}.lobby-card{padding:.4rem .7rem;font-size:.82rem}.racer-slot-id{font-size:.82rem}.racer-slot-name{font-size:.78rem}.mode-btn{padding:.3rem .45rem;font-size:.65rem}.control-mode-tab{font-size:.62rem;padding:.35rem .2rem}.speed-profile-btn{font-size:.62rem;padding:.35rem .15rem}}
