:root{--color-primary: #0e899e;--color-primary-dark: #086375;--color-background: #f3f6f8;--color-surface: #ffffff;--color-text: #171a1f;--color-muted: #667985;--color-border: #d9e2e7;--color-panel-dark: rgba(52, 54, 56, .82);--color-panel-dark-strong: rgba(42, 44, 46, .88);--color-gold: #d7a143;--shadow-soft: 0 16px 40px rgba(15, 23, 42, .14);--shadow-panel: 0 -18px 45px rgba(0, 0, 0, .28);--header-height: 72px;--map-desktop-width: 760px;--map-desktop-svg-width: 700px;--map-mobile-width: 75vw;--panel-width: 980px;--panel-radius: 34px;--panel-mobile-radius: 26px;--location-icon-size: 70px;--location-icon-svg-size: 58px;--clock-icon-size: 44px;--clock-icon-svg-size: 32px;--refresh-icon-size: 26px}*{box-sizing:border-box}html{font-family:Inter,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;background:var(--color-background);color:var(--color-text)}body{margin:0;min-width:320px;overflow:hidden}button,input,textarea,select{font:inherit}button{cursor:pointer}.app-shell{min-height:100vh;background:linear-gradient(#ffffffbd,#ffffffbd),url(/images/background-main.svg);background-size:cover;background-position:center;background-repeat:no-repeat;background-attachment:fixed}.app-main{position:relative;height:calc(100vh - var(--header-height));overflow:hidden}.map-section{height:100%;overflow:auto;padding:24px 24px 120px;display:flex;justify-content:center;align-items:flex-start;background:transparent}.loading-box{margin-top:48px;padding:18px 22px;border-radius:18px;background:var(--color-surface);box-shadow:var(--shadow-soft);color:var(--color-muted)}.app-header{position:relative;z-index:5;height:var(--header-height);display:flex;align-items:center;padding:0 24px;background:#17191b;color:#fff;border-bottom:1px solid rgba(255,255,255,.08)}.app-header-title{min-width:0}.app-title-row{display:flex;align-items:center;gap:10px;min-width:0}.app-header h1{margin:0;font-size:1.35rem;line-height:1;white-space:nowrap}.app-version-badge{display:inline-flex;align-items:center;justify-content:center;padding:3px 7px;border-radius:999px;background:#ffffff14;color:#ffffff9e;font-size:.68rem;font-weight:700;line-height:1;letter-spacing:.04em;white-space:nowrap}.app-kicker,.panel-kicker{margin:0 0 6px;font-size:.72rem;font-weight:800;color:var(--color-primary);text-transform:uppercase;letter-spacing:.08em}.calendar-badge{margin-left:auto;padding:8px 12px;border-radius:999px;background:#0e899e29;color:#d8f7fc;font-size:.85rem;font-weight:800;white-space:nowrap}.route-map{width:min(100%,var(--map-desktop-width));display:flex;justify-content:center}.route-map svg{width:100%;height:auto;max-width:var(--map-desktop-svg-width);background:#ffffffb8;border-radius:28px}.route-map [data-stop-id]{cursor:pointer}.route-map [data-stop-id] circle{transition:fill .18s ease,stroke .18s ease,filter .18s ease,transform .18s ease;transform-box:fill-box;transform-origin:center}.route-map [data-stop-id]:hover circle,.route-map [data-stop-id].is-active-stop circle{filter:drop-shadow(0 0 8px rgba(14,137,158,.7))}.route-map [data-stop-id].is-active-stop circle:last-of-type{fill:#086375;transform:scale(1.18)}.route-map [id^=button-][data-stop-id]{cursor:pointer}.route-map [id^=button-][data-stop-id] rect{fill:transparent;pointer-events:all}.route-map [id^=button-][data-stop-id] path{pointer-events:none}.route-map [id^=button-][data-stop-id]:hover rect,.route-map [id^=button-][data-stop-id].is-active-stop rect{stroke:#0e899e;stroke-width:2;filter:drop-shadow(0 4px 10px rgba(14,137,158,.22))}.station-panel-backdrop{position:fixed;z-index:20;inset:var(--header-height) 0 0;border:0;padding:0;background:#0000;opacity:0;pointer-events:none;transition:opacity .25s ease,background .25s ease}.station-panel-backdrop.is-open{background:#0000006b;opacity:1;pointer-events:auto}.station-panel{position:fixed;z-index:30;left:50%;right:auto;bottom:0;width:min(100%,var(--panel-width));max-height:min(78vh,760px);transform:translate(-50%,calc(100% + 24px));border-radius:var(--panel-radius) var(--panel-radius) 0 0;background-color:#fff;background-image:linear-gradient(#ffffff8c,#ffffff8c),url(/images/background-schedule.svg);background-size:cover;background-position:center center;background-repeat:no-repeat;box-shadow:var(--shadow-panel);overflow:hidden;transition:transform .28s cubic-bezier(.22,1,.36,1)}.station-panel.is-open{transform:translate(-50%)}.station-panel-handle{width:54px;height:5px;margin:12px auto 4px;border-radius:999px;background:#c9d2d7}.station-panel-inner{position:relative;max-height:calc(min(78vh,760px) - 21px);overflow:auto;padding:28px 28px 32px;background:transparent}.station-panel-header{display:flex;align-items:center;justify-content:space-between;gap:18px;margin-bottom:24px}.station-title-row{display:flex;align-items:center;gap:18px;min-width:0}.station-location-icon{display:inline-flex;width:var(--location-icon-size);height:var(--location-icon-size);flex:0 0 var(--location-icon-size);align-items:center;justify-content:center;color:#e3342f}.station-location-icon svg{width:var(--location-icon-svg-size);height:var(--location-icon-svg-size);display:block;fill:currentColor;stroke:currentColor;stroke-width:2.2;filter:drop-shadow(0 4px 10px rgba(227,52,47,.22))}.station-location-icon svg circle{fill:#fff;stroke:#fff}.station-panel h2{margin:0;font-size:clamp(2rem,4vw,3.25rem);line-height:1.02;font-weight:850;letter-spacing:-.04em}.station-panel-action{display:inline-flex;width:52px;height:52px;flex:0 0 auto;align-items:center;justify-content:center;border:none;border-radius:999px;background:#56b7c5;color:#fff;box-shadow:0 8px 18px #0e899e47;line-height:1}.station-panel-action svg{display:block}.refresh-action{transition:transform .18s ease,background .18s ease,box-shadow .18s ease}.refresh-action svg{width:var(--refresh-icon-size);height:var(--refresh-icon-size);stroke-width:2.5}.refresh-action:hover{background:#48aaba;box-shadow:0 10px 22px #0e899e57;transform:rotate(18deg) scale(1.04)}.refresh-action:active{transform:rotate(180deg) scale(.96)}.empty-panel{position:relative;min-height:260px;padding:12px 72px 32px 0}.empty-panel h2{margin-bottom:12px}.empty-panel p{color:var(--color-muted);line-height:1.5}.empty-panel .station-panel-action{position:absolute;top:0;right:0}.platform-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.platform-grid.single-platform{grid-template-columns:minmax(0,1fr)}.platform-column{display:grid;gap:18px;min-width:0}.departure-card{position:relative;overflow:hidden;border-radius:14px;background:#2a2c2ec7;color:#fff;box-shadow:0 10px 28px #00000029;backdrop-filter:blur(.5px)}.departure-card:before{display:none}.departure-card-main{min-height:210px;padding:26px 24px 24px}.platform-heading{position:relative;z-index:1;display:flex;align-items:flex-start;justify-content:center;gap:12px;text-align:center}.platform-direction-icon{display:inline-flex;width:34px;height:34px;flex:0 0 34px;align-items:center;justify-content:center;color:var(--color-gold);margin-top:2px}.platform-direction-icon svg{width:30px;height:30px;stroke-width:2.6}.platform-heading h3{margin:0;font-size:clamp(2rem,3vw,2.7rem);line-height:1;font-weight:500}.platform-heading p{margin:10px 0 0;font-size:clamp(1.2rem,2vw,1.75rem);line-height:1.15;color:#fff}.next-departure{position:relative;z-index:1;display:flex;align-items:center;justify-content:center;gap:14px;margin-top:28px;text-align:center}.clock-icon{display:inline-flex;width:var(--clock-icon-size);height:var(--clock-icon-size);flex:0 0 var(--clock-icon-size);align-items:center;justify-content:center;color:var(--color-gold);line-height:1}.clock-icon svg{width:var(--clock-icon-svg-size);height:var(--clock-icon-svg-size);stroke-width:2.2}.next-departure strong{display:block;font-size:clamp(3.2rem,6vw,4.8rem);line-height:.95;font-weight:400;letter-spacing:-.05em}.next-departure span{display:block;margin-top:6px;font-size:clamp(1.45rem,2.5vw,2.25rem);line-height:1}.departure-card-list{padding:22px 24px;display:grid;gap:18px;background:#2a2c2ec7}.departure-card-list:before{display:none}.departure-list-row{position:relative;z-index:1;display:flex;align-items:center;justify-content:center;gap:16px;text-align:center}.departure-list-row strong{display:block;font-size:clamp(2.3rem,4vw,3.25rem);line-height:1;font-weight:400;letter-spacing:-.04em}.departure-list-row span{display:block;margin-top:4px;font-size:clamp(1.15rem,2vw,1.7rem);line-height:1}.no-departures{position:relative;z-index:1;margin:30px 0 0;padding:16px;border-radius:16px;background:#ffffff1f;color:#fff;text-align:center;font-weight:700}@media(max-width:800px){:root{--header-height: 64px;--location-icon-size: 42px;--location-icon-svg-size: 36px;--refresh-icon-size: 24px}.app-shell{background-attachment:scroll;background-position:center top}.app-header{padding:0 18px}.app-title-row{gap:8px}.app-header h1{font-size:1.15rem}.app-version-badge{padding:3px 6px;font-size:.62rem}.calendar-badge{display:none}.map-section{padding:12px 12px 120px}.route-map{width:100%;display:flex;justify-content:center}.route-map svg{width:var(--map-mobile-width);max-width:none;height:auto;min-height:auto;border-radius:20px}.station-panel{width:100%;max-height:74vh;border-radius:var(--panel-mobile-radius) var(--panel-mobile-radius) 0 0}.station-panel-inner{max-height:calc(74vh - 21px);padding:22px 16px 26px}.station-panel-header{margin-bottom:18px}.station-title-row{gap:14px}.station-panel-action{width:48px;height:48px}.platform-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.platform-grid.single-platform{grid-template-columns:1fr}.platform-column{gap:12px}.departure-card-main{min-height:176px;padding:20px 12px 18px}.departure-card-list{padding:18px 12px;gap:16px}}@media(max-width:460px){:root{--location-icon-size: 36px;--location-icon-svg-size: 32px;--clock-icon-size: 34px;--clock-icon-svg-size: 30px;--refresh-icon-size: 22px}.station-panel h2{font-size:1.8rem}.station-panel-action{width:42px;height:42px}.platform-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.platform-grid.single-platform{grid-template-columns:1fr}.platform-column{gap:10px}.departure-card{border-radius:12px}.departure-card-main{min-height:162px;padding:18px 10px 16px}.departure-card-list{padding:16px 10px;gap:14px}.platform-heading{gap:6px}.platform-direction-icon{width:26px;height:26px;flex:0 0 26px;margin-top:1px}.platform-direction-icon svg{width:23px;height:23px}.platform-heading h3{font-size:1.8rem}.platform-heading p{margin-top:8px;font-size:.95rem;line-height:1.15}.next-departure{gap:8px;margin-top:24px}.next-departure strong{font-size:2.8rem}.next-departure span{font-size:1.25rem}.departure-list-row{gap:8px}.departure-list-row strong{font-size:2rem}.departure-list-row span{font-size:1.05rem}}
