:root{color:#313663;font-synthesis:none;text-rendering:optimizelegibility;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--background-primary:#f4f2f1;--background-secondary:#fff;--surface-border:#d8dae8;--ink-primary:#313663;--ink-secondary:#272d60b3;--ink-tertiary:#2a30668c;--accent:#2951ff;--line-5:#3aaa35;--line-5-text:#fff;--live:#21874a;--live-background:#07a85a1f;--stale:#8a6500;--stale-background:#ffc80533;--error:#bf0000;--error-background:#e932321f;--countdown-plenty:#21874a;--countdown-hurry:#8a6500;--countdown-too-late:#bf0000;background:#f4f2f1;font-family:Segoe UI,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,sans-serif}*{box-sizing:border-box}body{background:var(--background-primary);touch-action:manipulation;min-width:320px;min-height:100vh;margin:0}button,input,textarea,select{font:inherit}[hidden]{display:none!important}#app{grid-template-columns:minmax(0,1fr);place-items:start center;min-height:100vh;padding:1.5rem;display:grid}.shell{width:min(1440px,100%);min-width:0}.page-controls{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.75rem;margin-bottom:clamp(.75rem,2vw,1.5rem);display:flex}.page-switcher{border:1px solid var(--surface-border);background:var(--surface-border);border-radius:.6rem;grid-template-columns:repeat(2,minmax(0,1fr));gap:.15rem;min-width:0;max-width:100%;padding:.15rem;display:grid}.page-switcher a{min-height:36px;color:var(--ink-secondary);text-align:center;overflow-wrap:anywhere;border-radius:.4rem;justify-content:center;align-items:center;padding:.35rem .65rem;font-size:.85rem;font-weight:700;text-decoration:none;display:flex}.page-switcher a:hover{color:var(--ink-primary)}.page-switcher a[aria-current=page]{color:var(--accent);background:var(--background-secondary);box-shadow:0 1px 3px #10132f1a}.page-switcher a:focus-visible,.refresh-page:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.refresh-page{border:1px solid var(--surface-border);width:36px;height:36px;color:var(--ink-secondary);background:var(--background-secondary);cursor:pointer;border-radius:.6rem;flex:none;place-items:center;margin-left:auto;padding:0;display:grid}.refresh-page:hover{color:var(--accent);border-color:var(--accent)}.refresh-page svg{fill:none;stroke:currentColor;stroke-width:2px;stroke-linecap:round;stroke-linejoin:round;width:1.2rem;height:1.2rem}.masthead{margin-bottom:clamp(.75rem,2vw,1.5rem)}.heading-row{justify-content:space-between;align-items:baseline;gap:1rem;display:flex}.eyebrow,.label{color:var(--ink-secondary);letter-spacing:.13em;text-transform:uppercase;margin:0;font-size:.78rem;font-weight:700}h1,.current-time{font-size:clamp(2rem,3.5vw,2.5rem);line-height:1}h1{letter-spacing:-.05em;overflow-wrap:anywhere;min-width:0;margin:.45rem 0 0}.current-time{font-variant-numeric:tabular-nums;white-space:nowrap;flex:none;font-weight:700}.line-badge{background:var(--line-5);width:4.6rem;height:4.6rem;color:var(--line-5-text);border-radius:50%;flex:none;place-items:center;font-size:2.35rem;font-weight:900;display:grid;box-shadow:0 0 0 .45rem #3aaa3521}.status-row{flex-wrap:wrap;align-items:center;gap:.8rem;min-height:2.1rem;margin-bottom:.75rem;display:flex}.status-pill{color:var(--live);background:var(--live-background);letter-spacing:.08em;text-transform:uppercase;border:1px solid #21874a4d;border-radius:999px;padding:.3rem .65rem;font-size:.75rem;font-weight:800}.status-stale{color:var(--stale);background:var(--stale-background);border-color:#8a65004d}.status-error{color:var(--error);background:var(--error-background);border-color:#bf00004d}.status-detail{color:var(--ink-secondary);font-size:.88rem}.empty-state{border:1px solid var(--surface-border);background:var(--background-secondary);border-radius:1.5rem;min-height:330px;box-shadow:0 1px 3px #10132f1a,0 1px 2px #10132f14}.departure-list{grid-template-columns:minmax(0,1fr);gap:.85rem;min-width:0;display:grid}.departure-card{border:1px solid var(--surface-border);background:var(--background-secondary);border-radius:1rem;grid-template:"badge route"minmax(5.5rem,1fr)"timing timing""upcoming upcoming"/3.5rem minmax(0,1fr);align-items:start;gap:.75rem;min-width:0;min-height:0;padding:1rem;display:grid;position:relative;box-shadow:0 1px 3px #10132f1a,0 1px 2px #10132f14}.departure-card .line-badge{width:3rem;height:3rem;box-shadow:none;grid-area:badge;align-self:center;font-size:1.6rem}.departure-card .line-badge-long{font-size:1.2rem}.transport-icon{width:1.5rem;height:1.5rem;color:var(--ink-primary);fill:currentColor;position:absolute;top:.5rem;left:.5rem}.departure-list[aria-busy=true] .departure-card>*{visibility:hidden}.departure-list[aria-busy=true] .departure-card :is(p,li,.line-badge){position:relative}.departure-list[aria-busy=true] .departure-card :is(p,li,.line-badge):after{content:"";visibility:visible;background:var(--surface-border);border-radius:.25rem;animation:1.5s ease-in-out infinite skeleton-pulse;position:absolute;inset:0}.departure-list[aria-busy=true] .departure-card .line-badge:after{border-radius:50%}.countdown{color:var(--ink-primary);letter-spacing:-.06em;font-variant-numeric:tabular-nums;overflow-wrap:anywhere;max-width:100%;margin:.35rem 0 0;font-size:clamp(2.5rem,4.2vw,3.25rem);font-weight:900;line-height:.95}.countdown-plenty{color:var(--countdown-plenty)}.countdown-hurry{color:var(--countdown-hurry)}.countdown-too-late{color:var(--countdown-too-late)}.countdown-guidance{max-width:100%;color:var(--ink-secondary);margin:.35rem 0 0 auto;font-size:.82rem;font-weight:700}.countdown-guidance-plenty{color:var(--countdown-plenty)}.countdown-guidance-hurry{color:var(--countdown-hurry)}.countdown-guidance-too-late{color:var(--countdown-too-late)}.arrival{letter-spacing:.06em;flex-wrap:wrap;gap:.25rem .65rem;font-size:.65rem;font-weight:400;display:flex}.arrival strong{font-variant-numeric:tabular-nums;font-weight:700}.journey-detail{grid-area:route;min-width:0}.direction{overflow-wrap:anywhere;margin:0;font-size:1.1rem;font-weight:750;line-height:1.15}.departure-label{color:var(--ink-secondary);overflow-wrap:anywhere;margin:.65rem 0 0;font-size:.85rem}.departure-label strong{color:var(--ink-primary);font-variant-numeric:tabular-nums}.timing{text-align:left;flex-wrap:wrap;grid-area:timing;align-items:baseline;gap:.35rem .75rem;min-width:0;display:flex}.timing .arrival{flex-basis:100%;margin:0}.upcoming-departures{border-top:1px solid var(--surface-border);color:var(--ink-secondary);grid-area:upcoming;grid-template-columns:auto minmax(0,1fr);align-items:baseline;gap:.65rem;padding-top:.75rem;font-size:.78rem;display:grid}.upcoming-departures .label{letter-spacing:.06em;font-size:.65rem}.upcoming-departures ul{flex-wrap:wrap;gap:.35rem .75rem;min-width:0;margin:0;padding:0;list-style:none;display:flex}.upcoming-departures li{overflow-wrap:anywhere;font-variant-numeric:tabular-nums;max-width:100%}.upcoming-departures strong{font-weight:500}.upcoming-departures strong:first-child{font-weight:800}.empty-state{color:var(--ink-secondary);place-content:center;justify-items:center;gap:1rem;display:grid}.empty-state p,.error-message{margin:0}.error-message{color:var(--error);background:var(--error-background);border:1px solid #bf00003d;border-radius:.75rem;margin-top:.85rem;padding:.8rem 1rem}.status-detail time{color:var(--ink-primary);font-variant-numeric:tabular-nums}.app-footer{color:var(--ink-secondary);text-align:center;margin-top:.75rem;font-size:.75rem}.app-footer time{font-variant-numeric:tabular-nums}@keyframes skeleton-pulse{50%{opacity:.4}}@media (width>=1100px){.departure-list{grid-template-columns:repeat(auto-fit,minmax(min(100%,22rem),1fr))}}@media (620px<width<1100px){.departure-card{grid-template:"badge route timing""upcoming upcoming upcoming"/4rem minmax(0,3fr) minmax(0,2fr);padding:.75rem 1.25rem}.departure-card .line-badge{width:3.5rem;height:3.5rem;font-size:2rem}.departure-card .line-badge-long{font-size:1.4rem}.journey-detail{align-self:center}.direction{font-size:2.25rem}.departure-card[data-departure-id=line-4-bergkrystallen] .direction{font-size:1.9rem}.departure-label{margin:.5rem 0 0;font-size:1.4rem}.timing{text-align:right;flex-flow:column;align-items:flex-end;gap:.5rem}.countdown{margin:0;font-size:clamp(3rem,7.5vw,3.75rem);line-height:1.1}.countdown-guidance{margin:0;font-size:1rem}.timing .arrival{letter-spacing:normal;text-transform:none;overflow-wrap:anywhere;flex-basis:auto;order:1;justify-content:flex-end;align-items:baseline;gap:.25rem;max-width:100%;font-size:.85rem}.arrival strong{font-size:1.1rem}.upcoming-departures{padding-top:.5rem;font-size:.95rem}.upcoming-departures .label{font-size:.75rem}}@media (width<=620px){.page-switcher a{min-height:44px}.refresh-page,.current-time{display:none}.departure-card>.journey-detail{align-self:center}}@media (prefers-reduced-motion:reduce){.departure-list[aria-busy=true] .departure-card :is(p,li,.line-badge):after{animation:none}}
