:root{color-scheme:light;--tf-bg: #d7e4f2;--tf-header: rgba(255, 255, 255, .94);--tf-panel: rgba(255, 255, 255, .96);--tf-panel-solid: #ffffff;--tf-line: rgba(27, 36, 48, .14);--tf-navy: #0f4c81;--tf-navy-deep: #1b2430;--tf-gold: #c45c26;--tf-gold-soft: #f2c14e;--tf-ink: #1b2430;--tf-muted: #5c6777;--tf-danger: #b42318;--tf-focus: #0f4c81;--tf-shadow: 0 16px 40px rgba(27, 36, 48, .16);--tf-radius: 20px;--tf-font: "Segoe UI", "Helvetica Neue", Arial, sans-serif;--tf-display: "Iowan Old Style", Palatino, "Palatino Linotype", Georgia, serif;--tf-safe-top: env(safe-area-inset-top, 0px);--tf-safe-bottom: env(safe-area-inset-bottom, 0px);--tf-header-height: 52px;--tf-search-width: 360px;--tf-search-min-height: 48px;--tf-route-card-max: 132px;--tf-sheet-width: 400px;--tf-touch: 44px;--tf-body: 16px;--tf-z-map: 0;--tf-z-map-ctrl: 20;--tf-z-chrome: 30;--tf-z-popup: 40;--tf-z-sheet: 50;--tf-z-modal: 60;--tf-z-toast: 70}*,*:before,*:after{box-sizing:border-box}html,body,#root{margin:0;height:100%;height:100dvh;min-height:100dvh;overflow:hidden;background:var(--tf-bg);color:var(--tf-ink);font-family:var(--tf-font);font-size:var(--tf-body);line-height:1.45}body{min-inline-size:100%;max-inline-size:100%}button,input{font:inherit}a{color:var(--tf-navy)}:focus-visible{outline:3px solid var(--tf-focus);outline-offset:2px}.skip-link{position:absolute;inset-inline-start:1rem;inset-block-start:1rem;z-index:30;transform:translateY(-180%);padding:.65rem .9rem;border-radius:999px;background:var(--tf-navy);color:#fff;text-decoration:none}.skip-link:focus{transform:none}.app-shell{position:relative;height:100%;height:100dvh;min-height:100dvh;overflow:hidden}.map-shell,.map-root{position:absolute;inset:0;width:100%;height:100%;min-height:100%;z-index:var(--tf-z-map);background:var(--tf-bg);user-select:none;-webkit-user-select:none;-webkit-touch-callout:none}.map-root.maplibregl-map,.map-root .maplibregl-map{position:absolute;inset:0;width:100%;height:100%}.maplibregl-ctrl-attrib{font-size:.8rem;max-width:min(72vw,28rem);background:#ffffffeb;color:var(--tf-navy-deep)}.maplibregl-ctrl-bottom-left{margin:0 0 calc(10px + var(--tf-safe-bottom)) 10px}.maplibregl-ctrl-top-right{z-index:var(--tf-z-map-ctrl);margin:calc(var(--tf-safe-top) + 12px) 12px 0 0}.map-status,.map-fallback{position:absolute;inset:0;z-index:2;display:flex;align-items:center;justify-content:center;pointer-events:none;background:color-mix(in srgb,var(--tf-bg) 72%,transparent);color:var(--tf-navy-deep);font-size:1.15rem;font-weight:600}.map-fallback{pointer-events:auto;background:#d5e2ef;z-index:3}.map-fallback-card,.status-card{background:var(--tf-panel);border:1px solid var(--tf-line);border-radius:var(--tf-radius);box-shadow:var(--tf-shadow)}.map-fallback-card{width:min(28rem,calc(100% - 2rem));padding:1.4rem 1.5rem;text-align:center}.map-fallback-card h2,.status-card h2{margin:0 0 .5rem;font-size:1.35rem}.chrome{pointer-events:none;position:absolute;inset:0;z-index:var(--tf-z-chrome)}.brand-bar,.route-card,.map-panel,.map-panel-reopen,.sheet,.chip-rail,.legend-toggle,.legend-panel,.filter-sheet,.filter-sheet-backdrop,.results,.status-card,.airport-peek-card{pointer-events:auto}.brand-bar{display:flex;align-items:center;justify-content:space-between;gap:.65rem;position:absolute;inset-inline:12px;inset-block-start:calc(12px + var(--tf-safe-top));width:calc(100% - 24px);max-width:28rem;height:84px;min-height:84px;padding:0 .7rem 0 .75rem;background:var(--tf-header);border:1px solid var(--tf-line);border-radius:16px;box-shadow:0 8px 24px #1b243014}.brand{display:flex;align-items:center;gap:.75rem;min-inline-size:0;border:0;background:transparent;color:inherit;text-decoration:none;text-align:start;cursor:pointer;min-height:var(--tf-touch);padding:.15rem .2rem;border-radius:12px}.brand-mark{inline-size:72px;block-size:72px;flex:0 0 auto;object-fit:contain}.brand-name,.brand h1{margin:0;display:block;font-family:var(--tf-display);font-size:1.15rem;letter-spacing:.03em;color:var(--tf-navy-deep);font-weight:700}.brand p{display:none}.version-button{border:0;background:transparent;color:var(--tf-muted);border-radius:999px;min-height:var(--tf-touch);padding:.25rem .55rem;font-size:.72rem;cursor:pointer;opacity:.78}.search-dock{pointer-events:none;position:absolute;inset-block-start:calc(var(--tf-safe-top) + 12px + 84px + 8px);inset-inline:12px;width:auto;max-width:28rem;z-index:var(--tf-z-chrome)}.search-panel,.route-card{width:100%}.route-card{position:relative;background:var(--tf-panel-solid);border:1px solid var(--tf-line);border-radius:16px;box-shadow:var(--tf-shadow);overflow:visible}.route-rows{display:flex;flex-direction:column}.route-row{display:flex;align-items:center;gap:.45rem;min-height:48px;padding:0 .55rem 0 .7rem}.route-row--active{background:#0f4c810d}.route-row--disabled{opacity:.62}.route-row-icon{color:var(--tf-navy);display:inline-flex;flex:0 0 auto}.route-row-body{flex:1 1 auto;min-width:0}.route-row-divider{position:relative;height:1px;margin-inline:2.6rem .7rem;background:var(--tf-line)}.route-swap{position:absolute;inset-inline-end:.55rem;inset-block-start:50%;transform:translateY(-50%);width:40px;height:40px;min-width:var(--tf-touch);min-height:var(--tf-touch);border:1px solid var(--tf-line);border-radius:999px;background:#fff;color:var(--tf-navy);box-shadow:0 4px 12px #1b24301f;cursor:pointer}.route-swap:disabled{opacity:.35;cursor:default}.chip-rail{display:flex;gap:8px;margin-block-start:8px;overflow-x:auto;overflow-y:hidden;scrollbar-width:none;-webkit-overflow-scrolling:touch}.chip-rail::-webkit-scrollbar{display:none}.filter-chip{flex:0 0 auto;height:36px;min-height:36px;padding:0 .85rem;border:1px solid var(--tf-line);border-radius:999px;background:var(--tf-panel-solid);color:var(--tf-navy-deep);font-size:.88rem;font-weight:650;box-shadow:0 4px 12px #1b243014;cursor:pointer;white-space:nowrap}.filter-chip--active{background:var(--tf-navy);color:#fff;border-color:var(--tf-navy)}.filter-sheet-backdrop{position:absolute;inset:0;z-index:var(--tf-z-sheet);border:0;background:#1b243047}.filter-sheet{position:absolute;z-index:var(--tf-z-sheet);inset-inline:0;inset-block-end:0;max-height:78dvh;overflow:hidden;border-radius:22px 22px 0 0;background:var(--tf-panel-solid);border:1px solid var(--tf-line);box-shadow:var(--tf-shadow);padding:.45rem 1.15rem calc(1.15rem + var(--tf-safe-bottom))}.filter-sheet-head{display:flex;align-items:center;justify-content:space-between;gap:.75rem}.filter-sheet-head h2{margin:0;font-size:1.15rem}.filter-sheet-scroll{overflow:auto;overscroll-behavior:contain;max-height:calc(78dvh - 5rem)}.date-sheet,.filter-choice{display:grid;gap:.7rem}.filter-choice{min-height:var(--tf-touch);border:1px solid var(--tf-line);border-radius:12px;background:#fff;font-weight:650;cursor:pointer}.filter-choice--active{border-color:var(--tf-navy);background:#0f4c8114}.date-sheet label{display:grid;gap:.3rem;font-size:.88rem;color:var(--tf-muted)}.date-sheet input[type=date]{min-height:var(--tf-touch);border:1px solid var(--tf-line);border-radius:10px;padding:0 .6rem}.search-field{display:flex;align-items:center;gap:.55rem;min-height:var(--tf-search-min-height);padding:0 .45rem 0 .85rem;border:1px solid var(--tf-line);background:var(--tf-panel-solid);border-radius:16px;box-shadow:var(--tf-shadow)}.search-icon{color:var(--tf-navy);display:inline-flex;flex:0 0 auto}.route-row input,.search-panel input,.dest-filter{flex:1 1 auto;min-width:0;min-height:calc(var(--tf-search-min-height) - 4px);border:0;background:transparent;color:var(--tf-ink);font-size:16px;padding:.35rem .2rem}.route-row input:focus,.search-panel input:focus{outline:none}.search-panel input[type=search]::-webkit-search-cancel-button{-webkit-appearance:none;appearance:none}.search-field:focus-within{border-color:var(--tf-navy);box-shadow:0 0 0 3px #0f4c8138,var(--tf-shadow)}.route-row input::placeholder,.search-panel input::placeholder{color:var(--tf-muted)}.search-clear,.icon-button,.text-button{border:1px solid var(--tf-line);background:#fff;color:var(--tf-ink);cursor:pointer}.search-clear,.icon-button{border-radius:999px;min-inline-size:var(--tf-touch);min-block-size:var(--tf-touch);font-size:1.35rem;line-height:1}.text-button{margin-block-start:.75rem;border-radius:12px;min-height:var(--tf-touch);padding:.55rem 1rem;font-weight:600;background:var(--tf-navy);color:#fff;border-color:var(--tf-navy)}.journey-fields{display:grid;gap:.55rem}.journey-field label,.dest-filter-label{display:block;margin:0 0 .28rem;color:var(--tf-navy-deep);font-size:.78rem;font-weight:750;letter-spacing:.08em;text-transform:uppercase}.search-field--disabled{opacity:.62}.search-hint{margin:.55rem 0 0;color:var(--tf-navy-deep);font-size:.95rem;text-shadow:0 1px 0 rgba(255,255,255,.7)}.results{margin-block-start:.55rem;max-height:min(48dvh,26rem);overflow:auto;overflow-x:hidden;overscroll-behavior:contain;border-radius:var(--tf-radius);background:var(--tf-panel-solid);border:1px solid var(--tf-line);box-shadow:var(--tf-shadow)}.results button{display:flex;align-items:center;justify-content:space-between;gap:.85rem;width:100%;min-height:52px;text-align:start;border:0;border-block-end:1px solid rgba(27,36,48,.08);background:transparent;color:inherit;padding:.7rem 1rem;cursor:pointer}.results button:last-child{border-block-end:0}.results button[aria-selected=true],.results button:hover{background:#0f4c8114}.result-name{font-size:1.02rem;font-weight:650}.result-meta,.result-empty{color:var(--tf-muted);font-size:.95rem}.result-empty{margin:0;padding:1rem 1.1rem}.result-badges,.sheet-codes{display:flex;flex-wrap:wrap;gap:.35rem;flex:0 0 auto}.code-badge{display:inline-flex;align-items:center;justify-content:center;min-height:1.6rem;padding:.12rem .45rem;border-radius:999px;background:var(--tf-navy);color:#fff;font-size:.78rem;font-weight:700;letter-spacing:.04em}.code-badge--muted{background:#e8eef5;color:var(--tf-navy)}.code-badge--lg{min-height:1.4rem;padding:.08rem .4rem;font-size:.78rem}.status-card{margin-block-start:.7rem;width:100%;padding:.95rem 1.05rem;font-size:1rem}.status-card.error{color:var(--tf-danger)}.sheet,.diagnostics{background:var(--tf-panel-solid);border:1px solid var(--tf-line);box-shadow:var(--tf-shadow)}.sheet{position:absolute;z-index:var(--tf-z-sheet);display:flex;flex-direction:column;inset-inline:8px;inset-block-end:8px;width:auto;max-width:calc(100vw - 16px);max-height:min(52dvh,32rem);overflow:hidden;overflow-x:hidden;border-radius:16px;padding:.25rem .7rem calc(.55rem + var(--tf-safe-bottom));pointer-events:auto}.sheet--peek{max-height:min(34dvh,18rem)}.sheet--half{max-height:min(52dvh,32rem)}.sheet--full{max-height:min(92dvh,calc(100dvh - var(--tf-header-height) - var(--tf-safe-top) - 12px))}.sheet-completeness,.sheet-place,.sheet-code-line,.sheet-type{margin:.1rem 0 0;color:var(--tf-muted);font-size:.72rem;line-height:1.2}.sheet-place,.sheet-code-line,.sheet-type{font-size:.72rem}.sheet-official{margin:.15rem 0 0;font-size:.72rem;line-height:1.2}.sheet-official a{color:var(--tf-navy)}.sheet-handle{display:block;width:2.5rem;height:.28rem;margin:.2rem auto .35rem;border-radius:999px;background:#1b243047;flex:0 0 auto;touch-action:none;cursor:grab}.sheet-scroll{flex:1 1 auto;overflow:auto;overflow-x:hidden;overscroll-behavior:contain;min-height:0}.sheet-head{display:flex;justify-content:space-between;gap:.45rem;align-items:flex-start;flex:0 0 auto}.sheet-head-actions{display:flex;align-items:flex-start;gap:.2rem;flex:0 0 auto}.sheet h2{margin:.2rem 0 0;font-family:var(--tf-display);font-size:1.05rem;line-height:1.15}.facts{display:grid;grid-template-columns:1fr;gap:.85rem;margin-block:1.1rem}.facts dt{color:var(--tf-muted);font-size:.82rem;letter-spacing:.04em;text-transform:uppercase}.facts dd{margin:.2rem 0 0;font-size:1.05rem;overflow-wrap:anywhere}.dest-toolbar{display:grid;grid-template-columns:minmax(0,1fr) minmax(6.5rem,8.5rem);column-gap:.4rem;align-items:end;margin:.15rem 0 .35rem}.dest-toolbar-filter,.dest-toolbar-sort{min-width:0}.dest-filter,.dest-sort{width:100%;min-height:var(--tf-touch);margin-bottom:0;padding:.3rem .55rem;border:1px solid var(--tf-line);border-radius:10px;background:#fff}.dest-list,.dest-cards,.dest-index-list{list-style:none;margin:0;padding:0}.dest-table{display:none;width:100%;border-collapse:collapse;margin:0 0 .85rem}.dest-sort-label,.dest-filter-label{display:block;margin:0 0 .15rem;color:var(--tf-muted);font-size:.68rem;line-height:1.1}.dest-index{min-width:0;margin:0 0 .45rem;overflow-x:clip}.dest-index-head,.dest-item{display:grid;grid-template-columns:minmax(0,1fr) minmax(2.85rem,4.6rem) 3.55rem;column-gap:6px;align-items:center}.dest-index-head{position:sticky;top:0;z-index:1;height:28px;max-height:30px;padding:0 4px;background:var(--tf-panel-solid);border-bottom:1px solid var(--tf-line);color:var(--tf-muted);font-size:.68rem;font-weight:700;letter-spacing:.03em;text-transform:uppercase}.dest-index-head span:last-child{text-align:end}.dest-index-row{border-bottom:1px solid rgba(27,36,48,.08)}.dest-index-row--unmapped{opacity:.78}.dest-item{width:100%;min-width:0;min-height:46px;max-height:58px;padding:5px 4px;border:0;border-radius:0;background:transparent;color:inherit;text-align:start;cursor:pointer}.dest-item--static{cursor:default}.dest-item--active,.dest-item[aria-pressed=true]{background:#e4b23a24}.dest-item-dir{display:grid;grid-template-columns:32px minmax(0,1fr);column-gap:6px;min-width:0;align-items:start}.dest-item-code{min-width:32px;font-size:13px;font-weight:700;line-height:1.15;letter-spacing:.02em}.dest-item-place{min-width:0;font-size:12px;line-height:1.15;overflow:hidden;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;line-clamp:2}.dest-status{grid-column:2;display:inline-flex;align-items:center;gap:.28rem;max-height:16px;margin-block-start:1px;font-size:10px;font-weight:600;line-height:1;color:var(--tf-muted)}.dest-status:before{content:"";inline-size:6px;block-size:6px;border-radius:50%;background:currentColor;flex:0 0 auto}.dest-status--confirmed{color:#0b3d6b}.dest-status--confirmed:before{background:#08afc4}.dest-status--observed{color:#0b3d6b}.dest-status--observed:before{background:#0f4c81}.dest-status--probable{color:#7a5a10}.dest-status--probable:before{background:#d4a017}.dest-status--historical,.dest-status--unknown{color:#5c6773}.dest-status--historical:before,.dest-status--unknown:before{background:#8a94a0}.dest-item-airlines,.dest-item-duration{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:normal;overflow-wrap:normal;word-break:keep-all}.dest-item-airlines{font-size:11px;line-height:1.2}.dest-item-duration{font-size:12px;font-variant-numeric:tabular-nums;line-height:1.2;text-align:end}.dest-item-duration-est{display:block;font-size:10.5px;font-style:italic;color:#5b6470}.selected-route-note{margin:.25rem 0 .4rem;padding:.4rem .5rem;border:1px solid var(--tf-line);border-radius:10px;font-size:.82rem}.selected-route-note p{margin:.15rem 0 0}.dest-table-button{display:flex;flex-direction:column;align-items:flex-start;gap:.15rem;width:100%;min-height:var(--tf-touch);padding:.35rem .4rem;border:1px solid transparent;border-radius:12px;background:transparent;color:inherit;text-align:start;cursor:pointer}.dest-card-title,.dest-name{font-weight:700}.dest-card-name,.dest-airport-name{color:var(--tf-muted);font-size:.88rem}.sheet-historical-warning{margin:.25rem 0 .35rem;color:var(--tf-muted);font-size:.75rem;line-height:1.3}.hist-toggle{display:flex;align-items:center;gap:.45rem;margin:.2rem 0 .35rem;font-size:.82rem}.sheet-spinner{display:inline-block;width:1.15rem;height:1.15rem;margin-inline-end:.55rem;border:2px solid rgba(15,76,129,.2);border-top-color:var(--tf-navy);border-radius:50%;animation:sheet-spin .8s linear infinite;vertical-align:middle}.sheet-status-card{display:grid;gap:.45rem;margin:.35rem 0 .75rem;padding:.75rem .85rem;border:1px solid rgba(15,76,129,.16);border-radius:12px;background:#0f4c810d;color:var(--tf-muted);font-size:.95rem}.sheet-status-card p{margin:0}.sheet-back{margin-top:.45rem;min-height:var(--tf-touch)}@keyframes sheet-spin{to{transform:rotate(360deg)}}.dest-row{display:flex;align-items:center;gap:.7rem;width:100%;min-height:52px;padding:.55rem .7rem;border:1px solid transparent;border-radius:12px;background:#0f4c810a;color:inherit;text-align:start;cursor:pointer}.dest-row--active,.dest-row[aria-pressed=true]{border-color:#e4b23a;background:#e4b23a29}.dest-copy{display:grid;gap:.1rem;min-width:0}.dest-name{font-weight:700}.dest-meta,.sheet-count,.sheet-status,.route-source,.seasonal-warning{color:var(--tf-muted);font-size:.95rem}.sheet-count{margin:.15rem 0 0;color:var(--tf-navy-deep);font-weight:700;font-size:.82rem}.sheet-kicker{margin:.2rem 0 .15rem;color:var(--tf-navy-deep);font-size:.68rem;font-weight:700;letter-spacing:.04em;text-transform:uppercase}.sheet-status{margin:.4rem 0 .8rem}.route-source{display:grid;gap:.35rem;margin:.4rem 0 .8rem}.route-source p,.seasonal-warning{margin:0}.seasonal-warning{color:var(--tf-navy-deep)}.sheet-expand{display:none;width:100%;min-height:var(--tf-touch);margin:.35rem 0 .7rem;border:1px solid var(--tf-line);border-radius:12px;background:#fff;color:var(--tf-navy-deep);font-weight:700;cursor:pointer}.airport-details{border-top:1px solid var(--tf-line);padding-block-start:.7rem}.airport-details summary{min-height:var(--tf-touch);display:flex;align-items:center;cursor:pointer;font-weight:700}.placeholder-block{border-top:1px solid var(--tf-line);padding-block-start:1rem}.placeholder-block h3{margin:0 0 .5rem;font-size:1.05rem}.placeholder-block p,.placeholder-block li{color:var(--tf-muted);font-size:.98rem}.placeholder-block ul{margin:.45rem 0 0;padding-inline-start:1.15rem}.badge{display:inline-block;margin-inline-start:.4rem;padding:.15rem .5rem;border-radius:999px;border:1px solid var(--tf-line);color:var(--tf-gold);font-size:.78rem;vertical-align:middle}.diagnostics{position:absolute;z-index:var(--tf-z-modal);inset-inline:12px auto;inset-block-start:calc(var(--tf-safe-top) + 12px + var(--tf-header-height) + 8px);width:min(26rem,calc(100vw - 24px));padding:1rem 1.1rem;border-radius:var(--tf-radius)}.diagnostics dl{display:grid;gap:.5rem}.diagnostics dt{color:var(--tf-muted);font-size:.78rem}.diagnostics dd{margin:0;overflow-wrap:anywhere}.legend-dock{pointer-events:none;position:absolute;z-index:var(--tf-z-chrome);inset-inline-start:12px;inset-block-end:calc(60px + var(--tf-safe-bottom));display:flex;flex-direction:column-reverse;align-items:flex-start;gap:.45rem;max-width:min(22rem,calc(100vw - 24px))}.legend-toggle{min-height:var(--tf-touch);min-width:var(--tf-touch);padding:.4rem .95rem;border-radius:999px;border:1px solid var(--tf-line);background:var(--tf-panel-solid);color:var(--tf-navy-deep);font-weight:650;font-size:.92rem;box-shadow:var(--tf-shadow);cursor:pointer}.legend-panel{width:min(20.5rem,calc(100vw - 24px));padding:.85rem .95rem .9rem;border-radius:16px;background:var(--tf-panel-solid);border:1px solid var(--tf-line);box-shadow:var(--tf-shadow)}.legend-list{list-style:none;margin:0;padding:0;display:grid;gap:.48rem}.legend-item{display:flex;align-items:center;gap:.65rem;font-size:.95rem;font-weight:600}.legend-swatch{flex:0 0 auto;display:inline-block;border-radius:999px;border-style:solid;border-color:#fff;box-shadow:0 0 0 1px #1b243029,0 2px 6px #1b243029}.legend-swatch--origin,.legend-swatch--destination{width:10px;height:10px;border-width:2px}.airport-peek{position:absolute;z-index:var(--tf-z-popup);inset-inline:12px;inset-block-end:calc(12px + var(--tf-safe-bottom));display:flex;justify-content:flex-start;pointer-events:none}.airport-peek-card{pointer-events:auto;width:min(22rem,calc(100vw - 24px));padding:.85rem .95rem .95rem;border-radius:16px;background:var(--tf-panel-solid);border:1px solid var(--tf-line);box-shadow:var(--tf-shadow)}.airport-peek-head{display:flex;align-items:flex-start;justify-content:space-between;gap:.75rem}.airport-peek-head h2{margin:0;font-size:1.05rem;line-height:1.3}.airport-peek-place,.airport-peek-type{margin:.35rem 0 0;color:var(--tf-muted);font-size:.88rem}.airport-peek-codes{display:flex;flex-wrap:wrap;gap:.4rem;margin:.55rem 0 0}.airport-peek-choose{margin-top:.75rem;min-height:var(--tf-touch)}.airport-peek-list{list-style:none;margin:.55rem 0 0;padding:0;display:grid;gap:.35rem}.airport-peek-list button{width:100%;min-height:var(--tf-touch);text-align:left;border:1px solid var(--tf-line);border-radius:12px;background:#fff;padding:.55rem .7rem;cursor:pointer}.legend-line{flex:0 0 auto;width:22px;height:4px;border-radius:999px}.legend-note{margin:.65rem 0 0;color:var(--tf-muted);font-size:.82rem;line-height:1.4;overflow-wrap:anywhere}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);border:0}@media(min-width:840px){:root{--tf-search-width: 400px;--tf-header-height: 110px}.search-dock,.brand-bar{max-width:var(--tf-search-width)}.search-dock{inset-block-start:calc(var(--tf-safe-top) + 12px + 110px + 8px)}.brand-bar{height:var(--tf-header-height);min-height:var(--tf-header-height);padding:0 1rem;border-radius:20px}.brand-mark{inline-size:100px;block-size:100px}.version-button{font-size:.8rem;padding:.35rem .75rem}.route-row{min-height:52px;padding:0 .75rem 0 .85rem}.route-row input,.search-panel input{font-size:1.05rem}.filter-chip{height:38px;min-height:38px;font-size:.92rem;padding:0 .95rem}.maplibregl-ctrl-top-right{margin-top:calc(var(--tf-safe-top) + 12px)}.filter-sheet{inset-inline:auto 16px;inset-block:auto auto;inset-block-start:calc(var(--tf-safe-top) + 80px);width:var(--tf-sheet-width);max-height:calc(100dvh - 120px);border-radius:18px}.sheet{inset-inline:auto 16px;inset-block-start:calc(var(--tf-header-height) + var(--tf-safe-top) + 16px);inset-block-end:auto;width:var(--tf-sheet-width);max-width:var(--tf-sheet-width);max-height:calc(100dvh - var(--tf-header-height) - var(--tf-safe-top) - 32px);border-radius:18px;padding:.7rem .85rem .8rem}.sheet--collapsed,.sheet--expanded{max-height:calc(100dvh - var(--tf-header-height) - var(--tf-safe-top) - 32px)}.sheet-handle{cursor:grab}.sheet h2{font-size:1.15rem}.facts{grid-template-columns:repeat(2,minmax(0,1fr))}.dest-table{display:table}.dest-table thead th{position:sticky;top:0;z-index:1;background:var(--tf-panel-solid);text-align:start;font-size:.78rem;letter-spacing:.04em;text-transform:uppercase;color:var(--tf-muted);padding:.45rem .4rem}.dest-table td{padding:.25rem .4rem;vertical-align:top;font-size:.92rem}.dest-table-button{min-height:var(--tf-touch);padding:.35rem .4rem}}@media(max-width:839px){.legend-dock{inset-inline-start:auto;inset-inline-end:12px;inset-block-end:calc(12px + var(--tf-safe-bottom));align-items:flex-end}.legend-item{font-size:.88rem;gap:.5rem}.legend-panel{width:min(17.25rem,calc(100vw - 24px));padding:.65rem .75rem .7rem}.legend-note{margin-block-start:.45rem;font-size:.75rem}.app-shell:has(.sheet) .legend-dock{display:flex;z-index:6;inset-inline-start:auto;inset-inline-end:12px;inset-block-end:calc(min(42dvh,22rem) + 10px);max-width:min(17.25rem,calc(100vw - 72px))}.app-shell:has(.sheet--expanded) .legend-dock{inset-block-end:auto;inset-block-start:calc(var(--tf-header-height) + var(--tf-safe-top) + 132px)}.search-dock{inset-inline:12px;width:auto;max-width:none}.brand-bar{max-width:none}.maplibregl-ctrl-top-right{margin-top:calc(var(--tf-safe-top) + 220px)}.maplibregl-ctrl-zoom-in,.maplibregl-ctrl-zoom-out,.search-hint{display:none}.sheet-expand{display:block}.sheet--peek .dest-list,.sheet--peek .dest-cards,.sheet--peek .dest-index,.sheet--peek .dest-table,.sheet--peek .dest-toolbar,.sheet--peek .dest-filter,.sheet--peek .dest-filter-label,.sheet--peek .dest-sort,.sheet--peek .dest-sort-label,.sheet--peek .airport-details,.sheet--peek .route-source,.sheet--peek .sheet-kicker{display:none}}.sheet-tabs{display:flex;gap:4px;width:100%;margin:.1rem 0 .3rem;flex:0 0 auto;flex-wrap:wrap;overflow:visible;padding:3px}.sheet-tab{flex:1 1 auto;min-width:max-content;min-height:36px;height:auto;padding:.3rem .6rem;border:1px solid var(--tf-line);border-radius:999px;background:#fff;color:var(--tf-navy-deep);font-size:.75rem;font-weight:700;line-height:1.2;white-space:nowrap;display:inline-flex;flex-direction:column;align-items:center;justify-content:center;gap:.08rem;cursor:pointer}.sheet-tab:focus-visible{outline:3px solid var(--tf-focus);outline-offset:1px}.sheet-tab--active{background:var(--tf-navy);color:#fff;border-color:var(--tf-navy)}.sheet-tab:disabled,.sheet-tab--soon{opacity:.58;cursor:not-allowed}.sheet-tab-soon{font-size:.55rem;font-weight:700;letter-spacing:.03em;text-transform:uppercase;line-height:1}.tracker-wrap{position:relative;display:inline-flex}.tracker-button{display:inline-flex;align-items:center;justify-content:center;width:var(--tf-touch);height:var(--tf-touch);min-width:var(--tf-touch);min-height:var(--tf-touch);padding:0;border:1px solid var(--tf-line);border-radius:12px;background:#fff;color:var(--tf-navy);cursor:pointer}.tracker-menu{position:absolute;inset-inline-end:0;inset-block-start:100%;z-index:2;margin:0;padding:.35rem;list-style:none;background:#fff;border:1px solid var(--tf-line);border-radius:12px;box-shadow:var(--tf-shadow)}.tracker-menu a{display:flex;align-items:center;min-height:var(--tf-touch);padding:0 .7rem;text-decoration:none}.board-skeleton,.board-card,.fare-search{display:grid;gap:.45rem}.board-fids{display:flex;flex-direction:column;min-height:0;margin:0;max-height:min(22rem,52dvh)}.board-fids-head{position:sticky;top:0;z-index:1;display:flex;align-items:baseline;justify-content:space-between;gap:.5rem;padding:.15rem .1rem .35rem;background:#fff}.board-updated{margin:0;font-size:.72rem;font-weight:700;color:var(--tf-muted)}.board-fids-scroll{margin:0;padding:0;list-style:none;overflow-y:auto;min-height:0}.board-fids-row{display:grid;grid-template-columns:3.1rem minmax(0,1fr) auto auto;grid-template-areas:"time place flight status" "meta meta meta meta" "source source source source";column-gap:.4rem;row-gap:.05rem;min-height:2.55rem;padding:.28rem .1rem;border-bottom:1px solid var(--tf-line);font-size:.78rem;line-height:1.15}.board-fids-time{grid-area:time;font-variant-numeric:tabular-nums;font-weight:800;white-space:nowrap}.board-fids-place{grid-area:place;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:650}.board-fids-flight{grid-area:flight;font-weight:800;white-space:nowrap;letter-spacing:.01em}.board-fids-status{grid-area:status;justify-self:end;padding:.08rem .38rem;border-radius:999px;font-size:.62rem;font-weight:800;line-height:1.2;white-space:nowrap;background:#eef2f6;color:var(--tf-navy-deep)}.board-fids-status--delayed{background:#fff4d6;color:#8a5a00}.board-fids-status--cancelled,.board-fids-status--diverted{background:#fde8e8;color:#9b1c1c}.board-fids-status--departed,.board-fids-status--landed{background:#e7f6ec;color:#146c2e}.board-fids-status--boarding,.board-fids-status--gate_closed{background:#e7eefc;color:#1d4ed8}.board-fids-meta{grid-area:meta;font-size:.68rem;color:var(--tf-muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.skeleton-row{height:2.4rem;border-radius:10px;background:linear-gradient(90deg,#e8eef5,#f7fafc,#e8eef5)}.board-badge{color:var(--tf-gold);font-weight:700}.board-card{padding:.7rem .8rem;border:1px solid var(--tf-line);border-radius:14px}.board-card-head{display:flex;align-items:center;justify-content:space-between;gap:.5rem}.fare-search{margin-top:.7rem;padding:.75rem .8rem;border-top:1px solid var(--tf-line)}.fare-search h2{margin:0;font-size:.95rem}.fare-grid{display:grid;gap:.45rem}.fare-grid label{display:grid;gap:.2rem;font-size:.85rem;color:var(--tf-muted)}.fare-grid input,.fare-grid select{min-height:var(--tf-touch);border:1px solid var(--tf-line);border-radius:10px;padding:0 .6rem}.fare-search-button{min-height:var(--tf-touch)}.fare-ranks{display:flex;flex-wrap:wrap;gap:.35rem}.fare-ranks span{padding:.2rem .55rem;border-radius:999px;border:1px solid var(--tf-line);font-size:.8rem}.map-panel{pointer-events:auto;touch-action:manipulation}.map-panel--search{width:100%;max-height:calc(100dvh - var(--tf-header-height) - var(--tf-safe-top) - 32px);display:flex;flex-direction:column;overflow:hidden;background:var(--tf-panel-solid);border:1px solid var(--tf-line);border-radius:16px;box-shadow:var(--tf-shadow)}.map-panel--search .search-panel{overflow-y:auto;overscroll-behavior:contain;min-height:0;max-height:none}.map-panel-toolbar{display:flex;justify-content:flex-end;gap:.25rem;padding:0 .4rem}.map-panel-handle{flex:0 0 auto}.map-panel-reopen{pointer-events:auto;position:absolute;z-index:var(--tf-z-sheet);inset-inline-end:12px;inset-block-end:calc(12px + var(--tf-safe-bottom));min-height:var(--tf-touch);min-width:3.5rem;padding:.35rem .85rem;border:1px solid var(--tf-line);border-radius:999px;background:var(--tf-panel-solid);color:var(--tf-navy-deep);font-weight:700;box-shadow:var(--tf-shadow);cursor:pointer}.map-panel-reopen--search{position:relative;inset:auto;margin-block-end:8px}.board-group-label{margin:.35rem 0 .15rem;font-size:.72rem;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--tf-muted)}.board-fids-source{grid-area:source;grid-column:1 / -1;font-size:.68rem;color:var(--tf-muted)}.board-fids-row--stale{opacity:.78}.board-badge{margin:0;font-size:.72rem;font-weight:700;color:var(--tf-gold)}.route-evidence{display:grid;gap:.25rem;margin:.6rem 0;padding:.55rem .15rem 0;border-top:1px solid var(--tf-line);font-size:.88rem}.route-evidence-title{margin:0;font-weight:700}.fare-search--compact{margin-top:0;padding:.2rem 0 .4rem;border-top:0}.fare-search h3{margin:0 0 .4rem;font-size:.95rem}.fare-offer{margin:.45rem 0 0;padding:.45rem .5rem;border:1px solid var(--tf-line);border-radius:12px}.fare-offer-price{margin:0;font-weight:700}.fare-offer-meta{margin:.15rem 0 0;font-size:.75rem;color:var(--tf-muted)}@media(max-width:839px){.map-panel--search .map-panel-handle,.map-panel--search .map-panel-toolbar{display:none}}@media(min-width:840px){.map-panel-reopen{inset-inline-end:16px;inset-block-start:calc(var(--tf-header-height) + var(--tf-safe-top) + 16px);inset-block-end:auto}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}.route-schedule{margin-top:.75rem;padding:.75rem;border:1px solid var(--border, rgba(127, 127, 127, .3));border-radius:12px;display:grid;gap:.5rem;min-width:0}.route-schedule-title{margin:0;font-size:1rem}.route-schedule-status{margin:0;display:flex;flex-wrap:wrap;gap:.35rem;align-items:center}.sched-status{display:inline-block;padding:.1rem .5rem;border-radius:999px;border:1px solid currentColor;font-weight:600;font-size:.85rem}.sched-status--available:before{content:"✓ "}.sched-status--no_active:before{content:"— "}.sched-status--deferred:before{content:"? "}.sched-filters fieldset{border:0;padding:0;margin:0;display:grid;grid-template-columns:repeat(auto-fit,minmax(9rem,1fr));gap:.5rem}.sched-filters legend{font-weight:600;margin-bottom:.25rem}.sched-filters label{display:grid;min-width:0;gap:.15rem;font-size:.85rem}.sched-filters input{box-sizing:border-box;width:100%;min-width:0;min-height:2.25rem;font:inherit}.sched-filter-actions{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:.5rem}.sched-list{list-style:none;margin:0;padding:0;display:grid;gap:.5rem}.sched-item{padding:.5rem 0;border-top:1px solid var(--border, rgba(127, 127, 127, .2))}.sched-item-main{display:flex;flex-wrap:wrap;gap:.5rem;align-items:baseline}.sched-times{font-variant-numeric:tabular-nums;font-weight:600}.sched-days,.sched-match,.route-schedule-dataset{margin:.15rem 0 0;font-size:.85rem}.sched-details dl{display:grid;grid-template-columns:max-content 1fr;gap:.15rem .75rem;margin:.35rem 0 0;font-size:.85rem}.sched-details dd{margin:0;overflow-wrap:anywhere}.route-schedule button:focus-visible,.route-schedule summary:focus-visible,.route-schedule input:focus-visible{outline:2px solid currentColor;outline-offset:2px}.route-rows{padding-inline-end:50px}.route-row{min-width:0}.route-row input{text-overflow:ellipsis;overflow:hidden;white-space:nowrap}.route-row .code-badge,.route-row .search-clear{flex:0 0 auto}.route-row-divider{margin-inline-end:0}.route-swap{inset-inline-end:-46px}.route-summary{margin:0;padding:.3rem .85rem .45rem 2.6rem;border-top:1px solid var(--tf-line);color:var(--tf-navy-deep);font-size:.86rem;font-weight:650;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}@media(max-width:839px){.route-summary{display:none}.maplibregl-ctrl-top-right{margin-top:calc(var(--tf-safe-top) + 262px)}.chip-rail{-webkit-mask-image:linear-gradient(to right,#000 calc(100% - 28px),transparent);mask-image:linear-gradient(to right,#000 calc(100% - 28px),transparent);padding-inline-end:28px}}.chip-rail{max-width:100%;scroll-padding-inline:8px;padding-block-end:2px}.filter-chip:focus-visible,.map-fit-route:focus-visible,.search-clear:focus-visible,.route-swap:focus-visible{outline:3px solid var(--tf-focus);outline-offset:2px}@media(min-width:840px){.chip-rail{flex-wrap:wrap;overflow-x:visible}}@media(min-width:840px)and (max-width:1199px){:root{--tf-search-width: 340px;--tf-sheet-width: 340px}}.map-tip{position:absolute;inset-block-start:0;inset-inline-start:0;z-index:var(--tf-z-popup);pointer-events:none;width:0;height:0}.map-tip-card{position:absolute;inset-block-end:14px;inset-inline-start:0;transform:translate(-50%);display:grid;gap:.1rem;width:max-content;max-width:min(18rem,calc(100vw - 32px));padding:.45rem .65rem;background:var(--tf-panel-solid);color:var(--tf-ink);border:1px solid var(--tf-line);border-radius:12px;box-shadow:var(--tf-shadow);font-size:.86rem;line-height:1.3}.map-tip--selected .map-tip-card{border-color:var(--tf-gold)}.map-tip--focus .map-tip-card{outline:3px solid var(--tf-focus);outline-offset:2px}.map-tip-title{font-weight:700;overflow-wrap:anywhere}.map-tip-relation{color:var(--tf-muted);font-size:.78rem}.map-marker-keys{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}.map-fit-route{position:absolute;z-index:var(--tf-z-popup);inset-block-start:50%;inset-inline-start:50%;min-height:var(--tf-touch);padding:.35rem .9rem;border:1px solid var(--tf-line);border-radius:999px;background:var(--tf-panel-solid);color:var(--tf-navy-deep);font-weight:700;box-shadow:var(--tf-shadow);cursor:pointer}.map-tip--compact .map-tip-card{max-width:min(22rem,calc(100vw - 72px));padding:.25rem .5rem;font-size:.76rem;line-height:1.18;gap:0}@media(max-width:839px)and (max-height:760px){.flat-readout{display:none}}.map-tip--compact .map-tip-relation{font-size:.72rem}.map-tip--below .map-tip-card{inset-block-end:auto;inset-block-start:14px}@media(max-width:839px)and (max-height:760px){.sheet--half{max-height:min(44dvh,32rem)}}.map-tip--start .map-tip-card{transform:translate(-18px)}.map-tip--end .map-tip-card{inset-inline-start:auto;inset-inline-end:-18px;transform:none}.map-mode-toggle{position:absolute;z-index:var(--tf-z-chrome);inset-inline-start:10px;inset-block-end:calc(10px + var(--tf-safe-bottom) + var(--tf-map-ctrl-lift, 0px));display:inline-flex;gap:2px;padding:2px;background:var(--tf-panel-solid);border:1px solid var(--tf-line);border-radius:999px;box-shadow:0 4px 12px #1b24301f;pointer-events:auto}.map-mode-toggle--above-sheet{z-index:calc(var(--tf-z-sheet) + 1)}.map-mode-button{min-width:36px;min-height:32px;padding:0 .6rem;border:1px solid transparent;border-radius:999px;background:transparent;color:var(--tf-navy-deep);font-weight:750;font-size:.9rem;cursor:pointer}.map-mode-button--active{background:var(--tf-navy);border-color:var(--tf-navy);color:#fff}.map-mode-button:focus-visible{outline:3px solid var(--tf-focus);outline-offset:2px}.map-root .maplibregl-ctrl-bottom-left{margin-inline-start:104px;bottom:max(0px,calc(var(--tf-map-ctrl-lift, 0px) - var(--tf-sheet-inset, 0px)))}@media(max-width:839px){.map-mode-button{min-width:44px;min-height:44px}.map-root .maplibregl-ctrl-bottom-left{margin-inline-start:120px}}.map-mode-notice{position:absolute;z-index:var(--tf-z-toast);inset-inline:50% auto;inset-block-start:calc(var(--tf-safe-top) + 12px);transform:translate(-50%);max-width:min(28rem,calc(100vw - 24px));padding:.55rem .9rem;background:var(--tf-panel-solid);border:1px solid var(--tf-gold);border-radius:12px;box-shadow:var(--tf-shadow);font-size:.9rem}.map-root[data-map-mode=flat] .maplibregl-canvas-container,.map-root[data-map-mode=flat] .maplibregl-ctrl-top-right{visibility:hidden}.flat-map{position:absolute;inset:0;z-index:1;overflow:hidden;background:radial-gradient(circle at 50% 40%,#e9f1f9,#d7e4f2 70%);touch-action:none}.flat-map-canvas,.flat-map-svg{position:absolute;inset:0;width:100%;height:100%}.flat-map-canvas{pointer-events:none}.flat-map-svg{display:block;will-change:transform}.flat-ocean{fill:#c9def2}.flat-land{fill:#f5f2ea;stroke:none}.flat-borders{fill:none;stroke:#c5bfb3}.flat-graticule{fill:none;stroke:#0f4c8129}.flat-boundary{fill:none;stroke:#0f4c818c}.flat-pole circle{fill:#0f4c8199}.flat-route{opacity:.55;stroke-linecap:round;pointer-events:none}.flat-route--selected{opacity:1}.flat-marker,.flat-origin{cursor:pointer;outline:none}.flat-marker:focus-visible circle:last-child{stroke:var(--tf-focus);stroke-width:3px}.flat-map .map-tip{z-index:3}.flat-tools{position:absolute;z-index:3;display:flex;flex-wrap:wrap;align-items:center;gap:6px;max-width:calc(100% - 16px)}.flat-tools .flat-reset{position:static;transform:none}.flat-tool{min-width:36px;min-height:36px;border:1px solid var(--tf-line);border-radius:999px;background:var(--tf-panel-solid);color:var(--tf-navy-deep);font-size:1.05rem;cursor:pointer}.flat-tool:focus-visible{outline:3px solid var(--tf-focus);outline-offset:2px}.flat-labels text{fill:#5b6472;font-weight:600;paint-order:stroke;stroke:#f5f2eae6;pointer-events:none}.flat-tool:disabled{opacity:.45;cursor:default}.flat-readout{padding:.2rem .5rem;border-radius:8px;background:#ffffffd9;font-size:.8rem;font-variant-numeric:tabular-nums;pointer-events:none}@media(max-width:839px){.flat-tool{min-width:44px;min-height:44px}}@media(max-width:839px){.app-shell:has(.sheet) .legend-dock,.app-shell:has(.sheet) .legend-panel{max-width:min(17.25rem,calc(100vw - 132px))}}.route-row-body{flex:1 1 auto;min-width:0;overflow:hidden}.route-row-body input{width:100%}.route-summary{padding:.35rem .85rem .5rem 2.6rem;white-space:normal}.route-metrics{min-width:0}.route-metrics-line{display:flex;flex-wrap:wrap;align-items:baseline;column-gap:.35rem;row-gap:.1rem;margin:0;min-width:0;font-variant-numeric:tabular-nums}.route-metrics-codes{font-weight:750;white-space:nowrap}.route-metrics-sep{color:var(--tf-muted)}.route-metrics-distance,.route-metrics-duration{white-space:nowrap}.route-metrics-duration-label{color:var(--tf-muted);font-weight:550}.route-metrics-duration--estimate{font-style:italic;cursor:help}.sheet-state-button:disabled{opacity:.4;cursor:default}@media(max-width:839px){:root{--tf-header-height: 56px}.brand-bar{height:56px;min-height:56px;inset-block-start:calc(8px + var(--tf-safe-top));inset-inline:8px;width:calc(100% - 16px);padding:0 .35rem 0 .4rem;border-radius:14px}.brand{min-height:44px;padding:0}.brand-mark{inline-size:52px;block-size:44px}.search-dock{inset-block-start:calc(var(--tf-safe-top) + 8px + 56px + 6px);inset-inline:8px}.route-summary{display:block;padding:.2rem .7rem .35rem 2.4rem;font-size:.8rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.route-summary .route-metrics-line{flex-wrap:nowrap;overflow:hidden}.route-summary .route-metrics-duration{overflow:hidden;text-overflow:ellipsis;min-width:0}.route-summary .route-metrics-duration-label{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}.chip-rail{flex-wrap:nowrap;overflow-x:auto;overscroll-behavior-x:contain;scrollbar-width:none}.filter-chip{flex:0 0 auto;white-space:nowrap}.maplibregl-ctrl-top-right{margin-top:calc(var(--tf-safe-top) + 248px)}.app-shell:has(.route-summary) .maplibregl-ctrl-top-right{margin-top:calc(var(--tf-safe-top) + 296px)}.app-shell:has(.sheet--full) .legend-dock,.app-shell:has(.sheet--half) .flat-tools,.app-shell:has(.sheet--full) .flat-tools{display:none}.legend-dock,.app-shell:has(.sheet) .legend-dock,.app-shell:has(.sheet--expanded) .legend-dock{inset-block-start:auto;inset-inline-start:auto;inset-inline-end:10px;inset-block-end:calc(10px + var(--tf-safe-bottom) + var(--tf-map-ctrl-lift, 0px));z-index:calc(var(--tf-z-sheet) + 1);max-width:min(17.25rem,calc(100vw - 20px))}.sheet{inset-inline:6px;inset-block-end:6px;max-width:calc(100vw - 12px);overscroll-behavior:contain}.sheet--peek{max-height:26dvh}.sheet--half{max-height:50dvh}.sheet--full{max-height:min(82dvh,calc(100dvh - var(--tf-header-height) - var(--tf-safe-top) - 16px))}.sheet--peek .sheet-place,.sheet--peek .sheet-completeness,.sheet--peek .sheet-official,.sheet--peek .sheet-tabs,.sheet--peek .sheet-scroll,.sheet--peek .sheet-codes{display:none}.sheet--peek h2{font-size:1.05rem}.sheet-scroll{overscroll-behavior:contain;-webkit-overflow-scrolling:touch}.sheet-head-actions .icon-button{min-width:40px;min-height:40px}.sched-filters fieldset{grid-template-columns:minmax(0,1fr)}.sched-filters input{max-width:100%;min-height:44px}.sched-filter-actions>*{flex:1 1 auto;min-height:44px}}@media(max-width:960px)and (max-height:480px){.sheet--peek{max-height:34dvh}.sheet--half{max-height:60dvh}}.route-metrics-card{margin:.15rem 0 .4rem;padding:.35rem .6rem;border:1px solid var(--tf-line);border-radius:10px;background:var(--tf-panel-solid);min-width:0;flex:0 0 auto}.route-metrics-card p{margin:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.route-metrics-card-route{font-weight:750;font-size:.95rem;color:var(--tf-navy-deep)}.route-metrics-card-values{font-size:.88rem;font-variant-numeric:tabular-nums}.route-metrics-card-label{margin-inline-start:.4rem;color:var(--tf-muted);font-size:.75rem}@media(max-width:839px){.sheet--peek:has(.route-metrics-card) .sheet-count{display:none}.sheet--peek .route-metrics-card{margin-block:.1rem .2rem;padding:.25rem .5rem}}.flat-tools .flat-fit-route{position:static;inset:auto;transform:none;min-height:36px;padding:.25rem .8rem;font-size:.85rem}.flat-tools{pointer-events:none}.flat-tools>*{pointer-events:auto}.lang-switch{position:absolute;z-index:calc(var(--tf-z-chrome) + 2);inset-block-start:calc(12px + var(--tf-safe-top));inset-inline-end:12px;display:inline-flex;align-items:center;padding:2px;background:var(--tf-panel-solid);border:1px solid var(--tf-line);border-radius:999px;box-shadow:0 4px 12px #1b24301f;pointer-events:auto}.lang-switch-item{display:inline-flex;align-items:center}.lang-switch-sep{color:var(--tf-muted);padding-inline:1px;font-size:.8rem;-webkit-user-select:none;user-select:none}.lang-switch-button{min-width:40px;min-height:40px;padding:0 .45rem;border:0;border-radius:999px;background:transparent;color:var(--tf-navy-deep);font-weight:700;font-size:.82rem;letter-spacing:.02em;cursor:pointer}.lang-switch-button--active{background:var(--tf-navy);color:#fff}.lang-switch-button:focus-visible{outline:3px solid var(--tf-focus);outline-offset:2px}.map-mode-button{min-width:40px;min-height:40px}.map-root .maplibregl-ctrl-group button{width:40px;height:40px}.flat-tool{min-width:40px;min-height:40px}@media(min-width:840px){.map-root .maplibregl-ctrl-top-right{display:flex;flex-direction:row-reverse;align-items:flex-start;gap:8px;margin:calc(var(--tf-safe-top) + 12px) calc(12px + var(--tf-lang-w, 104px)) 0 0}.map-root .maplibregl-ctrl-top-right .maplibregl-ctrl{margin:0}.map-root .maplibregl-ctrl-top-right .maplibregl-ctrl-group{display:flex}.map-root .maplibregl-ctrl-top-right .maplibregl-ctrl-group button+button{border-top:0;border-left:1px solid #ddd}}@media(max-width:839px){.lang-switch{inset-block-start:calc(8px + var(--tf-safe-top) + 6px);inset-inline-end:16px}.lang-switch-button,.map-mode-button,.map-root .maplibregl-ctrl-group button,.flat-tool{min-width:44px;min-height:44px}.map-root .maplibregl-ctrl-group button{width:44px;height:44px}.brand-bar{padding-inline-end:112px}}.map-tip-metrics{display:block;margin-top:2px;font-size:.78rem;font-weight:650;color:var(--tf-navy-deep);font-variant-numeric:tabular-nums}.flat-map--moving .map-tip{visibility:hidden}.flat-routes--dimmed .flat-route{opacity:.45}.flat-routes .flat-route.flat-route--hover{opacity:1;stroke:var(--tf-navy-deep);stroke-width:2.2}.map-tip-title{overflow-wrap:anywhere}@media(max-width:839px){.map-root .maplibregl-ctrl-attrib.maplibregl-compact-show{max-width:calc(100vw - 262px)}}@media(min-width:840px){:root{--tf-search-width: clamp(264px, 28vw, 400px);--tf-sheet-width: clamp(264px, 28vw, 400px)}.app-shell{--tf-col-left: 0px;--tf-col-right: 0px}.app-shell:has(.search-dock>.map-panel--search){--tf-col-left: calc(var(--tf-search-width) + 20px)}.app-shell:has(.map-panel--sheet){--tf-col-right: calc(var(--tf-sheet-width) + 24px)}.map-shell,.map-status,.map-fallback{inset-inline-start:var(--tf-col-left);inset-inline-end:var(--tf-col-right);width:auto}.map-mode-toggle{inset-inline-start:calc(var(--tf-col-left) + 10px)}.legend-dock{inset-inline-start:calc(var(--tf-col-left) + 12px);max-width:min(20.5rem,calc(100vw - var(--tf-col-left) - var(--tf-col-right) - 24px))}.legend-panel{width:min(20.5rem,calc(100vw - var(--tf-col-left) - var(--tf-col-right) - 24px))}.map-mode-notice{inset-inline:calc(var(--tf-col-left) + (100vw - var(--tf-col-left) - var(--tf-col-right)) / 2) auto}.map-tip-card{max-width:min(18rem,calc(100vw - var(--tf-col-left) - var(--tf-col-right) - 32px))}.app-shell:has(.map-panel--sheet) .map-root .maplibregl-ctrl-top-right{margin-inline-end:12px}.search-dock{inset-inline:12px auto;width:var(--tf-search-width)}.map-panel--sheet{inset-inline:auto 16px}.map-panel-collapse{min-width:40px;min-height:40px}}.flat-map-svg .flat-hit{r:calc(11px * var(--tf-inv, 1))}.flat-map-svg .flat-dot--dest{r:calc(3.6px * var(--tf-dot, 1))}.flat-map-svg .flat-dot--selected{r:calc(5.5px * var(--tf-dot, 1))}.flat-map-svg .flat-dot--origin{r:calc(7.5px * var(--tf-dot, 1))}.flat-tools.flat-tools--zoom{inset-inline:auto 8px;flex-direction:column;flex-wrap:nowrap;align-items:flex-end;max-width:none}.flat-routes-merged{opacity:.55;stroke-linecap:round}.flat-routes--dimmed .flat-routes-merged{opacity:.45}.flat-routes .flat-route[data-iata]:not(.flat-route--selected,.flat-route--hover){display:none}@media(max-width:839px){.app-shell:has(>.sheet--peek) .map-shell,.app-shell:has(>.sheet--half) .map-shell{inset-block-end:var(--tf-sheet-inset, 0px);height:auto;min-height:0}}.active-filter-chips{pointer-events:auto;display:flex;flex-wrap:wrap;gap:6px;margin-block-start:6px}.active-filter-chip{display:inline-flex;align-items:center;gap:.4rem;min-height:32px;padding:0 .7rem;border:1px solid var(--tf-navy);border-radius:999px;background:#e8f0f8;color:var(--tf-navy-deep);font:inherit;font-size:.85rem;cursor:pointer}.active-filter-chip--clear{background:var(--tf-panel-solid);border-color:var(--tf-line)}.active-filter-chip:focus-visible,.rfp-opt:focus-visible,.rfp-link:focus-visible,.rfp-close:focus-visible,.rfp-clear:focus-visible,.rfp-apply:focus-visible{outline:3px solid var(--tf-navy);outline-offset:2px}.route-filter-panel{pointer-events:auto;display:flex;flex-direction:column;margin-block-start:8px;max-height:calc(100vh - var(--tf-safe-top) - 300px);min-height:240px;background:var(--tf-panel-solid);border:1px solid var(--tf-line);border-radius:var(--tf-radius);box-shadow:var(--tf-shadow);color:var(--tf-navy-deep)}.rfp-head,.rfp-foot{display:flex;align-items:center;gap:.6rem;padding:.6rem .9rem}.rfp-head{border-block-end:1px solid var(--tf-line)}.rfp-head h2{margin:0;font-size:1rem}.rfp-count{margin-inline-start:auto;font-size:.85rem}.rfp-close{min-width:36px;min-height:36px;border:0;background:transparent;font-size:1.4rem;cursor:pointer}.rfp-body{overflow-y:auto;padding:.4rem .9rem .6rem;overscroll-behavior:contain}.rfp-section{margin:0;padding:.55rem 0;border:0;border-block-end:1px solid var(--tf-line)}.rfp-section legend{padding:0;margin-block-end:.35rem;font-weight:600;font-size:.9rem}.rfp-options,.rfp-row{display:flex;flex-wrap:wrap;gap:6px;margin-block:4px}.rfp-row label{display:flex;flex-direction:column;font-size:.8rem;flex:1 1 8rem}.route-filter-panel input[type=date],.route-filter-panel input[type=time],.route-filter-panel input[type=number],.route-filter-panel input[type=search],.route-filter-panel input[type=text]{min-height:36px;width:100%;padding:0 .5rem;border:1px solid var(--tf-line);border-radius:8px;font:inherit;box-sizing:border-box}.rfp-opt{min-height:36px;padding:0 .7rem;border:1px solid var(--tf-line);border-radius:999px;background:var(--tf-panel-solid);color:inherit;font:inherit;font-size:.85rem;cursor:pointer}.rfp-opt[aria-pressed=true]{background:var(--tf-navy);border-color:var(--tf-navy);color:#fff}.rfp-opt small,.rfp-check small{opacity:.75}.rfp-link{border:0;background:transparent;color:var(--tf-navy);text-decoration:underline;font:inherit;font-size:.85rem;min-height:32px;cursor:pointer}.rfp-list{list-style:none;margin:4px 0 0;padding:0;max-height:12rem;overflow-y:auto}.rfp-check{display:flex;align-items:center;gap:.5rem;min-height:36px;font-size:.9rem;cursor:pointer}.rfp-check span{flex:1 1 auto}.rfp-hint{margin:.35rem 0 0;font-size:.8rem;opacity:.8}.rfp-foot{border-block-start:1px solid var(--tf-line);justify-content:space-between}.rfp-clear,.rfp-apply{min-height:40px;padding:0 1rem;border-radius:999px;font:inherit;cursor:pointer}.rfp-clear{border:1px solid var(--tf-line);background:var(--tf-panel-solid);color:inherit}.rfp-apply{border:0;background:var(--tf-navy);color:#fff}.filter-empty .text-button{margin-block-start:.4rem}@media(max-width:839px){.route-filter-panel{position:fixed;inset-inline:0;inset-block-end:0;z-index:var(--tf-z-modal);margin:0;max-height:min(78vh,calc(100dvh - var(--tf-safe-top) - 64px));border-radius:16px 16px 0 0;padding-block-end:env(safe-area-inset-bottom,0)}.rfp-opt,.rfp-check,.rfp-link,.rfp-close,.rfp-clear,.rfp-apply,.active-filter-chip,.route-filter-panel input[type=date],.route-filter-panel input[type=time],.route-filter-panel input[type=number],.route-filter-panel input[type=search],.route-filter-panel input[type=text]{min-height:44px}.rfp-close{min-width:44px}.active-filter-chips{flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none}.active-filter-chip{flex:0 0 auto;white-space:nowrap}}.legend-list--facility{gap:.32rem}.legend-list--states{margin-top:.55rem;padding-top:.5rem;border-top:1px solid var(--tf-line)}.legend-item .legend-symbol{display:inline-flex;width:22px;justify-content:center;flex:0 0 auto}.legend-item .legend-name{flex:1 1 auto}.legend-item .legend-count{font-variant-numeric:tabular-nums;color:var(--tf-muted);font-weight:600;font-size:.85rem}.legend-item--zero{opacity:.55}.legend-panel{pointer-events:auto;max-height:min(60vh,28rem);overflow-y:auto}.legend-toggle{pointer-events:auto}@media(max-width:839px){.legend-list--facility .legend-item{font-size:.86rem}}.map-tip-codes{display:block;font-size:.8rem;font-weight:650;color:var(--tf-navy-deep, #0b3d6b);letter-spacing:.01em}.flat-map-svg .flat-shape-inner{transform:scale(calc(.56 * var(--tf-inv, 1))) translate(-12px,-12px);pointer-events:none}.flat-map-svg .flat-shape-inner--sel{transform:scale(calc(.62 * var(--tf-inv, 1))) translate(-12px,-12px)}.flat-map-svg .flat-shape-inner--origin{transform:scale(calc(.66 * var(--tf-inv, 1))) translate(-12px,-12px)}.flat-map-svg .flat-dot--dest{r:calc(9.5px * var(--tf-inv, 1))}.flat-map-svg .flat-dot--selected{r:calc(11px * var(--tf-inv, 1))}.flat-map-svg .flat-dot--origin{r:calc(12px * var(--tf-inv, 1))}.flat-map-svg .flat-marker:hover .flat-dot,.flat-map-svg .flat-marker:focus-visible .flat-dot{stroke:#0b3d6b;stroke-width:2.6px}@media(pointer:coarse){.flat-map-svg .flat-hit{r:calc(22px * var(--tf-inv, 1))}}.chip-rail.chip-rail--bar{flex-wrap:nowrap;overflow-x:auto;overscroll-behavior-x:contain;scrollbar-width:thin;-webkit-mask-image:none;mask-image:none;padding-inline-end:0;padding-block-end:6px}.chip-rail.chip-rail--bar::-webkit-scrollbar{display:block;height:4px}.filter-chip-caret{margin-inline-start:.3rem;font-size:.7rem;opacity:.75}.filter-chip--clear{background:transparent;box-shadow:none;text-decoration:underline}.filter-chip--filters{border-color:var(--tf-navy)}.route-filter-panel--popover{max-height:min(60vh,calc(100vh - var(--tf-safe-top) - 260px));min-height:0}.route-filter-panel--popover .rfp-head h2{font-size:.95rem}.rfp-options--facility .rfp-opt--facility{display:inline-flex;align-items:center;gap:.35rem}.rfp-opt[disabled]{opacity:.5;cursor:not-allowed}.rfp-section[hidden]{display:none}@media(pointer:coarse),(max-width:839px){.filter-chip{min-height:44px;height:44px}}@media(max-width:839px){.route-filter-panel--sheet .rfp-body{overflow-y:auto;overscroll-behavior:contain;overflow-x:hidden}.route-filter-panel--sheet .rfp-foot{padding-block-end:calc(.6rem + env(safe-area-inset-bottom,0px))}}.sheet-codes{margin:.2rem 0 0;font-size:.82rem;font-weight:650;color:var(--tf-navy-deep)}.flat-map-svg .flat-badge-inner{transform:scale(var(--tf-inv, 1));pointer-events:none;transition:transform .12s ease-out}.flat-map-svg .flat-marker:hover .flat-badge-inner,.flat-map-svg .flat-origin:hover .flat-badge-inner{transform:scale(calc(1.12 * var(--tf-inv, 1)))}.flat-map-svg .flat-marker:focus-visible{outline:none}.flat-map-svg .flat-marker:focus-visible .code-badge-body{stroke:#1b2430;stroke-width:2px}.flat-map-svg .flat-marker:focus-visible .flat-badge-inner{filter:drop-shadow(0 0 2px #0b3d6b)}.flat-map-svg [data-badge-hidden="1"]{visibility:hidden;pointer-events:none}@media(prefers-reduced-motion:reduce){.flat-map-svg .flat-badge-inner{transition:none}}.legend-symbol .facility-symbol,.rfp-opt .facility-symbol{display:block;overflow:visible}.incoming-routes{margin-top:8px}.incoming-routes-heading{margin:0 0 4px;font-size:.95rem}.incoming-routes-count{margin:0 0 4px;font-size:.85rem}.incoming-routes-list{margin:0;padding-inline-start:18px;font-variant-numeric:tabular-nums}.flat-routes-merged--schedule-unavailable{stroke-linecap:butt}.legend-line--schedule-unavailable{background:repeating-linear-gradient(90deg,#4a5a6a 0 3px,transparent 3px 8px)!important;opacity:.8}.dest-status--schedule-unavailable{color:#4a5a6a;border:1px dashed #4a5a6a}.sheet-schedule-unavailable-notice,.sheet-filter-note,.route-status-reason{margin:.25rem 0 .5rem;font-size:.85rem;color:#3a4a5a}
