@import url('https://fonts.googleapis.com/css2?family=Barlow+Condensed:wght@500;600;700;800&family=DM+Sans:wght@400;500;600;700&family=Space+Mono:wght@400;700&display=swap');

html{line-height:1.5;-webkit-text-size-adjust:100%}button,input,select{line-height:inherit}button{font-family:inherit}table{border-collapse:collapse}fieldset{min-width:0} :root{--bg:#101414;--panel:#191e1e;--panel2:#1e2524;--border:#2c3432;--text:#f2f5ef;--muted:#89948f;--lime:#b9f36b;--red:#ff8078}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text);font-family:'DM Sans',sans-serif;font-size:14px}button,input,select{font:inherit}button,a,input,select{ -webkit-tap-highlight-color:transparent}button,a{touch-action:manipulation}button{cursor:pointer}button:disabled{opacity:.4;cursor:not-allowed}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible{outline:2px solid var(--lime);outline-offset:4px}a{color:inherit;text-decoration:none}button{color:inherit;border:0;background:none}h1,h2,h3,p{margin:0}svg{flex-shrink:0}main{max-width:1376px;padding:43px 56px 0;margin:auto}.topbar{height:86px;padding:0 56px;border-bottom:1px solid var(--border);display:flex;align-items:center;gap:30px}.brand{display:flex;align-items:center;font-size:27px;font-weight:700;letter-spacing:-1.5px}.brand-dot{color:var(--lime)}.brand-icon{display:grid;place-items:center;width:34px;height:34px;margin-right:9px;background:var(--lime);color:#172011;transform:skew(-8deg);border-radius:5px}.brand-icon svg{transform:skew(8deg)}nav{display:flex;gap:30px;margin:auto;height:100%;align-items:center}nav button{height:100%;position:relative;color:var(--muted);font-size:13px}nav button.selected{color:var(--text)}nav button.selected:after{content:'';position:absolute;bottom:0;left:0;right:0;height:2px;background:var(--lime)}.button{display:inline-flex;align-items:center;justify-content:center;gap:10px;border-radius:7px;padding:12px 18px;font-size:13px;font-weight:600;min-height:43px;transition:background .15s,transform .15s}.button:hover:not(:disabled){transform:translateY(-1px)}.primary{background:var(--lime);color:#18220f}.primary:hover:not(:disabled){background:#c9ff81}.secondary{background:#222a27;border:1px solid #3a443e}.ghost{border:1px solid var(--border);background:transparent}.admin{padding:9px 13px;min-height:36px;font-size:12px;color:#b2bcb6}.eyebrow{font-size:10px;letter-spacing:1.5px;color:var(--muted);font-weight:600;display:flex;align-items:center;gap:8px}.dot{display:inline-block;width:6px;height:6px;border-radius:50%;background:var(--lime);box-shadow:0 0 9px #b9f32e33;flex-shrink:0}.dot.offline{background:#8e9691;box-shadow:none}.eyebrow-divider{margin:0 6px;color:#47534b}.page-heading{display:flex;justify-content:space-between;align-items:center;margin:15px 0 31px;gap:20px}h1{font-family:'Barlow Condensed',sans-serif;font-weight:600;font-size:56px;letter-spacing:-.6px;line-height:1.1}.page-heading p{color:var(--muted);margin-top:11px;font-size:14px}.race-layout{display:grid;grid-template-columns:minmax(0,2.35fr) minmax(270px,1fr);gap:20px}.timer-panel{padding:25px 30px 0;border:1px solid #40503d;border-radius:11px;background:radial-gradient(ellipse at 75% 0%,#28372566,transparent 65%),#1a201b;overflow:hidden;position:relative}.timer-panel:after{content:'';position:absolute;right:-10px;bottom:57px;transform:skew(-20deg);width:90px;height:165px;border-left:22px solid #b9f30a;border-right:22px solid #b9f30a;pointer-events:none}.timer-top{display:flex;justify-content:space-between;align-items:center;gap:10px}.timer-top>span:first-child{display:flex;align-items:center;gap:8px;color:#adb9a8;font-size:10px;letter-spacing:1.3px}.badge{display:inline-flex;align-items:center;white-space:nowrap;border:1px solid #414d3d;color:#a3b197;border-radius:4px;padding:5px 7px;font-size:9px;letter-spacing:.8px}.badge.active{background:#b9f315;color:var(--lime);border-color:#779949}.timer{font-family:'Barlow Condensed',sans-serif;font-size:clamp(70px,8vw,116px);font-weight:500;font-variant-numeric:tabular-nums;line-height:1.1;margin:20px 0 3px;letter-spacing:2px}.timer-label{font-size:12px;color:#93a08e}.race-actions{display:flex;align-items:center;gap:12px;margin:25px 0}.large{min-height:49px;padding:13px 19px;font-size:14px}.race-actions .primary{min-width:200px;justify-content:space-between}.race-actions .ghost{border-color:transparent;color:#b2bcac;font-size:12px}.timer-foot{border-top:1px solid #35402f;margin-top:21px;padding:16px 0;display:flex;align-items:center;gap:25px;color:#929f8c;font-size:11px}.timer-foot span{display:flex;align-items:center;gap:6px}.tiny-line{display:inline-block;width:11px;height:5px;background:var(--lime);transform:skew(-15deg)}.connection-panel{padding:25px;border:1px solid var(--border);border-radius:11px;background:var(--panel)}.section-kicker{display:flex;align-items:center;gap:8px;font-size:10px;letter-spacing:1.2px;color:#9ca69f}.section-kicker svg{color:var(--lime)}.sensor-count{font-family:'Barlow Condensed',sans-serif;font-size:61px;line-height:1;margin-top:17px}.sensor-count span{font-size:27px;color:#657269;margin-left:6px}.connection-panel>p{color:var(--muted);font-size:12px;margin-top:5px}.mini-sensors{display:flex;gap:5px;margin:19px 0}.mini-sensors span{width:14px;height:19px;transform:skew(-12deg);background:#303a32;border-radius:2px}.mini-sensors span.lit{background:var(--lime)}.divider{height:1px;background:var(--border);margin:20px 0}.sound-toggle{display:flex;align-items:center;gap:12px;padding:0;text-align:left;width:100%}.sound-toggle>span:nth-child(2){font-size:12px;font-weight:500;flex:1}.sound-toggle small{display:block;color:var(--muted);font-size:10px;margin-top:5px;font-weight:400}.sound-toggle>svg{color:#b9c4b4}.switch{position:relative;width:29px;height:17px;border-radius:20px;background:#435045;flex-shrink:0}.switch:after{position:absolute;content:'';width:11px;height:11px;left:3px;top:3px;border-radius:50%;background:#8e9c8c}.switch.on{background:#516b31}.switch.on:after{background:var(--lime);left:15px}.connection-panel .network-note{font-size:10px;line-height:1.7;margin-top:17px}.section-title{display:flex;align-items:center;justify-content:space-between;gap:15px;margin-bottom:19px}.section-title h2{font-size:16px;font-weight:500;display:flex;align-items:center;gap:10px}.section-title h2>span{font-size:9px;color:var(--muted);padding:4px 6px;background:#222a26;border-radius:4px;letter-spacing:.7px}.text-button{display:inline-flex;align-items:center;gap:8px;font-size:11px;color:#aab5ac}.text-button:hover{color:var(--lime)}.groups-section{margin-top:33px}.group-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.count-3{grid-template-columns:repeat(3,minmax(0,1fr))}.count-4{grid-template-columns:repeat(4,minmax(0,1fr))}.group-card{padding:21px 22px 0;background:var(--panel);border:1px solid var(--border);border-radius:9px;border-top:2px solid var(--group-color);overflow:hidden}.group-head{display:flex;align-items:center;gap:12px}.group-letter{display:grid;place-items:center;width:36px;height:36px;color:var(--group-color);border:1px solid color-mix(in srgb,var(--group-color) 25%,transparent);background:color-mix(in srgb,var(--group-color) 7%,transparent);border-radius:6px;font-family:'Barlow Condensed',sans-serif;font-size:24px;font-weight:600;flex-shrink:0}.group-head h3{font-size:14px;font-weight:500}.group-head small{font-size:10px;color:var(--muted);display:block;margin-top:5px}.car-mark{margin-left:auto;font-family:'Barlow Condensed',sans-serif;font-weight:600;font-size:36px;color:#303b35}.group-time{font-family:'Barlow Condensed',sans-serif;font-size:44px;font-weight:500;letter-spacing:1px;margin:20px 0 22px;font-variant-numeric:tabular-nums}.route{display:flex;min-height:47px;margin:0 0 14px;gap:4px}.route-stop{flex:1;position:relative;min-width:0}.route-stop:after{content:'';position:absolute;top:10px;left:27px;right:4px;height:1px;background:#3c463f}.route-stop:last-child:after{display:none}.route-stop>span{display:grid;place-items:center;position:relative;z-index:1;width:21px;height:21px;border-radius:50%;border:1px solid #4c5b4f;color:#919d91;background:var(--panel);font-size:10px}.route-stop.expected>span{border-color:var(--group-color);color:var(--group-color);box-shadow:0 0 0 3px color-mix(in srgb,var(--group-color) 8%,transparent)}.route-stop.complete>span{background:var(--group-color);color:#14200d;border-color:var(--group-color)}.route-stop small{font-size:10px;color:var(--muted);display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-top:7px;padding-right:4px}.empty-route{font-size:11px;color:var(--muted)}.group-bottom{display:flex;justify-content:space-between;align-items:center;border-top:1px solid var(--border);padding:14px 0;color:var(--muted);font-size:10px;gap:8px}.group-bottom span{display:flex;align-items:center;gap:5px}.group-bottom .complete-text{color:var(--group-color)}.event-panel{margin-top:32px;background:var(--panel);border:1px solid var(--border);border-radius:9px;padding:20px 24px}.event-panel .section-title{margin-bottom:0}.event-panel h2 svg{color:#9aaa9b}.muted{color:var(--muted);font-size:10px}.empty-events{display:flex;align-items:center;gap:17px;padding:34px 0;color:var(--muted)}.empty-icon{width:47px;height:47px;border:1px dashed #4b584d;border-radius:50%;display:grid;place-items:center;color:#71816e}.empty-events h3{font-size:13px;font-weight:500;color:#b5c1b5;margin-bottom:7px}.empty-events p{font-size:11px}.waiting-label{margin-left:auto;font-size:9px;letter-spacing:1px;color:#647367}.event-table{margin-top:18px;overflow-x:auto}.event-row{display:grid;grid-template-columns:1.5fr 1fr .7fr 1fr 1fr;gap:15px;min-width:550px;padding:14px 0;border-top:1px solid var(--border);font-size:11px;align-items:center;color:#aeb9b0}.event-row>span:first-child{display:flex;align-items:center;gap:8px;color:#e2e8df}.event-row i{width:6px;height:6px;border-radius:50%;flex-shrink:0}.event-row strong{font-family:'Space Mono',monospace;font-weight:400;color:var(--text);text-align:right}.event-row span:last-child{text-align:right}.event-row.table-head{border:0;font-size:9px;letter-spacing:1px;color:var(--muted)}.event-row.table-head>span:first-child{color:var(--muted)}footer{display:flex;justify-content:space-between;padding:25px 0 27px;gap:20px;color:#65736a;font-size:9px}footer>span:first-child{font-size:8px;letter-spacing:1.2px;display:flex;gap:6px;align-items:center}.footer-flag{font-size:16px;color:#859080}.stop{background:#ff8078;color:#2f1311}.square{width:12px;height:12px;border-radius:2px;background:currentColor}.alert,.notice{border:1px solid #79544c;color:#ffc0b6;background:#36221f;padding:13px 16px;display:flex;justify-content:space-between;align-items:center;gap:10px;border-radius:6px;margin:15px 0;font-size:13px;line-height:1.5}.notice{color:#c4e7a4;border-color:#485e36;background:#222d1b}.connection-note{color:#a9b49e;font-size:12px;margin-bottom:18px}.podium-panel{margin-top:29px;padding:29px;border:1px solid #526440;border-radius:10px;background:radial-gradient(ellipse at 50% 0%,#b9f312,transparent),#1b2119}.podium-panel>h2{font-family:'Barlow Condensed',sans-serif;font-size:36px;margin-top:13px}.podium{display:grid;grid-template-columns:repeat(3,1fr);gap:15px;margin-top:22px}.podium-place{border:1px solid #3d4936;background:#1b211a;padding:19px;border-radius:7px;display:flex;align-items:center;gap:15px}.podium-place .rank{font-family:'Barlow Condensed',sans-serif;font-size:45px;color:#a5b29a}.podium-place h3{font-size:13px;font-weight:500}.podium-place p{margin-top:7px;font-family:'Space Mono',monospace;font-size:17px}.podium-place.place-1{border-color:#7e9c43}.place-1 .rank,.place-1>svg{color:var(--lime)}.place-1>svg{margin-left:auto}.dnf{font-size:12px;color:var(--muted);margin-top:15px}.setup-panel,.history-panel{border:1px solid var(--border);background:var(--panel);border-radius:10px;padding:26px}.setup-controls{display:flex;gap:25px;margin:25px 0 10px}.setup-controls label{flex:1;max-width:300px}label{display:block;font-size:12px;color:#bac4b9}input:not([type=range]),select{display:block;width:100%;background:#111713;border:1px solid #3d493e;border-radius:6px;min-height:43px;color:#e3ebdf;padding:10px 12px;margin-top:9px;font-size:13px}select{padding-right:25px}input::placeholder{color:#657167}fieldset{border:0;padding:0;margin:0;min-width:0}.hint{color:var(--muted);font-size:11px;line-height:1.8;margin:12px 0 20px}.setup-groups{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;margin:23px 0}.setup-group{padding:19px;background:#141a16;border:1px solid var(--border);border-radius:8px;border-top:2px solid var(--group-color)}.setup-group .group-head input{margin:0;font-weight:500}.sensor-order{padding:0;list-style:none}.sensor-order li{display:flex;align-items:center;gap:8px;margin:9px 0;font-size:12px}.sensor-order li>span:nth-child(2){flex:1}.sensor-order button{display:grid;place-items:center;padding:6px;border:1px solid var(--border);border-radius:4px}.order-number{width:20px;color:var(--group-color)}.setup-tip{display:flex;align-items:center;gap:14px;padding:18px;background:#222c20;border-radius:7px;margin:25px 0}.setup-tip svg{color:var(--lime)}.setup-tip p{font-size:12px;line-height:1.8;color:#aebda5}.race-name{max-width:430px;margin-top:24px}.history-row{display:flex;align-items:center;width:100%;gap:17px;text-align:left;padding:20px 0;border-top:1px solid var(--border)}.history-row:hover{color:var(--lime)}.history-icon{display:grid;place-items:center;width:44px;height:44px;border-radius:7px;background:#293425;color:var(--lime)}.history-row>span:nth-child(2){flex:1}.history-row strong{font-size:14px;font-weight:500}.history-row small{display:block;font-size:11px;color:var(--muted);margin-top:7px}.modal-backdrop{position:fixed;inset:0;background:#020603bb;backdrop-filter:blur(7px);z-index:10;display:flex;align-items:center;justify-content:center;padding:20px}.modal{position:relative;background:#1c241d;border:1px solid #4b5d42;box-shadow:0 20px 90px #0009;border-radius:13px;padding:35px;max-width:440px;width:100%}.modal-close{position:absolute;top:15px;right:15px;color:var(--muted)}.modal-icon{display:grid;place-items:center;width:48px;height:48px;background:#b9f315;color:var(--lime);border-radius:10px;margin-bottom:23px}.modal h2{font-family:'Barlow Condensed',sans-serif;font-size:31px}.modal p{color:#a0af9a;font-size:12px;line-height:1.8;margin:13px 0 22px}.modal .button{width:100%;margin-top:20px}.inline-error,.modal p.inline-error{color:#ffafa4;font-size:12px;line-height:1.7}.sensor-shell .topbar{justify-content:space-between}.sensor-main{max-width:1210px}.sensor-main>h1{margin-top:17px}.sensor-intro{color:var(--muted);font-size:14px;line-height:1.8;margin:15px 0 30px}.sensor-workspace{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(300px,1fr);gap:25px}.camera-panel{border:1px solid var(--border);border-radius:10px;overflow:hidden;background:var(--panel);align-self:start}.camera-view{aspect-ratio:4/3;position:relative;overflow:hidden;background:#080e0a}.camera-view video{width:100%;height:100%;object-fit:cover}.camera-placeholder{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;flex-direction:column;background:radial-gradient(#25342555,transparent 70%),repeating-linear-gradient(0deg,transparent,transparent 35px,#7a9b7a0a 35px,#7a9b7a0a 36px),repeating-linear-gradient(90deg,transparent,transparent 35px,#7a9b7a0a 35px,#7a9b7a0a 36px)}.camera-placeholder>span{width:84px;height:84px;display:grid;place-items:center;border:1px solid #526748;border-radius:20px;color:var(--lime);background:#1e2b1b;margin-bottom:23px}.camera-placeholder h2{font-family:'Barlow Condensed',sans-serif;font-size:29px;font-weight:500}.camera-placeholder p{color:var(--muted);font-size:12px;text-align:center;line-height:1.8;margin-top:12px}.motion-indicator{display:flex;gap:11px;align-items:center;padding:20px;font-size:11px;color:var(--muted)}.motion-indicator>svg{color:var(--lime)}.motion-indicator>span:last-child{font-size:10px;min-width:65px;text-align:right}.level-track{height:5px;flex:1;border-radius:10px;overflow:hidden;background:#384333;margin:0 6px}.level-track span{display:block;height:100%;background:var(--lime);transition:width .15s}.sensor-controls{border:1px solid var(--border);background:var(--panel);border-radius:10px;padding:25px}.sensor-controls h2{font-size:18px;margin-bottom:23px;font-weight:500}.sensor-controls>label{margin-top:19px}.sensor-controls .button{width:100%}.sensitivity-head{display:flex;justify-content:space-between;margin:25px 0 16px}.sensitivity-head strong{color:var(--lime);font-size:12px}.sensor-controls input[type=range]{width:100%;accent-color:var(--lime);cursor:pointer}.range-labels{display:flex;justify-content:space-between;color:var(--muted);font-size:10px;margin-top:8px}.sensor-controls .hint{display:flex;align-items:flex-start;gap:8px;font-size:10px;margin:20px 0}.sensor-controls .hint svg{margin-top:2px}.sensor-status{display:flex;align-items:center;gap:8px;justify-content:center;color:#a0b198;font-size:11px;margin-top:16px;min-height:20px;line-height:1.7;text-align:center}.status-list{border-top:1px solid var(--border);margin-top:20px;padding-top:15px}.status-list>div{display:flex;justify-content:space-between;align-items:center;gap:10px;font-size:10px;margin:12px 0;color:var(--muted)}.status-list span,.status-list strong{display:flex;align-items:center;gap:7px}.status-list strong{font-weight:400;color:#bbc7b5}.sensor-guide{display:grid;grid-template-columns:repeat(3,1fr);gap:30px;margin:40px 0 17px}.sensor-guide>div{position:relative;padding-left:36px}.sensor-guide>div>span{position:absolute;left:0;font-family:'Barlow Condensed',sans-serif;font-size:23px;color:var(--lime)}.sensor-guide h3{font-size:13px;font-weight:500;margin-bottom:9px}.sensor-guide p{font-size:11px;line-height:1.8;color:var(--muted)}.view-corner{position:absolute;width:28px;height:28px;border-color:var(--lime);border-style:solid}.tl{left:20px;top:65px;border-width:2px 0 0 2px}.tr{right:20px;top:65px;border-width:2px 2px 0 0}.bl{left:20px;bottom:55px;border-width:0 0 2px 2px}.br{right:20px;bottom:55px;border-width:0 2px 2px 0}.camera-live{position:absolute;top:19px;left:20px;display:flex;align-items:center;gap:8px;background:#0b160cbb;padding:8px 10px;font-size:9px;letter-spacing:1px;border-radius:4px}.camera-name{position:absolute;left:20px;bottom:17px;padding:7px 10px;background:#0b160cbb;border-radius:4px;font-size:12px}
@media(min-width:1450px){.timer{font-size:120px}.topbar{padding-left:max(56px,calc((100vw - 1264px)/2));padding-right:max(56px,calc((100vw - 1264px)/2))}}
@media(max-width:1100px){.count-4{grid-template-columns:repeat(2,minmax(0,1fr))}.count-3{grid-template-columns:repeat(2,minmax(0,1fr))}main{padding:35px 28px 0}.topbar{padding:0 28px}.timer-panel{padding:22px 24px 0}.timer{font-size:91px}.timer-label{font-size:11px}.podium-place{padding:14px;gap:10px}.podium-place p{font-size:14px}.podium-place .rank{font-size:37px}.place-1>svg{display:none}}
@media(max-width:760px){.topbar{height:72px;padding:0 20px;gap:20px}.brand{font-size:24px}.brand-icon{width:29px;height:29px}nav{margin-left:auto;gap:20px}nav button{font-size:11px}nav button:last-child{display:none}.admin{font-size:0;gap:0;padding:9px;min-height:34px}.admin svg{width:16px;height:16px}main{padding:29px 20px 0}.page-heading{align-items:flex-start;gap:15px;margin:15px 0 25px}h1{font-size:44px}.page-heading p{font-size:12px;line-height:1.7}.page-heading>.button{font-size:11px;padding:9px 11px;min-height:38px;margin-top:3px}.page-heading>.button>svg:last-child{display:none}.race-layout{grid-template-columns:1fr}.timer{font-size:96px;letter-spacing:1px}.timer-panel{padding:23px 24px 0}.connection-panel{padding:21px;display:grid;grid-template-columns:1fr 1fr;column-gap:25px;align-items:center}.connection-panel .section-kicker{grid-column:1}.sensor-count{grid-column:1;margin-top:12px;font-size:45px}.connection-panel>p:not(.network-note){grid-column:1;font-size:10px}.mini-sensors{grid-column:1;gap:3px;margin:15px 0 0}.mini-sensors span{width:11px;height:13px}.connection-panel .divider{display:none}.sound-toggle{grid-column:2;grid-row:1/4;gap:9px}.sound-toggle small{line-height:1.7}.connection-panel .network-note{grid-column:2;grid-row:4;font-size:9px;margin-top:0;line-height:1.8}.group-grid,.count-3,.count-4{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.group-card{padding:16px 16px 0}.group-head{gap:9px}.group-letter{width:30px;height:32px;font-size:21px}.group-head h3{font-size:13px}.group-head small{font-size:9px;line-height:1.5}.car-mark{display:none}.group-time{font-size:35px;margin:18px 0}.group-bottom{font-size:9px;flex-wrap:wrap;line-height:1.6}.groups-section{margin-top:27px}.section-title h2{font-size:14px}.section-title h2>span{font-size:8px}.text-button{font-size:10px}.event-panel{padding:20px;margin-top:25px}.event-panel .section-title{align-items:flex-start}.event-panel .muted{font-size:8px}.empty-events{gap:12px;line-height:1.6}.empty-events h3{font-size:12px}.empty-events p{font-size:10px}.waiting-label{display:none}.empty-icon{width:37px;height:37px;flex-shrink:0}footer{font-size:8px;align-items:flex-start;line-height:1.8}footer>span:last-child{max-width:180px;text-align:right}.podium{grid-template-columns:1fr;gap:10px}.podium-place{padding:13px 18px}.podium-place .rank{font-size:39px}.podium-place p{font-size:16px;margin-top:4px}.place-1>svg{display:block}.podium-panel{padding:23px}.setup-panel,.history-panel{padding:20px}.setup-groups{grid-template-columns:1fr}.setup-controls{gap:15px}.setup-controls label{font-size:10px}.setup-controls select{font-size:12px}.setup-tip{align-items:flex-start;padding:15px}.setup-tip p{font-size:11px;overflow-wrap:anywhere}.history-row{gap:12px}.history-row .badge{display:none}.history-row strong{font-size:12px}.history-row small{font-size:10px}.sensor-main>h1{font-size:44px}.sensor-intro{font-size:12px}.sensor-workspace{grid-template-columns:1fr;gap:19px}.sensor-guide{gap:25px;grid-template-columns:1fr;margin-top:30px}.sensor-guide>div{padding-left:39px}.sensor-guide p{max-width:390px}.camera-view{aspect-ratio:4/3}.sensor-controls{padding:23px}.modal{padding:28px}.timer-top>span:first-child{font-size:9px;letter-spacing:1px}.timer-top .badge{font-size:8px}.timer-foot{gap:20px;font-size:10px}}
@media(max-width:390px){.topbar{padding:0 15px;gap:12px}nav{gap:13px}nav button{font-size:10px}main{padding-left:15px;padding-right:15px}.timer{font-size:82px}.timer-panel{padding-left:19px;padding-right:19px}.timer-label{font-size:10px}.race-actions{gap:7px}.race-actions .large{font-size:12px;min-width:170px;padding:12px}.race-actions .ghost{font-size:10px;padding:9px}.group-grid{grid-template-columns:1fr}.page-heading .button{font-size:10px;padding:8px;gap:5px}h1{font-size:39px}.connection-panel{column-gap:15px}.sound-toggle>svg{width:16px}.sound-toggle small{font-size:9px}.sound-toggle>span:nth-child(2){font-size:11px}}

/* The race screen keeps the clock, all cars and the podium in one viewport. */
.live-dashboard .connection-panel{position:relative}
.sound-preview{position:absolute;right:14px;bottom:5px;padding:2px 3px;font-size:9px;line-height:14px;color:var(--lime)}
.live-dashboard .split-list{display:block;margin:5px 0 9px}
.split-heading{display:flex;justify-content:space-between;font-size:8px;letter-spacing:.9px;color:var(--muted);margin-bottom:5px}
.split-row{display:flex;align-items:center;gap:7px;min-height:24px;border-top:1px solid #2c343266;font-size:11px}
.split-number{color:#657367;font-size:9px;width:17px;flex-shrink:0}
.split-name{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#a3b09f;display:flex;align-items:center;gap:7px}
.split-name .dot{width:4px;height:4px;background:var(--group-color)}
.split-row strong{font-family:'Space Mono',monospace;font-size:11px;font-weight:400;font-variant-numeric:tabular-nums;color:#647264;white-space:nowrap}
.split-row.has-time strong{color:var(--group-color)}
.split-row.next-split .split-name{color:var(--text)}
.live-dashboard .route{display:none}
.passage-matrix table{width:100%;table-layout:fixed;border-collapse:collapse;font-variant-numeric:tabular-nums}
.passage-matrix th,.passage-matrix td{text-align:center;border-bottom:1px solid #34403066;padding:6px 2px;font-weight:400}
.passage-matrix thead th{color:#b2bfa9;font-size:10px;vertical-align:top}
.passage-matrix thead th:first-child{width:27px;font-size:0}
.passage-matrix thead th:first-child:after{content:'OMG.';font-size:8px;color:var(--muted)}
.passage-matrix th small{display:block;font-size:8px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-top:2px;font-family:'DM Sans',sans-serif}
.passage-matrix tbody th{color:var(--muted);font-size:10px}
.passage-matrix td{font-family:'Barlow Condensed',sans-serif;font-size:17px;white-space:nowrap;color:#657367}
.passage-matrix td.recorded{color:var(--group-color)}
.passage-matrix td.expected-passage{background:color-mix(in srgb,var(--group-color) 8%,transparent);box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--group-color) 30%,transparent);border-radius:3px}
@media(min-width:761px) and (max-height:760px){.passage-matrix th,.passage-matrix td{padding:3px 1px}.passage-matrix td{font-size:15px}.passage-matrix th small{font-size:7px}}
@media(max-width:1050px){.passage-matrix td{font-size:13px}.passage-matrix thead th:first-child{width:22px}.passage-matrix th small{font-size:7px}}
.live-dashboard .race-bottom{display:grid;grid-template-columns:1.05fr 1fr;gap:14px;min-height:0}
.live-dashboard .podium-panel{margin:0;padding:14px 16px;background:#1b2119;min-width:0;overflow:hidden;border-color:#354230}
.live-dashboard .podium-panel.revealed{border-color:#6b873e;background:radial-gradient(ellipse at 50% 0%,rgba(185,243,107,.12),transparent),#1b2119}
.live-dashboard .podium-panel .section-title{margin-bottom:9px}
.live-dashboard .podium-panel .section-title h2{font-size:13px;gap:7px}
.live-dashboard .podium-panel .section-title h2 svg{color:var(--lime)}
.live-dashboard .podium-panel .muted{font-size:8px;letter-spacing:.5px}
.live-dashboard .podium{margin:0;gap:8px;grid-template-columns:repeat(3,minmax(0,1fr))}
.live-dashboard .podium-place{padding:10px;gap:9px;min-width:0;min-height:64px;border-color:#3b4634}
.live-dashboard .podium-place>div{min-width:0}
.live-dashboard .podium-place h3{font-size:11px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.live-dashboard .podium-place p{font-size:13px;margin-top:6px;white-space:nowrap}
.live-dashboard .podium-place .rank{font-size:33px;line-height:1}
.live-dashboard .podium-place>svg{display:none}
.live-dashboard .pending-podium .rank{color:#63705b}
.live-dashboard .pending-podium .podium-place{opacity:.65}
.live-dashboard .result-notes{display:flex;flex-wrap:wrap;gap:5px 12px;margin-top:7px}
.live-dashboard .dnf{font-size:9px;margin:0;line-height:1.4}
.live-dashboard .event-panel{padding:14px 16px;margin:0;min-width:0;overflow:hidden}
.live-dashboard .event-panel .section-title h2{font-size:13px;gap:6px}
.live-dashboard .event-panel .muted{font-size:8px}
.live-dashboard .event-table{margin-top:7px;overflow:visible}
.live-dashboard .event-row{min-width:0;grid-template-columns:1.3fr .9fr .5fr .9fr .9fr;gap:8px;font-size:10px;padding:3px 0;line-height:12px}
.live-dashboard .event-row>span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.live-dashboard .event-row.table-head{font-size:7px;padding:3px 0}
.live-dashboard .empty-events{padding:15px 0;gap:10px}
.live-dashboard .empty-events h3{font-size:11px;margin-bottom:4px}
.live-dashboard .empty-events p{font-size:10px;line-height:1.5}
.live-dashboard .empty-icon{width:33px;height:33px;flex-shrink:0}
.live-dashboard .waiting-label{display:none}
@media(min-width:761px){
 .live-dashboard{height:100dvh;overflow:hidden;min-height:620px}
 .live-dashboard .topbar{height:56px;padding:0 28px}
 .live-dashboard .brand{font-size:24px}
 .live-dashboard .brand-icon{width:29px;height:29px}
 .live-dashboard main{max-width:1600px;height:calc(100dvh - 56px);min-height:564px;padding:16px 28px 10px;display:grid;grid-template-rows:42px 144px minmax(190px,1fr) 154px 14px;gap:12px}
 .live-dashboard main>.eyebrow{display:none}
 .live-dashboard .page-heading{margin:0;align-items:center}
 .live-dashboard h1{font-size:34px}
 .live-dashboard .page-heading p{display:none}
 .live-dashboard .page-heading>.button{font-size:11px;min-height:33px;padding:8px 12px;margin:0}
 .live-dashboard .race-layout{grid-template-columns:minmax(0,1.8fr) minmax(270px,1fr);gap:14px;min-height:0}
 .live-dashboard .timer-panel{display:grid;grid-template-columns:minmax(0,1fr) auto;grid-template-rows:20px minmax(0,1fr) 20px;gap:5px 14px;padding:12px 18px;border-radius:9px}
 .live-dashboard .timer-panel:after{display:none}
 .live-dashboard .timer-top{grid-column:1/-1;gap:10px}
 .live-dashboard .timer-top>span:first-child{font-size:9px;letter-spacing:.8px}
 .live-dashboard .timer-top .badge{font-size:8px;padding:3px 6px}
 .live-dashboard .timer{font-size:66px;line-height:1;letter-spacing:1px;margin:0;align-self:center}
 .live-dashboard .timer-label{display:none}
 .live-dashboard .race-actions{margin:0;gap:5px;align-self:center;flex-wrap:wrap;justify-content:flex-end;max-width:285px}
 .live-dashboard .race-actions .large{min-height:39px;font-size:12px;padding:10px 13px;min-width:155px}
 .live-dashboard .race-actions .ghost{padding:7px 8px;min-height:32px;font-size:10px}
 .live-dashboard .timer-foot{grid-column:1/-1;margin:0;padding:5px 0 0;gap:22px;font-size:9px}
 .live-dashboard .connection-panel{display:grid;grid-template-columns:80px minmax(0,1fr);grid-template-rows:15px 1fr 16px;gap:5px 15px;padding:15px 18px;align-items:center}
 .live-dashboard .connection-panel .section-kicker{grid-column:1/-1;font-size:9px;letter-spacing:.9px}
 .live-dashboard .sensor-count{grid-column:1;grid-row:2;margin:0;font-size:46px}
 .live-dashboard .sensor-count span{font-size:22px}
 .live-dashboard .connection-panel>p:not(.network-note){grid-column:1;grid-row:3;margin:0;font-size:9px;white-space:nowrap}
 .live-dashboard .sound-toggle{grid-column:2;grid-row:2/4;gap:9px}
 .live-dashboard .sound-toggle>span:nth-child(2){font-size:11px}
 .live-dashboard .sound-toggle small{font-size:9px;line-height:1.6}
 .live-dashboard .connection-panel .mini-sensors,.live-dashboard .connection-panel .divider,.live-dashboard .connection-panel .network-note{display:none}
 .live-dashboard .groups-section{margin:0;min-height:0;display:flex;flex-direction:column}
 .live-dashboard .groups-section>.section-title{margin:0 0 8px;min-height:19px}
 .live-dashboard .section-title h2{font-size:13px}
 .live-dashboard .group-grid{grid-template-columns:repeat(var(--car-count,2),minmax(0,1fr));gap:12px;min-height:0;flex:1}
 .live-dashboard .group-grid.count-3{--car-count:3}
 .live-dashboard .group-grid.count-4{--car-count:4}
 .live-dashboard .group-card{padding:12px 15px 0;min-width:0;min-height:0;display:flex;flex-direction:column}
 .live-dashboard .group-head{gap:9px}
 .live-dashboard .group-letter{width:29px;height:29px;font-size:20px}
 .live-dashboard .group-head h3{font-size:13px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:190px}
 .live-dashboard .group-head small{font-size:9px;margin-top:3px}
 .live-dashboard .car-mark{display:none}
 .live-dashboard .group-time{font-size:40px;line-height:1.1;margin:9px 0 7px}
 .live-dashboard .split-list{flex:1;min-height:0}
 .live-dashboard .split-row{min-height:24px}
 .live-dashboard .group-bottom{margin-top:auto;padding:8px 0;font-size:9px;gap:5px;flex-wrap:wrap}
 .live-dashboard footer{margin:0;padding:0;font-size:8px;line-height:14px;align-items:center}
 .live-dashboard footer>span:first-child{font-size:7px}
 .live-dashboard footer>span:last-child{max-width:none}
 .live-dashboard .alert,.live-dashboard .notice{position:fixed;right:24px;top:64px;z-index:5;max-width:480px;box-shadow:0 10px 25px #0008}
 .live-dashboard .connection-note{position:fixed;left:50%;top:14px;transform:translateX(-50%);padding:8px 12px;border:1px solid #6d7541;background:#2e301a;border-radius:5px;z-index:4;font-size:10px;max-width:400px}
}
@media(min-width:761px) and (max-height:760px){
 .live-dashboard .topbar{height:48px}
 .live-dashboard main{height:calc(100dvh - 48px);min-height:572px;grid-template-rows:34px 118px minmax(190px,1fr) 142px 12px;gap:9px;padding-top:10px;padding-bottom:8px}
 .live-dashboard h1{font-size:29px}
 .live-dashboard .timer{font-size:55px}
 .live-dashboard .timer-panel{padding:8px 15px;gap:2px 9px;grid-template-rows:17px 1fr 18px}
 .live-dashboard .connection-panel{padding:10px 15px}
 .live-dashboard .group-card{padding:9px 12px 0}
 .live-dashboard .group-time{font-size:32px;margin:5px 0}
 .live-dashboard .split-row{min-height:20px;font-size:10px}
 .live-dashboard .split-row strong{font-size:10px}
 .live-dashboard .group-bottom{padding:5px 0}
 .live-dashboard .split-list{margin:3px 0 5px}
 .live-dashboard .podium-panel,.live-dashboard .event-panel{padding:10px 13px}
 .live-dashboard .podium-place{padding:8px;min-height:60px}
 .live-dashboard .event-row{padding:3px 0}
}
@media(min-width:761px) and (max-width:1050px){
 .live-dashboard main{padding-left:18px;padding-right:18px}
 .live-dashboard .race-layout{grid-template-columns:1.8fr 1fr}
 .live-dashboard .race-actions{max-width:180px;gap:1px}
 .live-dashboard .race-actions .large{font-size:11px;min-width:150px;min-height:34px;padding:8px 10px}
 .live-dashboard .race-actions .ghost{min-height:24px;padding:4px}
 .live-dashboard .connection-panel{padding-left:13px;padding-right:13px;gap:4px 7px;grid-template-columns:66px 1fr}
 .live-dashboard .sound-toggle{gap:6px}
 .live-dashboard .sound-toggle>svg{width:15px}
 .live-dashboard .sound-toggle>span:nth-child(2){font-size:10px}
 .live-dashboard .sound-toggle .switch{width:25px}
 .live-dashboard .switch.on:after{left:11px}
 .live-dashboard .group-card{padding-left:10px;padding-right:10px}
 .live-dashboard .group-head h3{font-size:11px;max-width:120px}
 .live-dashboard .group-head small{font-size:8px}
 .live-dashboard .group-time{font-size:32px}
 .live-dashboard .split-row strong{font-size:10px}
 .live-dashboard .split-number{width:13px}
 .live-dashboard .split-row{gap:4px;font-size:10px}
 .live-dashboard .podium-place{gap:6px;padding:8px 7px}
 .live-dashboard .podium-place .rank{font-size:28px}
 .live-dashboard .podium-place p{font-size:11px}
 .live-dashboard .podium-panel .muted{font-size:7px}
 .live-dashboard .event-row{grid-template-columns:1.2fr .9fr .4fr 1fr;gap:6px}
 .live-dashboard .event-row>span:nth-child(4){display:none}
}
@media(max-width:760px){
 .live-dashboard .topbar{height:56px}
 .live-dashboard main{padding-top:16px}
 .live-dashboard main>.eyebrow{display:none}
 .live-dashboard .page-heading{margin:0 0 16px;align-items:center}
 .live-dashboard .page-heading h1{font-size:34px}
 .live-dashboard .page-heading p{display:none}
 .live-dashboard .race-layout{gap:10px}
 .live-dashboard .timer-panel{padding:15px 18px 0}
 .live-dashboard .timer{font-size:76px;margin:9px 0 0}
 .live-dashboard .timer-label{display:none}
 .live-dashboard .timer-panel:after{display:none}
 .live-dashboard .race-actions{margin:9px 0}
 .live-dashboard .race-actions .large{min-height:40px;font-size:12px;padding:10px 14px}
 .live-dashboard .timer-foot{margin-top:7px;padding:10px 0;font-size:9px}
 .live-dashboard .connection-panel{padding:13px 16px;grid-template-columns:85px 1fr;grid-template-rows:auto auto;gap:3px 12px}
 .live-dashboard .connection-panel .section-kicker{font-size:8px;letter-spacing:.5px;grid-column:1;grid-row:1}
 .live-dashboard .sensor-count{font-size:30px;margin:3px 0 0;grid-column:1;grid-row:2}
 .live-dashboard .sensor-count span{font-size:17px}
 .live-dashboard .connection-panel>p,.live-dashboard .mini-sensors,.live-dashboard .connection-panel .divider{display:none}
 .live-dashboard .sound-toggle{grid-column:2;grid-row:1/3}
 .live-dashboard .groups-section{margin-top:18px}
 .live-dashboard .group-grid,.live-dashboard .group-grid.count-3,.live-dashboard .group-grid.count-4{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
 .live-dashboard .group-card{padding:12px 12px 0}
 .live-dashboard .group-time{font-size:32px;margin:11px 0}
 .live-dashboard .group-bottom{padding:8px 0}
 .live-dashboard .race-bottom{grid-template-columns:1fr;margin-top:16px;gap:12px}
 .live-dashboard .podium-place p{font-size:12px}
 .live-dashboard .event-row{font-size:9px}
 .live-dashboard .event-row>span:nth-child(4){display:none}
 .live-dashboard .event-row{grid-template-columns:1.2fr 1fr .5fr 1fr}
}

/* Plain HTML equivalents of the former framework wrappers. */
[hidden]{display:none!important}
.dashboard-content{display:block}
.live-dashboard .dashboard-content,.live-dashboard #messages{display:contents}
#messages:empty{display:none}
dialog.modal{color:var(--text);margin:auto;max-height:90dvh;overflow:auto}
dialog.modal::backdrop{background:#020603bb;backdrop-filter:blur(7px)}
.modal form{margin:0}.modal button[type=submit]{width:100%}
.setup-tip>span{font-size:26px;color:var(--lime)}
.setup-panel>.text-button{margin-top:20px}
.connection-panel .sound-preview{position:absolute}
.brand-icon{font-size:25px;line-height:1}
.camera-placeholder>span{font-size:45px}
.connection-panel .sound-help{display:block}
