@font-face{font-family:barlow;src:url(../media/barlow_400-s.p.0ttnbqtks8pz8.woff2)format("woff2");font-display:swap;font-weight:400}@font-face{font-family:barlow;src:url(../media/barlow_500-s.p.07ksy-a4avz1m.woff2)format("woff2");font-display:swap;font-weight:500}@font-face{font-family:barlow;src:url(../media/barlow_600-s.p.2ekrofpr7xv99.woff2)format("woff2");font-display:swap;font-weight:600}@font-face{font-family:barlow;src:url(../media/barlow_700-s.p.3-aa5f3j6vyu9.woff2)format("woff2");font-display:swap;font-weight:700}@font-face{font-family:barlow Fallback;src:local(Arial);ascent-override:103.13%;descent-override:20.63%;line-gap-override:0.0%;size-adjust:96.96%}.barlow_3da0c82f-module__XbreJG__className{font-family:barlow,barlow Fallback}.barlow_3da0c82f-module__XbreJG__variable{--font-sans:"barlow", "barlow Fallback"}
@font-face{font-family:barlowCondensed;src:url(../media/barlow_semi_condensed_600-s.p.34vyxsduuj3tr.woff2)format("woff2");font-display:swap;font-weight:600}@font-face{font-family:barlowCondensed;src:url(../media/barlow_semi_condensed_700-s.p.1qp1yywwtfonp.woff2)format("woff2");font-display:swap;font-weight:700}@font-face{font-family:barlowCondensed Fallback;src:local(Arial);ascent-override:111.17%;descent-override:22.23%;line-gap-override:0.0%;size-adjust:89.95%}.barlowcondensed_3d2263c-module__ntd3mW__className{font-family:barlowCondensed,barlowCondensed Fallback}.barlowcondensed_3d2263c-module__ntd3mW__variable{--font-board:"barlowCondensed", "barlowCondensed Fallback"}
@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-border-style:solid;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000;--tw-ease:initial}}}@layer theme{:root,:host{--font-sans:-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", "Noto Sans", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";--font-mono:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;--radius-xs:.125rem;--radius-sm:.25rem;--radius-md:.375rem;--radius-lg:.5rem;--radius-xl:.75rem;--ease-out:cubic-bezier(0, 0, .2, 1);--ease-in-out:cubic-bezier(.4, 0, .2, 1);--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4, 0, .2, 1);--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono)}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", "Noto Sans", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring:where(:not(iframe)){outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab, red, red)){::placeholder{color:color-mix(in oklab, currentcolor 50%, transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}}@layer components;@layer utilities{.\!visible{visibility:visible!important}.visible{visibility:visible}.sr-only{clip-path:inset(50%);white-space:nowrap;border-width:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.fixed{position:fixed}.relative{position:relative}.static{position:static}.sticky{position:sticky}.container{width:100%}@media (min-width:40rem){.container{max-width:40rem}}@media (min-width:48rem){.container{max-width:48rem}}@media (min-width:64rem){.container{max-width:64rem}}@media (min-width:80rem){.container{max-width:80rem}}@media (min-width:96rem){.container{max-width:96rem}}.block{display:block}.grid{display:grid}.hidden{display:none}.inline{display:inline}.transform{transform:var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,) var(--tw-skew-x,) var(--tw-skew-y,)}.resize{resize:both}.rounded{border-radius:.25rem}.border{border-style:var(--tw-border-style);border-width:1px}.uppercase{text-transform:uppercase}.underline{text-decoration-line:underline}.shadow{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a), 0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.ring{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.transition{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,-webkit-backdrop-filter,backdrop-filter,display,content-visibility,overlay,pointer-events;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.ease-out{--tw-ease:var(--ease-out);transition-timing-function:var(--ease-out)}}:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;interpolate-size:allow-keywords;--canvas:#f3f3ee;--surface:#fff;--surface-quiet:#e9ebe5;--ink:#0e1c28;--board:#0e1c28;--board-2:#183040;--board-line:#2d4558;--board-text:#fff;--board-muted:#b4c4d2;--muted:#475561;--accent:#f5b53f;--accent-soft:#fdf1d6;--accent-deep:#7a4f0c;--border:#cdd2cb;--field:#7d8791;--focus:#7a4f0c;--font-ui:var(--font-sans), system-ui, -apple-system, "Segoe UI", sans-serif;--font-display:var(--font-board), var(--font-sans), system-ui, -apple-system, "Segoe UI", sans-serif;--accent-line:#e9cf94;--text-label:13px;--text-secondary:15px;--text-body:17px;--text-field:18px;--text-title:22px;--text-headline:30px;--text-time:44px;--text-time-xl:64px;--text-time-hero:clamp(60px, 19vw, 76px);--text-display:clamp(34px, 9vw, 48px);--radius-xs:4px;--radius-sm:8px;--radius-md:12px;--radius-control:14px;--radius-lg:16px;--radius-xl:20px;--radius-sheet:24px;--ease-out:cubic-bezier(.23, 1, .32, 1);--ease-drawer:cubic-bezier(.32, .72, 0, 1);--ease-in-out:cubic-bezier(.77, 0, .175, 1);--border-soft:#0e1c2812;--elevation-1:0 1px 2px #0e1c280f, 0 4px 12px -4px #0e1c281f;--elevation-2:0 2px 4px #0e1c280f, 0 10px 24px -6px #0e1c2829;--elevation-3:0 4px 8px #0e1c2814, 0 24px 48px -12px #0e1c2847;--elevation-hero:inset 0 1px 0 #ffffff1a, 0 2px 4px #0e1c2814, 0 16px 32px -8px #0e1c284d;--hero-fill:linear-gradient(180deg, transparent 25%, #09131ce0), radial-gradient(#ffffff12 1px, transparent 1.5px) 0 0 / 9px 9px, linear-gradient(160deg, #1c384d 0%, var(--board) 55%, #09131c 100%);--button-amber:linear-gradient(180deg, #fabf4f, #f2b03a);--elevation-button:inset 0 1px 0 #ffffff73, 0 1px 2px #0e1c281a, 0 4px 10px -4px #7a4f0c59;--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-5:20px;--space-6:24px;--space-8:32px;--space-10:40px;--space-12:48px;--space-16:64px}*{box-sizing:border-box}html{-webkit-tap-highlight-color:transparent;overscroll-behavior-y:none;-moz-text-size-adjust:100%;text-size-adjust:100%;scrollbar-color:#9aa39b transparent}body{background:var(--canvas);color:var(--ink);font-family:var(--font-ui);font-size:var(--text-body);-webkit-font-smoothing:antialiased;overscroll-behavior-y:none;margin:0;line-height:1.45}::selection{background:var(--accent);color:var(--ink)}input,select{caret-color:var(--accent-deep);accent-color:var(--ink)}button,input,select{font:inherit}button,summary,a{touch-action:manipulation}button,summary{-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;cursor:pointer}button{color:inherit;transition:transform .16s var(--ease-out), background-color .15s ease, border-color .15s ease, box-shadow .2s var(--ease-out), outline-offset .18s var(--ease-out);background:0 0;border:0}:where(button,a,summary,input,select,[tabindex]){outline-offset:7px}:where(a,summary,input,select){transition:outline-offset .18s var(--ease-out)}button,input,select,summary{-webkit-tap-highlight-color:transparent}button:disabled{cursor:wait;opacity:.65}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,summary:focus-visible,[tabindex="-1"]:focus-visible{outline:3px solid var(--focus);outline-offset:3px}.detail-summary :focus-visible,.app-header :focus-visible,.arrival-step :focus-visible,.next-class :focus-visible{outline-color:var(--accent)}h1,h2,h3,p{margin:0}h1,h2,h3{font-weight:700}h2{font-family:var(--font-display);font-size:var(--text-title);letter-spacing:-.2px;line-height:1.2}h3{font-size:var(--text-field);line-height:1.3}ul,ol{margin:0;padding:0;list-style:none}input[type=radio],input[type=checkbox]{flex-shrink:0;width:22px;height:22px}time,.arrival-time,.summary-duration{font-variant-numeric:tabular-nums}time{white-space:nowrap}.icon{vertical-align:middle;flex-shrink:0;display:inline-block}.secondary{color:var(--muted);font-size:var(--text-secondary);font-weight:400;line-height:1.4;display:block}.eyebrow{color:var(--muted);font-size:var(--text-label);letter-spacing:.08em;text-transform:uppercase;font-weight:700;display:block}.skip-link{z-index:100;background:var(--accent);color:var(--ink);border-radius:var(--radius-md);padding:12px 20px;font-weight:700;position:fixed;top:-100px;left:12px}.skip-link:focus{top:12px}.app-header{background:var(--board);color:var(--board-text);padding:max(10px, env(safe-area-inset-top)) max(16px, env(safe-area-inset-right)) 10px max(16px, env(safe-area-inset-left));flex-wrap:wrap;justify-content:space-between;align-items:center;gap:4px 16px;display:flex}.project-label{min-height:48px;font-family:var(--font-display);font-size:var(--text-title);letter-spacing:.01em;color:var(--board-text);flex-shrink:0;align-items:center;gap:10px;padding:0;font-weight:700;text-decoration:none;display:flex}.brand-mark{color:var(--board-text);flex-shrink:0}.header-secondary{align-items:center;gap:20px;min-width:0;margin-left:auto;display:flex}.header-link{min-height:48px;font-size:var(--text-body);color:var(--board-text);text-decoration:underline;-webkit-text-decoration-color:var(--board-line);-webkit-text-decoration-color:var(--board-line);-webkit-text-decoration-color:var(--board-line);text-decoration-color:var(--board-line);text-underline-offset:6px;align-items:center;padding-inline:8px;font-weight:600;text-decoration-thickness:2px;display:inline-flex}.header-link[aria-current=page]{-webkit-text-decoration-color:var(--accent);-webkit-text-decoration-color:var(--accent);-webkit-text-decoration-color:var(--accent);text-decoration-color:var(--accent)}.header-context{font-size:var(--text-label);letter-spacing:.06em;text-transform:uppercase;color:var(--board-muted);white-space:nowrap;font-weight:600;display:none}.app-workspace{max-width:1440px;padding:24px 16px max(24px, env(safe-area-inset-bottom));margin:0 auto}.planning-column,.instructions-column,.map-column{min-width:0}.home-heading{max-width:460px;margin-bottom:20px}.home-heading h1{font-family:var(--font-display);font-size:var(--text-display);letter-spacing:-.01em;text-wrap:balance;max-width:440px;line-height:1.04}.home-heading p{color:var(--muted);font-size:var(--text-field);margin-top:8px}.planner{background:var(--surface);border:1px solid var(--border-soft);border-radius:var(--radius-xl);box-shadow:var(--elevation-2);padding:8px 16px 16px}.journey-fields{padding-left:32px;position:relative}.field-track{flex-direction:column;align-items:center;width:14px;display:flex;position:absolute;top:38px;bottom:34px;left:2px}.field-track span{border:3px solid var(--ink);background:var(--surface);border-radius:50%;flex-shrink:0;width:14px;height:14px}.field-track span:first-child{border-color:var(--accent);background:var(--accent)}.field-track span:last-child{border-radius:var(--radius-xs);background:var(--ink)}.field-track i{background:repeating-linear-gradient(to bottom, var(--field) 0 4px, transparent 4px 8px);flex:1;width:3px;margin:6px 0}.place-control{text-align:left;overflow-wrap:anywhere;background:0 0;flex-direction:column;gap:1px;width:100%;min-height:76px;padding:12px 8px 12px 0;display:flex}.place-control>span:nth-child(2){font-size:var(--text-field);font-weight:600;line-height:1.25}.place-control .secondary{font-size:var(--text-secondary)}.field-label{font-size:var(--text-label);letter-spacing:.08em;text-transform:uppercase;color:var(--muted);font-weight:700;display:block}.destination-control{border-top:1px solid var(--border)}.place-control .placeholder{color:var(--muted);font-weight:500}.current-place{align-items:center;gap:8px;display:flex}.current-place .icon{width:18px;height:18px;color:var(--accent-deep)}.location-help{font-size:var(--text-secondary);color:var(--muted);margin:4px 0 0 32px}.departure-button{text-align:left;border:1px solid var(--border);border-radius:var(--radius-md);background:var(--surface-quiet);min-height:48px;font-size:var(--text-body);align-items:center;gap:10px;margin:12px 0;padding:8px 14px;font-weight:600;display:inline-flex}.down-chevron{border-bottom:2px solid;border-right:2px solid;flex-shrink:0;width:8px;height:8px;margin:-4px 2px 0 4px;transform:rotate(45deg)}.primary-button{background:var(--button-amber);width:100%;min-height:56px;box-shadow:var(--elevation-button);color:var(--ink);font-size:var(--text-field);border-radius:var(--radius-control);justify-content:center;align-items:center;gap:12px;padding:12px 16px;font-weight:700;display:flex}.primary-button .icon{transition:transform .2s var(--ease-out)}.secondary-button{min-height:48px;box-shadow:var(--elevation-1);border:1.5px solid var(--ink);border-radius:var(--radius-md);background:var(--surface);font-size:var(--text-body);padding:10px 18px;font-weight:700}.text-button{border-radius:var(--radius-sm);min-height:48px;color:var(--ink);font-size:var(--text-secondary);text-underline-offset:4px;padding:8px 10px;font-weight:600;text-decoration:underline}.icon-button{border-radius:var(--radius-md);justify-content:center;align-items:center;width:48px;min-width:48px;height:48px;display:inline-flex}.primary-button:active,.secondary-button:active,.icon-button:active,.departure-button:active,.text-button:active{transform:scale(.97)}.place-control:active,.local-place:active,.search-results li:active{background-color:var(--surface-quiet)}.section-heading{justify-content:space-between;align-items:center;gap:8px;margin-bottom:12px;display:flex}.section-heading .secondary{font-size:var(--text-secondary)}.local-places{margin-top:28px}.local-places section+section{margin-top:24px}.local-places .section-heading{margin-bottom:4px}.local-places h2{font-size:var(--text-title)}.local-places ul,.preset-list{border:1px solid var(--border-soft);border-radius:var(--radius-lg);background:var(--surface);box-shadow:var(--elevation-1);overflow:hidden}.local-places li{align-items:center;padding-right:4px;display:flex}.local-places li,.preset-list li{position:relative}.local-places li+li:before,.preset-list li+li:before{content:"";background:var(--border);height:1px;position:absolute;top:0;left:66px;right:0}.local-place{text-align:left;flex:1;align-items:center;gap:14px;min-width:0;min-height:72px;padding:12px 8px 12px 14px;display:flex}.local-place>.icon:first-child{box-sizing:content-box;border-radius:var(--radius-md);background:var(--surface-quiet);width:20px;height:20px;color:var(--ink);padding:9px}.local-place>.icon:last-child{color:var(--muted);width:18px}.local-place>span{flex:1;min-width:0}.local-place strong{font-size:var(--text-body);overflow-wrap:anywhere;font-weight:600;display:block}.local-place .secondary{font-size:var(--text-secondary);-webkit-line-clamp:2;line-clamp:2;overflow-wrap:anywhere;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.local-save{margin-left:2px}.local-save[aria-pressed=true] .icon,.is-saved .icon{animation:pop .36s var(--ease-out);fill:var(--accent);stroke:var(--ink)}.local-note{font-size:var(--text-secondary);color:var(--muted);margin:20px 0 0}.storage-message{margin-top:12px}.shortcuts{margin-top:28px}.shortcuts section+section{margin-top:24px}.shortcuts h2,.class-panel h2{font-size:var(--text-title)}.shortcuts h2{margin:0 0 12px}.preset-list{margin:0;padding:0;list-style:none}.preset-list li{align-items:center;padding-right:4px;display:flex}.preset-list .local-place>.icon:first-child{background:var(--board);color:var(--accent)}.preset-list .unset-preset>.icon:first-child{color:var(--muted);box-shadow:inset 0 0 0 1.5px var(--field);background:0 0}.preset-list .unset-preset strong{font-weight:600}.place-chips{flex-wrap:wrap;gap:8px;margin:0;padding:0;list-style:none;display:flex}.place-chip{border:1px solid var(--border-soft);border-radius:var(--radius-md);background:var(--surface);min-height:48px;box-shadow:var(--elevation-1);font-size:var(--text-body);transition:background-color .15s ease, border-color .15s ease, box-shadow .2s var(--ease-out), transform .16s var(--ease-out), outline-offset .18s var(--ease-out);padding:10px 16px;font-weight:600}.place-chip:active{box-shadow:none;transform:translateY(1px)scale(.97)}.primary-button:active{box-shadow:inset 0 2px 4px #7a4f0c40}.class-panel{margin-top:28px}.next-class{background:var(--hero-fill);box-shadow:var(--elevation-hero);color:var(--board-text);border-radius:var(--radius-xl);animation:rise .2s var(--ease-out) both;padding:18px}.class-now{border-bottom:1px solid var(--board-line);color:var(--board-muted);font-size:var(--text-secondary);align-items:center;gap:8px;margin:0 0 14px;padding-bottom:14px;font-weight:600;display:flex}.next-class-time{color:var(--board-muted);font-size:var(--text-secondary);white-space:nowrap;flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:4px 12px;margin:0;font-weight:600;display:flex}.next-class-clock{font-family:var(--font-display);font-size:min(var(--text-time-xl), 33cqi);letter-spacing:-.01em;font-variant-numeric:tabular-nums;color:var(--accent);font-weight:700;line-height:1}.next-class-title{font-size:var(--text-field);overflow-wrap:anywhere;margin:12px 0 2px;font-weight:600;line-height:1.25}.next-class-room,.next-class-note{color:var(--board-muted);font-size:var(--text-secondary);overflow-wrap:anywhere;margin:0 0 16px}.next-class-note{margin-top:12px}.next-class>.next-class-note:only-child{margin:0}.secondary-button.on-board{color:var(--board-text);border-color:var(--board-muted);background:0 0}.import-note{animation:rise .2s var(--ease-out) both;margin:0 0 12px}.import-zone+.import-note{margin-top:12px}.import-zone{border:1.5px dashed var(--field);border-radius:var(--radius-lg);cursor:pointer;transition:background-color .16s var(--ease-out), border-color .16s var(--ease-out), transform .12s var(--ease-out);align-items:center;gap:14px;padding:16px;display:flex}.import-zone strong{font-size:var(--text-body);font-weight:600;display:block}.import-zone .secondary{font-size:var(--text-secondary);margin-top:2px;display:block}.import-icon{border-radius:var(--radius-control);background:var(--board);width:48px;height:48px;color:var(--accent);transition:transform .22s var(--ease-out);flex:none;place-items:center;display:grid}.import-zone:active{transform:scale(.99)}.import-zone.dragging{border-style:solid;border-color:var(--ink);background:var(--accent-soft)}.import-zone.dragging .import-icon{transform:translateY(-2px)scale(1.06)}.import-zone:focus-within,.class-actions .secondary-button:focus-within{outline:3px solid var(--focus);outline-offset:2px}.class-list{border:1px solid var(--border-soft);border-radius:var(--radius-lg);background:var(--surface);box-shadow:var(--elevation-1);margin-top:12px;padding:4px 16px 16px}.expander{opacity:0;transition:grid-template-rows .32s var(--ease-out), opacity .2s ease;grid-template-rows:0fr;display:grid}.expander[data-open=true]{opacity:1;grid-template-rows:1fr}.expander>*{overflow-clip-margin:16px;min-height:0;overflow:clip}.class-list ul{overscroll-behavior:contain;max-height:min(60vh,560px);margin:0;padding:0;list-style:none;overflow-y:auto}.class-list li{border-bottom:1px solid var(--border);gap:2px;padding:12px 0;display:grid}.class-list li strong{overflow-wrap:anywhere;font-weight:600}.class-list .secondary{font-size:var(--text-secondary);overflow-wrap:anywhere}.class-actions{flex-wrap:wrap;align-items:center;gap:8px 12px;margin-top:16px;display:flex}.class-actions .secondary-button{cursor:pointer;align-items:center;display:inline-flex}.class-list .local-note{margin-top:12px}.insight{border:1px solid var(--accent-line);border-radius:var(--radius-lg);background:var(--accent-soft);animation:rise .26s var(--ease-out) both;grid-template-columns:auto minmax(0,1fr);align-items:start;gap:12px;margin:0 0 16px;padding:14px;display:grid}.insight-icon,.board-alert-icon{border-radius:var(--radius-md);background:var(--board);width:36px;height:36px;color:var(--accent);place-items:center;display:grid}.insight-copy p{font-size:var(--text-secondary);color:var(--muted);line-height:1.45}.insight-copy strong{color:var(--ink);font-variant-numeric:tabular-nums;white-space:nowrap}.insight-copy .insight-title{font-size:var(--text-field);color:var(--ink);margin-bottom:2px;font-weight:700;line-height:1.3}.insight .secondary-button,.board-alert .secondary-button{font-variant-numeric:tabular-nums;justify-content:space-between;align-items:center;gap:10px;display:inline-flex}.insight .secondary-button{grid-column:2;justify-self:start}.insight .secondary-button .icon,.board-alert .secondary-button .icon{width:18px;height:18px;transition:transform .2s var(--ease-out)}.leave-board,.detail-summary,.next-class,.arrival-step .step-content{container-type:inline-size}.leave-board{border-radius:var(--radius-xl);background:var(--hero-fill);box-shadow:var(--elevation-hero);color:var(--board-text);transform-origin:50% 0;animation:settle .44s var(--ease-drawer) both;margin-bottom:28px;padding:14px 18px 18px;position:relative}.leave-board h2{font-size:inherit;letter-spacing:0}.leave-board h2 .eyebrow{color:var(--board-muted)}.leave-time{font-family:var(--font-display);font-size:min(var(--text-time-hero), 33cqi);letter-spacing:-.02em;color:var(--accent);font-variant-numeric:tabular-nums;margin-top:4px;line-height:1;display:block}.leave-board .day-label{color:var(--board-muted)}.leave-when{border-radius:var(--radius-sm);background:var(--board-2);font-size:var(--text-secondary);font-variant-numeric:tabular-nums;white-space:nowrap;padding:4px 10px;font-weight:600;transition:background-color .2s,color .2s;position:absolute;top:12px;right:14px}.is-passed .leave-time{color:var(--board-muted);text-decoration:line-through;text-decoration-thickness:3px}.is-passed .leave-when{background:var(--accent);color:var(--ink)}.leave-facts{border-top:1px solid var(--board-line);grid-template-columns:repeat(2,minmax(0,1fr));margin:14px 0 0;padding-top:12px;display:grid}.leave-facts>div+div{border-left:1px solid var(--board-line);padding-left:16px}.leave-facts dt{font-size:var(--text-label);letter-spacing:.08em;text-transform:uppercase;color:var(--board-muted);font-weight:700}.leave-facts dd{text-wrap:balance;font-family:var(--font-display);font-size:min(var(--text-headline), 25cqi);font-variant-numeric:tabular-nums;margin:2px 0 0;font-weight:700;line-height:1.1}.leave-facts .leave-target{font-family:var(--font-ui);font-size:var(--text-secondary);color:var(--board-muted);font-weight:400;line-height:1.4}.board-alert{border-radius:var(--radius-lg);background:var(--accent-soft);color:var(--ink);animation:rise .26s var(--ease-out) 80ms both;grid-template-columns:auto minmax(0,1fr);align-items:center;gap:12px;margin-top:16px;padding:14px;display:grid}.board-alert p{overflow-wrap:anywhere;font-weight:600;line-height:1.35}.board-alert .secondary-button{text-align:left;grid-column:1/-1;width:100%}.after-class{gap:2px;display:grid}.after-class-arrival{font-size:var(--text-secondary);color:var(--muted);font-weight:600}.after-class-arrival strong{color:var(--ink);font-weight:700;display:inline-block}@container (max-width:239px){.leave-facts{grid-template-columns:minmax(0,1fr)}.leave-facts>div+div{border-left:0;border-top:1px solid var(--board-line);margin-top:12px;padding:12px 0 0}.leave-when{margin-top:10px;display:inline-block;position:static}.board-alert{grid-template-columns:minmax(0,1fr);padding:12px}.board-alert .secondary-button{padding-inline:12px}.board-alert .secondary-button .icon{display:none}}.results-section{outline:none;margin-top:28px}.results-section:empty{margin:0}.results-caption{color:var(--muted);font-size:var(--text-secondary);flex-wrap:wrap;align-items:center;gap:8px;margin:-4px 0 14px;display:flex}.caption-deadline{white-space:nowrap;color:var(--ink);font-weight:600}.schedule-tag{border:1.5px solid var(--ink);border-radius:var(--radius-sm);font-size:var(--text-label);letter-spacing:.08em;text-transform:uppercase;color:var(--ink);align-items:center;gap:5px;padding:2px 8px;font-weight:700;line-height:1.4;display:inline-flex}.schedule-tag .icon{width:13px;height:13px}.route-list{gap:12px;display:grid}.route-list>*{animation:card-in .38s var(--ease-out) both}.route-list>:nth-child(2){animation-delay:50ms}.route-list>:nth-child(3){animation-delay:.1s}.route-list>:nth-child(n+4){animation-delay:.135s}@keyframes pop{40%{transform:scale(1.3)}}@keyframes card-in{0%{opacity:0;transform:translateY(14px)scale(.985)}}@keyframes settle{0%{opacity:0;transform:translateY(12px)scale(.97)}}.tick{animation:tick .32s var(--ease-out) both;display:inline-block}.leave-time .tick{animation-delay:.12s}@keyframes tick{0%{opacity:0;filter:blur(2px);transform:translateY(.3em)}}@keyframes rise{0%{opacity:0;transform:translateY(10px)}}.route-card{text-align:left;background:var(--surface);border:1px solid var(--border-soft);border-radius:var(--radius-lg);width:100%;box-shadow:var(--elevation-1);padding:16px 16px 12px;display:block}.route-card.selected{border-color:var(--ink);box-shadow:0 0 0 1px var(--ink), var(--elevation-2)}.route-card:active{transform:translateY(1px)scale(.99);box-shadow:0 1px 2px #0e1c2814}.route-topline{flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:8px 12px;margin-bottom:14px;display:flex}.route-topline .eyebrow{align-items:center;gap:8px;display:flex}.arrival-time{font-family:var(--font-display);font-size:var(--text-time);letter-spacing:-.01em;margin-top:6px;font-weight:700;line-height:1;display:block}.day-label{font-family:var(--font-ui);font-size:var(--text-secondary);letter-spacing:0;color:var(--muted);margin-top:4px;font-weight:600;display:block}.route-duration{text-align:right;margin-left:auto}.route-duration strong{font-family:var(--font-display);font-size:var(--text-title);font-weight:700;line-height:1.1;display:block}.route-distinction{background:var(--accent);color:var(--ink);border-radius:var(--radius-sm);font-size:var(--text-label);letter-spacing:.08em;text-transform:uppercase;margin-top:6px;padding:2px 8px;font-weight:700;display:inline-block}.arrival-time .meridiem,.leave-time .meridiem,.next-class-clock .meridiem{letter-spacing:.02em;font-size:.42em}.journey-bar{align-items:center;gap:3px;height:8px;margin:0 0 12px;display:flex}.journey-bar i{border-radius:var(--radius-xs);background:#7d879166;flex-basis:0;min-width:6px;height:4px}.journey-bar .ride{min-width:18px;height:8px;box-shadow:inset 0 0 0 1px #0e1c2814}.leave-board .journey-bar,.detail-summary .journey-bar{animation:draw .64s var(--ease-out) .14s both;margin:16px 0 14px}.leave-board .journey-bar .walk,.detail-summary .journey-bar .walk{background:#b4c4d280}.leave-board .journey-bar .ride,.detail-summary .journey-bar .ride{box-shadow:inset 0 0 0 1px #ffffff47}@keyframes draw{0%{clip-path:inset(0 100% 0 0)}}.route-sequence{flex-wrap:wrap;gap:6px;margin-bottom:12px;display:flex}.sequence-item{align-items:center;gap:6px;min-width:0;max-width:100%;display:inline-flex}.sequence-item>.icon{width:14px;color:var(--muted)}.detail-summary .sequence-item>.icon{color:var(--board-muted)}.route-badge{border-radius:var(--radius-sm);max-width:100%;min-height:32px;font-family:var(--font-display);font-weight:700;font-size:var(--text-body);overflow-wrap:anywhere;border:1px solid #ffffff40;align-items:center;gap:6px;padding:3px 10px 3px 8px;line-height:1.2;display:inline-flex;box-shadow:0 0 0 1px #0e1c2833}.route-badge .icon{width:16px;height:16px}.route-metrics{text-wrap:pretty;font-size:var(--text-body);margin-bottom:8px;font-weight:600;display:block}.route-metrics>span:not([aria-hidden]){white-space:nowrap}.boarding-context{font-size:var(--text-body);color:var(--muted);line-height:1.5;display:block}.boarding-context strong{color:var(--ink);font-weight:700}.route-transfer{flex-wrap:wrap;align-items:center;gap:6px 10px;margin-top:6px;display:flex}.route-transfer .secondary{display:inline}.route-warning{color:var(--accent-deep);font-size:var(--text-secondary);align-items:center;gap:6px;margin-top:10px;font-weight:700;display:flex}.route-warning .icon{width:18px;height:18px}.transfer-tag{border-radius:var(--radius-sm);min-height:26px;font-size:var(--text-label);letter-spacing:.06em;text-transform:uppercase;white-space:nowrap;vertical-align:middle;border:1px solid;align-items:center;gap:5px;padding:2px 8px 2px 6px;font-weight:700;line-height:1.2;display:inline-flex}.transfer-tag .icon{stroke-width:2.2px;width:15px;height:15px}.transfer-tag.is-comfortable{background:var(--surface-quiet);border-color:var(--border);color:var(--ink)}.transfer-tag.is-tight{background:var(--accent-soft);border-color:var(--accent-line);color:var(--accent-deep)}.transfer-tag.is-risky{background:var(--board);border-color:var(--board);color:var(--board-text)}.transfer-tag.is-risky .icon{color:var(--accent)}.detail-summary .transfer-tag.is-comfortable{background:var(--board-2);border-color:var(--board-line);color:var(--board-text)}.detail-summary .transfer-tag.is-risky{background:var(--accent);border-color:var(--accent);color:var(--ink)}.detail-summary .transfer-tag.is-risky .icon{color:var(--ink)}.step-content .transfer-confidence{font-size:var(--text-secondary);font-variant-numeric:tabular-nums;flex-wrap:wrap;align-items:center;gap:6px 10px;margin-top:10px;font-weight:600;display:flex}.board-note{border-radius:var(--radius-md);background:var(--accent-soft);color:var(--ink);align-items:flex-start;gap:8px;margin:-4px 0 16px;padding:10px 12px;font-weight:600;line-height:1.35;display:flex}.board-note .icon{width:20px;height:20px;color:var(--accent-deep);flex:none}.route-open{font-size:var(--text-secondary);border-top:1px solid var(--border);justify-content:space-between;align-items:center;margin-top:12px;padding-top:10px;font-weight:700;display:flex}.route-open .icon{width:20px;transition:transform .2s var(--ease-out)}.notice{background:var(--accent-soft);color:var(--ink);border:1px solid var(--accent-line);border-radius:var(--radius-md);font-size:var(--text-body);margin:12px 0 16px;padding:12px 16px}.save-limit{animation:rise .2s var(--ease-out) both}.state-message{border:1px solid var(--border-soft);background:var(--surface);border-radius:var(--radius-lg);box-shadow:var(--elevation-1);padding:20px}.state-message>.state-icon{border-radius:var(--radius-control);background:var(--board);width:48px;height:48px;color:var(--accent);place-items:center;margin-bottom:14px;display:grid}.state-message>.state-icon .icon{width:26px;height:26px}.state-message p{font-size:var(--text-body);color:var(--muted);margin:8px 0 18px}.loading-state>p{color:var(--muted);font-size:var(--text-body)}.route-skeletons{gap:12px;margin-top:16px;display:grid}.route-skeleton{background:var(--surface);border:1px solid var(--border-soft);border-radius:var(--radius-lg);box-shadow:var(--elevation-1);animation:card-in .38s var(--ease-out) both;gap:12px;padding:16px;display:grid}.route-skeleton:nth-child(2){animation-delay:70ms}.route-skeleton:nth-child(3){animation-delay:.14s}.route-skeleton i{border-radius:var(--radius-xs);background:var(--surface-quiet);width:72%;height:14px;animation:1.4s ease-in-out infinite alternate breathe;display:block}.route-skeleton .sk-time{width:40%;height:36px}.route-skeleton .sk-short{width:48%}.route-skeleton .sk-line{width:100%;height:8px;animation:none;position:relative;overflow:hidden}.route-skeleton .sk-line:after{content:"";border-radius:inherit;width:35%;animation:travel 1.6s var(--ease-in-out) infinite;background:linear-gradient(90deg,#0000,#f5b53f99,#0000);position:absolute;inset:0}@keyframes breathe{to{opacity:.55}}@keyframes travel{0%{transform:translate(-100%)}to{transform:translate(290%)}}.detail-open .planning-content{display:none}.back-button{min-height:48px;font-size:var(--text-body);align-items:center;gap:8px;margin-bottom:8px;padding:0 8px 0 0;font-weight:600;display:flex}.detail-summary{background:var(--hero-fill);box-shadow:var(--elevation-hero);color:var(--board-text);border-radius:var(--radius-xl);transform-origin:50% 0;animation:settle .44s var(--ease-drawer) both;view-transition-name:trip;padding:8px 16px 20px}.timeline>li{animation:rise .3s var(--ease-out) both}.timeline>li:nth-child(2){animation-delay:30ms}.timeline>li:nth-child(3){animation-delay:60ms}.timeline>li:nth-child(4){animation-delay:90ms}.timeline>li:nth-child(5){animation-delay:.12s}.timeline>li:nth-child(n+6){animation-delay:.15s}.detail-summary .back-button{color:var(--board-text)}.detail-summary .secondary,.detail-summary .results-caption,.detail-summary .summary-metrics{color:var(--board-muted)}.detail-summary .schedule-tag{color:var(--board-text);border-color:var(--board-muted)}.destination-heading{justify-content:space-between;align-items:flex-start;gap:12px;margin:0 0 16px;display:flex}.destination-heading h2{font-size:min(var(--text-headline), 18cqi);letter-spacing:-.01em;overflow-wrap:anywhere;-webkit-hyphens:auto;hyphens:auto;min-width:0;line-height:1.1}.detail-summary .icon-button{color:var(--board-text);margin:-6px -8px 0 0}.detail-summary .is-saved .icon{fill:var(--accent);stroke:var(--accent)}.detail-arrival{border-top:1px solid var(--board-line);flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:8px 20px;margin-bottom:12px;padding-top:16px;display:flex}.detail-summary .arrival-time{font-size:min(var(--text-time-hero), 33cqi);letter-spacing:-.02em;color:var(--accent);margin-top:0}.detail-summary .day-label{color:var(--board-muted)}.summary-duration{text-align:right;margin-left:auto}.summary-duration strong{font-family:var(--font-display);font-size:var(--text-headline);font-weight:700;line-height:1.1;display:block}.summary-arrival .secondary,.summary-duration .secondary{margin-top:2px}.summary-metrics{font-size:var(--text-body);flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:16px;font-weight:600;display:flex}.detail-summary>.route-sequence{margin-bottom:16px}.summary-context{border-top:1px solid var(--board-line);padding-top:12px;margin:0!important}.detail-summary .notice{color:var(--ink)}.map-column{display:none}.detail-open .map-column{margin:16px 0 0;display:block}.map-panel{background:var(--surface);border:1px solid var(--border-soft);border-radius:var(--radius-xl);box-shadow:var(--elevation-1);overflow:hidden}.map-heading{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;gap:12px;padding:14px 16px;display:flex}.map-heading h2{font-size:var(--text-field)}.map-heading .secondary{font-size:var(--text-secondary)}.map-canvas-wrap,.map-expansion-placeholder{background:radial-gradient(120% 90% at 50% 40%,#0000 55%,#0e1c2812),radial-gradient(75% 60% at 0 105%,#0000 64%,#19659917 64.5% 66.5%,#0000 67%),repeating-linear-gradient(-35deg,#0e1c280d 0 1px,#0000 1px 34px),repeating-linear-gradient(55deg,#0e1c280a 0 1px,#0000 1px 34px),#e7ece4;height:320px;position:relative}.map-canvas{width:100%;height:100%}.map-actions{flex-wrap:wrap;justify-content:flex-end;gap:8px;max-width:calc(100% - 72px);display:flex;position:absolute;top:12px;right:12px}.map-button{background:var(--surface);color:var(--ink);border:1px solid var(--border-soft);min-height:48px;font-size:var(--text-secondary);border-radius:var(--radius-md);box-shadow:var(--elevation-3);align-items:center;gap:6px;padding:8px 14px;font-weight:600;display:flex}.map-button:active{transform:scale(.97)}.map-button .icon{width:18px;height:18px}.map-unavailable{text-align:center;border-radius:var(--radius-lg);background:var(--surface);width:min(300px,100% - 48px);box-shadow:var(--elevation-3);animation:rise .32s var(--ease-out) both;flex-direction:column;align-items:center;gap:10px;padding:20px;display:flex;position:absolute;top:50%;left:50%;translate:-50% -50%}.map-unavailable>.icon{width:28px;height:28px;color:var(--muted)}.map-unavailable strong{font-weight:700}.map-unavailable p{max-width:280px;font-size:var(--text-secondary);color:var(--muted)}.map-caption{background:var(--surface);border-radius:var(--radius-md);width:fit-content;max-width:calc(100% - 32px);box-shadow:var(--elevation-3);font-size:var(--text-label);color:var(--muted);padding:7px 12px;font-weight:600;position:absolute;bottom:44px;left:16px;right:16px}.map-legend{font-size:var(--text-label);color:var(--muted);border-top:1px solid var(--border);flex-wrap:wrap;gap:8px 20px;padding:12px 16px;font-weight:600;display:flex}.map-legend span{align-items:center;gap:6px;display:flex}.map-legend i{border-radius:50%;width:12px;height:12px;display:inline-block}.legend-origin{background:var(--accent)}.legend-stop{border:2px solid var(--ink)}.legend-destination{background:var(--ink);border-radius:var(--radius-xs)!important}.map-marker{background:var(--surface);border:2.5px solid var(--ink);min-width:34px;height:34px;color:var(--ink);font-family:var(--font-display);font-size:var(--text-secondary);border-radius:50%;font-weight:700;box-shadow:0 2px 6px #0e1c2833}.map-marker:after{content:"";position:absolute;inset:-6px}.map-marker.origin{background:var(--accent);border-color:var(--ink)}.map-marker.destination{background:var(--ink);color:#fff;border-radius:var(--radius-sm)}.map-expansion-placeholder{color:var(--muted);place-items:center;font-weight:600;display:grid}.timeline-section{margin-top:28px}.timeline-section .section-heading{flex-wrap:wrap;align-items:baseline;gap:4px 12px;margin-bottom:20px}.timeline-section h2{font-size:var(--text-title)}.timeline-step{padding:0 0 20px 48px;position:relative}.timeline-step:not(.arrival-step)>.step-content{border-bottom:1px solid var(--border);padding-bottom:20px}.timeline-step:before{content:"";border-radius:var(--radius-xs);background:var(--ink);width:3px;position:absolute;top:36px;bottom:0;left:15px}.transfer-step:before{background:repeating-linear-gradient(to bottom, var(--field) 0 5px, transparent 5px 10px)}.timeline-step:has(.walk-dot):before{background:repeating-linear-gradient(to bottom, var(--field) 0 5px, transparent 5px 10px)}.timeline-step:last-child:before{display:none}.timeline-dot{background:var(--canvas);width:34px;height:34px;color:var(--ink);border:2px solid var(--ink);border-radius:50%;place-items:center;display:grid;position:absolute;top:-1px;left:-1px}.timeline-dot .icon{width:18px;height:18px}.ride-dot{background:var(--route,var(--ink));border-color:var(--route,var(--ink));color:var(--route-text,#fff);border-radius:var(--radius-sm);box-shadow:var(--elevation-1)}.ride-step:before{background:var(--route,var(--ink));width:4px;left:14.5px}.step-heading{justify-content:space-between;align-items:flex-start;gap:12px;display:flex}.step-heading h3{overflow-wrap:anywhere;flex:1;min-width:0;padding-top:3px}.step-heading time,.alight time{font-family:var(--font-display);font-size:var(--text-title);font-weight:700;line-height:1.2}.step-heading h3 .route-badge{vertical-align:middle;margin-left:4px}.step-content p{font-size:var(--text-body);overflow-wrap:anywhere;margin-top:6px}.step-content .secondary{font-size:var(--text-secondary)}.step-content .direction{font-size:var(--text-field);margin-top:8px;font-weight:700}.ride-info{border-top:1px dashed var(--field);border-bottom:1px dashed var(--field);font-size:var(--text-secondary);color:var(--muted);margin-top:14px;padding:10px 0}.ride-info strong{color:var(--ink);font-weight:700}.alight{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:12px;margin-top:14px;display:flex}.alight strong{font-size:var(--text-label);letter-spacing:.08em;text-transform:uppercase;color:var(--muted);font-weight:700}.alight p{font-size:var(--text-field);margin-top:2px;font-weight:600}.transfer-step{padding-top:4px;padding-bottom:24px}.timeline-step.transfer-step>.step-content{background:var(--accent-soft);border:1px solid var(--accent-line);border-radius:var(--radius-control);padding:14px 16px}.transfer-step h3{overflow-wrap:anywhere}.transfer-step .timeline-dot{background:var(--accent-soft);border-color:var(--accent-deep);color:var(--accent-deep);top:12px}.transfer-step:after{content:"";background:var(--field);width:3px;height:12px;position:absolute;top:0;left:15px}.arrival-step{padding-bottom:0}.arrival-dot{color:var(--ink);background:var(--accent);border-color:var(--ink);border-radius:50%}.arrival-step .step-content{background:var(--hero-fill);box-shadow:var(--elevation-hero);color:var(--board-text);border-radius:var(--radius-lg);padding:14px 16px}.arrival-step .step-heading time{color:var(--accent);font-size:min(var(--text-headline), 25cqi)}@container (max-width:219px){.arrival-step .step-heading{flex-direction:column;gap:4px}}.arrival-step .eyebrow{color:var(--board-muted);margin:0 0 6px}.app-footer{font-size:var(--text-secondary);color:var(--muted);border-top:1px solid var(--border);margin-top:36px;padding-top:20px}.app-footer p+p{margin-top:4px}.app-footer details{margin-top:8px}.app-footer summary,.overnight-help summary{align-items:center;gap:10px;width:fit-content;min-height:48px;font-weight:600;list-style:none;display:flex}.app-footer summary::-webkit-details-marker{display:none}.overnight-help summary::-webkit-details-marker{display:none}.app-footer summary:before,.overnight-help summary:before{content:"";width:7px;height:7px;transition:transform .22s var(--ease-out);border-bottom:2px solid;border-right:2px solid;margin:0 2px;transform:rotate(-45deg)}details[open]>summary:before{transform:rotate(45deg)}.app-footer details::details-content{opacity:0;block-size:0;transition:block-size .3s var(--ease-out), opacity .22s ease, content-visibility .3s allow-discrete;overflow:clip}.overnight-help::details-content{opacity:0;block-size:0;transition:block-size .3s var(--ease-out), opacity .22s ease, content-visibility .3s allow-discrete;overflow:clip}.app-footer details[open]::details-content{opacity:1;block-size:auto}.overnight-help[open]::details-content{opacity:1;block-size:auto}.app-footer details p{max-width:480px;margin-top:8px}.app-footer a{text-underline-offset:3px;text-decoration:underline}.sheet{color:var(--ink);background:var(--surface);border-radius:var(--radius-sheet) var(--radius-sheet) 0 0;overscroll-behavior:contain;opacity:1;width:100%;max-width:600px;max-height:94dvh;transition:transform .28s var(--ease-drawer), opacity .2s ease, overlay .28s allow-discrete, display .28s allow-discrete;border:0;margin:auto auto 0;padding:0;overflow-y:auto;transform:none;box-shadow:0 -4px 8px #0e1c2814,0 -24px 48px -12px #0e1c2847}@starting-style{.sheet[open]{opacity:.6;transform:translateY(100%)}}.sheet::backdrop{background:#0e1c28aa;transition:opacity .24s}@starting-style{.sheet[open]::backdrop{opacity:0}}.sheet-header{z-index:1;background:var(--surface);justify-content:space-between;align-items:center;gap:12px;padding:20px 12px 8px 20px;display:flex;position:sticky;top:0}.sheet-header:before{content:"";border-radius:var(--radius-xs);background:var(--border);width:40px;height:4px;margin-left:-20px;position:absolute;top:8px;left:50%}.sheet-header h2{font-size:var(--text-title)}.search-content,.departure-content{padding:12px 20px max(24px, env(safe-area-inset-bottom))}.search-content{min-height:420px}.search-content .field-label{margin-bottom:8px}.search-input{border:2px solid var(--ink);border-radius:var(--radius-control);align-items:center;padding:0 12px;display:flex}.search-input>.icon{color:var(--ink)}.search-input:focus-within{outline:3px solid var(--focus);outline-offset:3px}.search-input input{width:100%;min-width:0;font-size:var(--text-field);background:0 0;border:0;outline:none;padding:15px 10px}.search-status{color:var(--muted);font-size:var(--text-secondary);margin:16px 0 8px}.search-results li{border-bottom:1px solid var(--border);border-radius:var(--radius-md);cursor:pointer;align-items:center;gap:14px;min-height:76px;padding:10px 8px;transition:background-color .12s;display:flex}.search-results li>span{overflow-wrap:anywhere;flex:1;min-width:0}.search-results strong{font-weight:600;font-size:var(--text-field);display:block}.search-results .secondary{font-size:var(--text-secondary);margin-top:2px}.search-results li>.icon:first-child{box-sizing:content-box;border-radius:var(--radius-md);background:var(--surface-quiet);width:20px;height:20px;color:var(--ink);padding:10px}.search-results li>.icon:last-child{color:var(--muted);width:18px}.search-results li.active{background:var(--accent-soft)}.search-results li.active>.icon:first-child{background:var(--accent)}.departure-content fieldset{border:0;margin:0 0 20px;padding:0}.radio-row,.check-row{min-height:56px;font-size:var(--text-field);align-items:center;gap:14px;font-weight:600;display:flex}.radio-row{border-bottom:1px solid var(--border);padding:8px 0}.radio-row input{appearance:none;border:2px solid var(--field);background:var(--surface);transition:border-color .15s ease, outline-offset .18s var(--ease-out);border-radius:50%;place-items:center;margin:0;display:grid}.radio-row input:before{content:"";background:var(--ink);width:10px;height:10px;transition:transform .2s var(--ease-out);border-radius:50%;transform:scale(0)}.radio-row input:checked{border-color:var(--ink)}.radio-row input:checked:before{transform:scale(1)}.date-fields{grid-template-columns:minmax(0,1.2fr) minmax(0,1fr);gap:12px;display:grid}.date-fields label{min-width:0;font-size:var(--text-secondary);font-weight:700}.date-fields input{border:2px solid var(--ink);border-radius:var(--radius-md);background:var(--surface);width:100%;min-width:0;height:52px;font-size:var(--text-body);margin:6px 0 12px;padding:10px;font-weight:500}.time-fields{animation:rise .2s var(--ease-out) both}.buffer-field{animation:rise .2s var(--ease-out) both;font-size:var(--text-secondary);gap:6px;font-weight:700;display:grid}.buffer-field select{border:2px solid var(--ink);border-radius:var(--radius-md);background:var(--surface);height:52px;font-size:var(--text-body);color:var(--ink);padding:0 10px;font-weight:500}.time-fields>.secondary{margin:12px 0 0}.overnight-help{font-size:var(--text-secondary);color:var(--muted);margin:16px 0 24px}.overnight-help p{margin-bottom:8px}.check-row{font-size:var(--text-body);align-items:flex-start;padding-top:12px}.departure-content .primary-button{margin-top:24px}.sheet-map{border-radius:0;width:100%;max-width:none;height:100dvh;max-height:100dvh}.sheet-map .map-canvas-wrap{height:calc(100dvh - 90px)}.preview-toolbar{color:var(--ink);font-size:var(--text-label);background:#e8e1d2;border-bottom:1px solid #baad94;flex-wrap:wrap;align-items:center;gap:12px 24px;padding:12px 24px;display:flex}.preview-toolbar strong{font-size:var(--text-secondary)}.preview-toolbar p{flex:1;min-width:220px}.preview-toolbar select{background:var(--surface);min-height:48px;color:var(--ink);border:1px solid var(--field);border-radius:var(--radius-sm);width:100%;padding:10px;display:block}.preview-toolbar label{width:240px;max-width:100%}.preview-toolbar a{text-underline-offset:3px;align-content:center;min-height:48px;text-decoration:underline}.about-page{max-width:820px;padding:24px 16px max(40px, env(safe-area-inset-bottom));overflow-wrap:anywhere;margin:0 auto}.about-back{min-height:48px;font-size:var(--text-body);align-items:center;margin-bottom:16px;font-weight:600;display:inline-flex}.about-page a{color:var(--ink);text-underline-offset:4px;text-decoration:underline}.about-page h1{font-family:var(--font-display);font-size:var(--text-display);letter-spacing:-.01em;line-height:1.05}.about-intro{color:var(--muted);font-size:var(--text-field);margin-top:16px;line-height:1.5}.about-page section{border-top:1px solid var(--border);margin-top:32px;padding-top:24px}.about-page section p{max-width:68ch;margin-top:16px;line-height:1.65}.about-links{flex-wrap:wrap;gap:8px 12px;margin-top:12px;display:flex}.about-links a{justify-content:center;align-items:center;min-width:48px;min-height:48px;display:inline-flex}.about-links .icon{width:24px;height:24px}.about-disclaimer{border-top:1px solid var(--border);font-size:var(--text-secondary);color:var(--muted);margin-top:32px;padding-top:24px}@media (hover:hover) and (pointer:fine){.place-control:hover,.local-place:hover,.icon-button:hover,.text-button:hover{background-color:var(--surface-quiet)}.departure-button:hover,.secondary-button:hover{background-color:#dfe3db}.place-chip:hover{box-shadow:var(--elevation-2);transform:translateY(-1px)}.import-zone:hover{border-color:var(--ink);background-color:var(--surface)}.secondary-button.on-board:hover,.detail-summary .icon-button:hover{background-color:var(--board-2)}.route-card:hover{box-shadow:var(--elevation-2);transform:translateY(-2px)}.route-card.selected:hover{box-shadow:0 0 0 1px var(--ink), var(--elevation-3)}.route-card:hover .route-open .icon,.primary-button:hover .icon{transform:translate(4px)}.insight .secondary-button:hover .icon,.board-alert .secondary-button:hover .icon{transform:translate(3px)}.primary-button:hover{filter:brightness(1.04);box-shadow:inset 0 1px #ffffff73,0 2px 4px #0e1c281a,0 8px 16px -6px #7a4f0c66}.search-results li:hover{background:var(--accent-soft)}.header-link:hover{-webkit-text-decoration-color:var(--accent);-webkit-text-decoration-color:var(--accent);-webkit-text-decoration-color:var(--accent);text-decoration-color:var(--accent)}}@media (max-width:359px){.app-header{padding-inline:12px}.project-label{gap:8px}.app-workspace{padding:20px 12px max(24px, env(safe-area-inset-bottom))}.about-page,.planner{padding-inline:12px}.route-card{padding:14px 12px 10px}.detail-summary{padding-inline:12px}.timeline-step{padding-left:44px}.step-heading{flex-wrap:wrap;gap:4px}.step-heading h3{flex-basis:100%}.search-content,.departure-content{padding-inline:14px}.expand-label{clip-path:inset(50%);white-space:nowrap;border-width:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}}@media (min-width:600px){.header-context{display:block}.app-header{padding-inline:32px}.app-workspace,.about-page{padding:32px}.app-workspace{max-width:760px}.map-canvas-wrap{height:400px}.sheet{border-radius:var(--radius-sheet);width:calc(100% - 48px);max-height:88dvh;margin:auto}@starting-style{.sheet[open]{opacity:0;transform:scale(.96)}}.sheet-header:before{display:none}.sheet-map{width:calc(100% - 32px);max-width:1500px;height:calc(100dvh - 32px);max-height:none}.sheet-map .map-canvas-wrap{height:calc(100dvh - 122px)}}@media (min-width:1000px){.app-header{padding-inline:max(48px,50% - 672px)}.app-workspace{grid-template-rows:auto auto 1fr;grid-template-columns:minmax(380px,480px) minmax(0,1fr);align-items:start;column-gap:48px;max-width:1440px;padding:40px 48px 48px;display:grid}.planning-column{grid-area:1/1}.map-column,.detail-open .map-column{grid-area:1/2/4;margin:0;display:block;position:sticky;top:24px}.map-canvas-wrap,.map-expansion-placeholder{height:clamp(440px,100dvh - 250px,850px)}.instructions-column{grid-area:2/1}.app-footer{grid-area:3/1}.detail-open .planning-content{display:block}.detail-summary{margin-top:28px}.back-button{margin-bottom:4px}}::view-transition-group(trip){animation-duration:.42s;animation-timing-function:var(--ease-drawer)}::view-transition-old(trip){object-fit:cover;object-position:top;height:100%}::view-transition-new(trip){object-fit:cover;object-position:top;height:100%}::view-transition-old(root){animation-duration:.22s}::view-transition-new(root){animation-duration:.22s}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-property:opacity,color,background-color,border-color!important}@keyframes rise{0%{opacity:0}}@keyframes card-in{0%{opacity:0}}@keyframes settle{0%{opacity:0}}@keyframes tick{0%{opacity:0}}@keyframes draw{0%{opacity:0}}.route-skeleton i,.route-skeleton .sk-line:after{animation:none}::view-transition-group(*){animation:none}:active,.icon,.dragging .import-icon{transform:none!important}}.live-following{border:1.5px solid var(--ink);border-radius:var(--radius-lg);background:var(--surface);color:var(--ink);margin-bottom:1rem;padding:clamp(16px,4vw,24px)}.live-following p{margin-block:.65rem}.live-following-header{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px;margin-bottom:16px;display:flex}.live-following-header .eyebrow{margin:0}.live-status{border:1.5px solid var(--ink);border-radius:var(--radius-sm);background:var(--surface);color:var(--ink);font-size:var(--text-label);letter-spacing:.06em;text-transform:uppercase;padding:3px 10px;font-weight:700}.live-status.is-live{background:var(--ink);color:var(--accent)}.live-next-action{padding-bottom:20px}.live-next-action h3{font-family:var(--font-display);font-size:var(--text-headline);overflow-wrap:anywhere;line-height:1.2}.live-route-identity{flex-wrap:wrap;align-items:center;gap:8px 12px;margin-block:14px;display:flex}.live-route-identity .route-badge{white-space:normal;overflow-wrap:anywhere}.live-route-identity>span:last-child:not(.route-badge){font-size:var(--text-body)}.live-next-action button{margin-top:16px}.live-onboard{font-weight:700}.live-transfer-note{font-size:var(--text-body)}.live-following>details{border-top:1px solid var(--border);font-size:var(--text-body);margin-top:16px;padding-top:16px}.live-following select{border:1.5px solid var(--ink);border-radius:var(--radius-md);max-width:100%;color:var(--ink);background:#fff;margin-block:.5rem;padding:.65rem;display:block}.live-timing{border-top:1px dashed var(--field);margin-block:.75rem;padding-top:8px}.map-marker.live-vehicle{background:var(--ink);color:#fff;border:3px solid var(--accent)}.mapbox-logo{z-index:2;border-radius:var(--radius-xs);background:#fff;padding:2px;position:absolute;bottom:8px;left:8px}@property --tw-rotate-x{syntax:"*";inherits:false}@property --tw-rotate-y{syntax:"*";inherits:false}@property --tw-rotate-z{syntax:"*";inherits:false}@property --tw-skew-x{syntax:"*";inherits:false}@property --tw-skew-y{syntax:"*";inherits:false}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:"*";inherits:false}@property --tw-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:"*";inherits:false}@property --tw-inset-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:"*";inherits:false}@property --tw-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:"*";inherits:false}@property --tw-inset-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:"*";inherits:false}@property --tw-ring-offset-width{syntax:"<length>";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:"*";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-ease{syntax:"*";inherits:false}
