:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--background:#f4f7fb;--surface:#fff;--surface-subtle:#f8fafc;--text:#0f172a;--muted:#475569;--border:#cbd5e1;--primary:#075985;--primary-hover:#0c4a6e;--primary-soft:#e0f2fe;--success:#166534;--success-soft:#f0fdf4;--warning:#92400e;--warning-soft:#fffbeb;--danger:#991b1b;--danger-soft:#fef2f2;--radius:.8rem;font-synthesis:none;text-rendering:optimizelegibility;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Noto Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif}*{box-sizing:border-box}html{background:var(--background);scroll-behavior:smooth;min-width:20rem;min-height:100%}body{min-height:100vh;color:var(--text);background:var(--background);-webkit-font-smoothing:antialiased;margin:0}button,input{font:inherit}button,a{-webkit-tap-highlight-color:transparent}a{color:var(--primary);text-underline-offset:.16em}a:hover{color:var(--primary-hover)}:focus-visible{outline-offset:.2rem;outline:.2rem solid #0369a1}[hidden]{display:none!important}.visually-hidden{clip:rect(0, 0, 0, 0)!important;white-space:nowrap!important;border:0!important;width:1px!important;height:1px!important;margin:-1px!important;padding:0!important;position:absolute!important;overflow:hidden!important}.app-shell{min-height:100vh;padding:max(1rem, env(safe-area-inset-top)) max(1rem, env(safe-area-inset-right)) max(1rem, env(safe-area-inset-bottom)) max(1rem, env(safe-area-inset-left))}.app-card{background:var(--surface);border:1px solid #dbe4ef;border-radius:1rem;width:min(64rem,100%);margin:0 auto;overflow:visible}.app-header,.service-status,.trip-planner,.app-footer{padding:clamp(1rem,3vw,2rem)}.app-header{border-bottom:1px solid #e2e8f0}.eyebrow{color:var(--primary);letter-spacing:.09em;text-transform:uppercase;margin:0 0 .35rem;font-size:.76rem;font-weight:800}.app-title{letter-spacing:-.035em;margin:0;font-size:clamp(1.7rem,5vw,2.5rem);line-height:1.1}.app-title-row{flex-wrap:wrap;align-items:baseline;column-gap:.5rem;display:flex}.app-subtitle,.section-heading>p:last-child{max-width:42rem;color:var(--muted);margin:.55rem 0 0;line-height:1.55}.app-byline{white-space:nowrap;font-family:Dancing Script,cursive;font-size:1.65rem;font-weight:600;text-decoration:none}.offline-banner{color:var(--warning);background:var(--warning-soft);border-radius:var(--radius);border:1px solid #f59e0b;margin:1rem clamp(1rem,3vw,2rem) 0;padding:.9rem 1rem;line-height:1.45}.service-status{background:var(--surface-subtle);border-bottom:1px solid #e2e8f0;gap:.75rem;display:grid}.service-status__header{justify-content:space-between;align-items:flex-start;gap:1rem;display:flex}.service-status h2,.trip-planner h2,.trip-results h3{margin:0;line-height:1.2}.service-status__actions{flex-wrap:wrap;flex:none;gap:.55rem;display:flex}.button{text-align:center;cursor:pointer;border:2px solid #0000;border-radius:.65rem;justify-content:center;align-items:center;min-height:2.75rem;padding:.65rem 1rem;font-weight:750;line-height:1.2;text-decoration:none;display:inline-flex}.button--primary{color:#fff;background:var(--primary);border-color:var(--primary)}.button--primary:hover{color:#fff;background:var(--primary-hover);border-color:var(--primary-hover)}.button--secondary{color:var(--primary);background:var(--surface);border-color:var(--primary)}.button--secondary:hover{color:var(--primary-hover);background:var(--primary-soft);border-color:var(--primary-hover)}.button:disabled{color:#64748b;cursor:not-allowed;background:#e2e8f0;border-color:#cbd5e1}.service-status__summary,.service-status__warning,.field-error,.field-success,.field-status,.planner-message{border-radius:.65rem;margin:0;padding:.75rem .9rem;line-height:1.45}.service-status__summary--operational{color:var(--success);background:var(--success-soft);border:1px solid #86efac}.service-status__summary--no-bikes,.service-status__summary--no-docks,.service-status__summary--service-disabled,.service-status__summary--stale,.service-status__warning,.planner-message,.field-status{color:var(--warning);background:var(--warning-soft);border:1px solid #fbbf24}.service-status__summary--unavailable,.field-error{color:var(--danger);background:var(--danger-soft);border:1px solid #fca5a5}.field-success{color:var(--success);background:var(--success-soft);border:1px solid #86efac}.service-status__timestamp{color:var(--muted);margin:0;font-size:.9rem}.station-map{border-bottom:1px solid #e2e8f0;padding:clamp(1rem,3vw,2rem)}.station-map__legend{flex-wrap:wrap;align-items:center;gap:.5rem .9rem;margin-bottom:.55rem;font-size:.84rem;display:flex}.station-map__legend-item{align-items:center;display:inline-flex}.station-map__legend-title{font-weight:800}.station-map__legend-symbol{color:#fff;background:var(--primary);font-variant-numeric:tabular-nums;border:2px solid #0f172a;border-radius:999px;place-items:center;min-width:3rem;min-height:2rem;padding:.2rem .4rem;font-size:.7rem;font-weight:800;display:inline-grid}.station-map__legend-symbol--pickup-dropoff{background:#6d28d9}.station-map__legend-symbol--full{background:#0369a1}.station-map__legend-symbol--empty{background:#166534}.station-map__legend-symbol--unavailable{background:#b91c1c}.station-map__hint{color:var(--muted);margin:0 0 .75rem;font-size:.86rem}.station-map__canvas,.station-map__leaflet,.station-map__loading{border-radius:var(--radius);width:100%;height:clamp(19rem,48vw,28rem)}.station-map__canvas{border:1px solid var(--border);background:#e2e8f0;overflow:hidden}.station-map__loading{color:var(--muted);place-items:center;display:grid}.station-map__leaflet .leaflet-bar,.station-map__leaflet .leaflet-control-layers,.station-map__leaflet .leaflet-popup-content-wrapper,.station-map__leaflet .leaflet-popup-tip,.station-map__leaflet .leaflet-tooltip{box-shadow:none}.station-map__leaflet .leaflet-control-scale-line{text-shadow:none}.station-map__marker-container{background:0 0;border:0}.station-map__marker{color:#fff;font-variant-numeric:tabular-nums;white-space:nowrap;background:#0369a1;border:1.5px solid #fff;border-radius:999px;outline:1px solid #0f172a;place-items:center;width:100%;height:100%;font-size:11px;font-weight:900;line-height:1;display:grid}.station-map__marker--dropoff,.station-map__marker--empty{background:#166534}.station-map__marker--pickup-dropoff{background:#6d28d9}.station-map__marker--full{background:#0369a1}.station-map__marker--unavailable{background:#b91c1c}.station-map__marker--disabled{background:#475569}.station-map__marker--selected{outline-width:2.5px}.station-map__marker--origin,.station-map__marker--destination{color:#0f172a;background:#fff}.station-map__popup{min-width:12rem;color:var(--text);gap:.2rem;line-height:1.35;display:grid}.station-map__popup-selected{color:var(--primary);font-weight:800}.station-map__popup-actions{gap:.4rem;margin-top:.45rem;display:grid}.station-map__popup-action{color:#fff;cursor:pointer;border:2px solid #0000;border-radius:.6rem;width:100%;min-height:2.75rem;padding:.55rem .75rem;font-weight:800;line-height:1.2}.station-map__popup-action--pickup{background:var(--primary);border-color:var(--primary)}.station-map__popup-action--pickup:hover{background:var(--primary-hover);border-color:var(--primary-hover)}.station-map__popup-action--dropoff{background:var(--success);border-color:var(--success)}.station-map__popup-action--dropoff:hover{background:#14532d;border-color:#14532d}.trip-planner{gap:1.25rem;display:grid}.section-heading{gap:.2rem;display:grid}.trip-planner__locations{gap:1rem;display:grid}.origin-mode,.station-choice{border:0;min-width:0;margin:0;padding:0}.origin-mode legend,.station-choice legend,.location-search__label{margin-bottom:.55rem;font-weight:800}.origin-mode{flex-wrap:wrap;gap:.5rem 1.25rem;display:flex}.origin-mode legend{width:100%}.origin-mode label{cursor:pointer;align-items:center;gap:.5rem;min-height:2.75rem;display:inline-flex}.origin-mode input,.station-choice input{width:1.15rem;height:1.15rem;accent-color:var(--primary);flex:none}.location-search{gap:.45rem;display:grid}.location-search__label{display:block}.location-search__controls{grid-template-columns:minmax(0,1fr) auto;align-items:start;gap:.55rem;display:grid}.location-search__controls--automatic{grid-template-columns:minmax(0,1fr)}.location-search__combobox{min-width:0;position:relative}.input{width:100%;min-height:2.75rem;color:var(--text);background:#fff;border:1px solid #94a3b8;border-radius:.65rem;padding:.7rem 2.8rem .7rem .8rem}.input:hover{border-color:#64748b}.input:focus{border-color:var(--primary);outline:2px solid var(--primary);outline-offset:2px}.location-search__clear{color:#334155;cursor:pointer;background:0 0;border:0;border-radius:.65rem;place-items:center;width:2.75rem;height:2.75rem;padding:0;font-size:1.4rem;display:grid;position:absolute;top:0;right:0}.location-search__list{z-index:1000;background:#fff;border:1px solid #64748b;border-radius:.65rem;max-height:17rem;margin:0;padding:.3rem;list-style:none;position:absolute;top:calc(100% + .3rem);left:0;right:0;overflow-y:auto}.location-search__option{overflow-wrap:anywhere;cursor:pointer;border-radius:.4rem;min-height:2.75rem;padding:.7rem .75rem}.location-search__option:hover,.location-search__option--active{color:#fff;background:var(--primary)}.field-hint,.location-search__empty{color:var(--muted);margin:0;font-size:.86rem;line-height:1.4}.location-search__retry{justify-self:start}.device-location,.device-location__error{gap:.6rem;display:grid}.device-location>.button{justify-self:start}.station-choice{gap:.55rem;display:grid}.station-choice__list{grid-template-columns:repeat(3,minmax(0,1fr));gap:.65rem;display:grid}.station-choice__item{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);cursor:pointer;align-items:flex-start;gap:.6rem;min-width:0;min-height:100%;padding:.85rem;display:flex}.station-choice__item:hover{border-color:var(--primary)}.station-choice__item--selected{background:var(--primary-soft);border:2px solid var(--primary);padding:calc(.85rem - 1px)}.station-choice__body,.station-choice__heading{min-width:0;display:flex}.station-choice__body{flex-direction:column;flex:1;gap:.45rem}.station-choice__heading{flex-direction:column;gap:.4rem}.station-choice__name{overflow-wrap:anywhere;font-weight:800}.station-choice__badge{color:var(--primary);text-transform:uppercase;background:#fff;border:1px solid #7dd3fc;border-radius:999px;align-self:flex-start;padding:.15rem .45rem;font-size:.7rem;font-weight:800}.station-choice__meta{color:var(--muted);font-size:.82rem;line-height:1.4}.station-choice__warning{color:var(--warning);font-size:.82rem;font-weight:800}.trip-results{border-top:1px solid #e2e8f0;gap:.7rem;padding-top:1.1rem;display:grid}.trip-results__note{color:var(--muted);margin:0;line-height:1.45}.trip-results__legs{grid-template-columns:repeat(3,minmax(0,1fr));gap:.7rem;margin:0;padding:0;list-style:none;display:grid}.trip-results__leg{background:var(--surface-subtle);border:1px solid var(--border);border-radius:var(--radius);flex-direction:column;gap:.6rem;min-width:0;padding:.9rem;display:flex}.trip-results__leg h4,.trip-results__route,.trip-results__distance{margin:0}.trip-results__route{overflow-wrap:anywhere;line-height:1.45}.trip-results__distance{color:var(--muted);font-size:.84rem;line-height:1.4}.trip-results__link{width:100%;margin-top:auto}.app-footer{color:var(--muted);background:var(--surface-subtle);border-top:1px solid #e2e8f0;border-radius:0 0 1rem 1rem;gap:.35rem;font-size:.84rem;line-height:1.5;display:grid}.app-footer p{margin:0}.app-install>summary{width:-moz-fit-content;width:fit-content;min-height:2.75rem;color:var(--primary);text-underline-offset:.16em;cursor:pointer;padding:.65rem 0;font-weight:600;text-decoration:underline}.app-install>summary:hover{color:var(--primary-hover)}.app-install__instructions{gap:.35rem;padding-bottom:.35rem;display:grid}@media (max-width:47.99rem){.app-shell{padding-right:max(.65rem, env(safe-area-inset-right));padding-left:max(.65rem, env(safe-area-inset-left))}.service-status__header{flex-direction:column}.service-status__actions,.service-status__actions .button,.pickup-shortcut .button{width:100%}.station-choice__list,.trip-results__legs{grid-template-columns:1fr}}@media (max-width:29rem){.station-map__legend{column-gap:.5rem}.station-map__legend-symbol{min-width:2.25rem}.location-search__controls{grid-template-columns:1fr}.location-search__submit{width:100%}.origin-mode{flex-direction:column;gap:.2rem}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
