:root{color-scheme:dark;--bg:#101512;--panel:#1b241d;--line:#344337;--lime:#d6f77b;--muted:#a1aea4;--ink:#eef3ee}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink);font:14px system-ui,sans-serif}header{height:72px;display:flex;align-items:center;gap:30px;padding:0 28px;border-bottom:1px solid var(--line)}a{color:inherit}.brand{font-size:24px;font-weight:850;letter-spacing:-1px;text-decoration:none}.brand b{color:var(--lime)}.caption{color:var(--muted);font-size:10px;letter-spacing:2px}.admin{margin-left:auto;font-size:12px;text-decoration:none;color:var(--muted)}.layout{display:grid;grid-template-columns:350px 1fr;height:calc(100dvh - 72px)}aside{border-right:1px solid var(--line);display:flex;flex-direction:column;min-height:0}.controls{padding:24px}h1{font-size:25px;line-height:1.25;margin:20px 0 10px;overflow-wrap:anywhere}label{display:block;font-size:11px;color:var(--muted);margin:12px 0 7px}input,select,button{font:inherit;border:1px solid var(--line);border-radius:9px;padding:11px 13px;background:var(--panel);color:var(--ink);width:100%}button{cursor:pointer}button:hover,button:focus-visible{border-color:var(--lime)}#connection{font-size:12px;color:var(--muted);min-height:32px;line-height:1.5}.stats{display:flex;gap:32px;padding:15px 0 12px}.stats strong{font-size:25px;font-weight:650;display:block;color:var(--lime)}.stats span{display:block;font-size:10px;color:var(--muted);margin-top:4px}#fit{margin-top:14px;background:var(--lime);color:#182315;font-weight:650}.list{flex:1;min-height:0;overflow:auto;padding:0 14px}.rider{display:flex;text-align:left;gap:13px;border:0;border-bottom:1px solid var(--line);border-radius:0;padding:15px 10px;background:transparent;align-items:center}.rider.selected{background:#2b372e;border-radius:10px}.bib{font-size:21px;color:var(--lime);font-weight:750;min-width:42px}.rider .name{font-weight:600;display:block;overflow-wrap:anywhere}.meta{display:block;font-size:11px;color:var(--muted);margin-top:5px}.dot{width:8px;height:8px;border-radius:50%;background:#748178;margin-left:auto;flex-shrink:0}.dot.live{background:var(--lime)}.empty{padding:16px;color:var(--muted);line-height:1.7}.footnote{font-size:10px;color:var(--muted);line-height:1.6;padding:12px 24px;border-top:1px solid var(--line);margin:0}.mapwrap{position:relative;min-height:0}#map{height:100%;background:#23332b}.mapnotice{position:absolute;left:20px;top:20px;z-index:500;border:1px solid #d4ddce;border-radius:10px;padding:12px 16px;background:#f3f5ec;color:#28352b;font-size:12px;max-width:calc(100% - 80px);box-shadow:0 5px 25px #0002}.detail{position:absolute;left:20px;bottom:22px;z-index:500;background:var(--bg);border:1px solid var(--line);border-radius:14px;padding:19px;min-width:230px;max-width:calc(100% - 40px);box-shadow:0 5px 25px #0003}.detail strong{font-size:19px;display:block}.detail p{font-size:12px;color:var(--muted);line-height:1.6;margin:7px 0}.marker{border-radius:24px;background:var(--lime);border:2px solid #172318;color:#182315;display:flex;align-items:center;justify-content:center;font-weight:800;font-size:13px;box-shadow:0 2px 7px #0005}.marker.stale{background:#aeb8b1;color:#27342c}.marker.selected{border:3px solid white;box-shadow:0 0 0 3px #182315}.leaflet-container{font-family:system-ui,sans-serif}.leaflet-control-attribution{font-size:10px!important}[hidden]{display:none!important}@media(max-width:700px){header{height:60px;padding:0 16px;gap:8px}.brand{font-size:20px}.caption{display:none}.layout{display:flex;flex-direction:column;height:auto}.mapwrap{order:-1;height:52dvh;min-height:320px}aside{height:650px;border:0}.controls{padding:18px 20px}h1{font-size:22px;margin-top:14px}.stats{padding-top:6px;gap:38px}.mapnotice{top:12px;left:12px;font-size:11px;padding:9px 12px}.detail{bottom:20px;left:12px;padding:13px;min-width:210px}.detail strong{font-size:16px}.leaflet-control-zoom{margin-top:65px!important}}

#routeLegend{font-size:12px;margin:12px 0}#routeLegend p{display:flex;align-items:center;gap:8px;margin:7px 0}.routeSwatch{display:inline-block;width:22px;height:4px;border-radius:2px}button:disabled{opacity:.5;cursor:default}
