:root{font-family:'DM Sans',-apple-system,BlinkMacSystemFont,sans-serif;color:#172925;background:var(--bg);font-synthesis:none;text-rendering:optimizeLegibility;--bg:#f4f7f6;--surface:#fff;--ink:#172925;--muted:#8c9995;--line:#e9efec;--mint:#58b39a;--deep:#173f3a;--shadow:0 15px 45px #1e43350b;--glass:#ffffffc9}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink);min-height:100vh}button,input,select{font:inherit}button{cursor:pointer;color:inherit}.app-shell{min-height:100vh;padding-top:env(safe-area-inset-top)}.glass{background:var(--glass);backdrop-filter:blur(24px) saturate(1.4);-webkit-backdrop-filter:blur(24px) saturate(1.4)}.sidebar{position:fixed;inset:0 auto 0 0;width:250px;padding:30px 19px 18px 22px;border-right:1px solid #e8eeeb;display:flex;flex-direction:column;background:#f8faf9d9;z-index:3}.brand{display:flex;align-items:center;gap:10px;text-decoration:none;color:var(--ink);padding:0 6px}.brand-mark{width:39px;height:39px;border-radius:13px;overflow:hidden;box-shadow:0 5px 12px #28594b20}.brand-mark img{width:100%;height:100%}.brand strong{display:block;font-family:Manrope,sans-serif;font-size:16px;letter-spacing:.04em}.brand small{display:block;color:#91a09a;font-size:10px;letter-spacing:.045em;margin-top:-2px}.network-chip{display:flex;align-items:center;gap:8px;margin:31px 5px 26px;padding:10px 11px;border:1px solid #e8eeeb;border-radius:11px;font-size:11px;font-weight:600;color:#64726e;background:#fff9}.live-pip{width:7px;height:7px;border-radius:50%;background:#55b594;box-shadow:0 0 0 3px #55b59420}.side-nav{display:grid;gap:6px}.nav-item{border:0;background:transparent;text-align:left;padding:12px 12px;border-radius:10px;color:#77837f;font-size:13px;font-weight:500}.nav-item.active{background:#e6f3ef;color:#237762;font-weight:700}.nav-icon{display:inline-block;width:27px;font-size:18px;vertical-align:-1px}.side-section{margin-top:38px}.section-label{display:flex;justify-content:space-between;align-items:center;padding:0 9px;color:#9aa6a1;font-size:9px;letter-spacing:.14em;font-weight:700}.section-label span{background:#edf2f0;border-radius:9px;padding:2px 7px;font-size:10px;letter-spacing:0;color:#67736f}.side-favorites{margin-top:13px;display:grid;gap:5px}.side-fav{width:100%;display:flex;align-items:center;gap:10px;padding:9px 8px;border:0;background:transparent;border-radius:9px;text-align:left;color:#66736e}.side-fav:hover{background:#edf4f1}.side-fav-mark{height:29px;width:29px;border-radius:9px;display:grid;place-items:center;font-size:13px;font-weight:700}.side-fav strong{display:block;font-size:11px;font-weight:600;color:#3c4c46}.side-fav small{display:block;font-size:9px;color:#9ba7a2;margin-top:2px}.sidebar-bottom{margin-top:auto}.data-note{padding:12px 9px;display:flex;gap:10px;align-items:center;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.note-icon{font-size:17px;color:#70b7a1}.data-note strong,.data-note small{display:block}.data-note strong{font-size:10px}.data-note small{font-size:9px;color:#98a49f;margin-top:2px}.settings-link{border:0;background:none;color:#73817b;padding:15px 10px;font-size:11px}.settings-link span{margin-right:9px}.version-note{display:block;color:#a8b1ad;font-size:9px;padding:0 10px 4px}.main-content{margin-left:250px;padding:0 53px;max-width:1640px}.topbar{height:80px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid #e8eeeb}.breadcrumbs{display:flex;align-items:center;gap:12px;color:#9aa6a1;font-size:11px}.breadcrumbs i{font-style:normal;color:#c2cbc6}.breadcrumbs strong{font-weight:600;color:#50605a}.top-actions{display:flex;align-items:center;gap:11px}.clock-chip{border:1px solid #e7eeea;background:#ffffffb5;border-radius:20px;padding:7px 11px;color:#66766f;font-size:10px;font-weight:600;display:flex;align-items:center;gap:7px}.clock-dot{width:6px;height:6px;border-radius:50%;background:#61b89c}.icon-button,.avatar{width:31px;height:31px;border:1px solid #e6ede9;background:#ffffffc9;border-radius:50%;color:#708079;font-size:14px;display:grid;place-items:center}.avatar{background:#e7f2ee;border-color:#e7f2ee;color:#488c75;font-size:11px;font-weight:700}.mobile-brand,.mobile-tabbar{display:none}.view{display:none}.view.active-view{display:block}.welcome-row{display:flex;align-items:flex-end;justify-content:space-between;margin:41px 0 26px}.eyebrow{font-size:9px;letter-spacing:.15em;font-weight:700;color:#72a28f;display:flex;align-items:center;gap:9px}.eyebrow-line{width:17px;height:1px;background:#8dbba9}.welcome-row h1,.explore-header h1{font:700 30px Manrope,sans-serif;letter-spacing:-.055em;margin:12px 0 3px}.hello-comma{color:#8fc8b4}.wave{font-family:inherit;font-size:17px;color:#e7bd52;vertical-align:4px;margin-left:4px}.welcome-subtitle,.explore-header p{font-size:12px;color:#97a39e;margin:0}.date-card{display:flex;align-items:center;gap:10px;padding-bottom:4px}.date-icon{height:33px;width:33px;display:grid;place-items:center;border-radius:11px;color:#67a991;background:#e9f4ef;font-size:18px}.date-card strong,.date-card span{display:block}.date-card strong{font-size:11px}.date-card span{color:#9aa6a0;font-size:9px;margin-top:3px}.hero-card{position:relative;overflow:hidden;height:210px;border-radius:18px;background:linear-gradient(112deg,#18463f,#1f5549 67%,#3d836b);color:white;box-shadow:0 15px 32px #204c3b20}.hero-copy{position:relative;z-index:2;padding:28px 31px}.hero-kicker{display:flex;align-items:center;gap:7px;font-size:8px;letter-spacing:.15em;color:#b0d7c8;font-weight:700}.hero-spark{font-size:12px;color:#f1d37b}.hero-card h2{font:700 22px Manrope,sans-serif;letter-spacing:-.04em;margin:12px 0 4px}.hero-card p{font-size:11px;color:#c0d9d0;margin:0;max-width:345px}.hero-button{margin-top:20px;background:#f4faf5;border:0;border-radius:8px;padding:9px 12px;color:#23624f;font-size:10px;font-weight:700}.hero-button span{margin-left:10px}.hero-art{position:absolute;right:0;top:0;width:48%;height:100%;overflow:hidden}.sun-halo{position:absolute;width:240px;height:240px;right:38px;top:-105px;border-radius:50%;background:#85c8a322;box-shadow:0 0 0 26px #85c8a30a}.route-orbit{position:absolute;border:1px solid #b5e1cb3c;border-radius:50%;transform:rotate(-24deg)}.orbit-a{width:325px;height:125px;right:-10px;top:48px}.orbit-b{width:285px;height:91px;right:10px;top:66px;transform:rotate(24deg)}.hero-stop{position:absolute;width:8px;height:8px;background:#fee39c;border-radius:50%;box-shadow:0 0 0 5px #fee39c20}.stop-a{right:80px;top:54px}.stop-b{right:222px;top:106px}.stop-c{right:125px;top:153px}.hero-tram{position:absolute;right:87px;top:87px;height:48px;width:97px;background:linear-gradient(90deg,#f4f8ea,#fff);border-radius:14px 12px 8px 8px;transform:rotate(-11deg);box-shadow:0 12px 19px #0c2a2440;color:#3b8166;font-size:8px;font-weight:800;padding:9px 8px}.hero-tram i{display:inline-block;width:16px;height:12px;border-radius:4px 4px 2px 2px;background:#6eaf94;margin:1px 0 0 2px}.hero-tram b{position:absolute;bottom:-4px;left:15px;width:9px;height:9px;border-radius:50%;background:#233b35;box-shadow:56px 0 #233b35}.hero-city{position:absolute;bottom:40px;background:#9fcbb243;border-radius:3px 3px 0 0}.city-one{right:19px;width:29px;height:42px}.city-two{right:51px;width:24px;height:28px}.city-three{right:205px;width:21px;height:35px}.river{position:absolute;bottom:-36px;right:-10px;width:340px;height:61px;border:2px solid #c3e9d544;border-radius:50%;transform:rotate(-9deg)}.hero-glow{position:absolute;width:210px;height:150px;bottom:-130px;right:180px;background:#65ba9b;border-radius:50%;filter:blur(60px);opacity:.5}.section-heading{display:flex;align-items:flex-end;justify-content:space-between;margin:31px 0 16px}.eyebrow.muted{color:#9aa8a2}.eyebrow.muted .eyebrow-line{background:#b4c5bd}.section-heading h2{font:700 17px Manrope,sans-serif;letter-spacing:-.035em;margin:8px 0 0}.count-pill{font:600 10px 'DM Sans';vertical-align:2px;background:#eaf1ed;padding:3px 7px;border-radius:8px;color:#719081;margin-left:3px}.text-button{border:0;background:none;color:#458d73;font-size:10px;font-weight:700;padding:8px}.favorites-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.favorite-card{background:var(--surface);border:1px solid #eaf0ed;border-radius:13px;padding:15px;box-shadow:var(--shadow);min-height:120px;position:relative;transition:transform .18s,box-shadow .18s}.favorite-card:hover{transform:translateY(-2px);box-shadow:0 13px 24px #1e433512}.fav-top{display:flex;align-items:flex-start;justify-content:space-between}.fav-symbol{height:32px;width:32px;display:grid;place-items:center;border-radius:10px;background:#e8f4ef;color:#37816a;font-size:15px}.fav-remove{opacity:0;border:0;background:none;color:#a9b4ae;font-size:16px;padding:0 3px}.favorite-card:hover .fav-remove,.fav-remove:focus{opacity:1}.favorite-card h3{font-size:12px;margin:11px 0 3px;font-weight:700}.favorite-card p{font-size:9px;color:#9ba7a1;margin:0}.fav-next{position:absolute;right:15px;bottom:15px;color:#5b9b81;font-size:10px;font-weight:700}.empty-card{background:var(--surface);text-align:left;min-height:120px;border:1px dashed #d7e5de;border-radius:13px;display:flex;align-items:center;gap:12px;padding:15px;color:#899992;cursor:pointer;transition:background .2s}.empty-card:hover{background:#ebf4ef}.empty-plus{height:33px;width:33px;border-radius:10px;background:#edf5f0;display:grid;place-items:center;color:#51977c;font-size:19px}.empty-card strong,.empty-card small{display:block}.empty-card strong{font-size:11px;color:#64766c}.empty-card small{font-size:9px;margin-top:3px}.bottom-panels{display:grid;grid-template-columns:1.08fr .92fr;gap:13px;margin-top:22px}.panel{background:var(--surface);border:1px solid #eaf0ed;border-radius:14px;padding:17px;box-shadow:var(--shadow);min-width:0}.panel-header{display:flex;align-items:center;justify-content:space-between}.panel-header>div{display:flex;align-items:center;gap:10px}.panel-icon{height:30px;width:30px;display:grid;place-items:center;border-radius:10px;font-size:16px}.panel-icon.mint{background:#e7f4ed;color:#5da88b}.panel-icon.lilac{background:#f1edfa;color:#9c8fc1}.panel-header h3{font:700 12px Manrope,sans-serif;margin:0}.panel-header p{font-size:9px;color:#9ba6a1;margin:3px 0 0}.more-button{border:0;background:none;color:#99a7a0;font-size:18px}.network-live{display:flex;align-items:center;gap:6px;font-size:9px;color:#69a68f}.departure-list{margin-top:10px}.departure-row{display:grid;grid-template-columns:38px 1fr auto;align-items:center;gap:9px;padding:10px 0;border-top:1px solid #f0f3f1}.line-badge{height:25px;min-width:27px;display:grid;place-items:center;padding:0 5px;background:#e5f3ed;border-radius:7px;color:#26795f;font-size:9px;font-weight:700}.departure-dest strong,.departure-dest small{display:block}.departure-dest strong{font-size:10px;font-weight:600}.departure-dest small{font-size:8px;color:#a1aca6;margin-top:3px}.departure-time{text-align:right}.departure-time strong{display:block;font-size:12px}.departure-time small{display:block;font-size:8px;color:#83aa98;margin-top:2px}.departures-empty{padding:22px 10px;text-align:center;color:#9da9a3;font-size:10px}.departures-empty button{display:block;margin:9px auto 0;border:0;background:none;color:#4f967c;font-weight:700;font-size:10px}.network-stats{display:grid;grid-template-columns:repeat(3,1fr);padding:16px 0 11px}.network-stats>div{text-align:center;border-right:1px solid #edf1ef}.network-stats>div:last-child{border:0}.network-stats strong,.network-stats span{display:block}.network-stats strong{font:700 17px Manrope}.network-stats span{color:#9aa7a0;font-size:8px;margin-top:3px}.network-map{height:111px;position:relative;overflow:hidden;background:#f2f7f3;border-radius:9px}.map-river{position:absolute;width:280px;height:75px;left:20px;top:18px;border-top:5px solid #c8e3df;border-radius:50%;transform:rotate(-12deg)}.map-line{position:absolute;width:200px;height:2px;left:46px;top:54px;transform:rotate(-19deg);background:#efa772}.tram-b{top:70px;left:78px;transform:rotate(18deg);background:#65af91}.map-node{position:absolute;width:8px;height:8px;border-radius:50%;background:#fff;border:2px solid #eda76e;z-index:1}.node-1{left:52px;top:57px}.node-2{left:135px;top:33px}.node-3{left:220px;top:18px}.node-4{left:190px;top:75px;border-color:#65af91}.map-label{position:absolute;color:#9aa8a1;font-size:7px}.label-1{left:117px;top:48px}.label-2{left:18px;top:12px}.label-3{left:76px;top:83px}.label-4{right:9px;top:83px}.map-legend{position:absolute;right:9px;top:8px;display:flex;gap:9px;font-size:7px;color:#83928b;background:#ffffffba;border-radius:8px;padding:5px 6px}.map-legend i{display:inline-block;height:5px;width:5px;border-radius:50%;background:#eda76e;margin-right:3px}.map-legend .legend-b{background:#65af91}.page-footer{display:flex;justify-content:space-between;border-top:1px solid #e9efec;margin-top:24px;padding:14px 1px 18px;color:#a0aba6;font-size:8px}.page-footer a{color:#7d9a8b;text-decoration:none}.page-footer a span{margin-left:4px}.explore-header{margin:46px 0 27px}.explore-header h1{margin-top:12px}.explore-tabs{display:flex;border-bottom:1px solid #e2ebe6;gap:26px}.explore-tab{padding:11px 1px;background:none;border:0;border-bottom:2px solid transparent;color:#8e9b95;font-size:11px;font-weight:600;margin-bottom:-1px}.explore-tab.active{border-color:#5aaa8e;color:#377f68}.explore-tab span{background:#ecf2ee;border-radius:8px;padding:2px 6px;margin-left:5px;font-size:9px}.search-box{margin-top:18px;display:flex;align-items:center;gap:10px;padding:0 13px;height:43px;background:#fff;border:1px solid #e7eeea;border-radius:11px;color:#8aa197}.search-box>span{font-size:20px}.search-box input{outline:0;border:0;background:none;flex:1;min-width:0;font-size:11px;color:var(--ink)}.search-box input::placeholder{color:#a8b2ad}.search-box kbd{font-size:9px;color:#a5afaa;background:#f4f7f5;border:1px solid #e8eeea;border-radius:4px;padding:3px 5px}.explore-results{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin-top:14px}.result-card{display:flex;align-items:center;gap:11px;background:#fff;border:1px solid #eaf0ed;border-radius:11px;padding:11px;min-width:0}.result-symbol{height:32px;width:32px;border-radius:9px;background:#e8f4ef;color:#488f76;display:grid;place-items:center;font-size:14px;flex:none}.result-copy{min-width:0;flex:1}.result-copy strong,.result-copy small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.result-copy strong{font-size:11px}.result-copy small{font-size:9px;color:#9ca9a2;margin-top:3px}.result-add{width:26px;height:26px;border-radius:8px;border:1px solid #e3ede7;background:#f4f8f5;color:#5c9e81;font-size:15px}.empty-results{grid-column:1/-1;text-align:center;padding:35px;color:#96a59d;font-size:11px}.modal{border:0;padding:0;background:transparent;max-width:none;max-height:none;overflow:visible}.modal::backdrop{background:#102b23a1;backdrop-filter:blur(5px)}.modal-card{position:relative;width:min(420px,calc(100vw - 30px));background:var(--surface);border:1px solid #e7efeb;border-radius:19px;padding:28px;box-shadow:0 25px 80px #09251d30;color:var(--ink)}.modal-card h2{font:700 22px Manrope;margin:12px 0 5px;letter-spacing:-.04em}.modal-card>p{font-size:11px;line-height:1.6;color:#8e9b95;margin:0 0 19px}.modal-close{position:absolute;right:16px;top:13px;border:0;background:none;font-size:23px;color:#9aa7a1}.field-label{display:block;font-size:10px;color:#65766e;font-weight:700;margin:12px 0 6px}.modal-card select{width:100%;height:40px;border:1px solid #e5ede8;border-radius:9px;background:var(--bg);padding:0 10px;color:var(--ink);font-size:11px;outline:0}.primary-button{width:100%;margin-top:20px;background:#367e67;border:0;border-radius:9px;color:#fff;padding:12px;font-size:11px;font-weight:700}.primary-button span{margin-left:9px}.settings-card{width:min(460px,calc(100vw - 30px))}.setting-row{display:flex;align-items:center;justify-content:space-between;padding:15px 0;border-top:1px solid var(--line)}.setting-row strong,.setting-row span{display:block}.setting-row strong{font-size:11px}.setting-row span{font-size:9px;color:#9aa6a0;margin-top:4px}.setting-row select{width:auto;min-width:126px;height:35px}.settings-storage{display:flex;gap:10px;align-items:center;background:#f1f7f3;padding:12px;border-radius:10px;color:#548b74;margin-top:7px}.settings-storage>span{font-size:18px}.settings-storage strong,.settings-storage small{display:block}.settings-storage strong{font-size:10px;color:#557966}.settings-storage small{font-size:9px;color:#91a69b;margin-top:3px}.toast{position:fixed;left:50%;bottom:25px;transform:translate(-50%,15px);opacity:0;background:#173f3a;color:#fff;padding:11px 16px;border-radius:20px;font-size:11px;z-index:10;transition:.2s;pointer-events:none;box-shadow:0 6px 22px #102c2540}.toast.show{opacity:1;transform:translate(-50%,0)}
@media(min-width:1500px){.main-content{margin-inline:auto;padding-left:303px;padding-right:90px}.sidebar{width:250px}.main-content{max-width:1580px}.favorites-grid{gap:16px}.hero-card{height:230px}.hero-copy{padding:35px 37px}}
@media(max-width:1050px){.main-content{padding:0 30px}.sidebar{width:220px;padding-inline:17px}.main-content{margin-left:220px}.favorites-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.bottom-panels{grid-template-columns:1fr}.network-panel{display:none}}
@media(max-width:700px){:root{--bg:#f4f7f6}.sidebar{display:none}.main-content{margin:0;padding:0 19px 100px}.topbar{height:58px;position:sticky;top:0;background:#f4f7f6e8;backdrop-filter:blur(20px);z-index:2;margin:0 -19px;padding:0 19px}.breadcrumbs{display:none}.mobile-brand{display:flex;align-items:center;gap:8px;font-size:13px}.mobile-brand img{width:29px;height:29px;border-radius:9px}.mobile-brand strong{font:700 13px Manrope}.mobile-brand strong span{font-size:10px;color:#8c9a93;font-weight:500}.top-actions{gap:7px}.clock-chip{padding:6px 9px;font-size:9px}.icon-button{width:29px;height:29px}.avatar{display:none}.welcome-row{margin:25px 0 17px;align-items:flex-end}.welcome-row h1,.explore-header h1{font-size:25px;margin-top:9px}.eyebrow{font-size:8px}.welcome-subtitle{font-size:10px}.date-card{display:none}.hero-card{height:188px;border-radius:15px}.hero-copy{padding:22px 20px}.hero-card h2{font-size:19px;margin-top:11px}.hero-card p{font-size:9px;max-width:210px;line-height:1.5}.hero-button{margin-top:17px;font-size:9px;padding:9px 10px}.hero-art{width:56%;opacity:.82;transform:scale(.8);transform-origin:right center;right:-10px}.section-heading{margin:24px 0 12px}.section-heading h2{font-size:15px}.text-button{font-size:9px;padding:7px 0}.favorites-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}.favorite-card{min-height:112px;padding:12px}.fav-symbol{height:29px;width:29px}.favorite-card h3{font-size:11px;margin-top:9px}.favorite-card p{font-size:8px}.fav-next{right:12px;bottom:12px;font-size:9px}.fav-remove{opacity:1;font-size:15px}.empty-card{background:var(--surface);text-align:left;min-height:112px;padding:10px;gap:8px}.empty-plus{height:29px;width:29px;flex:none}.empty-card strong{font-size:10px}.empty-card small{font-size:8px}.bottom-panels{margin-top:15px}.panel{padding:14px}.page-footer{margin-top:18px;font-size:7px;gap:12px}.mobile-tabbar{display:flex;position:fixed;z-index:5;bottom:calc(9px + env(safe-area-inset-bottom));left:12px;right:12px;height:61px;border:1px solid #e0eae4;border-radius:20px;background:#ffffffd9;box-shadow:0 8px 30px #2146381a;justify-content:space-around;align-items:center;padding:4px 8px}.mobile-tab{border:0;background:none;display:grid;place-items:center;gap:1px;color:#93a19a;font-size:8px;min-width:53px}.mobile-tab span{font-size:18px;line-height:21px}.mobile-tab.active{color:#3c8b70;font-weight:700}.explore-header{margin:32px 0 21px}.explore-header p{font-size:10px}.explore-results{grid-template-columns:1fr;gap:7px}.search-box kbd{display:none}.result-card{padding:10px}.modal-card{padding:24px}.bottom-panels .network-panel{display:block}.network-panel{display:none!important}}
@media(max-width:370px){.main-content{padding-inline:14px}.topbar{margin-inline:-14px;padding-inline:14px}.hero-copy{padding-inline:16px}.hero-art{opacity:.55}.welcome-row h1{font-size:23px}.favorites-grid{gap:7px}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{scroll-behavior:auto!important;transition:none!important}}
[data-theme="dark"]{--bg:#000;--surface:#111;--ink:#f5f5f7;--muted:#a1a1a6;--line:#2c2c2e;--glass:#111111f2;--shadow:0 15px 45px #0009;color:var(--ink)}[data-theme="dark"] .sidebar{background:#151f1bd9;border-color:#28352f}[data-theme="dark"] .nav-item.active,[data-theme="dark"] .network-chip,[data-theme="dark"] .clock-chip,[data-theme="dark"] .icon-button,[data-theme="dark"] .avatar,[data-theme="dark"] .favorite-card,[data-theme="dark"] .panel,[data-theme="dark"] .result-card,[data-theme="dark"] .search-box{background:var(--surface);border-color:#293831}[data-theme="dark"] .nav-item.active{color:#8bd4b8}[data-theme="dark"] .side-fav strong,[data-theme="dark"] .panel-header h3,[data-theme="dark"] .departure-dest strong,[data-theme="dark"] .favorite-card h3{color:var(--ink)}[data-theme="dark"] .side-fav:hover,[data-theme="dark"] .empty-card:hover{background:#202d27}[data-theme="dark"] .section-label span,[data-theme="dark"] .count-pill,[data-theme="dark"] .line-badge,[data-theme="dark"] .result-symbol{background:#263a30;color:#9cd4b9}[data-theme="dark"] .empty-card{border-color:#3b5146}[data-theme="dark"] .hero-card{background:linear-gradient(112deg,#102e28,#174135 67%,#2d644f)}[data-theme="dark"] .topbar{background:#000}[data-theme="dark"] .search-box input{color:var(--ink)}[data-theme="dark"] .network-map{background:#202c27}[data-theme="dark"] .map-legend{background:#26342e;color:#b5c2bb}[data-theme="dark"] .modal-card{background:#19231f;border-color:#293831}[data-theme="dark"] .modal-card select{background:#121b17;border-color:#2a3931;color:var(--ink)}[data-theme="dark"] .settings-storage{background:#202e27}[data-theme="dark"] .mobile-tabbar{background:#18231fdd;border-color:#2b3932}[data-theme="dark"] .mobile-tab.active{color:#88d1b4}[data-theme="dark"] .explore-tabs{border-color:#293831}[data-theme="dark"] .page-footer{border-color:#293831}
[data-theme="dark"] .empty-card{background:var(--surface);color:#9eaca4}
:focus-visible{outline:3px solid #61b494;outline-offset:3px}[data-theme="dark"] :focus-visible{outline-color:#9bd9bc}

.stop-search{width:100%;padding:12px 14px;border:1px solid var(--line);border-radius:13px;background:var(--surface);color:var(--ink);outline:none}.stop-search:focus{border-color:var(--mint);box-shadow:0 0 0 3px #58b39a22}.stop-options{max-height:230px;overflow:auto;margin-top:7px;border:1px solid var(--line);border-radius:13px;background:var(--surface);box-shadow:0 12px 30px #183f3a12}.stop-options[hidden]{display:none}.stop-option{display:flex;width:100%;align-items:center;justify-content:space-between;padding:10px 13px;border:0;border-bottom:1px solid var(--line);background:transparent;color:var(--ink);text-align:left;font-size:13px}.stop-option:last-child{border-bottom:0}.stop-option:hover,.stop-option[aria-selected=true]{background:#eaf5f1}.stop-option-check{color:var(--mint);font-weight:800}.stop-no-results,.picker-hint{display:block;padding:12px;color:var(--muted);font-size:12px}.route-options{display:flex;flex-wrap:wrap;gap:8px;max-height:150px;overflow:auto;padding:2px 1px}.route-option{display:flex;align-items:center;gap:8px;padding:7px 10px 7px 7px;border:1px solid var(--line);border-radius:999px;background:var(--surface);color:var(--ink);font-size:11px;transition:.15s}.route-option.selected{border-color:var(--mint);box-shadow:0 0 0 2px #58b39a25}.route-option:hover{transform:translateY(-1px)}.route-mark{display:grid;min-width:29px;height:29px;place-items:center;padding:0 5px;border-radius:50%;background:var(--route-color,#dfeae5);color:var(--route-text,#38584c);font-weight:800;font-size:10px}.route-option-all .route-mark{background:#173f3a;color:white}.route-option-name{white-space:nowrap}.modal-card select:disabled{opacity:.55}[data-theme="dark"] .stop-search,[data-theme="dark"] .stop-options,[data-theme="dark"] .route-option{background:var(--surface);border-color:var(--line);color:var(--ink)}[data-theme="dark"] .stop-option:hover,[data-theme="dark"] .stop-option[aria-selected=true]{background:#263a30}[data-theme="dark"] .stop-option{color:var(--ink)}

.favorite-card.is-nearest{border-color:#62b59a;box-shadow:0 0 0 3px #58b39a20,0 15px 35px #1e433512}.nearest-badge{align-self:center;padding:5px 8px;border-radius:999px;background:#e7f4ed;color:#327b65;font-size:9px;font-weight:700;white-space:nowrap}.favorite-departure-group{padding:12px 0 5px;border-top:1px solid var(--line)}.favorite-departure-group:first-child{border-top:0;padding-top:3px}.favorite-departure-group.is-nearest{margin:0 -8px;padding:12px 8px 7px;border-radius:12px;background:#58b39a0d}.favorite-departure-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:2px}.favorite-departure-heading strong,.favorite-departure-heading small{display:block}.favorite-departure-heading strong{font-size:11px}.favorite-departure-heading small{margin-top:3px;color:var(--muted);font-size:9px}.favorite-no-departures{padding:10px 0;color:var(--muted);font-size:10px}.location-card{max-width:420px;text-align:left}.location-illustration{display:grid;width:46px;height:46px;place-items:center;margin:0 0 17px;border-radius:15px;background:#e7f4ed;color:#3b9075;font-size:25px}.location-card .location-privacy{display:grid;gap:5px;margin:16px 0 19px;padding:13px 14px;border:1px solid var(--line);border-radius:13px;background:color-mix(in srgb,var(--surface),var(--mint) 5%)}.location-privacy strong{font-size:11px}.location-privacy span{color:var(--muted);font-size:10px;line-height:1.55}.location-card .primary-button{width:100%;justify-content:space-between}.location-later{display:block;width:100%;margin:7px 0 0;padding:10px;border:0;background:transparent;color:var(--muted);font-size:11px}.location-secure-note{display:block;margin-top:8px;color:var(--muted);font-size:9px;line-height:1.45;text-align:center}.icon-button.location-active{background:#e7f4ed;border-color:#c7e8da;color:#27785f}[data-theme="dark"] .nearest-badge,[data-theme="dark"] .location-illustration,[data-theme="dark"] .icon-button.location-active{background:#263a30;color:#9cd4b9;border-color:#355849}[data-theme="dark"] .favorite-departure-group.is-nearest{background:#58b39a12}

.location-disable{display:block;width:100%;padding:8px;border:0;background:transparent;color:var(--muted);font-size:10px}

.bottom-panels{grid-template-columns:minmax(0,1fr)}

.hero-card{height:auto;min-height:232px}.hero-copy{padding-bottom:21px}.hero-departures{display:grid;grid-template-columns:repeat(3,minmax(0,105px));gap:8px;max-width:340px;margin-top:13px}.hero-departure{display:grid;gap:4px;padding:8px 10px;border:1px solid #ffffff3d;border-radius:10px;background:#ffffffed;color:#1e4b40;box-shadow:0 4px 12px #09271e15}.hero-departure strong{font-size:13px;line-height:1}.hero-departure small{font-size:9px;color:#578074;white-space:nowrap}.hero-no-departures{max-width:320px;padding:8px 10px;border-radius:9px;background:#ffffff1a;color:#d3e8df;font-size:10px}.hero-button{margin-top:13px}
@media(max-width:700px){.hero-card{min-height:225px;height:auto}.hero-copy{padding:20px 16px}.hero-card h2{margin:9px 0 3px}.hero-departures{grid-template-columns:repeat(3,minmax(0,1fr));gap:5px;max-width:252px;margin-top:10px}.hero-departure{padding:7px 5px}.hero-departure strong{font-size:11px}.hero-departure small{font-size:8px}.hero-button{margin-top:11px}.hero-art{opacity:.45}}

.icon{display:inline-block;flex:none;vertical-align:middle}.nav-icon .icon{width:17px;height:17px;vertical-align:-4px}.icon-button .icon,.avatar .icon{width:16px;height:16px}.mobile-tab span{display:grid;place-items:center}.mobile-tab .icon{width:18px;height:18px}.date-icon .icon,.panel-icon .icon{width:18px;height:18px}.wave{display:inline-flex;width:18px;height:18px;margin-left:3px;vertical-align:middle}.wave .icon{width:18px;height:18px}.hero-spark .icon{width:16px;height:16px;vertical-align:middle}.hero-button .icon,.primary-button .icon{margin-left:8px;vertical-align:-4px}.text-button .icon{vertical-align:-3px}.fav-symbol .icon,.side-fav-mark .icon,.result-symbol .icon,.empty-plus .icon{width:17px;height:17px}.result-add .icon,.fav-remove .icon{width:15px;height:15px}.settings-link .icon,.settings-storage>span .icon,.note-icon .icon{vertical-align:middle}

/* Mobile readability, full favorite list, and native standalone safe-area treatment. */
@media(max-width:700px){
  .main-content{padding-bottom:calc(100px + env(safe-area-inset-bottom))}
  .topbar{height:60px}
  .mobile-brand strong{font-size:16px}
  .mobile-brand strong span{font-size:13px}
  .clock-chip{font-size:12px}
  .welcome-row h1,.explore-header h1{font-size:29px}
  .eyebrow{font-size:10px}
  .welcome-subtitle,.explore-header p{font-size:14px;line-height:1.45}
  .hero-card h2{font-size:22px}
  .hero-card p{font-size:13px;max-width:230px}
  .hero-kicker{font-size:10px}
  .hero-button,.text-button{font-size:13px}
  .section-heading h2{font-size:18px}
  .favorites-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
  .favorite-card{min-height:124px;padding:14px}
  .favorite-card h3{font-size:14px}
  .favorite-card p{font-size:11px;line-height:1.4}
  .fav-next{font-size:11px}
  .empty-card strong{font-size:13px}
  .empty-card small{font-size:11px}
  .panel-header h3{font-size:15px}
  .panel-header p,.departure-dest small,.departure-time small{font-size:11px}
  .departure-dest strong{font-size:13px}
  .departure-time strong{font-size:15px}
  .mobile-tabbar{height:68px;bottom:calc(8px + env(safe-area-inset-bottom))}
  .mobile-tab{font-size:11px;min-width:58px;gap:3px}
  .mobile-tab .icon{width:20px;height:20px}
  .explore-tab{font-size:14px}
  .result-copy strong{font-size:14px}
  .result-copy small{font-size:12px}
  .result-card{min-height:56px}
  .modal-card h2{font-size:24px}
  .modal-card>p,.setting-row strong{font-size:14px}
  .setting-row span{font-size:12px}
  .field-label,.modal-card select,.primary-button{font-size:14px}
}
[data-theme="dark"]{--bg:#000;--surface:#111;--ink:#f5f5f7;--muted:#a1a1a6;--line:#2c2c2e;--glass:#111111f2;--shadow:0 15px 45px #0009}
[data-theme="dark"] body,[data-theme="dark"] .app-shell{background:#000}
[data-theme="dark"] .sidebar,[data-theme="dark"] .topbar{background:#000;border-color:#2c2c2e}
[data-theme="dark"] .topbar{backdrop-filter:none;-webkit-backdrop-filter:none}
[data-theme="dark"] .empty-card,[data-theme="dark"] .search-box,[data-theme="dark"] .modal-card,[data-theme="dark"] .settings-storage{background:#111;border-color:#2c2c2e}
[data-theme="dark"] .mobile-tabbar{background:#111;border-color:#38383a}
[data-theme="dark"] .stop-option:hover,[data-theme="dark"] .stop-option[aria-selected=true]{background:#242426}
[data-theme="dark"] .network-chip,[data-theme="dark"] .clock-chip,[data-theme="dark"] .icon-button,[data-theme="dark"] .avatar,[data-theme="dark"] .favorite-card,[data-theme="dark"] .panel,[data-theme="dark"] .result-card{background:#111;border-color:#2c2c2e}
@media(display-mode:standalone){
  html,body{background:var(--bg)}
  .app-shell{padding-top:env(safe-area-inset-top)}
  @media(max-width:700px){
    .topbar{top:0;backdrop-filter:none;-webkit-backdrop-filter:none;background:var(--bg);margin-top:0}
    [data-theme="dark"] .topbar{background:#000}
  }
}

/* Stronger mobile type scale and contrast for quick reading outdoors. */
@media(max-width:700px){
  body{font-size:16px;-webkit-text-size-adjust:100%}
  .breadcrumbs{font-size:14px}
  .mobile-brand strong{font-size:17px}
  .mobile-brand strong span{font-size:14px}
  .clock-chip{font-size:14px;padding:7px 10px}
  .welcome-row h1,.explore-header h1{font-size:32px;line-height:1.14}
  .eyebrow{font-size:11px;letter-spacing:.1em}
  .welcome-subtitle,.explore-header p{font-size:16px;line-height:1.5}
  .hero-card{min-height:245px}
  .hero-card h2{font-size:24px;line-height:1.2}
  .hero-card p{font-size:15px;line-height:1.5;max-width:245px}
  .hero-kicker{font-size:11px}
  .hero-button,.text-button{font-size:15px}
  .section-heading h2{font-size:20px}
  .count-pill{font-size:13px}
  .favorite-card{min-height:138px;padding:15px}
  .favorite-card h3{font-size:16px;line-height:1.3}
  .favorite-card p{font-size:13px;line-height:1.45}
  .fav-next{font-size:13px}
  .nearest-badge{font-size:12px}
  .empty-card{min-height:118px}
  .empty-card strong{font-size:15px}
  .empty-card small{font-size:13px;line-height:1.4}
  .panel{padding:17px}
  .panel-header h3{font-size:17px}
  .panel-header p{font-size:13px}
  .departure-dest strong{font-size:15px}
  .departure-dest small,.departure-time small{font-size:12px}
  .departure-time strong{font-size:17px}
  .line-badge{font-size:12px}
  .favorite-departure-heading strong{font-size:15px}
  .favorite-departure-heading small{font-size:13px}
  .favorite-no-departures{font-size:13px}
  .mobile-tabbar{height:72px}
  .mobile-tab{font-size:12px;min-width:62px}
  .mobile-tab .icon{width:22px;height:22px}
  .explore-tab{font-size:16px;padding-block:14px}
  .search-box{height:52px}
  .search-box input{font-size:16px}
  .result-card{min-height:66px;padding:12px}
  .result-copy strong{font-size:16px}
  .result-copy small{font-size:13px;line-height:1.4}
  .result-symbol{width:38px;height:38px}
  .result-add{width:38px;height:38px;font-size:20px}
  .modal-card h2{font-size:26px}
  .modal-card>p{font-size:15px;line-height:1.5}
  .field-label,.setting-row strong,.modal-card select,.primary-button{font-size:16px}
  .setting-row span{font-size:14px;line-height:1.4}
  .modal-card select{height:48px}
  .primary-button{min-height:50px}
  .settings-storage strong{font-size:14px}
  .settings-storage small{font-size:13px;line-height:1.4}
  .page-footer{font-size:12px;line-height:1.5;flex-wrap:wrap}
  .network-live{font-size:12px}
  .departures-empty{font-size:13px}
  .departures-empty button{font-size:14px}
  .toast{font-size:14px}
  .welcome-subtitle,.explore-header p,.favorite-card p,.panel-header p,
  .departure-dest small,.departure-time small,.result-copy small,
  .setting-row span,.empty-card small,.page-footer,.section-label{
    color:#66736d
  }
  [data-theme="dark"] .welcome-subtitle,[data-theme="dark"] .explore-header p,
  [data-theme="dark"] .favorite-card p,[data-theme="dark"] .panel-header p,
  [data-theme="dark"] .departure-dest small,[data-theme="dark"] .departure-time small,
  [data-theme="dark"] .result-copy small,[data-theme="dark"] .setting-row span,
  [data-theme="dark"] .empty-card small,[data-theme="dark"] .page-footer,
  [data-theme="dark"] .section-label{color:#b8b8bd}
}

/* Desktop readability refinement: modest type and contrast increase. */
@media(min-width:701px){
  body{font-size:15px}
  .brand strong{font-size:18px}
  .brand small{font-size:12px}
  .network-chip{font-size:12px}
  .nav-item{font-size:14px}
  .side-fav strong{font-size:13px}
  .side-fav small{font-size:11px}
  .section-label{font-size:10px}
  .breadcrumbs{font-size:13px}
  .clock-chip{font-size:12px}
  .welcome-row h1,.explore-header h1{font-size:34px}
  .eyebrow{font-size:10px}
  .welcome-subtitle,.explore-header p{font-size:14px}
  .hero-card h2{font-size:24px}
  .hero-card p{font-size:13px}
  .hero-kicker{font-size:10px}
  .hero-button,.text-button{font-size:12px}
  .section-heading h2{font-size:19px}
  .favorite-card h3{font-size:14px}
  .favorite-card p{font-size:11px}
  .fav-next{font-size:11px}
  .empty-card strong{font-size:13px}
  .empty-card small{font-size:11px}
  .panel-header h3{font-size:14px}
  .panel-header p,.network-live{font-size:11px}
  .departure-dest strong{font-size:12px}
  .departure-dest small,.departure-time small{font-size:10px}
  .departure-time strong{font-size:14px}
  .line-badge{font-size:11px}
  .explore-tab{font-size:13px}
  .search-box input{font-size:13px}
  .result-copy strong{font-size:13px}
  .result-copy small{font-size:11px}
  .modal-card h2{font-size:24px}
  .modal-card>p,.setting-row strong{font-size:13px}
  .setting-row span,.field-label{font-size:11px}
  .modal-card select,.primary-button{font-size:13px}
  .settings-storage strong{font-size:12px}
  .settings-storage small,.page-footer{font-size:10px}
  .welcome-subtitle,.explore-header p,.favorite-card p,.panel-header p,
  .departure-dest small,.departure-time small,.result-copy small,
  .setting-row span,.empty-card small,.page-footer,.section-label{
    color:#66736d
  }
  [data-theme="dark"] .welcome-subtitle,[data-theme="dark"] .explore-header p,
  [data-theme="dark"] .favorite-card p,[data-theme="dark"] .panel-header p,
  [data-theme="dark"] .departure-dest small,[data-theme="dark"] .departure-time small,
  [data-theme="dark"] .result-copy small,[data-theme="dark"] .setting-row span,
  [data-theme="dark"] .empty-card small,[data-theme="dark"] .page-footer,
  [data-theme="dark"] .section-label{color:#b8b8bd}
}

.line-badge{min-width:0;max-width:100%;padding-inline:2px;white-space:nowrap;overflow:hidden;text-overflow:clip;line-height:1}
.line-badge,.route-mark,.route-result-symbol{border:2px solid var(--route-border,#fff);border-radius:50%;font-weight:700;line-height:1;text-align:center}
.line-badge{width:38px;height:38px;min-width:38px;max-width:38px;padding:0;display:flex;flex:none;flex-direction:column;align-items:center;justify-content:center;overflow:hidden;white-space:nowrap;text-overflow:clip}
.route-mark{width:34px;height:34px;min-width:34px;padding:0;display:grid;place-items:center;background:var(--route-color,#dfeae5);color:var(--route-text,#38584c);border-color:var(--route-border,#fff)}
.route-badge-mode{font-size:.4em;line-height:1;letter-spacing:.04em}
.line-badge .route-badge-mode{font-size:6px}
.route-result-symbol{display:flex;align-items:center;justify-content:center;flex:none}
[data-theme="dark"] .route-mark{background:var(--route-color,#dfeae5);color:var(--route-text,#38584c)}
.route-mark[style*="--route-color:#171832"],.line-badge[style*="background:#171832"],.route-result-symbol[style*="background:#171832"]{background-image:radial-gradient(circle at 23% 24%,#ffffff 1px,transparent 1.5px),radial-gradient(circle at 72% 36%,#ffffff 1px,transparent 1.5px),radial-gradient(circle at 40% 76%,#ffffff 1px,transparent 1.5px)}
@media(max-width:700px){
  .topbar{z-index:30;isolation:isolate;background:#f4f7f6}
  [data-theme="dark"] .topbar{background:#000}
  .hero-card,.hero-copy{z-index:0}
  .welcome-row h1,.explore-header h1{font-size:30px}
  .hero-card h2{font-size:22px}
  .section-heading h2{font-size:18px}
  .favorite-card h3{font-size:15px}
  .panel-header h3{font-size:16px}
  .mobile-brand strong{font-size:16px}
  .empty-card strong,.departure-dest strong,.favorite-departure-heading strong{font-size:14px}
  .departure-time strong{font-size:16px}
  .result-copy strong,.setting-row strong{font-size:15px}
  .modal-card h2{font-size:24px}
  .settings-storage strong{font-size:13px}
  .nearest-badge{font-size:11px;padding:4px 6px}
  .nearest-compact{display:inline}
  .nearest-full{display:none}
  .favorite-card{padding:12px;min-width:0}
  .fav-top{display:flex;align-items:center;justify-content:flex-start;gap:5px;padding-right:25px;min-width:0}
  .favorite-card .fav-symbol{width:24px;height:24px;min-width:24px;border-radius:8px;font-size:12px}
  .favorite-card .fav-symbol .icon{width:14px;height:14px}
  .favorite-card .nearest-badge{min-width:0;max-width:100%;overflow:hidden;text-overflow:ellipsis}
  .favorite-card .fav-remove{position:absolute;top:8px;right:8px;opacity:1;width:22px;height:22px;display:grid;place-items:center;padding:0}
}
.nearest-compact{display:none}
@media(max-width:700px){
  .hero-copy{z-index:2}
  .favorite-card .nearest-compact{display:inline}
  .favorite-card .nearest-full{display:none}
  .favorite-departure-group .nearest-compact{display:none}
  .favorite-departure-group .nearest-full{display:inline}
  .hero-kicker,.section-label{font-size:10px}
  .count-pill{font-size:12px}
  .hero-button,.text-button,.primary-button{font-size:14px}
  .mobile-tab{font-size:11px}
}

@media(max-width:700px){
  .hero-card{position:relative;isolation:isolate;overflow:hidden;height:auto;min-height:225px}
  .hero-art{z-index:0;right:0;width:100%;height:100%;opacity:.38;transform:none;pointer-events:none}
  .hero-copy{position:relative;z-index:2;width:100%;min-width:0;padding:20px 16px 22px}
  .hero-card h2,.hero-card p{position:relative;z-index:2;max-width:100%;overflow-wrap:anywhere}
  .hero-card p{line-height:1.5}
  .hero-departures{position:relative;z-index:2;max-width:min(100%,252px)}
  .hero-button{position:relative;z-index:2}
}

@media(max-width:700px){.topbar{transition:transform .22s ease}.topbar.topbar-hidden{transform:translateY(-100%);pointer-events:none}.topbar.topbar-visible{transform:translateY(0)}}
/* Keep copy readable and contained on narrow screens and with long labels. */
*{min-width:0}body{overflow-wrap:anywhere}h1,h2,h3,p,strong,small,button,.departure-dest,.panel-header{min-width:0}button,.departure-dest strong,.favorite-card h3,.section-heading h2{overflow-wrap:anywhere}@media(max-width:390px){.main-content{padding-inline:13px}.section-heading{gap:8px}.section-heading h2{font-size:clamp(12px,4vw,15px)}.text-button{font-size:clamp(8px,2.6vw,9px)}.topbar{padding-inline:13px}}

@media(max-width:700px){.topbar{padding-top:env(safe-area-inset-top)!important;min-height:calc(60px + env(safe-area-inset-top))}}

@media(max-width:700px){html,body{overscroll-behavior-y:none}.topbar{position:fixed!important;top:0!important;left:0!important;right:0!important;width:100%!important;height:auto!important;min-height:calc(60px + env(safe-area-inset-top))!important;margin:0!important;padding:env(safe-area-inset-top) 19px 0!important;z-index:40!important;transform:translateY(0);transition:transform .38s cubic-bezier(.4,0,.2,1)!important;will-change:transform;isolation:isolate}.topbar.topbar-hidden{transform:translateY(-110%)!important;pointer-events:none}.main-content{padding-top:72px!important}}
/* Larger, reliable touch target for modal close controls. */
.modal-close{display:grid;place-items:center;width:44px;height:44px;padding:0;border-radius:50%;touch-action:manipulation;-webkit-tap-highlight-color:transparent;z-index:2;cursor:pointer;transition:background-color .15s ease,color .15s ease,transform .15s ease}.modal-close .icon{width:20px;height:20px;pointer-events:none}.modal-close:active{background:#e7f4ed;color:#26795f;transform:scale(.94)}.modal-close:focus-visible{outline:3px solid #61b494;outline-offset:1px}@media(max-width:700px){.modal-close{width:48px;height:48px;right:8px;top:6px}.modal-card{padding-top:58px}}