:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light dark;--bg:var(--lightningcss-light,#f6f4ee)var(--lightningcss-dark,#15171a);--fg:var(--lightningcss-light,#1c1c1c)var(--lightningcss-dark,#ececec);--muted:var(--lightningcss-light,#5c5c58)var(--lightningcss-dark,#a8a8a3);--panel-bg:var(--lightningcss-light,#fff)var(--lightningcss-dark,#1d2024);--border:var(--lightningcss-light,#d9d6cc)var(--lightningcss-dark,#3a3e44);--control-border:var(--lightningcss-light,#8a877d)var(--lightningcss-dark,#73787f);--surface:var(--lightningcss-light,#efece4)var(--lightningcss-dark,#262a2f);--accent:var(--lightningcss-light,#1c1c1c)var(--lightningcss-dark,#ececec);--focus:var(--lightningcss-light,#0b57d0)var(--lightningcss-dark,#8ab4f8);--danger:var(--lightningcss-light,#a3221b)var(--lightningcss-dark,#ff8a80);--map-bg:var(--lightningcss-light,#f6f4ee)var(--lightningcss-dark,#15171a);--station-fill:var(--lightningcss-light,#fff)var(--lightningcss-dark,#15171a);--station-stroke:var(--lightningcss-light,#1c1c1c)var(--lightningcss-dark,#ececec);--label:var(--lightningcss-light,#1c1c1c)var(--lightningcss-dark,#ececec);--label-halo:var(--lightningcss-light,#f6f4ee)var(--lightningcss-dark,#15171a);--chip-bg:var(--lightningcss-light,#1c1c1c)var(--lightningcss-dark,#ececec);--chip-fg:var(--lightningcss-light,#fff)var(--lightningcss-dark,#15171a);--walk:var(--lightningcss-light,#6b7280)var(--lightningcss-dark,#8b929c);--shadow:var(--lightningcss-light,#00000026)var(--lightningcss-dark,#00000080);--dimmed:.2;--sheet-peek:88px;font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif}@media (prefers-color-scheme:dark){:root{--lightningcss-light: ;--lightningcss-dark:initial}}:root[data-theme=light]{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}:root[data-theme=dark]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--dimmed:.25}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--dimmed:.25}}*{box-sizing:border-box}html,body,#root{height:100%}body{background:var(--bg);color:var(--fg);margin:0}button{font:inherit;color:inherit}:focus-visible{outline:3px solid var(--focus);outline-offset:2px}.visually-hidden{clip:rect(0 0 0 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;position:absolute!important}.app{height:100%;position:relative;overflow:hidden}.app.is-phone .app-map{inset:0 0 calc(var(--sheet-peek) + env(safe-area-inset-bottom,0px)) 0;position:absolute}.app.is-desktop{grid-template-columns:360px 1fr;display:grid}.app.is-desktop .app-map{grid-area:1/2;min-height:0;position:relative}.app-panel{background:var(--panel-bg);border-right:1px solid var(--border);grid-area:1/1;overflow-y:auto}.sheet{z-index:30;height:calc(var(--sheet-h) + env(safe-area-inset-bottom,0px));max-height:100dvh;padding-bottom:env(safe-area-inset-bottom,0px);background:var(--panel-bg);border:1px solid var(--border);box-shadow:0 -6px 24px var(--shadow);border-bottom:0;border-radius:16px 16px 0 0;flex-direction:column;display:flex;position:fixed;bottom:0;left:0;right:0}.sheet-grip{height:var(--sheet-peek);touch-action:none;cursor:grab;-webkit-user-select:none;user-select:none;flex:none;padding:4px 16px 8px}.sheet.is-dragging .sheet-grip{cursor:grabbing}.sheet-handle{width:64px;height:28px;cursor:inherit;background:0 0;border:0;border-radius:8px;place-items:center;margin:0 auto 2px;padding:0;display:grid}.sheet-handle:before{content:"";background:var(--muted);border-radius:3px;width:40px;height:5px}.sheet-summary{-webkit-line-clamp:2;line-clamp:2;text-align:center;-webkit-box-orient:vertical;margin:0;font-weight:600;line-height:1.35;display:-webkit-box;overflow:hidden}.sheet-body{overscroll-behavior:contain;border-top:1px solid var(--border);flex:1;min-height:0;overflow-y:auto}@media (prefers-reduced-motion:no-preference){.sheet:not(.is-dragging){transition:height .22s cubic-bezier(.2,.8,.2,1)}}.panel{flex-direction:column;gap:16px;min-height:100%;padding:16px;display:flex}.panel-header{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:8px 12px;display:flex}.panel-title{flex-direction:column;gap:2px;display:flex}.settings{gap:8px;display:flex}.segmented{border:1px solid var(--control-border);border-radius:8px;display:inline-flex;overflow:hidden}.segmented button{background:var(--panel-bg);cursor:pointer;border:0;place-items:center;min-width:36px;min-height:36px;padding:0 8px;font-size:.85rem;font-weight:600;display:inline-grid}.segmented button+button{border-left:1px solid var(--control-border)}.segmented button:hover{background:var(--surface)}.segmented button[aria-pressed=true]{background:var(--accent);color:var(--panel-bg)}.segmented button:focus-visible{outline-offset:-3px}.notice.link-notice{border-left-color:var(--focus);align-items:flex-start;gap:8px;display:flex}.link-notice p{flex:1;margin:0}.app-name{letter-spacing:.01em;margin:0;font-size:1.4rem}.tagline{color:var(--muted);margin:0;font-size:.9rem}.panel-footer{color:var(--muted);margin-top:auto}.trip-ends{align-items:center;gap:8px;display:flex}.trip-fields{flex-direction:column;flex:1;gap:10px;min-width:0;display:flex}.hint{color:var(--muted);margin:0;font-size:.9rem}.notice{background:var(--surface);border-left:4px solid var(--danger);border-radius:8px;margin:0;padding:10px 12px}.icon-button{cursor:pointer;background:0 0;border:1px solid #0000;border-radius:8px;place-items:center;min-width:36px;min-height:36px;padding:0;font-size:1.1rem;line-height:1;display:inline-grid}.icon-button:hover:not(:disabled){background:var(--surface)}.icon-button:disabled{opacity:.35;cursor:default}.clear-all{color:var(--danger);align-self:flex-start;margin-top:10px}.swap{border-color:var(--control-border);font-size:1.3rem}.button{border:1px solid var(--border);background:var(--panel-bg);cursor:pointer;text-align:left;border-radius:8px;min-height:40px;padding:6px 14px}.button:hover:not([aria-disabled=true]){background:var(--surface)}.button[aria-disabled=true]{opacity:.5;cursor:not-allowed}.button.is-remove{color:var(--danger)}.line-badge{text-align:center;border-radius:4px;min-width:2.2em;padding:1px 5px;font-size:.78rem;font-weight:700;line-height:1.4;display:inline-block}.search{position:relative}.search-label{color:var(--muted);margin-bottom:4px;font-size:.85rem;font-weight:600;display:block}.search-field{position:relative}.search-field input{border:1px solid var(--control-border);background:var(--panel-bg);width:100%;min-height:42px;color:var(--fg);font:inherit;border-radius:8px;padding:8px 40px 8px 12px;font-size:1rem}.search-clear{position:absolute;top:3px;right:3px}.search-list{z-index:20;background:var(--panel-bg);border:1px solid var(--border);border-radius:8px;max-height:320px;margin:4px 0 0;padding:4px;list-style:none;position:absolute;left:0;right:0;overflow-y:auto;box-shadow:0 8px 24px #00000026}.search-option{cursor:pointer;border-radius:6px;flex-wrap:wrap;align-items:center;gap:4px 8px;padding:8px 10px;display:flex}.search-option[aria-selected=true]{background:var(--surface);outline:2px solid var(--focus);outline-offset:-2px}.search-option[aria-disabled=true]{cursor:not-allowed;color:var(--muted)}.search-option-name{flex:1}.search-option-lines{gap:3px;display:inline-flex}.search-option-why{flex-basis:100%;font-size:.8rem}.search-empty{color:var(--muted);padding:8px 10px}.stop-list{flex-direction:column;gap:4px;margin:0 0 8px;padding:0;list-style:none;display:flex}.stop-row{background:var(--surface);touch-action:none;border-radius:8px;align-items:center;gap:4px;padding:2px 4px;display:flex}.stop-row.is-dragging{z-index:1;position:relative;box-shadow:0 6px 18px #0003}.stop-row.is-blocked{outline:2px dashed var(--danger)}.stop-handle{cursor:grab;width:28px;min-height:36px;color:var(--muted);touch-action:none;-webkit-user-select:none;user-select:none;place-items:center;display:inline-grid}.stop-number{background:var(--chip-bg);width:22px;height:22px;color:var(--chip-fg);border-radius:50%;place-items:center;font-size:.8rem;font-weight:700;display:inline-grid}.stop-name{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;padding-left:4px;overflow:hidden}.steps-heading{margin:0;font-size:1.1rem}.steps-summary{margin:4px 0 12px;font-weight:600}.step-list{margin:0;padding:0;list-style:none}.step-ride{gap:10px;padding:10px 0;display:flex}.step-lines{flex-direction:column;gap:3px;display:flex}.step-body p{margin:0 0 2px}.step-stations{font-weight:600}.step-detail,.step-via{color:var(--muted);font-size:.92rem}.step-note{background:var(--surface);border-radius:6px;padding:6px 8px;font-size:.9rem;margin-top:6px!important}.step-change{border-left:3px dotted var(--muted);margin:0;padding:8px 10px;font-size:.92rem}.map{background:var(--map-bg);position:absolute;inset:0;overflow:hidden}.map-svg{touch-action:none;-webkit-user-select:none;user-select:none;cursor:grab;width:100%;height:100%;display:block}.map-svg:active{cursor:grabbing}.map-line,.map-route-line{fill:none;stroke-width:7px;stroke-linecap:round;stroke-linejoin:round}.map-route-line.is-ahead{opacity:.45}.map-route-progress{stroke-dasharray:1 1;stroke-dashoffset:1px}.map-route-walk{fill:none;stroke:var(--walk);stroke-width:3px;stroke-linecap:round;stroke-dasharray:.1 6}.route-change,.route-pulse{fill:none;stroke:var(--fg);stroke-width:2px}.route-pulse{opacity:0;transform-box:fill-box;transform-origin:50%}.route-train{pointer-events:none}.route-train-halo{fill:var(--map-bg);stroke:var(--fg);stroke-width:2.5px;filter:drop-shadow(0 1px 2px #00000059)}.route-train-light{fill:var(--map-bg)}.map-lines.is-dimmed{opacity:var(--dimmed)}.station{cursor:pointer;outline:none}.station.is-dimmed{opacity:.35}.station-hit{fill:#0000}.station-focus{fill:none;stroke:none}.station:focus-visible .station-focus{stroke:var(--focus);stroke-width:3px}.marker-tick{fill:var(--station-fill)}.marker-terminus{fill:var(--station-fill);stroke-width:3px}.pill-outline,.pill-fill{stroke-linecap:round}.pill-outline{stroke:var(--station-stroke)}.pill-fill{stroke:var(--station-fill)}.station:hover .marker-tick,.station:hover .marker-terminus{fill:var(--surface)}.station:hover .pill-fill{stroke:var(--surface)}.role-disc{fill:var(--chip-bg);stroke:var(--map-bg);stroke-width:2.5px}.role-mark{fill:var(--chip-fg)}.role-number{fill:var(--chip-fg);font-size:11px;font-weight:700}.station-label{pointer-events:none}.station-label.is-dimmed .label-name{fill:var(--muted)}.label-name{fill:var(--label);stroke:var(--label-halo);stroke-width:3.5px;stroke-linejoin:round;paint-order:stroke;font-weight:500}.label-name.is-major{font-weight:700}.label-badge{font-size:9px;font-weight:700}.map-controls{flex-direction:column;align-items:flex-end;gap:6px;display:flex;position:absolute;top:10px;right:10px}.map-controls button{border:1px solid var(--border);background:var(--panel-bg);cursor:pointer;border-radius:8px;min-width:40px;min-height:40px;padding:0 10px;font-size:1rem;box-shadow:0 2px 6px #00000014}.map-controls button[aria-pressed=true]{background:var(--accent);color:var(--panel-bg)}.map-animation{align-items:center;gap:6px;display:flex;position:absolute;bottom:10px;left:10px}.map-animation-play{border:1px solid var(--border);background:var(--panel-bg);min-width:40px;min-height:40px;color:inherit;cursor:pointer;border-radius:8px;box-shadow:0 2px 6px #00000014}.map-fit{font-size:.85rem!important}.popover{z-index:10;border:1px solid var(--border);background:var(--panel-bg);border-radius:12px;width:max-content;max-width:min(280px,100% - 16px);padding:10px;position:absolute;box-shadow:0 10px 30px #0000002e}.popover-head{align-items:center;gap:8px;margin-bottom:8px;display:flex}.popover-title{font-weight:700}.popover-lines{gap:3px;margin-right:auto;display:inline-flex}.popover-actions{flex-direction:column;gap:6px;display:flex}.popover-action .button{width:100%}.dev-grid,.dev-axis{stroke:#8884;stroke-width:1px;vector-effect:non-scaling-stroke}.dev-axis{stroke:#c0392b88}.dev-labels text{fill:#b03a2e;font-family:ui-monospace,monospace;font-size:9px}@media (prefers-reduced-motion:no-preference){.stop-row:not(.is-dragging){transition:transform .12s}}
