.race-control-flow{--race-amber:#e7bb62;--race-red:var(--danger-text)}.race-control-flow .race-heats-grid{gap:16px}.race-control-flow .race-heats-grid>.race-heat-card:only-child{grid-column:1/-1}.race-control-flow .race-heat-card{isolation:isolate;background:linear-gradient(145deg, var(--panel-soft), var(--panel));border-radius:12px;padding:18px;position:relative;container:race-heat/inline-size}.race-heat-card[data-alert=preparing]{--heat-alert:var(--race-amber);--heat-tint:#e7bb620d;--heat-period:3.4s}.race-heat-card[data-alert=running]{--heat-alert:var(--race-red);--heat-tint:#f057470d;--heat-period:2.8s}.race-control-flow .race-heat-card[data-alert]{border-color:color-mix(in srgb, var(--heat-alert) 55%, var(--line))}.race-heat-card[data-alert]:before{content:"";z-index:-1;pointer-events:none;border-radius:inherit;border:1px solid var(--heat-alert);background:linear-gradient(140deg, var(--heat-tint), transparent 65%);box-shadow:0 0 24px color-mix(in srgb, var(--heat-alert) 18%, transparent);will-change:opacity;animation:heat-alert-pulse var(--heat-period) cubic-bezier(.45,0,.55,1) infinite;position:absolute;inset:-1px}@keyframes heat-alert-pulse{0%,to{opacity:.24}50%{opacity:.82}}.race-control-flow .race-heat-card>header{align-items:center;gap:14px;padding-bottom:16px}.race-control-flow .race-heat-card h3{font:700 24px var(--display);letter-spacing:.035em;margin:0}.race-heat-status{color:var(--muted);font:9px/1.6 var(--mono);align-items:center;gap:7px;margin-top:8px;display:inline-flex}.race-heat-status:before{content:"";background:currentColor;border-radius:50%;flex:none;width:6px;height:6px}.race-heat-card[data-alert] .race-heat-status{color:var(--heat-alert)}.race-heat-controls{flex-shrink:0;justify-content:center;align-items:center;gap:8px;display:flex}.race-heat-controls .button{border-radius:6px;min-height:44px;padding:0 12px;font-size:10px}.race-control-flow .race-heat-racers{gap:10px;margin:0;padding:14px 0;display:grid}.race-control-flow .race-heat-racers>.race-heat-racer{border:1px solid var(--line);background:color-mix(in srgb, var(--panel) 80%, transparent);border-radius:8px;grid-template-columns:minmax(0,1fr) 76px 140px;align-items:center;gap:12px;min-width:0;padding:12px}.race-control-flow .race-heat-card[data-alert] .race-heat-racer:not(.race-removed-slot){border-left:2px solid var(--heat-alert);background:var(--heat-tint)}.race-participant-main{min-width:0}.race-participant-identity{justify-content:space-between;align-items:center;gap:10px;min-width:0;display:flex}.race-participant-identity .race-heat-car{flex:1}.race-control-flow .race-heat-car{gap:12px}.race-control-flow .race-heat-car img,.race-control-flow .race-no-photo{object-fit:contain;border-radius:6px;width:60px;height:50px}.race-control-flow .race-heat-car b{overflow-wrap:anywhere;font-size:12px;line-height:1.55}.race-control-flow .race-heat-car small{overflow-wrap:anywhere;font-size:11px;line-height:1.6}.race-speaker{border:1px solid var(--line);background:var(--panel);width:44px;height:44px;color:var(--heat-alert,var(--orange-light));cursor:pointer;border-radius:8px;flex:0 0 44px;place-items:center;padding:0;display:grid}.race-speaker:hover:enabled{background:var(--panel-soft);border-color:currentColor}.race-speaker:disabled{opacity:.5;cursor:not-allowed}.race-participant-alert{color:var(--heat-alert);font:9px/1.6 var(--mono);align-items:center;gap:6px;margin-top:10px;display:flex}.race-control-flow .race-score-select{grid-template-columns:repeat(3,44px);justify-content:center;gap:4px;display:grid}.race-control-flow .race-score-select button{width:44px;height:44px;font:700 14px var(--mono);border-radius:6px;place-items:center;display:grid}.race-control-flow .race-heat-racer>strong{text-align:center;font-size:11px;line-height:1.7}.race-score-status{border:1px solid var(--line);background:var(--panel);text-align:center;border-radius:8px;place-content:center;gap:6px;width:140px;min-height:84px;padding:10px;display:grid}.race-score-status strong{font:700 12px/1.5 var(--mono)}.race-score-status small{color:var(--muted);font-size:9px;line-height:1.6}.race-control-flow .race-heat-card>footer{border-top:1px solid var(--line);flex-wrap:wrap;justify-content:center;align-items:center;gap:12px;padding-top:14px}.race-control-flow .race-heat-card>footer p{text-align:center;flex:100%;max-width:none;font-size:10px}.race-control-flow .race-heat-card>footer .button{border-radius:6px;min-height:44px;font-size:11px}.race-tab-panel[hidden] .race-heat-card:before,.race-control-flow[data-page-hidden=true] .race-heat-card:before,.race-heat-card[data-alert-visible=false]:before{animation-play-state:paused!important}.race-control-flow .race-number-grid{gap:12px}.race-control-flow .race-number-card{background:linear-gradient(145deg,var(--panel-soft),var(--panel));border-radius:10px;grid-template-columns:minmax(0,1fr) 150px;align-items:center;gap:16px;padding:16px;display:grid}.race-number-control{text-align:center;justify-items:stretch;gap:10px;min-width:0;display:grid}.race-number-window{border:1px solid var(--line);background:linear-gradient(180deg,var(--panel),var(--panel-soft));border-radius:8px;place-items:center;height:60px;display:grid;position:relative;overflow:hidden}.race-number-window:after{content:"";pointer-events:none;border-radius:inherit;box-shadow:inset 0 12px 10px -8px var(--panel), inset 0 -12px 10px -8px var(--panel);position:absolute;inset:0}.race-number-reels{gap:6px;height:44px;display:flex}.race-reel-mask{width:32px;height:44px;color:var(--orange-light);font:700 36px/44px var(--display);overflow:hidden}.race-reel-strip{will-change:transform;animation:.65s linear infinite race-number-spin}.race-reel-mask:nth-child(2) .race-reel-strip{animation-duration:.52s}.race-reel-strip>span{height:44px;display:block}.race-reel-idle{opacity:.35}@keyframes race-number-spin{to{transform:translateY(-440px)}}.race-number-reveal{color:var(--orange-light);font:700 38px var(--display);font-variant-numeric:tabular-nums;display:block}.race-number-control .button{border-radius:6px;width:100%;min-height:44px;padding:8px;font-size:10px}.race-number-confirmed{min-height:44px;color:var(--mint);font:9px var(--mono);place-items:center;display:grid}.race-number-waiting{min-height:44px;color:var(--muted);font:9px/1.6 var(--mono);place-items:center;display:grid}.race-number-control[data-result=true] .race-number-window{border-color:color-mix(in srgb,var(--orange) 45%,var(--line))}.race-control-flow .race-dice{border-radius:8px;align-content:center;place-items:center;gap:7px;width:76px;min-height:84px;padding:8px 4px;display:grid;position:relative;overflow:visible}.race-control-flow .race-dice:disabled{opacity:.65}.race-control-flow .race-dice.is-locked{opacity:1}.race-control-flow .race-dice[data-rolling=true]{opacity:1;border-color:var(--orange)}.race-control-flow .race-dice small{font:9px/1.4 var(--mono);text-align:center}.race-lane-result{clip-path:inset(50%);width:1px;height:1px;position:absolute;overflow:hidden}.race-control-flow .race-die-scene{perspective:240px;place-items:center;width:48px;height:44px;display:grid;position:relative}.race-control-flow .race-die-cube{width:32px;height:32px;transform-style:preserve-3d;display:block;position:relative}.race-control-flow .race-die-face{background:linear-gradient(145deg,var(--panel-soft),var(--panel));backface-visibility:hidden;border:1px solid;border-radius:5px;place-items:center;width:32px;height:32px;display:grid;position:absolute;inset:0}.race-die-face>svg{display:block}.race-die-face>svg rect{stroke:none}.race-die-face-1{transform:translateZ(16px)}.race-die-face-2{transform:rotateY(90deg)translateZ(16px)}.race-die-face-3{transform:rotateX(90deg)translateZ(16px)}.race-die-face-4{transform:rotateX(-90deg)translateZ(16px)}.race-die-face-5{transform:rotateY(-90deg)translateZ(16px)}.race-die-face-6{transform:rotateY(180deg)translateZ(16px)}.race-control-flow .race-dice.is-locked:after{display:none}.race-control-flow[data-page-hidden=true] .race-reel-strip,.race-tab-panel[hidden] .race-reel-strip{animation-play-state:paused}.race-notifications{border:1px solid var(--line);background:linear-gradient(145deg,var(--panel-soft),var(--panel));border-radius:10px;justify-content:space-between;align-items:center;gap:16px;padding:18px;display:flex}.race-notifications>div{min-width:0}.race-notifications b{align-items:center;gap:8px;font-size:12px;display:flex}.race-notifications p{color:var(--muted);overflow-wrap:anywhere;margin:6px 0 0;font-size:11px;line-height:1.7}.race-notifications .race-notification-message{color:var(--orange-light)}.race-notification-message:empty{display:none}.race-notifications .button{border-radius:6px;flex-shrink:0;min-height:44px}@media (max-width:980px){.race-control-flow .race-heats-grid,.race-control-flow .race-number-grid{grid-template-columns:minmax(0,1fr)}}@container race-heat (max-width:600px){.race-control-flow .race-heat-racers>.race-heat-racer{grid-template-columns:minmax(76px,1fr) minmax(140px,1fr)}.race-control-flow .race-heat-racer>.race-participant-main{grid-column:1/-1}.race-control-flow .race-heat-racer>.race-dice{grid-column:1;justify-self:center}.race-control-flow .race-heat-racer>.race-score-select,.race-control-flow .race-heat-racer>.race-score-status,.race-control-flow .race-heat-racer>strong{grid-column:2;justify-self:center}}@media (max-width:600px),(pointer:coarse){.race-control-page{padding:24px 12px 60px}.race-control-flow .ops-panel{padding:12px}.race-control-flow .race-heat-card{padding:14px}.race-control-flow .race-heat-card>header{flex-direction:column;align-items:stretch}.race-heat-controls{width:100%}.race-heat-controls .button{flex:1}.race-control-flow .race-heat-racers>.race-heat-racer{grid-template-columns:76px minmax(0,1fr);gap:12px}.race-control-flow .race-heat-racer>.race-participant-main{grid-column:1/-1}.race-control-flow .race-heat-racer>.race-dice{grid-column:1;justify-self:center}.race-control-flow .race-heat-racer>.race-score-select,.race-control-flow .race-heat-racer>.race-score-status,.race-control-flow .race-heat-racer>strong{grid-column:2;justify-self:center}.race-control-flow .race-number-card{grid-template-columns:minmax(0,1fr)}.race-number-control{grid-template-columns:80px minmax(0,1fr);align-items:center;gap:12px}.race-number-window{height:54px}.race-number-control .button{min-height:54px}.race-notifications{flex-direction:column;align-items:stretch}}@media (max-width:380px){.race-control-flow .race-heat-card{padding:10px}.race-control-flow .race-heat-racers>.race-heat-racer{gap:8px;padding:8px}}@media (prefers-reduced-motion:reduce){.race-heat-card[data-alert]:before{opacity:.42;animation:none}.race-reel-strip{animation:none}}
