:root{color:#1c2430;font:14px/1.4 Segoe UI,system-ui,sans-serif;background:#d5dbe3}*{box-sizing:border-box}[hidden]{display:none!important}html,body,#map{height:100%;margin:0}button,input,select{font:inherit}#map{position:relative}.map-fallback{display:grid;place-items:center;height:100%;padding:24px;text-align:center;background:#e7edf4}#menu,#backdrop{display:none}#panel{position:absolute;z-index:2;top:12px;left:12px;bottom:88px;width:340px;display:flex;flex-direction:column;gap:10px;padding:14px;overflow:auto;background:#fff;border-radius:14px;box-shadow:0 10px 30px #1420332e}.panel-head,.list-tools,.mode,.quick,#player{display:flex;align-items:center;gap:8px}.panel-head h1{margin:0;font-size:18px;flex:1}#close{display:none}#status{margin:0;padding:8px 10px;border-radius:8px;background:#fff4e8;color:#9a3412}.search,.period label,.detail,.tail,.login label{display:grid;gap:4px}.search input,.period input,.period select,.login input,#tail,#detail{width:100%;padding:7px 8px;border:1px solid #d0d7e2;border-radius:8px;background:#fff}.groups{display:flex;flex-wrap:wrap;gap:6px}.groups button,.quick button,.eye,#logout,#close,#menu{border:1px solid #d0d7e2;background:#f4f7fb;border-radius:999px;padding:4px 10px;cursor:pointer}.quick{flex-wrap:wrap}.quick button.active,#speeds button.active{background:#1d4ed8;color:#fff;border-color:#1d4ed8}.list-tools{justify-content:space-between;color:#5c6b80}.objects,#legend{list-style:none;margin:0;padding:0}.objects{overflow:auto;min-height:80px;max-height:28vh;border-top:1px solid #e6ebf2}.objects li label{display:flex;gap:8px;align-items:baseline;padding:6px 2px;cursor:pointer}.objects small{color:#5c6b80}.build,.login button,#play{border:0;border-radius:10px;background:#1d4ed8;color:#fff;padding:10px 12px;cursor:pointer}.build:disabled{opacity:.7;cursor:wait}#legend-wrap{display:grid;gap:8px}.speed-scale{height:10px;border-radius:999px;background:linear-gradient(90deg,#1a9e1a,#9e9e1a,#9e1a1a)}#legend li{display:grid;grid-template-columns:18px 1fr auto;gap:8px;align-items:center;padding:6px 0;border-top:1px solid #eef2f6}#legend li.dim{opacity:.45}#legend li.bad strong{color:#b42318}#legend li.empty span{color:#5c6b80}#legend strong,#legend span{display:block}#legend span{color:#5c6b80;font-size:12px}.swatch{width:18px;height:18px;padding:0;border:0;border-radius:50%;cursor:pointer}.swatch-speed{background:linear-gradient(90deg,#1a9e1a,#9e1a1a)}.eye{padding:2px 8px}#player{position:absolute;z-index:2;left:364px;right:12px;bottom:12px;padding:10px 12px;background:#fff;border-radius:14px;box-shadow:0 8px 24px #14203329}#timeline{flex:1}#play-clock{min-width:118px;font-variant-numeric:tabular-nums}.tail{min-width:110px}.tip{position:fixed;z-index:5;max-width:280px;padding:8px 10px;background:#172033;color:#fff;border-radius:8px;pointer-events:none}.login{position:absolute;z-index:6;top:50%;left:50%;transform:translate(-50%,-50%);display:grid;gap:10px;width:min(360px,calc(100% - 32px));padding:18px;background:#fff;border-radius:14px;box-shadow:0 16px 40px #1420333d}.login h2{margin:0}#login-error{margin:0;color:#b42318}.pin{position:relative;border:2px solid #fff;box-shadow:0 1px 4px #00000059}.pin-start{width:14px;height:14px;border-radius:50%;background:#157f3d;transform:translate(-7px,-7px)}.pin-finish{width:12px;height:14px;background:#b42318;clip-path:polygon(0 0,100% 0,100% 70%,60% 70%,60% 100%,0 70%);transform:translate(-2px,-14px)}.pin-stop{width:12px;height:12px;border-radius:50%;background:#b54708;transform:translate(-6px,-6px)}.bubble{display:none;position:absolute;left:16px;top:-8px;width:max-content;max-width:220px;padding:4px 8px;background:#172033;color:#fff;border-radius:6px;font-size:12px}.pin-stop:hover .bubble{display:block}.player-pin{position:relative;transform:translate(-8px,-8px)}.player-dot{display:block;width:16px;height:16px;border:2px solid #fff;border-radius:50%;box-shadow:0 1px 4px #0006}.player-label{position:absolute;left:20px;top:-2px;padding:1px 6px;background:#fff;border-radius:6px;white-space:nowrap;box-shadow:0 1px 3px #0003}@media(max-width:768px){#menu,#close{display:inline-flex}#backdrop{display:block;position:absolute;top:0;right:0;bottom:0;left:0;z-index:2;background:#0f172459;opacity:0;pointer-events:none}#panel.open~#backdrop,#backdrop:has(~#panel.open){opacity:1;pointer-events:auto}#panel{top:0;left:0;bottom:0;width:min(100%,360px);border-radius:0;transform:translate(-105%);transition:transform .2s ease}#panel.open{transform:none;z-index:4}body:has(#panel.open) #backdrop{opacity:1;pointer-events:auto;z-index:3}#player{left:8px;right:8px;flex-wrap:wrap}}
