: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:nowrap;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}.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(46px + 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;flex-wrap:nowrap;gap:4px;width:100%;margin:.1rem 0 .3rem;flex:0 0 auto;overflow-x:auto;overflow-y:hidden;scrollbar-width:none}.sheet-tab{flex:1 1 0;min-width:0;min-height:36px;height:38px;padding:0 .28rem;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.05;white-space:nowrap;display:inline-flex;flex-direction:column;align-items:center;justify-content:center;gap:.08rem;cursor:pointer}.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}}
