: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}*{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-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 h1{margin:0;font-size:1.35rem;line-height:1}.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}.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)}.route-map{width:min(100%,760px);display:flex;justify-content:center}.route-map svg{width:100%;height:auto;max-width:700px;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%,980px);max-height:min(78vh,760px);transform:translate(-50%,calc(100% + 24px));border-radius:34px 34px 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:70px;height:70px;flex:0 0 44px;align-items:center;justify-content:center;color:#e3342f}.station-location-icon svg{width:66px;height:66px;display:block;filter:drop-shadow(0 4px 10px rgba(227,52,47,.18))}.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;font-size:2rem;line-height:1}.refresh-action{font-size:2.05rem;font-weight:700;transition:transform .18s ease,background .18s ease,box-shadow .18s ease}.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)}.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{color:var(--color-gold);font-size:2.1rem;line-height:1;margin-top:2px}.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;color:var(--color-gold);font-size:2rem;line-height:1}.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{inset:auto -18% -45% auto}.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}.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}@media(max-width:800px){:root{--header-height: 64px}.app-shell{background-attachment:scroll;background-position:center top}.app-header{padding:0 18px}.app-header h1{font-size:1.15rem}.calendar-badge{display:none}.map-section{padding:12px 12px 120px}.route-map{width:100%}.route-map svg{min-height:1200px;border-radius:20px}.station-panel{width:100%;max-height:74vh;border-radius:26px 26px 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-location-icon{width:40px;height:40px;flex:0 0 40px}.station-location-icon svg{width:34px;height:34px}.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){.station-panel h2{font-size:1.8rem}.station-location-icon{width:34px;height:34px;flex:0 0 34px}.station-location-icon svg{width:30px;height:30px}.station-panel-action{width:42px;height:42px;font-size:1.7rem}.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{font-size:1.45rem;margin-top:1px}.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}.clock-icon{font-size:1.35rem}.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}}
