:root{--bg:#fff;--surface:#fff;--surface-2:#f2f4f8;--ink:#13294b;--muted:#5b6678;--line:#e1e5ec;--accent:#c83d1c;--accent-ink:#fff;--danger:#c62828;--danger-bg:#fdecea;--shadow:0 1px 2px #13294b0f, 0 8px 24px -12px #13294b2e;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--bg:#0d1626;--surface:#15213a;--surface-2:#1c2a47;--ink:#f1f4f9;--muted:#9aa7bd;--line:#24355a;--accent:#ff6a3d;--accent-ink:#1a0c05;--danger:#ff8a80;--danger-bg:#3d1c1c;--shadow:0 1px 2px #0000004d, 0 8px 24px -12px #00000080;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}}*{box-sizing:border-box}html{background:var(--bg);min-height:100%}body{background:var(--bg);color:var(--ink);min-height:100%;margin:0;font-family:IBM Plex Sans,system-ui,-apple-system,sans-serif;line-height:1.45}.page{max-width:720px;padding-inline:max(16px, env(safe-area-inset-left,0px)) max(16px, env(safe-area-inset-right,0px));padding-block:max(16px, env(safe-area-inset-top,0px)) max(48px, env(safe-area-inset-bottom,0px));margin:0 auto}h1,h2,h3{text-wrap:balance;margin:0;font-family:Fraunces,Georgia,serif;font-weight:600}button{font-family:inherit}a{color:var(--accent)}header.top{padding-block:22px 18px}.eyebrow{letter-spacing:.12em;text-transform:uppercase;color:var(--accent);margin-bottom:6px;font-family:IBM Plex Mono,monospace;font-size:.72rem;font-weight:600;display:block}h1.title{letter-spacing:-.01em;font-size:2rem}.subtitle{color:var(--muted);margin-top:6px;font-size:.95rem}.originrow{background:var(--surface);border:1px solid var(--line);box-shadow:var(--shadow);border-radius:12px;flex-wrap:wrap;align-items:center;gap:10px;margin-top:18px;padding:12px 14px;display:flex}.originrow svg{color:var(--accent);flex:none}.originrow input{min-width:0;color:var(--ink);background:0 0;border:none;outline:none;flex:200px;padding:4px 0;font-size:1rem;font-weight:500}.originrow label{text-transform:uppercase;letter-spacing:.08em;color:var(--muted);flex:none;font-size:.72rem}.day-tabs{background:var(--surface-2);border-radius:12px;grid-template-columns:repeat(7,1fr);gap:4px;margin-top:16px;padding:4px;display:grid}.day-tab{min-height:48px;color:var(--muted);cursor:pointer;background:0 0;border:none;border-radius:9px;flex-direction:column;align-items:center;gap:2px;padding:6px 0;font-size:.82rem;font-weight:600;display:flex;position:relative}.day-tab.today .day-name{color:var(--accent)}.day-tab.active{background:var(--surface);color:var(--ink);box-shadow:var(--shadow)}.day-count{background:var(--line);color:var(--ink);border-radius:999px;padding:2px 6px;font-family:IBM Plex Mono,monospace;font-size:.7rem;line-height:1}.day-count.tight{background:var(--danger-bg);color:var(--danger)}.link-btn{color:var(--accent);font:inherit;cursor:pointer;background:0 0;border:none;padding:0;font-weight:600;text-decoration:underline}.pace-row{justify-content:center;align-items:center;gap:8px;margin-top:10px;display:flex}.pace-row select{font:inherit;border:1px solid var(--line);background:var(--surface);color:var(--ink);border-radius:8px;padding:4px 8px}.backup-row{margin-top:6px;display:block}#mapsChoice{margin-top:8px;display:block}.past{opacity:.55;transition:opacity .15s}.past:hover,.past:focus-within{opacity:1}.example-banner{border:1px dashed var(--accent);background:color-mix(in srgb, var(--accent) 6%, var(--surface));border-radius:12px;margin-top:14px;padding:12px 14px}.example-banner[hidden]{display:none}.example-banner p{margin:0 0 10px}.example-actions{flex-wrap:wrap;gap:8px;display:flex}.sr-only{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.offline-banner{background:var(--surface-2);color:var(--ink);border-radius:10px;margin-bottom:12px;padding:10px 14px;font-size:.88rem}.offline-banner[hidden]{display:none}.next-up{border:1px solid var(--line);border-left:4px solid var(--accent);background:var(--surface);width:100%;color:var(--ink);font:inherit;text-align:left;cursor:pointer;box-shadow:var(--shadow);border-radius:12px;gap:2px;margin-top:14px;padding:12px 14px;display:grid}.next-up[hidden]{display:none}.next-label{letter-spacing:.08em;text-transform:uppercase;color:var(--accent);font-size:.7rem;font-weight:700}.next-title{font-size:1.05rem}.next-place{color:var(--muted);font-size:.85rem}.next-leave{margin-top:4px;font-weight:600}.next-by{color:var(--muted);font-weight:400}.next-up.late{border-left-color:var(--danger)}.next-up.late .next-label,.next-up.late .next-leave,.next-up.late .next-by{color:var(--danger)}.next-bus{color:var(--accent);margin-top:4px;font-size:.88rem;font-weight:600}.next-advice{margin-top:4px;font-size:.85rem;font-weight:600}.statrow{flex-wrap:wrap;gap:8px;margin-top:14px;display:flex}.stat{background:var(--surface-2);color:var(--muted);border-radius:10px;align-items:baseline;gap:6px;padding:8px 12px;font-size:.82rem;display:flex}.stat b{color:var(--ink);font-family:IBM Plex Mono,monospace;font-weight:600}.stat.danger,.stat.danger b{color:var(--danger)}.toolbar{flex-wrap:wrap;align-items:center;gap:8px;margin-top:16px;display:flex}.btn{border:1px solid var(--line);background:var(--surface);color:var(--ink);cursor:pointer;border-radius:9px;align-items:center;gap:6px;padding:9px 14px;font-size:.85rem;font-weight:600;transition:transform 80ms,border-color .15s;display:inline-flex}.btn:hover{border-color:var(--accent)}.btn:active{transform:scale(.97)}.btn.primary{background:var(--accent);color:var(--accent-ink);border-color:var(--accent)}.btn.ghost{color:var(--muted);background:0 0;border-color:#0000;padding:9px 10px}.btn:disabled{opacity:.45;cursor:not-allowed}.btn svg{flex:none}.route-mode{border:1px solid var(--line);background:var(--surface);color:var(--ink);border-radius:9px;padding:8px;font-family:inherit;font-size:.82rem}.timeline{margin-top:26px}.empty p{margin:0 0 14px}.empty-actions{flex-wrap:wrap;justify-content:center;gap:8px;display:flex}.empty{text-align:center;color:var(--muted);border:1px dashed var(--line);border-radius:14px;margin-top:20px;padding:48px 20px}.segment{grid-template-columns:74px 1fr;gap:14px;margin:2px 0;display:grid}.segment .time-rail{justify-content:center;display:flex}.rail-line{background:var(--line);width:2px;height:100%}.travel-card{background:var(--surface-2);color:var(--muted);border-radius:10px;flex-wrap:wrap;align-items:center;gap:10px;margin-block:6px;padding:8px 12px;font-size:.82rem;display:flex}.travel-card.tight{background:var(--danger-bg);color:var(--danger)}.travel-card.ok .travel-icon{color:var(--muted)}.travel-card.tight .travel-icon{color:var(--danger)}.travel-icon{flex:none;display:flex}.travel-text{flex:auto;min-width:140px}.travel-text strong{color:var(--ink);font-family:IBM Plex Mono,monospace}.travel-card.tight .travel-text strong{color:var(--danger)}.travel-from{opacity:.85;margin-top:1px;font-size:.74rem;display:block}.bus-info{border-top:1px solid var(--line);flex-basis:100%;padding-top:8px}.bus-heading{letter-spacing:.08em;text-transform:uppercase;margin:0 0 6px;font-size:.7rem;font-weight:700}.bus-note{margin:0}.bus-list{gap:8px;margin:0;padding:0;list-style:none;display:grid}.bus-option{align-items:flex-start;gap:8px;line-height:1.4;display:flex}.bus-route{text-align:center;border-radius:6px;flex:none;min-width:2.2em;padding:2px 6px;font-family:IBM Plex Mono,monospace;font-weight:700}.bus-detail b{color:var(--ink)}.bus-detail strong{color:var(--ink);font-family:IBM Plex Mono,monospace}.bus-suggestion{gap:8px;display:grid}.bus-suggestion .bus-heading{color:var(--accent);margin:0}.bus-switch{background:var(--accent);color:var(--accent-ink);font:inherit;cursor:pointer;border:none;border-radius:8px;justify-self:start;padding:8px 14px;font-weight:600}.bus-late{color:var(--danger);font-weight:600}.bus-ontime,.bus-early{color:var(--ink);font-weight:600}.travel-weather{margin-top:2px;font-size:.76rem;display:block}.weather-advice{background:var(--surface);color:var(--ink);border-radius:8px;flex-basis:100%;margin:0;padding:6px 10px;font-weight:600}.stat.rainy b{color:var(--accent)}.modepicker{background:var(--surface);border-radius:8px;flex:none;gap:3px;padding:3px;display:flex}.mode-btn{color:var(--muted);cursor:pointer;background:0 0;border:none;border-radius:6px;align-items:center;padding:6px 7px;display:flex}.mode-btn.active{background:var(--accent);color:var(--accent-ink)}.dir-link{color:var(--accent);border:1px solid var(--accent);white-space:nowrap;background:var(--surface);border-radius:7px;align-items:center;gap:5px;padding:4px 8px;font-size:.78rem;font-weight:600;text-decoration:none;display:inline-flex}.travel-card.tight .dir-link{color:var(--danger);border-color:var(--danger)}.tighten-link{color:var(--accent);cursor:pointer;text-underline-offset:2px;background:0 0;border:none;padding:4px 6px;font-size:.76rem;font-weight:600;text-decoration:underline}.now-row{grid-template-columns:74px 1fr;align-items:center;gap:14px;margin:6px 0;display:grid}.now-time{text-align:right;color:var(--accent);font-family:IBM Plex Mono,monospace;font-size:.74rem;font-weight:600}.now-line{align-items:center;gap:8px;display:flex}.now-line:before{content:"";background:repeating-linear-gradient(90deg, var(--accent) 0 6px, transparent 6px 11px);flex:1;height:2px}.now-dot{background:var(--accent);width:8px;height:8px;box-shadow:0 0 0 4px color-mix(in srgb, var(--accent) 25%, transparent);border-radius:50%;flex:none}.now-label{color:var(--accent);text-transform:uppercase;letter-spacing:.06em;font-size:.72rem;font-weight:700}.event-row{grid-template-columns:74px 1fr;gap:14px;display:grid}.event-time{text-align:right;color:var(--muted);white-space:nowrap;padding-top:14px;font-family:IBM Plex Mono,monospace;font-size:.78rem;line-height:1.3}.event-time .start{color:var(--ink);font-size:.85rem;font-weight:600;display:block}.card{background:var(--surface);border:1px solid var(--line);box-shadow:var(--shadow);border-radius:14px;padding:14px 16px;position:relative}.card-top{justify-content:space-between;align-items:flex-start;gap:10px;display:flex}.card h3{font-size:1.08rem}.card .loc{color:var(--muted);align-items:center;gap:5px;margin-top:4px;font-size:.86rem;display:flex}.card .loc svg{flex:none}.card .meta{flex-wrap:wrap;gap:8px;margin-top:10px;display:flex}.chip{color:var(--muted);background:var(--surface-2);border-radius:999px;padding:3px 10px;font-family:IBM Plex Mono,monospace;font-size:.74rem;font-weight:600}.card-actions{flex:none;gap:2px;display:flex}.icon-btn{color:var(--muted);cursor:pointer;background:0 0;border:none;border-radius:7px;padding:8px;display:flex}.icon-btn:hover{background:var(--surface-2);color:var(--ink)}.overlay{z-index:50;background:#14141466;justify-content:center;align-items:flex-end;padding:16px;display:flex;position:fixed;inset:0}@media (width>=640px){.overlay{align-items:center}}.panel{background:var(--surface);width:100%;max-width:440px;box-shadow:var(--shadow);border:1px solid var(--line);border-radius:16px;max-height:88vh;padding:20px;overflow-y:auto}.panel h2{margin-bottom:14px;font-size:1.3rem}.field{margin-bottom:13px}.field label,.field .label{text-transform:uppercase;letter-spacing:.06em;color:var(--muted);margin-bottom:5px;font-size:.74rem;font-weight:600;display:block}.field input,.field select,.field textarea{border:1px solid var(--line);background:var(--bg);width:100%;color:var(--ink);border-radius:8px;padding:9px 10px;font-family:inherit;font-size:1rem}.field input.invalid{border-color:var(--danger)}.field label.checkbox{text-transform:none;letter-spacing:0;color:var(--ink);align-items:center;gap:8px;font-size:.88rem;font-weight:500;display:flex}.field label.checkbox input{width:auto;margin:0}.field textarea{resize:vertical;min-height:90px;font-family:IBM Plex Mono,monospace;font-size:.8rem}.field-row{gap:10px;display:flex}.field-row .field{flex:1}.hint{color:var(--muted);margin-top:4px;font-size:.76rem}.error-text{color:var(--danger);margin-top:4px;font-size:.78rem}.panel-actions{justify-content:flex-end;gap:8px;margin-top:18px;display:flex}.chipset{flex-wrap:wrap;gap:6px;margin-bottom:8px;display:flex}.distchip{border:1px solid var(--line);background:var(--bg);color:var(--ink);cursor:pointer;border-radius:999px;padding:7px 12px;font-size:.78rem;font-weight:600}.distchip.active{background:var(--accent);border-color:var(--accent);color:var(--accent-ink)}.distfine{align-items:center;gap:10px;display:flex}.stepbtn{border:1px solid var(--line);background:var(--bg);width:32px;height:32px;color:var(--ink);cursor:pointer;border-radius:7px;font-size:1rem;line-height:1}.distval{text-align:center;min-width:56px;font-family:IBM Plex Mono,monospace;font-size:.86rem}.toast{left:50%;bottom:calc(20px + env(safe-area-inset-bottom,0px));background:var(--ink);color:var(--bg);z-index:60;box-shadow:var(--shadow);border-radius:10px;flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:6px 14px;width:max-content;max-width:calc(100vw - 32px);padding:10px 16px;font-size:.85rem;display:flex;position:fixed;transform:translate(-50%)}.toast span{flex:12em}.toast button{color:var(--accent);cursor:pointer;background:0 0;border:none;flex:none;font-size:.85rem;font-weight:700}footer.note{color:var(--muted);text-align:center;margin-top:30px;font-size:.78rem}.view-switch{background:var(--surface-2);border-radius:10px;grid-template-columns:1fr 1fr;gap:2px;margin-top:14px;padding:3px;display:inline-grid}.view-tab{min-width:110px;color:var(--muted);cursor:pointer;background:0 0;border:none;border-radius:8px;padding:8px 16px;font-size:.9rem;font-weight:600}.view-tab.active{background:var(--surface);color:var(--ink);box-shadow:var(--shadow)}.page.wide{max-width:1100px}.cal-toolbar{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;display:flex}.cal-month{font-size:1.5rem}.cal-nav{flex-wrap:wrap;gap:6px;display:flex}.btn.icon{padding:6px 13px;font-size:1.15rem;line-height:1}.cal-hint{margin:8px 0 14px}.cal-grid{border:1px solid var(--line);background:var(--surface);scroll-snap-type:x proximity;border-radius:14px;grid-template-columns:52px repeat(7,minmax(96px,1fr));display:grid;overflow-x:auto}.cal-corner,.cal-hours{z-index:2;background:var(--surface);position:sticky;left:0}.cal-day-head{border:none;border-bottom:1px solid var(--line);border-left:1px solid var(--line);background:var(--surface);color:var(--muted);cursor:pointer;scroll-snap-align:start;justify-content:center;align-items:baseline;gap:5px;padding:10px 4px;scroll-margin-left:52px;font-size:.85rem;font-weight:600;display:flex}.cal-day-head b{color:var(--ink);font-size:1.05rem}.cal-day-head.today b{background:var(--accent);min-width:28px;height:28px;color:var(--accent-ink);border-radius:999px;place-items:center;display:inline-grid}.cal-corner{border-bottom:1px solid var(--line)}.cal-hour{color:var(--muted);white-space:nowrap;font-size:.68rem;position:absolute;right:6px;transform:translateY(-50%)}.cal-col{border-left:1px solid var(--line);background:repeating-linear-gradient(to bottom, transparent 0 47px, var(--line) 47px 48px);cursor:copy;position:relative}.cal-col.today{background-color:color-mix(in srgb, var(--accent) 4%, transparent)}.cal-day-head{flex-wrap:wrap;row-gap:2px}.cal-summary{color:var(--muted);margin:10px 0 4px;font-size:.88rem}.cal-summary b{color:var(--ink);font-family:IBM Plex Mono,monospace;font-weight:600}.danger-text{color:var(--danger);font-weight:600}.cal-weather{text-align:center;color:var(--muted);white-space:nowrap;flex-basis:100%;font-size:.66rem;font-weight:500}.cal-weather.rainy{color:var(--accent)}.cal-travel{white-space:nowrap;color:var(--muted);background:repeating-linear-gradient(135deg, transparent 0 4px, color-mix(in srgb, var(--ink) 9%, transparent) 4px 6px);pointer-events:none;border-radius:6px 6px 0 0;padding:1px 6px;font-size:.66rem;line-height:1.3;position:absolute;overflow:hidden}.cal-travel.tight{color:var(--danger);background:repeating-linear-gradient(135deg, var(--danger-bg) 0 4px, color-mix(in srgb, var(--danger) 25%, transparent) 4px 6px)}.cal-event{border:none;border-left:3px solid var(--accent);background:color-mix(in srgb, var(--ink) 8%, var(--surface));color:var(--ink);text-align:left;cursor:pointer;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;border-radius:6px;flex-direction:column;gap:1px;padding:3px 6px 3px 8px;font-size:.74rem;line-height:1.25;display:flex;position:absolute;overflow:hidden}.cal-event.over{opacity:.5}.cal-event.dragging{z-index:5;cursor:grabbing;opacity:.9;box-shadow:var(--shadow);outline:2px solid var(--accent)}.cal-event strong{text-overflow:ellipsis;font-weight:600;overflow:hidden}.cal-event span{color:var(--muted);font-size:.68rem}.cal-event.tight{border-left-color:var(--danger);background:var(--danger-bg)}.cal-now{z-index:1;background:var(--danger);pointer-events:none;height:2px;position:absolute;left:0;right:0}.cal-now:before{content:"";background:var(--danger);border-radius:50%;width:8px;height:8px;position:absolute;top:-3px;left:-4px}
