.airport-app[data-v-0fee372c]{min-height:100vh;background:var(--color-background);color:var(--color-text);padding-bottom:calc(var(--bottom-nav-height) + 8px)}.airport-header[data-v-0fee372c]{display:flex;align-items:center;gap:10px;padding:12px 14px;background:var(--color-surface);border-bottom:1px solid var(--color-border);position:sticky;top:0;z-index:100}.back-btn[data-v-0fee372c],.refresh-btn[data-v-0fee372c]{background:none;border:none;cursor:pointer;color:var(--color-primary);padding:6px;border-radius:8px;display:flex;align-items:center;justify-content:center;flex-shrink:0}.back-icon[data-v-0fee372c],.refresh-icon[data-v-0fee372c]{width:22px;height:22px}.refresh-btn.spinning .refresh-icon[data-v-0fee372c]{animation:spin-0fee372c .8s linear infinite}@keyframes spin-0fee372c{to{transform:rotate(360deg)}}.header-title-block[data-v-0fee372c]{flex:1;display:flex;flex-direction:column}.header-title[data-v-0fee372c]{font-size:1rem;font-weight:700;color:var(--color-text);line-height:1.2}.header-subtitle[data-v-0fee372c]{font-size:.7rem;color:var(--color-text-secondary)}.offline-banner[data-v-0fee372c]{background:#f59e0b;color:#fff;text-align:center;padding:8px;font-size:.82rem;font-weight:600}.tab-bar[data-v-0fee372c]{display:flex;border-bottom:2px solid var(--color-border);background:var(--color-surface)}.tab-btn[data-v-0fee372c]{flex:1;display:flex;align-items:center;justify-content:center;gap:8px;padding:10px 6px;background:none;border:none;cursor:pointer;color:var(--color-text-secondary);font-size:.85rem;font-weight:600;border-bottom:3px solid transparent;transition:color .2s,border-color .2s;line-height:1.3}.tab-btn.active[data-v-0fee372c]{color:var(--color-primary);border-bottom-color:var(--color-primary)}.tab-icon[data-v-0fee372c]{font-size:1.4rem}.tab-label[data-v-0fee372c]{text-align:left}.date-nav[data-v-0fee372c]{display:flex;align-items:center;justify-content:space-between;padding:8px 16px;background:var(--color-surface-variant);border-bottom:1px solid var(--color-border)}.date-btn[data-v-0fee372c]{background:none;border:1px solid var(--color-border);border-radius:6px;width:32px;height:32px;font-size:1.2rem;cursor:pointer;color:var(--color-primary);display:flex;align-items:center;justify-content:center}.date-btn[data-v-0fee372c]:disabled{color:var(--color-border);border-color:var(--color-border);cursor:not-allowed;opacity:.45}.date-label[data-v-0fee372c]{font-size:.85rem;font-weight:600;color:var(--color-text)}.search-bar[data-v-0fee372c]{display:flex;align-items:center;padding:8px 12px;background:var(--color-surface);border-bottom:1px solid var(--color-border);gap:6px}.search-icon[data-v-0fee372c]{font-size:.95rem;flex-shrink:0;line-height:1;opacity:.6}.search-input[data-v-0fee372c]{flex:1;border:1px solid var(--color-border);border-radius:8px;padding:7px 10px;font-size:.88rem;background:var(--color-background);color:var(--color-text);outline:none}.search-input[data-v-0fee372c]:focus{border-color:var(--color-primary)}.clear-btn[data-v-0fee372c]{background:none;border:none;cursor:pointer;color:var(--color-text-secondary);font-size:1rem;padding:4px}.skeleton-list[data-v-0fee372c]{padding:8px 12px;display:flex;flex-direction:column;gap:8px}.skeleton-row[data-v-0fee372c]{display:grid;grid-template-columns:48px 1fr 80px 70px;gap:8px;align-items:center;padding:10px 0;border-bottom:1px solid var(--color-border)}.skeleton-block[data-v-0fee372c]{background:var(--color-border);border-radius:4px;animation:pulse-0fee372c 1.4s ease-in-out infinite;height:14px}.sk-time[data-v-0fee372c]{width:40px}.sk-dest[data-v-0fee372c]{width:100%}.sk-no[data-v-0fee372c]{width:72px}.sk-status[data-v-0fee372c]{width:64px}@keyframes pulse-0fee372c{0%,to{opacity:1}50%{opacity:.4}}.error-state[data-v-0fee372c],.empty-state[data-v-0fee372c]{text-align:center;padding:48px 24px;display:flex;flex-direction:column;align-items:center;gap:12px}.error-icon[data-v-0fee372c],.empty-icon[data-v-0fee372c]{font-size:2.5rem}.error-message[data-v-0fee372c],.empty-msg[data-v-0fee372c]{font-size:.9rem;color:var(--color-text-secondary);white-space:pre-line;line-height:1.6}.retry-btn[data-v-0fee372c]{margin-top:8px;padding:10px 24px;background:var(--color-primary);color:#fff;border:none;border-radius:20px;font-size:.9rem;font-weight:700;cursor:pointer}.flight-list[data-v-0fee372c]{padding:0 0 12px}.flight-count[data-v-0fee372c]{font-size:.72rem;color:var(--color-text-secondary);padding:6px 12px 4px;font-weight:500}.flight-header-row[data-v-0fee372c]{display:grid;grid-template-columns:46px 1fr 78px 58px 64px;gap:4px;align-items:center;padding:6px 10px;background:var(--color-tableHeader, var(--color-surface-variant));border-bottom:2px solid var(--color-border);font-size:.68rem;font-weight:700;color:var(--color-text);text-align:center;line-height:1.3}.flight-header-row span[data-v-0fee372c]{color:var(--color-text)!important}.flight-row[data-v-0fee372c]{display:grid;grid-template-columns:46px 1fr 78px 58px 64px;gap:4px;align-items:center;padding:9px 10px;border-bottom:1px solid var(--color-border);cursor:pointer;transition:background .15s;font-size:.8rem}.flight-row[data-v-0fee372c]:hover,.flight-row[data-v-0fee372c]:active{background:var(--color-surface-variant)}.col-time[data-v-0fee372c]{font-size:.88rem;font-weight:700;color:var(--color-text);text-align:center}.col-dest[data-v-0fee372c]{display:flex;flex-wrap:wrap;gap:3px}.dest-tag[data-v-0fee372c]{display:inline-flex;align-items:center;gap:4px;font-size:.72rem}.dest-tag b[data-v-0fee372c]{background:#0f766e21;color:#0d7a6e;border-radius:4px;padding:1px 6px;font-size:.78rem;font-weight:800;letter-spacing:.02em}.dest-city[data-v-0fee372c]{font-weight:500;font-size:.74rem;color:var(--color-text);opacity:.85}.col-no[data-v-0fee372c]{display:flex;flex-direction:column;gap:2px}.flight-no[data-v-0fee372c]{font-size:.76rem;font-weight:600;color:var(--color-text)}.col-gate[data-v-0fee372c]{font-size:.76rem;color:var(--color-text);text-align:center}.col-status[data-v-0fee372c]{text-align:center;font-size:.7rem;font-weight:700;border-radius:4px;padding:3px 4px;line-height:1.3}.status-badge.status-on-time[data-v-0fee372c]{background:#22c55e26;color:#16a34a}.status-badge.status-cancelled[data-v-0fee372c]{background:#ef444426;color:#dc2626}.status-badge.status-delayed[data-v-0fee372c]{background:#f9731626;color:#ea580c}.status-badge.status-boarding[data-v-0fee372c]{background:#3b82f626;color:#2563eb}.status-badge.status-scheduled[data-v-0fee372c]{background:var(--color-surface-variant);color:var(--color-text-secondary)}[data-theme=dark] .status-badge.status-on-time[data-v-0fee372c]{color:#86efac}[data-theme=dark] .status-badge.status-cancelled[data-v-0fee372c]{color:#fca5a5}[data-theme=dark] .status-badge.status-delayed[data-v-0fee372c]{color:#fdba74}[data-theme=dark] .status-badge.status-boarding[data-v-0fee372c]{color:#93c5fd}[data-theme=dark] .dest-tag b[data-v-0fee372c]{background:#2dd4bf26;color:#2dd4bf}.modal-overlay[data-v-0fee372c]{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000080;z-index:500;display:flex;align-items:flex-end;justify-content:center}.modal-card[data-v-0fee372c]{background:var(--color-surface);border-radius:20px 20px 0 0;padding:10px 20px 32px;width:100%;max-width:480px;position:relative;animation:slideUp .25s ease}.modal-handle[data-v-0fee372c]{width:36px;height:4px;background:var(--color-border);border-radius:2px;margin:0 auto 10px}.modal-header[data-v-0fee372c]{display:flex;align-items:center;justify-content:center;position:relative;background:linear-gradient(135deg,var(--color-primary-container, rgba(99,102,241,.15)),var(--color-surface-variant));border-radius:20px 20px 0 0;padding:20px 20px 16px;margin-bottom:4px;border-bottom:1px solid var(--color-border)}.modal-title[data-v-0fee372c]{font-size:1.05rem;font-weight:700;color:var(--color-text);text-align:center;line-height:1.4}.modal-title small[data-v-0fee372c]{font-size:.72rem;font-weight:500;color:var(--color-text-secondary);display:block}@keyframes modalIn-0fee372c{0%{opacity:0;transform:scale(.92)}to{opacity:1;transform:scale(1)}}.modal-close[data-v-0fee372c]{position:absolute;top:50%;right:16px;transform:translateY(-50%);background:var(--color-surface-variant);border:none;border-radius:50%;width:30px;height:30px;font-size:.9rem;cursor:pointer;color:var(--color-text-secondary);display:flex;align-items:center;justify-content:center}.modal-row[data-v-0fee372c]{display:flex;justify-content:space-between;align-items:center;padding:10px 20px;border-bottom:1px solid var(--color-border);font-size:.88rem}.modal-row[data-v-0fee372c]:last-child{border-bottom:none}.modal-label[data-v-0fee372c]{color:var(--color-text-secondary);font-size:.82rem;flex-shrink:0;margin-right:8px}.modal-value[data-v-0fee372c]{font-weight:600;color:var(--color-text);text-align:right}.modal-dest-item[data-v-0fee372c]{display:block;font-size:.88rem;line-height:1.5}.last-update[data-v-0fee372c]{text-align:center;font-size:.72rem;color:var(--color-text-secondary);padding:12px 0 4px}.hour-divider[data-v-0fee372c]{display:flex;align-items:center;justify-content:space-between;padding:6px 12px 4px;background:var(--color-surface-variant);border-top:1px solid var(--color-border);border-bottom:1px solid var(--color-border);position:sticky;top:48px;z-index:10}.hour-label[data-v-0fee372c]{font-size:.75rem;font-weight:700;color:var(--color-primary);letter-spacing:.02em}.hour-count[data-v-0fee372c]{font-size:.7rem;color:var(--color-text-secondary);background:var(--color-border);border-radius:10px;padding:1px 7px}.flight-row-next[data-v-0fee372c]{border-left:3px solid var(--color-primary);background:#6366f10f!important}.flight-row-next .col-time[data-v-0fee372c]{color:var(--color-primary)!important;font-weight:800}.flight-row[data-v-0fee372c]{position:relative}.next-flight-label[data-v-0fee372c]{font-size:.68rem;font-weight:700;color:var(--color-primary);padding:4px 12px 2px;letter-spacing:.03em;opacity:.85}.past-toggle[data-v-0fee372c]{display:flex;align-items:center;gap:8px;width:100%;padding:10px 12px;background:var(--color-surface-variant);border:none;border-top:2px solid var(--color-border);border-bottom:2px solid var(--color-border);cursor:pointer;color:var(--color-text-secondary);font-size:.82rem;font-weight:600;text-align:left}.past-toggle[data-v-0fee372c]:hover{background:var(--color-border)}.past-toggle-icon[data-v-0fee372c]{font-size:.7rem;opacity:.7}.past-toggle-count[data-v-0fee372c]{margin-left:auto;background:var(--color-border);border-radius:10px;padding:1px 8px;font-size:.75rem;color:var(--color-text-secondary)}.past-count[data-v-0fee372c]{margin-left:6px;font-size:.7rem;color:var(--color-text-secondary);opacity:.7}.flight-row-past[data-v-0fee372c]{opacity:.55;background:var(--color-surface-variant)!important}.flight-row-past[data-v-0fee372c]:hover{opacity:.75}.past-time[data-v-0fee372c],.past-no[data-v-0fee372c]{text-decoration:line-through;opacity:.7}.past-gate[data-v-0fee372c],.dest-tag-past[data-v-0fee372c]{opacity:.7}.hall-badge[data-v-0fee372c]{display:inline-block;background:#10b98126;color:#059669;border-radius:4px;padding:1px 5px;font-size:.72rem;font-weight:700}.hall-badge-past[data-v-0fee372c]{opacity:.6}[data-theme=dark] .hall-badge[data-v-0fee372c]{color:#6ee7b7}.gate-subtle[data-v-0fee372c]{font-size:.7rem;color:var(--color-text-secondary)}.stand-badge[data-v-0fee372c]{display:inline-block;background:#6366f121;color:var(--color-primary);border-radius:4px;padding:1px 5px;font-size:.72rem;font-weight:700;margin-top:2px}.gate-badge[data-v-0fee372c]{background:#f9731621;color:#ea580c}[data-theme=dark] .gate-badge[data-v-0fee372c]{color:#fdba74}[data-theme=dark] .stand-badge[data-v-0fee372c]{color:#a5b4fc}.empty-section[data-v-0fee372c]{text-align:center;padding:32px 16px;color:var(--color-text-secondary);font-size:.88rem}.bus-page[data-v-59ef5d65]{min-height:100vh;padding-bottom:calc(var(--bottom-nav-height, 60px) + 16px);background:var(--color-background, #f5f5f7);color:var(--color-text, #18181b);font-family:-apple-system,PingFang HK,Noto Sans HK,Noto Sans TC,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;-webkit-font-smoothing:antialiased}.view[data-v-59ef5d65]{padding-bottom:16px}.offline-banner[data-v-59ef5d65]{background:#fef9c3;color:#854d0e;padding:8px 16px;font-size:clamp(.875rem,2.5vw,1rem);text-align:center;font-weight:500;letter-spacing:.01em}.search-bar-wrap[data-v-59ef5d65]{position:sticky;top:0;z-index:10;background:var(--color-background, #f5f5f7);padding:12px 16px 10px;border-bottom:1px solid var(--color-border, #e4e4e7)}.search-input-row[data-v-59ef5d65]{display:flex;align-items:center;gap:8px;background:var(--color-surface, #fff);border:1.5px solid var(--color-border, #e4e4e7);border-radius:999px;padding:9px 16px;transition:border-color .2s,box-shadow .2s;box-shadow:0 1px 4px #0000000a}.search-input-row[data-v-59ef5d65]:focus-within{border-color:var(--color-primary, #667eea);box-shadow:0 0 0 3px color-mix(in srgb,var(--color-primary, #667eea) 12%,transparent)}.search-icon[data-v-59ef5d65]{font-size:.95rem;flex-shrink:0;opacity:.5}.search-input[data-v-59ef5d65]{flex:1;border:none;outline:none;background:transparent;font-size:clamp(1rem,2.8vw,1.1rem);color:var(--color-text, #18181b);font-family:inherit;letter-spacing:.01em}.search-input[data-v-59ef5d65]::placeholder{color:var(--color-text-secondary, #71717a)}.clear-btn[data-v-59ef5d65]{background:var(--color-border, #e4e4e7);border:none;color:var(--color-text-secondary, #71717a);cursor:pointer;font-size:.75rem;width:20px;height:20px;border-radius:50%;display:flex;align-items:center;justify-content:center;flex-shrink:0;transition:background .15s}.clear-btn[data-v-59ef5d65]:hover{background:var(--color-text-secondary, #71717a);color:#fff}.company-tabs[data-v-59ef5d65]{display:flex;gap:6px;margin-top:10px;overflow-x:auto;scrollbar-width:none;-webkit-overflow-scrolling:touch}.company-tabs[data-v-59ef5d65]::-webkit-scrollbar{display:none}.co-tab[data-v-59ef5d65]{flex-shrink:0;padding:6px 16px;border:1.5px solid var(--color-border, #e4e4e7);border-radius:999px;background:var(--color-surface, #fff);color:var(--color-text-secondary, #71717a);font-size:clamp(.85rem,2.4vw,.95rem);cursor:pointer;transition:all .18s;font-weight:600;font-family:inherit;letter-spacing:.01em;white-space:nowrap}.co-tab.active[data-v-59ef5d65]{background:var(--color-primary, #667eea);border-color:var(--color-primary, #667eea);color:#fff;box-shadow:0 2px 8px color-mix(in srgb,var(--color-primary, #667eea) 35%,transparent)}.loading-state[data-v-59ef5d65]{display:flex;flex-direction:column;align-items:center;gap:12px;padding:48px 16px;color:var(--color-text-secondary, #71717a);font-size:1rem}.spinner[data-v-59ef5d65]{width:30px;height:30px;border:3px solid var(--color-border, #e4e4e7);border-top-color:var(--color-primary, #667eea);border-radius:50%;animation:spin-59ef5d65 .75s linear infinite}@keyframes spin-59ef5d65{to{transform:rotate(360deg)}}.recents-section[data-v-59ef5d65]{display:flex;align-items:flex-start;gap:10px;padding:10px 16px 6px;flex-wrap:wrap}.recents-label[data-v-59ef5d65]{font-size:.78rem;font-weight:600;color:var(--color-text-secondary, #71717a);letter-spacing:.04em;text-transform:uppercase;white-space:nowrap;margin-top:4px;flex-shrink:0}.recents-chips[data-v-59ef5d65]{display:flex;flex-wrap:wrap;gap:7px}.recent-chip[data-v-59ef5d65]{background:var(--color-surface, #fff);border:1.5px solid var(--color-border, #e4e4e7);border-radius:999px;padding:4px 13px;font-size:.88rem;font-weight:600;cursor:pointer;color:var(--color-text, #18181b);transition:background .15s,border-color .15s;font-family:inherit}.recent-chip[data-v-59ef5d65]:hover{background:color-mix(in srgb,var(--color-primary, #667eea) 8%,transparent);border-color:var(--color-primary, #667eea)}.hint-card[data-v-59ef5d65]{margin:32px 16px;padding:28px 24px;background:var(--color-surface, #fff);border-radius:16px;text-align:center;color:var(--color-text-secondary, #71717a);font-size:clamp(1rem,2.8vw,1.1rem);line-height:1.9;box-shadow:0 1px 6px #0000000d}.hint-sub[data-v-59ef5d65]{font-size:.9rem;opacity:.65;margin-top:6px}.mtr-hint[data-v-59ef5d65]{color:var(--color-mtrbus, #16a34a);opacity:.9;font-weight:500}.error-banner[data-v-59ef5d65]{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:12px 16px;padding:12px 16px;background:#fef2f2;border:1px solid #fca5a5;border-radius:12px;color:#b91c1c;font-size:clamp(.85rem,2.2vw,.9rem)}.retry-btn[data-v-59ef5d65]{flex-shrink:0;padding:6px 16px;background:#dc2626;color:#fff;border:none;border-radius:8px;font-size:.88rem;font-weight:600;cursor:pointer;transition:background .15s}.retry-btn[data-v-59ef5d65]:hover{background:#b91c1c}.result-count[data-v-59ef5d65]{padding:8px 16px;font-size:clamp(.85rem,2.2vw,.92rem);color:var(--color-text-secondary, #71717a);font-weight:500;letter-spacing:.01em}.no-result[data-v-59ef5d65]{text-align:center;padding:40px 16px;color:var(--color-text-secondary, #71717a);font-size:1rem}.route-list[data-v-59ef5d65]{padding:6px 12px;display:flex;flex-direction:column;gap:7px}.route-card[data-v-59ef5d65]{display:flex;align-items:center;background:var(--color-surface, #fff);border:1px solid var(--color-border, #e4e4e7);border-left:4px solid transparent;border-radius:12px;overflow:hidden;transition:box-shadow .15s,border-color .15s,transform .1s}.route-card-main[data-v-59ef5d65]{display:flex;align-items:center;gap:11px;padding:13px 0 13px 14px;flex:1;min-width:0;background:none;border:none;text-align:left;cursor:pointer;color:inherit;font:inherit}.route-card[data-v-59ef5d65]>*{margin-left:0}.route-card.co-kmb[data-v-59ef5d65]{border-left-color:#dc2626}.route-card.co-ctb[data-v-59ef5d65]{border-left-color:#2563eb}.route-card.co-mtrbus[data-v-59ef5d65]{border-left-color:#059669}.route-card.co-nlb[data-v-59ef5d65]{border-left-color:#0057a8}.route-card[data-v-59ef5d65]:active{transform:scale(.985)}.route-card[data-v-59ef5d65]:hover{box-shadow:0 3px 12px #00000017;border-top-color:var(--color-border, #e4e4e7);border-right-color:var(--color-border, #e4e4e7);border-bottom-color:var(--color-border, #e4e4e7)}.fav-star[data-v-59ef5d65]{flex-shrink:0;background:none;border:none;font-size:1.2rem;color:var(--color-text-secondary, #a1a1aa);cursor:pointer;padding:13px 14px 13px 6px;line-height:1;transition:color .15s,transform .15s}.fav-star.active[data-v-59ef5d65]{color:#f59e0b}.fav-star[data-v-59ef5d65]:active{transform:scale(1.3)}.route-num[data-v-59ef5d65]{font-size:clamp(1.1rem,3.5vw,1.3rem);font-weight:800;min-width:56px;color:var(--color-text, #18181b);letter-spacing:-.01em;font-variant-numeric:tabular-nums}.route-dirs[data-v-59ef5d65]{flex:1;display:flex;align-items:center;gap:5px;flex-wrap:nowrap;font-size:clamp(.88rem,2.5vw,.96rem);color:var(--color-text-secondary, #71717a);min-width:0}.dir-arrow[data-v-59ef5d65]{opacity:.4;flex-shrink:0;font-size:.8em}.route-orig[data-v-59ef5d65]{flex-shrink:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.route-dest[data-v-59ef5d65]{flex-shrink:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:600;color:var(--color-text, #18181b)}.co-badge[data-v-59ef5d65]{display:inline-flex;align-items:center;padding:3px 8px;border-radius:6px;font-size:.72rem;font-weight:800;letter-spacing:.04em;color:#fff;flex-shrink:0;white-space:nowrap;text-transform:uppercase}.co-badge.kmb[data-v-59ef5d65]{background:#dc2626}.co-badge.ctb[data-v-59ef5d65]{background:#2563eb}.co-badge.mtrbus[data-v-59ef5d65]{background:#059669}.co-badge.nlb[data-v-59ef5d65]{background:#0057a8}.sub-header[data-v-59ef5d65]{display:flex;align-items:center;gap:12px;padding:11px 16px;background:var(--color-surface, #fff);border-bottom:1px solid var(--color-border, #e4e4e7);position:sticky;top:0;z-index:10;box-shadow:0 1px 0 var(--color-border, #e4e4e7)}.back-btn[data-v-59ef5d65]{background:none;border:none;color:var(--color-primary, #667eea);font-size:clamp(.95rem,2.5vw,1.05rem);cursor:pointer;padding:6px 12px 6px 4px;font-weight:600;font-family:inherit;border-radius:8px;transition:background .15s;flex-shrink:0}.back-btn[data-v-59ef5d65]:hover{background:color-mix(in srgb,var(--color-primary, #667eea) 8%,transparent)}.header-route[data-v-59ef5d65]{display:flex;align-items:center;gap:8px}.header-route-num[data-v-59ef5d65]{font-size:clamp(1.2rem,3.5vw,1.4rem);font-weight:800;color:var(--color-text, #18181b);letter-spacing:-.01em}.dir-tabs[data-v-59ef5d65]{display:flex;gap:8px;padding:12px 16px 8px}.dir-tab[data-v-59ef5d65]{flex:1;padding:10px 8px;border:1.5px solid var(--color-border, #e4e4e7);border-radius:10px;background:var(--color-surface, #fff);color:var(--color-text-secondary, #71717a);font-size:clamp(.9rem,2.5vw,1rem);cursor:pointer;transition:all .18s;font-weight:600;font-family:inherit;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.dir-tab.active[data-v-59ef5d65]{background:var(--color-primary, #667eea);border-color:var(--color-primary, #667eea);color:#fff;box-shadow:0 2px 8px color-mix(in srgb,var(--color-primary, #667eea) 30%,transparent)}.stop-list[data-v-59ef5d65]{padding:10px 14px 10px 12px;display:flex;flex-direction:column;gap:0;position:relative}.stop-list[data-v-59ef5d65]:before{content:"";position:absolute;left:32px;top:30px;bottom:30px;width:2px;background:var(--color-border, #e4e4e7);border-radius:1px;z-index:0}.stop-item[data-v-59ef5d65]{display:flex;align-items:center;gap:12px;padding:10px 12px;background:transparent;border:none;border-radius:10px;cursor:pointer;text-align:left;width:100%;transition:background .15s;position:relative;z-index:1}.stop-item[data-v-59ef5d65]:hover{background:var(--color-surface, #fff);box-shadow:0 1px 6px #0000000f}.stop-item[data-v-59ef5d65]:active{transform:scale(.988)}.stop-seq[data-v-59ef5d65]{min-width:32px;height:32px;display:flex;align-items:center;justify-content:center;background:var(--color-surface, #fff);border:2px solid var(--color-border, #e4e4e7);border-radius:50%;font-size:.8rem;font-weight:700;color:var(--color-text-secondary, #71717a);flex-shrink:0;transition:border-color .15s,background .15s;position:relative;z-index:2}.stop-item:hover .stop-seq[data-v-59ef5d65],.stop-item:first-child .stop-seq[data-v-59ef5d65],.stop-item:last-child .stop-seq[data-v-59ef5d65]{border-color:var(--color-primary, #667eea);color:var(--color-primary, #667eea);background:color-mix(in srgb,var(--color-primary, #667eea) 8%,var(--color-surface, #fff))}.stop-info[data-v-59ef5d65]{flex:1;display:flex;flex-direction:column;gap:2px;min-width:0}.stop-name-tc[data-v-59ef5d65]{font-size:clamp(1rem,2.8vw,1.1rem);font-weight:600;color:var(--color-text, #18181b);line-height:1.35}.stop-name-en[data-v-59ef5d65]{font-size:clamp(.78rem,2.2vw,.86rem);color:var(--color-text-secondary, #71717a);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;letter-spacing:.01em}.stop-arrow[data-v-59ef5d65]{color:var(--color-text-secondary, #a1a1aa);font-size:1.1rem;flex-shrink:0;opacity:.6}.eta-stop-card[data-v-59ef5d65]{margin:14px 14px 10px;padding:16px 18px;background:var(--color-surface, #fff);border:1px solid var(--color-border, #e4e4e7);border-radius:16px;box-shadow:0 1px 6px #0000000d}.eta-stop-seq[data-v-59ef5d65]{font-size:.82rem;color:var(--color-text-secondary, #71717a);margin-bottom:5px;font-weight:500;letter-spacing:.02em}.eta-stop-name-tc[data-v-59ef5d65]{font-size:clamp(1.2rem,3.5vw,1.4rem);font-weight:700;color:var(--color-text, #18181b);margin-bottom:3px;line-height:1.3}.eta-stop-name-en[data-v-59ef5d65]{font-size:clamp(.82rem,2.2vw,.9rem);color:var(--color-text-secondary, #71717a);letter-spacing:.04em}.eta-direction[data-v-59ef5d65]{margin-top:8px;font-size:.9rem;color:var(--color-primary, #667eea);font-weight:600;display:inline-flex;align-items:center;gap:3px}.eta-refresh-bar[data-v-59ef5d65]{display:flex;align-items:center;justify-content:space-between;padding:6px 16px 4px}.refresh-label[data-v-59ef5d65]{font-size:clamp(1rem,2.5vw,1.1rem);font-weight:700;color:var(--color-text, #18181b);letter-spacing:.01em}.refresh-right[data-v-59ef5d65]{display:flex;align-items:center;gap:8px}.refresh-countdown[data-v-59ef5d65]{font-size:.82rem;color:var(--color-text-secondary, #71717a);font-variant-numeric:tabular-nums}.refresh-btn[data-v-59ef5d65]{background:none;border:1.5px solid var(--color-border, #e4e4e7);border-radius:8px;padding:4px 9px;cursor:pointer;color:var(--color-primary, #667eea);font-size:1rem;line-height:1;transition:background .15s,border-color .15s}.refresh-btn[data-v-59ef5d65]:hover:not(:disabled){background:color-mix(in srgb,var(--color-primary, #667eea) 8%,transparent);border-color:var(--color-primary, #667eea)}.refresh-btn[data-v-59ef5d65]:disabled{opacity:.4;cursor:default}.spinning[data-v-59ef5d65]{display:inline-block;animation:spin-59ef5d65 .6s linear infinite}.eta-cards[data-v-59ef5d65]{padding:6px 12px;display:flex;flex-direction:column;gap:9px}.eta-card[data-v-59ef5d65]{display:flex;align-items:center;justify-content:space-between;padding:14px 16px;background:var(--color-surface, #fff);border:1px solid var(--color-border, #e4e4e7);border-radius:14px;transition:box-shadow .15s}.eta-card.first[data-v-59ef5d65]{border-color:var(--color-primary, #667eea);background:color-mix(in srgb,var(--color-primary, #667eea) 5%,var(--color-surface, #fff));box-shadow:0 2px 10px color-mix(in srgb,var(--color-primary, #667eea) 18%,transparent)}.eta-card-left[data-v-59ef5d65]{display:flex;flex-direction:column;gap:3px}.eta-seq-label[data-v-59ef5d65]{font-size:.8rem;color:var(--color-text-secondary, #71717a);font-weight:500;letter-spacing:.02em}.eta-time[data-v-59ef5d65]{font-size:clamp(1.6rem,5vw,1.9rem);font-weight:800;color:var(--color-text, #18181b);letter-spacing:.02em;font-variant-numeric:tabular-nums;line-height:1.1}.eta-dest[data-v-59ef5d65]{font-size:.82rem;color:var(--color-text-secondary, #71717a);margin-top:2px}.eta-card-right[data-v-59ef5d65]{display:flex;flex-direction:column;align-items:flex-end;gap:6px}.eta-mins[data-v-59ef5d65]{font-size:clamp(1rem,3vw,1.15rem);font-weight:800;color:var(--color-primary, #667eea);background:color-mix(in srgb,var(--color-primary, #667eea) 10%,transparent);padding:5px 12px;border-radius:999px;white-space:nowrap;letter-spacing:.01em}.eta-mins.arriving[data-v-59ef5d65]{color:#dc2626;background:#fee2e2}.eta-mins.soon[data-v-59ef5d65]{color:#d97706;background:#fef3c7}.eta-remark[data-v-59ef5d65]{font-size:.8rem;color:var(--color-text-secondary, #71717a);text-align:right;max-width:110px}.eta-nodata[data-v-59ef5d65]{display:flex;flex-direction:column;align-items:center;gap:10px;padding:48px 16px}.no-result-icon[data-v-59ef5d65]{font-size:2.8rem;opacity:.35}.no-result-sub[data-v-59ef5d65]{font-size:.9rem;opacity:.55}.eta-footer[data-v-59ef5d65]{padding:16px 16px 6px;text-align:center}.eta-data-src[data-v-59ef5d65]{font-size:.8rem;color:var(--color-text-secondary, #a1a1aa);letter-spacing:.01em}[data-theme=dark] .bus-page[data-v-59ef5d65]{background:var(--color-background)}[data-theme=dark] .search-bar-wrap[data-v-59ef5d65]{background:var(--color-background);border-bottom-color:var(--color-border)}[data-theme=dark] .search-input-row[data-v-59ef5d65]{background:var(--color-surface);border-color:var(--color-border);box-shadow:0 1px 4px #0003}[data-theme=dark] .co-tab[data-v-59ef5d65]{background:var(--color-surface);border-color:var(--color-border);color:var(--color-text-secondary)}[data-theme=dark] .hint-card[data-v-59ef5d65]{background:var(--color-surface);border-color:var(--color-border);box-shadow:0 1px 6px #0003}[data-theme=dark] .recent-chip[data-v-59ef5d65]{background:var(--color-surface);border-color:var(--color-border);color:var(--color-text)}[data-theme=dark] .route-card[data-v-59ef5d65]{background:var(--color-surface);border-color:var(--color-border)}[data-theme=dark] .route-card[data-v-59ef5d65]:hover{box-shadow:0 3px 12px #0000004d}[data-theme=dark] .sub-header[data-v-59ef5d65]{background:var(--color-surface);border-color:var(--color-border);box-shadow:0 1px 0 var(--color-border)}[data-theme=dark] .dir-tab[data-v-59ef5d65]{background:var(--color-surface);border-color:var(--color-border);color:var(--color-text-secondary)}[data-theme=dark] .stop-list[data-v-59ef5d65]:before{background:var(--color-border)}[data-theme=dark] .stop-item[data-v-59ef5d65]:hover{background:color-mix(in srgb,var(--color-primary, #667eea) 6%,var(--color-surface))}[data-theme=dark] .stop-seq[data-v-59ef5d65]{background:var(--color-surface);border-color:var(--color-border)}[data-theme=dark] .eta-stop-card[data-v-59ef5d65],[data-theme=dark] .eta-card[data-v-59ef5d65]{background:var(--color-surface);border-color:var(--color-border);box-shadow:0 1px 6px #00000040}[data-theme=dark] .eta-card.first[data-v-59ef5d65]{background:color-mix(in srgb,var(--color-primary, #667eea) 10%,var(--color-surface));border-color:var(--color-primary);box-shadow:0 2px 10px color-mix(in srgb,var(--color-primary, #667eea) 25%,transparent)}[data-theme=dark] .offline-banner[data-v-59ef5d65]{background:#451a03;color:#fde68a}.home-page[data-v-ce70c506]{min-height:100vh;background:var(--color-background, #f5f5f7);padding-bottom:calc(var(--bottom-nav-height, 60px) + 24px);font-family:-apple-system,PingFang HK,Noto Sans HK,sans-serif}.home-header[data-v-ce70c506]{display:flex;align-items:center;justify-content:space-between;padding:14px 18px 12px;background:var(--color-surface, #fff);border-bottom:1px solid var(--color-border, #e4e4e7);position:sticky;top:0;z-index:10;box-shadow:0 1px 8px #0000000f}.home-brand[data-v-ce70c506]{display:flex;align-items:center;gap:10px}.home-logo-wrap[data-v-ce70c506]{width:36px;height:36px;border-radius:10px;background:#e2231a;display:flex;align-items:center;justify-content:center;flex-shrink:0}.home-logo-svg[data-v-ce70c506]{width:22px;height:22px;color:#fff}.home-app-name[data-v-ce70c506]{font-size:1rem;font-weight:800;color:var(--color-text, #18181b);letter-spacing:.02em}.home-tagline[data-v-ce70c506]{font-size:.66rem;color:var(--color-text-secondary, #71717a);margin-top:2px;letter-spacing:.01em}.home-date[data-v-ce70c506]{font-size:.68rem;color:var(--color-text-secondary, #71717a);margin-top:1px}.home-time-wrap[data-v-ce70c506]{text-align:right}.home-time[data-v-ce70c506]{font-size:1.15rem;font-weight:700;font-variant-numeric:tabular-nums;color:var(--color-text, #18181b);letter-spacing:.04em}.home-greeting[data-v-ce70c506]{font-size:.7rem;color:var(--color-text-secondary, #71717a);margin-top:1px}.tiles-section[data-v-ce70c506]{padding:16px 16px 0}.tiles-grid[data-v-ce70c506]{display:grid;grid-template-columns:1fr 1fr;gap:12px}.tile[data-v-ce70c506]{border:none;border-radius:18px;padding:18px 16px 15px;text-align:left;cursor:pointer;-webkit-tap-highlight-color:transparent;transition:transform .15s,box-shadow .15s;display:flex;flex-direction:column;gap:3px;color:#fff}.tile[data-v-ce70c506]:active{transform:scale(.96)}.tile[data-v-ce70c506]:hover{transform:translateY(-2px);box-shadow:0 10px 28px #0003!important}.tile-mtr[data-v-ce70c506]{background:linear-gradient(145deg,#e2231a,#a81212);box-shadow:0 4px 16px #e2231a52}.tile-lrt[data-v-ce70c506]{background:linear-gradient(145deg,#007b5e,#005040);box-shadow:0 4px 16px #007b5e52}.tile-bus[data-v-ce70c506]{background:linear-gradient(145deg,#2563eb,#1e3a8a);box-shadow:0 4px 16px #2563eb52}.tile-airport[data-v-ce70c506]{background:linear-gradient(145deg,#7c3aed,#4c1d95);box-shadow:0 4px 16px #7c3aed52}.tile-icon-svg[data-v-ce70c506]{width:28px;height:28px;opacity:.9;flex-shrink:0;margin-bottom:6px}.tile-name-zh[data-v-ce70c506]{font-size:1.1rem;font-weight:800;line-height:1.1}.tile-name-en[data-v-ce70c506]{font-size:.7rem;opacity:.82;font-weight:500}.tile-sub[data-v-ce70c506]{font-size:.62rem;opacity:.65;margin-top:5px}.card-section[data-v-ce70c506]{margin:16px 16px 0;background:var(--color-surface, #fff);border:1px solid var(--color-border, #e4e4e7);border-radius:16px;overflow:hidden}.section-header[data-v-ce70c506]{display:flex;align-items:center;justify-content:space-between;padding:11px 16px 9px;border-bottom:1px solid var(--color-border, #e4e4e7)}.section-title[data-v-ce70c506]{display:flex;align-items:center;gap:5px;font-size:.8rem;font-weight:700;color:var(--color-text, #18181b)}.section-icon[data-v-ce70c506]{width:13px;height:13px;color:var(--color-primary, #667eea);flex-shrink:0}.section-action[data-v-ce70c506]{background:none;border:none;font-size:.72rem;color:var(--color-text-secondary, #71717a);cursor:pointer;padding:2px 6px;border-radius:6px}.section-action[data-v-ce70c506]:hover{background:var(--color-surface-variant, #f5f5f7)}.fav-list[data-v-ce70c506]{display:flex;flex-direction:column}.fav-item[data-v-ce70c506]{display:flex;align-items:center;gap:12px;padding:11px 16px;background:none;border:none;border-bottom:1px solid var(--color-border, #e4e4e7);cursor:pointer;text-align:left;width:100%;-webkit-tap-highlight-color:transparent;transition:background .12s}.fav-item[data-v-ce70c506]:last-child{border-bottom:none}.fav-item[data-v-ce70c506]:active{background:var(--color-surface-variant, #f5f5f7)}.fav-dot[data-v-ce70c506]{width:10px;height:10px;border-radius:50%;flex-shrink:0}.fav-body[data-v-ce70c506]{flex:1;text-align:left}.fav-label[data-v-ce70c506]{font-size:.88rem;font-weight:700;color:var(--color-text, #18181b)}.fav-sub[data-v-ce70c506]{font-size:.73rem;color:var(--color-text-secondary, #71717a);margin-top:2px}.fav-remove[data-v-ce70c506]{background:none;border:none;color:var(--color-text-secondary, #71717a);font-size:.78rem;cursor:pointer;padding:4px 8px;border-radius:8px;flex-shrink:0}.fav-remove[data-v-ce70c506]:hover{background:#fee2e2;color:#dc2626}.recent-chips[data-v-ce70c506]{display:flex;flex-wrap:wrap;gap:8px;padding:11px 16px 13px}.recent-chip[data-v-ce70c506]{padding:5px 13px;background:var(--color-surface-variant, #f5f5f7);border:1px solid var(--color-border, #e4e4e7);border-radius:20px;font-size:.8rem;font-weight:600;color:var(--color-text, #18181b);cursor:pointer;-webkit-tap-highlight-color:transparent;transition:background .12s,border-color .12s}.recent-chip[data-v-ce70c506]:hover{background:var(--color-primary-container, #e6f3ff);border-color:var(--color-primary, #667eea);color:var(--color-primary, #667eea)}.recent-chip[data-v-ce70c506]:active{transform:scale(.95)}.home-tip[data-v-ce70c506]{margin:28px 16px 0;padding:24px 20px;background:var(--color-surface, #fff);border:1px dashed var(--color-border, #e4e4e7);border-radius:16px;text-align:center;color:var(--color-text-secondary, #71717a)}.tip-icon[data-v-ce70c506]{width:26px;height:26px;color:#f59e0b;margin-bottom:8px}.home-tip p[data-v-ce70c506]{margin:0;font-size:.85rem;line-height:1.9}.home-tip span[data-v-ce70c506]{font-size:.75rem;opacity:.7}.home-footer[data-v-ce70c506]{margin:18px 16px 0;text-align:center;font-size:.66rem;color:var(--color-text-secondary, #71717a);opacity:.65}[data-theme=dark] .home-header[data-v-ce70c506],[data-theme=dark] .card-section[data-v-ce70c506],[data-theme=dark] .home-tip[data-v-ce70c506]{background:#1c1c1e;border-color:#3a3a3c}[data-theme=dark] .recent-chip[data-v-ce70c506]{background:#2c2c2e;border-color:#3a3a3c;color:#e5e5ea}[data-theme=dark] .fav-item[data-v-ce70c506]:active,[data-theme=dark] .section-action[data-v-ce70c506]:hover{background:#2c2c2e}.light-rail-app[data-v-019ac4ba]{min-height:100vh;background:var(--color-background);color:var(--color-text);padding-bottom:2rem}.header[data-v-019ac4ba]{display:flex;align-items:center;justify-content:space-between;padding:1rem;background:var(--color-surface);border-bottom:1px solid var(--color-border);position:sticky;top:0;z-index:100;font-size:1.1rem}.offline-banner[data-v-019ac4ba]{background:#f97316;color:#fff;font-size:.85rem;font-weight:600;text-align:center;padding:6px 12px}[data-theme=dark] .offline-banner[data-v-019ac4ba]{background:#c2410c}.back-button[data-v-019ac4ba],.refresh-button[data-v-019ac4ba]{display:flex;align-items:center;justify-content:center;width:40px;height:40px;border:none;border-radius:50%;background:var(--color-surface-variant);color:var(--color-primary);cursor:pointer;transition:all .2s ease}.back-button[data-v-019ac4ba]:hover,.refresh-button[data-v-019ac4ba]:hover{background:var(--color-primary);color:var(--color-on-primary);transform:scale(1.05)}.back-icon[data-v-019ac4ba],.refresh-icon[data-v-019ac4ba]{width:20px;height:20px;fill:currentColor}.refresh-button.loading .refresh-icon[data-v-019ac4ba]{animation:spin-019ac4ba 1s linear infinite}@keyframes spin-019ac4ba{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.title[data-v-019ac4ba]{font-size:1.4rem;font-weight:600;margin:0;text-align:center;flex:1}.section-title[data-v-019ac4ba]{font-size:1.1rem;font-weight:600;margin:1rem 1rem .75rem;color:var(--color-text-secondary);border-bottom:2px solid var(--color-primary);padding-bottom:.3rem}.region-grid[data-v-019ac4ba]{display:grid;grid-template-columns:repeat(auto-fit,minmax(110px,1fr));gap:8px;padding:0 1rem}.region-button[data-v-019ac4ba]{display:flex;flex-direction:column;align-items:center;padding:10px 6px;border:1px solid var(--color-border);border-radius:10px;background:var(--color-surface);cursor:pointer;transition:all .2s ease;min-height:70px}.region-button[data-v-019ac4ba]:hover{transform:translateY(-1px);box-shadow:0 2px 4px #0000001a}.region-button.active[data-v-019ac4ba]{border-color:var(--color-primary);background:linear-gradient(135deg,var(--color-primary-container),var(--color-surface));box-shadow:0 2px 6px #9c2e0033}.region-icon[data-v-019ac4ba]{font-size:1.5rem;margin-bottom:6px}.region-name .zh[data-v-019ac4ba]{font-weight:600;font-size:.9rem;line-height:1.2}.region-name .en[data-v-019ac4ba]{font-size:.75rem;color:var(--color-text-secondary);margin-top:2px;line-height:1.1}@media (max-width: 768px){.region-grid[data-v-019ac4ba]{gap:6px;grid-template-columns:repeat(auto-fit,minmax(90px,1fr))}.region-button[data-v-019ac4ba]{padding:8px 5px;min-height:60px;border-radius:8px}.region-icon[data-v-019ac4ba]{font-size:1.2rem;margin-bottom:4px}.region-name .zh[data-v-019ac4ba]{font-size:.75rem}.region-name .en[data-v-019ac4ba]{font-size:.65rem;margin-top:1px}}.station-grid[data-v-019ac4ba]{display:grid;grid-template-columns:repeat(auto-fill,minmax(90px,1fr));gap:6px;padding:0 1rem;max-height:400px;overflow-y:auto}.station-button[data-v-019ac4ba]{display:flex;flex-direction:column;align-items:center;padding:6px 4px;border:1px solid var(--color-border);border-radius:6px;background:var(--color-surface);cursor:pointer;transition:all .2s ease;min-height:55px}.station-button[data-v-019ac4ba]:hover{background:var(--color-surface-variant);border-color:var(--color-primary)}.station-button.active[data-v-019ac4ba]{background:var(--color-primary-container);border-color:var(--color-primary);color:var(--color-primary)}.station-code[data-v-019ac4ba]{font-weight:700;font-size:.8rem;margin-bottom:2px;color:var(--color-primary)}.station-name .zh[data-v-019ac4ba]{font-size:1rem;font-weight:500;text-align:center;line-height:1.1}.station-name .en[data-v-019ac4ba]{font-size:.65rem;color:var(--color-text-secondary);text-align:center;margin-top:1px;line-height:1}@media (max-width: 768px){.station-grid[data-v-019ac4ba]{gap:4px;grid-template-columns:repeat(auto-fill,minmax(75px,1fr))}.station-button[data-v-019ac4ba]{padding:5px 3px;min-height:45px;border-radius:5px}.station-code[data-v-019ac4ba]{font-size:.75rem;margin-bottom:1px}.station-name .zh[data-v-019ac4ba]{font-size:.7rem}.station-name .en[data-v-019ac4ba]{font-size:.6rem}}.platform-cards[data-v-019ac4ba]{padding:0 1rem;display:flex;flex-direction:column;gap:1rem}.platform-card[data-v-019ac4ba]{background:var(--color-surface);border-radius:12px;border:1px solid var(--color-border);overflow:hidden;box-shadow:0 2px 4px #0000000d}.platform-header[data-v-019ac4ba]{display:flex;justify-content:space-between;align-items:center;padding:1rem;background:linear-gradient(135deg,var(--color-primary-container),var(--color-surface-variant));border-bottom:1px solid var(--color-border)}.platform-number[data-v-019ac4ba]{font-weight:600;font-size:1rem;color:var(--color-primary)}.platform-status[data-v-019ac4ba]{padding:.3rem .8rem;border-radius:20px;font-size:.8rem;font-weight:500}.platform-status.normal[data-v-019ac4ba]{background:#e8f5e8;color:#2e7d32}.platform-status.no-service[data-v-019ac4ba]{background:#ffebee;color:#c62828}.route-list[data-v-019ac4ba]{padding:1rem}.route-item[data-v-019ac4ba]{display:flex;justify-content:space-between;align-items:center;padding:.75rem 0;border-bottom:1px solid var(--color-border)}.route-item[data-v-019ac4ba]:last-child{border-bottom:none}.route-info[data-v-019ac4ba]{display:flex;align-items:center;gap:1rem;flex:1}.route-number[data-v-019ac4ba]{background:var(--color-primary);color:var(--color-on-primary);padding:.3rem .6rem;border-radius:6px;font-weight:600;font-size:.85rem;min-width:40px;text-align:center}.route-dest[data-v-019ac4ba]{font-weight:500;color:var(--color-text);flex:1}.train-cars[data-v-019ac4ba]{font-size:1.2rem}.arrival-time[data-v-019ac4ba]{text-align:right;display:flex;flex-direction:column;gap:.2rem}.time[data-v-019ac4ba]{font-weight:600;font-size:1rem;color:var(--color-primary)}.relative-time[data-v-019ac4ba]{font-size:.8rem;color:var(--color-text-secondary)}.no-service[data-v-019ac4ba]{display:flex;flex-direction:column;align-items:center;padding:2rem;color:var(--color-text-secondary)}.no-service-text[data-v-019ac4ba]{text-align:center;line-height:1.4}.route-info-section[data-v-019ac4ba]{padding:1rem;text-align:center}.route-info-toggle[data-v-019ac4ba]{display:inline-flex;align-items:center;gap:.5rem;padding:.75rem 1.5rem;border:1px solid var(--color-primary);border-radius:25px;background:transparent;color:var(--color-primary);cursor:pointer;transition:all .2s ease;font-weight:500;font-size:1rem}.route-info-toggle[data-v-019ac4ba]:hover{background:var(--color-primary);color:var(--color-on-primary)}.route-icon[data-v-019ac4ba]{width:18px;height:18px;fill:currentColor}.route-info-window[data-v-019ac4ba]{position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);background:var(--color-surface);border-radius:16px;box-shadow:0 8px 32px #00000026;border:1px solid var(--color-border);z-index:1000;max-width:90vw;max-height:80vh;width:400px;overflow:hidden}.route-info-header[data-v-019ac4ba]{display:flex;justify-content:space-between;align-items:center;padding:1rem 1.5rem;background:linear-gradient(135deg,var(--color-primary-container),var(--color-surface-variant));border-bottom:1px solid var(--color-border)}.route-info-header h3[data-v-019ac4ba]{margin:0;font-size:1.2rem;font-weight:600;color:var(--color-primary)}.close-button[data-v-019ac4ba]{background:none;border:none;font-size:1.5rem;cursor:pointer;color:var(--color-text-secondary);padding:0;width:30px;height:30px;display:flex;align-items:center;justify-content:center;border-radius:50%;transition:all .2s ease}.close-button[data-v-019ac4ba]:hover{background:var(--color-error);color:#fff}.route-info-content[data-v-019ac4ba]{padding:1rem;max-height:60vh;overflow-y:auto}.routes-list[data-v-019ac4ba]{display:flex;flex-direction:column;gap:1rem}.route-info-card[data-v-019ac4ba]{border:1px solid var(--color-border);border-radius:12px;padding:1rem;background:var(--color-surface-variant);transition:all .2s ease}.route-info-card[data-v-019ac4ba]:hover{transform:translateY(-1px);box-shadow:0 2px 8px #0000001a}.route-header[data-v-019ac4ba]{display:flex;align-items:center;gap:.75rem;margin-bottom:.75rem}.route-badge[data-v-019ac4ba]{color:#fff;padding:.4rem .8rem;border-radius:8px;font-weight:700;font-size:.9rem;min-width:50px;text-align:center;box-shadow:0 2px 4px #0003}.route-name[data-v-019ac4ba]{font-weight:600;font-size:1.1rem;color:var(--color-text)}.route-details[data-v-019ac4ba]{display:flex;flex-direction:column;gap:.5rem}.stations-count[data-v-019ac4ba]{font-size:.85rem;color:var(--color-text-secondary);font-weight:500}.stations-preview[data-v-019ac4ba]{font-size:.8rem;color:var(--color-text-secondary);line-height:1.4}.no-routes[data-v-019ac4ba]{display:flex;flex-direction:column;align-items:center;padding:2rem;color:var(--color-text-secondary)}.no-routes-icon[data-v-019ac4ba]{font-size:3rem;margin-bottom:1rem}.no-routes-text[data-v-019ac4ba]{text-align:center;font-size:1rem}.loading-overlay[data-v-019ac4ba]{position:fixed;top:0;left:0;right:0;bottom:0;background:#00000080;display:flex;flex-direction:column;align-items:center;justify-content:center;z-index:1000}.loading-spinner[data-v-019ac4ba]{width:40px;height:40px;border:4px solid var(--color-surface);border-top:4px solid var(--color-primary);border-radius:50%;animation:spin-019ac4ba 1s linear infinite}.loading-text[data-v-019ac4ba]{color:#fff;margin-top:1rem;font-weight:500;font-size:1rem}.error-message[data-v-019ac4ba]{display:flex;flex-direction:column;align-items:center;padding:2rem;text-align:center;color:var(--color-error)}.error-icon[data-v-019ac4ba]{font-size:3rem;margin-bottom:1rem}.error-text[data-v-019ac4ba]{margin-bottom:1rem;line-height:1.5;font-size:1rem}.retry-button[data-v-019ac4ba]{padding:.75rem 1.5rem;border:1px solid var(--color-error);border-radius:8px;background:transparent;color:var(--color-error);cursor:pointer;font-weight:500;font-size:1rem}.retry-button[data-v-019ac4ba]:hover{background:var(--color-error);color:#fff}.update-info[data-v-019ac4ba]{padding:1rem;text-align:center}.update-text[data-v-019ac4ba]{font-size:.9rem;color:var(--color-text-secondary);border-top:1px solid var(--color-border);padding-top:1rem}.station-mini-window[data-v-019ac4ba]{position:fixed;top:0;left:0;right:0;bottom:0;z-index:2000;display:flex;align-items:center;justify-content:center;padding:1rem}.mini-window-overlay[data-v-019ac4ba]{position:absolute;top:0;left:0;right:0;bottom:0;background:#0009;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.mini-window-content[data-v-019ac4ba]{position:relative;background:var(--color-surface);border-radius:20px;box-shadow:0 20px 40px #0000004d;width:100%;max-width:480px;max-height:90vh;overflow:hidden;border:1px solid var(--color-border);display:flex;flex-direction:column}.mini-window-header[data-v-019ac4ba]{display:flex;align-items:center;justify-content:space-between;padding:1.5rem;background:linear-gradient(135deg,var(--color-primary-container),var(--color-surface-variant));border-bottom:1px solid var(--color-border)}.station-info[data-v-019ac4ba]{display:flex;align-items:center;gap:1rem}.station-info .station-code[data-v-019ac4ba]{background:var(--color-primary);color:var(--color-on-primary);padding:.5rem .75rem;border-radius:8px;font-weight:700;font-size:1rem}.station-info .station-name .zh[data-v-019ac4ba]{font-size:1.2rem;font-weight:600;color:var(--color-text)}.station-info .station-name .en[data-v-019ac4ba]{font-size:.95rem;color:var(--color-text-secondary);margin-top:.2rem}.header-buttons[data-v-019ac4ba]{display:flex;align-items:center;gap:.5rem}.mini-home-button[data-v-019ac4ba],.mini-close-button[data-v-019ac4ba]{background:var(--color-surface);border:1px solid var(--color-border);border-radius:50%;width:36px;height:36px;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all .2s ease;color:var(--color-text-secondary)}.mini-home-button[data-v-019ac4ba]:hover{background:var(--color-primary);color:#fff;border-color:var(--color-primary);transform:scale(1.1)}.mini-close-button[data-v-019ac4ba]:hover{background:var(--color-error);color:#fff;border-color:var(--color-error);transform:scale(1.1)}.home-icon[data-v-019ac4ba],.close-icon[data-v-019ac4ba]{width:18px;height:18px;fill:currentColor}.mini-window-body[data-v-019ac4ba]{flex:1;overflow:hidden;display:flex;flex-direction:column}.platform-tabs[data-v-019ac4ba]{display:flex;background:var(--color-surface-variant);border-bottom:1px solid var(--color-border);overflow-x:auto}.platform-tab[data-v-019ac4ba]{padding:.75rem 1rem;border:none;background:transparent;color:var(--color-text-secondary);cursor:pointer;font-weight:500;font-size:.9rem;transition:all .2s ease;white-space:nowrap;border-bottom:3px solid transparent;min-width:fit-content;text-align:center}.platform-tab[data-v-019ac4ba]:hover{background:var(--color-surface);color:var(--color-text)}.platform-tab.active[data-v-019ac4ba]{background:var(--color-surface);color:var(--color-primary);border-bottom-color:var(--color-primary);font-weight:600}.platform-content[data-v-019ac4ba]{flex:1;overflow-y:auto;padding:1rem}.platform-status-bar[data-v-019ac4ba]{display:flex;align-items:center;gap:.5rem;margin-bottom:1rem;padding:.75rem;background:var(--color-surface-variant);border-radius:8px}.status-indicator[data-v-019ac4ba]{width:12px;height:12px;border-radius:50%;background:var(--color-success)}.status-indicator.no-service[data-v-019ac4ba]{background:#ffebee}.status-text[data-v-019ac4ba]{font-weight:500;font-size:1rem}.route-schedule[data-v-019ac4ba]{display:flex;flex-direction:column;gap:.5rem}.mini-route-item[data-v-019ac4ba]{display:flex;align-items:center;gap:1rem;padding:.75rem;background:var(--color-surface);border:1px solid var(--color-border);border-radius:8px;transition:all .2s ease}.mini-route-item[data-v-019ac4ba]:hover{border-color:var(--color-primary);transform:translateY(-1px);box-shadow:0 2px 8px #0000001a}.route-badge[data-v-019ac4ba]{color:#fff;padding:.4rem .6rem;border-radius:6px;font-weight:700;font-size:.9rem;min-width:40px;text-align:center;box-shadow:0 2px 4px #0003}.route-destination[data-v-019ac4ba]{flex:1;display:flex;flex-direction:column;gap:.2rem}.dest-text[data-v-019ac4ba]{font-size:1rem;font-weight:500;color:var(--color-text)}.train-info[data-v-019ac4ba]{display:flex;align-items:center;gap:.5rem}.cars-indicator[data-v-019ac4ba]{font-size:.8rem}.arrival-info[data-v-019ac4ba]{text-align:right;display:flex;flex-direction:column;gap:.2rem}.arrival-time[data-v-019ac4ba]{font-size:1.1rem;font-weight:600;color:var(--color-primary)}.countdown[data-v-019ac4ba]{font-size:.9rem;color:var(--color-text-secondary)}.no-service-mini[data-v-019ac4ba]{display:flex;flex-direction:column;align-items:center;padding:2rem;color:var(--color-text-secondary)}.no-service-icon[data-v-019ac4ba]{font-size:2rem;margin-bottom:.5rem}.no-service-message[data-v-019ac4ba]{text-align:center;font-size:1rem}.more-trains[data-v-019ac4ba]{text-align:center;padding:.75rem;font-size:.95rem;color:var(--color-text-secondary);background:var(--color-surface-variant);border-radius:8px;margin-top:.5rem}.mini-window-footer[data-v-019ac4ba]{display:flex;align-items:center;justify-content:space-between;padding:1rem 1.5rem;background:var(--color-surface-variant);border-top:1px solid var(--color-border)}.last-update-mini[data-v-019ac4ba]{font-size:.9rem;color:var(--color-text-secondary)}.refresh-mini-button[data-v-019ac4ba]{background:var(--color-primary-container);border:1px solid var(--color-primary);border-radius:50%;width:36px;height:36px;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all .2s ease;color:var(--color-primary)}.refresh-mini-button[data-v-019ac4ba]:hover:not(:disabled){background:var(--color-primary);color:var(--color-on-primary);transform:scale(1.1)}.refresh-mini-button[data-v-019ac4ba]:disabled{opacity:.5;cursor:not-allowed}.refresh-mini-icon[data-v-019ac4ba]{width:18px;height:18px;fill:currentColor;transition:transform .2s ease}.refresh-mini-icon.spinning[data-v-019ac4ba]{animation:spin-019ac4ba 1s linear infinite}.timetable-header[data-v-019ac4ba]{display:flex;align-items:center;justify-content:space-between;margin:1.5rem 1rem 1rem}.timetable-header .section-title[data-v-019ac4ba]{margin:0;flex:1}.mini-view-button[data-v-019ac4ba]{display:flex;align-items:center;gap:.5rem;padding:.5rem 1rem;border:1px solid var(--color-primary);border-radius:20px;background:var(--color-primary-container);color:var(--color-primary);cursor:pointer;font-size:.85rem;font-weight:500;transition:all .2s ease}.mini-view-button[data-v-019ac4ba]:hover{background:var(--color-primary);color:var(--color-on-primary);transform:translateY(-1px);box-shadow:0 2px 8px #0000001a}.mini-view-icon[data-v-019ac4ba]{width:16px;height:16px;fill:currentColor}[data-theme=dark][data-v-019ac4ba]{color-scheme:dark}[data-theme=dark] .light-rail-app[data-v-019ac4ba]{background:var(--color-background);color:var(--color-text)}[data-theme=dark] .header[data-v-019ac4ba]{background:linear-gradient(135deg,#1a1a1a,#2d2d2d);border-bottom-color:var(--color-border);box-shadow:0 2px 8px #0000004d}[data-theme=dark] .title[data-v-019ac4ba]{color:var(--color-text);text-shadow:0 1px 2px rgba(0,0,0,.3)}[data-theme=dark] .back-button[data-v-019ac4ba],[data-theme=dark] .refresh-button[data-v-019ac4ba]{background:var(--color-surface);border-color:var(--color-border);color:var(--color-text)}[data-theme=dark] .back-button[data-v-019ac4ba]:hover,[data-theme=dark] .refresh-button[data-v-019ac4ba]:hover{background:var(--color-hover);border-color:var(--color-primary);transform:scale(1.05)}[data-theme=dark] .region-button[data-v-019ac4ba]{background:var(--color-surface);border-color:var(--color-border);color:var(--color-text);box-shadow:0 1px 2px #0003}[data-theme=dark] .region-button[data-v-019ac4ba]:hover{background:var(--color-hover);border-color:var(--color-primary);transform:translateY(-1px);box-shadow:0 2px 6px #0000004d}[data-theme=dark] .region-button.active[data-v-019ac4ba]{background:linear-gradient(135deg,var(--color-primary) 0%,#5a6fd8 100%);border-color:var(--color-primary);box-shadow:0 2px 8px #7c92f74d}[data-theme=dark] .station-button[data-v-019ac4ba]{background:var(--color-surface);border-color:var(--color-border);color:var(--color-text);box-shadow:0 1px 2px #0003}[data-theme=dark] .station-button[data-v-019ac4ba]:hover{background:var(--color-hover);border-color:var(--color-border-light);transform:translateY(-1px);box-shadow:0 2px 6px #0000004d}[data-theme=dark] .station-button.active[data-v-019ac4ba]{background:linear-gradient(135deg,var(--color-primary) 0%,#5a6fd8 100%);border-color:var(--color-primary);color:var(--color-on-primary);box-shadow:0 2px 8px #7c92f766}[data-theme=dark] .mini-window-overlay[data-v-019ac4ba]{background:var(--color-overlay-bg);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}[data-theme=dark] .mini-window-content[data-v-019ac4ba]{background:var(--color-surface);border-color:var(--color-border-light);box-shadow:0 20px 40px #0009}[data-theme=dark] .mini-window-header[data-v-019ac4ba]{background:linear-gradient(135deg,var(--color-surface-container) 0%,var(--color-surface-variant) 100%);border-bottom-color:var(--color-border)}[data-theme=dark] .station-info .station-code[data-v-019ac4ba]{background:var(--color-primary);color:var(--color-on-primary);box-shadow:0 2px 6px #7c92f74d}[data-theme=dark] .mini-home-button[data-v-019ac4ba],[data-theme=dark] .mini-close-button[data-v-019ac4ba]{background:var(--color-surface-variant);border-color:var(--color-border);color:var(--color-text-secondary)}[data-theme=dark] .mini-home-button[data-v-019ac4ba]:hover{background:var(--color-primary);border-color:var(--color-primary);color:#fff}[data-theme=dark] .mini-close-button[data-v-019ac4ba]:hover{background:var(--color-error);border-color:var(--color-error);color:#fff}[data-theme=dark] .platform-tabs[data-v-019ac4ba]{background:var(--color-surface-variant);border-bottom-color:var(--color-border)}[data-theme=dark] .platform-tab[data-v-019ac4ba]{color:var(--color-text-secondary);background:transparent}[data-theme=dark] .platform-tab[data-v-019ac4ba]:hover{background:var(--color-hover);color:var(--color-text)}[data-theme=dark] .platform-tab.active[data-v-019ac4ba]{background:var(--color-surface);color:var(--color-primary);border-bottom-color:var(--color-primary);box-shadow:0 -2px 8px #0000001a}[data-theme=dark] .platform-status-bar[data-v-019ac4ba]{background:var(--color-surface-variant);border:1px solid var(--color-border);border-radius:8px}[data-theme=dark] .mini-route-item[data-v-019ac4ba]{background:var(--color-surface);border-color:var(--color-border)}[data-theme=dark] .mini-route-item[data-v-019ac4ba]:hover{background:var(--color-hover);border-color:var(--color-primary);box-shadow:0 2px 12px #0003}[data-theme=dark] .route-badge[data-v-019ac4ba]{box-shadow:0 2px 6px #0006;border:1px solid rgba(255,255,255,.1)}[data-theme=dark] .status-indicator[data-v-019ac4ba]{box-shadow:0 0 4px #34d39966}[data-theme=dark] .status-indicator.no-service[data-v-019ac4ba]{box-shadow:0 0 4px #f8717166}[data-theme=dark] .mini-window-footer[data-v-019ac4ba]{background:var(--color-surface-variant);border-top-color:var(--color-border)}[data-theme=dark] .refresh-mini-button[data-v-019ac4ba]{background:var(--color-primary-container);border-color:var(--color-primary);color:var(--color-primary)}[data-theme=dark] .refresh-mini-button[data-v-019ac4ba]:hover:not(:disabled){background:var(--color-primary);color:var(--color-on-primary);box-shadow:0 2px 8px #7c92f74d}[data-theme=dark] .loading-overlay[data-v-019ac4ba]{background:#000c}[data-theme=dark] .loading-spinner[data-v-019ac4ba]{border-color:var(--color-surface-variant);border-top-color:var(--color-primary)}[data-theme=dark] .error-message[data-v-019ac4ba]{color:var(--color-error)}[data-theme=dark] .retry-button[data-v-019ac4ba]{border-color:var(--color-error);color:var(--color-error);background:transparent}[data-theme=dark] .retry-button[data-v-019ac4ba]:hover{background:var(--color-error);color:#fff}[data-theme=dark] .no-service-mini[data-v-019ac4ba],[data-theme=dark] .no-service[data-v-019ac4ba]{color:var(--color-text-secondary)}[data-theme=dark] .no-routes[data-v-019ac4ba]{color:var(--color-text-tertiary)}[data-theme=dark] .route-info-window[data-v-019ac4ba]{background:var(--color-surface);border-color:var(--color-border-light);box-shadow:0 20px 40px #00000080}[data-theme=dark] .route-info-header[data-v-019ac4ba]{background:linear-gradient(135deg,var(--color-surface-container) 0%,var(--color-surface-variant) 100%);border-bottom-color:var(--color-border)}[data-theme=dark] .route-info-card[data-v-019ac4ba]{background:var(--color-surface-variant);border-color:var(--color-border)}[data-theme=dark] .route-info-card[data-v-019ac4ba]:hover{background:var(--color-hover);box-shadow:0 4px 16px #0003}[data-theme=dark] .platform-content[data-v-019ac4ba]::-webkit-scrollbar,[data-theme=dark] .route-info-content[data-v-019ac4ba]::-webkit-scrollbar{width:6px}[data-theme=dark] .platform-content[data-v-019ac4ba]::-webkit-scrollbar-track,[data-theme=dark] .route-info-content[data-v-019ac4ba]::-webkit-scrollbar-track{background:var(--color-surface-variant);border-radius:3px}[data-theme=dark] .platform-content[data-v-019ac4ba]::-webkit-scrollbar-thumb,[data-theme=dark] .route-info-content[data-v-019ac4ba]::-webkit-scrollbar-thumb{background:var(--color-border);border-radius:3px}[data-theme=dark] .platform-content[data-v-019ac4ba]::-webkit-scrollbar-thumb:hover,[data-theme=dark] .route-info-content[data-v-019ac4ba]::-webkit-scrollbar-thumb:hover{background:var(--color-border-light)}[data-theme=dark][data-v-019ac4ba] ::selection{background:#7c92f74d;color:var(--color-text)}[data-theme=dark] .region-button[data-v-019ac4ba]:focus,[data-theme=dark] .station-button[data-v-019ac4ba]:focus,[data-theme=dark] .platform-tab[data-v-019ac4ba]:focus,[data-theme=dark] .mini-close-button[data-v-019ac4ba]:focus,[data-theme=dark] .refresh-mini-button[data-v-019ac4ba]:focus{outline:2px solid var(--color-focus);outline-offset:2px}[data-theme=dark] .arrival-time[data-v-019ac4ba]{color:var(--color-primary);font-weight:700}[data-theme=dark] .countdown[data-v-019ac4ba]{color:var(--color-text-secondary);font-weight:500}[data-theme=dark] .dest-text[data-v-019ac4ba],[data-theme=dark] .station-name .zh[data-v-019ac4ba]{color:var(--color-text);font-weight:600}[data-theme=dark] .station-name .en[data-v-019ac4ba]{color:var(--color-text-secondary);font-weight:500}[data-theme=dark] .more-trains[data-v-019ac4ba]{background:var(--color-surface-container);color:var(--color-text-secondary);border:1px solid var(--color-border)}[data-theme=dark] .update-text[data-v-019ac4ba]{color:var(--color-text-tertiary);border-top-color:var(--color-border)}[data-theme=dark] .section-title[data-v-019ac4ba]{color:var(--color-text);text-shadow:0 1px 2px rgba(0,0,0,.2)}[data-theme=dark] .route-info-toggle[data-v-019ac4ba]{border-color:var(--color-primary);color:var(--color-primary);background:transparent}[data-theme=dark] .route-info-toggle[data-v-019ac4ba]:hover{background:var(--color-primary);color:var(--color-on-primary);box-shadow:0 2px 8px #7c92f74d}[data-theme=dark] .mini-view-button[data-v-019ac4ba]{background:var(--color-primary-container);border-color:var(--color-primary);color:var(--color-primary)}[data-theme=dark] .mini-view-button[data-v-019ac4ba]:hover{background:var(--color-primary);color:var(--color-on-primary);box-shadow:0 2px 8px #0003}.mtr-app[data-v-ebfb2327]{min-height:100vh;background:var(--color-background, #f5f5f7);display:flex;flex-direction:column;align-items:center;padding:8px;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;transition:background-color .3s ease}.mtr-container[data-v-ebfb2327]{width:100%;max-width:430px;margin:0 auto;background:var(--color-surface, #fff);border-radius:16px;box-shadow:0 4px 20px #00000014;overflow:hidden;transition:background-color .3s ease,box-shadow .3s ease}[data-theme=dark] .mtr-container[data-v-ebfb2327]{box-shadow:0 4px 20px #0000004d}.mtr-header[data-v-ebfb2327]{display:flex;align-items:center;justify-content:space-between;padding:16px 20px;background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;position:sticky;top:0;z-index:10}.back-btn[data-v-ebfb2327],.refresh-btn[data-v-ebfb2327],.lang-btn[data-v-ebfb2327]{background:#ffffff2e;border:none;color:#fff;font-size:clamp(.85rem,3vw,1rem);padding:7px 11px;border-radius:8px;cursor:pointer;transition:background .15s;line-height:1}.back-btn[data-v-ebfb2327]:hover,.refresh-btn[data-v-ebfb2327]:hover,.lang-btn[data-v-ebfb2327]:hover{background:#ffffff4d}.refresh-btn[data-v-ebfb2327]:disabled{opacity:.5;cursor:not-allowed}.refresh-btn.spinning[data-v-ebfb2327]{animation:spin-ebfb2327 .8s linear infinite}@keyframes spin-ebfb2327{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.lang-btn[data-v-ebfb2327]{font-size:clamp(.68rem,2.5vw,.8rem);font-weight:700;padding:6px 9px;min-width:32px;letter-spacing:.04em}.toggle-switch[data-v-ebfb2327]{font-size:.72rem;font-weight:700;padding:3px 8px;border-radius:20px;background:var(--color-border, #e4e4e7);color:var(--color-text-secondary, #71717a);letter-spacing:.05em;transition:background .25s,color .25s;white-space:nowrap}.toggle-switch.on[data-v-ebfb2327]{background:#22c55e;color:#fff}.offline-banner[data-v-ebfb2327]{background:#f97316;color:#fff;font-size:.85rem;font-weight:600;text-align:center;padding:6px 12px;animation:fadeIn-ebfb2327 .3s ease}.mtr-title[data-v-ebfb2327]{font-weight:600;font-size:clamp(.9rem,4vw,1.1rem);text-align:center;flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;padding:0 4px}.mtr-line-selector[data-v-ebfb2327]{padding:6px 10px 8px;background:var(--color-tableHeader, #f8f9fa);border-bottom:1px solid var(--color-border, #e9ecef)}.chips[data-v-ebfb2327]{display:flex;flex-wrap:wrap;gap:5px;margin-top:5px;justify-content:center}.chip[data-v-ebfb2327]{border-radius:20px;padding:clamp(3px,1vw,5px) clamp(7px,2vw,12px);font-size:clamp(.6rem,2.2vw,.72rem);font-weight:600;border:1.5px solid currentColor;cursor:pointer;transition:opacity .15s,transform .15s;background:transparent;min-width:0;text-align:center;white-space:nowrap}.chip[data-v-ebfb2327]:hover{opacity:.85}.chip.selected[data-v-ebfb2327]{font-weight:700;transform:scale(1.06);box-shadow:0 2px 8px #0000001f}.direction-toggle[data-v-ebfb2327]{display:flex;margin:12px 16px;background:var(--color-surface-variant, #f1f3f4);border-radius:10px;padding:3px}.direction-toggle button[data-v-ebfb2327]{flex:1;border:none;border-radius:7px;padding:clamp(8px,2vw,11px) 8px;font-size:clamp(.78rem,3vw,.9rem);font-weight:600;background:transparent;cursor:pointer;transition:background .2s,color .2s;color:var(--color-text-secondary, #5f6368);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.direction-toggle button.active[data-v-ebfb2327]{background:var(--color-primary, #1a73e8);color:#fff;box-shadow:0 1px 6px #0000002e}.mtr-table-wrapper[data-v-ebfb2327]{margin:0 16px 16px;border-radius:10px;overflow:hidden;box-shadow:0 1px 6px #0000000d}.mtr-table[data-v-ebfb2327]{width:100%;border-collapse:collapse;background:var(--color-surface, #fff);font-size:clamp(.75rem,3vw,.88rem)}.mtr-table th[data-v-ebfb2327]{background:var(--color-tableHeader, #f8f9fa);padding:clamp(7px,2vw,10px) clamp(4px,1.5vw,8px);text-align:center;font-weight:600;font-size:clamp(.72rem,2.5vw,.82rem);color:var(--color-text, #495057);border-bottom:1px solid var(--color-border, #e9ecef);position:sticky;top:0;z-index:5}.mtr-table td[data-v-ebfb2327]{padding:clamp(7px,2vw,10px) clamp(3px,1.2vw,7px);text-align:center;border-bottom:1px solid var(--color-border, #f1f3f4);vertical-align:middle;color:var(--color-text, #000)}.mtr-table tbody tr[data-v-ebfb2327]:hover{background:var(--color-tableHeader, #f8f9fa)}.station-name[data-v-ebfb2327]{font-weight:600;text-align:left!important;color:var(--color-text, #495057);font-size:clamp(.7rem,2.8vw,.84rem);word-break:break-word;max-width:min(28vw,120px)}.eta-time[data-v-ebfb2327]{font-weight:700;font-size:clamp(.76rem,3vw,.9rem);color:var(--color-primary, #1a73e8);margin-bottom:1px}.eta-dest[data-v-ebfb2327]{font-size:clamp(.64rem,2.2vw,.75rem);color:var(--color-text-secondary, #6c757d);font-weight:500}.error[data-v-ebfb2327]{display:flex;flex-direction:column;align-items:center;gap:12px;margin:32px 20px;padding:24px;background:#f8d7da4d;border:2px solid rgba(220,53,69,.3);border-radius:12px;animation:fadeIn-ebfb2327 .3s ease}.error-icon[data-v-ebfb2327]{font-size:3rem;animation:shake-ebfb2327 .5s ease}.error-content[data-v-ebfb2327]{text-align:center}.error-title[data-v-ebfb2327]{font-size:1.1rem;font-weight:700;color:var(--color-error, #dc3545);margin-bottom:8px}.error-message[data-v-ebfb2327]{font-size:.95rem;color:var(--color-text-secondary, #6c757d);line-height:1.5}.retry-btn[data-v-ebfb2327]{display:flex;align-items:center;gap:8px;padding:10px 20px;background:var(--color-error, #dc3545);color:#fff;border:none;border-radius:8px;font-size:1rem;font-weight:600;cursor:pointer;transition:all .2s ease}.retry-btn[data-v-ebfb2327]:hover{background:#c82333;transform:translateY(-2px);box-shadow:0 4px 12px #dc35454d}.retry-icon[data-v-ebfb2327]{font-size:1.2rem}.empty-state[data-v-ebfb2327]{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:48px 24px;margin:20px;text-align:center;animation:fadeIn-ebfb2327 .5s ease}.empty-icon[data-v-ebfb2327]{font-size:4rem;margin-bottom:16px;animation:float-ebfb2327 3s ease-in-out infinite}.empty-title[data-v-ebfb2327]{font-size:1.3rem;font-weight:700;color:var(--color-text, #343a40);margin:0 0 8px}.empty-message[data-v-ebfb2327]{font-size:1rem;color:var(--color-text-secondary, #6c757d);margin:0 0 24px}.reload-btn[data-v-ebfb2327]{display:flex;align-items:center;gap:8px;padding:12px 24px;background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;border:none;border-radius:10px;font-size:1rem;font-weight:600;cursor:pointer;transition:all .3s ease;box-shadow:0 4px 15px #667eea4d}.reload-btn[data-v-ebfb2327]:hover{transform:translateY(-2px);box-shadow:0 6px 20px #667eea66}.reload-icon[data-v-ebfb2327]{font-size:1.3rem}.skeleton[data-v-ebfb2327]{background:linear-gradient(90deg,#f0f0f0 25%,#e0e0e0,#f0f0f0 75%);background-size:200% 100%;animation:loading-ebfb2327 1.5s ease-in-out infinite;border-radius:4px}.skeleton-line[data-v-ebfb2327]{height:16px;width:80%;margin:0 auto}.skeleton-box[data-v-ebfb2327]{height:40px;width:90%;margin:0 auto}@keyframes fadeIn-ebfb2327{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}@keyframes shake-ebfb2327{0%,to{transform:translate(0)}25%{transform:translate(-10px)}75%{transform:translate(10px)}}@keyframes float-ebfb2327{0%,to{transform:translateY(0)}50%{transform:translateY(-10px)}}@keyframes loading-ebfb2327{0%{background-position:200% 0}to{background-position:-200% 0}}[data-theme=dark] .skeleton[data-v-ebfb2327]{background:linear-gradient(90deg,#2a2a2a 25%,#3a3a3a,#2a2a2a 75%);background-size:200% 100%}.app-title-section[data-v-ebfb2327]{margin:4px 16px 12px;padding:4px 10px;text-align:center;border-radius:6px;border:1px solid var(--color-border, #e9ecef)}.app-title-small[data-v-ebfb2327]{font-size:clamp(9px,2vw,11px);font-weight:500;color:var(--color-text-secondary, #6c757d)}@media (max-width: 480px){.mtr-app[data-v-ebfb2327]{padding:4px}.mtr-container[data-v-ebfb2327]{border-radius:12px}.mtr-header[data-v-ebfb2327]{padding:12px 16px}.mtr-title[data-v-ebfb2327]{font-size:clamp(.85rem,4vw,1rem)}.chip[data-v-ebfb2327]{gap:4px}.mtr-table-wrapper[data-v-ebfb2327]{margin:0 10px 14px}}[data-theme=dark] .mtr-app[data-v-ebfb2327]{background:var(--color-background);color:var(--color-text)}[data-theme=dark] .mtr-container[data-v-ebfb2327]{background:var(--color-surface);border-color:var(--color-border);box-shadow:0 8px 32px #0000004d}[data-theme=dark] .mtr-header[data-v-ebfb2327]{background:linear-gradient(135deg,var(--color-surface) 0%,var(--color-surface-variant) 100%);border-bottom-color:var(--color-border)}[data-theme=dark] .mtr-title[data-v-ebfb2327]{color:var(--color-text)}[data-theme=dark] .mtr-line-selector[data-v-ebfb2327]{background:var(--color-surface);border-color:var(--color-border)}[data-theme=dark] .chip[data-v-ebfb2327]{background:var(--color-surface-variant)!important;color:var(--color-text)!important;border-color:var(--color-border)!important}[data-theme=dark] .chip.selected[data-v-ebfb2327]{background:var(--color-primary)!important;color:var(--color-on-primary)!important;border-color:var(--color-primary)!important}[data-theme=dark] .chip[data-v-ebfb2327]:hover{background:var(--color-primary-container)!important}[data-theme=dark] .direction-toggle[data-v-ebfb2327]{background:var(--color-surface)}[data-theme=dark] .direction-toggle button[data-v-ebfb2327]{background:var(--color-surface-variant);color:var(--color-text);border-color:var(--color-border)}[data-theme=dark] .direction-toggle button.active[data-v-ebfb2327]{background:var(--color-primary);color:var(--color-on-primary)}[data-theme=dark] .mtr-table-wrapper[data-v-ebfb2327]{box-shadow:0 4px 20px #0003}[data-theme=dark] .mtr-table[data-v-ebfb2327]{background:var(--color-surface);color:var(--color-text)}[data-theme=dark] .mtr-table th[data-v-ebfb2327]{background:var(--color-surface-variant);color:var(--color-text);border-bottom-color:var(--color-border)}[data-theme=dark] .mtr-table td[data-v-ebfb2327]{color:var(--color-text);border-bottom-color:var(--color-border)}[data-theme=dark] .mtr-table tbody tr[data-v-ebfb2327]:hover{background:var(--color-surface-variant)}[data-theme=dark] .station-name[data-v-ebfb2327]{color:var(--color-text)}[data-theme=dark] .eta-time[data-v-ebfb2327]{color:var(--color-primary)}[data-theme=dark] .eta-dest[data-v-ebfb2327]{color:var(--color-text-secondary)}[data-theme=dark] .error[data-v-ebfb2327]{background:#ef444426;border-color:#ef444466}[data-theme=dark] .error-title[data-v-ebfb2327]{color:#ff6b6b}[data-theme=dark] .retry-btn[data-v-ebfb2327]{background:#c82333}[data-theme=dark] .retry-btn[data-v-ebfb2327]:hover{background:#bd2130}[data-theme=dark] .empty-state[data-v-ebfb2327],[data-theme=dark] .empty-title[data-v-ebfb2327]{color:var(--color-text)}[data-theme=dark] .reload-btn[data-v-ebfb2327]{background:linear-gradient(135deg,var(--color-primary) 0%,#5a6fd8 100%)}[data-theme=dark] .app-title-section[data-v-ebfb2327]{border-color:var(--color-border)}[data-theme=dark] .app-title-small[data-v-ebfb2327]{color:var(--color-text-secondary)}[data-theme=dark] .offline-banner[data-v-ebfb2327]{background:#c2410c}[data-theme=dark] .back-btn[data-v-ebfb2327],[data-theme=dark] .refresh-btn[data-v-ebfb2327],[data-theme=dark] .lang-btn[data-v-ebfb2327]{background:var(--color-surface-variant);color:var(--color-text);border:1px solid var(--color-border)}[data-theme=dark] .back-btn[data-v-ebfb2327]:hover,[data-theme=dark] .refresh-btn[data-v-ebfb2327]:hover,[data-theme=dark] .lang-btn[data-v-ebfb2327]:hover{background:var(--color-primary);color:var(--color-on-primary)}.settings-page[data-v-5a99d3ff]{padding:20px 16px 100px;min-height:100vh;background:var(--color-background);color:var(--color-text)}.settings-header[data-v-5a99d3ff]{margin-bottom:24px;padding-top:8px}.settings-title[data-v-5a99d3ff]{margin:0;font-size:clamp(1.2rem,5vw,1.5rem);font-weight:700;color:var(--color-text)}.section-label[data-v-5a99d3ff]{font-size:.72rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--color-text-secondary);margin:0 4px 8px}.card[data-v-5a99d3ff]{background:var(--color-surface);border:1px solid var(--color-border);border-radius:14px;overflow:hidden;margin-bottom:24px}.setting-row[data-v-5a99d3ff]{display:flex;align-items:center;gap:14px;padding:14px 16px;cursor:pointer;transition:background .15s}.setting-row[data-v-5a99d3ff]:active{background:var(--color-surface-variant)}.row-icon[data-v-5a99d3ff]{font-size:1.3rem;min-width:26px;text-align:center}.row-content[data-v-5a99d3ff]{flex:1}.row-title[data-v-5a99d3ff]{font-size:.95rem;font-weight:600;color:var(--color-text)}.row-sub[data-v-5a99d3ff]{font-size:.78rem;color:var(--color-text-secondary);margin-top:2px}.toggle-pill[data-v-5a99d3ff]{padding:4px 10px;border-radius:20px;font-size:.72rem;font-weight:700;background:var(--color-border);color:var(--color-text-secondary);transition:background .2s,color .2s}.toggle-pill.on[data-v-5a99d3ff]{background:var(--color-primary);color:#fff}.about-card[data-v-5a99d3ff]{padding:24px 16px 20px;text-align:center}.app-logo[data-v-5a99d3ff]{font-size:2.5rem;margin-bottom:8px}.app-name[data-v-5a99d3ff]{margin:0 0 4px;font-size:1.3rem;font-weight:800;color:var(--color-text)}.app-tagline[data-v-5a99d3ff]{margin:0;font-size:.82rem;color:var(--color-text-secondary)}.app-tagline-en[data-v-5a99d3ff]{margin:2px 0 0;font-size:.78rem;color:var(--color-text-secondary)}.divider[data-v-5a99d3ff]{height:1px;background:var(--color-border);margin:16px 0}.info-row[data-v-5a99d3ff]{display:flex;justify-content:space-between;align-items:center;padding:6px 0;font-size:.85rem}.info-label[data-v-5a99d3ff]{color:var(--color-text-secondary)}.info-value[data-v-5a99d3ff]{font-weight:600;color:var(--color-text)}.info-link[data-v-5a99d3ff]{font-weight:600;color:var(--color-primary, #0070f3);text-decoration:none}.info-link[data-v-5a99d3ff]:hover{text-decoration:underline}.tech-badge[data-v-5a99d3ff]{display:inline-block;padding:2px 8px;border-radius:6px;font-size:.78rem;font-weight:700;color:#fff}.tech-badge.vue[data-v-5a99d3ff]{background:#42b883}.tech-badge.ts[data-v-5a99d3ff]{background:#3178c6}.tech-badge.vite[data-v-5a99d3ff]{background:#646cff}.tech-badge.cap[data-v-5a99d3ff]{background:#119eff}.footer[data-v-5a99d3ff]{text-align:center;font-size:.72rem;color:var(--color-text-secondary);margin:8px 0 0}.pwa-installed-row[data-v-5a99d3ff]{display:flex;align-items:center;gap:8px;padding:8px 0;font-size:.85rem;color:var(--color-text-secondary);justify-content:center}.pwa-check[data-v-5a99d3ff]{font-size:1rem}.pwa-install-row[data-v-5a99d3ff]{display:flex;align-items:center;gap:12px;width:100%;padding:10px 0;background:none;border:none;cursor:pointer;text-align:left;-webkit-tap-highlight-color:transparent}.pwa-install-row[data-v-5a99d3ff]:active{opacity:.7}.pwa-install-icon[data-v-5a99d3ff]{font-size:1.4rem;flex-shrink:0}.pwa-install-text[data-v-5a99d3ff]{flex:1;display:flex;flex-direction:column;gap:2px}.pwa-install-title[data-v-5a99d3ff]{font-size:.9rem;font-weight:700;color:var(--color-primary)}.pwa-install-sub[data-v-5a99d3ff]{font-size:.75rem;color:var(--color-text-secondary)}.pwa-install-arrow[data-v-5a99d3ff]{font-size:1.1rem;color:var(--color-text-secondary)}.ios-guide-wrap[data-v-5a99d3ff]{margin-top:4px;display:flex;flex-direction:column;gap:6px;text-align:left}.ios-guide-header[data-v-5a99d3ff]{font-size:.88rem;font-weight:700;color:var(--color-primary);margin-bottom:2px}.ios-step[data-v-5a99d3ff]{font-size:.82rem;color:var(--color-text-secondary);background:var(--color-surface-variant);border-radius:8px;padding:7px 10px;line-height:1.5}.settings-page[data-v-5a99d3ff]{max-width:480px;margin:0 auto;padding:24px 16px;background:var(--color-background);color:var(--color-text);min-height:100vh;transition:background-color .3s,color .3s}.settings-page h1[data-v-5a99d3ff]{color:var(--color-text);font-size:var(--font-size-title);margin-bottom:24px;font-weight:600}.setting-group[data-v-5a99d3ff]{margin-bottom:20px;font-size:var(--font-size-base);background:var(--color-surface);padding:16px;border-radius:12px;border:1px solid var(--color-border);transition:background-color .3s,border-color .3s}.setting-group label[data-v-5a99d3ff]{display:flex;align-items:center;gap:12px;cursor:pointer;color:var(--color-text);font-weight:500}.setting-group input[type=checkbox][data-v-5a99d3ff]{width:18px;height:18px;accent-color:var(--color-primary)}.app-info[data-v-5a99d3ff]{margin-top:40px;padding:24px 16px;text-align:center;background:var(--color-surface);border-radius:16px;border:1px solid var(--color-border);transition:background-color .3s,border-color .3s}.app-title[data-v-5a99d3ff]{font-size:32px;font-weight:700;color:var(--color-primary);margin:0 0 8px;background:linear-gradient(135deg,var(--color-primary),#0066cc);background-clip:text;-webkit-background-clip:text;-webkit-text-fill-color:transparent;text-shadow:0 2px 4px rgba(0,0,0,.1)}.app-subtitle[data-v-5a99d3ff]{font-size:20px;font-weight:600;color:var(--color-text);margin:0 0 16px;opacity:.9}.app-description[data-v-5a99d3ff]{font-size:16px;color:var(--color-text-secondary);margin:0 0 20px;line-height:1.5;font-weight:500}.app-version[data-v-5a99d3ff]{font-size:14px;color:var(--color-text-tertiary);font-weight:500;padding:8px 16px;background:var(--color-background);border-radius:8px;display:inline-block;border:1px solid var(--color-border)}[data-theme=dark] .settings-page[data-v-5a99d3ff]{background:var(--color-background);color:var(--color-text)}[data-theme=dark] .setting-group[data-v-5a99d3ff]{background:var(--color-surface);border-color:var(--color-border)}[data-theme=dark] .setting-group[data-v-5a99d3ff]:hover{background:var(--color-surface-variant);border-color:var(--color-primary)}[data-theme=dark] .app-info[data-v-5a99d3ff]{background:var(--color-surface);border-color:var(--color-border)}[data-theme=dark] .app-title[data-v-5a99d3ff]{background:linear-gradient(135deg,var(--color-primary),#4dabf7);background-clip:text;-webkit-background-clip:text;-webkit-text-fill-color:transparent}[data-theme=dark] .app-version[data-v-5a99d3ff]{background:var(--color-background);border-color:var(--color-border)}:root{--font-size-base: 16px;--font-size-table: 16px;--font-size-title: 20px;--font-size-eta-dest: 14px;--color-primary: #667eea;--color-primary-container: #e6f3ff;--color-on-primary: #fff;--color-surface: #fff;--color-surface-variant: #f5f5f7;--color-background: #f5f5f7;--color-text: #18181b;--color-text-secondary: #71717a;--color-textSecondary: #71717a;--color-border: #e4e4e7;--color-cardBorder: #e4e4e7;--color-tableHeader: #f8f9fa;--color-stationName: #e4e4e7;--color-success: #22c55e;--color-error: #ef4444;--color-warning: #f59e0b;--color-info: #3b82f6;--bottom-nav-height: 60px}[data-theme=dark]{--color-tableHeader: #262626;--color-textSecondary: #a1a1aa;--color-cardBorder: #525252;--color-stationName: #404040}body{margin:0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;background:var(--color-background);transition:background-color .3s,color .3s}*{box-sizing:border-box}[data-theme=dark] ::-webkit-scrollbar{width:8px;height:8px}[data-theme=dark] ::-webkit-scrollbar-track{background:#1a1a1a}[data-theme=dark] ::-webkit-scrollbar-thumb{background:#444;border-radius:4px}[data-theme=dark] ::-webkit-scrollbar-thumb:hover{background:#555}button:focus-visible,input:focus-visible,select:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px}.app-container{min-height:100vh;max-width:480px;margin:0 auto;background:var(--color-background);box-shadow:0 0 20px #0000001a;padding-bottom:var(--bottom-nav-height)}.app-container,.app-container *:not(button):not(a):not(input){transition:background-color .3s,color .3s,border-color .3s}.bottom-nav{position:fixed;bottom:0;left:50%;transform:translate(-50%);width:100%;max-width:480px;height:var(--bottom-nav-height);display:flex;background:var(--color-surface);border-top:1px solid var(--color-border);z-index:1000;box-shadow:0 -2px 12px #00000014}.nav-tab{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;background:none;border:none;cursor:pointer;padding:6px 0;color:var(--color-text-secondary);transition:color .2s;-webkit-tap-highlight-color:transparent}.nav-tab.active{color:var(--color-primary)}.nav-icon-svg{width:22px;height:22px;transition:transform .15s}.nav-tab.active .nav-icon-svg{transform:scale(1.1)}.nav-label{font-size:.65rem;font-weight:600;letter-spacing:.01em}[data-theme=dark] .bottom-nav{background:#1c1c1e;border-color:#2c2c2e;box-shadow:0 -2px 12px #0006}.pwa-install-btn{position:fixed;bottom:calc(var(--bottom-nav-height) + 12px);right:16px;z-index:999;display:flex;align-items:center;gap:6px;padding:10px 18px;background:var(--color-primary);color:#fff;border:none;border-radius:24px;font-size:.88rem;font-weight:700;cursor:pointer;box-shadow:0 4px 16px #667eea73;-webkit-tap-highlight-color:transparent;transition:transform .15s,box-shadow .15s}.pwa-install-btn:hover{transform:translateY(-2px);box-shadow:0 6px 20px #667eea8c}.pwa-install-btn:active{transform:scale(.96)}.pwa-icon{font-size:1rem}.pwa-label{letter-spacing:.02em}.pwa-fade-enter-active,.pwa-fade-leave-active{transition:opacity .3s,transform .3s}.pwa-fade-enter-from,.pwa-fade-leave-to{opacity:0;transform:translateY(12px)}.ios-install-sheet{position:fixed;bottom:calc(var(--bottom-nav-height) + 12px);left:50%;transform:translate(-50%);width:calc(100% - 32px);max-width:448px;z-index:999;background:var(--color-surface);border:1px solid var(--color-border);border-radius:20px;box-shadow:0 8px 32px #00000026;padding:20px 20px 18px}.ios-sheet-content{position:relative;text-align:center}.ios-dismiss{position:absolute;top:-4px;right:-4px;background:var(--color-surface-variant);border:none;border-radius:50%;width:28px;height:28px;font-size:.75rem;cursor:pointer;color:var(--color-text-secondary);display:flex;align-items:center;justify-content:center}.ios-sheet-icon{font-size:2rem;margin-bottom:6px}.ios-sheet-title{font-size:1rem;font-weight:700;color:var(--color-text);margin-bottom:12px}.ios-sheet-steps{display:flex;flex-direction:column;gap:8px;text-align:left}.ios-step{font-size:.88rem;color:var(--color-text-secondary);background:var(--color-surface-variant);border-radius:10px;padding:8px 12px;line-height:1.5}.ios-share-icon{display:inline-block;font-size:1rem;vertical-align:middle}.pwa-slide-enter-active,.pwa-slide-leave-active{transition:opacity .3s,transform .3s}.pwa-slide-enter-from,.pwa-slide-leave-to{opacity:0;transform:translate(-50%) translateY(16px)}[data-theme=dark] .pwa-install-btn{box-shadow:0 4px 16px #667eea4d}[data-theme=dark] .ios-install-sheet{background:#1c1c1e;border-color:#3a3a3c;box-shadow:0 8px 32px #00000080}
