:root{--ink:#10242d;--mute:#5d7079;--line:#d9e1e4;--bg:#eef2f3;--panel:#fff;--ok:#1f8a4c;--warn:#b86e00;--bad:#c0392b}
*{box-sizing:border-box}html,body{height:100%;margin:0}
body{font:14px/1.4 system-ui,"Segoe UI",sans-serif;color:var(--ink);background:var(--bg);display:grid;grid-template-columns:380px 1fr}
aside{background:var(--panel);display:flex;flex-direction:column;min-height:0;border-right:1px solid var(--line)}
header{padding:14px 16px 10px}h1{font-size:18px;margin:0 0 2px}
#st{font-size:12px;color:var(--mute)}#st.err{color:var(--bad)}
#q{margin:0 16px 8px;padding:8px 10px;border:1px solid var(--line);border-radius:8px;font:inherit}
#chips{display:flex;flex-wrap:wrap;gap:6px;padding:0 16px 10px;max-height:116px;overflow:auto}
.chip{border:2px solid var(--c);color:var(--c);background:#fff;border-radius:999px;padding:2px 10px;font-weight:700;cursor:pointer}
.chip.on{background:var(--c);color:#fff}
.chip:focus-visible,.card:focus-visible{outline:3px solid #1a73e8;outline-offset:2px}
#list{overflow:auto;flex:1;border-top:1px solid var(--line)}
.card{display:grid;grid-template-columns:auto 1fr auto;gap:2px 10px;padding:10px 16px;border-bottom:1px solid var(--line);cursor:pointer}
.card:hover{background:#f6f9fa}
.badge{grid-row:span 2;align-self:center;background:var(--c);color:#fff;font-weight:800;border-radius:8px;padding:6px 9px;min-width:44px;text-align:center}
.card b{font-weight:650}.sub{color:var(--mute);font-size:12px}.num{font-variant-numeric:tabular-nums}
.big{font-size:17px;font-weight:700;text-align:right}
.ok{color:var(--ok)}.warn{color:var(--warn)}.bad{color:var(--bad)}
#map{height:100%}
.bus{position:absolute;transform:translate(-50%,-50%);background:var(--c);color:#fff;font:800 12px/1 system-ui;padding:5px 8px;border-radius:10px 10px 10px 2px;box-shadow:0 0 0 2px #fff,0 2px 6px #0006;white-space:nowrap}
.bus small{font-weight:500;opacity:.85}
.bus-m{transition:transform 9.5s linear}.leaflet-zoom-anim .bus-m{transition:none!important}

.stl{font:600 11px system-ui;padding:2px 6px}
.pop{min-width:230px}.pop h3{margin:0 0 6px;font-size:15px}
.pop table{border-collapse:collapse;width:100%}.pop td{padding:2px 0;vertical-align:top}.pop td:first-child{color:var(--mute);padding-right:10px;white-space:nowrap}
.bar{height:5px;background:#e3e9eb;border-radius:3px;margin:8px 0 2px}.bar i{display:block;height:100%;background:var(--c);border-radius:3px}
.arr{display:grid;grid-template-columns:auto 1fr auto;gap:2px 8px;align-items:center;margin:4px 0}
.arr .badge{grid-row:auto;padding:2px 7px;min-width:36px;font-size:12px}
.empty{padding:22px 16px;color:var(--mute)}
@media(max-width:800px){body{grid-template-columns:1fr;grid-template-rows:46vh 1fr}aside{order:2;border:0}#map{order:1}}
