:root{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,sans-serif;line-height:1.5;font-weight:400;color:#ffffffeb;background-color:#455a64;--muted: rgba(255, 255, 255, .5);--border: rgba(255, 255, 255, .08);--panel-fallback: #455a64;--app-bg: #1a1d23;--radius-sm: 14px;--radius-md: 22px;--radius-lg: 28px;--radius-xl: 36px;--shadow-soft: 0 2px 8px rgba(0, 0, 0, .15);--shadow-card: 0 4px 20px rgba(0, 0, 0, .25);--transition-fast: .15s ease;--transition-smooth: .35s ease;--surface: rgba(255, 255, 255, .06);--surface-hover: rgba(255, 255, 255, .08);font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased}*{box-sizing:border-box}html{background-color:#455a64;height:100%;overflow:hidden}body{margin:0;min-width:320px;height:100%;min-height:100dvh;max-height:100dvh;overflow:hidden;background-color:#455a64}#root{height:100%;min-height:100dvh;max-height:100dvh;overflow:hidden}:focus-visible{outline:2px solid rgba(255,255,255,.6);outline-offset:2px}@media(prefers-reduced-motion:no-preference){html{scroll-behavior:smooth}}@media(prefers-color-scheme:light){:root{color:#1a1d23;background-color:#e8eaed;--muted: rgba(0, 0, 0, .5);--border: rgba(0, 0, 0, .08);--panel-fallback: #546e7a;--app-bg: #e8eaed}}.weather-panel{flex:0 0 auto;min-height:calc(32vh + env(safe-area-inset-top,0px));display:flex;flex-direction:column;align-items:center;justify-content:center;padding:env(safe-area-inset-top,0px) 0 0 0;width:100vw;margin-left:calc(50% - 50vw);margin-right:calc(50% - 50vw);color:#fffffff5;transition:background 1.2s ease-out;position:relative;background:transparent;isolation:isolate}.weather-panel__bg{position:fixed;top:calc(-1*env(safe-area-inset-top,0px));left:0;right:0;width:100%;height:calc(100vh + env(safe-area-inset-top,0px));height:calc(100dvh + env(safe-area-inset-top,0px));background:var(--weather-bg, var(--panel-fallback));z-index:-1;transition:background 1.2s ease-out}.weather-panel__bg:after{content:"";position:absolute;top:env(safe-area-inset-top,0px);left:0;right:0;bottom:0;background:linear-gradient(to bottom,transparent 0%,#000 75%,#000 100%);pointer-events:none}.weather-panel__inner{display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;text-shadow:0 1px 3px rgba(0,0,0,.25);padding:0 1.5rem;position:relative;z-index:1;flex:1;width:100%;max-width:20rem;margin:0 auto}.weather-panel__content{display:flex;flex-direction:column;align-items:center;gap:0;width:100%;animation:weather-content-in .5s ease-out}.weather-panel__content>.weather-panel__temp{margin-bottom:.15rem}.weather-panel__content>.weather-panel__label{margin-bottom:1rem}@keyframes weather-content-in{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}.weather-panel__dev-badge{position:absolute;top:.75rem;left:50%;transform:translate(-50%);font:inherit;font-size:.7rem;font-weight:500;letter-spacing:.04em;text-transform:uppercase;color:inherit;opacity:.9;background:#00000059;padding:.35rem .65rem;border:none;border-radius:var(--radius-sm, 14px);white-space:nowrap;cursor:pointer;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}.weather-panel__dev-badge:hover{opacity:1;background:#00000073}.weather-panel--dev{cursor:pointer}.weather-panel--dev:focus-visible{outline:2px solid rgba(255,255,255,.5);outline-offset:-2px}.weather-panel__temp{font-size:5.75rem;font-weight:200;letter-spacing:-.04em;line-height:1;margin:0;padding-left:20px;filter:drop-shadow(0 2px 4px rgba(0,0,0,.2))}@media(prefers-reduced-motion:reduce){.weather-panel__content{animation:none}}.weather-panel__label{font-size:1.5rem;font-weight:500;margin:0;opacity:.95;letter-spacing:.01em}.weather-panel__meta-row{display:flex;align-items:center;justify-content:center;flex-wrap:wrap;gap:.5rem .75rem;margin-top:.25rem}.weather-panel__meta-row .weather-panel__meta{margin:0}.weather-panel__meta-row .weather-panel__date{position:static;transform:none;margin:0}.weather-panel__meta-sep{opacity:.6;padding:0 .35rem}.weather-panel__meta{font-size:.875rem;opacity:.78;font-weight:400;font-variant-numeric:tabular-nums}.weather-panel__date{font-size:.8rem;opacity:.7;font-weight:500;letter-spacing:.02em}.weather-panel__date--standalone{position:absolute;bottom:.75rem;left:50%;transform:translate(-50%);margin:0}.weather-panel--light .weather-panel__date,.weather-panel--light .weather-panel__meta{opacity:.65}.weather-panel--light{color:#000000bf}.weather-panel--light .weather-panel__inner{text-shadow:0 1px 1px rgba(255,255,255,.4)}.weather-panel--loading .weather-panel__bg,.weather-panel--error .weather-panel__bg{background:var(--panel-fallback, #455a64)!important}.weather-panel--loading,.weather-panel--error{color:#ffffffe6}.weather-panel__loading-text{margin:0;font-size:1.1rem;opacity:.9;display:flex;align-items:center;justify-content:center;gap:.5rem}.weather-panel__loading-text:after{content:"";width:4px;height:4px;border-radius:50%;background:currentColor;opacity:.8;animation:weather-loading-dot 1s ease-in-out infinite}@keyframes weather-loading-dot{0%,to{opacity:.3;transform:scale(.9)}50%{opacity:1;transform:scale(1.1)}}.weather-panel__error-text{margin:0;font-size:1.1rem;opacity:.95}@media(prefers-reduced-motion:reduce){.weather-panel__loading-text:after{animation:none;opacity:.7}}.departures{background:#ffffff0f;border-radius:var(--radius-xl, 36px);padding:1.35rem 1.35rem 1.6rem;border:1px solid rgba(255,255,255,.1);box-shadow:var(--shadow-card, 0 4px 24px rgba(0, 0, 0, .3)),inset 0 1px #ffffff0a}.departures--tappable{cursor:pointer}.departures__title{font-size:.78rem;font-weight:600;text-transform:uppercase;letter-spacing:.1em;margin:0 0 1.1rem;opacity:.6}.departures__next{background:linear-gradient(145deg,#ffffff1a,#ffffff0d);border-radius:var(--radius-lg, 28px);padding:1.4rem;margin-bottom:1.2rem;display:flex;flex-direction:column;gap:.45rem;border:1px solid rgba(255,255,255,.14);box-shadow:0 4px 16px #00000038,inset 0 1px #ffffff0f;transition:box-shadow var(--transition-fast, .15s ease)}.departures__next-leave{font-size:2.4rem;font-weight:700;line-height:1.1;letter-spacing:-.03em;color:#fff;text-shadow:0 2px 4px rgba(0,0,0,.25);display:inline-block;padding:.15rem 0;transition:opacity var(--transition-fast, .15s ease)}.departures__next-detail{font-size:.98rem;opacity:.88;display:flex;align-items:center;gap:.5rem;flex-wrap:wrap}.departures__next-delay{display:inline-flex;align-items:center;justify-content:center;font-size:.7rem;font-weight:700;font-variant-numeric:tabular-nums;color:#fff;background:#e65100;min-width:1.6rem;padding:.2rem .45rem;border-radius:6px;line-height:1}.departures__next-depart{font-size:.9rem;font-variant-numeric:tabular-nums;opacity:.78;margin-top:.1rem}.departures__list{list-style:none;padding:0;margin:0;background:#00000040;border-radius:var(--radius-md, 22px);overflow:hidden;border:1px solid rgba(255,255,255,.06)}.departures__item{display:grid;grid-template-columns:auto 1fr auto auto;gap:.75rem 1rem;align-items:center;padding:.8rem 1.1rem;font-size:1rem;border-bottom:1px solid rgba(255,255,255,.06);transition:background var(--transition-fast, .15s ease);animation:departures-item-in .4s ease-out backwards}.departures__item:nth-child(1){animation-delay:.02s}.departures__item:nth-child(2){animation-delay:.05s}.departures__item:nth-child(3){animation-delay:.08s}.departures__item:nth-child(4){animation-delay:.11s}.departures__item:nth-child(5){animation-delay:.14s}.departures__item:nth-child(6){animation-delay:.17s}.departures__item:nth-child(7){animation-delay:.2s}.departures__item:nth-child(8){animation-delay:.23s}@keyframes departures-item-in{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}.departures__item:last-child{border-bottom:none}.departures__item--first{background:#ffffff0f}@media(hover:hover){.departures__item:hover{background:#ffffff0a}}.departures__line{font-weight:700;font-variant-numeric:tabular-nums;min-width:2.25rem;padding:.25rem .55rem;background:#ffffff24;border-radius:var(--radius-sm, 14px);text-align:center;font-size:.95rem;color:#fff;box-shadow:0 1px 2px #00000026}.departures__line--blue{background:#006aa7;color:#fff;box-shadow:0 1px 3px #006aa766}.departures__line--red{background:#e31837;color:#fff;box-shadow:0 1px 3px #e3183766}.departures__line--green{background:#00a651;color:#fff;box-shadow:0 1px 3px #00a65166}.departures__destination{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;opacity:.95}.departures__time-wrap{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap}.departures__time{font-variant-numeric:tabular-nums;opacity:.8;font-size:.95rem}.departures__delay{display:inline-flex;align-items:center;justify-content:center;font-size:.65rem;font-weight:700;font-variant-numeric:tabular-nums;color:#fff;background:#e65100;min-width:1.4rem;padding:.15rem .35rem;border-radius:5px;line-height:1}.departures__item--delayed .departures__time-wrap{opacity:1}.departures__countdown{font-size:.9rem;font-weight:500;opacity:.8;min-width:3.5rem;text-align:right;font-variant-numeric:tabular-nums}.departures__empty{margin:0;padding:1.5rem 1rem;opacity:.8;font-size:1rem;line-height:1.55;text-align:center;color:var(--muted)}.departures__empty:before{content:"";display:block;width:2.5rem;height:2.5rem;margin:0 auto .75rem;border:2px solid rgba(255,255,255,.2);border-radius:50%;background:transparent}.departures--loading,.departures--error{color:var(--muted);padding:1.75rem 1.35rem;text-align:center;font-size:1rem}.departures--loading{letter-spacing:.02em;display:flex;align-items:center;justify-content:center;gap:.5rem;min-height:6rem}.departures--loading:after{content:"";width:5px;height:5px;border-radius:50%;background:currentColor;opacity:.7;animation:departures-loading-pulse .9s ease-in-out infinite}@keyframes departures-loading-pulse{0%,to{opacity:.35;transform:scale(.85)}50%{opacity:1;transform:scale(1.15)}}.departures--error{font-size:.98rem;background:#ffffff08;border:1px solid rgba(255,100,100,.2)}@media(prefers-reduced-motion:reduce){.departures--loading:after{animation:none;opacity:.6}.departures__item{animation:none}}.app{height:100%;min-height:100dvh;max-height:100dvh;max-width:480px;margin:0 auto;display:flex;flex-direction:column;box-sizing:border-box;overflow:hidden}.app__main{flex:1 1 auto;min-height:0;padding:1.35rem 1.35rem 2rem;overflow:hidden;background:transparent;position:relative;z-index:1}
