:root{--bg:#f7f7f5;--fg:#1b1b1b;--muted:#6b6b6b;--card:#fff;--border:#e3e3e0;--accent:#fc4c02;--danger:#c62828;--ok:#2e7d32;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}@media (prefers-color-scheme:dark){:root{--bg:#121212;--fg:#eee;--muted:#9a9a9a;--card:#1d1d1d;--border:#2e2e2e;--danger:#ef5350;--ok:#66bb6a;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}}*{box-sizing:border-box}body{background:var(--bg);color:var(--fg);margin:0;font-family:system-ui,sans-serif}main{max-width:960px;margin:0 auto;padding:16px}h1{margin:8px 0}.card{background:var(--card);border:1px solid var(--border);border-radius:12px;margin-bottom:16px;padding:16px}.btn{border:1px solid var(--border);background:var(--card);color:var(--fg);cursor:pointer;font:inherit;border-radius:8px;padding:10px 16px;text-decoration:none;display:inline-block}.btn-primary{background:var(--accent);border-color:var(--accent);color:#fff}.btn:disabled{opacity:.5;cursor:not-allowed}.error{color:var(--danger)}.muted{color:var(--muted)}.activity-list{max-height:360px;margin:0 0 12px;padding:0;list-style:none;overflow:auto}.activity-list label{cursor:pointer;border-radius:8px;gap:8px;padding:8px;display:flex}.activity-list label:hover{background:var(--bg)}.tabs{flex-wrap:wrap;gap:8px;margin-bottom:12px;display:flex}.tabs [aria-selected=true]{border-color:var(--accent);color:var(--accent)}.field{flex-direction:column;gap:4px;margin-bottom:12px;display:flex}.field input[type=text]{border:1px solid var(--border);background:var(--bg);color:var(--fg);font:inherit;border-radius:6px;padding:8px}.consent{align-items:flex-start;gap:8px;margin-bottom:12px;display:flex}.map{background:var(--border);border-radius:12px;width:100%;height:420px;overflow:hidden}.preview-map{height:240px;margin-bottom:16px}.controls{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.controls+.controls{margin-top:8px}.controls input[type=range]{flex:200px}.table-wrap{overflow-x:auto}.live{border-collapse:collapse;font-variant-numeric:tabular-nums;width:100%}.live th,.live td{text-align:right;border-bottom:1px solid var(--border);white-space:nowrap;padding:6px}.live th:first-child,.live td:first-child,.live th:nth-child(2),.live td:nth-child(2){text-align:left}.swatch{border-radius:50%;width:10px;height:10px;margin-right:6px;display:inline-block}.ahead{color:var(--ok)}.behind{color:var(--danger)}code{overflow-wrap:anywhere}footer{text-align:center;color:var(--muted);padding:24px 16px;font-size:14px}main.replay{max-width:1100px}.replay-header{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:12px;display:flex}.replay-header h1{margin:0 0 4px}.replay-header p{margin:0}.chips{flex-wrap:wrap;align-items:center;gap:6px;margin-bottom:8px;display:flex}.chip{border:1px solid var(--border);background:var(--card);color:var(--fg);font:inherit;cursor:pointer;border-radius:999px;align-items:center;padding:6px 12px;font-size:14px;display:inline-flex}.chip[aria-pressed=true]{border-color:var(--accent);box-shadow:inset 0 0 0 1px var(--accent)}.chip[aria-pressed=false]{opacity:.6}.chip-ghost{border-style:dashed}.map-wrap{margin-bottom:8px;position:relative}.map-wrap .map{height:min(62vh,560px)}.map-fallback{justify-content:center;align-items:center;display:flex}.map-bar{background:color-mix(in srgb, var(--card) 88%, transparent);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);border:1px solid var(--border);border-radius:12px;align-items:center;gap:12px;padding:8px 12px;display:flex;position:absolute;bottom:12px;left:12px;right:12px}.map-bar input[type=range]{accent-color:var(--accent);flex:1}.play-btn{background:var(--accent);color:#fff;cursor:pointer;border:none;border-radius:50%;flex:none;width:44px;height:44px;font-size:16px}.clock{font-variant-numeric:tabular-nums;white-space:nowrap;font-weight:600}.below-map{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px 16px;margin-bottom:16px;display:flex}.settings{flex-wrap:wrap;gap:12px;display:flex}.settings label{color:var(--muted);align-items:center;gap:6px;font-size:14px;display:flex}.settings select{font:inherit;color:var(--fg);background:var(--card);border:1px solid var(--border);border-radius:6px;padding:4px 6px}.intensity-legend{align-items:center;gap:8px;font-size:13px;display:flex}.intensity-bar{background:linear-gradient(90deg,#3b82f6,#22c55e 40%,#facc15 70%,#ef4444);border-radius:4px;width:90px;height:8px}.live .rank{color:var(--muted);width:2em}.live tr.is-ref{background:color-mix(in srgb, var(--accent) 7%, transparent)}.name-btn{font:inherit;color:inherit;cursor:pointer;background:0 0;border:none;align-items:center;padding:0;display:inline-flex}.name-btn:hover{text-decoration:underline}.ref-star{color:var(--accent)}.badge{background:var(--bg);border-radius:6px;align-items:baseline;gap:6px;padding:2px 8px;font-weight:600;display:inline-flex}.badge.ahead{background:color-mix(in srgb, var(--ok) 15%, transparent)}.badge.behind{background:color-mix(in srgb, var(--danger) 15%, transparent)}.badge-sub{opacity:.8;font-size:12px;font-weight:400}.charts summary{cursor:pointer;margin-bottom:8px;font-weight:600}.charts .card{border:none;padding:0}@media (max-width:640px){.map-wrap .map{height:55vh}.live thead{display:none}.live,.live tbody,.live tr,.live td{width:100%;display:block}.live tr{border-bottom:1px solid var(--border);grid-template-columns:1fr 1fr;gap:4px 12px;padding:10px 0;display:grid}.live td{text-align:left;white-space:normal;border:none;padding:0}.live td:before{content:attr(data-label);color:var(--muted);font-size:11px;display:block}.live td.rank{display:none}.live td[data-label=Participant],.live td[data-label=Écart]{grid-column:span 1}}.session-list{margin:0;padding:0;list-style:none}.session-list a{color:inherit;border-radius:8px;flex-direction:column;gap:2px;padding:10px 8px;text-decoration:none;display:flex}.session-list a:hover{background:var(--bg)}.kick-btn{color:var(--muted);cursor:pointer;font:inherit;background:0 0;border:none;border-radius:4px;margin-left:6px;padding:2px 6px;font-size:13px}.kick-btn:hover{color:var(--danger);background:color-mix(in srgb, var(--danger) 10%, transparent)}
