:root{--navy:#111d29;--navy2:#1b2c3a;--red:#e80b46;--line:#dde3e7;--muted:#74818b;--ground:#3dc282;--low:#e0a72f;--mid:#22a8ce;--high:#6e63d4}*{box-sizing:border-box}html,body{height:100%;margin:0;overflow:hidden}body{font-family:Inter,sans-serif;color:#17202a;background:#c9dde2}button,input{font:inherit}.topbar{height:62px;display:flex;align-items:center;gap:22px;padding:0 18px;background:var(--navy);color:#fff;position:relative;z-index:1001;box-shadow:0 2px 10px #0004}.brand{display:flex;align-items:center;gap:9px;min-width:260px;color:#fff;text-decoration:none;font-size:20px}.brand>span{display:grid;place-items:center;width:32px;height:32px;border-radius:7px;background:var(--red);transform:rotate(-12deg)}.brand em{color:#aebbc5;font-style:normal;font-weight:400}.search{position:relative;max-width:610px;flex:1;height:40px;display:flex;align-items:center;border-radius:5px;background:#263746}.search>b{padding-left:13px;font-size:22px;color:#aebbc5;transform:rotate(-18deg)}.search input{width:100%;height:100%;border:0;outline:0;padding:0 12px;background:transparent;color:#fff}.search input::placeholder{color:#93a0a9}.search kbd{margin-right:10px;padding:3px 6px;border:1px solid #5c6974;border-radius:4px;color:#a5b0b8;font-size:9px}.search-results{position:absolute;top:46px;left:0;right:0;max-height:390px;overflow:auto;border-radius:5px;background:#fff;color:#17202a;box-shadow:0 12px 35px #0005}.search-results button{width:100%;padding:12px 14px;border:0;border-bottom:1px solid #e8ecee;background:#fff;text-align:left;cursor:pointer}.search-results button:hover{background:#f3f6f7}.search-results strong{font:600 12px "Roboto Mono"}.search-results span{margin-left:8px;color:var(--muted);font-size:10px}.search-results small{display:block;margin-top:4px;color:#849099;font-size:9px}.network{margin-left:auto;display:flex;align-items:center;gap:8px}.network>i{width:8px;height:8px;border-radius:50%;background:#e0a72f;box-shadow:0 0 8px currentColor}.network.live>i{background:#3ddd82;animation:pulse 1.7s infinite}.network.error>i{background:var(--red)}@keyframes pulse{50%{opacity:.35}}.network div{display:flex;flex-direction:column}.network strong{font:600 9px "Roboto Mono";letter-spacing:.07em}.network small{margin-top:3px;color:#96a3ad;font-size:7px}.filter-button{height:38px;padding:0 13px;border:1px solid #40505d;border-radius:5px;background:#1d2c39;color:#dce4e9;cursor:pointer}.filter-button span{display:inline-grid;place-items:center;min-width:17px;height:17px;margin-left:6px;border-radius:9px;background:#51606c;font-size:9px}main{height:calc(100% - 62px);display:flex}.sidebar{width:370px;min-width:370px;position:relative;z-index:900;overflow-y:auto;background:#fff;box-shadow:4px 0 17px #2d465033}.empty-state{height:100%;display:flex;align-items:center;justify-content:center;flex-direction:column;padding:50px;text-align:center}.empty-state>span{display:grid;place-items:center;width:65px;height:65px;border-radius:50%;background:#eef2f4;color:#748691;font-size:30px}.empty-state h1{margin:18px 0 8px;font-size:18px}.empty-state p{margin:0;color:var(--muted);font-size:11px;line-height:1.6}.side-heading{display:flex;align-items:flex-start;justify-content:space-between;padding:24px 22px 16px}.side-heading small{font:500 8px "Roboto Mono";letter-spacing:.12em;color:var(--muted)}.side-heading h1{margin:4px 0 0;font:600 29px "Roboto Mono"}.side-heading button{border:0;background:none;color:#73808a;font-size:27px;cursor:pointer}.identity{display:flex;align-items:center;gap:11px;padding:0 22px 20px}.flag{display:grid;place-items:center;width:39px;height:39px;border-radius:5px;background:var(--navy);color:#fff}.identity>div:nth-child(2){display:flex;flex-direction:column;gap:3px}.identity strong{font-size:11px}.identity small{color:var(--muted);font-size:9px}.status{margin-left:auto;padding:6px 8px;border-radius:4px;background:#e5f7ec;color:#168447;font:700 8px "Roboto Mono"}.status.ground{background:#edf0f2;color:#687680}.icao-block{display:grid;grid-template-columns:1fr 1fr;border-top:1px solid var(--line);border-bottom:1px solid var(--line);background:#f6f8f9}.icao-block div{padding:16px 22px;border-right:1px solid var(--line)}.icao-block div:last-child{border:0}.icao-block span,.metric-grid span,.coordinates span{display:block;margin-bottom:7px;color:var(--muted);font:500 8px "Roboto Mono";letter-spacing:.08em}.icao-block strong{font:600 13px "Roboto Mono";text-transform:uppercase}.metric-grid{display:grid;grid-template-columns:1fr 1fr;border-bottom:1px solid var(--line)}.metric-grid div{padding:19px 22px;border-right:1px solid var(--line);border-bottom:1px solid var(--line)}.metric-grid div:nth-child(even){border-right:0}.metric-grid strong{font:600 19px "Roboto Mono"}.metric-grid small{display:block;margin-top:4px;color:var(--muted);font-size:8px}.position-card,.source-card{padding:21px 22px;border-bottom:1px solid var(--line)}.section-title{display:flex;align-items:center;justify-content:space-between}.section-title strong,.source-card>strong{font-size:11px}.section-title span{color:var(--muted);font:500 8px "Roboto Mono"}.coordinates{display:grid;grid-template-columns:1fr 1fr;margin:18px 0}.coordinates strong{font:600 12px "Roboto Mono"}.position-card button{width:100%;padding:10px;border:1px solid #d6dde1;border-radius:4px;background:#f4f6f7;font-size:10px;cursor:pointer}.source-card p{color:var(--muted);font-size:10px;line-height:1.55}.source-card a{color:var(--red);font-size:9px;text-decoration:none}.map-shell{flex:1;position:relative;overflow:hidden}.leaflet-container{width:100%;height:100%;background:#bfd8df;font-family:Inter,sans-serif}.leaflet-control-attribution{font-size:8px!important}.aircraft-icon{background:transparent;border:0}.aircraft-icon div{width:28px;height:28px;display:grid;place-items:center;color:var(--color);font-size:20px;filter:drop-shadow(0 1px 1px #0008);transform:rotate(var(--rotation));transition:color .15s}.aircraft-icon div:after{content:"";position:absolute;width:4px;height:4px;border-radius:50%;background:currentColor;opacity:.45}.aircraft-icon:hover div,.aircraft-icon.selected div{color:var(--red);font-size:24px;z-index:1000}.aircraft-tooltip{padding:6px 8px!important;border:0!important;border-radius:3px!important;background:#172635!important;color:#fff!important;font:500 9px "Roboto Mono"!important;box-shadow:0 2px 8px #0004!important}.aircraft-tooltip:before{border-top-color:#172635!important}.map-tools{position:absolute;z-index:800;right:14px;top:14px;display:flex;flex-direction:column;overflow:hidden;border-radius:5px;box-shadow:0 2px 12px #334f5a44}.map-tools button{width:39px;height:39px;border:0;border-bottom:1px solid #e1e5e7;background:#fff;font-size:18px;cursor:pointer}.map-summary{position:absolute;z-index:800;left:14px;top:14px;display:flex;border-radius:6px;background:#fffffff2;box-shadow:0 2px 13px #334f5a44;overflow:hidden}.map-summary>div{min-width:100px;padding:10px 14px;border-right:1px solid #e2e6e8}.map-summary>div:last-child{border:0}.map-summary span{display:block;color:var(--muted);font:500 7px "Roboto Mono"}.map-summary strong{display:block;margin-top:4px;font:600 16px "Roboto Mono"}.map-summary div:first-child i{float:left;width:6px;height:6px;margin:3px 5px 0 0;border-radius:50%;background:#3dc282}.altitude-legend{position:absolute;z-index:800;right:14px;bottom:18px;padding:9px 11px;border-radius:5px;background:#ffffffe8;box-shadow:0 2px 10px #334f5a44;font:500 8px "Roboto Mono"}.altitude-legend span{margin-left:10px}.altitude-legend span:first-child{margin:0}.altitude-legend i,.filter-popover label i{display:inline-block;width:7px;height:7px;margin-right:4px;border-radius:50%}.ground{background:var(--ground)}.low{background:var(--low)}.mid{background:var(--mid)}.high{background:var(--high)}.loading{position:absolute;z-index:850;left:50%;top:18px;display:flex;align-items:center;gap:8px;padding:9px 13px;border-radius:5px;background:#172635;color:#fff;font-size:9px;transform:translateX(-50%);box-shadow:0 2px 12px #0003}.loading span{width:13px;height:13px;border:2px solid #667681;border-top-color:#fff;border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.filter-popover{position:fixed;z-index:1200;right:18px;top:57px;width:230px;padding:16px;border-radius:6px;background:#fff;box-shadow:0 8px 30px #0004}.filter-popover>div{display:flex;justify-content:space-between}.filter-popover>div strong{font-size:11px}.filter-popover>div button{border:0;background:none;font-size:18px;cursor:pointer}.filter-popover label{display:flex;align-items:center;padding:8px 0;color:#59656d;font-size:10px}.filter-popover input{margin-right:8px}.filter-popover .reset{width:100%;margin-top:8px;padding:8px;border:1px solid var(--line);background:#f6f8f9;font-size:9px;cursor:pointer}.error-banner{position:fixed;z-index:1300;left:50%;bottom:24px;min-width:380px;padding:14px 16px;border-radius:6px;background:#8f1535;color:#fff;transform:translateX(-50%);box-shadow:0 5px 20px #0004}.error-banner strong,.error-banner span{display:block}.error-banner strong{font-size:11px}.error-banner span{margin-top:4px;color:#ffdce5;font-size:9px}.error-banner button{position:absolute;right:12px;top:14px;border:1px solid #ffffff55;background:transparent;color:#fff;font-size:9px}.mobile-details{display:none}
@media(max-width:760px){.topbar{gap:9px;padding:0 10px}.brand{min-width:auto}.brand strong,.search kbd,.filter-button,.network small{display:none}.search{min-width:0}.network strong{font-size:7px}main{height:calc(100% - 62px)}.sidebar{position:absolute;left:0;top:62px;bottom:0;z-index:1100;width:min(370px,92vw);min-width:0;transform:translateX(-105%);transition:transform .25s}.sidebar.open{transform:none}.map-summary>div{min-width:72px;padding:9px}.map-summary span{font-size:6px}.map-summary strong{font-size:13px}.altitude-legend{display:none}.mobile-details{display:block;position:absolute;z-index:850;left:12px;right:12px;bottom:12px;height:46px;border:0;border-radius:6px;background:#fff;box-shadow:0 3px 14px #314f5a66;font-size:10px;font-weight:600}.mobile-details span{float:right}.error-banner{min-width:0;left:12px;right:12px;transform:none}.error-banner button{position:static;margin-top:8px}.leaflet-control-zoom{margin-top:78px!important}}
.route-data{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:12px;padding:15px 22px;border-top:1px solid var(--line);background:#f6f8f9}.route-data div{display:flex;flex-direction:column}.route-data div:last-child{text-align:right}.route-data span{color:var(--muted);font:500 7px "Roboto Mono"}.route-data strong{margin-top:4px;font:600 17px "Roboto Mono"}.route-data b{color:var(--red)}.provider-name{color:var(--red);font:600 9px "Roboto Mono"}
[hidden]{display:none!important}.sidebar.has-selection .empty-state{display:none!important}.sidebar:not(.has-selection) .details{display:none!important}.sidebar.has-selection .details{display:block!important}
.aircraft-canvas{position:absolute;left:0;top:0;pointer-events:none;z-index:450}
.aircraft-profile{display:grid;grid-template-columns:132px 1fr;gap:15px;padding:16px 22px;border-top:1px solid var(--line);background:#f6f8f9}.aircraft-photo{height:86px;display:grid;place-items:center;overflow:hidden;border-radius:5px;background:linear-gradient(145deg,#d8e6eb,#f8fbfc)}.aircraft-photo img{width:100%;height:100%;object-fit:cover}.aircraft-photo span{color:#607782;font-size:39px;transform:rotate(-8deg)}.aircraft-profile-copy{min-width:0;display:flex;flex-direction:column;justify-content:center;gap:4px}.aircraft-profile-copy>span{color:var(--muted);font:500 7px "Roboto Mono";letter-spacing:.08em}.aircraft-profile-copy strong{font-size:11px;line-height:1.35}.aircraft-profile-copy small{overflow:hidden;color:var(--muted);font-size:8px;text-overflow:ellipsis;white-space:nowrap}.aircraft-profile-copy a{color:var(--red);font-size:8px;text-decoration:none}
.account-button{height:38px;display:flex;align-items:center;gap:7px;padding:0 11px;border:1px solid #40505d;border-radius:5px;background:#1d2c39;color:#dce4e9;cursor:pointer}.account-button span{font-size:16px}.account-button b{font-size:9px}.account-button.connected b{color:#67e394}.account-panel{position:fixed;z-index:1400;right:18px;top:57px;width:300px;padding:18px;border-radius:7px;background:#fff;box-shadow:0 12px 38px #0005}.account-head{display:flex;align-items:start;justify-content:space-between}.account-head div{display:flex;flex-direction:column;gap:4px}.account-head small{color:var(--muted);font:500 7px "Roboto Mono";letter-spacing:.1em}.account-head strong{font-size:12px}.account-head button{border:0;background:none;font-size:20px;cursor:pointer}.credit-card{margin:17px 0;padding:16px;border-radius:6px;background:var(--navy);color:#fff}.credit-card span{display:block;color:#9eacb6;font:500 7px "Roboto Mono"}.credit-card strong{display:block;margin:7px 0 3px;font:600 29px "Roboto Mono"}.credit-card small{color:#9eacb6;font-size:8px}.account-panel p{color:var(--muted);font-size:9px;line-height:1.5}.account-source{display:flex;justify-content:space-between;padding-top:12px;border-top:1px solid var(--line)}.account-source span{color:var(--muted);font:500 7px "Roboto Mono"}.account-source strong{font-size:9px}
.icao-block small{display:block;margin-top:4px;color:var(--muted);font-size:7px;line-height:1.3}
.route-data{grid-template-columns:1fr auto 1fr!important;position:relative;padding-bottom:63px!important}.route-airport small{margin-top:3px;color:var(--muted);font-size:8px}.route-flight{align-items:center!important;color:var(--red)}.route-flight b{font-size:16px}.route-flight span{margin-top:4px;color:var(--muted);font:500 7px "Roboto Mono"}.route-data .eta{position:absolute;left:22px;right:22px;bottom:12px;display:grid;grid-template-columns:1fr auto;align-items:center;padding-top:10px;border-top:1px solid var(--line)}.eta span{grid-row:1;color:var(--muted);font:500 7px "Roboto Mono"}.eta strong{grid-column:2;grid-row:1/3;font:600 16px "Roboto Mono"}.eta small{grid-row:2;margin-top:3px;color:var(--muted);font-size:7px}
@media(max-width:760px){.account-button b{display:none}.account-button{width:38px;padding:0;justify-content:center}.account-panel{left:10px;right:10px;top:58px;width:auto}}
.admin-login{display:flex;flex-direction:column;gap:11px;margin-top:18px}.admin-login label{display:flex;flex-direction:column;gap:5px;color:var(--muted);font:500 7px "Roboto Mono";letter-spacing:.08em}.admin-login input{height:37px;padding:0 10px;border:1px solid var(--line);border-radius:4px;outline:0}.admin-login input:focus{border-color:#7892a3}.admin-login>button,.admin-logout{height:38px;border:0;border-radius:4px;background:var(--navy);color:#fff;font-size:10px;cursor:pointer}.admin-login p{min-height:12px;margin:0;color:var(--red);font-size:8px}.admin-logout{width:100%;margin-top:15px;background:#edf0f2;color:#4f5e67}
.source-row{display:flex;justify-content:space-between;margin:13px 0;padding-top:10px;border-top:1px solid var(--line)}.source-row span{color:var(--muted);font:500 7px "Roboto Mono"}.source-row strong{font:600 8px "Roboto Mono"}
