:root{font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;color:#eaf4f8;background:#071119;--background: #071119;--surface: #0c1822;--surface-raised: #10212d;--border: rgba(183, 216, 229, .12);--border-strong: rgba(183, 216, 229, .22);--text: #edf7fb;--muted: #8ea8b5;--accent: #58d5cf;--accent-soft: rgba(88, 213, 207, .12);--warning: #f2c879;--warning-soft: rgba(242, 200, 121, .12);--shadow: 0 18px 50px rgba(0, 0, 0, .18)}*{box-sizing:border-box}html{min-width:320px;background:var(--background)}body{margin:0;min-width:320px;min-height:100vh;background:radial-gradient(circle at 88% -10%,rgba(88,213,207,.12),transparent 32rem),var(--background)}button,input{font:inherit}button{cursor:pointer}button:disabled{cursor:default;opacity:.55}.app-shell{width:min(100%,1180px);min-height:100vh;margin:0 auto;padding:0 20px 36px}.site-header{display:flex;align-items:center;justify-content:space-between;min-height:84px;border-bottom:1px solid var(--border)}.brand{display:flex;align-items:center;gap:12px}.brand-mark{position:relative;width:42px;height:42px;border:1px solid rgba(88,213,207,.38);border-radius:14px;background:#58d5cf1a}.brand-mark:before,.brand-mark:after,.brand-mark span{position:absolute;content:"";background:var(--accent);border-radius:999px}.brand-mark:before{width:22px;height:2px;top:20px;left:9px}.brand-mark:after{width:2px;height:22px;top:9px;left:20px}.brand-mark span{width:6px;height:6px;top:18px;left:18px}.brand-name{font-size:20px;font-weight:750}.brand-subtitle{margin-top:2px;color:var(--muted);font-size:11px;text-transform:uppercase}.live-indicator{display:inline-flex;align-items:center;gap:7px;padding:7px 11px;border-radius:999px;color:#baf1ed;background:#58d5cf14;font-size:12px;font-weight:700}.live-dot{width:7px;height:7px;border-radius:50%;background:var(--accent)}main{padding-top:44px}.hero{display:flex;align-items:flex-end;justify-content:space-between;gap:24px;margin-bottom:32px}.eyebrow{margin-bottom:8px;color:var(--accent);font-size:12px;font-weight:750;text-transform:uppercase}.hero h1{margin:0;font-size:clamp(34px,7vw,58px);line-height:.98}.hero p{margin:16px 0 0;color:var(--muted);line-height:1.6}.hero-summary{display:flex;flex-direction:column;min-width:150px;padding:18px 20px;border:1px solid var(--border);border-radius:18px;background:var(--surface)}.hero-summary strong{font-size:28px}.hero-summary span{color:var(--muted);font-size:12px}.base-filter{display:flex;gap:8px;margin-bottom:12px;padding-bottom:4px;overflow-x:auto;scrollbar-width:none}.base-filter::-webkit-scrollbar{display:none}.base-filter-button{display:inline-flex;flex:0 0 auto;align-items:center;gap:7px;min-height:40px;padding:0 13px;border:1px solid var(--border);border-radius:999px;color:var(--muted);background:var(--surface);white-space:nowrap}.base-filter-button small{color:#66818e;font-size:9px;font-weight:800}.base-filter-button.active{border-color:#58d5cf61;color:#c9f7f3;background:var(--accent-soft)}.base-filter-button.active small{color:var(--accent)}.toolbar{display:grid;grid-template-columns:1fr auto;gap:12px}.search-field{position:relative}.search-icon{position:absolute;top:50%;left:16px;color:var(--muted);transform:translateY(-50%)}.search-field input{width:100%;height:50px;padding:0 16px 0 46px;border:1px solid var(--border);border-radius:14px;outline:none;color:var(--text);background:var(--surface)}.refresh-button,.primary-button{min-height:50px;padding:0 18px;border:1px solid var(--border-strong);border-radius:14px;color:var(--text);background:var(--surface-raised);font-weight:700}.refresh-icon{display:inline-block;color:var(--accent)}.spinning{animation:spin .7s linear infinite}.sync-row{display:flex;justify-content:space-between;gap:12px;margin:10px 2px 28px;color:#718c99;font-size:11px}.flight-groups{display:grid;gap:34px}.group-heading{display:flex;justify-content:space-between;margin-bottom:14px}.group-heading h2{margin:0;font-size:17px}.group-heading span{color:var(--muted);font-size:11px}.flight-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.flight-card{padding:20px;border:1px solid var(--border);border-radius:20px;background:var(--surface);box-shadow:var(--shadow)}.flight-card-top{display:flex;justify-content:space-between;gap:14px}.flight-operator{color:var(--muted);font-size:10px;font-weight:750}.flight-card-actions{display:flex;flex:0 0 auto;flex-direction:column;align-items:flex-end;gap:8px}.follow-button{min-height:31px;padding:0 11px;border:1px solid var(--border-strong);border-radius:999px;color:var(--muted);background:#ffffff06;font-size:10px;font-weight:760;transition:border-color .14s ease,color .14s ease,background .14s ease}.follow-button:hover:not(:disabled){border-color:#58d5cf6b;color:var(--text)}.follow-button.following{border-color:#58d5cf5c;color:#baf1ed;background:var(--accent-soft)}.follow-button:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.history-toggle{min-height:29px;padding:0 10px;border:0;color:#718f9b;background:transparent;font-size:9px;font-weight:720}.history-toggle:hover{color:var(--text)}.history-toggle:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:999px}.flight-card h3{margin:4px 0 0;font-size:25px}.state-badge{padding:6px 9px;border-radius:999px;font-size:10px;font-weight:750}.state-badge.paired{color:#aff0ea;background:var(--accent-soft)}.state-badge.partial{color:#f5d898;background:var(--warning-soft)}.route{display:flex;align-items:flex-start;gap:10px;margin:22px 0}.base-origin{display:flex;flex:0 0 auto;flex-direction:column;min-width:58px;padding-top:5px}.base-name{color:var(--text);font-size:11px;font-weight:700}.base-code{margin-top:2px;color:var(--muted);font-size:9px;font-weight:800}.route-arrow{padding-top:12px;color:#587583}.route-destinations{display:flex;flex:1;flex-wrap:wrap;gap:7px}.destination{display:flex;flex-direction:column;min-width:0;padding:7px 10px;border-radius:10px;background:#58d5cf12}.destination-name{color:#c8f5f2;font-size:12px;font-weight:760;line-height:1.25}.destination-code{margin-top:2px;color:#6f969e;font-size:9px;font-weight:750}.movement-grid{display:grid;grid-template-columns:1fr 1px 1fr;gap:14px;padding:16px;border-radius:14px;background:#040d135c}.movement-divider{width:1px;background:var(--border)}.movement-label{color:var(--muted);font-size:10px;text-transform:uppercase}.movement-time{margin-top:4px;font-size:22px;font-weight:760}.movement-planned{margin-top:2px;color:#6f8793;font-size:9px}.movement-status{margin-top:5px;color:#7f9ba8;font-size:10px;font-weight:650}.movement-status.estimated,.movement-status.next-information{color:var(--warning)}.movement-status.departed,.movement-status.arrived{color:var(--accent)}.movement-status.cancelled{color:#e6a6a6}.flight-card-footer{display:flex;justify-content:space-between;margin-top:14px;color:#6c8794;font-size:10px}.flight-history{margin-top:14px;padding-top:14px;border-top:1px solid var(--border)}.flight-history-heading{display:flex;align-items:center;justify-content:space-between;gap:12px}.flight-history-heading strong{font-size:12px}.flight-history-heading span,.history-loading,.timeline-empty{color:var(--muted);font-size:10px}.history-loading,.timeline-empty{margin-top:12px}.history-error{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-top:10px;padding:9px 10px;border-radius:10px;color:#e9cb8c;background:var(--warning-soft);font-size:10px}.history-error button{flex:0 0 auto;padding:4px 8px;border:1px solid var(--border-strong);border-radius:999px;color:inherit;background:transparent;font-size:9px}.timeline-list{display:grid;gap:0;margin-top:12px}.timeline-entry{position:relative;display:grid;grid-template-columns:10px 1fr;gap:10px;padding-bottom:15px}.timeline-entry:last-child{padding-bottom:0}.timeline-entry:before{position:absolute;top:10px;bottom:-2px;left:4px;width:1px;content:"";background:var(--border)}.timeline-entry:last-child:before{display:none}.timeline-dot{position:relative;z-index:1;width:9px;height:9px;margin-top:4px;border:2px solid var(--surface);border-radius:50%;background:var(--accent)}.timeline-entry-body{min-width:0}.timeline-meta{display:flex;flex-wrap:wrap;align-items:center;gap:7px;color:#698590;font-size:9px}.timeline-direction{padding:2px 5px;border-radius:999px;color:#aadeda;background:var(--accent-soft);font-weight:760}.timeline-changes{display:grid;gap:5px;margin-top:5px}.timeline-change{display:flex;flex-wrap:wrap;gap:5px;font-size:10px;line-height:1.35}.timeline-change strong{color:#cfe5eb;font-weight:700}.timeline-change span{color:var(--muted)}.follow-error{margin-top:10px;padding:8px 10px;border-radius:10px;color:#e9cb8c;background:var(--warning-soft);font-size:10px;line-height:1.4}.state-panel{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:260px;padding:32px;border:1px solid var(--border);border-radius:20px;text-align:center;background:var(--surface)}.state-panel span{margin-top:7px;color:var(--muted)}.state-panel .primary-button{margin-top:20px}.spinner{width:25px;height:25px;border:2px solid rgba(88,213,207,.14);border-top-color:var(--accent);border-radius:50%;animation:spin .8s linear infinite}.inline-warning{margin-bottom:18px;padding:11px 14px;border-radius:12px;color:#e9cb8c;background:var(--warning-soft)}footer{display:flex;justify-content:space-between;margin-top:52px;padding-top:20px;border-top:1px solid var(--border);color:#58717e;font-size:10px}@keyframes spin{to{transform:rotate(360deg)}}@media(max-width:720px){.app-shell{padding-left:14px;padding-right:14px}.brand-subtitle{display:none}.hero{align-items:flex-start;flex-direction:column}.hero-summary{width:100%}.toolbar{grid-template-columns:1fr}.refresh-button{width:100%}.sync-row{flex-direction:column}.flight-list{grid-template-columns:1fr}footer{flex-direction:column;gap:8px}}.notification-enrollment{display:flex;align-items:center;justify-content:space-between;gap:18px;margin-bottom:20px;padding:14px 16px;border:1px solid var(--border);border-radius:15px;background:var(--surface)}.notification-enrollment>div{display:flex;min-width:0;flex-direction:column;gap:4px}.notification-enrollment strong{font-size:12px}.notification-enrollment span{color:var(--muted);font-size:10px;line-height:1.45}.notification-enrollment.enabled{border-color:#58d5cf4d;background:var(--accent-soft)}.notification-enrollment.unsupported,.notification-enrollment.blocked{opacity:.78}.notification-button{flex:0 0 auto;min-height:38px;padding:0 14px;border:1px solid rgba(88,213,207,.42);border-radius:999px;color:#baf1ed;background:var(--accent-soft);font-size:10px;font-weight:760}.notification-button:hover:not(:disabled){border-color:var(--accent)}.notification-button:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.notification-button:disabled{opacity:.58}.notification-error{color:#e9cb8c!important}@media(max-width:700px){.notification-enrollment{align-items:stretch;flex-direction:column}.notification-button{width:100%}}
