.ro-fig .ro-scaler{position:relative;overflow:hidden;margin:0 auto;width:100%;max-width:960px;aspect-ratio:960 / 560}.ro-canvas{position:absolute;top:0;left:0;transform-origin:0 0}.ro{--ro-4: #257E8A;--ro-6: #2E5E98;--ro-7: #C47F17;width:960px;height:560px;background:#fff;border-radius:16px;border:1px solid var(--ag-line);box-shadow:0 30px 60px -30px #0e163359;display:grid;grid-template-columns:600px minmax(0,1fr);gap:20px;padding:21px}.ro .ro-c4{--c: var(--ro-4)}.ro .ro-c6{--c: var(--ro-6)}.ro .ro-c7{--c: var(--ro-7)}.ro-map{position:relative;width:600px;height:516px}.ro-map-in{position:absolute;left:0;top:0;width:600px;height:516px;transform-origin:0 0}.ro-map svg{display:block}.ro-land{fill:#f3f0e7}.ro-park{fill:#d6e4d9;stroke:#bcd0c2;stroke-width:1}.ro-tree{fill:#b7cdbe;stroke:#a9c2b1;stroke-width:.8}.ro-park-l{font-size:8px;font-style:italic;font-weight:700;fill:#4f8466}.ro-river-edge{fill:none;stroke:#a8c9e0;stroke-width:30;stroke-linecap:round;stroke-linejoin:round}.ro-river{fill:none;stroke:#c6deef;stroke-width:26;stroke-linecap:round;stroke-linejoin:round}.ro-water{font-size:9px;font-style:italic;font-weight:700;fill:#5a88ae;letter-spacing:.04em}.ro-houses rect{fill:#e3dccd;stroke:#d2c8b6;stroke-width:.6}.ro-rail{fill:none;stroke:#7b808c;stroke-width:3.4;stroke-linejoin:round}.ro-rail-dash{fill:none;stroke:#fff;stroke-width:1.4;stroke-dasharray:5 5}.ro-case,.ro-fill{fill:none;stroke-linecap:round;stroke-linejoin:round}.ro-case.ro-km{stroke:#d6cdbb;stroke-width:7}.ro-fill.ro-km{stroke:#fff;stroke-width:5}.ro-case.ro-kb{stroke:#d9c29a;stroke-width:10}.ro-fill.ro-kb{stroke:#fdf0cf;stroke-width:7.5}.ro-case.ro-ka{stroke:#d7a877;stroke-width:13}.ro-fill.ro-ka{stroke:#f8d49e;stroke-width:10}.ro-bridge{fill:none;stroke:#8e8676;stroke-width:10;stroke-linecap:butt}.ro-rb-case{fill:#d7a877}.ro-rb{fill:#f8d49e}.ro-rb-in{fill:#cfddd3;stroke:#b6cf9c;stroke-width:.8}.ro-street{font-size:6.6px;font-weight:700;fill:#7a6f5c;letter-spacing:.03em;dominant-baseline:central}.ro-town{font-size:10px;font-weight:800;fill:#5f584b;letter-spacing:.18em;paint-order:stroke;stroke:#f3f0e7;stroke-width:3px}.ro-town-s{font-size:8.5px}.ro-route path{fill:none;stroke:var(--c);stroke-width:5;stroke-linecap:round;stroke-linejoin:round}.ro-route .ro-old{opacity:0;stroke-dasharray:2 7;stroke-width:4;transition:opacity .5s}.ro-cand{fill:none;stroke:var(--c);stroke-width:3;stroke-dasharray:3 6;stroke-linecap:round;opacity:0;transition:opacity .4s}.ro-place{position:absolute;width:0;height:0}.ro-place i{position:absolute;left:-13px;top:-13px;width:26px;height:26px;border-radius:8px;background:var(--ag-forest);color:#fff;display:grid;place-items:center;box-shadow:0 4px 10px -3px #0e163380}.ro-place .ag-ico{width:15px;height:15px}.ro-lbl{position:absolute;font-size:11px;font-weight:800;color:var(--ag-forest);white-space:nowrap;text-shadow:0 0 3px #FFFFFF,0 0 3px #FFFFFF,0 0 2px #FFFFFF}.ro-req{position:absolute;width:18px;height:18px;margin:-9px 0 0 -9px;border-radius:50%;background:#fff;border:4px solid var(--c);box-shadow:0 2px 6px #0e16334d;z-index:2;transition:opacity .3s,transform .4s cubic-bezier(.22,1.5,.36,1)}.ro-req-l{position:absolute;font-size:10.5px;font-weight:800;background:#fff;padding:3px 8px;border-radius:999px;white-space:nowrap;box-shadow:0 3px 8px -3px #0e16334d;z-index:3;transition:opacity .3s}.ro-chip{position:absolute;font-size:10px;font-weight:800;color:var(--c);background:#fff;border:1.5px solid var(--c);padding:2px 7px;border-radius:999px;white-space:nowrap;z-index:3;opacity:0;transition:opacity .3s,transform .3s}.ro-chip.ro-late{color:#6e4508;border-color:#e2a59c}.ro-bus{position:absolute;left:-14px;top:-14px;width:28px;height:28px;border-radius:50%;background:var(--c);color:#fff;border:2.5px solid #FFFFFF;display:grid;place-items:center;font-size:12px;font-weight:800;box-shadow:0 4px 10px -3px #0e163380;z-index:4}.ro-key{position:absolute;left:14px;top:12px;display:flex;gap:6px}.ro-key span{display:flex;align-items:center;gap:5px;font-size:10.5px;font-weight:800;background:#fff;padding:3px 9px;border-radius:999px;box-shadow:0 3px 8px -4px #0e16334d}.ro-key i{width:12px;height:4px;border-radius:2px;background:var(--c)}.ro-side{display:flex;flex-direction:column;gap:12px;min-width:0;padding-top:2px}.ro-head{display:flex;justify-content:space-between;align-items:flex-start}.ro-h{display:block;font-size:19px;font-weight:800;letter-spacing:-.02em}.ro-sub{display:block;font-size:11.5px;color:var(--ag-muted)}.ro-live{display:inline-flex;align-items:center;gap:6px;font-size:11px;font-weight:700;color:var(--ag-mint-2);background:var(--ag-mint-soft);padding:4px 10px;border-radius:999px}.ro-live i{width:7px;height:7px;border-radius:50%;background:var(--ag-mint);animation:ag-pulse 2s ease-out infinite}.ro-kpis{display:grid;grid-template-columns:1fr 1fr;gap:8px}.ro-kpi{background:var(--ag-paper);border-radius:12px;padding:9px 11px}.ro-kpi>span{display:block;font-size:10px;font-weight:700;color:var(--ag-muted)}.ro-kpi b{font-size:21px;font-weight:300;letter-spacing:-.02em;font-variant-numeric:tabular-nums}.ro-kpi b.ag-bump{color:var(--ag-mint-2)}.ro-kpi b{transition:color .3s}.ro-sec{font-size:10.5px;font-weight:800;color:var(--ag-muted);letter-spacing:.06em;text-transform:uppercase;margin-top:2px}.ro-dec{border:1px solid var(--ag-line);border-radius:12px;padding:10px 12px;display:grid;gap:2px;transition:opacity .4s,transform .5s cubic-bezier(.22,1,.36,1),background .6s}.ro-dec b{font-size:12px;font-weight:800}.ro-dec small{font-size:10.5px;color:var(--ag-muted);line-height:1.45}.ro-tag{justify-self:start;font-size:9.5px;font-weight:800;color:#fff;background:var(--c);padding:1px 8px;border-radius:999px;margin-bottom:3px}.ro-note{margin-top:auto;display:flex;align-items:center;gap:8px;font-size:11px;font-weight:700;color:var(--ag-mint-2)}.ro-note .ag-ico{width:15px;height:15px;stroke-width:2.6}.ro.ro-armed .ro-route .ro-new{stroke-dashoffset:0}.ro.ro-armed .ro-req,.ro.ro-armed .ro-req-l{opacity:0;transform:scale(.4)}.ro.ro-armed .ro-req-l{transform:none}.ro.ro-armed.q1 .ro-q1,.ro.ro-armed.q2 .ro-q2{opacity:1;transform:none}.ro.ro-armed.q1 .ro-req.ro-q1:not(.ro-set),.ro.ro-armed.q2 .ro-req.ro-q2:not(.ro-set){animation:ag-pulse 1.4s ease-out infinite}.ro.ro-armed .ro-cand.ro-show,.ro.ro-armed .ro-chip.ro-show{opacity:1}.ro.ro-armed .ro-cand.ro-gone,.ro.ro-armed .ro-chip.ro-gone{opacity:0;transition-delay:0s}.ro.ro-armed .ro-chip.ro-win.ro-show{transform:scale(1.08)}.ro.ro-armed .ro-route.ro-redraw .ro-old{opacity:.55}.ro.ro-armed .ro-dec{opacity:0;transform:translateY(-8px)}.ro.ro-armed.p1 .ro-d1,.ro.ro-armed.p2 .ro-d2{opacity:1;transform:none;background:var(--ag-mint-soft)}.ro.ro-armed.p1.p2 .ro-d1{background:transparent}.ro.ro-armed.p2 .ro-d2{background:var(--ag-mint-soft)}.ro:not(.ro-armed) .ro-req-l,.ro.ro-armed.p1 .ro-req-l.ro-q1,.ro.ro-armed.p2 .ro-req-l.ro-q2{opacity:.85}.ro.ro-narrow{width:380px;height:auto;grid-template-columns:minmax(0,1fr);gap:16px;padding:12px}.ro.ro-narrow .ro-map{width:356px;height:306px}.ro.ro-narrow .ro-map-in{transform:scale(.5933)}.ro.ro-narrow .ro-lbl{font-size:16px}.ro.ro-narrow .ro-req-l{font-size:13px}.ro.ro-narrow .ro-chip{font-size:15px;padding:3px 9px}.ro.ro-narrow .ro-key span{font-size:15px}.ro.ro-narrow .ro-bus{width:38px;height:38px;left:-19px;top:-19px;font-size:16px}.ro.ro-narrow .ro-side{padding:0 6px 6px}.ro.ro-narrow .ro-note{margin-top:2px}
