:root{--ink:#18333b;--muted:#6c7c80;--line:#e5e9e7;--paper:#fcfcf8;--accent:#d7ee8b;--green:#345740;--map:#112730;font-family:Inter,ui-sans-serif,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:var(--ink);background:var(--paper);font-synthesis:none}*{box-sizing:border-box}body{margin:0}button,input,select{font:inherit}button,a,input,select{-webkit-tap-highlight-color:transparent}button{cursor:pointer}button:disabled{cursor:wait;opacity:.55}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible{outline:3px solid #5f9470;outline-offset:3px}button{color:inherit}a{color:inherit}button{border:0}button,input,select{border-radius:8px}h1,h2,h3,p{margin-top:0}button{transition:background .15s,transform .15s}button:hover{filter:brightness(.96)}[hidden]{display:none!important}.topbar{height:88px;display:flex;align-items:center;justify-content:space-between;padding:0 38px;border-bottom:1px solid var(--line);background:var(--paper);gap:16px}.brand{display:flex;gap:11px;align-items:center;text-decoration:none;font-size:27px;letter-spacing:-1.2px;font-weight:750}.brand-icon{display:grid;place-items:center;width:42px;height:42px;border-radius:13px;background:var(--ink);color:var(--accent);font-size:35px;font-weight:400}.byline{display:block;font-size:8px;letter-spacing:2.5px;font-weight:600;margin-top:1px}.topbar nav{display:flex;gap:6px;background:#edf0e9;padding:5px;border-radius:11px}.tab{background:transparent;padding:11px 19px;font-size:13px;font-weight:650;color:#697777}.tab.active{background:#fff;color:var(--ink);box-shadow:0 1px 4px #102b3210}.count{font-size:10px;padding:2px 5px;background:#e5ecdd;border-radius:4px;margin-left:4px}.icon-btn{background:transparent;font-size:22px;padding:10px}.workspace{display:grid;grid-template-columns:400px minmax(0,1fr);height:calc(100dvh - 88px);min-height:600px}.sidebar{overflow-y:auto;scrollbar-width:thin;background:var(--paper);display:flex;flex-direction:column;padding:32px 27px 0}.eyebrow{font-size:9px;letter-spacing:2px;font-weight:750;color:#758376;margin-bottom:17px}h1{font-size:32px;line-height:1.16;letter-spacing:-1.3px;margin-bottom:13px;font-weight:650}h1 span{color:#88978c}p.intro{font-size:12px;line-height:1.8;color:var(--muted);max-width:310px;margin-bottom:25px}.location-card{padding:15px;border:1px solid #e1e6d8;border-radius:12px;background:#f3f5ed;margin-bottom:26px}.location-top{display:flex;align-items:center;gap:11px;margin-bottom:15px}.pin{font-size:27px}.tiny{display:block;font-size:8px;letter-spacing:1.6px;color:#7a8774;margin-bottom:4px}.location-top strong{font-size:12px;font-weight:650}.location-top .text-btn{margin-left:auto;font-size:10px}.primary{background:var(--ink);color:#f4f6ed;padding:13px 18px;font-size:12px;font-weight:600;border-radius:8px}.primary:hover{background:#2c4c51}.full{width:100%}.privacy-note{font-size:9px;color:#7e8979;text-align:center;margin-top:10px}.section-title{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}h2{font-size:18px;font-weight:650;letter-spacing:-.4px;margin:0 0 15px}.section-title h2{font-size:16px;margin:0}.section-title h2 span{font-size:10px;font-weight:500;background:#eaf0df;padding:3px 6px;border-radius:5px;margin-left:5px}select{border:1px solid var(--line);background:transparent;font-size:11px;padding:5px}.search-wrap{display:flex;align-items:center;gap:9px;background:#fff;border:1px solid var(--line);border-radius:8px;padding:0 10px}.search-wrap span{font-size:25px;color:#78908b}.search-wrap input{border:0;background:transparent;width:100%;min-width:0;font-size:11px;padding:12px 0}.status-line{display:flex;justify-content:space-between;align-items:center;gap:5px;margin:10px 0 14px;font-size:9px;color:var(--muted);min-height:16px}.text-btn{background:transparent;color:#50675b;padding:0;font-size:11px;font-weight:600;text-decoration:none}.filter-row{display:flex;gap:6px;margin-bottom:13px}.chip{border:1px solid var(--line);background:transparent;font-size:10px;padding:6px 10px;border-radius:20px;color:#7a837c}.chip.active{background:#e9efd9;color:#3d5635;border-color:#dde7c9}.aircraft-list{min-height:110px}.aircraft-row{width:100%;display:grid;grid-template-columns:38px 1fr auto;gap:11px;align-items:center;text-align:left;padding:14px 0;background:transparent;border-bottom:1px solid var(--line);border-radius:0}.aircraft-row:hover,.aircraft-row.selected{background:#f0f4e9}.plane-tile{width:37px;height:37px;border-radius:10px;background:#ebefe6;display:grid;place-items:center;font-size:22px;color:#627952}.aircraft-row strong{font-size:12px;display:block;letter-spacing:.2px}.aircraft-row small{display:block;font-size:9px;color:#8a958b;margin-top:5px}.row-right{text-align:right}.row-right b{font-size:11px;font-weight:600}.sidebar-footer{margin-top:auto;padding:22px 0 19px;display:flex;justify-content:space-between;align-items:center;color:#9aa394;font-size:9px}.sidebar-footer button{font-size:9px}.empty{padding:28px 15px;text-align:center;color:var(--muted);font-size:12px;line-height:1.8;border:1px dashed #dce3d7;border-radius:10px;margin:15px 0}.empty strong{display:block;color:var(--ink);font-size:16px;margin:10px 0 4px}.map-section{position:relative;isolation:isolate;background:var(--map);overflow:hidden}#map{height:100%;width:100%;background:#112730;z-index:0}.leaflet-tile-pane{filter:invert(.92) hue-rotate(165deg) saturate(.45) brightness(.76) contrast(1.1)}.leaflet-container{font-family:inherit}.leaflet-control-attribution{font-size:9px!important;background:#ffffffed!important;color:#17313a!important}.leaflet-control-zoom a{background:#f8fbf2!important;color:#17333c!important}.leaflet-top.leaflet-left{top:100px;left:14px}.map-heading{position:absolute;left:28px;top:26px;z-index:500;pointer-events:none;color:white;text-shadow:0 1px 7px #112730}.map-tag{font-size:8px;letter-spacing:1.5px;font-weight:650;color:#dce7d2;display:flex;align-items:center;gap:7px}.pulse{width:5px;height:5px;border-radius:100%;background:#d7ee8b;box-shadow:0 0 0 4px #d7ee8b15}.map-heading h2{font-size:23px;margin-top:8px;letter-spacing:-.6px;font-weight:500}.map-actions{position:absolute;right:22px;top:27px;display:flex;gap:7px;z-index:500}.map-btn{width:38px;height:38px;background:#fcfff3;color:#17333a;border:1px solid #ffffff50;box-shadow:0 3px 15px #0002;border-radius:9px;font-size:24px}.map-btn.wide{font-size:11px;width:auto;padding:0 13px}.map-bottom{pointer-events:none;position:absolute;bottom:35px;left:25px;right:25px;display:flex;justify-content:space-between;gap:10px;z-index:400;color:#deeadc;font-size:9px}.legend{display:flex;align-items:center;gap:8px;background:#132c34e8;border:1px solid #53707760;border-radius:7px;padding:9px 12px}.legend-plane{font-size:16px;color:var(--accent)}.ground-dot{width:5px;height:5px;border-radius:50%;background:#b7c5cf;margin-left:5px}.legend-dash{width:16px;border-top:1px dashed #d7ee8b;margin-left:5px}.map-caption{align-self:center;text-shadow:0 1px 5px #000}.plane-icon{background:none;border:0!important}.plane-icon svg{overflow:visible;filter:drop-shadow(0 1px 3px #05141d);transition:transform .4s}.plane-icon.selected svg{filter:drop-shadow(0 0 5px #e4ffc2)}.plane-icon.ground svg{opacity:.65}.leaflet-tooltip{background:#142d35eb;color:#f0f5e5;border:1px solid #729077;font-size:10px;box-shadow:none}.plane-detail{position:absolute;z-index:600;right:24px;bottom:85px;width:300px;background:#fcfcf7;border:1px solid #dde5d9;padding:23px;border-radius:16px;box-shadow:0 12px 45px #03182055}.plane-detail h2{font-size:28px;letter-spacing:-1px;margin:8px 0 3px}.plane-detail .close{position:absolute;right:12px;top:10px}.detail-sub{font-size:11px;color:var(--muted);margin-bottom:20px}.detail-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px 12px;margin-bottom:19px}.detail-grid span{font-size:8px;color:#8b978a;letter-spacing:1px;display:block;margin-bottom:6px}.detail-grid strong{font-size:14px;font-weight:650}.detail-age{font-size:10px;color:#687d6f;margin-bottom:13px}.map-notice{position:absolute;top:99px;left:70px;right:22px;background:#f9f3dcf2;color:#5d4c27;padding:12px;border-radius:8px;font-size:11px;z-index:550}.small-note{font-size:10px;color:var(--muted);line-height:1.7}.honest-note{font-size:11px;background:#f0f3e8;padding:15px;border-radius:10px;line-height:1.7;margin-top:25px}.honest-note p{margin:5px 0 0;color:var(--muted)}.saved-card{background:white;border:1px solid var(--line);border-radius:12px;margin:16px 0;padding:17px}.saved-head{display:flex;align-items:center;justify-content:space-between}.saved-head strong{font-size:18px;letter-spacing:-.5px}.plan-tag{font-size:8px;letter-spacing:1px;background:#edf2df;color:#617245;padding:5px 7px;border-radius:4px}.saved-route{display:flex;justify-content:space-between;margin:20px 0 10px;align-items:center}.saved-route b{font-size:19px}.route-line{border-top:1px dashed #c6d4bf;width:35%;text-align:center;height:1px;position:relative}.route-line:after{content:'✈';position:absolute;top:-8px;left:40%;font-size:16px;background:white;color:#8da576}.saved-meta{font-size:10px;color:var(--muted);line-height:1.8}.saved-actions{display:flex;gap:15px;align-items:center;margin-top:15px}.saved-actions .lookup{background:#edf3df;padding:9px 11px;font-size:10px;font-weight:650}.saved-actions .remove{margin-left:auto;color:#8a7771;font-size:10px;background:transparent}.lookup-result{font-size:11px;line-height:1.8;margin-top:12px;border-top:1px solid var(--line);padding-top:10px;color:#60776c}.lookup-result button{margin-top:6px}.muted{color:var(--muted);font-weight:400}dialog{padding:29px;width:min(460px,calc(100% - 28px));border:1px solid #dce4d4;border-radius:18px;background:var(--paper);color:var(--ink);box-shadow:0 20px 90px #0005;max-height:90dvh;overflow-y:auto}dialog::backdrop{background:#0d242dbb;backdrop-filter:blur(5px)}dialog h2{font-size:28px;margin:0 0 13px;letter-spacing:-1px}dialog p{font-size:12px;line-height:1.8}dialog h3{font-size:14px;margin-top:22px}dialog a{text-decoration:underline}.dialog-head{display:flex;justify-content:space-between;align-items:start;gap:8px}.close{font-size:25px;font-weight:300;background:transparent;line-height:1;border-radius:50%;padding:3px 7px}.dialog-head .eyebrow{padding-top:9px}.city-grid{display:grid;grid-template-columns:1fr 1fr;gap:9px;margin:23px 0}.city-grid button{background:#eef2e5;border:1px solid #e3e9da;text-align:left;padding:15px;font-size:13px;font-weight:600}.city-grid button span{display:block;font-size:8px;font-weight:400;letter-spacing:1px;color:var(--muted);margin-top:5px}label{display:block;font-size:11px;font-weight:650;margin-bottom:15px}label input{display:block;border:1px solid #dce3d7;background:white;padding:12px 10px;width:100%;margin-top:7px;font-weight:400;color:var(--ink);min-width:0}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:12px}.toast{position:fixed;left:50%;bottom:25px;transform:translateX(-50%);z-index:2000;background:#15363b;color:white;font-size:12px;padding:14px 22px;border-radius:10px;box-shadow:0 5px 25px #0003;max-width:90vw}.error{color:#9a4b36}.radius-label{margin:0}body:has(dialog[open]){overflow:hidden}@media(min-width:1600px){.workspace{grid-template-columns:440px 1fr}.sidebar{padding:40px 35px 0}h1{font-size:36px}}@media(max-width:1000px){.workspace{grid-template-columns:340px 1fr}.sidebar{padding:25px 20px 0}h1{font-size:28px}.map-caption{display:none}.map-actions{top:90px}.map-heading{left:22px}.map-heading h2{font-size:21px}.plane-detail{right:16px;width:270px}}@media(max-width:700px){.topbar{height:72px;padding:0 17px;gap:9px}.brand{font-size:23px;gap:8px}.brand-icon{width:33px;height:35px;font-size:28px}.byline{font-size:6px}.topbar nav{padding:3px;gap:0}.tab{font-size:10px;padding:9px 9px}.icon-btn{font-size:18px;padding:4px}.count{font-size:8px;margin-left:2px}.workspace{height:auto;min-height:0;display:flex;flex-direction:column}.map-section{height:55dvh;min-height:340px;order:0}.sidebar{order:1;overflow:visible;padding:26px 22px 0}.sidebar h1{font-size:29px}.sidebar .intro{max-width:100%}.sidebar-footer{margin-top:20px}.map-heading{top:20px;left:20px}.map-tag{font-size:7px}.map-heading h2{font-size:21px}.map-actions{right:15px;top:20px}.map-actions .wide{position:absolute;right:0;top:48px;white-space:nowrap}.leaflet-top.leaflet-left{top:95px;left:9px}.map-bottom{bottom:30px;left:15px;right:15px}.legend{font-size:8px;padding:7px}.plane-detail{bottom:68px;right:12px;left:65px;width:auto;max-width:330px;padding:18px}.plane-detail h2{font-size:24px}.detail-grid{gap:10px;margin-bottom:12px}.detail-grid strong{font-size:12px}.detail-sub{margin-bottom:13px}.map-notice{top:145px;left:15px;right:15px}.location-card{margin-bottom:22px}.aircraft-row{padding:15px 0}.aircraft-list{max-height:480px;overflow-y:auto}.sidebar:has(#flightsPanel:not([hidden])){order:0;min-height:60dvh}body:has(#flightsPanel:not([hidden])) .map-section{order:1}.saved-route b{font-size:22px}dialog{padding:23px}.status-line{font-size:10px}.text-btn{min-height:24px} .sidebar-footer .text-btn{min-height:24px}}@media(prefers-reduced-motion:reduce){*{transition:none!important;scroll-behavior:auto!important}}
@media(max-width:380px){.topbar{padding:0 12px;gap:6px}.brand{font-size:21px}.tab{font-size:9px;padding:9px 7px}.brand-icon{width:30px}.byline{letter-spacing:2px}}

/* SVG location controls avoid missing platform glyphs. */
#locateBtn{display:flex;align-items:center;justify-content:center;gap:9px;min-height:43px}#centerBtn{display:grid;place-items:center}.location-icon{display:inline-block;flex:none;vertical-align:middle}.location-status{font-size:11px;line-height:1.65;margin:12px 0 3px}.manual-location{font-size:11px;text-decoration:underline;padding:5px 0;min-height:30px}.lookup-result{overflow-wrap:anywhere}.workspace>*{min-width:0}.location-top>div{min-width:0}.location-top strong{overflow-wrap:anywhere}.saved-route b{max-width:42%;overflow-wrap:anywhere}.dialog-head .close{flex:none}
@media(max-width:700px){.map-section{width:100%;flex-shrink:0}.sidebar{min-width:0}.location-status{font-size:12px}.manual-location{min-height:44px}.form-row{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}.topbar nav{flex-shrink:1;min-width:0}.topbar .brand,.topbar .icon-btn{flex-shrink:0}.leaflet-control-attribution{max-width:calc(100vw - 8px);overflow-wrap:anywhere}.plane-detail{max-height:calc(55dvh - 80px);overflow-y:auto}.aircraft-row{grid-template-columns:38px minmax(0,1fr) auto}.aircraft-row strong{overflow-wrap:anywhere}}
@media(max-width:340px){.topbar{height:auto;min-height:72px;flex-wrap:wrap;padding:12px}.topbar nav{order:2;width:100%;justify-content:center}.topbar nav .tab{flex:1}.topbar .icon-btn{margin-left:auto}.form-row{grid-template-columns:1fr}.map-heading h2{max-width:210px}}
