:root{--bg:#f5f5f7;--bg-elevated:#fff;--text:#14151a;--text-dim:#6b6f7a;--border:#dcdde2;--accent:#9300ff;--accent-contrast:#fff;--row-hover:#9300ff0f;--followed-bg:#9300ff1f;--followed-bg-hover:#9300ff33;--purple:#b366ff;--green:#17a34a;--red:#e0332f;--orange:#d97706;--blue:#2f8fdb;--sans:system-ui, "Segoe UI", Roboto, sans-serif;--mono:ui-monospace, "Cascadia Code", Consolas, monospace}:root[data-theme=dark]{--bg:#0a0a0d;--bg-elevated:#16171d;--text:#f1f1f4;--text-dim:#9a9ca6;--border:#2a2b33;--accent:#c084fc;--accent-contrast:#0a0a0d;--row-hover:#c084fc14;--followed-bg:#c084fc29;--followed-bg-hover:#c084fc42;--purple:#c084fc;--green:#34d399;--red:#f87171;--orange:#fb923c;--blue:#60a5fa}*{box-sizing:border-box}body{font-family:var(--sans);background:var(--bg);color:var(--text);margin:0}#root{flex-direction:column;min-height:100svh;display:flex}a{color:var(--accent)}.app-shell{flex-direction:column;min-height:100svh;display:flex}.top-bar{border-bottom:1px solid var(--border);background:var(--bg-elevated);justify-content:space-between;align-items:center;gap:12px;padding:10px 16px;display:flex}.top-bar .brand{letter-spacing:-.02em;color:var(--text);font-weight:700;text-decoration:none}.top-bar nav{align-items:center;gap:8px;display:flex}.icon-button{border:1px solid var(--border);color:var(--text);cursor:pointer;background:0 0;border-radius:8px;padding:6px 10px;font-size:14px}.system-health{gap:6px;margin-right:4px;display:flex}.health-chip{font-family:var(--mono);font-variant-numeric:tabular-nums;background:var(--row-hover);color:var(--text-dim);border-radius:999px;padding:3px 8px;font-size:12px;font-weight:700}.health-chip.health-ok{color:var(--green)}.health-chip.health-warn{color:var(--orange)}.health-chip.health-crit{color:var(--red)}.icon-button:hover{background:var(--row-hover)}.main-content{flex:1;padding:12px 16px 32px}.status-banner{border:1px solid var(--border);background:var(--bg-elevated);border-radius:10px;flex-wrap:wrap;align-items:center;gap:12px;margin-bottom:12px;padding:10px 14px;display:flex}.status-badge{letter-spacing:.04em;text-transform:uppercase;border-radius:999px;padding:3px 8px;font-size:12px;font-weight:700}.status-badge.live{color:var(--green);background:#34d39926}.status-badge.waiting{color:#d4a017;background:#facc1526}.status-badge.unconfigured{color:var(--text-dim);background:#ffffff14}.status-banner .meta{color:var(--text-dim);font-size:13px}.session-flag{text-transform:uppercase;letter-spacing:.03em;border:1px solid var(--border);border-radius:999px;align-items:center;gap:6px;padding:3px 9px;font-size:12px;font-weight:700;display:inline-flex}.session-flag-dot{background:currentColor;border-radius:50%;flex:none;width:9px;height:9px}.session-flag-icon{font-size:13px;line-height:1}.session-flag.flag-green{color:var(--green);background:#34d3991f}.session-flag.flag-red{color:var(--red);background:#f8717124}.session-flag.flag-yellow{color:#d4a017;background:#facc1529}.session-flag.flag-finish{color:var(--text);background:var(--row-hover)}.session-flag.flag-stopped{color:var(--text-dim);background:var(--row-hover)}.session-flag.is-pulsing .session-flag-dot{animation:1.3s ease-in-out infinite flag-pulse}@keyframes flag-pulse{0%,to{opacity:1;box-shadow:0 0}50%{opacity:.45;box-shadow:0 0 0 5px #0000}}@media (prefers-reduced-motion:reduce){.session-flag.is-pulsing .session-flag-dot{animation:none}}.remaining-time{background:var(--row-hover);border:1px solid var(--border);border-radius:8px;align-items:baseline;gap:8px;margin-left:auto;padding:4px 10px;display:inline-flex}.remaining-time-label{text-transform:uppercase;letter-spacing:.04em;color:var(--text-dim);font-size:11px}.remaining-time-value{font-family:var(--mono);font-variant-numeric:tabular-nums;color:var(--accent);font-size:20px;font-weight:700}.remaining-time-sep{color:var(--text-dim);margin:0 1px}.best-sectors-bar{border:1px solid var(--border);background:var(--bg-elevated);border-radius:10px;flex-wrap:wrap;align-items:center;gap:8px 18px;margin-bottom:12px;padding:8px 14px;display:flex}.best-sectors-title{text-transform:uppercase;letter-spacing:.04em;color:var(--text-dim);font-size:11px}.best-sector{align-items:baseline;gap:6px;display:inline-flex}.best-sector-label{color:var(--text-dim);font-size:12px;font-weight:700}.best-sector-value{font-family:var(--mono);font-variant-numeric:tabular-nums;color:var(--purple);font-weight:700}.best-sector-number{font-family:var(--mono);color:var(--text-dim);font-size:12px}.best-sector--lap{border-left:1px solid var(--border);padding-left:18px}.best-sector--lap .best-sector-value{color:var(--accent)}.analytics-kpis{flex-wrap:wrap;gap:10px;margin-bottom:16px;display:flex}.analytics-kpis .stat-tile{flex:none;min-width:120px}.usage-chart{border:1px solid var(--border);background:var(--bg-elevated);border-radius:10px;margin-bottom:6px;padding:10px 12px}.usage-chart svg{cursor:crosshair;display:block}.uc-grid{stroke:var(--border);stroke-width:1px}.uc-axis{fill:var(--text-dim);font-size:10px;font-family:var(--mono)}.uc-area{fill:var(--accent);opacity:.14}.uc-line{fill:none;stroke:var(--accent);stroke-width:2px;stroke-linejoin:round;stroke-linecap:round}.uc-crosshair{stroke:var(--text-dim);stroke-width:1px;stroke-dasharray:3 3}.uc-dot{fill:var(--accent);stroke:var(--bg-elevated);stroke-width:2px}.uc-tooltip{color:var(--text-dim);font-variant-numeric:tabular-nums;margin-bottom:16px;font-size:12px}.admin-page h4{margin:18px 0 8px}.replay-controls{flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:8px;display:flex}.replay-speeds{gap:4px;margin-left:4px;display:inline-flex}.replay-controls .icon-button.active{border-color:var(--accent);color:var(--accent);font-weight:700}.replay-clock{font-family:var(--mono);font-variant-numeric:tabular-nums;margin-left:auto;font-size:14px;font-weight:700}.replay-scrub-wrap{margin:30px 0 16px;position:relative}.replay-scrub{width:100%;accent-color:var(--accent);margin:0;display:block}.replay-keypoints{height:0;position:absolute;bottom:100%;left:0;right:0}.replay-keypoint{cursor:pointer;background:currentColor;border:0;width:2px;height:12px;padding:0;position:absolute;bottom:-5px;transform:translate(-50%)}.replay-keypoint.gain{color:var(--green)}.replay-keypoint.loss{color:var(--red)}.replay-keypoint:hover{z-index:5}.replay-keypoint-bubble{font-family:var(--mono);background:var(--bg-elevated);white-space:nowrap;border:1px solid;border-radius:4px;padding:1px 4px;font-size:10px;font-weight:700;line-height:1.3;position:absolute;bottom:12px;left:50%;transform:translate(-50%)}.replay-keypoint.start-flag,.replay-keypoint.end-flag{color:var(--text-dim);height:16px;bottom:-6px}.replay-keypoint-bubble.flag-fr{border:1px solid var(--border);background:linear-gradient(90deg,#0055a4 0 33.33%,#fff 33.33% 66.66%,#ef4135 66.66% 100%);border-radius:2px;width:20px;height:14px;padding:0}.replay-keypoint-bubble.flag-checkered{border:1px solid var(--border);background-color:#fff;background-image:linear-gradient(45deg,#111 25%,#0000 25% 75%,#111 75%),linear-gradient(45deg,#111 25%,#0000 25% 75%,#111 75%);background-position:0 0,4px 4px;background-size:8px 8px;border-radius:2px;width:18px;height:14px;padding:0}.replay-keypoint-bubble.flag-pos{color:var(--text);font-size:10px;font-weight:700;bottom:28px}.live-toolbar{flex-wrap:wrap;align-items:center;gap:10px;margin-bottom:8px;display:flex}.live-toolbar .icon-button{margin-left:auto}.race-mode-toggle{align-items:center;gap:6px;font-size:13px;font-weight:600;display:inline-flex}.live-toolbar select{min-width:200px}.race-panel{border:1px solid var(--accent);background:var(--bg-elevated);border-radius:12px;flex-direction:column;gap:8px;margin-bottom:12px;padding:14px 16px;display:flex}.race-panel-main{flex-wrap:wrap;align-items:baseline;gap:14px;display:flex}.race-panel-pilot{font-family:var(--mono);font-size:26px;font-weight:800}.race-panel-pos{color:var(--text-dim);font-size:18px;font-weight:700}.race-panel-group{letter-spacing:.04em;color:var(--accent);background:var(--row-hover);border-radius:999px;margin-left:auto;padding:2px 12px;font-size:22px;font-weight:800}.race-panel-group.solo{color:var(--text-dim);font-size:16px}.race-panel-neighbours{font-family:var(--mono);font-variant-numeric:tabular-nums;gap:24px;font-size:15px;display:flex}.race-panel-arrow.up{color:var(--green)}.race-panel-arrow.down{color:var(--red)}.race-panel-members{flex-wrap:wrap;gap:6px;display:flex}.race-panel-members span{font-family:var(--mono);background:var(--row-hover);color:var(--text-dim);border-radius:6px;padding:2px 8px;font-size:13px}.race-panel-members span.is-followed{background:var(--accent);color:var(--accent-contrast);font-weight:700}.race-panel-catch{border-top:1px dashed var(--border);flex-wrap:wrap;align-items:center;gap:8px;padding-top:8px;font-size:14px;display:flex}.race-panel-catch.muted{color:var(--text-dim);font-size:13px}.race-panel-catch-label{letter-spacing:.05em;text-transform:uppercase;color:var(--red);font-size:11px;font-weight:800}.catch-chip{font-family:var(--mono);background:#e0332f1f;border-radius:6px;padding:2px 8px;font-weight:700}.catch-chip em{color:var(--text-dim);font-style:normal;font-weight:400}.catch-chip.will-lap{box-shadow:inset 2px 0 0 var(--red);background:#e0332f38}.live-table tbody tr.row-group td{background:var(--followed-bg)}.live-table tbody tr.row-group:hover td{background:var(--followed-bg-hover)}.table-scroll{border:1px solid var(--border);background:var(--bg-elevated);border-radius:10px;overflow-x:auto}.live-table{border-collapse:collapse;white-space:nowrap;width:100%;font-size:14px}.live-table th,.live-table td{text-align:left;border-bottom:1px solid var(--border);padding:8px 12px}.live-table th{color:var(--text-dim);text-transform:uppercase;letter-spacing:.03em;cursor:grab;-webkit-user-select:none;user-select:none;font-size:12px;font-weight:600}.live-table th.dragging{opacity:.4}.live-table tbody tr{cursor:pointer}.live-table tbody tr:hover{background:var(--row-hover)}.col-pilote{background:var(--bg-elevated);z-index:1;position:sticky;left:0}.live-table tbody tr:hover .col-pilote{background:linear-gradient(var(--row-hover), var(--row-hover)), var(--bg-elevated)}.pilote-cell{align-items:baseline;gap:8px;display:flex}.pilote-pos{color:var(--text-dim);min-width:1.6em;font-weight:700;display:inline-block}.pilote-number{color:var(--text-dim);font-family:var(--mono);font-size:12px}.pilote-name{font-weight:600}.rank-arrow{margin-left:2px;font-size:11px}.rank-arrow.up{color:var(--green)}.rank-arrow.down{color:var(--red)}.cell-stack{flex-direction:column;line-height:1.25;display:flex}.cell-main{font-variant-numeric:tabular-nums}.cell-main.is-best,td.is-best{color:var(--purple);font-weight:700}.cell-sub{font-variant-numeric:tabular-nums;font-size:11px}.delta-red{color:var(--red)}.delta-green{color:var(--green)}.lap-in-progress{background:var(--row-hover)}.lap-in-progress td{font-style:italic}.progress-bar{gap:2px;width:72px;display:flex}.progress-segment{background:var(--border);border-radius:3px;flex:1;height:6px;overflow:hidden}.progress-fill{border-radius:3px;height:100%;transition:width .15s linear}.progress-fill--live{background:var(--blue)}.progress-fill--best{background:var(--accent)}.progress-fill--normal{background:var(--orange)}.progress-muted .progress-fill{background:var(--text-dim)!important}.rival-compare-bar{border:1px solid var(--border);background:var(--bg-elevated);border-radius:12px;flex-direction:column;gap:10px;margin-bottom:12px;padding:12px 16px;display:flex}.rival-compare-title{letter-spacing:.08em;text-transform:uppercase;color:var(--text-dim);font-size:11px;font-weight:700}.rival-compare-cards{flex-wrap:wrap;gap:10px;display:flex}.rival-card{background:var(--row-hover);border-radius:10px;flex-direction:column;flex:220px;gap:8px;min-width:200px;padding:10px 12px;display:flex}.rival-card-head{align-items:baseline;gap:8px;display:flex}.rival-card-number{font-family:var(--mono);color:var(--accent);font-weight:800}.rival-card-name{text-overflow:ellipsis;white-space:nowrap;flex:1;font-weight:600;overflow:hidden}.rival-card-pos{font-family:var(--mono);color:var(--text-dim);white-space:nowrap;font-size:12px;font-weight:700}.rival-card-time{font-family:var(--mono);font-variant-numeric:tabular-nums;align-items:baseline;gap:10px;display:flex}.rival-card-value{font-size:20px;font-weight:800}.rival-card-estimated{color:var(--text-dim);letter-spacing:.03em;font-size:13px;font-weight:700}.rival-card-estimated strong{color:var(--blue);font-size:16px}.rival-card-gap{color:var(--orange);font-size:15px;font-weight:700}.rival-card .progress-bar{width:100%}.rival-card .progress-segment{height:7px}.status-text{color:var(--text-dim);font-size:12px;font-style:italic}@keyframes flash-up{0%{background-color:#34d39959}to{background-color:#0000}}@keyframes flash-down{0%{background-color:#f8717159}to{background-color:#0000}}.live-table tbody tr.pos-up{animation:1.6s ease-out flash-up}.live-table tbody tr.pos-down{animation:1.6s ease-out flash-down}.live-table tbody tr.row-followed td{background:var(--followed-bg);box-shadow:inset 3px 0 0 var(--accent)}.live-table tbody tr.row-followed:hover td{background:var(--followed-bg-hover)}.live-table tbody tr.row-followed .col-pilote,.live-table tbody tr.row-group .col-pilote{background:linear-gradient(var(--followed-bg), var(--followed-bg)), var(--bg-elevated)}.live-table tbody tr.row-followed:hover .col-pilote,.live-table tbody tr.row-group:hover .col-pilote{background:linear-gradient(var(--followed-bg-hover), var(--followed-bg-hover)), var(--bg-elevated)}.column-settings{border:1px solid var(--border);background:var(--bg-elevated);border-radius:10px;flex-direction:column;gap:6px;min-width:220px;padding:12px;display:flex}.column-settings label{align-items:center;gap:8px;font-size:13px;display:flex}.column-settings-row{justify-content:space-between;align-items:center;gap:12px;display:flex}.column-settings-move{gap:4px;display:inline-flex}.column-settings-move .icon-button{padding:2px 8px;font-size:12px;line-height:1.4}.column-settings-move .icon-button:disabled{opacity:.3;cursor:not-allowed}.pilot-detail-overlay{z-index:20;background:#00000080;justify-content:flex-end;display:flex;position:fixed;inset:0}.pilot-detail-panel{background:var(--bg-elevated);border-left:1px solid var(--border);width:min(480px,100%);height:100%;padding:16px;overflow-y:auto}.pilot-detail-header{justify-content:space-between;align-items:center;margin-bottom:12px;display:flex}.pilot-detail-stats{grid-template-columns:repeat(3,1fr);gap:10px;margin-bottom:16px;display:grid}.stat-tile{border:1px solid var(--border);text-align:center;border-radius:8px;padding:10px}.stat-tile .label{color:var(--text-dim);text-transform:uppercase;font-size:11px}.stat-tile .value{font-variant-numeric:tabular-nums;font-size:18px;font-weight:700}.champ-switch{align-items:center;gap:8px;margin-bottom:10px;font-size:13px;display:flex}.champ-switch select{min-width:200px}.race-messages{border:1px solid var(--border);border-radius:8px;margin-bottom:12px;overflow:hidden}.race-messages-head{background:var(--bg-elevated);width:100%;color:var(--text);font:inherit;cursor:pointer;border:0;justify-content:space-between;align-items:center;padding:6px 12px;font-weight:600;display:flex}.race-messages-list{max-height:180px;margin:0;padding:0;list-style:none;overflow-y:auto}.race-messages-list li{border-top:1px solid var(--border);align-items:baseline;gap:8px;padding:4px 12px;font-size:13px;display:flex}.race-messages-list .rm-icon{flex:none}.race-messages-list .rm-ts{font-family:var(--mono);color:var(--text-dim);flex:none;font-size:11px}.race-messages-list .rm-text{color:var(--text)}.replay-keypoint.msg{color:var(--orange);height:14px;bottom:-5px}.replay-keypoint-bubble.msg{background:var(--orange);color:var(--accent-contrast);border-color:var(--orange);text-align:center;min-width:14px;font-weight:800}.live-layout{grid-template-columns:minmax(0,1fr) 320px;align-items:start;gap:16px;display:grid}.live-aside{position:sticky;top:12px}@media (width<=900px){.live-layout{display:block}.live-aside{margin-bottom:12px;position:static}}.replay-circuit-float{float:right;width:300px;margin:0 0 12px 16px}@media (width<=900px){.replay-circuit-float{float:none;width:100%;margin:0 0 12px}}.circuit-map-card{border:1px solid var(--border);background:var(--bg-elevated);border-radius:8px;line-height:0;position:relative;overflow:hidden}.circuit-map-card[role=button]{cursor:zoom-in}.circuit-map-card img{width:100%;height:auto;display:block}.circuit-map-svg{width:100%;height:100%;position:absolute;inset:0;overflow:visible}.circuit-dot circle{fill:var(--bg-elevated);stroke:var(--orange);stroke-width:3px}.circuit-dot text{fill:var(--text);font-size:22px;font-weight:700;font-family:var(--sans);paint-order:stroke;stroke:var(--bg-elevated);stroke-width:3px}.circuit-dot.is-clickable{cursor:pointer}.circuit-dot--group circle{stroke:var(--blue)}.circuit-dot--followed circle{fill:var(--accent);stroke:var(--accent);stroke-width:4px}.circuit-dot--followed text{fill:var(--accent-contrast)}.circuit-dot--muted{opacity:.3}.circuit-dot--leader circle{fill:var(--bg-elevated);stroke:#f5c518;stroke-width:4px}.circuit-dot--leader text{fill:#b8860b}.circuit-map-wrap{width:100%}.circuit-out-rail{flex-wrap:wrap;gap:4px;margin-top:6px;display:flex}.circuit-out-chip{border:1px solid var(--border);background:var(--bg-elevated);font-family:var(--mono);color:var(--text-dim);border-radius:4px;align-items:center;gap:3px;padding:1px 5px;font-size:11px;line-height:1.5;display:inline-flex}.circuit-out-chip b{color:var(--text);font-weight:700}.circuit-out-chip i{font-size:10px;font-style:normal}.circuit-out-chip.is-stalled{border-color:var(--red);color:var(--red)}.circuit-out-chip.is-stalled b{color:var(--red)}.circuit-out-chip.is-followed{border-color:var(--accent);box-shadow:inset 2px 0 0 var(--accent)}.circuit-out-chip.is-clickable{cursor:pointer}.circuit-modal-overlay{z-index:30;background:#0009;justify-content:center;align-items:center;padding:20px;display:flex;position:fixed;inset:0}.circuit-modal{background:var(--bg-elevated);border:1px solid var(--border);border-radius:10px;max-width:90vw;max-height:90vh;padding:12px;position:relative;overflow:auto}.circuit-modal .circuit-map-card{width:min(85vw,1100px)}.circuit-modal--wide{width:min(98vw,1600px);max-width:98vw;max-height:92vh}.circuit-modal--detached{text-align:center;width:auto}.circuit-modal-toolbar{justify-content:flex-end;gap:6px;margin-bottom:8px;display:flex}.circuit-modal-body{align-items:stretch;gap:12px;height:82vh;display:flex}.circuit-modal-map{flex-direction:column;flex:1;gap:10px;min-width:0;display:flex}.circuit-modal-map .circuit-map-card{flex:none}.circuit-modal--wide .circuit-modal-map .circuit-map-card,.circuit-popout .circuit-modal-map .circuit-map-card{width:100%}.circuit-modal-playback{margin-top:auto}.circuit-modal-playback .replay-clock{margin-left:auto}.circuit-modal-playback .replay-scrub-wrap{margin:26px 0 4px}.circuit-modal-side{flex-direction:column;flex:none;gap:10px;width:340px;min-height:0;display:flex}.circuit-followed{border:1px solid var(--accent);border-radius:8px;flex-direction:column;gap:6px;padding:8px 10px;display:flex}.circuit-followed .cf-head{align-items:baseline;gap:8px;display:flex}.circuit-followed .cf-num{font-family:var(--mono);font-size:18px;font-weight:800}.circuit-followed .cf-name{text-overflow:ellipsis;white-space:nowrap;flex:1;overflow:hidden}.circuit-followed .cf-pos{color:var(--text-dim);font-weight:700}.circuit-followed .cf-neighbours{font-family:var(--mono);font-variant-numeric:tabular-nums;gap:14px;font-size:13px;display:flex}.circuit-followed .cf-ahead{color:var(--green)}.circuit-followed .cf-behind{color:var(--red)}.circuit-followed .cf-neighbours em{color:var(--text-dim);margin-left:4px;font-style:normal}.circuit-followed .cf-group{letter-spacing:.04em;color:var(--accent);flex-wrap:wrap;align-items:baseline;gap:8px;font-weight:800;display:flex}.circuit-followed .cf-group.solo{color:var(--text-dim);font-size:13px}.circuit-followed .cf-members{font-family:var(--mono);color:var(--text-dim);font-size:12px;font-weight:400}.circuit-modal-list{border:1px solid var(--border);border-radius:8px;flex:1;min-height:120px;overflow:auto}.circuit-modal-list table{border-collapse:collapse;width:100%;font-size:12px}.circuit-modal-list th,.circuit-modal-list td{text-align:left;border-bottom:1px solid var(--border);white-space:nowrap;padding:4px 8px}.circuit-modal-list td.cml-name{text-overflow:ellipsis;max-width:130px;overflow:hidden}.circuit-modal-list th{background:var(--bg-elevated);color:var(--text-dim);text-transform:uppercase;font-size:10px;position:sticky;top:0}.circuit-modal-list td.mono{font-family:var(--mono);font-variant-numeric:tabular-nums}.circuit-modal-list tr.is-clickable{cursor:pointer}.circuit-modal-list tr.is-clickable:hover td{background:var(--row-hover)}.circuit-modal-list tr.is-leader td:first-child{font-weight:700;box-shadow:inset 3px 0 #f5c518}.circuit-modal-list tr.is-group td{background:var(--followed-bg)}.circuit-modal-list tr.is-followed td{background:var(--followed-bg-hover);box-shadow:inset 3px 0 0 var(--accent)}.circuit-modal-list tr.is-stalled td{color:var(--red)}.circuit-modal-list tr.cml-sep td{background:var(--row-hover);color:var(--text-dim);text-transform:uppercase;letter-spacing:.04em;text-align:center;padding:3px 8px;font-size:10px;font-weight:700}.circuit-popout{background:var(--bg);min-height:100vh;color:var(--text);font-family:var(--sans);padding:12px}.circuit-popout .circuit-modal-side{max-height:none}.circuit-popout .circuit-modal-list{max-height:60vh}@media (width<=820px){.circuit-modal-body{flex-direction:column}.circuit-modal-side{width:100%;max-height:none}.circuit-modal-list{max-height:40vh}}.circuit-modal-close{z-index:1;position:absolute;top:8px;right:8px}.circuit-fields{border-top:1px solid var(--border);flex-direction:column;gap:8px;padding:12px 0;display:flex}.circuit-field-row{align-items:center;gap:12px;display:flex}.circuit-field-thumb{border:1px solid var(--border);background:var(--bg);border-radius:4px;flex:none;justify-content:center;align-items:center;width:96px;height:54px;display:flex;overflow:hidden}.circuit-field-thumb img{max-width:100%;max-height:100%}.circuit-field-empty{color:var(--text-dim)}.circuit-field-controls{flex-direction:column;gap:4px;display:flex}.circuit-calibrator{width:min(92vw,1150px)}.circuit-calibrator-head{flex-direction:column;gap:4px;margin-bottom:10px;display:flex}.circuit-calibrator-canvas{background:var(--bg);border:1px solid var(--border);border-radius:6px;width:100%;line-height:0;position:relative;overflow:hidden}.circuit-calibrator-canvas img{object-fit:contain;width:100%;height:100%;display:block}.circuit-calibrator-svg{cursor:crosshair;width:100%;height:100%;position:absolute;inset:0}.circuit-calibrator-line{fill:none;stroke:var(--accent);stroke-width:3px;opacity:.85}.circuit-calibrator-handle{fill:var(--bg-elevated);stroke:var(--accent);stroke-width:2px;cursor:grab}.circuit-calibrator-handle.is-start{fill:var(--green);stroke:var(--green)}.circuit-calibrator-svg.mode-anchors{cursor:pointer}.circuit-calibrator-anchor circle{fill:var(--orange);stroke:var(--bg-elevated);stroke-width:2px}.circuit-calibrator-anchor text{fill:var(--accent-contrast);font-size:11px;font-weight:700;font-family:var(--sans)}.circuit-calibrator-actions{flex-wrap:wrap;margin-top:10px}.admin-form{background:var(--bg-elevated);border:1px solid var(--border);border-radius:10px;flex-direction:column;gap:14px;max-width:480px;padding:20px;display:flex}.admin-form label{color:var(--text-dim);flex-direction:column;gap:4px;font-size:13px;display:flex}select{border:1px solid var(--border);background:var(--bg-elevated);color:var(--text);border-radius:8px;min-width:240px;padding:8px 10px;font-size:14px}.admin-form input[type=text],.admin-form input[type=number]{border:1px solid var(--border);background:var(--bg);color:var(--text);border-radius:8px;padding:8px 10px;font-size:14px}.toggle-row{flex-direction:row;align-items:center;gap:10px;display:flex}.primary-button{background:var(--accent);color:var(--accent-contrast);cursor:pointer;border:none;border-radius:8px;padding:10px 16px;font-weight:600}.primary-button:disabled{opacity:.5;cursor:not-allowed}.form-error{color:var(--red);font-size:13px}.form-hint{color:var(--text-dim);font-size:12px}.admin-page section{margin-bottom:28px}.admin-page section>h3{margin-bottom:10px}.status-card{border:1px solid var(--border);background:var(--bg-elevated);border-radius:10px;flex-direction:column;gap:6px;margin-top:10px;padding:12px 14px;display:flex}.epreuve-card{border:1px solid var(--border);background:var(--bg-elevated);border-radius:10px;flex-direction:column;gap:8px;margin-bottom:10px;padding:14px;display:flex}.epreuve-card-head{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.epreuve-actions{flex-wrap:wrap;gap:6px}.icon-button.danger{border-color:var(--red);color:var(--red)}.epreuve-form{flex-direction:column;gap:12px;margin-top:8px;display:flex}.epreuve-form label{color:var(--text-dim);flex-direction:column;gap:4px;font-size:13px;display:flex}.epreuve-form input[type=text],.epreuve-form input[type=number],.epreuve-form input[type=time],.epreuve-form input[type=date],.epreuve-form input[type=datetime-local]{border:1px solid var(--border);background:var(--bg);color:var(--text);border-radius:8px;padding:8px 10px;font-size:14px}.epreuve-form-row{flex-wrap:wrap;gap:12px;display:flex}.epreuve-form-row>label{flex:160px}.epreuve-form-inline{align-items:center;gap:8px;display:flex}@media (width<=640px){.pilot-detail-panel{width:100%}}
