:root,[data-theme=dark]{--font-heading: "Fira Code", ui-monospace, monospace;--font-body: "Fira Sans", system-ui, sans-serif;--bg: #101828;--bg-soft: #162033;--surface: #1d293d;--surface-2: #26364f;--line: rgba(255, 255, 255, .09);--line-strong: rgba(255, 255, 255, .16);--text: #f8fafc;--muted: #a8b3c7;--quiet: #94a3b8;--accent: #22d3ee;--accent-2: #84cc16;--warn: #f59e0b;--danger: #ef4444;--ok: #22c55e;--shadow: 0 18px 45px rgba(0, 0, 0, .32);--radius: 8px;--body-bg-gradient: radial-gradient(circle at top left, rgba(34, 211, 238, .11), transparent 34rem), linear-gradient(180deg, #101828 0%, #0b1220 100%);--invert-map: invert(100%) hue-rotate(180deg) brightness(95%) contrast(90%);--surface-rgb: 29, 41, 61;--bg-rgb: 16, 24, 40;--accent-rgb: 34, 211, 238;--input-bg: #111827;--card-bg: #1e293b;--pill-bg: rgba(255, 255, 255, .08);--pill-bg-strong: rgba(255, 255, 255, .12);--accent-on: #06202a;--bg-figma: #080B12;--surface-fg-2: rgba(255, 255, 255, .04);--surface-fg-3: rgba(255, 255, 255, .05);--surface-fg-4: rgba(255, 255, 255, .06);--surface-fg-5: rgba(255, 255, 255, .07);--surface-fg-6: rgba(255, 255, 255, .08);--surface-fg-12: rgba(255, 255, 255, .12);--text-bright: #F0F4FF;--text-muted: #8296B4;--text-dim: #7488A6;--text-faint: #6A7F9F;--warn-1: #F59E0B;--warn-2: #FACC15;--r-sm: 8px;--r-md: 12px;--r-lg: 16px;--r-xl: 20px;--r-2xl: 24px;--maxw: 430px}[data-theme=light]{--bg: #f1f5f9;--bg-soft: #e2e8f0;--bg-figma: #f1f5f9;--surface: #ffffff;--surface-2: #f8fafc;--card-bg: #ffffff;--line: rgba(15, 23, 42, .1);--line-strong: rgba(15, 23, 42, .18);--text: #0f172a;--muted: #334155;--quiet: #475569;--text-bright: #0f172a;--text-muted: #475569;--text-dim: #64748b;--text-faint: #64748b;--accent: #0e7490;--accent-2: #4d7c0f;--warn: #b45309;--warn-1: #b45309;--warn-2: #a16207;--danger: #b91c1c;--ok: #15803d;--shadow: 0 4px 12px rgba(15, 23, 42, .06), 0 2px 4px rgba(15, 23, 42, .04);--body-bg-gradient: radial-gradient(circle at top left, rgba(14, 116, 144, .06), transparent 34rem), linear-gradient(180deg, #f8fafc 0%, #e2e8f0 100%);--invert-map: none;--surface-rgb: 255, 255, 255;--bg-rgb: 226, 232, 240;--accent-rgb: 14, 116, 144;--input-bg: #ffffff;--pill-bg: rgba(15, 23, 42, .06);--pill-bg-strong: rgba(15, 23, 42, .1);--accent-on: #ffffff}:root{--line-z601: #f97316;--line-z602: #ef4444;--line-z603: #dc2626;--line-z606: #b91c1c;--line-z611: #8b5cf6;--line-z612: #7c3aed;--line-z616: #6366f1;--line-z617: #4f46e5;--line-z618: #3b82f6;--line-z619: #64748b;--line-z620: #059669;--line-z621: #10b981;--line-z622: #34d399;--line-z625: #f59e0b;--line-z627: #22d3ee;--line-z636: #a855f7;--line-z641: #ec4899;--line-z642: #14b8a6;--line-z643: #84cc16;--line-z644: #06b6d4;--line-z646: #f472b6;--line-z647: #a78bfa;--line-z649: #22d3ee;--line-z6c3: #94a3b8;--line-s5: #f39123;--line-s6: #f6d200;--line-re4: #E40314;--line-re5: #E40314;--line-r21: #94C120;--line-r23: #94C120}*{box-sizing:border-box}html,body{min-height:100%}body{margin:0;background:var(--body-bg-gradient);color:var(--text);font-family:var(--font-body);font-size:15px;line-height:1.45;-webkit-font-smoothing:antialiased;transition:background .3s,color .3s}button,input,select{font:inherit}button{cursor:pointer}.app-shell{width:min(920px,100%);min-height:100vh;margin:0 auto;padding:12px}.app-header{position:sticky;top:0;z-index:10;display:flex;align-items:center;justify-content:space-between;gap:14px;padding:14px 4px 12px;backdrop-filter:blur(18px)}.app-header h1{margin:0;font-size:clamp(1.25rem,4vw,1.9rem);letter-spacing:0}.app-kicker,.section-eyebrow{margin:0 0 3px;color:var(--accent);font-size:.72rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase}.clock-card{min-width:104px;padding:10px 12px;border:1px solid var(--line);border-radius:var(--radius);background:rgba(var(--surface-rgb),.74);text-align:right}.clock-card span{display:block;font-size:1.45rem;font-weight:800;line-height:1;font-variant-numeric:tabular-nums}.clock-card small{display:block;margin-top:4px;color:var(--muted);font-size:.7rem}.tab-bar{position:sticky;top:76px;z-index:9;display:grid;grid-template-columns:repeat(6,1fr);gap:6px;padding:6px;border:1px solid var(--line);border-radius:var(--radius);background:rgba(var(--bg-rgb),.86);backdrop-filter:blur(18px)}.tab-btn{font-size:clamp(.7rem,2.3vw,.85rem);padding:0 2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.tab-btn,.line-tabs button,.filter-row button,.segmented button{min-height:46px;border:1px solid transparent;border-radius:var(--radius);background:transparent;color:var(--muted);font-weight:600;transition:all .15s ease-in-out}.tab-btn.active,.line-tabs button.active,.filter-row button.active,.segmented button.active{border-color:rgba(var(--accent-rgb),.35);background:rgba(var(--accent-rgb),.13);color:var(--accent)}.content-area{padding:14px 0 64px}.tab-panel{display:none}.tab-panel.active{display:block}.stack{display:grid;gap:12px;grid-template-columns:minmax(0,1fr)}.filter-bar{display:grid;gap:10px;padding:14px;border:1px solid var(--line);border-radius:var(--radius);background:rgba(var(--surface-rgb),.88);box-shadow:var(--shadow)}.filter-group{display:grid;gap:6px}.filter-label{color:var(--muted);font-size:.72rem;font-weight:800;letter-spacing:.06em;text-transform:uppercase}.stop-search-wrapper{position:relative}.stop-search-input{min-height:42px;width:100%;border:1px solid var(--line-strong);border-radius:var(--radius);background:var(--input-bg);color:var(--text);padding:8px 36px 8px 38px;font:inherit;font-size:.88rem;transition:all .15s ease-in-out}.search-input-icon{position:absolute;left:12px;top:50%;transform:translateY(-50%);color:var(--muted);pointer-events:none;transition:color .15s ease-in-out}.stop-search-input:focus~.search-input-icon{color:var(--accent)}.stop-search-input:focus{outline:none;border-color:var(--accent)}.stop-search-input::placeholder{color:var(--quiet)}.stop-search-clear{position:absolute;right:6px;top:50%;transform:translateY(-50%);width:28px;height:28px;border:none;border-radius:50%;background:var(--pill-bg);color:var(--muted);font-size:.8rem;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background .15s}.stop-search-clear:hover{background:#ef444440;color:#fecaca}.stop-search-results{display:none;position:absolute;top:calc(100% + 4px);left:0;right:0;max-height:280px;overflow-y:auto;border:1px solid var(--line-strong);border-radius:var(--radius);background:var(--input-bg);box-shadow:0 12px 32px #00000080;z-index:20}.stop-search-results.open{display:block}.search-group-label{padding:8px 12px 4px;color:var(--accent);font-size:.68rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase;position:sticky;top:0;background:var(--input-bg)}.search-result-item{display:block;width:100%;padding:8px 12px;border:none;background:transparent;color:var(--text);font-size:.84rem;text-align:left;cursor:pointer;transition:background .12s}.search-result-item:hover{background:rgba(var(--accent-rgb),.1)}.search-no-results{padding:16px 12px;color:var(--quiet);font-size:.84rem;text-align:center}.filter-pills{display:flex;gap:8px;overflow-x:auto;padding-bottom:6px;scrollbar-width:none}.filter-pills::-webkit-scrollbar{display:none}.filter-pills-scroll{-webkit-overflow-scrolling:touch;mask-image:linear-gradient(to right,black 0%,black calc(100% - 32px),transparent 100%);-webkit-mask-image:linear-gradient(to right,black 0%,black calc(100% - 32px),transparent 100%);padding-right:32px}.filter-pills button small{opacity:.55;font-size:.7rem;margin-left:4px;background:#ffffff0f;padding:1px 6px;border-radius:999px;transition:all .15s ease}.filter-pills button{flex:0 0 auto;min-height:40px;padding:0 16px;border:1px solid var(--line);border-radius:999px;background:rgba(var(--surface-rgb),.5);color:var(--muted);font-weight:600;font-size:.82rem;cursor:pointer;transition:all .15s cubic-bezier(.4,0,.2,1);display:inline-flex;align-items:center;justify-content:center}.filter-pills button.active{border-color:var(--accent);background:rgba(var(--accent-rgb),.14);color:var(--accent);box-shadow:0 0 0 1px var(--accent)}.filter-pills button.active small{color:var(--accent);background:rgba(var(--accent-rgb),.15);opacity:.9;font-weight:700}.filter-pills button:hover:not(.active){border-color:var(--line-strong);background:rgba(var(--accent-rgb),.06)}.filter-active-info{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 14px;border:1px solid rgba(var(--accent-rgb),.22);border-radius:var(--radius);background:rgba(var(--accent-rgb),.05);color:var(--accent);font-size:.8rem;font-weight:600;margin-top:8px;animation:filterBarSlideDown .2s ease}@keyframes filterBarSlideDown{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}.active-filter-badge{display:inline-flex;align-items:center;background:rgba(var(--accent-rgb),.1);padding:4px 10px;border-radius:999px;border:1px solid rgba(var(--accent-rgb),.15);font-size:.76rem}.filter-active-info button[data-clear-filters]{color:var(--accent);background:rgba(var(--accent-rgb),.08);border:1px solid rgba(var(--accent-rgb),.2);border-radius:999px;padding:4px 12px;font-size:.72rem;font-weight:700;cursor:pointer;transition:all .15s ease}.filter-active-info button[data-clear-filters]:hover{background:var(--accent);color:#fff;border-color:var(--accent)}.hero-panel,.panel,.line-card,.featured-card,.table-card,.recent-section,.alt-block{border:1px solid var(--line);border-radius:var(--radius);background:rgba(var(--surface-rgb),.88);box-shadow:var(--shadow)}.hero-panel,.panel{display:grid;gap:14px;padding:16px}.hero-panel{grid-template-columns:1fr;min-width:0}.hero-panel>*{min-width:0}.hero-panel h2,.panel h2{margin:0;font-size:1.15rem}.panel p,.alt-block p,.featured-card p{margin:4px 0 0;color:var(--muted)}.panel-heading{display:flex;justify-content:space-between;gap:16px}.segmented{display:grid;grid-template-columns:repeat(2,1fr);gap:4px;padding:4px;border:1px solid var(--line);border-radius:var(--radius);background:rgba(var(--bg-rgb),.52)}.segmented.wide{width:100%}.section-title{color:var(--muted);font-size:.74rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase}.featured-card{padding:18px;overflow:hidden}.featured-card.hurry{border-color:#ef44446b}.featured-card.good{border-color:#f59e0b66}.featured-card.calm{border-color:#22c55e52}.featured-top,.line-main,.line-meta,.recent-item,.connection-row,.info-list div,.checkbox-panel-head{display:flex;align-items:center;justify-content:space-between;gap:10px}.featured-card h2{margin:10px 0 0;font-size:clamp(2.7rem,13vw,5rem);line-height:.95;font-variant-numeric:tabular-nums}.line-pill,.status-pill,.validity-badge,.badge,.notice-inline{display:inline-flex;align-items:center;min-height:22px;padding:2px 8px;border-radius:999px;background:var(--pill-bg);color:var(--text);font-size:.7rem;font-weight:800;white-space:nowrap}.line-pill{background:var(--accent);color:var(--accent-on)}.status-pill.hurry,.urgency-dot.urgency-hurry{background:var(--danger);color:#fff}.status-pill.good,.urgency-dot.urgency-good{background:var(--warn);color:#1f1400}.status-pill.calm,.urgency-dot.urgency-calm{background:var(--ok);color:#02180b}.status-pill.missed,.urgency-dot.urgency-missed{background:var(--quiet)}.line-card{overflow:hidden}.line-card-header{width:100%;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px;border:0;border-bottom:1px solid var(--line);background:transparent;color:inherit;text-align:left}.line-main{justify-content:flex-start;min-width:0}.line-main h3{margin:0;font-size:.95rem;line-height:1.2}.line-main p{min-height:24px;margin:4px 0 0;color:var(--muted)}.line-meta{flex:0 0 auto;align-items:flex-end;flex-direction:column;font-variant-numeric:tabular-nums}.urgency-dot{width:9px;height:9px;border-radius:999px}.dep-stop-row{display:flex;align-items:baseline;gap:6px;padding:10px 14px 6px;flex-wrap:wrap}.dep-stop-label{font-size:.6rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--quiet);white-space:nowrap}.dep-stop-name{font-size:.95rem;font-weight:700;color:var(--text)}.dep-stop-dest{font-size:.82rem;color:var(--muted)}.dep-stop-pin{background:none;border:none;padding:0 4px;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;vertical-align:middle;transition:transform .15s ease-in-out}.dep-stop-pin:hover{transform:scale(1.15)}.time-info-row{display:grid;grid-template-columns:1fr 1fr;border-top:1px solid var(--line)}.time-block{padding:12px 14px;display:flex;flex-direction:column;gap:3px}.time-block.bus{border-right:1px solid var(--line)}.time-block.walk{background:rgba(var(--accent-rgb),.06)}.time-block-label{display:flex;align-items:center;gap:4px;font-size:.65rem;font-weight:700;letter-spacing:.07em;text-transform:uppercase;line-height:1}.time-block-label.bus{color:var(--muted)}.time-block-label.walk{color:var(--accent)}.time-block-value{font-size:1.6rem;font-weight:800;font-variant-numeric:tabular-nums;line-height:1;letter-spacing:-.02em}.time-block-value.bus{color:var(--text)}.time-block-value.walk{color:var(--accent)}.time-block-pill{display:inline-flex;align-items:center;gap:3px;font-size:.68rem;font-weight:700;padding:2px 8px;border-radius:999px;width:fit-content;margin-top:1px}.time-block-pill.bus{background:#fdab431a;color:#fdab43;border:1px solid rgba(253,171,67,.2)}.time-block-pill.walk{background:rgba(var(--accent-rgb),.1);color:var(--accent);border:1px solid rgba(var(--accent-rgb),.22)}.time-block-detail{font-size:.66rem;color:var(--quiet);line-height:1.3}.stop-chip-row{display:flex;flex-wrap:nowrap;overflow-x:auto;gap:8px;padding:10px 14px 14px;scrollbar-width:none;-webkit-overflow-scrolling:touch;mask-image:linear-gradient(to right,black 85%,transparent 100%);-webkit-mask-image:linear-gradient(to right,black 85%,transparent 100%)}.stop-chip-row::-webkit-scrollbar{display:none}.stop-chip{display:grid;flex:0 0 130px;gap:2px;padding:10px;border:1px solid var(--line);border-radius:var(--radius);background:rgba(var(--bg-rgb),.48)}.stop-chip.large{min-height:64px}.stop-chip small{color:var(--muted);overflow-wrap:anywhere}.stop-chip strong,.line-meta strong,.recent-item strong,.connection-row strong{font-variant-numeric:tabular-nums}.line-card-body{display:none;padding:0 14px 14px}.line-card.expanded .line-card-body{display:grid;gap:12px}.timeline{display:grid;gap:8px;margin-top:4px}.timeline-node{position:relative;display:grid;grid-template-columns:14px 58px 1fr;align-items:center;gap:8px}.timeline-node:not(:last-child):after{content:"";position:absolute;top:55%;left:6px;bottom:-55%;width:2px;background:rgba(var(--accent-rgb),.22);z-index:1}.timeline-node span{position:relative;z-index:2;width:9px;height:9px;border-radius:999px;background:var(--accent)}.timeline-node small{color:var(--muted)}.timeline-node.past{opacity:.45}.timeline-node.past span{background:var(--muted)}.timeline-node.past:after{background:rgba(var(--muted-rgb),.22)}.timeline-node.upcoming span{background:var(--accent);box-shadow:0 0 0 4px rgba(var(--accent-rgb),.35);animation:pulse-glow 2s infinite ease-in-out}@keyframes pulse-glow{0%{box-shadow:0 0 rgba(var(--accent-rgb),.5)}70%{box-shadow:0 0 0 6px rgba(var(--accent-rgb),0)}to{box-shadow:0 0 rgba(var(--accent-rgb),0)}}.pin-icon{width:12px;height:12px;stroke:currentColor;stroke-width:2.5;fill:none;vertical-align:middle;margin-left:4px;transition:transform .15s ease-in-out,color .15s ease-in-out;display:inline-block}.map-trigger:hover .pin-icon,.dep-stop-pin:hover .pin-icon{transform:scale(1.22) translateY(-1px);color:var(--accent)}.connection-box,.next-list,.checkbox-panel{display:grid;gap:8px;padding:12px;border:1px solid var(--line);border-radius:var(--radius);background:rgba(var(--bg-rgb),.42)}.connection-box h4,.next-list h4,.alt-block h3,.recent-section h3{margin:0;font-size:.86rem}.connection-row em{padding:2px 8px;border-radius:999px;background:var(--pill-bg);font-size:.7rem;font-style:normal;font-weight:800}.connection-row em.tight{background:#ef44442e;color:#fecaca}.connection-row em.good,.connection-row em.calm{background:#22c55e26;color:#bbf7d0}.connection-row em.long{background:#f59e0b29;color:#fde68a}.connection-row em.missed{background:#71809638;color:var(--quiet)}.station-link{display:inline-flex;align-items:center;gap:4px;margin-left:8px;padding:2px 8px;border-radius:999px;background:#ef44441f;color:#fca5a5;font-size:.65rem;font-weight:800;text-decoration:none;letter-spacing:.04em;transition:background .15s;vertical-align:middle}.station-link:hover{background:#ef444440;color:#fecaca}.connection-box h4{display:flex;align-items:center;flex-wrap:wrap;gap:4px}.connection-row span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.destination-estimates{margin-top:12px;color:var(--accent-2);font-size:.85rem;font-weight:700}.next-list div{display:flex;justify-content:space-between;gap:10px;color:var(--muted)}.recent-section,.alt-block{display:grid;gap:8px;padding:14px}.recent-item{padding:8px 0;border-top:1px solid var(--line);color:var(--muted)}.banner{padding:10px 12px;border-radius:var(--radius);font-weight:600}.banner-warning{border:1px solid rgba(245,158,11,.35);background:#f59e0b24;color:#fde68a}.banner-danger{border:1px solid rgba(239,68,68,.4);background:#ef444429;color:#fecaca}.empty-state,.empty-mini{padding:24px 16px;border:1px dashed var(--line-strong);border-radius:var(--radius);color:var(--muted);text-align:center}.empty-mini{padding:12px;font-size:.85rem}.line-tabs,.filter-row{display:flex;gap:6px;overflow-x:auto;padding-bottom:4px;scrollbar-width:none}.line-tabs::-webkit-scrollbar,.filter-row::-webkit-scrollbar{display:none}.line-tabs-scroll{-webkit-overflow-scrolling:touch;mask-image:linear-gradient(to right,black 0,black calc(100% - 20px),transparent 100%);-webkit-mask-image:linear-gradient(to right,black 0,black calc(100% - 20px),transparent 100%);padding-right:20px}.line-tabs button,.filter-row button{flex:0 0 auto;padding:0 13px;border-color:var(--line);background:rgba(var(--bg-rgb),.38)}.filter-row button:disabled{cursor:not-allowed;opacity:.38}.table-card{overflow:hidden}.table-scroll{overflow-x:auto}.timetable{width:100%;border-collapse:collapse;min-width:620px}.timetable th,.timetable td{padding:11px 10px;border-bottom:1px solid var(--line);text-align:left;white-space:nowrap}.timetable th{color:var(--muted);background:rgba(var(--bg-rgb),.62);font-size:.75rem}.timetable td{font-variant-numeric:tabular-nums}.table-card .timetable th{background:var(--surface-fg-6, rgba(255,255,255,.08));color:var(--text-dim, #a8b3c7)}.table-card .timetable td{color:var(--text-bright, #f8fafc)}.table-card .timetable th,.table-card .timetable td{border-color:var(--surface-fg-6, rgba(255,255,255,.08))}.timetable tr.current{background:rgba(var(--accent-rgb),.11)}.timetable tr.past{opacity:.45}.badge.muted,.conn-mini{color:var(--muted)}.settings-grid{display:grid;gap:10px}.settings-grid.two{grid-template-columns:1fr}.field-row{display:grid;gap:8px;padding:12px;border:1px solid var(--line);border-radius:var(--radius);background:rgba(var(--bg-rgb),.42)}.field-row span{color:var(--muted);font-weight:600}input[type=number],select{min-height:40px;width:100%;border:1px solid var(--line-strong);border-radius:var(--radius);background:var(--input-bg);color:var(--text);padding:8px 10px}.checkbox-grid{display:grid;grid-template-columns:1fr;gap:6px;max-height:320px;overflow:auto}.check-row{display:flex;align-items:center;gap:8px;min-height:34px;color:var(--muted)}.check-row input{width:18px;height:18px;accent-color:var(--accent)}.text-btn{border:0;background:transparent;color:var(--accent);font-weight:800}.button-grid{display:grid;grid-template-columns:1fr;gap:8px}.btn{min-height:42px;border:1px solid var(--line);border-radius:var(--radius);color:var(--text);font-weight:800}.btn.primary{border-color:transparent;background:var(--accent);color:var(--accent-on)}.btn.secondary{background:rgba(var(--bg-rgb),.54)}.info-list{display:grid;gap:8px;margin-top:4px}.info-list div{padding:9px 0;border-top:1px solid var(--line);color:var(--muted)}.app-footer{color:var(--quiet);font-size:.78rem;text-align:center}.app-footer.feed-validity{font-size:.72rem;font-weight:300;margin-top:4px;opacity:.75}@media (min-width: 680px){.app-shell{padding:18px}.hero-panel{grid-template-columns:1fr;align-items:center}.settings-grid.two,.button-grid{grid-template-columns:repeat(2,1fr)}.checkbox-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}.settings-subtabs{display:flex;gap:4px;overflow-x:auto;scrollbar-width:none;-webkit-overflow-scrolling:touch;padding:5px;margin-bottom:12px;background:rgba(var(--bg-rgb),.52);border:1px solid var(--line);border-radius:var(--radius);mask-image:linear-gradient(to right,#000 90%,#00000040);-webkit-mask-image:linear-gradient(to right,black 90%,rgba(0,0,0,.25) 100%)}.settings-subtabs::-webkit-scrollbar{display:none}.subtab-btn{flex:1 0 auto;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;min-height:54px;padding:6px 8px;border:1px solid transparent;border-radius:var(--radius);background:transparent;color:var(--muted);font-size:.72rem;font-weight:700;cursor:pointer;transition:all .15s ease-in-out;text-align:center}.subtab-btn svg{width:18px;height:18px;stroke-width:2.2;transition:stroke .15s ease-in-out,transform .15s ease-in-out}.subtab-btn:hover:not(.active){background:rgba(var(--accent-rgb),.05);color:var(--accent)}.subtab-btn:hover:not(.active) svg{transform:translateY(-1px)}.subtab-btn.active{border-color:rgba(var(--accent-rgb),.35);background:rgba(var(--accent-rgb),.13);color:var(--accent);box-shadow:0 0 0 1px rgba(var(--accent-rgb),.1)}.settings-section-wrapper{display:block}.settings-section-wrapper.hidden{display:none!important}@media (min-width: 680px){.settings-subtabs{display:grid;grid-template-columns:repeat(5,1fr);mask-image:none;-webkit-mask-image:none}.subtab-btn{flex:none;flex-direction:row;gap:8px;min-height:44px;font-size:.8rem}}.map-fab{position:fixed;bottom:calc(100px + env(safe-area-inset-bottom,0px));right:max(16px,calc(50% - var(--maxw, 430px) / 2 + 16px));z-index:90;display:flex;align-items:center;gap:8px;height:56px;padding:0 20px;border:1px solid rgba(var(--accent-rgb),.4);border-radius:28px;background:rgba(var(--bg-rgb),.95);box-shadow:0 8px 32px #00000052,0 0 16px rgba(var(--accent-rgb),.25);color:var(--accent);font-size:1.05rem;font-weight:800;backdrop-filter:blur(12px);cursor:pointer;transition:transform .2s,box-shadow .2s}.map-fab:hover{transform:translateY(-2px);box-shadow:0 12px 40px #00000061,0 0 24px rgba(var(--accent-rgb),.4)}.map-fab:active{transform:translateY(1px)}.map-overlay{position:fixed;top:0;left:0;width:100vw;height:100vh;z-index:100;background:var(--bg);display:flex;flex-direction:column;transform:translateY(100%);transition:transform .35s cubic-bezier(.16,1,.3,1)}.map-overlay.open{transform:translateY(0)}.map-header{display:flex;align-items:center;justify-content:space-between;padding:16px 20px;background:rgba(var(--bg-rgb),.9);backdrop-filter:blur(16px);border-bottom:1px solid var(--line);z-index:101}.map-header h2{margin:0;font-size:1.25rem;color:var(--text)}#map-close{width:40px;height:40px;border-radius:50%;border:none;background:var(--pill-bg);color:var(--muted);font-size:1.2rem;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:background .2s}#map-close:hover{background:#ef444440;color:#fecaca}#map-container{flex:1;width:100%;background:#000}.leaflet-layer,.leaflet-control-zoom-in,.leaflet-control-zoom-out,.leaflet-control-attribution{filter:var(--invert-map)}.leaflet-marker-pane .custom-map-marker{filter:none}.custom-map-marker{width:24px;height:24px;border-radius:50%;border:3px solid #111827;box-shadow:0 0 8px #000c;opacity:.9}.leaflet-popup-content-wrapper{background:rgba(var(--surface-rgb),.97)!important;color:var(--text)!important;border:1px solid var(--line-strong)!important;border-radius:var(--radius)!important;box-shadow:var(--shadow)!important;backdrop-filter:blur(8px)!important}.leaflet-popup-tip{background:rgba(var(--surface-rgb),.97)!important;border:1px solid var(--line-strong)!important}.leaflet-popup-content{margin:12px;font-family:inherit}.leaflet-popup-content strong{display:block;font-size:.95rem;margin-bottom:4px;color:var(--text)!important}.leaflet-popup-content small{display:block;color:var(--muted)!important;font-size:.75rem;margin-bottom:8px;font-family:monospace}.leaflet-popup-content .line-tags{display:flex;flex-wrap:wrap;gap:4px}.leaflet-popup-content .line-tag{font-size:.65rem;padding:2px 6px;border-radius:4px;font-weight:800;color:var(--accent-on)!important}.map-legend{background:rgba(var(--bg-rgb),.85);backdrop-filter:blur(8px);padding:12px;border-radius:var(--radius);border:1px solid var(--line-strong);color:var(--text);box-shadow:var(--shadow);margin-left:12px!important;margin-bottom:85px!important;max-width:calc(100vw - 24px)}.map-filter-panel{background:rgba(var(--bg-rgb),.92);backdrop-filter:blur(10px);border-radius:var(--radius);border:1px solid var(--line-strong);color:var(--text);box-shadow:var(--shadow);margin-top:10px!important;margin-right:10px!important;max-width:220px;font-size:.8rem}.map-filter-header{padding:8px;display:flex;justify-content:flex-end}.map-filter-toggle{background:rgba(var(--accent-rgb),.15);border:1px solid rgba(var(--accent-rgb),.3);border-radius:6px;color:var(--accent);padding:6px 8px;cursor:pointer;display:flex;align-items:center;gap:4px}.map-filter-toggle:hover{background:rgba(var(--accent-rgb),.25)}.map-filter-body{padding:0 10px 10px}.map-filter-search{margin-bottom:8px}.map-filter-input{width:100%;padding:6px 10px;border:1px solid var(--line);border-radius:6px;background:#0003;color:var(--text);font-size:.78rem;outline:none}.map-filter-input:focus{border-color:var(--accent)}.map-filter-actions{display:flex;gap:4px;margin-bottom:8px}.map-filter-btn{flex:1;padding:4px 6px;border:1px solid var(--line);border-radius:4px;background:#00000026;color:var(--muted);font-size:.68rem;font-weight:600;cursor:pointer;white-space:nowrap}.map-filter-btn:hover{background:rgba(var(--accent-rgb),.1);color:var(--accent);border-color:rgba(var(--accent-rgb),.3)}.map-filter-list{max-height:250px;overflow-y:auto;display:flex;flex-direction:column;gap:2px}.map-filter-line{display:flex;align-items:center;gap:6px;padding:4px 6px;border-radius:4px;cursor:pointer;font-size:.78rem}.map-filter-line:hover{background:#ffffff0d}.map-filter-line input[type=checkbox]{width:14px;height:14px;cursor:pointer}.map-filter-dot{width:10px;height:10px;border-radius:50%;flex-shrink:0}.map-filter-train .map-filter-dot{border-radius:3px}.map-filter-other{opacity:.6}.map-filter-other:has(input:checked){opacity:1}.directions-btn{display:inline-flex;align-items:center;gap:6px;margin-top:10px;padding:6px 12px;background:rgba(var(--accent-rgb),.15);border:1px solid rgba(var(--accent-rgb),.3);border-radius:6px;color:var(--accent)!important;font-size:.75rem;font-weight:800;text-decoration:none;transition:all .2s}.directions-btn:hover{background:rgba(var(--accent-rgb),.25);border-color:rgba(var(--accent-rgb),.5);transform:translateY(-1px)}th.stop-link{cursor:pointer;color:var(--accent)!important;text-decoration:underline rgba(var(--accent-rgb),.25);text-underline-offset:4px;transition:all .2s}th.stop-link:hover{background:rgba(var(--accent-rgb),.12)!important;text-decoration-color:rgba(var(--accent-rgb),.6)}.premium-row{margin-top:12px}.btn-premium{flex:0 0 auto;min-height:38px;padding:0 14px;border:1px solid rgba(var(--accent-rgb),.25);border-radius:var(--radius);background:rgba(var(--bg-rgb),.45);color:var(--accent);font-weight:800;font-size:.82rem;transition:all .2s ease;display:flex;align-items:center;gap:6px;margin-left:auto}.btn-premium:hover{background:rgba(var(--accent-rgb),.1);border-color:var(--accent)}.btn-premium.active{background:rgba(var(--accent-rgb),.2);border-color:var(--accent);box-shadow:0 0 15px rgba(var(--accent-rgb),.15)}.btn-premium:active{transform:scale(.97)}.theme-toggle{width:38px;height:38px;border:1px solid var(--line-strong);border-radius:50%;background:var(--pill-bg);color:var(--muted);font-size:1.1rem;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:background .2s,border-color .2s,transform .2s;flex-shrink:0}.theme-toggle:hover{background:rgba(var(--accent-rgb),.12);border-color:var(--accent);color:var(--accent)}.theme-toggle:active{transform:scale(.9)}[data-theme=light] .banner-warning{color:#92400e}[data-theme=light] .banner-danger,[data-theme=light] .connection-row em.tight{color:#991b1b}[data-theme=light] .connection-row em.good,[data-theme=light] .connection-row em.calm{color:#166534}[data-theme=light] .connection-row em.long{color:#92400e}[data-theme=light] .station-link{color:#b91c1c;background:#ef44441a}[data-theme=light] .station-link:hover{background:#ef44442e;color:#991b1b}[data-theme=light] .stop-search-clear:hover,[data-theme=light] #map-close:hover{background:#ef444426;color:#991b1b}[data-theme=light] .status-pill.hurry,[data-theme=light] .urgency-dot.urgency-hurry{color:#fff}[data-theme=light] .status-pill.good,[data-theme=light] .urgency-dot.urgency-good{color:#1f1400}[data-theme=light] .time-block-pill.bus{background:#b453091a;color:#b45309;border-color:#b4530940}[data-theme=light] .map-fab{box-shadow:0 8px 24px #0f172a1f,0 0 16px rgba(var(--accent-rgb),.18)}[data-theme=light] .map-fab:hover{box-shadow:0 12px 32px #0f172a2e,0 0 24px rgba(var(--accent-rgb),.28)}[data-theme=light] .stop-search-results{box-shadow:0 12px 32px #0f172a1f}[data-theme=light] .custom-map-marker{border-color:#fff;box-shadow:0 0 8px #0f172a59}.onboarding-overlay{position:fixed;inset:0;z-index:200;display:flex;align-items:center;justify-content:center;padding:16px;background:#000000b3;backdrop-filter:blur(8px);opacity:0;transition:opacity .35s ease}.onboarding-overlay.open{opacity:1}.onboarding-card{width:min(480px,100%);max-height:calc(100vh - 32px);overflow-y:auto;border:1px solid var(--line-strong);border-radius:16px;background:var(--surface);box-shadow:0 24px 64px #0006;padding:0}.onboarding-progress{height:4px;background:var(--line);border-radius:16px 16px 0 0;overflow:hidden}.onboarding-progress-bar{height:100%;background:var(--accent);transition:width .3s ease}.onboarding-step-indicator{padding:12px 20px 0;color:var(--quiet);font-size:.7rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase}.onboarding-content{padding:20px}.onboarding-title{margin:0 0 6px;font-size:1.35rem;font-weight:800;color:var(--text)}.onboarding-subtitle{margin:0 0 20px;color:var(--muted);font-size:.88rem;line-height:1.4}.onboarding-choices{display:grid;gap:10px}.onboarding-choices--multi{grid-template-columns:1fr}.onboarding-choice{display:grid;grid-template-columns:auto 1fr;grid-template-rows:auto auto;gap:2px 12px;align-items:center;padding:14px 16px;border:1px solid var(--line-strong);border-radius:var(--radius);background:rgba(var(--bg-rgb),.4);color:var(--text);text-align:left;cursor:pointer;transition:all .2s}.onboarding-choice:hover{border-color:rgba(var(--accent-rgb),.4);background:rgba(var(--accent-rgb),.06)}.onboarding-choice.selected{border-color:var(--accent);background:rgba(var(--accent-rgb),.12)}.onboarding-choice--subtle{opacity:.7}.onboarding-choice--subtle:hover{opacity:1}.onboarding-choice--compact{padding:10px 14px}.onboarding-choice-emoji{grid-row:1 / -1;font-size:1.5rem;line-height:1}.onboarding-choice-label{font-weight:600;font-size:.92rem}.onboarding-choice-desc{grid-column:2;color:var(--muted);font-size:.76rem}.onboarding-nav{display:flex;justify-content:space-between;gap:12px;margin-top:24px}.onboarding-btn{min-height:42px;padding:0 20px;border:1px solid var(--line);border-radius:var(--radius);font-weight:800;font-size:.88rem;cursor:pointer;transition:all .2s}.onboarding-btn.primary{background:var(--accent);color:var(--accent-on);border-color:transparent}.onboarding-btn.primary:disabled{opacity:.4;cursor:not-allowed}.onboarding-btn.secondary{background:transparent;color:var(--muted)}.onboarding-btn.secondary:hover{color:var(--text);border-color:var(--line-strong)}.onboarding-stops-list{display:grid;gap:10px;margin-bottom:16px}.onboarding-stop-row{padding:12px;border:1px solid var(--line);border-radius:var(--radius);background:rgba(var(--bg-rgb),.3)}.onboarding-stop-line{display:block;margin-bottom:6px;color:var(--accent);font-size:.82rem}.onboarding-stop-pair{display:flex;align-items:center;gap:8px;margin-top:4px}.onboarding-stop-label{color:var(--quiet);font-size:.72rem;font-weight:700;text-transform:uppercase;letter-spacing:.04em;min-width:60px}.onboarding-stop-value{color:var(--text);font-size:.84rem;font-weight:600}.onboarding-field{margin-top:16px;padding:12px;border:1px solid var(--line);border-radius:var(--radius);background:rgba(var(--bg-rgb),.3)}.onboarding-field-label{display:block;margin-bottom:8px;color:var(--muted);font-size:.82rem;font-weight:700}.onboarding-field-input{min-height:40px;width:100%;border:1px solid var(--line-strong);border-radius:var(--radius);background:var(--input-bg);color:var(--text);padding:8px 10px;font:inherit}@media (min-width: 480px){.onboarding-choices--multi{grid-template-columns:repeat(2,1fr)}}.alert-strike-banner{animation:alertPulse 2s ease-in-out infinite alternate}@keyframes alertPulse{0%{border-color:#e53e3e4d}to{border-color:#e53e3eb3}}.alert-strike-reminder-tag{background:#e53e3e;color:#fff;font-size:.65rem;font-weight:800;padding:1px 6px;border-radius:4px;display:inline-flex;align-items:center;line-height:1.2;vertical-align:middle}.alert-card{padding:14px;border:1px solid var(--line);border-radius:var(--radius);background:rgba(var(--surface-rgb),.88);box-shadow:var(--shadow);display:grid;gap:8px;position:relative}.alert-card-dismiss{position:absolute;top:12px;right:12px;width:24px;height:24px;border:none;border-radius:50%;background:#e53e3e14;color:var(--muted);font-size:.75rem;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background .15s,color .15s;line-height:1;z-index:5}.alert-card-dismiss:hover{background:#e53e3e33;color:var(--text)}.alert-card-dismiss:focus-visible{outline:none;box-shadow:0 0 0 3px #e53e3e66}.alert-card--strike{border-left:4px solid #e53e3e;background:#e53e3e0f}[data-theme=light] .alert-card--strike{background:#fff5f5;border-left-color:#e53e3e}.alert-card--notice{border-left:4px solid var(--accent)}.alert-card-header{display:flex;align-items:center;gap:8px}.alert-card-icon{font-size:1.1rem}.alert-card-meta{display:flex;flex-wrap:wrap;gap:6px;align-items:center}.alert-card-source{background:#e5533e1f;border-radius:999px;font-size:.72rem;font-weight:600;padding:2px 8px;color:#c0392b;text-transform:uppercase;letter-spacing:.06em}[data-theme=dark] .alert-card-source,:not([data-theme=light]) .alert-card-source{color:#fc8181;background:#e53e3e2e}[data-theme=light] .alert-card-source{color:#c0392b;background:#e5533e1f}.alert-countdown-badge{display:inline-flex;align-items:center;font-size:.68rem;font-weight:700;padding:2px 8px;border-radius:999px;text-transform:uppercase;letter-spacing:.04em}.alert-countdown-badge--active{background:#e53e3e26;color:#e53e3e;border:1px solid rgba(229,62,62,.25);animation:pulse 2s ease-in-out infinite}[data-theme=light] .alert-countdown-badge--active{background:#fff5f5;color:#e53e3e;border:1px solid #feb2b2}.alert-countdown-badge--upcoming{background:#31979526;color:#319795;border:1px solid rgba(49,151,149,.25)}[data-theme=light] .alert-countdown-badge--upcoming{background:#e6fffa;color:#234e52;border:1px solid #b2f5ea}@keyframes pulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.5;transform:scale(.85)}}.alert-strike-icon{font-size:1.3rem;line-height:1;flex-shrink:0;animation:pulse 2s ease-in-out infinite}.alert-card-date{font-size:.72rem;color:var(--muted);font-weight:600}.alert-card-daterange{font-size:.82rem;font-weight:700;color:var(--text);padding:6px 10px;background:#ef44440f;border-left:3px solid var(--danger);border-radius:6px;line-height:1.4}.alert-card--notice .alert-card-daterange{background:rgba(var(--accent-rgb),.06);border-left-color:var(--accent)}.alert-card-title{margin:0;font-size:.92rem;font-weight:600;color:var(--text);line-height:1.3}.alert-card-desc{margin:0;font-size:.82rem;color:var(--muted);line-height:1.4}.alert-card-footer{display:flex;flex-wrap:wrap;gap:8px;align-items:center}.alert-card-services{font-size:.7rem;font-weight:800;color:var(--danger);background:#ef44441a;padding:2px 8px;border-radius:999px}.alert-card--notice .alert-card-services{color:var(--accent);background:rgba(var(--accent-rgb),.1)}.alert-card-bands{display:flex;flex-wrap:wrap;gap:4px;align-items:center;width:100%;margin-top:4px}.alert-card-bands-label{font-size:.72rem;font-weight:700;color:var(--muted);margin-right:4px}.band-chip{background:#eaf4fb;border:1px solid #bee3f8;border-radius:6px;font-size:.7rem;padding:2px 7px;color:#2b6cb0;font-weight:600;display:inline-flex;align-items:center;transition:all .2s ease}[data-theme=dark] .band-chip{background:#2b6cb026;border-color:#4299e14d;color:#63b3ed}.band-chip--guaranteed{background:#e6fffa;border-color:#b2f5ea;color:#234e52}[data-theme=dark] .band-chip--guaranteed{background:#38b2ac26;border-color:#38b2ac4d;color:#81e6d9}.band-chip--strike{background:#fff5f5;border-color:#feb2b2;color:#9b2c2c}[data-theme=dark] .band-chip--strike{background:#e53e3e26;border-color:#e53e3e4d;color:#feb2b2}.band-chip--bus{background:#ebf8ff;border-color:#bee3f8;color:#2b6cb0}[data-theme=dark] .band-chip--bus{background:#4299e126;border-color:#4299e14d;color:#90cdf4}.alert-card-link{border:1px solid currentColor;border-radius:6px;padding:4px 10px;font-size:.78rem;display:inline-flex;align-items:center;gap:4px;color:var(--accent);text-decoration:none;width:fit-content;font-weight:600;transition:background .15s ease,opacity .15s ease}.alert-card-link:hover{background:#0000000d;text-decoration:none;opacity:1}[data-theme=dark] .alert-card-link:hover{background:#ffffff14}.alert-card-link:focus-visible{outline:none;box-shadow:0 0 0 3px rgba(var(--accent-rgb),.35)}@media (max-width: 480px){.alert-card{margin-inline:-4px;border-radius:10px}.alert-card-daterange{word-break:break-word}}.train-upcoming{display:flex;flex-direction:column;gap:10px}.train-departure-card{display:flex;align-items:center;gap:12px;padding:12px 16px;border:1px solid var(--line);border-radius:var(--radius);background:var(--surface)}.train-departure-card .train-time{font-size:1.4rem;font-weight:800;letter-spacing:-.02em}.train-departure-card .train-wait{margin-left:auto;font-weight:600;font-size:.88rem;padding:3px 10px;border-radius:999px}.train-departure-card .train-wait.urgency-rush{background:#ef444426;color:#fca5a5}.train-departure-card .train-wait.urgency-tight{background:#fbbf2426;color:#fde68a}.train-departure-card .train-wait.urgency-calm{background:#22c55e1f;color:#86efac}.train-line-badge{display:inline-flex;align-items:center;justify-content:center;min-width:40px;padding:4px 10px;border-radius:6px;font-weight:800;font-size:.82rem;letter-spacing:.02em}.train-line-badge-sm{display:inline-flex;align-items:center;justify-content:center;min-width:32px;padding:2px 8px;border-radius:4px;font-weight:800;font-size:.75rem}.train-timetable td:first-child{font-variant-numeric:tabular-nums}.train-timetable tr.current td{background:rgba(var(--accent-rgb),.08);font-weight:700}.train-timetable tr.past td{opacity:.4}.train-details-cell{padding:12px 14px!important;background:var(--surface-2)!important;border-bottom:1px solid rgba(var(--accent-rgb),.12)!important}.line-scope-toggle{display:inline-flex;align-items:center;justify-content:center;gap:6px;font-size:.78rem;padding:10px 16px;margin-top:10px;color:var(--accent);font-weight:600;background:rgba(var(--accent-rgb),.04);border:1px dashed rgba(var(--accent-rgb),.25);border-radius:var(--radius);width:100%;cursor:pointer;transition:all .15s ease-in-out;text-decoration:none}.line-scope-toggle:hover{background:rgba(var(--accent-rgb),.08);border-color:rgba(var(--accent-rgb),.4);text-decoration:none}.line-scope-toggle svg{transition:transform .15s ease-in-out}.line-scope-toggle:hover svg:first-child{transform:translate(-3px)}.line-scope-toggle:hover svg:last-child{transform:translate(3px)}.filter-pills button.line-outside{border-style:dashed;opacity:.85}.filter-pills button.line-outside.active{opacity:1}button:focus-visible,input:focus-visible,select:focus-visible,.search-result-item:focus-visible,.onboarding-choice:focus-visible{outline:none!important;box-shadow:0 0 0 3px rgba(var(--accent-rgb),.35)!important}.btn:active,.map-fab:active,.theme-toggle:active,.search-result-item:active,.onboarding-btn:active,.onboarding-choice:active{transform:scale(.96);transition:transform .1s ease}.tab-btn:active,.line-tabs button:active,.filter-row button:active,.segmented button:active{transform:scale(.97);transition:transform .1s ease}.skeleton-shimmer{background:linear-gradient(90deg,rgba(var(--surface-rgb),.6) 25%,rgba(var(--surface-rgb),.95) 37%,rgba(var(--surface-rgb),.6) 63%);background-size:400% 100%;animation:shimmer 1.4s ease infinite;border-radius:var(--radius)}@keyframes shimmer{0%{background-position:100% 50%}to{background-position:0% 50%}}.sync-pill{display:inline-flex;align-items:center;gap:6px;padding:4px 10px;border-radius:999px;font-size:.72rem;font-weight:600;transition:all .2s ease;border:1px solid transparent}.sync-pill.sync-status-syncing{background:#22d3ee1f;color:var(--accent);border-color:#22d3ee33}.sync-pill.sync-status-synced{background:#22c55e1f;color:#86efac;border-color:#22c55e33}[data-theme=light] .sync-pill.sync-status-synced{color:#15803d;background:#22c55e1a;border-color:#22c55e26}.sync-pill.sync-status-offline{background:#f59e0b1f;color:#fde68a;border-color:#f59e0b33}[data-theme=light] .sync-pill.sync-status-offline{color:#b45309;background:#f59e0b1a;border-color:#f59e0b26}.sync-icon{width:14px;height:14px;stroke:currentColor;stroke-width:2.5;fill:none;flex-shrink:0}.sync-pill.sync-status-syncing .sync-icon{animation:spin 2s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.search-chips-container{display:flex;flex-direction:column;gap:8px;margin-top:8px;padding:0 4px;animation:fadeIn .2s ease-in-out}.search-chips-title{font-size:.72rem;text-transform:uppercase;letter-spacing:.05em;color:var(--quiet);font-weight:700}.search-chips{display:flex;flex-wrap:wrap;gap:6px}.search-chip{display:inline-flex;align-items:center;gap:4px;padding:4px 10px;border-radius:999px;font-size:.76rem;background:var(--surface-2);color:var(--text);border:1px solid var(--line);cursor:pointer;transition:all .12s ease;user-select:none}.search-chip:hover{background:#22d3ee1a;border-color:var(--accent);color:var(--accent)}[data-theme=light] .search-chip:hover{background:#0e749014;border-color:var(--accent);color:var(--accent)}.search-chip-delete{display:inline-flex;align-items:center;justify-content:center;width:14px;height:14px;border-radius:50%;font-size:.7rem;color:var(--quiet);border:none;background:transparent;cursor:pointer;padding:0;line-height:1;transition:all .1s ease}.search-chip-delete:hover{background:#ef444433;color:#ef4444}@keyframes fadeIn{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}.dep-stop-select{background:var(--surface, #fff);border:1px solid rgba(var(--accent-rgb),.4);border-radius:6px;padding:2px 6px;color:var(--text);font-size:.85rem;font-weight:600;cursor:pointer;max-width:min(240px,65vw);width:auto;outline:none;font-family:inherit;position:absolute;left:0;top:50%;transform:translateY(-50%);z-index:10}.dep-stop-edit-wrapper{position:relative;display:inline-flex;align-items:center}.dep-stop-select:hover{border-color:var(--accent)}.dep-stop-select:focus{border-color:var(--accent);box-shadow:0 0 0 2px rgba(var(--accent-rgb),.15)}.dep-stop-select option{background:var(--surface, #1d293d);color:var(--text, #f8fafc);font-weight:400;padding:8px}.edit-dep-stop-btn{background:transparent;border:none;padding:4px;margin-left:2px;color:var(--muted);cursor:pointer;display:inline-flex;align-items:center;justify-content:center;vertical-align:middle;border-radius:50%;transition:all .2s ease}.edit-dep-stop-btn:hover{color:var(--accent);background:rgba(var(--accent-rgb),.08)}.edit-dep-stop-btn:focus{outline:none;color:var(--accent);background:rgba(var(--accent-rgb),.12);box-shadow:0 0 0 2px rgba(var(--accent-rgb),.2)}.view-timetable-btn{font-size:.78rem!important;padding:5px 10px!important;display:inline-flex!important;align-items:center!important;gap:6px!important;background:rgba(var(--accent-rgb),.08)!important;color:var(--accent)!important;border:1px solid rgba(var(--accent-rgb),.18)!important;border-radius:6px!important;font-weight:600!important;cursor:pointer!important;transition:all .2s cubic-bezier(.4,0,.2,1)!important;min-height:auto!important}.view-timetable-btn:hover{background:rgba(var(--accent-rgb),.16)!important;border-color:rgba(var(--accent-rgb),.35)!important;transform:translateY(-1px)}.view-timetable-btn:active{transform:scale(.97)}.view-timetable-btn svg{transition:transform .2s ease}.view-timetable-btn:hover svg{transform:scale(1.1)}.live-customize-trigger{background:rgba(var(--surface-rgb),.5);border:1px solid var(--line);border-radius:50%;width:36px;height:36px;display:flex;align-items:center;justify-content:center;color:var(--muted);cursor:pointer;transition:all .2s cubic-bezier(.4,0,.2,1)}.live-customize-trigger:hover{color:var(--accent);border-color:var(--accent);background:rgba(var(--accent-rgb),.1);transform:rotate(45deg)}.live-customize-modal{position:fixed;inset:0;z-index:999;display:flex;align-items:flex-end;justify-content:center;background:#0009;opacity:0;pointer-events:none;transition:opacity .3s cubic-bezier(.4,0,.2,1);backdrop-filter:blur(4px)}.live-customize-modal.open{opacity:1;pointer-events:auto}.live-customize-sheet{width:min(540px,100%);background:rgba(var(--surface-rgb),.94);border-top-left-radius:18px;border-top-right-radius:18px;border:1px solid var(--line-strong);border-bottom:none;box-shadow:0 -10px 30px #00000080;padding:24px;transform:translateY(100%);transition:transform .3s cubic-bezier(.4,0,.2,1);backdrop-filter:blur(20px)}.live-customize-modal.open .live-customize-sheet{transform:translateY(0)}.live-customize-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px}.live-customize-header h3{margin:0;font-size:1.2rem;font-weight:700;color:var(--text)}.live-customize-close{background:var(--pill-bg);border:none;border-radius:50%;width:32px;height:32px;display:flex;align-items:center;justify-content:center;color:var(--muted);font-size:1.1rem;cursor:pointer;transition:all .15s}.live-customize-close:hover{background:#ef444426;color:#fecaca}.live-customize-body{display:flex;flex-direction:column;gap:20px;max-height:70vh;overflow-y:auto}.live-customize-section{display:flex;flex-direction:column;gap:8px}.live-customize-section label.section-label{font-size:.75rem;font-weight:800;color:var(--accent);letter-spacing:.05em;text-transform:uppercase}.live-customize-section select{width:100%;padding:10px 14px;border-radius:var(--radius);background:var(--input-bg);border:1px solid var(--line-strong);color:var(--text);font-size:.9rem;outline:none}.live-customize-section select:focus{border-color:var(--accent)}.live-customize-trains-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:10px;margin-top:4px}.live-customize-trains-grid label{display:flex;align-items:center;gap:10px;padding:10px 12px;border:1px solid var(--line);border-radius:var(--radius);background:rgba(var(--bg-rgb),.3);cursor:pointer;transition:all .2s ease;font-size:.88rem;user-select:none}.live-customize-trains-grid label:hover{border-color:rgba(var(--accent-rgb),.35);background:rgba(var(--accent-rgb),.05)}.live-customize-trains-grid label input[type=checkbox]{accent-color:var(--accent);width:16px;height:16px}.live-customize-footer{display:flex;gap:12px;margin-top:24px}.live-customize-footer button{flex:1;min-height:44px!important;font-weight:700}.timetable th.edit-col{cursor:pointer}.timetable th.edit-col:hover{background:rgba(var(--accent-rgb),.15)}.timetable td.hidden-col,.timetable th.hidden-col{opacity:.38;background:#ffffff05!important}.stop-edit-badge{display:inline-flex;align-items:center;justify-content:center;width:18px;height:18px;border-radius:50%;font-size:.7rem;font-weight:900;margin-left:6px;vertical-align:middle;border:1.5px solid currentColor;transition:all .15s}.stop-edit-badge.add{color:#34d399;background:#34d3991f}.stop-edit-badge.remove{color:#f87171;background:#f871711f}.stop-edit-badge:hover{transform:scale(1.2)}.dep-stop-name-text{font-weight:600}.dep-stop-label{font-size:.7rem;font-weight:700;color:var(--muted);letter-spacing:.5px}.pref-confirm-label{font-size:.72rem;color:#10b981;font-weight:600;display:none;margin-top:2px;align-self:flex-start;transition:opacity .3s ease}.time-block-value-hero{color:var(--accent);margin:0;font-size:clamp(1.5rem,6vw,2.5rem)}.time-block-value-disabled{color:var(--quiet);margin:0;font-size:clamp(1.6rem,7vw,2.5rem);font-weight:650;text-transform:lowercase}.time-block-pill--disabled{background:rgba(var(--muted-rgb),.12);color:var(--muted);border:1px solid var(--line)}.time-block-detail--disabled{font-size:.68rem}.time-block--disabled{opacity:.62}.train-chip{background:rgba(var(--bg-rgb),.48);border:1px solid var(--line);padding:8px 12px;display:inline-flex;flex-direction:column;align-items:center;gap:2px;flex:0 0 auto;min-width:70px;border-radius:var(--radius)}.train-chip-label{font-size:.68rem;opacity:.8;font-weight:600}.train-chip-time{font-size:.88rem;font-weight:700;color:var(--text)}.train-chip-scroll-row{margin-top:14px;border-top:1px solid var(--line);padding:12px 0 0;display:flex;gap:8px;overflow-x:auto;scrollbar-width:none}.train-upcoming-trips{display:flex;gap:8px;flex-wrap:wrap;margin-top:4px}.map-trigger{cursor:pointer}.empty-stops-indicator--hidden{margin:10px 0;padding:10px 14px;background:#ffffff08;border:1px dashed var(--line);border-radius:var(--radius);font-size:.8rem;display:flex;align-items:center;justify-content:space-between;gap:8px}.empty-stops-indicator--shown{margin:10px 0;padding:10px 14px;background:rgba(var(--accent-rgb),.05);border:1px solid rgba(var(--accent-rgb),.2);border-radius:var(--radius);font-size:.8rem;display:flex;align-items:center;justify-content:space-between;gap:8px}.toggle-empty-stops-btn{font-weight:700;color:var(--accent);font-size:.8rem;background:none;border:none;cursor:pointer;padding:0}.btn-save-timetable{background:#34d3991f;color:#34d399;border:1px solid rgba(52,211,153,.3);font-weight:700}.btn-cancel-timetable{background:#f871711f;color:#f87171;border:1px solid rgba(248,113,113,.3);font-weight:700}.banner-margin-top{margin-top:8px}.edit-icon-svg{width:13px;height:13px;vertical-align:middle}.calendar-icon-svg{vertical-align:middle;margin-right:4px}.dep-stop-name-text{font-weight:600;color:var(--text)}.hidden-select{display:none}.dep-stop-row--hero{padding-left:0;padding-right:0;padding-top:8px;display:flex;flex-direction:column;gap:4px}.dep-stop-row--standard{padding-left:14px;padding-right:14px;padding-top:8px;display:flex;flex-direction:column;gap:4px;align-items:stretch}.dep-stop-row-inner{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:8px}.dep-stop-group{display:flex;align-items:center;gap:6px;flex-wrap:wrap}.dep-stop-controls{display:inline-flex;align-items:center;gap:4px}.dep-stop-dest{font-size:.8rem;color:var(--muted);margin-left:4px}.time-info-row--no-border{border-top:none}.time-info-row--margin-top{margin-top:12px}.time-block-value-hero-time{margin:0}.empty-stops-text--hidden{color:var(--muted)}.empty-stops-text--shown{color:var(--accent)}.empty-stops-icon{margin-right:4px}.timetable-cluster{margin-bottom:1rem;border:1px solid var(--line);border-radius:var(--radius);background:var(--card-bg, rgba(255, 255, 255, .02));overflow:hidden}.cluster-summary{padding:.85rem 1rem;display:flex;align-items:center;gap:.5rem;cursor:pointer;background:#ffffff08;font-weight:600;user-select:none}.cluster-summary::-webkit-details-marker{color:var(--accent)}.cluster-label{flex-grow:1}.cluster-range{font-size:.9em;color:var(--muted);margin-right:.5rem}.cluster-count{font-size:.8em;background:var(--line);color:var(--text-color);padding:.2rem .5rem;border-radius:12px}.timetable tr.past{opacity:.4}.timetable tr.current{border-left:3px solid var(--accent);background:rgba(var(--accent-rgb),.05)}.current-indicator{display:inline-block;margin-left:.5rem;color:var(--accent);font-size:.85em;font-weight:700;animation:pulse-indicator 2s infinite ease-in-out}@keyframes pulse-indicator{0%{opacity:.4}50%{opacity:1}to{opacity:.4}}.filter-summary-header{padding:.75rem 1rem;margin-bottom:1rem;background:rgba(var(--accent-rgb),.08);border:1px solid rgba(var(--accent-rgb),.2);border-radius:var(--radius);color:var(--text-color);font-weight:600;font-size:.95rem;display:flex;align-items:center}.filter-summary-header--empty{background:#ef444414;border-color:#ef444433;color:#fca5a5}.filter-window-segmented{margin-top:.5rem;margin-bottom:1rem}.timetable tr.expand-row{background:#ffffff04}.timetable tr.expand-row td{padding:.75rem 1.25rem!important}.expand-content-wrapper{display:flex;flex-direction:column;gap:1rem}@media (min-width: 640px){.expand-content-wrapper{flex-direction:row;gap:2rem}}.expand-stops-list,.expand-connections-list{flex:1}.expand-stops-list h4,.expand-connections-list h4{margin-top:0;margin-bottom:.5rem;font-size:.9rem;text-transform:uppercase;letter-spacing:.05em;color:var(--muted)}.expand-stops-list{max-width:400px}.expand-stop-item{display:flex;align-items:center;padding:.35rem 0;border-bottom:1px dashed rgba(255,255,255,.05)}.expand-stop-item:last-child{border-bottom:none}.expand-stop-name{flex-grow:1;font-size:.95rem}.expand-stop-arrow{color:var(--muted);margin-right:.75rem}.expand-stop-time{font-weight:600;font-family:monospace}.expand-conns{display:flex;flex-direction:column;gap:.5rem}.expand-conn-item{display:flex;align-items:center;gap:.75rem;font-size:.9rem}.conn-pill{display:inline-block;padding:.15rem .5rem;border-radius:4px;font-weight:700;font-size:.8em;text-transform:uppercase}.conn-pill--missed{background:#ef4444;color:#fff}.conn-pill--tight{background:#f97316;color:#fff}.conn-pill--good{background:#eab308;color:#000}.conn-pill--calm{background:#22c55e;color:#fff}.conn-pill--long{background:#64748b;color:#fff}.conn-state-missed{color:#fca5a5}.conn-state-tight{color:#fdba74}.conn-state-good{color:#fde047}.conn-state-calm{color:#86efac}.conn-state-long{color:#cbd5e1}.now-banner{position:sticky;top:0;z-index:10;padding:.75rem 1rem;background:var(--card-bg, rgba(255, 255, 255, .05));border-bottom:1px solid var(--line);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);text-align:center;font-size:.9rem;font-weight:600;display:flex;justify-content:center;align-items:center}.now-banner-text{display:inline-block}.now-banner-line{background:var(--accent);color:var(--accent-on, #000);padding:.1rem .4rem;border-radius:4px;font-weight:700}.now-banner--calm{border-left:4px solid var(--ok);background:#22c55e14}.now-banner--good{border-left:4px solid var(--warn);background:#ea710814}.now-banner--hurry{border-left:4px solid #f97316;background:#f9731614;animation:banner-pulse 2s infinite ease-in-out}.now-banner--missed{border-left:4px solid #ef4444;background:#ef44441a;animation:banner-pulse-fast 1s infinite ease-in-out}@keyframes banner-pulse{0%{border-left-color:#f9731680}50%{border-left-color:#f97316}to{border-left-color:#f9731680}}@keyframes banner-pulse-fast{0%{border-left-color:#ef444480;background:#ef444414}50%{border-left-color:#ef4444;background:#ef444426}to{border-left-color:#ef444480;background:#ef444414}}.conn-progress-container{display:flex;flex-direction:column;gap:4px;width:100%;margin-top:6px}.conn-progress{height:6px;background:#ffffff1a;border-radius:999px;overflow:hidden;position:relative}[data-theme=light] .conn-progress{background:#00000014}.conn-progress-fill{height:100%;border-radius:999px;transition:width .3s ease-in-out}.conn-progress-fill.missed,.conn-progress-fill.tight{background-color:var(--danger)}.conn-progress-fill.good{background-color:var(--warn)}.conn-progress-fill.calm{background-color:var(--ok)}.conn-progress-fill.long{background-color:var(--muted)}.conn-progress-fill.pulse{animation:fill-pulse 1.5s infinite ease-in-out}@keyframes fill-pulse{0%{opacity:.6}50%{opacity:1}to{opacity:.6}}.conn-progress-label{font-size:.72rem;color:var(--muted);display:flex;justify-content:space-between}.conn-progress-status.tight{color:var(--danger);font-weight:700}.conn-progress-status.good{color:var(--warn);font-weight:700}.conn-progress-status.calm{color:var(--ok);font-weight:700}.conn-progress-status.long{color:var(--muted)}.conn-progress-status.missed{color:var(--danger)}.journey-timeline-box{margin-top:14px;padding:12px 14px;border:1px solid var(--line);border-radius:var(--radius);background:rgba(var(--surface-rgb),.4)}.journey-timeline-box h4{margin:0 0 10px;font-size:.76rem;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--muted)}.journey-timeline{display:flex;flex-direction:column;position:relative}.timeline-step{display:flex;position:relative;min-height:48px}.timeline-step:last-child{min-height:auto}.timeline-step-left{width:52px;flex-shrink:0;display:flex;justify-content:flex-end;padding-right:12px;align-items:flex-start;padding-top:2px}.timeline-step-time{font-family:monospace;font-size:.85rem;font-weight:700;color:var(--text);font-variant-numeric:tabular-nums}.timeline-step-time--empty{color:var(--quiet);opacity:.5}.timeline-step-middle{width:24px;flex-shrink:0;position:relative;display:flex;flex-direction:column;align-items:center}.timeline-node-circle{width:24px;height:24px;border-radius:50%;background:var(--surface-2);border:2px solid var(--line-strong);display:flex;align-items:center;justify-content:center;font-size:.8rem;z-index:2;box-shadow:0 2px 4px #00000026}.timeline-line{position:absolute;top:22px;bottom:-6px;width:3px;z-index:1}.timeline-line--dashed{background:transparent!important;border-left:3px dashed var(--muted)}.timeline-step:last-child .timeline-line{display:none}.timeline-step-right{flex-grow:1;padding-left:12px;padding-bottom:12px;display:flex;flex-direction:column}.timeline-step-title{display:flex;flex-wrap:wrap;align-items:baseline;gap:6px}.timeline-step-label{font-size:.88rem;font-weight:700;color:var(--text)}.timeline-step-location{font-size:.82rem;color:var(--muted)}.timeline-step-duration{font-size:.72rem;color:var(--quiet);margin-top:2px}.timeline-step-detail{margin-top:4px;width:100%;max-width:320px}.hero-conn-badge-row{margin:0 16px 12px;display:flex}.conn-hero-badge{display:inline-flex;align-items:center;padding:4px 8px;font-size:.75rem;font-weight:700;border-radius:4px;text-transform:uppercase;letter-spacing:.03em;background:var(--pill-bg);border:1px solid var(--line-strong);color:var(--text);gap:4px}.conn-hero-badge strong{font-weight:800}.conn-hero-badge.conn-state-tight{background:#ef444426;border-color:var(--danger);color:var(--danger)}.conn-hero-badge.conn-state-good{background:#f59e0b26;border-color:var(--warn);color:var(--warn)}.conn-hero-badge.conn-state-calm{background:#22c55e26;border-color:var(--ok);color:var(--ok)}.conn-hero-badge.conn-state-long{background:#a8b3c726;border-color:var(--muted);color:var(--muted)}.upcoming-indicator{display:inline-block;margin-left:.5rem;color:var(--muted);font-size:.72em;font-weight:600;background:#ffffff0d;border:1px solid var(--line);padding:1px 4px;border-radius:3px;font-family:var(--font-body)}@media (min-width: 640px){.timetable-cluster{border:none!important;background:none!important;margin-bottom:0!important;box-shadow:none!important;overflow:visible!important}.timetable-cluster>:not(summary){display:block!important}.cluster-summary{pointer-events:none;background:rgba(var(--accent-rgb),.08)!important;border-left:4px solid var(--accent);margin-top:1.5rem;margin-bottom:.5rem;border-radius:4px;padding:.6rem .82rem!important}.cluster-summary::-webkit-details-marker{display:none!important}.timetable-cluster:first-of-type .cluster-summary{margin-top:0}}.settings-footer-links{margin-top:20px;padding-top:14px;border-top:1px solid var(--line);display:flex;flex-wrap:wrap;gap:10px;align-items:center;justify-content:center}.settings-footer-link{color:var(--accent);font-size:.78rem;text-decoration:underline;font-weight:500}.settings-footer-separator{color:var(--line)}.settings-check-card{padding:8px 10px;font-size:.82rem;display:flex;align-items:center;gap:8px;background:rgba(var(--surface-rgb),.2);border:1px solid var(--line);border-radius:8px;cursor:pointer}.settings-check-card input[type=checkbox]{cursor:pointer;width:16px;height:16px}.settings-invert-card{grid-column:span 1;display:flex;align-items:center;gap:8px;cursor:pointer;padding:12px;border:1px solid var(--line);border-radius:var(--radius);background:rgba(var(--surface-rgb),.2)}.settings-invert-card input[type=checkbox]{cursor:pointer;width:18px;height:18px}.settings-invert-card span{color:var(--text);font-size:.85rem}.settings-section-subtitle{font-size:.95rem;font-weight:600;color:var(--text);margin-top:1.5rem;margin-bottom:1rem}.settings-section-subtitle--small{margin-top:0;margin-bottom:.5rem}.settings-section-description{font-size:.75rem;color:var(--muted);margin:0 0 1rem}.settings-lines-group-title{font-size:.72rem;font-weight:700;color:var(--accent);margin-bottom:6px;text-transform:uppercase;letter-spacing:.05em}.settings-lines-group-title--muted{color:var(--muted);margin-top:12px}.settings-scroll-box{max-height:140px;overflow-y:auto;padding:8px;border:1px solid var(--line);border-radius:var(--radius);background:#00000026}.settings-reset-wrapper{margin-top:8px;display:flex;justify-content:flex-end}.settings-reset-btn{font-size:.72rem;font-weight:700;color:var(--accent);background:none;border:none;cursor:pointer;padding:4px 0}.settings-walk-drive-preview{grid-column:1 / -1;margin-top:8px;padding:10px 12px;background:rgba(var(--surface-rgb),.2);border:1px solid var(--line);border-radius:var(--radius);font-size:.78rem;color:var(--muted);display:flex;flex-direction:column;gap:6px}.settings-walk-drive-preview strong{color:var(--text)}.settings-sliders-grid{display:flex;flex-direction:column;gap:16px}.settings-slider-group{display:flex;flex-direction:column}.field-row-slider{display:flex;justify-content:space-between;align-items:center;margin-bottom:4px}.slider-label{font-size:.85rem;font-weight:500;color:var(--text)}.slider-value-badge{font-size:.82rem;font-weight:600;color:var(--accent)}input.settings-slider[type=range]{width:100%;height:6px;border-radius:3px;background:var(--line);outline:none;cursor:pointer}.slider-preview-text{font-size:.74rem;color:var(--muted);margin:4px 0 0}.settings-threshold-warning{margin-bottom:1rem;padding:10px 12px;background:#ef44441a;border:1px solid var(--danger);border-radius:8px;color:var(--danger);font-size:.78rem;font-weight:500;display:flex;align-items:center;gap:8px}.timeline-node-circle.node-circle-origin{width:16px;height:16px;border-color:var(--ok, #22c55e)!important;font-size:.65rem}.timeline-node-circle.node-circle-destination{width:20px;height:20px;border-color:var(--accent, #06b6d4)!important;font-size:.75rem}.timeline-node-circle.node-circle-interchange{width:24px;height:24px;border-color:var(--warning, #f59e0b)!important;font-size:.85rem}.stop-chip-badges{display:inline-flex;align-items:center;gap:3px;margin:2px 0}.stop-chip-walk{font-size:.66rem;color:var(--muted, #888);background:#ffffff0d;border:1px solid var(--line, rgba(255, 255, 255, .1));padding:1px 4px;border-radius:4px;font-weight:600;display:inline-flex;align-items:center;gap:2px}.stop-chip-interchange{font-size:.7rem;display:inline-flex;align-items:center}.active-map-highlight-wrapper{position:relative;width:40px;height:40px;display:flex;align-items:center;justify-content:center;pointer-events:none}.active-map-highlight{width:18px;height:18px;border:2.5px solid var(--accent, #06b6d4);border-radius:50%;position:absolute;animation:map-pulse-glow 1.6s infinite ease-out}@keyframes map-pulse-glow{0%{transform:scale(.5);opacity:1;box-shadow:0 0 #06b6d4cc}to{transform:scale(2);opacity:0;box-shadow:0 0 0 12px #06b6d400}}body.accessibility-large-text{font-size:1.15rem!important}body.accessibility-large-text .time-block-value-hero,body.accessibility-large-text .time-block-value-hero-time{font-size:2.4rem!important}body.accessibility-large-text h1{font-size:2.1rem!important}body.accessibility-large-text h2{font-size:1.7rem!important}body.accessibility-large-text h3{font-size:1.35rem!important}body.accessibility-large-text p,body.accessibility-large-text span,body.accessibility-large-text div,body.accessibility-large-text label,body.accessibility-large-text input,body.accessibility-large-text select,body.accessibility-large-text button,body.accessibility-large-text strong,body.accessibility-large-text small{line-height:1.45}body.live-map-active-body{overflow:hidden}body.live-map-active-body .app-shell,body.live-map-active-body .page-frame{height:100vh;display:flex;flex-direction:column;padding-bottom:80px}body.live-map-active-body .nav-bottom{max-width:var(--maxw, 430px);border-radius:0}@media (min-width: 768px){body.live-map-active-body .nav-item{padding:6px 5px;gap:2px;flex:1 1 auto;min-width:0}body.live-map-active-body .nav-lbl{font-size:9px}}body.live-map-active-body .content-area{flex:1;display:flex;flex-direction:column;padding-top:10px;padding-bottom:0;min-height:0}body.live-map-active-body #tab-live-map,body.live-map-active-body #live-map-content{flex:1;display:flex;flex-direction:column;min-height:0}body.live-map-active-body #live-map-leaflet-container{flex:1;height:100%!important;width:100%;min-height:0!important}#live-map-leaflet-container.fullscreen-map{position:fixed!important;top:0!important;left:0!important;width:100vw!important;height:100vh!important;z-index:99999!important}.leaflet-control-custom{background:var(--card-bg, #1e293b)!important;border:1px solid var(--line, #334155)!important;color:var(--text, #ffffff)!important;transition:background-color .2s,transform .15s}.leaflet-control-custom:hover{background:var(--input-bg, rgba(255, 255, 255, .08))!important}.leaflet-control-custom:active{transform:scale(.92)}.timetable-hero-panel{background:var(--surface-bg, rgba(30, 41, 59, .72));border-radius:20px;border:1px solid var(--line-light, rgba(255, 255, 255, .12));padding:16px;backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);margin-bottom:12px}.timetable-from-to-card{background:var(--surface-bg, rgba(30, 41, 59, .6));border:1px solid var(--line-light, rgba(255, 255, 255, .12));border-radius:20px;padding:14px 16px;margin-bottom:14px;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);position:relative}.from-to-row{display:flex;align-items:center;justify-content:space-between;gap:10px}.from-to-col{flex:1;display:flex;flex-direction:column;gap:4px;min-width:0}.from-to-badge{font-size:.7rem;font-weight:800;text-transform:uppercase;letter-spacing:.06em;color:var(--quiet, #6b7a99)}.from-stop-trigger,.to-stop-trigger,.add-arrival-cta{background:#ffffff0d;border:1px solid rgba(255,255,255,.08);border-radius:12px;padding:8px 12px;display:flex;align-items:center;justify-content:space-between;color:var(--text, #f1f5f9);font-size:.88rem;font-weight:600;cursor:pointer;width:100%;text-align:left;transition:all .18s ease}.from-stop-trigger:hover,.to-stop-trigger:hover,.add-arrival-cta:hover{background:rgba(var(--accent-rgb, 6, 182, 212),.12);border-color:rgba(var(--accent-rgb, 6, 182, 212),.3)}.from-to-stop-name{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:140px}.from-to-swap-btn{width:36px;height:36px;border-radius:50%;background:rgba(var(--accent-rgb, 6, 182, 212),.15);border:1px solid rgba(var(--accent-rgb, 6, 182, 212),.35);color:var(--accent, #06b6d4);display:flex;align-items:center;justify-content:center;cursor:pointer;flex-shrink:0;transition:all .2s ease;margin-top:14px}.from-to-swap-btn:hover{transform:rotate(180deg) scale(1.08);background:rgba(var(--accent-rgb, 6, 182, 212),.25)}.from-to-swap-btn:active{transform:scale(.92)}.trip-card{background:#ffffff0a;border:1px solid rgba(255,255,255,.08);border-radius:16px;padding:14px 16px;margin-bottom:10px;transition:all .2s ease;position:relative;cursor:pointer}.trip-card:hover{background:#ffffff0f;border-color:rgba(var(--accent-rgb, 6, 182, 212),.25)}.trip-card.is-next{background:linear-gradient(135deg,rgba(var(--accent-rgb, 6, 182, 212),.15),#1e293bb3);border:1.5px solid rgba(var(--accent-rgb, 6, 182, 212),.4);box-shadow:0 4px 20px rgba(var(--accent-rgb, 6, 182, 212),.15)}.trip-card.is-past{opacity:.5;background:#ffffff05}.trip-wait-badge{display:inline-flex;align-items:center;gap:4px;padding:3px 9px;border-radius:999px;font-size:.75rem;font-weight:700;font-family:var(--font-mono, monospace)}.trip-wait-badge.hurry{background:#f9731626;color:#f97316;border:1px solid rgba(249,115,22,.3)}.trip-wait-badge.good{background:#22c55e26;color:#22c55e;border:1px solid rgba(34,197,94,.3)}.trip-wait-badge.calm{background:#06b6d426;color:#06b6d4;border:1px solid rgba(6,182,212,.3)}.trip-wait-badge.past{background:#ffffff0d;color:#64748b;border:1px solid rgba(255,255,255,.08)}.conn-pill{display:inline-flex;align-items:center;gap:4px;padding:2px 8px;border-radius:999px;font-size:.72rem;font-weight:700;font-family:var(--font-mono, monospace);background:#ffffff0f;border:1px solid rgba(255,255,255,.1)}.conn-pill.conn-safe{color:#22c55e;border-color:#22c55e4d}.conn-pill.conn-tight{color:#ef4444;border-color:#ef44444d}.tab-bar{display:none!important}.app-shell{padding-bottom:96px}.sim-badge{display:inline-flex;align-items:center;gap:4px;background:#f59e0b1a;border:1px solid rgba(245,158,11,.22);border-radius:999px;padding:3px 8px;font-family:var(--font-heading);font-size:9px;font-weight:700;color:var(--warn-1, #f59e0b);letter-spacing:.08em;white-space:nowrap;cursor:help}.nav-bottom{position:fixed;bottom:0;left:50%;transform:translate(-50%);width:100%;max-width:var(--maxw, 430px);z-index:50;background:#080b12f2;border-top:1px solid var(--surface-fg-6, rgba(255, 255, 255, .08));backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);display:flex;flex-direction:column}[data-theme=light] .nav-bottom{background:#f1f5f9f5;border-top:1px solid rgba(15,23,42,.1)}.nav-item{display:flex;flex-direction:column;align-items:center;gap:4px;padding:6px 12px;border:0;background:transparent;border-radius:var(--r-2xl, 24px);color:var(--text-faint, #3D4D6A);cursor:pointer;transition:all .2s ease;min-height:0;flex:1;font-family:var(--font-body)}.nav-item:hover{background:#22d3ee0f}.nav-item.active{background:#22d3ee1a;color:var(--line-z649, #22d3ee)}.nav-item.active .nav-lbl,.nav-item.active .nav-ic{color:var(--line-z649, #22d3ee)}.nav-ic{color:var(--text-faint, #3D4D6A);transition:color .2s ease}.nav-lbl{font-size:10px;font-weight:500;color:var(--text-faint, #3D4D6A);white-space:nowrap}.altro-sheet{position:fixed;inset:0;z-index:60;pointer-events:none;opacity:0;transition:opacity .2s ease}.altro-sheet.open{pointer-events:auto;opacity:1}.altro-backdrop{position:absolute;inset:0;background:#00000080;backdrop-filter:blur(2px)}.altro-sheet-card{position:absolute;left:50%;bottom:0;transform:translate(-50%,100%);width:min(var(--maxw, 430px),100%);background:rgba(var(--bg-rgb, 16, 24, 40),.97);border:1px solid var(--line-strong);border-bottom:0;border-radius:var(--r-2xl, 24px) var(--r-2xl, 24px) 0 0;box-shadow:0 -10px 30px #00000073;padding:10px 16px 20px;transition:transform .28s cubic-bezier(.4,0,.2,1)}.altro-sheet.open .altro-sheet-card{transform:translate(-50%)}.altro-handle{width:40px;height:4px;border-radius:999px;background:var(--line-strong, rgba(255,255,255,.16));margin:0 auto 10px}.altro-title{font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.15em;color:var(--text-dim, #4B5875);padding:4px 4px 10px;font-family:var(--font-heading)}.altro-item{width:100%;display:flex;align-items:center;gap:12px;padding:12px;border:0;background:transparent;color:var(--text-bright, var(--text));font-family:var(--font-body);font-size:14px;font-weight:500;cursor:pointer;border-radius:var(--r-md, 12px);transition:background .15s ease;min-height:0}.altro-item:hover{background:#22d3ee12}.altro-item span{flex:0 0 auto}.altro-desc{flex:1;font-size:11px;color:var(--text-muted, #6B7A99);font-weight:400;text-align:right}.altro-ic{color:var(--accent);flex-shrink:0}.altro-close{display:block;margin:12px auto 0;border:1px solid var(--line);background:transparent;color:var(--muted);border-radius:var(--r-md, 12px);padding:8px 18px;font-size:12px;cursor:pointer;transition:all .15s ease}.altro-close:hover{background:var(--surface-2);border-color:var(--line-strong)}.nav-desktop-only{display:none!important}.nav-mobile-only{display:flex!important}@media (min-width: 768px){.nav-bottom{max-width:680px;border-radius:var(--r-2xl, 24px) var(--r-2xl, 24px) 0 0;box-shadow:0 -4px 24px #00000040}.nav-desktop-only{display:flex!important}.nav-mobile-only{display:none!important}}@media (min-width: 920px){.page-frame{padding-bottom:100px}}.live-filter-accordion{background:var(--surface, rgba(255, 255, 255, .03));border:1px solid var(--line);border-radius:var(--radius, 12px);margin-bottom:12px;overflow:hidden;transition:all .2s ease}.live-filter-accordion summary{padding:10px 14px;font-size:.82rem;font-weight:600;color:var(--text-dim, #94a3b8);cursor:pointer;user-select:none;display:flex;align-items:center;justify-content:space-between}.live-filter-accordion summary:hover{color:var(--accent);background:rgba(var(--accent-rgb, 6, 182, 212),.04)}.live-filter-accordion[open] summary{border-bottom:1px solid var(--line)}.live-filter-accordion .filter-bar{border-bottom:none;background:transparent;padding:10px 14px}.live-other-lines-details{margin-top:16px;background:#ffffff05;border:1px solid var(--line);border-radius:var(--radius, 12px);overflow:hidden}.live-other-lines-details summary{padding:12px 16px;cursor:pointer;user-select:none;font-weight:700;font-size:.88rem;color:var(--text);display:flex;align-items:center;justify-content:space-between}.live-other-lines-details summary:hover{background:#ffffff0a}.live-other-lines-details[open] summary{border-bottom:1px solid var(--line)}.live-other-lines-body{padding:12px;display:flex;flex-direction:column;gap:12px}.live-other-lines-toggle-hint{font-size:.75rem;font-weight:500;color:var(--muted)}.timetable-tools-trigger{background:transparent;border:1px solid var(--line);border-radius:8px;padding:4px 8px;font-size:.78rem;color:var(--muted);display:inline-flex;align-items:center;gap:4px;cursor:pointer;transition:all .15s ease}.timetable-tools-trigger:hover{color:var(--accent);border-color:var(--accent)}.view-toggle{display:inline-flex;padding:2px;background:var(--surface-fg-2, rgba(255,255,255,.04));border-radius:var(--r-md, 12px);border:1px solid var(--line);gap:2px}.view-toggle button{border:0;background:transparent;padding:6px 12px;border-radius:var(--r-sm, 8px);font-size:11px;font-weight:600;letter-spacing:.04em;text-transform:uppercase;color:var(--text-muted, var(--muted));cursor:pointer;transition:all .15s ease;display:inline-flex;align-items:center;gap:5px;font-family:var(--font-body)}.view-toggle button.active{background:color-mix(in srgb,var(--lc, var(--accent)) 14%,transparent);color:var(--lc, var(--accent));border:1px solid color-mix(in srgb,var(--lc, var(--accent)) 28%,transparent)}.view-toggle button:hover:not(.active){background:#ffffff0a;color:var(--text-bright, var(--text))}.pin-btn{display:inline-flex;align-items:center;justify-content:center;width:24px;height:24px;background:transparent;border:0;border-radius:6px;color:var(--lc, var(--accent));cursor:pointer;flex-shrink:0;transition:all .18s ease;padding:0}.pin-btn:hover{background:color-mix(in srgb,var(--lc, var(--accent)) 18%,transparent);transform:scale(1.08)}.pin-btn:focus-visible{outline:2px solid var(--lc, var(--accent));outline-offset:1px}.pin-mini{display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px;background:transparent;border:0;padding:0;border-radius:4px;color:var(--lc, var(--accent));opacity:.65;cursor:pointer;transition:all .15s ease;flex-shrink:0}.pin-mini:hover{opacity:1;background:color-mix(in srgb,var(--lc, var(--accent)) 15%,transparent)}.trip-card{position:relative}.trip-card .expand-content-wrapper{margin-top:12px}.trip-card.expanded{border-color:rgba(var(--accent-rgb, 6, 182, 212),.3)!important}.trip-card.expanded .expand-content-wrapper{display:block!important}.trip-card .trip-chev{position:absolute;top:14px;right:14px;color:var(--text-dim, #4B5875);transition:transform .22s ease}.trip-card.expanded .trip-chev{transform:rotate(180deg);color:var(--lc, var(--accent))}.expand-stop-item{gap:8px;padding:4px 0;border-bottom:1px dashed var(--surface-fg-4, rgba(255, 255, 255, .05));position:relative}.expand-stop-item .expand-stop-time{font-family:var(--font-heading);font-weight:600;font-size:12px;width:48px;flex:0 0 48px;color:var(--text-bright, var(--text))}.expand-stop-item .expand-stop-name{font-size:12px;color:var(--text-muted, var(--muted));flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.expand-stop-item.is-end .expand-stop-name{color:var(--text-bright, var(--text));font-weight:500}.expand-stop-item .expand-stop-arrow{display:none}.trip-meta-row{display:flex;gap:6px;flex-wrap:wrap;margin:8px 0 4px;font-family:var(--font-heading);font-size:10px}.trip-meta-chip{background:var(--surface-fg-4, rgba(255,255,255,.06));border:1px solid var(--surface-fg-6, rgba(255,255,255,.08));border-radius:999px;padding:3px 8px;color:var(--text-muted, var(--muted));letter-spacing:.04em}.trip-meta-chip b{color:var(--text-bright, var(--text));font-weight:600}.stop-selector-wrap{position:relative;z-index:20}.stop-selector-wrap .ss-card{border-radius:16px;overflow:hidden;background:var(--surface-fg-3, rgba(255,255,255,.05));border:1px solid var(--surface-fg-6, rgba(255,255,255,.08))}.stop-selector-wrap .ss-card .from-stop-trigger,.stop-selector-wrap .ss-card .to-stop-trigger,.stop-selector-wrap .ss-card .add-arrival-cta{width:100%;display:flex!important;align-items:center;gap:12px;padding:14px 16px;text-align:left;background:transparent;border:0;cursor:pointer;transition:background .2s ease}.stop-selector-wrap .ss-card .from-stop-trigger:hover,.stop-selector-wrap .ss-card .to-stop-trigger:hover,.stop-selector-wrap .ss-card .add-arrival-cta:hover{background:color-mix(in srgb,var(--lc, var(--accent)) 5%,transparent)}.stop-selector-wrap .ss-row-pin{margin-left:4px}.trains-section-head{display:flex;align-items:center;justify-content:space-between;margin:16px 0 12px}.trains-section-head .label{font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.15em;color:var(--text-dim, #4B5875)}.trains-section-head .sim-or-icon{display:inline-flex;align-items:center;gap:4px;font-family:var(--font-heading);font-size:9px;color:var(--warn-1, #f59e0b);background:#f59e0b14;border:1px solid rgba(245,158,11,.2);border-radius:999px;padding:2px 6px}.train-cards-list{display:flex;flex-direction:column;gap:8px}.train-card{background:var(--surface-fg-3, rgba(255,255,255,.05));border:1px solid var(--surface-fg-6, rgba(255,255,255,.08));border-radius:var(--r-xl, 20px);padding:12px 14px;margin-bottom:8px;cursor:pointer;transition:all .2s ease;position:relative}.train-card:hover{border-color:var(--surface-fg-12, rgba(255,255,255,.12));transform:translateY(-1px)}.train-card .top{display:flex;align-items:center;gap:10px}.train-card .line-tag{font-family:var(--font-heading);font-size:11px;font-weight:700;color:#080b12;padding:4px 8px;border-radius:6px;flex-shrink:0}.train-card .top-main{display:flex;flex-direction:column;min-width:0;flex:1}.train-card .dep{font-family:var(--font-heading);font-weight:700;font-size:18px;color:var(--text-bright, var(--text));line-height:1}.train-card .dest{font-size:11px;color:var(--text-muted, var(--muted));margin-top:2px}.train-card .wait-stack{margin-left:auto;text-align:right;flex-shrink:0}.train-card .wait{font-family:var(--font-heading);font-size:12px;font-weight:600}.train-card .wait.urg-1{color:var(--danger, #ef4444)}.train-card .wait.urg-2{color:var(--warn-1, #f59e0b)}.train-card .wait.urg-3{color:var(--text-muted, var(--muted))}.train-card .wait-sub{font-size:9px;color:var(--text-dim, #4B5875);text-transform:uppercase;letter-spacing:.1em;margin-top:2px}.train-card .chev{color:var(--text-faint, #3D4D6A);transition:transform .22s ease;flex-shrink:0}.train-card.expanded .chev{transform:rotate(180deg);color:var(--lc, var(--accent))}.train-card.expanded{border-color:color-mix(in srgb,var(--lc, var(--accent)) 35%,transparent);background:linear-gradient(135deg,color-mix(in srgb,var(--lc, var(--accent)) 8%,transparent) 0%,var(--surface-fg-3, rgba(255,255,255,.05)) 100%)}.train-card .leave-hint{display:inline-flex;align-items:center;gap:5px;font-size:10px;color:var(--text-dim, #4B5875);background:var(--surface-fg-4, rgba(255,255,255,.06));border-radius:6px;padding:3px 8px;margin-top:8px}.train-card .leave-hint b{color:var(--text-bright, var(--text));font-family:var(--font-heading);font-weight:700}.train-card .train-extra-row{font-size:11px;color:var(--ok, #22c55e);margin-top:6px;font-weight:500}.train-card .expand{max-height:0;overflow:hidden;transition:max-height .3s ease,padding .3s ease}.train-card.expanded .expand{max-height:700px;padding-top:12px;margin-top:12px;border-top:1px solid var(--surface-fg-5, rgba(255,255,255,.07))}.train-card .station-timeline{display:flex;flex-direction:column;gap:0;margin:8px 0 0 14px;position:relative}.train-card .station-timeline:before{content:"";position:absolute;left:5px;top:6px;bottom:6px;width:1px;background:var(--lc, var(--text-faint, #3D4D6A));opacity:.5}.train-card .tl-row{display:flex;align-items:center;gap:12px;padding:4px 0;position:relative}.train-card .tl-node{width:11px;height:11px;border-radius:50%;background:var(--bg-figma, #080B12);border:2px solid var(--lc, var(--accent));z-index:1;flex-shrink:0}.train-card .tl-row.is-end .tl-node{background:var(--lc, var(--accent))}.train-card .tl-time{font-family:var(--font-heading);font-size:12px;font-weight:600;color:var(--text-bright, var(--text));width:48px;flex:0 0 48px}.train-card .tl-name{font-size:12px;color:var(--text-muted, var(--muted));flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.train-card .tl-row.is-end .tl-name{color:var(--text-bright, var(--text));font-weight:500}.train-card .tl-pin{background:transparent;border:0;padding:0;color:var(--lc, var(--accent));opacity:.7;border-radius:4px;cursor:pointer;transition:all .15s ease;display:inline-flex;align-items:center;justify-content:center;flex-shrink:0}.train-card .tl-pin:hover{opacity:1;background:color-mix(in srgb,var(--lc, var(--accent)) 15%,transparent)}.train-card .rfi-link{display:inline-flex;align-items:center;gap:4px;margin-top:10px;font-size:10px;color:var(--lc, var(--accent));text-decoration:none;padding:4px 8px;border:1px solid var(--surface-fg-6, rgba(255,255,255,.08));border-radius:6px;transition:background .15s ease}.train-card .rfi-link:hover{background:var(--surface-fg-4, rgba(255,255,255,.06))}.alert-card{border-radius:var(--r-xl, 20px);transition:all .2s ease}.alert-card--strike{border-color:rgba(var(--accent-rgb, 239, 68, 68),.4)!important;background:linear-gradient(135deg,rgba(239,68,68,.08) 0%,var(--surface-fg-3, rgba(255,255,255,.05)) 100%)!important}.alert-countdown-badge--active{background:#ef44442e;color:var(--danger, #ef4444);border:1px solid rgba(239,68,68,.3)}.alert-countdown-badge--upcoming{background:#f59e0b1f;color:var(--warn-1, #f59e0b);border:1px solid rgba(245,158,11,.28)}.band-chip{font-family:var(--font-heading);font-size:10px;font-weight:700;padding:3px 8px;border-radius:6px;letter-spacing:.04em}.line-badge-tag{font-family:var(--font-heading);font-size:11px;font-weight:700;color:#080b12;padding:4px 8px;border-radius:6px;flex-shrink:0}.settings-section h3,.journey-card h3{letter-spacing:-.01em;color:var(--text-bright, var(--text))}.journey-card{border-radius:var(--r-xl, 20px);transition:all .2s ease}.journey-card:hover{transform:translateY(-1px)}.page-frame{max-width:var(--maxw, 430px);margin:0 auto;min-height:100vh;background:var(--bg-figma, #080B12);position:relative;padding-bottom:96px;box-shadow:0 0 80px #0009}.status-row{display:flex;align-items:center;justify-content:space-between;padding:20px 20px 8px}.brand{display:flex;align-items:center;gap:8px}.logo-micro{width:28px;height:28px;border-radius:var(--r-sm, 8px);background:#22d3ee24;display:flex;align-items:center;justify-content:center}.brand-name{font-size:11px;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:var(--line-z649, --accent)}.brand-date{font-size:9px;color:var(--text-dim, var(--quiet));text-transform:capitalize}.status-row .right{display:flex;align-items:center;gap:8px}.live-pill{display:inline-flex;align-items:center;gap:4px;background:#22c55e1a;border:1px solid rgba(34,197,94,.2);border-radius:999px;padding:3px 8px}.live-pill .dot{width:6px;height:6px;border-radius:50%;background:var(--ok, #22c55e);animation:pulse 1.8s ease-in-out infinite}.live-pill span:not(.dot){font-family:var(--font-heading);font-size:10px;color:#4ade80;font-weight:600}.live-clock{font-family:var(--font-heading);font-size:13px;color:var(--text-dim, var(--quiet))}.live-clock .sec{opacity:.5}.live-clock[role=button]{border:0;background:transparent;padding:4px 6px;border-radius:6px;font:inherit;cursor:pointer;transition:all .15s ease}.live-clock[role=button]:hover{background:var(--surface-fg-3, rgba(255,255,255,.05));color:var(--text-bright, var(--text))}.live-clock.sim-active{color:var(--accent);background:color-mix(in srgb,var(--accent) 14%,transparent);box-shadow:0 0 0 1px color-mix(in srgb,var(--accent) 35%,transparent)}@media (max-width: 768px){.sync-pill{display:none!important}}.view{display:none}.view.active{display:block}.nav-inner{display:flex;align-items:center;justify-content:space-around;padding:8px 16px}.nav-home-pill{display:flex;justify-content:center;padding-bottom:8px}.nav-home-pill .pill{width:128px;height:4px;border-radius:999px;background:var(--surface-fg-12, rgba(255, 255, 255, .12))}.toast{position:fixed;bottom:110px;left:50%;transform:translate(-50%);background:#080b12f2;border:1px solid var(--lc, var(--line-z649, var(--accent)));color:var(--text-bright, var(--text));padding:10px 14px;border-radius:var(--r-md, 12px);font-size:12px;z-index:100;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);box-shadow:0 12px 24px #00000080;display:flex;align-items:center;gap:8px;opacity:0;pointer-events:none;transition:opacity .25s ease,transform .25s ease;max-width:90vw}.toast.show{opacity:1;transform:translate(-50%) translateY(-6px)}.page-head{padding:8px 20px 16px}.page-head h1{margin:0;font-size:28px;font-weight:700;letter-spacing:-.03em;line-height:1;color:var(--text-bright, var(--text))}.page-head p{margin:4px 0 0;font-size:13px;color:var(--text-muted, var(--muted))}.section-head{display:flex;align-items:center;justify-content:space-between;margin:16px 0 12px}.section-head .label{font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.15em;color:var(--text-dim, var(--quiet))}.section-head .sim{display:inline-flex;align-items:center;gap:4px;font-family:var(--font-heading);font-size:9px;color:var(--warn-1, var(--warn));background:#f59e0b14;border:1px solid rgba(245,158,11,.2);border-radius:999px;padding:2px 6px}.line-select{padding:0 20px 16px;display:flex;gap:8px;overflow-x:auto;scrollbar-width:none}.line-select::-webkit-scrollbar{display:none}.line-select .line-pill{flex:1 0 auto;background:var(--surface-fg-2, rgba(255, 255, 255, .04));border:1.5px solid var(--surface-fg-5, rgba(255, 255, 255, .07));border-radius:var(--r-2xl, 24px);padding:12px 8px;display:flex;flex-direction:column;align-items:center;gap:6px;transition:all .2s ease;position:relative;min-height:0;font-family:var(--font-body);font-weight:600;font-size:.7rem;cursor:pointer}.line-select .line-pill:hover{transform:translateY(-1px)}.line-select .line-pill.active{background:color-mix(in srgb,var(--lc) 15%,transparent);border-color:color-mix(in srgb,var(--lc) 40%,transparent);box-shadow:0 4px 20px color-mix(in srgb,var(--lc) 25%,transparent)}.line-select .line-pill .lbl{font-family:var(--font-heading);font-weight:700;font-size:15px;color:var(--text-dim, var(--quiet))}.line-select .line-pill.active .lbl{color:var(--lc)}.line-select .line-pill .bar{width:32px;height:4px;border-radius:999px;background:var(--surface-fg-12, rgba(255, 255, 255, .12))}.line-select .line-pill.active .bar{background:var(--lc);box-shadow:0 0 8px var(--lc)}.line-select .line-pill-add{flex:0 0 auto;min-width:56px;border-style:dashed;background:transparent;opacity:.75}.line-select .line-pill-add .lbl{font-size:22px;line-height:1;color:var(--text-dim, var(--quiet))}.line-select .line-pill-add:hover{opacity:1}.filter-window{flex-wrap:wrap}.filter-window .win-chip{border:1px solid var(--surface-fg-5, rgba(255, 255, 255, .07));background:var(--surface-fg-2, rgba(255, 255, 255, .04));color:var(--text-dim, var(--quiet));border-radius:999px;padding:6px 12px;font-size:.72rem;font-weight:600;cursor:pointer;transition:all .15s ease}.filter-window .win-chip:hover{color:var(--text-bright, var(--text))}.filter-window .win-chip.active{background:color-mix(in srgb,var(--lc) 18%,transparent);border-color:color-mix(in srgb,var(--lc) 45%,transparent);color:var(--lc)}.tt-search-wrapper{margin-top:12px;width:100%}.tt-search-wrapper .stop-search-input{background:var(--surface-fg-2, rgba(255, 255, 255, .04));border-color:var(--surface-fg-5, rgba(255, 255, 255, .07));color:var(--text-bright, var(--text));min-height:38px;font-size:.84rem}.tt-search-wrapper .stop-search-input::placeholder{color:var(--text-dim, var(--quiet))}.tt-search-wrapper .stop-search-input:focus{border-color:color-mix(in srgb,var(--lc) 50%,transparent);box-shadow:0 0 0 3px color-mix(in srgb,var(--lc) 18%,transparent)}.tt-search-wrapper .stop-search-results{background:var(--surface-fg-3, rgba(0, 0, 0, .55));border-color:var(--surface-fg-6, rgba(255, 255, 255, .08));backdrop-filter:blur(12px)}.tt-search-wrapper .search-group-label{background:transparent;color:var(--accent)}.tt-search-wrapper .search-result-item{color:var(--text-bright, var(--text))}.tt-search-wrapper .search-result-item:hover,.tt-search-wrapper .search-result-item.selected{background:color-mix(in srgb,var(--lc) 15%,transparent);color:var(--lc)}.tt-search-wrapper .search-no-results{color:var(--text-dim, var(--quiet))}.filter-row{padding:0 20px 16px;display:flex;align-items:center;gap:8px;overflow:visible}.filter-row .day-filter{flex:1;display:flex;gap:2px;padding:2px;background:var(--surface-fg-2, rgba(255, 255, 255, .04));border-radius:var(--r-md, 12px)}.filter-row .day-filter button{flex:1;border:0;background:transparent;padding:6px 0;border-radius:var(--r-sm, 8px);font-size:11px;font-weight:500;color:var(--text-muted, var(--muted));transition:all .15s ease;min-height:0}.filter-row .day-filter button.active{background:color-mix(in srgb,var(--lc) 14%,transparent);color:var(--lc);border:1px solid color-mix(in srgb,var(--lc) 21%,transparent)}.filter-row .direction-toggle{flex-shrink:0;display:inline-flex;align-items:center;gap:6px;background:var(--surface-fg-3, rgba(255, 255, 255, .05));border:1px solid var(--surface-fg-5, rgba(255, 255, 255, .07));border-radius:var(--r-md, 12px);padding:8px 12px;color:#9db4cc;font-size:11px;font-weight:600;transition:transform .2s ease;cursor:pointer;min-height:0;font-family:var(--font-body)}.filter-row .direction-toggle:hover{transform:scale(.96)}.stop-selector,.stop-selector-wrap{padding:0 20px 20px}.ss-card{background:var(--surface-fg-3, rgba(255, 255, 255, .05));border:1px solid var(--surface-fg-6, rgba(255, 255, 255, .08));border-radius:var(--r-2xl, 24px);overflow:hidden}.ss-row{display:flex;align-items:center;gap:12px;padding:14px 16px;width:100%;background:transparent;border:0;text-align:left;transition:background .2s ease;cursor:pointer;font-family:var(--font-body)}.ss-row:hover{background:color-mix(in srgb,var(--lc) 5%,transparent)}.ss-mark{display:flex;flex-direction:column;align-items:center;gap:4px;width:16px;flex-shrink:0}.ss-mark .circle{width:12px;height:12px;border-radius:50%;border:2px solid var(--lc)}.ss-mark .square{width:12px;height:12px;border-radius:2px;background:var(--lc)}.ss-mark .seg{width:1px;height:16px;background:linear-gradient(to bottom,color-mix(in srgb,var(--lc) 50%,transparent),#ffffff26)}.ss-mark .seg.rev{background:linear-gradient(to bottom,#ffffff26,color-mix(in srgb,var(--lc) 50%,transparent))}.ss-text{flex:1;min-width:0}.ss-text .lbl-mini{font-size:9px;text-transform:uppercase;letter-spacing:.15em;color:var(--text-dim, var(--quiet));margin-bottom:2px}.ss-text .val{font-weight:500;font-size:14px;color:var(--text-bright, var(--text));display:flex;align-items:center;gap:8px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.pin-btn{background:transparent;border:0;padding:0;display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px;border-radius:6px;color:var(--lc);transition:all .2s ease;flex-shrink:0}.ss-text .val .pin-btn{margin-left:auto}.pin-btn:hover{background:color-mix(in srgb,var(--lc) 18%,transparent);transform:scale(1.05)}.ss-swap-wrap{position:relative;display:flex;align-items:center;border-top:1px solid var(--surface-fg-5, rgba(255, 255, 255, .07));border-bottom:1px solid var(--surface-fg-5, rgba(255, 255, 255, .07))}.ss-swap{position:absolute;right:16px;width:32px;height:32px;display:flex;align-items:center;justify-content:center;border-radius:50%;border:1px solid color-mix(in srgb,var(--lc) 40%,transparent);background:color-mix(in srgb,var(--lc) 14%,transparent);transition:transform .25s ease;cursor:pointer}.ss-swap:hover{transform:rotate(180deg)}.from-to-swap-btn{position:absolute;right:16px;width:32px;height:32px;display:flex;align-items:center;justify-content:center;border-radius:50%;border:1px solid color-mix(in srgb,var(--lc, var(--accent)) 40%,transparent);background:color-mix(in srgb,var(--lc, var(--accent)) 14%,transparent);transition:transform .25s ease;cursor:pointer}.from-to-swap-btn:hover{transform:rotate(180deg) scale(1.08)}.trips{padding:4px 20px 24px}.trips-overview{display:inline-flex;align-items:center;gap:8px;padding:7px 14px;border-radius:999px;background:color-mix(in srgb,var(--lc) 15%,transparent);border:1px solid color-mix(in srgb,var(--lc) 18%,transparent);margin-bottom:16px}.trips-overview .ln{font-family:var(--font-heading);font-size:12px;font-weight:700;color:var(--lc)}.trips-overview .rt{font-size:12px;color:var(--text-muted, var(--muted))}.trips-overview .ct{font-family:var(--font-heading);font-size:12px;color:var(--lc)}.trips-list{display:flex;flex-direction:column;gap:8px}.trip-card{border-radius:var(--r-2xl, 24px);padding:14px 16px;background:var(--surface-fg-3, rgba(255, 255, 255, .05));border:1px solid var(--surface-fg-6, rgba(255, 255, 255, .08));transition:all .2s ease;cursor:pointer;position:relative}.trip-card:hover{transform:translateY(-1px);border-color:var(--surface-fg-12, rgba(255, 255, 255, .12))}.trip-card.is-next{background:linear-gradient(135deg,color-mix(in srgb,var(--lc) 10%,transparent) 0%,var(--surface-fg-3, rgba(255, 255, 255, .05)) 100%);border-color:color-mix(in srgb,var(--lc) 25%,transparent)}.trip-card.is-past{opacity:.45;cursor:pointer}.trip-next-head{display:flex;align-items:center;gap:6px;margin-bottom:8px}.trip-next-head .pulse-dot{width:6px;height:6px;border-radius:50%;background:var(--lc);animation:pulse 1.6s ease-in-out infinite}.trip-next-head .label{font-size:10px;font-weight:600;text-transform:uppercase;letter-spacing:.15em;color:var(--lc)}.trip-main{display:flex;align-items:center;justify-content:space-between}.trip-main .left{display:flex;align-items:center;gap:12px}.trip-dep{font-family:var(--font-heading);font-weight:700;font-size:24px;line-height:1;letter-spacing:-.02em;color:var(--text-bright, var(--text))}.trip-card.is-past .trip-dep{color:var(--text-dim, var(--quiet))}.trip-arr-row{display:flex;align-items:center;gap:4px;margin-top:2px}.trip-arr-row .lbl2{font-size:10px;color:var(--text-dim, var(--quiet))}.trip-arr-row .arr{font-family:var(--font-heading);font-size:11px;color:var(--text-muted, var(--muted))}.trip-card.is-past .trip-arr-row .arr{color:var(--text-faint, var(--quiet))}.duration-strip{margin-top:2px;font-size:10px;color:var(--text-faint, var(--quiet));font-family:var(--font-heading)}.right-stack{display:flex;flex-direction:column;align-items:flex-end;gap:8px}.trip-pin-btn{background:transparent;border:1px solid transparent;padding:2px 4px;border-radius:6px;font-size:14px;line-height:1;cursor:pointer;color:var(--text-dim, var(--quiet));opacity:.7;transition:all .15s ease}.trip-pin-btn:hover{opacity:1;background:var(--surface-fg-3, rgba(255,255,255,.05))}.trip-pin-btn.active{color:var(--lc);opacity:1;background:color-mix(in srgb,var(--lc) 16%,transparent);border-color:color-mix(in srgb,var(--lc) 35%,transparent);box-shadow:0 0 8px color-mix(in srgb,var(--lc) 30%,transparent)}.trip-pin-btn.row-pin{font-size:12px;padding:1px 3px;margin-left:6px;vertical-align:middle}.pinned-trip-banner{display:flex;align-items:center;gap:10px;margin:0 20px 12px;padding:10px 14px;border-radius:var(--r-xl, 20px);background:color-mix(in srgb,var(--lc, var(--accent)) 12%,transparent);border:1px solid color-mix(in srgb,var(--lc, var(--accent)) 30%,transparent);box-shadow:0 4px 20px color-mix(in srgb,var(--lc, var(--accent)) 14%,transparent)}.pinned-trip-banner .pin-icon{font-size:16px;line-height:1}.pinned-trip-banner .pt-info{flex:1 1 auto;display:flex;flex-direction:column;gap:2px;min-width:0}.pinned-trip-banner .pt-line{font-family:var(--font-heading);font-weight:700;font-size:.8rem;color:var(--text-bright, var(--text))}.pinned-trip-banner .pt-line small{font-weight:500;font-size:.72rem;color:var(--text-dim, var(--quiet))}.pinned-trip-banner .pt-route{font-size:.82rem;color:var(--text-bright, var(--text));white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.pinned-trip-banner .pt-context-hint{font-size:.7rem;color:var(--text-dim, var(--quiet));font-style:italic}.pinned-trip-banner .pt-unpin{background:transparent;border:0;padding:4px 8px;border-radius:6px;color:var(--text-dim, var(--quiet));font-size:16px;cursor:pointer;transition:all .15s ease}.pinned-trip-banner .pt-unpin:hover{background:#ef44441f;color:#fecaca}.pinned-trip-banner.out-of-context{opacity:.85;border-style:dashed}.pinned-trip-banner.out-of-sync{border-color:#ef444459;background:#ef44440f}.pinned-trip-banner .countdown{font-family:var(--font-heading);font-size:.78rem;font-weight:600}.countdown{font-family:var(--font-heading);font-size:11px}.countdown.partito{color:var(--text-dim, var(--quiet));font-size:10px}.countdown.ora{color:var(--danger);font-weight:700;font-size:11px;animation:pulse 1.4s ease-in-out infinite}.countdown.soon{color:var(--warn-1, var(--warn));font-weight:700}.countdown.mid{color:var(--warn-2, #FACC15);font-weight:600}.countdown.late{color:var(--text-muted, var(--muted))}.transfers{display:flex;flex-wrap:wrap;gap:6px;margin-top:10px;padding-top:10px;border-top:1px solid var(--surface-fg-4, rgba(255, 255, 255, .06))}.transfer-pill{display:inline-flex;align-items:center;gap:4px;background:var(--surface-fg-3, rgba(255, 255, 255, .05));border:1px solid var(--surface-fg-6, rgba(255, 255, 255, .08));border-radius:999px;padding:2px 8px}.transfer-pill .tag{font-family:var(--font-heading);font-size:10px;font-weight:700;border-radius:3px;padding:0 3px}.transfer-pill .dir{font-size:10px;color:var(--text-muted, var(--muted))}.transfer-pill .mg{font-family:var(--font-heading);font-size:10px;font-weight:600;margin-left:2px}.trip-expand{overflow:hidden;max-height:0;transition:max-height .3s ease,padding .3s ease}.trip-card.expanded .trip-expand{max-height:600px;padding-top:12px;margin-top:12px;border-top:1px solid var(--surface-fg-5, rgba(255, 255, 255, .07))}.trip-card .chev{transition:transform .2s ease;color:var(--text-dim, var(--quiet))}.trip-card.expanded .chev{transform:rotate(180deg)}.trip-card .trip-chev{transition:transform .2s ease;color:var(--text-dim, var(--quiet))}.trip-card.expanded .trip-chev{transform:rotate(180deg)}.expand-stops{display:flex;flex-direction:column;gap:0;margin:8px 0 8px 14px;position:relative}.expand-stops:before,.expand-stops-list:before{content:"";position:absolute;left:5px;top:6px;bottom:6px;width:1px;background:linear-gradient(to bottom,var(--lc),var(--text-faint, var(--quiet)));opacity:.5}.expand-stop,.expand-stop-item{display:flex;align-items:center;gap:12px;padding:4px 0;position:relative}.expand-stop .node{width:11px;height:11px;border-radius:50%;background:var(--bg-figma, var(--bg));border:2px solid var(--lc);z-index:1;flex-shrink:0}.expand-stop.is-end .node,.expand-stop-item.is-end .node{background:var(--lc)}.expand-stop .time,.expand-stop-item .expand-stop-time{font-family:var(--font-heading);font-size:12px;font-weight:600;color:var(--text-bright, var(--text));width:44px;flex-shrink:0}.expand-stop .name,.expand-stop-item .expand-stop-name{font-size:12px;color:var(--text-muted, var(--muted));flex:1}.expand-stop.is-end .name,.expand-stop-item.is-end .expand-stop-name{color:var(--text-bright, var(--text));font-weight:500}.expand-stop .pin-mini{background:transparent;border:0;padding:2px;color:var(--lc);opacity:.7;border-radius:4px;cursor:pointer;transition:all .15s ease}.expand-stop .pin-mini:hover{opacity:1;background:color-mix(in srgb,var(--lc) 15%,transparent)}.expand-meta,.trip-meta-row{display:flex;gap:8px;flex-wrap:wrap;margin-top:8px;font-size:10px}.expand-meta .chip,.trip-meta-chip{background:var(--surface-fg-4, rgba(255, 255, 255, .06));border:1px solid var(--surface-fg-6, rgba(255, 255, 255, .08));border-radius:999px;padding:3px 8px;color:var(--text-muted, var(--muted));font-family:var(--font-heading)}.expand-meta .chip b,.trip-meta-chip b{color:var(--text-bright, var(--text));font-weight:600}.past-toggle{width:100%;display:flex;align-items:center;justify-content:space-between;padding:12px 16px;border-radius:var(--r-2xl, 24px);border:1px solid var(--surface-fg-6, rgba(255, 255, 255, .08));background:transparent;transition:background .2s ease;margin-bottom:10px;cursor:pointer;font-family:var(--font-body)}.past-toggle:hover{background:var(--surface-fg-3, rgba(255, 255, 255, .05))}.past-toggle .label{font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.15em;color:var(--text-faint, var(--quiet))}.past-toggle .chev{color:var(--text-faint, var(--quiet));transition:transform .2s ease}.past-toggle[aria-expanded=true] .chev{transform:rotate(180deg)}.station-select{padding:0 20px 16px}.station-select>label{display:block;font-size:10px;text-transform:uppercase;letter-spacing:.15em;color:var(--text-dim, var(--quiet));margin-bottom:6px}.station-btn{width:100%;display:flex;align-items:center;gap:12px;text-align:left;background:var(--surface-fg-3, rgba(255, 255, 255, .05));border:1px solid var(--surface-fg-6, rgba(255, 255, 255, .08));border-radius:var(--r-xl, 20px);padding:12px 14px;transition:all .2s ease;cursor:pointer;font-family:var(--font-body)}.station-btn:hover{border-color:var(--surface-fg-12, rgba(255, 255, 255, .12))}.station-btn .icon{width:32px;height:32px;border-radius:8px;background:#94c12026;display:flex;align-items:center;justify-content:center;color:var(--line-r21, var(--accent));flex-shrink:0}.station-btn .name{font-weight:600;font-size:14px;color:var(--text-bright, var(--text))}.station-btn .sub{font-size:11px;color:var(--text-muted, var(--muted))}.station-btn .chev{margin-left:auto;color:var(--text-faint, var(--quiet))}.station-buttons{display:flex;gap:8px;overflow-x:auto;padding-bottom:4px}.station-buttons .station-btn{flex:0 0 80%;max-width:320px}.train-card .leave-hint{font-size:10px;color:var(--text-dim, var(--quiet));margin-top:8px;display:inline-flex;align-items:center;gap:4px;background:var(--surface-fg-4, rgba(255, 255, 255, .06));border-radius:6px;padding:3px 8px}.train-card .leave-hint b{color:var(--text-bright, var(--text));font-family:var(--font-heading)}.train-card .wait-sub{font-size:9px;color:var(--text-dim, var(--quiet));text-transform:uppercase;letter-spacing:.1em;margin-top:2px}.rfi-link{display:inline-flex;align-items:center;gap:4px;margin-top:10px;font-size:10px;color:var(--lc);text-decoration:none;padding:4px 8px;border:1px solid var(--surface-fg-6, rgba(255, 255, 255, .08));border-radius:6px;transition:background .15s ease}.rfi-link:hover{background:var(--surface-fg-4, rgba(255, 255, 255, .06))}.alert-card{background:var(--surface-fg-3, rgba(255, 255, 255, .05));border:1px solid var(--surface-fg-6, rgba(255, 255, 255, .08));border-radius:var(--r-xl, 20px);padding:14px 16px;margin-bottom:8px;cursor:pointer;transition:all .2s ease}.alert-card:hover{border-color:var(--surface-fg-12, rgba(255, 255, 255, .12))}.alert-card.sev-high{border-color:#ef444466;background:linear-gradient(135deg,rgba(239,68,68,.08) 0%,var(--surface-fg-3, rgba(255, 255, 255, .05)) 100%)}.alert-card.sev-mid{border-color:#f59e0b59}.alert-card .head{display:flex;align-items:center;gap:8px;margin-bottom:6px}.alert-card .tag{font-family:var(--font-heading);font-size:10px;font-weight:700;padding:2px 6px;border-radius:4px}.alert-card.sev-high .tag{background:#ef444433;color:var(--danger)}.alert-card.sev-mid .tag{background:#f59e0b33;color:var(--warn-1, var(--warn))}.alert-card .tag.info{background:#6b7a9933;color:var(--text-muted, var(--muted))}.alert-card .when{font-size:11px;color:var(--text-dim, var(--quiet));margin-left:auto}.alert-card h4{margin:0;font-size:14px;font-weight:600;color:var(--text-bright, var(--text))}.alert-card p{margin:4px 0 0;font-size:12px;color:var(--text-muted, var(--muted));line-height:1.4}.alert-card .affected-lines{display:flex;gap:4px;margin-top:8px;flex-wrap:wrap}.alert-card .line-chip{font-family:var(--font-heading);font-size:10px;font-weight:700;padding:2px 6px;border-radius:4px;color:#080b12}.alerts-toolbar{display:flex;align-items:center;gap:8px;padding:0 20px 8px;font-size:11px;color:var(--text-muted, var(--muted))}.alerts-toolbar input[type=checkbox]{cursor:pointer;width:15px;height:15px}.alerts-toolbar label{cursor:pointer;font-weight:600;color:var(--text-bright, var(--text));user-select:none}.next-departures{display:flex;flex-wrap:wrap;gap:8px;margin:4px 0 12px}.next-departures .section-head{flex-basis:100%;margin:8px 0 2px}.next-departures .trip-card.is-next-dep{display:inline-flex;align-items:center;gap:10px;padding:10px 14px;margin:0;cursor:pointer;border:1px solid var(--surface-fg-6, rgba(255,255,255,.08));border-left:3px solid var(--lc, #06b6d4);border-radius:var(--r-md, 12px);background:var(--surface-fg-3, rgba(255,255,255,.05));text-align:left;color:inherit}.next-departures .trip-card.is-next-dep:hover{background:var(--surface-fg-5, rgba(255,255,255,.08))}.next-departures .nd-time{font-family:var(--font-heading);font-size:16px;font-weight:700;color:var(--text-bright, var(--text))}.next-departures .nd-arrow{color:var(--text-dim, var(--quiet))}.next-departures .nd-arr{font-family:var(--font-heading);font-size:13px;color:var(--text-muted, var(--muted))}.journey-card-lines{margin-top:6px}.skip-link{position:absolute;top:-100px;left:16px;background:var(--accent, #22d3ee);color:var(--accent-on, #06202a);padding:10px 16px;border-radius:var(--radius, 8px);font-weight:700;font-size:.9rem;z-index:10000;text-decoration:none;box-shadow:var(--shadow);transition:top .2s ease}.skip-link:focus{top:16px}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}.settings-stations-toggle-wrapper{margin-top:10px;text-align:center;width:100%}.settings-stations-toggle-btn{font-size:.8rem;padding:6px 12px;border:1px dashed var(--line);background:transparent;cursor:pointer;color:var(--accent)}.settings-walk-drive-preview-card{grid-column:1 / -1;margin-top:8px;padding:10px 12px;background:#ffffff05;border:1px solid var(--line);border-radius:var(--radius);font-size:.78rem;color:var(--muted);display:flex;flex-direction:column;gap:6px}.settings-section-divider{margin-top:1.5rem;border-top:1px solid var(--line);padding-top:1.5rem}.settings-threshold-warning-banner{margin-bottom:1rem;padding:10px 12px;background:#ef44441a;border:1px solid var(--danger);border-radius:8px;color:var(--danger);font-size:.78rem;font-weight:500;display:flex;align-items:center;gap:8px}.settings-sliders-container{display:flex;flex-direction:column;gap:16px}.settings-slider-label-row{display:flex;justify-content:space-between;align-items:center;margin-bottom:4px}.settings-slider-title{font-size:.85rem;font-weight:500;color:var(--text)}.settings-slider-badge{font-size:.82rem;font-weight:600;color:var(--accent)}.settings-slider-input{width:100%;height:6px;border-radius:3px;background:var(--line);outline:none;cursor:pointer}.settings-slider-desc{font-size:.74rem;color:var(--muted);margin:4px 0 0}[data-theme=light] .brand-name{color:#0e7490}[data-theme=light] .brand-date{color:#64748b}[data-theme=light] .nav-item.active .nav-lbl,[data-theme=light] .nav-item.active .nav-ic{color:#0e7490}[data-theme=light] .sim-badge{color:#b45309}[data-theme=light] .live-pill span:not(.dot){color:#15803d}[data-theme=light] .conn-state-good,[data-theme=light] .connection-row em.good,[data-theme=light] .connection-row em.calm{color:#a16207}[data-theme=light] .filter-row .direction-toggle{color:#475569}[data-theme=light] .rfi-link,[data-theme=light] .train-card .rfi-link{color:#b45309}[data-theme=light] .trip-next-head .label{color:#0e7490}[data-theme=light] .trains-section-head .label,[data-theme=light] .section-head .label,[data-theme=light] .trip-next-head .label{color:#475569}[data-theme=light] .filter-row .day-filter button.active{color:#4d7c0f;border-color:color-mix(in srgb,#4d7c0f 35%,transparent)}[data-theme=light] .live-map-badge{color:#854d0e;background:#b453091a;border-color:#b453094d}.linf-root{display:flex;flex-direction:column;gap:1.25rem}.linf-title{margin:0;font-size:1.35rem;line-height:1.3}.linf-subtitle{margin:.25rem 0 0;font-size:.9rem;opacity:.75}.linf-index{display:flex;flex-wrap:wrap;gap:.5rem;padding:.75rem;border-radius:14px;background:var(--pill-bg, rgba(128, 128, 128, .12))}.linf-index-pill{border:1px solid transparent;border-radius:999px;padding:.3rem .7rem;font:inherit;font-size:.85rem;font-weight:600;color:#fff;cursor:pointer;line-height:1.2}.linf-index-pill:hover,.linf-index-pill:focus-visible{filter:brightness(1.12);outline:2px solid currentColor;outline-offset:1px}.linf-card{border-radius:16px;padding:1rem 1.1rem;background:var(--pill-bg, rgba(128, 128, 128, .12));scroll-margin-top:5rem}.linf-card-header{display:flex;align-items:center;flex-wrap:wrap;gap:.6rem;margin-bottom:.5rem}.linf-line-pill{display:inline-flex;align-items:center;justify-content:center;min-width:3.4rem;padding:.28rem .6rem;border-radius:999px;font-weight:700;font-size:.95rem;color:#fff;letter-spacing:.02em}.linf-card-title{margin:0;font-size:1.05rem;font-weight:650}.linf-capolinea{margin:0 0 .4rem;font-size:.9rem}.linf-capolinea .linf-arrow{opacity:.6;padding:0 .2rem}.linf-stats{display:flex;flex-wrap:wrap;gap:.35rem 1rem;margin:0 0 .6rem;padding:0;font-size:.82rem;opacity:.85}.linf-stats li{list-style:none}.linf-cities{margin:0 0 .75rem;font-size:.85rem;line-height:1.6}.linf-cities .linf-city{display:inline-block;padding:.1rem .5rem;margin:.12rem .1rem;border-radius:999px;background:var(--pill-bg-strong, rgba(128, 128, 128, .18))}.linf-cities .linf-city-arrow{opacity:.5}.linf-route{border-radius:12px;background:var(--pill-bg, rgba(128, 128, 128, .1));margin-top:.5rem}.linf-route--open{background:transparent;border:0;padding:0;margin-top:0}.linf-route>summary{cursor:pointer;padding:.45rem .7rem;font-size:.85rem;border-radius:12px}.linf-route>summary:hover{background:var(--pill-bg-strong, rgba(128, 128, 128, .15))}.linf-route-heading{font-size:.85rem;font-weight:650;margin:0 0 .35rem;opacity:.9}.linf-route-meta{font-size:.78rem;opacity:.7;display:block;margin-top:.1rem;font-weight:400}.linf-stops{position:relative;list-style:none;margin:.25rem 0 .5rem;padding:.25rem 0 .25rem .7rem}.linf-stops:before{content:"";position:absolute;left:15px;top:8px;bottom:8px;width:5px;border-radius:3px;background:var(--linf-line-color, #94a3b8)}.linf-stop{position:relative;display:grid;grid-template-columns:22px minmax(0,1fr);align-items:baseline;padding:.1rem 0}.linf-stop-dot{position:relative;z-index:1;justify-self:center;align-self:center;width:10px;height:10px;border-radius:50%;background:var(--linf-line-color, #94a3b8);border:2px solid var(--linf-card-bg, transparent);box-sizing:content-box;margin-left:-3px}.linf-stop--ic .linf-stop-dot{width:14px;height:14px;border-color:var(--linf-card-bg, transparent);box-shadow:0 0 0 2px var(--linf-line-color, #94a3b8)}.linf-stop-name{font-size:.85rem;line-height:1.45;word-break:break-word}.linf-stop--ic .linf-stop-name{font-weight:600}.linf-badges{display:inline-flex;flex-wrap:wrap;gap:.25rem;margin-left:.5rem;vertical-align:middle}.linf-badge{display:inline-flex;align-items:center;gap:.2rem;padding:.06rem .42rem;border-radius:999px;font-size:.72rem;font-weight:700;line-height:1.5;color:#fff;white-space:nowrap}.linf-badge--train{background:#3b6ea5}.linf-badge--metro{background:#e40314}.linf-badge--z{color:#fff}.linf-hubs{border-radius:16px;padding:1rem 1.1rem;background:var(--pill-bg, rgba(128, 128, 128, .12))}.linf-hubs-scroll{overflow-x:auto}.linf-hubs table{width:100%;border-collapse:collapse;font-size:.85rem}.linf-hubs th,.linf-hubs td{text-align:left;padding:.4rem .6rem;border-bottom:1px solid var(--pill-bg-strong, rgba(128, 128, 128, .2));vertical-align:top}.linf-hubs th{font-size:.75rem;text-transform:uppercase;letter-spacing:.05em;opacity:.7}.linf-hub-z{display:inline-block;margin:.1rem .2rem .1rem 0;padding:.05rem .45rem;border-radius:999px;font-size:.72rem;font-weight:700;color:#fff}.linf-hubs-note{margin:.6rem 0 0;font-size:.78rem;opacity:.7}.linf-legend{display:flex;flex-wrap:wrap;gap:.4rem 1.2rem;font-size:.8rem;opacity:.85;margin:0;padding:0}.linf-legend li{list-style:none;display:inline-flex;align-items:center;gap:.35rem}button.linf-line-pill--map{border:0;cursor:pointer;font:inherit;letter-spacing:.02em;transition:transform .15s ease,box-shadow .15s ease}button.linf-line-pill--map:hover{transform:scale(1.06);box-shadow:0 2px 10px color-mix(in srgb,var(--linf-line-color, #22d3ee) 55%,transparent)}button.linf-line-pill--map:focus-visible,button.linf-stop-link:focus-visible,.linf-top-btn:focus-visible{outline:2px solid var(--accent, #22d3ee);outline-offset:2px}button.linf-stop-link{background:none;border:0;padding:0;margin:0;color:inherit;font:inherit;text-align:left;cursor:pointer;display:inline-flex;align-items:center;gap:.35rem;border-radius:6px}button.linf-stop-link:hover .linf-stop-name,button.linf-stop-link:focus-visible .linf-stop-name{text-decoration:underline dotted;text-underline-offset:3px;color:var(--linf-line-color, var(--accent, #22d3ee))}.linf-top-btn{position:fixed;right:16px;bottom:88px;z-index:40;width:44px;height:44px;border-radius:50%;border:1px solid var(--line, rgba(128, 128, 128, .25));background:var(--surface, #1d293d);color:var(--text, #f8fafc);display:inline-flex;align-items:center;justify-content:center;cursor:pointer;box-shadow:0 6px 18px #00000040;opacity:0;transform:translateY(8px);pointer-events:none;transition:opacity .2s ease,transform .2s ease}.linf-top-btn--visible{opacity:1;transform:translateY(0);pointer-events:auto}@media (min-width: 768px){.linf-top-btn{bottom:24px;right:24px}}
