:root{--ui-border: #dee2e6;--ui-primary: #6366f1;--ui-primary-hover: #4f46e5;--ui-success: #198754;--ui-error: #dc3545;--ui-text-on-primary: #ffffff}:global(.dark){--ui-border: #30363d;--ui-primary: #818cf8;--ui-primary-hover: #6366f1;--ui-success: #3fb950;--ui-error: #f85149;--ui-text-on-primary: #ffffff}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border-width:0}button:focus-visible{outline:2px solid #3b82f6;outline-offset:2px;border-radius:4px}.dark button:focus-visible{outline-color:#60a5fa}button:focus:not(:focus-visible){outline:none}.destination-map{width:100%;height:100%;position:relative}.map-container{width:100%;height:100%}.error-overlay{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;background:#000c;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:1000}.error-content{background:#fff;padding:2rem;border-radius:8px;text-align:center;max-width:400px}.error-content h3{color:#dc2626;margin-bottom:1rem;font-size:1.25rem}.error-content p{color:#666;margin-bottom:1.5rem}.error-content button{padding:.5rem 1.5rem;background:#dc2626;color:#fff;border:none;border-radius:6px;cursor:pointer;font-weight:500}.error-content button:hover{background:#b91c1c}.sidebar{position:absolute;top:1rem;left:1rem;width:380px;max-height:calc(100% - 2rem);background:#ffffff26;backdrop-filter:blur(15px) saturate(1.5);-webkit-backdrop-filter:blur(15px) saturate(1.5);border-radius:12px;box-shadow:0 8px 32px #00000026,inset 0 1px #fff3;border:1px solid rgba(255,255,255,.2);display:flex;flex-direction:column;overflow:hidden;z-index:10;animation:slideInLeft .3s ease-out;transform:translateZ(0);backface-visibility:hidden;will-change:transform,opacity}@keyframes slideInLeft{0%{transform:translate(-100%) translateZ(0);opacity:0}to{transform:translate(0) translateZ(0);opacity:1}}@supports (-webkit-backdrop-filter: blur(1px)){.sidebar{transform:translateZ(0);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px)}@keyframes slideInLeft{0%{transform:translate3d(-100%,0,0);opacity:0}to{transform:translateZ(0);opacity:1}}}.dark .sidebar{background:#11182726;border:1px solid rgba(255,255,255,.1)}.sidebar-with-timeline{max-height:calc(100% - 10rem)}.sidebar-header{background:#6366f11a;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);border-bottom:1px solid rgba(255,255,255,.1);color:#374151;padding:1.25rem;position:relative;flex-shrink:0}.dark .sidebar-header{background:#6366f114;color:#f3f4f6;border-bottom-color:#ffffff0d}.sidebar-header-content{position:relative;z-index:1}.sidebar-title{font-size:1.125rem;font-weight:600;margin-bottom:.25rem}.sidebar-subtitle{font-size:.875rem;opacity:.9}.sidebar-content{flex:1;overflow-y:auto;overflow-x:hidden;padding:0;scrollbar-width:thin;scrollbar-color:rgba(99,102,241,.3) transparent}.sidebar-content::-webkit-scrollbar{width:8px}.sidebar-content::-webkit-scrollbar-track{background:transparent}.sidebar-content::-webkit-scrollbar-thumb{background-color:#6366f14d;border-radius:4px}.sidebar-content::-webkit-scrollbar-thumb:hover{background-color:#6366f180}.dark .sidebar-content{scrollbar-color:rgba(99,102,241,.4) transparent}.dark .sidebar-content::-webkit-scrollbar-thumb{background-color:#6366f166}.dark .sidebar-content::-webkit-scrollbar-thumb:hover{background-color:#6366f199}.sidebar-close-btn{position:absolute;top:1rem;right:1rem;padding:.375rem;border-radius:9999px;background:#ffffff1a;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);border:1px solid rgba(255,255,255,.2);color:#fff;cursor:pointer;transition:all .2s;z-index:2}.sidebar-close-btn:hover{background:#fff3}.airport-cards{padding:1rem;flex-shrink:0}.airport-cards-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:.75rem;margin-bottom:.25rem}.jumpseat-card-full{grid-column:1 / -1}.airport-card{position:relative;background:#fff9;backdrop-filter:blur(20px) saturate(1.5);-webkit-backdrop-filter:blur(20px) saturate(1.5);border:1px solid rgba(229,231,235,.3);border-radius:10px;padding:10px 12px;box-shadow:0 2px 8px #00000014,inset 0 1px #ffffff1a;overflow:visible;transition:all .2s;cursor:default;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;min-width:0}.airport-card.has-airport:hover{transform:translateY(-1px);box-shadow:0 4px 12px #0000001f,inset 0 1px #ffffff1a}.dark .airport-card{background:#37415166;border:1px solid rgba(255,255,255,.1)}.airport-card.card-active{border:2px solid rgba(99,102,241,.6);box-shadow:0 0 0 3px #6366f133,0 2px 8px #00000014,inset 0 1px #ffffff1a;animation:pulseGlow 2s ease-in-out infinite}@keyframes pulseGlow{0%,to{box-shadow:0 0 0 3px #6366f133,0 2px 8px #00000014,inset 0 1px #ffffff1a}50%{box-shadow:0 0 0 3px #6366f159,0 4px 12px #0000001f,inset 0 1px #ffffff1a}}.dark .airport-card.card-active{border:2px solid rgba(99,102,241,.5);box-shadow:0 0 0 3px #6366f126,0 2px 8px #0000004d,inset 0 1px #ffffff1a}.airport-card.card-next{border:1px solid rgba(99,102,241,.3);box-shadow:0 0 0 1px #6366f11a,0 2px 8px #00000014,inset 0 1px #ffffff1a}.dark .airport-card.card-next{border:1px solid rgba(99,102,241,.25);box-shadow:0 0 0 1px #6366f114,0 2px 8px #0000004d,inset 0 1px #ffffff1a}.airport-card:after{content:"";position:absolute;top:0;right:-5px;bottom:0;width:100%;background-image:var(--flag-url, none);background-position:right center;background-repeat:no-repeat;background-size:auto 100%;opacity:.15;border-top-right-radius:10px;border-bottom-right-radius:10px;pointer-events:none;z-index:0}.dark .airport-card:after{opacity:.1}.airport-card-clear{position:absolute;top:-.5rem;right:-.5rem;padding:.25rem;border-radius:9999px;background:#6b7280cc;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);border:1px solid rgba(107,114,128,.2);color:#fff;cursor:pointer;transition:all .2s;z-index:10}.airport-card-clear:hover{background:#4b5563e6}.airport-card-clickable{cursor:pointer;transition:all .2s}.airport-card-clickable:hover{transform:translateY(-2px);box-shadow:0 8px 24px #00000026}.dark .airport-card-clickable:hover{box-shadow:0 8px 24px #0000004d}.card-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:5px;line-height:1.2;position:relative;z-index:1}.card-codes{font-family:SF Mono,Monaco,monospace;font-size:16px;font-weight:700;color:#111827;text-shadow:0 1px 2px rgba(0,0,0,.1);flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;padding-right:8px;letter-spacing:.5px}.dark .card-codes{color:#f9fafb}.card-badge{font-size:9px;font-weight:600;text-transform:uppercase;letter-spacing:.3px;flex-shrink:0}.card-badge-departure{color:#6366f1}.card-badge-arrival{color:#10b981}.dark .card-badge-departure{color:#818cf8}.dark .card-badge-arrival{color:#34d399}.card-badge-current-location{color:#f59e0b}.dark .card-badge-current-location{color:#fbbf24}.card-badge-jumpseat{color:#f59e0b}.dark .card-badge-jumpseat{color:#fbbf24}.card-name{font-size:13px;font-weight:600;color:#374151;line-height:1.2;margin-bottom:6px;position:relative;z-index:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dark .card-name{color:#e5e7eb}.card-times{display:flex;align-items:center;justify-content:space-between;font-size:.625rem;margin-top:.25rem;position:relative;z-index:1}.card-times-left,.card-times-right{display:flex;align-items:center;gap:.25rem}.time-label{font-family:SF Mono,Monaco,monospace;font-weight:600;color:#6b7280;text-transform:uppercase;letter-spacing:.3px;line-height:1}.dark .time-label{color:#9ca3af}.time-value{font-family:SF Mono,Monaco,monospace;font-weight:500;color:#374151;letter-spacing:.3px;line-height:1}.dark .time-value{color:#d1d5db}.card-action{text-align:center;font-size:9px;color:#6b7280;opacity:.5;font-weight:500;text-transform:uppercase;letter-spacing:.3px;line-height:1.2;position:relative;z-index:1}.dark .card-action{color:#9ca3af}.airport-card-placeholder{opacity:.6}.airport-card-placeholder-icon{width:1rem;height:1rem;color:#9ca3af}.dark .airport-card-placeholder-icon{color:#6b7280}.card-placeholder-title{font-size:13px;font-weight:600;color:#6b7280;line-height:1.2;margin-bottom:6px}.dark .card-placeholder-title{color:#9ca3af}.card-placeholder-text{text-align:center;font-size:9px;color:#6b7280;opacity:.5;font-weight:500;text-transform:uppercase;letter-spacing:.3px;line-height:1.2}.dark .card-placeholder-text{color:#9ca3af}.action-buttons-container{margin-top:.75rem;display:grid;grid-template-columns:repeat(auto-fit,minmax(0,1fr));gap:.5rem}.action-button{display:flex;align-items:center;justify-content:center;padding:.375rem .75rem;min-height:36px;backdrop-filter:blur(20px) saturate(1.5);-webkit-backdrop-filter:blur(20px) saturate(1.5);border-radius:8px;cursor:pointer;transition:all .2s;font-size:.875rem;font-weight:500;box-shadow:0 2px 8px #00000014,inset 0 1px #ffffff1a}.action-button:hover{box-shadow:0 4px 12px #0000001f,inset 0 1px #ffffff1a;transform:translateY(-1px)}.mode-toggle-btn{background:#3b82f626;color:#3b82f6;border:1px solid rgba(59,130,246,.3)}.mode-toggle-btn:hover{background:#3b82f640;border-color:#3b82f666}.dark .mode-toggle-btn{color:#60a5fa;border-color:#60a5fa4d;background:#60a5fa26}.dark .mode-toggle-btn:hover{border-color:#60a5fa66;background:#60a5fa40}.swap-btn{background:#6b728026;color:#6b7280;border:1px solid rgba(107,114,128,.3)}.swap-btn:hover{background:#6b728040;border-color:#6b728066}.dark .swap-btn{color:#9ca3af;border-color:#9ca3af4d}.dark .swap-btn:hover{border-color:#9ca3af66}.random-destination-container{margin-top:.75rem}.random-destination-btn{width:100%;display:flex;align-items:center;justify-content:center;padding:.5rem .75rem;background:#6b728026;color:#6b7280;border:1px solid rgba(107,114,128,.3);backdrop-filter:blur(20px) saturate(1.5);-webkit-backdrop-filter:blur(20px) saturate(1.5);border-radius:8px;cursor:pointer;transition:all .2s;font-size:.875rem;font-weight:500;box-shadow:0 2px 8px #00000014,inset 0 1px #ffffff1a}.random-destination-btn:hover:not(:disabled){background:#6b728040;border-color:#6b728066;box-shadow:0 4px 12px #0000001f,inset 0 1px #ffffff1a;transform:translateY(-1px)}.random-destination-btn:active:not(:disabled){transform:translateY(0);box-shadow:0 2px 4px #00000014,inset 0 1px #ffffff1a}.random-destination-btn:disabled{opacity:.5;cursor:not-allowed}.dark .random-destination-btn{color:#9ca3af;border-color:#9ca3af4d}.dark .random-destination-btn:hover:not(:disabled){border-color:#9ca3af66}.random-destination-icon{width:1rem;height:1rem;margin-right:.5rem;flex-shrink:0}.random-destination-text{flex:1}.random-destination-hint{margin-left:.5rem;font-size:.75rem;opacity:.7}.sidebar-actions{padding:0 1rem 1rem;flex-shrink:0}.route-details-section{padding:1rem 0 0;border-top:1px solid rgba(229,231,235,.5);flex-shrink:0}.dark .route-details-section{border-top-color:#4b55634d}.route-loading{display:flex;align-items:center;justify-content:center;padding:2rem 0;gap:.75rem}.route-loading-spinner{color:#3b82f6}.dark .route-loading-spinner{color:#60a5fa}.route-loading-text{font-size:.875rem;color:#6b7280}.dark .route-loading-text{color:#9ca3af}.route-cards-primary,.route-cards-secondary{display:grid;grid-template-columns:repeat(2,1fr);gap:.75rem;margin-bottom:.75rem}.route-cards-primary.route-cards-stacked{grid-template-columns:1fr}.route-cards-tertiary{display:grid;grid-template-columns:repeat(auto-fit,minmax(0,1fr));gap:.75rem;margin-bottom:.75rem}.route-cards-full{margin-bottom:.75rem}.route-cards-full:last-child{margin-bottom:0}.route-card{background:#fff9;backdrop-filter:blur(20px) saturate(1.5);-webkit-backdrop-filter:blur(20px) saturate(1.5);border:1px solid rgba(229,231,235,.3);border-radius:8px;overflow:hidden;box-shadow:0 2px 8px #00000014,inset 0 1px #ffffff1a}.dark .route-card{background:#37415166;border-color:#4b55634d}.route-card-header{display:flex;align-items:center;justify-content:space-between;padding:.5rem .625rem;background:linear-gradient(to right,#f3f4f666,#f9fafb33);border-bottom:1px solid rgba(209,213,219,.3);gap:.375rem}.dark .route-card-header{background:linear-gradient(to right,#4b556366,#37415133);border-bottom-color:#4b55634d}.route-card-header-title{display:flex;align-items:center;gap:.375rem;flex-shrink:0}.route-card-header-value{font-size:.75rem;font-weight:700;color:#111827;font-family:SF Mono,Monaco,monospace;letter-spacing:.5px;text-align:right;flex-shrink:0}.dark .route-card-header-value{color:#f3f4f6}.route-card-icon{width:.875rem;height:.875rem;color:#6b7280;flex-shrink:0}.dark .route-card-icon{color:#9ca3af}.route-card-label{font-size:.625rem;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:#6b7280}.dark .route-card-label{color:#d1d5db}.route-card-content{padding:.625rem}.route-card-value{font-size:.875rem;font-weight:700;color:#111827;margin:0;line-height:1.4}.dark .route-card-value{color:#f3f4f6}.action-btn{width:100%;display:flex;align-items:center;justify-content:center;padding:.375rem .75rem;border-radius:8px;cursor:pointer;transition:all .2s;font-size:.875rem;font-weight:500}.action-btn-reset{background:#6b728026;backdrop-filter:blur(20px) saturate(1.5);-webkit-backdrop-filter:blur(20px) saturate(1.5);color:#6b7280;border:1px solid rgba(107,114,128,.3);box-shadow:0 2px 8px #00000014,inset 0 1px #ffffff1a}.action-btn-reset:hover{background:#6b728040;border-color:#6b728066;box-shadow:0 4px 12px #0000001f,inset 0 1px #ffffff1a;transform:translateY(-1px)}.dark .action-btn-reset{color:#9ca3af;border-color:#9ca3af4d}.dark .action-btn-reset:hover{border-color:#9ca3af66}.dispatch-btn{width:100%;display:flex;align-items:center;justify-content:center;padding:.75rem 1rem;margin-bottom:.75rem;border-radius:8px;cursor:pointer;transition:all .2s;font-size:.875rem;font-weight:600;gap:.5rem;background:linear-gradient(135deg,#10b981e6,#059669e6);backdrop-filter:blur(20px) saturate(1.5);-webkit-backdrop-filter:blur(20px) saturate(1.5);color:#fff;border:1px solid rgba(16,185,129,.4);box-shadow:0 4px 12px #10b98133,inset 0 1px #ffffff26}.dispatch-btn:hover:not(:disabled){background:linear-gradient(135deg,#059669,#047857);border-color:#05966980;box-shadow:0 6px 16px #10b9814d,inset 0 1px #fff3;transform:translateY(-2px)}.dispatch-btn:disabled{opacity:.6;cursor:not-allowed;transform:none}.dark .dispatch-btn{background:linear-gradient(135deg,#10b981cc,#059669cc);border-color:#10b9814d}.dark .dispatch-btn:hover:not(:disabled){background:linear-gradient(135deg,#059669e6,#047857e6);border-color:#05966966}.dispatch-icon,.dispatch-spinner{flex-shrink:0}.dispatch-text{font-size:.875rem;font-weight:600;line-height:1}.airport-actions-grid{display:grid;gap:.5rem;margin-bottom:.75rem}.airport-actions-single,.airport-actions-double{grid-template-columns:1fr 1fr}.airport-btn{display:flex;flex-direction:row;align-items:center;justify-content:center;padding:.5rem .75rem;border-radius:8px;cursor:pointer;transition:all .2s;font-size:.75rem;font-weight:500;gap:.5rem;border:1px solid transparent}.airport-btn-full{grid-column:1 / -1}.airport-btn-label{font-size:.75rem;opacity:.9;line-height:1}.airport-btn-code{font-size:.8rem;font-weight:700;line-height:1}.airport-btn-info{background:#3b82f64d;backdrop-filter:blur(20px) saturate(1.5);-webkit-backdrop-filter:blur(20px) saturate(1.5);color:#3b82f6;border-color:#3b82f64d;box-shadow:0 2px 8px #3b82f61a,inset 0 1px #ffffff1a}.airport-btn-info:hover{background:#3b82f666;border-color:#3b82f666;box-shadow:0 4px 12px #3b82f626,inset 0 1px #ffffff1a;transform:translateY(-1px)}.dark .airport-btn-info{color:#60a5fa;border-color:#60a5fa4d}.dark .airport-btn-info:hover{border-color:#60a5fa66}.airport-btn-jumpseat{background:linear-gradient(135deg,#8b5cf64d,#a855f74d);backdrop-filter:blur(20px) saturate(1.5);-webkit-backdrop-filter:blur(20px) saturate(1.5);color:#8b5cf6;border-color:#8b5cf64d;box-shadow:0 2px 8px #8b5cf61a,inset 0 1px #ffffff1a}.airport-btn-jumpseat:hover{background:linear-gradient(135deg,#8b5cf666,#a855f766);border-color:#8b5cf666;box-shadow:0 4px 12px #8b5cf626,inset 0 1px #ffffff1a;transform:translateY(-1px)}.dark .airport-btn-jumpseat{color:#a78bfa;border-color:#a78bfa4d}.dark .airport-btn-jumpseat:hover{border-color:#a78bfa66}.airport-btn-dispatch{background:linear-gradient(135deg,#f59e0b4d,#fbbf244d);backdrop-filter:blur(20px) saturate(1.5);-webkit-backdrop-filter:blur(20px) saturate(1.5);color:#f59e0b;border-color:#f59e0b4d;box-shadow:0 2px 8px #f59e0b1a,inset 0 1px #ffffff1a}.airport-btn-dispatch:hover{background:linear-gradient(135deg,#f59e0b66,#fbbf2466);border-color:#f59e0b66;box-shadow:0 4px 12px #f59e0b26,inset 0 1px #ffffff1a;transform:translateY(-1px)}.dark .airport-btn-dispatch{color:#fbbf24;border-color:#fbbf244d}.dark .airport-btn-dispatch:hover{border-color:#fbbf2466}.same-airport-container{width:100%;margin-bottom:1rem}.same-airport-container .airport-btn{width:100%}.sidebar-backdrop{display:none}.sidebar-toggle-btn{position:absolute;top:1rem;left:1rem;padding:.75rem;background:#ffffff26;backdrop-filter:blur(20px) saturate(1.5);-webkit-backdrop-filter:blur(20px) saturate(1.5);border-radius:9999px;border:1px solid rgba(229,231,235,.3);color:#6b7280;cursor:pointer;transition:all .2s;box-shadow:0 2px 8px #00000014,inset 0 1px #ffffff1a;z-index:10}.sidebar-toggle-btn:hover{background:#ffffff40;border-color:#e5e7eb66;color:#111827;box-shadow:0 4px 12px #0000001f,inset 0 1px #ffffff1a;transform:translateY(-1px)}.dark .sidebar-toggle-btn{background:#11182726;border-color:#ffffff1a;color:#9ca3af}.dark .sidebar-toggle-btn:hover{background:#11182740;border-color:#ffffff26;color:#f3f4f6}.help-btn{position:absolute;bottom:1rem;right:1rem;padding:.75rem;background:#3b82f626;backdrop-filter:blur(25px) saturate(1.8);-webkit-backdrop-filter:blur(25px) saturate(1.8);border-radius:9999px;border:1px solid rgba(59,130,246,.3);color:#3b82f6;cursor:pointer;transition:all .2s;box-shadow:0 8px 32px #3b82f626,inset 0 1px #fff3;z-index:10}.help-btn:hover{background:#3b82f640;border-color:#3b82f666;color:#2563eb;box-shadow:0 12px 40px #3b82f633,inset 0 1px #fff3;transform:translateY(-1px)}.dark .help-btn{background:#60a5fa26;border-color:#60a5fa4d;color:#60a5fa}.dark .help-btn:hover{background:#60a5fa40;border-color:#60a5fa66;color:#93c5fd}.flights-section{padding:1rem}.flights-search-wrapper{margin-bottom:1rem}.flights-search-input-container{position:relative;display:flex;align-items:center;margin-bottom:.5rem}.flights-search-icon{position:absolute;left:.75rem;width:1rem;height:1rem;color:#9ca3af;pointer-events:none}.dark .flights-search-icon{color:#6b7280}.flights-search-input{width:100%;padding:.625rem 2.5rem;background:#fff9;backdrop-filter:blur(20px) saturate(1.5);-webkit-backdrop-filter:blur(20px) saturate(1.5);border:1px solid rgba(229,231,235,.3);border-radius:8px;font-size:.875rem;color:#111827;transition:all .2s;box-shadow:0 2px 8px #00000014,inset 0 1px #ffffff1a}.flights-search-input::-moz-placeholder{color:#9ca3af}.flights-search-input::placeholder{color:#9ca3af}.flights-search-input:focus{outline:none;border-color:#6366f180;box-shadow:0 0 0 3px #6366f11a,0 2px 8px #00000014,inset 0 1px #ffffff1a}.dark .flights-search-input{background:#37415166;border-color:#4b55634d;color:#f3f4f6}.dark .flights-search-input::-moz-placeholder{color:#6b7280}.dark .flights-search-input::placeholder{color:#6b7280}.flights-search-clear{position:absolute;right:.5rem;padding:.25rem;border-radius:9999px;background:#6b728033;border:none;color:#6b7280;cursor:pointer;transition:all .2s}.flights-search-clear:hover{background:#6b72804d;color:#374151}.dark .flights-search-clear:hover{color:#e5e7eb}.flights-count{font-size:.75rem;color:#6b7280;text-align:right;font-weight:500}.dark .flights-count{color:#9ca3af}.flights-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:.75rem;margin-bottom:1rem}.flight-card{position:relative;background:#fff9;backdrop-filter:blur(20px) saturate(1.5);-webkit-backdrop-filter:blur(20px) saturate(1.5);border:1px solid rgba(229,231,235,.3);border-radius:10px;padding:10px 12px;box-shadow:0 2px 8px #00000014,inset 0 1px #ffffff1a;cursor:pointer;transition:all .2s;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;text-align:left;width:100%;min-width:0;overflow:hidden}.flight-card:hover{transform:translateY(-1px);box-shadow:0 4px 12px #0000001f,inset 0 1px #ffffff1a;border-color:#6366f14d}.dark .flight-card{background:#37415166;border:1px solid rgba(255,255,255,.1)}.dark .flight-card:hover{border-color:#6366f166}.flight-card:after{content:"";position:absolute;inset:0;background-image:var(--aircraft-image, none);background-position:center center;background-repeat:no-repeat;background-size:cover;mix-blend-mode:screen;opacity:.25;border-radius:10px;pointer-events:none;z-index:0}.dark .flight-card:after{opacity:.2}.flight-card-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:6px;line-height:1.2;position:relative;z-index:1}.flight-card-callsign{font-family:SF Mono,Monaco,monospace;font-size:15px;font-weight:700;color:#111827;text-shadow:0 1px 2px rgba(0,0,0,.1);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;letter-spacing:.3px}.dark .flight-card-callsign{color:#f9fafb}.flight-card-badge{font-size:9px;font-weight:600;text-transform:uppercase;letter-spacing:.3px;color:#6366f1;flex-shrink:0;margin-left:6px}.dark .flight-card-badge{color:#818cf8}.flight-card-pilot{font-size:12px;font-weight:500;color:#374151;line-height:1.3;margin-bottom:6px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;position:relative;z-index:1}.dark .flight-card-pilot{color:#e5e7eb}.flight-card-route{display:flex;align-items:center;justify-content:center;font-size:11px;font-weight:600;color:#6b7280;gap:.375rem;position:relative;z-index:1}.dark .flight-card-route{color:#9ca3af}.flight-card-airport{font-family:SF Mono,Monaco,monospace;letter-spacing:.3px}.flight-card-arrow{width:.875rem;height:.875rem;flex-shrink:0;opacity:.5}.no-flights-message{grid-column:1 / -1;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:2rem 1rem;color:#9ca3af;text-align:center}.dark .no-flights-message{color:#6b7280}.no-flights-icon{width:2rem;height:2rem;margin-bottom:.5rem;opacity:.5}.no-flights-message p{font-size:.875rem;font-weight:500;margin:0}.flights-pagination{display:flex;align-items:center;justify-content:space-between;gap:.75rem}.pagination-btn{display:flex;align-items:center;justify-content:center;padding:.5rem;background:#fff9;backdrop-filter:blur(20px) saturate(1.5);-webkit-backdrop-filter:blur(20px) saturate(1.5);border:1px solid rgba(229,231,235,.3);border-radius:8px;color:#6b7280;cursor:pointer;transition:all .2s;box-shadow:0 2px 8px #00000014,inset 0 1px #ffffff1a}.pagination-btn:hover:not(:disabled){background:#fffc;border-color:#6366f14d;color:#111827;box-shadow:0 4px 12px #0000001f,inset 0 1px #ffffff1a}.pagination-btn:disabled{opacity:.4;cursor:not-allowed}.dark .pagination-btn{background:#37415166;border-color:#4b55634d;color:#9ca3af}.dark .pagination-btn:hover:not(:disabled){background:#37415199;border-color:#6366f166;color:#f3f4f6}.pagination-info{font-size:.875rem;font-weight:500;color:#6b7280;white-space:nowrap}.dark .pagination-info{color:#9ca3af}.weather-section{padding-top:.25rem}.weather-card{background:#fff9;backdrop-filter:blur(20px) saturate(1.5);-webkit-backdrop-filter:blur(20px) saturate(1.5);border:1px solid rgba(229,231,235,.3);border-radius:8px;overflow:hidden;box-shadow:0 2px 8px #00000014,inset 0 1px #ffffff1a;margin:.5rem 1rem .75rem}.dark .weather-card{background:#37415166;border-color:#4b55634d}.weather-content{padding:.625rem .75rem}.weather-control{display:flex;align-items:center;justify-content:space-between;padding:.25rem 0;gap:.5rem}.weather-control-label{display:flex;align-items:center;gap:.375rem;flex:1}.weather-control-icon{width:.875rem;height:.875rem;color:#6b7280;flex-shrink:0}.dark .weather-control-icon{color:#9ca3af}.weather-control-text{font-size:.75rem;font-weight:500;color:#374151}.dark .weather-control-text{color:#e5e7eb}.weather-toggle{padding:.125rem .5rem;font-size:.625rem;font-weight:600;border-radius:.25rem;background:linear-gradient(to bottom,#fffc,#f3f4f6cc);color:#6b7280;border:1px solid rgba(209,213,219,.5);box-shadow:0 1px 2px #0000000d;transition:all .2s ease;cursor:pointer}.weather-toggle:hover{background:linear-gradient(to bottom,#fff,#f9fafb);color:#374151;border-color:#d1d5dbb3;box-shadow:0 2px 4px #0000001a;transform:translateY(-1px)}.weather-toggle-active{background:linear-gradient(to bottom,#3b82f6,#2563eb);color:#fff;border-color:#2563eb;box-shadow:0 2px 4px #3b82f64d,inset 0 1px #fff3}.weather-toggle-active:hover{background:linear-gradient(to bottom,#2563eb,#1d4ed8);border-color:#1d4ed8;box-shadow:0 3px 6px #3b82f666,inset 0 1px #fff3}.dark .weather-toggle{background:linear-gradient(to bottom,#4b5563cc,#374151cc);color:#9ca3af;border-color:#4b556380}.dark .weather-toggle:hover{background:linear-gradient(to bottom,#4b5563,#374151);color:#d1d5db;border-color:#4b5563b3}.dark .weather-toggle-active{background:linear-gradient(to bottom,#60a5fa,#3b82f6);color:#fff;border-color:#3b82f6}.dark .weather-toggle-active:hover{background:linear-gradient(to bottom,#3b82f6,#2563eb);border-color:#2563eb}.sidebar-header-large{min-height:220px;padding:1.5rem;position:relative;overflow:hidden}.sidebar-header-large.has-aircraft-image{background-image:var(--aircraft-image);background-size:cover;background-position:center;background-repeat:no-repeat}.sidebar-header-overlay{position:absolute;inset:0;background:linear-gradient(to bottom,#0009,#0006,#000000b3);z-index:0}.deselect-aircraft-btn{display:inline-flex;align-items:center;gap:.375rem;padding:.375rem .75rem;background:#ffffff26;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);border:1px solid rgba(255,255,255,.2);border-radius:8px;color:#fff;font-size:.875rem;font-weight:500;cursor:pointer;transition:all .2s;z-index:1;position:relative;top:-.5rem;left:-.5rem}.deselect-aircraft-btn:hover{background:#ffffff40;border-color:#ffffff4d;transform:translate(-2px)}.sidebar-aircraft-info{position:relative;z-index:1;color:#fff;text-align:center}.aircraft-info-callsign{font-family:SF Mono,Monaco,monospace;font-size:2rem;font-weight:700;letter-spacing:1px;text-shadow:0 2px 8px rgba(0,0,0,.5);margin-bottom:.5rem}.aircraft-info-flight-number{font-size:1rem;font-weight:600;opacity:.9;text-shadow:0 1px 4px rgba(0,0,0,.5);margin-bottom:.5rem}.aircraft-info-type{font-size:.875rem;font-weight:500;opacity:.8;text-shadow:0 1px 4px rgba(0,0,0,.5)}.sidebar-image-link{position:absolute;inset:0;z-index:0;cursor:pointer}.sidebar-image-link:hover~.sidebar-header-overlay{background:linear-gradient(to bottom,#00000080,#0000004d,#0009)}.flight-progress-section{padding:0 1rem 1rem}.flight-progress-section .route-card,.flight-progress-section .route-card-content{overflow:visible}.flight-progress-airports{display:flex;justify-content:space-between;align-items:center;margin-bottom:.75rem;gap:.5rem}.progress-airport-dep,.progress-airport-arr{font-family:SF Mono,Monaco,monospace;font-size:.875rem;font-weight:700;color:#374151;letter-spacing:.5px}.dark .progress-airport-dep,.dark .progress-airport-arr{color:#e5e7eb}.progress-airport-dep{color:#6366f1}.dark .progress-airport-dep{color:#818cf8}.progress-airport-arr{color:#10b981}.dark .progress-airport-arr{color:#34d399}.progress-phase{font-size:.75rem;font-weight:600;color:#6b7280;text-transform:uppercase;letter-spacing:.5px}.dark .progress-phase{color:#9ca3af}.progress-aircraft{font-size:.75rem;font-weight:600;color:#6b7280;text-transform:uppercase;letter-spacing:.5px}.dark .progress-aircraft{color:#9ca3af}.progress-network{font-size:.75rem;font-weight:600;color:#6366f1;text-transform:uppercase;letter-spacing:.5px}.dark .progress-network{color:#818cf8}.flight-progress-bar-container{margin-bottom:.75rem;position:relative}.flight-progress-bar-bg{height:4px;background:#e5e7eb66;border-radius:9999px;overflow:visible;position:relative}.dark .flight-progress-bar-bg{background:#4b556366}.flight-progress-bar-fill{height:100%;background:linear-gradient(to right,#93c5fd,#3b82f6,#1d4ed8,#3b82f6,#93c5fd);background-size:calc(100% * 100 / var(--progress, 1));background-position:left center;background-repeat:no-repeat;border-radius:9999px;transition:width .3s ease-out;position:relative;overflow:visible}.dark .flight-progress-bar-fill{background:linear-gradient(to right,#60a5fa,#2563eb,#1e40af,#2563eb,#60a5fa);background-size:calc(100% * 100 / var(--progress, 1));background-position:left center;background-repeat:no-repeat}.flight-progress-bar-fill:before{content:"";position:absolute;right:calc(var(--aircraft-icon-size, 30px) / -2);top:50%;transform:translateY(-50%) rotate(90deg);width:var(--aircraft-icon-size, 30px);height:var(--aircraft-icon-size, 30px);background-color:var(--marker-color);mask-image:var(--aircraft-icon);-webkit-mask-image:var(--aircraft-icon);mask-size:contain;-webkit-mask-size:contain;mask-repeat:no-repeat;-webkit-mask-repeat:no-repeat;mask-position:center;-webkit-mask-position:center;filter:drop-shadow(0 2px 4px rgba(0,0,0,.3)) drop-shadow(0 1px 2px rgba(0,0,0,.2));z-index:3}.flight-progress-info{display:flex;justify-content:space-between;align-items:center;gap:1rem}.progress-info-item{display:flex;align-items:center;gap:.375rem;font-size:.75rem;font-weight:500;color:#6b7280}.dark .progress-info-item{color:#9ca3af}.progress-info-icon{width:.875rem;height:.875rem;flex-shrink:0;opacity:.7}.flight-info-section{padding:0 1rem}.aircraft-attribution-card{background:#fff9;backdrop-filter:blur(20px) saturate(1.5);-webkit-backdrop-filter:blur(20px) saturate(1.5);border:1px solid rgba(229,231,235,.3);border-radius:8px;box-shadow:0 2px 8px #00000014,inset 0 1px #ffffff1a;margin:0 1rem .75rem}.dark .aircraft-attribution-card{background:#37415166;border-color:#4b55634d}.aircraft-attribution-header{display:flex;align-items:center;justify-content:space-between;padding:.5rem .625rem;background:linear-gradient(to right,#f3f4f666,#f9fafb33);border-bottom:none;gap:.375rem}.dark .aircraft-attribution-header{background:linear-gradient(to right,#4b556366,#37415133)}.aircraft-attribution-content{display:flex;align-items:center;justify-content:space-between;gap:.75rem;width:100%}.aircraft-attribution-label-group{display:flex;align-items:center;gap:.375rem;flex-shrink:0}.aircraft-attribution-icon{width:.875rem;height:.875rem;color:#6b7280;flex-shrink:0}.dark .aircraft-attribution-icon{color:#9ca3af}.aircraft-attribution-label{font-size:.6875rem;font-weight:600;color:#6b7280;line-height:1.3}.dark .aircraft-attribution-label{color:#9ca3af}.aircraft-attribution-text{font-size:.6875rem;font-weight:500;color:#6b7280;line-height:1.3;text-align:right}.dark .aircraft-attribution-text{color:#9ca3af}.search-modal-overlay{position:absolute;top:1rem;left:1rem;width:384px;max-height:calc(100% - 2rem);z-index:10;animation:fadeInSlide .3s ease-out;transform:translateZ(0);backface-visibility:hidden}@keyframes fadeInSlide{0%{opacity:0;transform:translate(-20px) translateZ(0)}to{opacity:1;transform:translate(0) translateZ(0)}}.search-modal-container{background:#ffffff26;backdrop-filter:blur(15px) saturate(1.5);-webkit-backdrop-filter:blur(15px) saturate(1.5);border:1px solid rgba(255,255,255,.2);border-radius:12px;box-shadow:0 8px 32px #00000026,inset 0 1px #fff3;display:flex;flex-direction:column;height:100%;overflow:hidden;transform:translateZ(0);will-change:transform,opacity}@supports (-webkit-backdrop-filter: blur(1px)){.search-modal-overlay{transform:translateZ(0)}.search-modal-container{backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px)}@keyframes fadeInSlide{0%{opacity:0;transform:translate3d(-20px,0,0)}to{opacity:1;transform:translateZ(0)}}}.dark .search-modal-container{background:#1f293726;border-color:#ffffff1a}.search-modal-header{padding:1.5rem;background:#ffffff0d;border-bottom:1px solid rgba(255,255,255,.1);position:relative}.dark .search-modal-header{background:#1f29370d;border-bottom-color:#ffffff0d}.search-header-overlay{display:none}.search-header-content{display:flex;align-items:flex-start;justify-content:space-between;margin-bottom:1rem;position:relative;z-index:10}.search-title-wrapper{flex:1}.search-title{font-size:1.125rem;font-weight:600;color:#1f2937;margin:0}.dark .search-title{color:#f3f4f6}.search-subtitle{font-size:.875rem;color:#6b7280;margin:.25rem 0 0}.dark .search-subtitle{color:#9ca3af}.search-close-btn{padding:.375rem;border-radius:9999px;background:#6b728026;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border:1px solid rgba(107,114,128,.2);color:#6b7280;cursor:pointer;transition:all .2s;flex-shrink:0}.search-close-btn:hover{background:#6b728040;color:#374151}.dark .search-close-btn{background:#9ca3af26;border-color:#9ca3af33;color:#9ca3af}.dark .search-close-btn:hover{background:#9ca3af40;color:#d1d5db}.search-input-wrapper{position:relative;z-index:10}.search-input-icon{position:absolute;left:.75rem;top:50%;transform:translateY(-50%);width:1.25rem;height:1.25rem;color:#9ca3af;pointer-events:none}.dark .search-input-icon{color:#6b7280}.search-input{width:100%;padding:.625rem 2.5rem;background:#ffffff80;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);border:1px solid rgba(209,213,219,.3);border-radius:.5rem;color:#1f2937;font-size:.875rem;outline:none;transition:all .2s}.dark .search-input{background:#37415166;border-color:#4b55634d;color:#f3f4f6}.search-input::-moz-placeholder{color:#9ca3af}.search-input::placeholder{color:#9ca3af}.dark .search-input::-moz-placeholder{color:#6b7280}.dark .search-input::placeholder{color:#6b7280}.search-input:focus{background:#ffffffb3;border-color:#3b82f680;box-shadow:0 0 0 3px #3b82f61a}.dark .search-input:focus{background:#37415199;border-color:#3b82f680;box-shadow:0 0 0 3px #3b82f61a}.search-clear-wrapper{position:absolute;right:.75rem;top:50%;transform:translateY(-50%)}.search-clear-btn{padding:.25rem;border-radius:9999px;background:transparent;border:none;color:#9ca3af;cursor:pointer;transition:all .2s}.search-clear-btn:hover{background:#6b72801a;color:#6b7280}.dark .search-clear-btn{color:#6b7280}.dark .search-clear-btn:hover{background:#9ca3af1a;color:#9ca3af}.search-results-container{padding:1.5rem;flex:1;overflow-y:auto;scrollbar-width:thin;scrollbar-color:rgba(99,102,241,.3) transparent}.search-results-container::-webkit-scrollbar{width:8px}.search-results-container::-webkit-scrollbar-track{background:transparent}.search-results-container::-webkit-scrollbar-thumb{background-color:#6366f14d;border-radius:4px}.search-results-container::-webkit-scrollbar-thumb:hover{background-color:#6366f180}.dark .search-results-container{scrollbar-color:rgba(99,102,241,.4) transparent}.dark .search-results-container::-webkit-scrollbar-thumb{background-color:#6366f166}.dark .search-results-container::-webkit-scrollbar-thumb:hover{background-color:#6366f199}.search-results-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:1rem}.search-results-title{font-size:.875rem;font-weight:600;color:#6b7280;margin:0}.dark .search-results-title{color:#9ca3af}.search-pagination{display:flex;align-items:center;gap:.5rem}.search-pagination-btn{padding:.25rem;border-radius:.375rem;background:transparent;border:none;color:#6b7280;cursor:pointer;transition:all .2s}.search-pagination-btn:hover:not(:disabled){background:#6b72801a;color:#374151}.search-pagination-btn:disabled{opacity:.5;cursor:not-allowed}.dark .search-pagination-btn{color:#9ca3af}.dark .search-pagination-btn:hover:not(:disabled){background:#9ca3af1a;color:#d1d5db}.search-pagination-text{font-size:.75rem;color:#6b7280}.dark .search-pagination-text{color:#9ca3af}.search-results-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:.75rem}.search-airport-card{position:relative;padding:.625rem .75rem;background:#fff9;backdrop-filter:blur(16px) saturate(1.8);-webkit-backdrop-filter:blur(16px) saturate(1.8);border:1px solid rgba(209,213,219,.3);border-radius:.5rem;cursor:pointer;transition:all .2s;overflow:hidden}.search-airport-card:before{content:"";position:absolute;top:0;right:-5px;bottom:0;width:100%;background-image:var(--flag-url);background-position:right center;background-repeat:no-repeat;background-size:auto 100%;opacity:.15;border-top-right-radius:.5rem;border-bottom-right-radius:.5rem;pointer-events:none;z-index:0}.search-airport-card:hover,.search-airport-card.selected{background:#fffc;border-color:#3b82f680;box-shadow:0 4px 12px #0000001a}.dark .search-airport-card{background:#37415166;border-color:#4b55634d}.dark .search-airport-card:hover,.dark .search-airport-card.selected{background:#37415199;border-color:#3b82f680}.search-card-codes{position:relative;z-index:1;font-size:1rem;font-weight:700;color:#1f2937;margin-bottom:.125rem}.dark .search-card-codes{color:#f3f4f6}.search-card-name{position:relative;z-index:1;font-size:.75rem;font-weight:600;color:#374151;line-height:1.2;display:-webkit-box;-webkit-line-clamp:1;-webkit-box-orient:vertical;overflow:hidden}.dark .search-card-name{color:#e5e7eb}.search-card-country{position:relative;z-index:1;font-size:.625rem;color:#6b7280;margin-top:.125rem}.dark .search-card-country{color:#9ca3af}.search-empty-state{padding:2rem;text-align:center}.search-empty-icon{width:4rem;height:4rem;margin:0 auto 1rem;color:#d1d5db}.dark .search-empty-icon{color:#4b5563}.search-empty-message{color:#6b7280;font-size:.875rem;margin:0 0 .5rem}.dark .search-empty-message{color:#9ca3af}.search-empty-hint{color:#9ca3af;font-size:.75rem;margin:0}.dark .search-empty-hint{color:#6b7280}.help-modal-backdrop{position:absolute;inset:0;background:#00000080;backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px);z-index:1000;display:flex;align-items:center;justify-content:center;padding:1rem;opacity:0;animation:fadeIn .2s ease-out forwards;transform:translateZ(0)}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.help-modal{background:#fffffff2;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border:1px solid rgba(229,231,235,.8);border-radius:12px;box-shadow:0 20px 60px #0000004d,inset 0 1px #fff9;width:100%;max-width:700px;max-height:85vh;display:flex;flex-direction:column;margin:auto;opacity:0;transform:scale(.95) translateZ(0);transition:opacity .3s ease,transform .3s ease;transform-style:preserve-3d;backface-visibility:hidden;will-change:opacity,transform}.help-modal-backdrop.modal-ready .help-modal{opacity:1;transform:scale(1) translateZ(0)}.dark .help-modal{background:#111827f2;border:1px solid rgba(255,255,255,.1)}@supports (-webkit-backdrop-filter: blur(1px)){.help-modal-backdrop{transform:translateZ(0)}.help-modal{backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px)}}.help-modal-header{display:flex;align-items:center;justify-content:space-between;padding:1.5rem;border-bottom:1px solid rgba(255,255,255,.1);flex-shrink:0}.dark .help-modal-header{border-bottom-color:#ffffff0d}.help-modal-header h2{margin:0;font-size:1.5rem;font-weight:600;color:#111827}.dark .help-modal-header h2{color:#f3f4f6}.help-modal-close{padding:.5rem;background:#6b728026;border:1px solid rgba(107,114,128,.2);border-radius:8px;color:#6b7280;cursor:pointer;transition:all .2s}.help-modal-close:hover{background:#6b728040;border-color:#6b72804d;color:#374151}.dark .help-modal-close{color:#9ca3af;border-color:#9ca3af33}.dark .help-modal-close:hover{color:#d1d5db;border-color:#9ca3af4d}.help-modal-content{overflow-y:auto;padding:1.5rem;flex:1}.help-section{margin-bottom:2rem}.help-section:last-child{margin-bottom:0}.help-section h3{font-size:1.25rem;font-weight:600;color:#111827;margin:0 0 .75rem;border-bottom:2px solid rgba(59,130,246,.3);padding-bottom:.5rem}.dark .help-section h3{color:#f3f4f6;border-bottom-color:#60a5fa4d}.help-section h4{font-size:1rem;font-weight:600;color:#374151;margin:1rem 0 .5rem}.dark .help-section h4{color:#e5e7eb}.help-section p{color:#6b7280;line-height:1.6;margin:.5rem 0}.dark .help-section p{color:#9ca3af}.help-intro{font-size:.95rem;margin-bottom:1rem!important}.help-steps{display:flex;flex-direction:column;gap:1rem;margin:1rem 0}.help-step{display:flex;gap:1rem;align-items:flex-start}.help-step-number{flex-shrink:0;width:32px;height:32px;background:#3b82f626;border:2px solid rgba(59,130,246,.3);border-radius:50%;display:flex;align-items:center;justify-content:center;font-weight:700;color:#3b82f6;font-size:.875rem}.dark .help-step-number{background:#60a5fa26;border-color:#60a5fa4d;color:#60a5fa}.help-step-content h4{margin:0 0 .25rem;font-size:1rem}.help-step-content p{margin:0;font-size:.875rem}.help-tip{margin-top:1rem;padding:.75rem 1rem;background:#3b82f61a;border-left:3px solid rgba(59,130,246,.5);border-radius:4px;font-size:.875rem;color:#374151}.dark .help-tip{background:#60a5fa1a;border-left-color:#60a5fa80;color:#d1d5db}.help-legend{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:.75rem;margin:1rem 0}.help-legend-item{display:flex;align-items:center;gap:.75rem;padding:.5rem;background:#ffffff0d;border:1px solid rgba(255,255,255,.1);border-radius:6px}.dark .help-legend-item{background:#1118274d;border-color:#ffffff0d}.help-marker-icon{width:auto;height:auto;max-width:24px;max-height:24px;flex-shrink:0}.help-legend-text{display:flex;flex-direction:column;gap:.125rem;min-width:0}.help-legend-text strong{font-size:.875rem;font-weight:600;color:#111827}.dark .help-legend-text strong{color:#f3f4f6}.help-legend-text span{font-size:.75rem;color:#6b7280}.dark .help-legend-text span{color:#9ca3af}.help-lines{display:flex;flex-direction:column;gap:1rem;margin:1rem 0}.help-line-item{display:flex;align-items:center;gap:1rem}.help-line-example{flex-shrink:0}.help-line-text{display:flex;flex-direction:column;gap:.125rem}.help-line-text strong{font-size:.875rem;font-weight:600;color:#111827}.dark .help-line-text strong{color:#f3f4f6}.help-line-text span{font-size:.875rem;color:#6b7280}.dark .help-line-text span{color:#9ca3af}.help-route-details{display:flex;flex-direction:column;gap:.75rem;margin:1rem 0}.help-route-detail-item{display:flex;flex-direction:column;gap:.25rem;padding:.75rem;background:#ffffff0d;border:1px solid rgba(255,255,255,.1);border-radius:6px}.dark .help-route-detail-item{background:#1118274d;border-color:#ffffff0d}.help-route-detail-item strong{font-size:.875rem;font-weight:600;color:#111827}.dark .help-route-detail-item strong{color:#f3f4f6}.help-route-detail-item span{font-size:.875rem;color:#6b7280}.dark .help-route-detail-item span{color:#9ca3af}.help-modes{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:1rem;margin:1rem 0}.help-mode{padding:1rem;background:#ffffff0d;border:1px solid rgba(255,255,255,.1);border-radius:8px}.dark .help-mode{background:#1118274d;border-color:#ffffff0d}.help-mode-header{margin-bottom:.75rem}.help-mode-badge{font-size:.75rem;font-weight:500;padding:.125rem .5rem;background:#10b98126;color:#10b981;border-radius:12px;border:1px solid rgba(16,185,129,.3)}.dark .help-mode-badge{background:#10b98133;color:#34d399}.help-mode-list{list-style:none!important;padding:0;margin:0;display:flex;flex-direction:column;gap:.5rem}.help-mode-list li{list-style:none!important;font-size:.875rem;color:#374151;line-height:1.5}.dark .help-mode-list li{color:#d1d5db}.help-feature-list{list-style:none!important;padding:0;margin:.5rem 0;display:flex;flex-direction:column;gap:.5rem}.help-feature-list li{list-style:none!important;padding-left:1.5rem;position:relative;font-size:.875rem;color:#374151;line-height:1.6}.help-feature-list li:before{content:"→";position:absolute;left:0;color:#3b82f6;font-weight:600}.dark .help-feature-list li{color:#d1d5db}.dark .help-feature-list li:before{color:#60a5fa}.help-sub-list{list-style:none!important;padding-left:2rem!important;margin:.25rem 0!important;font-size:.8125rem;color:#4b5563;line-height:1.5}.help-sub-list:before{content:"•"!important;position:absolute;left:1.5rem!important;color:#9ca3af}.dark .help-sub-list{color:#9ca3af}.dark .help-sub-list:before{color:#6b7280}.help-sub-list-nested{list-style:disc!important;padding-left:1.5rem!important;margin:.375rem 0!important}.help-sub-list-nested li{font-size:.8125rem!important;color:#4b5563;line-height:1.5;padding-left:0!important;margin-bottom:.25rem}.help-sub-list-nested li:before{content:none!important}.dark .help-sub-list-nested li{color:#9ca3af}.help-shortcuts{display:flex;flex-direction:column;gap:.75rem;margin:1rem 0}.help-shortcut{display:flex;align-items:center;gap:1rem;padding:.75rem;background:#ffffff0d;border:1px solid rgba(255,255,255,.1);border-radius:6px}.dark .help-shortcut{background:#1118274d;border-color:#ffffff0d}.help-shortcut-key{display:inline-flex;align-items:center;justify-content:center;min-width:80px;padding:.5rem 1rem;font-family:SF Mono,Monaco,Cascadia Code,Roboto Mono,monospace;font-size:.875rem;font-weight:600;color:#3b82f6;background:#3b82f61a;border:2px solid rgba(59,130,246,.3);border-radius:6px;flex-shrink:0}.dark .help-shortcut-key{color:#60a5fa;background:#60a5fa1a;border-color:#60a5fa4d}.help-shortcut span{font-size:.875rem;color:#374151}.dark .help-shortcut span{color:#d1d5db}.help-pro-list{margin:.5rem 0;padding-left:1.5rem}.help-pro-list li{font-size:.875rem;color:#374151;line-height:1.6;margin-bottom:.375rem}.dark .help-pro-list li{color:#d1d5db}.help-section kbd{display:inline-block;padding:.125rem .375rem;font-family:SF Mono,Monaco,Cascadia Code,Roboto Mono,monospace;font-size:.75rem;font-weight:600;color:#3b82f6;background:#3b82f61a;border:1px solid rgba(59,130,246,.3);border-radius:4px}.dark .help-section kbd{color:#60a5fa;background:#60a5fa1a;border-color:#60a5fa4d}@media(max-width:768px){.sidebar{position:absolute;top:0;left:0;bottom:0;width:100%;max-width:400px;max-height:100%;margin:0;border-radius:0;z-index:50;animation:slideInLeftMobile .3s ease-out;transform:translateZ(0);backface-visibility:hidden}@keyframes slideInLeftMobile{0%{transform:translate(-100%) translateZ(0);-webkit-transform:translateX(-100%) translateZ(0)}to{transform:translate(0) translateZ(0);-webkit-transform:translateX(0) translateZ(0)}}@supports (-webkit-backdrop-filter: blur(1px)){.sidebar{transform:translateZ(0)}@keyframes slideInLeftMobile{0%{transform:translate3d(-100%,0,0)}to{transform:translateZ(0)}}}.sidebar-backdrop{display:block;position:fixed;inset:0;background:#00000080;border:none;padding:0;cursor:pointer;z-index:9;animation:fadeInBackdrop .3s ease-out;backface-visibility:hidden}@keyframes fadeInBackdrop{0%{opacity:0}to{opacity:1}}.sidebar-toggle-btn{top:1rem;left:1rem}}.notification-stack{position:absolute;top:16px;right:16px;z-index:1000;pointer-events:none;display:flex;flex-direction:column;align-items:flex-end;gap:8px}.filter-item,.helper-tooltips{pointer-events:auto}.helper-tooltips{display:flex;flex-direction:column;gap:8px}.helper-tooltip{animation:fadeIn .2s ease-in-out}@keyframes fadeIn{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}.helper-text{display:inline-flex;align-items:center;gap:6px;padding:8px 12px;font-size:12px;font-weight:500;color:#374151;background:#ffffff26;backdrop-filter:blur(25px) saturate(1.8);-webkit-backdrop-filter:blur(25px) saturate(1.8);border:1px solid rgba(255,255,255,.2);border-radius:8px;box-shadow:0 4px 16px #0000001a,inset 0 1px #fff3}.dark .helper-text{color:#e5e7eb;background:#11182726;border:1px solid rgba(255,255,255,.1)}.helper-key{display:inline-flex;align-items:center;justify-content:center;min-width:24px;height:22px;padding:0 6px;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;font-size:13px;font-weight:600;color:#111827;background:#ffffffe6;border:1px solid rgba(0,0,0,.1);border-radius:4px;box-shadow:0 1px 2px #0000001a}.dark .helper-key{color:#f9fafb;background:#374151e6;border:1px solid rgba(255,255,255,.15)}.maplibregl-popup.airport-hover-popup{pointer-events:none!important;max-width:none!important}.maplibregl-popup.airport-hover-popup .maplibregl-popup-content{padding:0!important;margin:0!important;border:none!important;border-radius:0!important;background:none!important;box-shadow:none!important;overflow:visible!important;max-width:none!important;pointer-events:none!important}.maplibregl-popup.airport-hover-popup .maplibregl-popup-tip{display:none!important}.airport-popup{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;min-width:260px;max-width:300px}.airport-popup-container{position:relative;background:#ffffff26;backdrop-filter:blur(25px) saturate(1.8);-webkit-backdrop-filter:blur(25px) saturate(1.8);border:1px solid rgba(255,255,255,.2);border-radius:10px;padding:10px 12px;box-shadow:0 8px 32px #00000026,inset 0 1px #fff3;overflow:hidden}.airport-popup-container:after{content:"";position:absolute;inset:0 -13px 0 0;background-image:var(--flag-url, none);background-position:right center;background-repeat:no-repeat;background-size:auto 100%;opacity:.15;border-radius:10px;pointer-events:none;z-index:0}.dark .airport-popup-container{background-color:#11182726;border:1px solid rgba(255,255,255,.1)}.dark .airport-popup-container:after{opacity:.1}.aircraft-popup-container{position:relative;background:#ffffff26;backdrop-filter:blur(25px) saturate(1.8);-webkit-backdrop-filter:blur(25px) saturate(1.8);border:1px solid rgba(255,255,255,.2);border-radius:10px;padding:10px 12px;box-shadow:0 8px 32px #00000026,inset 0 1px #fff3;overflow:hidden}.aircraft-popup-container:after{content:"";position:absolute;inset:0;background-image:var(--aircraft-image, none);background-position:center center;background-repeat:no-repeat;background-size:cover;mix-blend-mode:screen;opacity:.25;border-radius:10px;pointer-events:none;z-index:0}.dark .aircraft-popup-container{background:#11182726;border:1px solid rgba(255,255,255,.1)}.dark .aircraft-popup-container:after{opacity:.2}.popup-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:5px;line-height:1.2;position:relative;z-index:1}.airport-codes{font-family:SF Mono,Monaco,monospace;font-size:16px;font-weight:700;color:#111827;text-shadow:0 1px 2px rgba(0,0,0,.1);flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;padding-right:8px;letter-spacing:.5px}.dark .airport-codes{color:#f9fafb}.airport-badge{font-size:9px;font-weight:600;color:#6b7280;text-transform:uppercase;letter-spacing:.3px;flex-shrink:0}.dark .airport-badge{color:#d1d5db}.popup-name{font-size:13px;font-weight:600;color:#374151;line-height:1.2;margin-bottom:6px;position:relative;z-index:1}.dark .popup-name{color:#e5e7eb}.popup-details{display:flex;justify-content:space-between;align-items:center;gap:8px;font-size:10px;font-weight:500;color:#6b7280;line-height:1.2;margin-bottom:5px;position:relative;z-index:1}.dark .popup-details{color:#9ca3af}.detail-item{white-space:nowrap}.popup-action{text-align:center;font-size:9px;color:#6b7280;opacity:.5;font-weight:500;text-transform:uppercase;letter-spacing:.3px;line-height:1.2;position:relative;z-index:1}.dark .popup-action{color:#d1d5db;opacity:.6}.filter-button{display:inline-flex;align-items:center;gap:6px;padding:8px 12px;font-size:12px;font-weight:500;color:#374151;background:#ffffff26;backdrop-filter:blur(25px) saturate(1.8);-webkit-backdrop-filter:blur(25px) saturate(1.8);border:1px solid rgba(255,255,255,.2);border-radius:8px;box-shadow:0 4px 16px #0000001a,inset 0 1px #fff3;transition:all .2s;cursor:pointer}.filter-button:hover{box-shadow:0 6px 20px #00000026,inset 0 1px #ffffff4d}.dark .filter-button{color:#e5e7eb;background:#11182726;border:1px solid rgba(255,255,255,.1)}.filter-panel{background:#ffffff26;backdrop-filter:blur(25px) saturate(1.8);-webkit-backdrop-filter:blur(25px) saturate(1.8);border-radius:12px;box-shadow:0 8px 32px #00000026,inset 0 1px #fff3;border:1px solid rgba(255,255,255,.2);overflow:hidden;max-height:80vh}.dark .filter-panel{background:#11182726;border:1px solid rgba(255,255,255,.1)}.filter-panel::-webkit-scrollbar{width:6px}.filter-panel::-webkit-scrollbar-track{background:transparent}.filter-panel::-webkit-scrollbar-thumb{background:#9ca3af4d;border-radius:3px}.filter-panel::-webkit-scrollbar-thumb:hover{background:#9ca3af80}.dark .filter-panel::-webkit-scrollbar-thumb{background:#4b55634d}.dark .filter-panel::-webkit-scrollbar-thumb:hover{background:#4b556380}.filter-panel-header{background:#6366f11a;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);border-bottom:1px solid rgba(255,255,255,.1);color:#374151;padding:1.25rem}.dark .filter-panel-header{background:#6366f114;color:#f3f4f6;border-bottom-color:#ffffff0d}.combobox-container{position:relative}.combobox-controls{position:absolute;inset-y:0;right:0;display:flex;align-items:center;padding-right:.5rem;gap:.25rem;pointer-events:none}.combobox-clear-btn{padding:.125rem;border-radius:.25rem;transition:background-color .2s;color:#9ca3af;pointer-events:auto}.combobox-clear-btn:hover{background-color:#9ca3af1a;color:#6b7280}.dark .combobox-clear-btn{color:#6b7280}.dark .combobox-clear-btn:hover{background-color:#6b728033;color:#9ca3af}.combobox-trigger{color:#9ca3af;pointer-events:auto;cursor:pointer;display:flex;align-items:center}.dark .combobox-trigger{color:#6b7280}.combobox-content{position:fixed;background:#ffffff4d;backdrop-filter:blur(12px) saturate(1.3);-webkit-backdrop-filter:blur(12px) saturate(1.3);border-radius:.5rem;border:1px solid rgba(209,213,219,.5);box-shadow:0 10px 25px #0000001a,0 4px 6px #0000000d;max-height:15rem;overflow-y:auto;padding:.25rem;z-index:10000;animation:dropdownFadeIn .15s ease-out;transform:translateZ(0);backface-visibility:hidden;will-change:transform,opacity}.combobox-content-multi{max-height:18rem}.dark .combobox-content{background:#37415166;border-color:#4b556380}.combobox-item{width:100%;display:flex;align-items:center;justify-content:space-between;padding:.5rem .75rem;text-align:left;border-radius:.375rem;transition:all .15s;cursor:pointer;color:#374151}.combobox-item:hover{background:#6366f114;color:#111827}.combobox-item[data-highlighted]{background:#6366f11a;outline:none}.dark .combobox-item{color:#d1d5db}.dark .combobox-item:hover{background:#6366f126;color:#f3f4f6}.combobox-check{color:#4f46e5;flex-shrink:0}.dark .combobox-check{color:#818cf8}.combobox-empty{padding:.75rem;text-align:center;color:#9ca3af;font-size:.875rem}.dark .combobox-empty{color:#6b7280}.combobox-item-multi{padding-left:2.5rem;position:relative}.combobox-checkbox-wrapper{position:absolute;left:.75rem;top:50%;transform:translateY(-50%)}.combobox-checkbox{width:1rem;height:1rem;border-radius:.25rem;border:2px solid #d1d5db;display:flex;align-items:center;justify-content:center;transition:all .15s;background:#fff}.combobox-checkbox-checked{background:#4f46e5;border-color:#4f46e5}.dark .combobox-checkbox{background:#374151;border-color:#4b5563}.dark .combobox-checkbox-checked{background:#6366f1;border-color:#6366f1}.combobox-item-label{flex:1}.combobox-tags-display{padding:.75rem;border-bottom:1px solid rgba(229,231,235,.5);max-height:8rem;overflow-y:auto}.dark .combobox-tags-display{border-bottom-color:#4b556380}.combobox-tags-display::-webkit-scrollbar{width:6px}.combobox-tags-display::-webkit-scrollbar-track{background:transparent}.combobox-tags-display::-webkit-scrollbar-thumb{background:#9ca3af4d;border-radius:3px}.combobox-tags-display::-webkit-scrollbar-thumb:hover{background:#9ca3af80}.combobox-content::-webkit-scrollbar{width:6px}.combobox-content::-webkit-scrollbar-track{background:transparent}.combobox-content::-webkit-scrollbar-thumb{background:#9ca3af4d;border-radius:3px}.combobox-content::-webkit-scrollbar-thumb:hover{background:#9ca3af80}@keyframes dropdownFadeIn{0%{opacity:0;transform:translateY(-4px) translateZ(0)}to{opacity:1;transform:translateY(0) translateZ(0)}}@supports (-webkit-backdrop-filter: blur(1px)){.combobox-content{transform:translateZ(0);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px)}@keyframes dropdownFadeIn{0%{opacity:0;transform:translate3d(0,-4px,0)}to{opacity:1;transform:translateZ(0)}}}.range-rings-card{background:#fff9;backdrop-filter:blur(20px) saturate(1.5);-webkit-backdrop-filter:blur(20px) saturate(1.5);border:1px solid rgba(229,231,235,.3);border-radius:8px;overflow:hidden;box-shadow:0 2px 8px #00000014,inset 0 1px #ffffff1a;margin:0rem 1rem .75rem}.dark .range-rings-card{background:#37415166;border-color:#4b55634d}.range-rings-header{display:flex;align-items:center;justify-content:space-between;padding:.5rem .625rem;background:linear-gradient(to right,#f3f4f666,#f9fafb33);border-bottom:1px solid rgba(209,213,219,.3);gap:.375rem}.dark .range-rings-header{background:linear-gradient(to right,#4b556366,#37415133);border-bottom-color:#4b55634d}.range-rings-header-content{display:flex;align-items:center;gap:.375rem}.range-rings-icon{width:.875rem;height:.875rem;color:#6b7280;flex-shrink:0}.dark .range-rings-icon{color:#d1d5db}.range-rings-label{font-size:.625rem;font-weight:600;color:#6b7280;text-transform:uppercase;letter-spacing:.05em}.dark .range-rings-label{color:#d1d5db}.range-rings-toggle{padding:.125rem .5rem;font-size:.625rem;font-weight:600;border-radius:.25rem;background:linear-gradient(to bottom,#fffc,#f3f4f6cc);color:#6b7280;border:1px solid rgba(209,213,219,.5);box-shadow:0 1px 2px #0000000d;transition:all .2s ease;cursor:pointer}.range-rings-toggle:hover:not(:disabled){background:linear-gradient(to bottom,#fff,#f9fafb);color:#374151;border-color:#d1d5dbb3;box-shadow:0 2px 4px #0000001a;transform:translateY(-1px)}.range-rings-toggle-active{background:linear-gradient(to bottom,#3b82f6,#2563eb);color:#fff;border-color:#2563eb;box-shadow:0 2px 4px #3b82f64d,inset 0 1px #fff3}.range-rings-toggle-active:hover:not(:disabled){background:linear-gradient(to bottom,#2563eb,#1d4ed8);border-color:#1d4ed8;box-shadow:0 3px 6px #3b82f666,inset 0 1px #fff3}.range-rings-toggle-disabled{opacity:.5;cursor:not-allowed}.dark .range-rings-toggle{background:linear-gradient(to bottom,#4b5563cc,#374151cc);color:#9ca3af;border-color:#4b556380}.dark .range-rings-toggle:hover:not(:disabled){background:linear-gradient(to bottom,#4b5563,#374151);color:#d1d5db;border-color:#4b5563b3}.dark .range-rings-toggle-active{background:linear-gradient(to bottom,#60a5fa,#3b82f6);color:#fff;border-color:#3b82f6}.dark .range-rings-toggle-active:hover:not(:disabled){background:linear-gradient(to bottom,#3b82f6,#2563eb);border-color:#2563eb}.range-rings-body{padding:.625rem;animation:slideDown .2s ease-out;transform:translateZ(0);backface-visibility:hidden}@keyframes slideDown{0%{opacity:0;transform:translateY(-10px) translateZ(0)}to{opacity:1;transform:translateY(0) translateZ(0)}}.legend-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:.5rem .75rem}.legend-item{display:flex;flex-direction:column;gap:.25rem}.legend-dash{width:100%;height:0;border-top:2px dashed;border-radius:1px}.legend-text{font-size:.75rem;color:#6b7280;text-align:center}.dark .legend-text{color:#9ca3af}.timeline-container{position:absolute;bottom:1rem;left:1rem;right:5rem;z-index:20}.timeline-wrapper{background:#fff9;backdrop-filter:blur(20px) saturate(1.5);-webkit-backdrop-filter:blur(20px) saturate(1.5);border:1px solid rgba(229,231,235,.3);border-radius:8px;overflow:hidden;box-shadow:0 2px 8px #00000014,inset 0 1px #ffffff1a}.dark .timeline-wrapper{background:#37415166;border-color:#4b55634d}.timeline-content{padding:.625rem .75rem}.timeline-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:.5rem}.timeline-title-wrapper{display:flex;align-items:center;gap:.5rem}.timeline-icon{width:.875rem;height:.875rem;color:#6b7280}.dark .timeline-icon{color:#9ca3af}.timeline-title{font-size:.75rem;font-weight:600;color:#374151}.dark .timeline-title{color:#e5e7eb}.timeline-status{display:flex;align-items:center;gap:.75rem}.timeline-current-time{font-size:.75rem;font-weight:600;color:#6366f1}.dark .timeline-current-time{color:#a5b4fc}.timeline-arrival-indicator{display:flex;align-items:center;font-size:.75rem;font-weight:500;color:#ea580c}.dark .timeline-arrival-indicator{color:#fb923c}.timeline-arrival-dot{display:inline-block;width:.5rem;height:.5rem;background:#ea580c;border-radius:50%;margin-right:.375rem}.dark .timeline-arrival-dot{background:#fb923c}.timeline-segments-wrapper{display:flex;width:100%;user-select:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none}.timeline-segment{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;flex-shrink:0}.timeline-segment+.timeline-segment{margin-left:-1px}.timeline-segment:focus:not(:focus-visible){outline:none;box-shadow:none}.timeline-hour-label{font-size:.75rem;font-weight:500}
