@import url('https://fonts.googleapis.com/css2?family=DM+Mono:wght@400;500&family=Manrope:wght@400;600;700;800&display=swap');
:root{--ink:#eaf4f8;--muted:#8fa9b6;--panel:#0a1925;--deep:#07131f;--line:rgba(155,192,207,.14);--cyan:#5ee8d2;--orange:#ff9d62;--shadow:0 24px 70px rgba(0,0,0,.38)}*{box-sizing:border-box}html,body{height:100%}body{margin:0;overflow:hidden;color:var(--ink);background:var(--deep);font-family:Manrope,sans-serif}button,select{font:inherit}button{color:inherit}.topbar{height:76px;display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:24px;padding:0 28px;border-bottom:1px solid var(--line);background:rgba(7,19,31,.97);position:relative;z-index:1000}.brand{width:max-content;display:flex;align-items:center;gap:12px;color:var(--ink);text-decoration:none;letter-spacing:.06em}.brand>span:last-child{display:flex;flex-direction:column;line-height:1}.brand strong{font-size:.96rem;font-weight:800}.brand small{margin-top:4px;color:var(--cyan);font:500 .64rem/1 "DM Mono";letter-spacing:.22em}.brand-mark{width:38px;height:38px;border:1px solid rgba(94,232,210,.55);border-radius:50%;display:grid;place-items:center;position:relative}.brand-mark:before,.brand-mark:after{content:"";position:absolute;background:rgba(94,232,210,.25)}.brand-mark:before{width:1px;height:100%}.brand-mark:after{width:100%;height:1px}.brand-mark i{width:8px;height:8px;border:2px solid var(--cyan);border-radius:50%;z-index:1}.live-state{display:flex;align-items:center;gap:9px;color:var(--muted);font:500 .69rem/1 "DM Mono";letter-spacing:.08em;text-transform:uppercase}.live-state i{width:7px;height:7px;border-radius:50%;background:#5d7180;box-shadow:0 0 0 4px rgba(93,113,128,.1)}.live-state.is-live i{background:var(--cyan);box-shadow:0 0 0 4px rgba(94,232,210,.1),0 0 15px var(--cyan);animation:pulse 2s infinite}.live-state.is-error i{background:var(--orange)}.home-link{justify-self:end;color:var(--muted);text-decoration:none;font-size:.78rem;font-weight:700}.home-link:hover{color:var(--cyan)}.app-shell{height:calc(100vh - 76px);display:grid;grid-template-columns:minmax(0,1fr) 390px}.map-panel{position:relative;min-width:0;overflow:hidden;background:#0a2430}#map{width:100%;height:100%;background:#0a2430}.map-shade{pointer-events:none;position:absolute;inset:0;z-index:401;box-shadow:inset -20px 0 50px rgba(3,12,19,.28),inset 0 0 100px rgba(5,17,25,.1)}.leaflet-tile{filter:saturate(.5) hue-rotate(140deg) brightness(.57) contrast(1.18)}.leaflet-control-zoom{border:1px solid var(--line)!important;box-shadow:var(--shadow)!important}.leaflet-control-zoom a{color:var(--ink)!important;background:rgba(7,19,31,.94)!important;border-color:var(--line)!important}.leaflet-control-attribution{color:#8ba1aa;background:rgba(7,19,31,.82)!important}.leaflet-control-attribution a{color:var(--cyan)}.welcome-card{width:min(450px,calc(100% - 40px));position:absolute;top:50%;left:50%;z-index:600;transform:translate(-50%,-50%);padding:40px;text-align:center;border:1px solid rgba(132,186,199,.22);border-radius:22px;background:rgba(7,19,31,.93);box-shadow:var(--shadow);backdrop-filter:blur(18px);transition:.22s}.welcome-card.is-hidden{opacity:0;pointer-events:none;transform:translate(-50%,calc(-50% + 14px))}.kicker{margin:0 0 10px;color:var(--cyan);font:500 .69rem/1 "DM Mono";letter-spacing:.18em}.welcome-card h1{max-width:330px;margin:0 auto;font-size:clamp(2rem,4vw,3.2rem);line-height:.98;letter-spacing:-.055em}.welcome-card>p:not(.kicker,.privacy-note){max-width:350px;margin:20px auto 26px;color:var(--muted);font-size:.92rem;line-height:1.65}.primary-button{width:100%;min-height:54px;display:flex;justify-content:center;align-items:center;gap:10px;border:0;border-radius:12px;color:#06211e;background:var(--cyan);font-weight:800;cursor:pointer;box-shadow:0 10px 30px rgba(94,232,210,.18)}.primary-button:hover{background:#83f3e1;transform:translateY(-1px)}.primary-button:disabled{cursor:wait;opacity:.75}.target-icon{width:17px;height:17px;border:2px solid;border-radius:50%;position:relative}.target-icon:before{content:"";width:5px;height:5px;border-radius:50%;background:currentColor;position:absolute;inset:4px}.text-button{margin-top:16px;border:0;color:var(--muted);background:none;font-size:.78rem;cursor:pointer;text-decoration:underline;text-underline-offset:4px}.privacy-note{margin:26px 0 0!important;color:#6f8996;font-size:.68rem}.pick-notice{position:absolute;top:18px;left:50%;z-index:650;transform:translateX(-50%);display:flex;align-items:center;gap:16px;padding:12px 12px 12px 18px;border:1px solid rgba(94,232,210,.28);border-radius:11px;background:rgba(7,19,31,.95);box-shadow:var(--shadow);font-size:.78rem}.pick-notice button{width:26px;height:26px;border:0;border-radius:7px;background:rgba(255,255,255,.07);cursor:pointer}.map-key{position:absolute;z-index:500;left:20px;bottom:25px;display:flex;gap:16px;padding:10px 14px;border:1px solid var(--line);border-radius:9px;background:rgba(7,19,31,.86);color:var(--muted);font:500 .62rem/1 "DM Mono";backdrop-filter:blur(10px)}.map-key span{display:flex;align-items:center;gap:7px}.map-key i{display:inline-grid;place-items:center;width:12px;height:12px;font-style:normal}.key-user{border:3px solid var(--cyan);border-radius:50%;box-shadow:0 0 0 2px rgba(94,232,210,.18)}.key-plane{color:var(--orange);font-size:.9rem}.key-ring{border:1px solid rgba(94,232,210,.5);border-radius:50%}.aircraft-panel{min-width:0;display:flex;flex-direction:column;overflow:hidden;z-index:800;border-left:1px solid var(--line);background:var(--panel)}.panel-heading{display:flex;align-items:center;justify-content:space-between;padding:26px 24px 20px}.panel-heading h2{margin:0;font-size:1.24rem;letter-spacing:-.035em}.panel-heading h2 span{color:var(--cyan)}.icon-button{width:38px;height:38px;border:1px solid var(--line);border-radius:10px;color:var(--muted);background:rgba(255,255,255,.025);font-size:1.25rem;cursor:pointer}.icon-button:disabled{opacity:.35;cursor:default}.icon-button.is-spinning span{display:inline-block;animation:spin .7s linear infinite}.controls{padding:0 24px 20px;border-bottom:1px solid var(--line)}.controls label{display:block;margin-bottom:8px;color:var(--muted);font-size:.68rem;font-weight:700;text-transform:uppercase}.controls select{width:100%;height:42px;padding:0 12px;border:1px solid var(--line);border-radius:9px;color:var(--ink);background:#0d202d;font-size:.78rem}.view-toggle{display:grid;grid-template-columns:1fr 1fr;gap:4px;margin-top:12px;padding:4px;border-radius:10px;background:#071620}.view-toggle button{padding:8px 6px;border:0;border-radius:7px;color:#78929e;background:transparent;font-size:.7rem;font-weight:700;cursor:pointer}.view-toggle button.active{color:var(--ink);background:#14313d}.summary-strip{display:grid;grid-template-columns:repeat(3,1fr);border-bottom:1px solid var(--line)}.summary-strip div{padding:13px 8px;text-align:center;border-right:1px solid var(--line)}.summary-strip span,.summary-strip strong{display:block}.summary-strip span{margin-bottom:4px;color:#64818e;font-size:.57rem;font-weight:700;text-transform:uppercase}.summary-strip strong{color:#bbced5;font:500 .66rem/1 "DM Mono"}.empty-state{margin:auto;padding:30px;text-align:center}.empty-state h3{margin:18px 0 8px}.empty-state p{max-width:245px;margin:0;color:var(--muted);font-size:.77rem;line-height:1.55}.radar-graphic{width:116px;height:116px;margin:auto;position:relative;overflow:hidden;border:1px solid rgba(94,232,210,.2);border-radius:50%;background:repeating-radial-gradient(circle,transparent 0 19px,rgba(94,232,210,.11) 20px)}.radar-graphic:before,.radar-graphic:after{content:"";position:absolute;background:rgba(94,232,210,.12)}.radar-graphic:before{width:100%;height:1px;top:50%;left:0}.radar-graphic:after{width:1px;height:100%;left:50%}.radar-graphic span{position:absolute;inset:0;border-radius:50%;background:conic-gradient(transparent 0 285deg,rgba(94,232,210,.28) 345deg,rgba(94,232,210,.8) 359deg,transparent 360deg);animation:spin 3s linear infinite}.radar-graphic i{width:5px;height:5px;position:absolute;z-index:2;border-radius:50%;background:var(--cyan);box-shadow:0 0 10px var(--cyan)}.blip-one{left:33px;top:45px}.blip-two{right:27px;bottom:29px}.aircraft-list{flex:1;min-height:0;overflow-y:auto;scrollbar-color:#24414b transparent}.aircraft-list:empty{display:none}.aircraft-card{width:100%;display:grid;grid-template-columns:34px minmax(0,1fr) auto 12px;align-items:center;gap:10px;padding:16px 20px;border:0;border-bottom:1px solid var(--line);background:transparent;text-align:left;cursor:pointer}.aircraft-card:hover{background:rgba(94,232,210,.045)}.card-plane{width:31px;height:31px;display:grid;place-items:center;border-radius:8px;color:var(--orange);background:rgba(255,157,98,.1)}.aircraft-main,.aircraft-stats{display:flex;flex-direction:column;min-width:0}.aircraft-name{overflow:hidden;font:500 .76rem/1.2 "DM Mono";text-overflow:ellipsis;white-space:nowrap}.aircraft-model{margin-top:5px;overflow:hidden;color:#6e8b98;font-size:.62rem;text-overflow:ellipsis;white-space:nowrap}.aircraft-stats{align-items:flex-end;gap:5px}.aircraft-altitude{color:#bed0d6;font:500 .65rem/1 "DM Mono"}.aircraft-distance{color:var(--cyan);font:500 .61rem/1 "DM Mono"}.card-arrow{color:#48636e;font-size:1.2rem}.panel-footer{display:flex;justify-content:space-between;padding:13px 20px;border-top:1px solid var(--line);color:#58717c;font-size:.56rem}.panel-footer a{color:#809ba6}.plane-marker,.user-marker{background:none;border:0}.plane-marker span{width:31px;height:31px;display:grid;place-items:center;border:1px solid rgba(255,157,98,.45);border-radius:50%;color:var(--orange);background:rgba(7,19,31,.9);box-shadow:0 4px 14px #0005;transform:rotate(var(--heading))}.plane-marker.is-overhead span{border-color:var(--cyan);color:var(--cyan);box-shadow:0 0 0 5px rgba(94,232,210,.09)}.user-marker span{width:18px;height:18px;display:block;border:4px solid #eafffb;border-radius:50%;background:var(--cyan);box-shadow:0 0 0 6px rgba(94,232,210,.18),0 0 24px rgba(94,232,210,.8)}.scan-circle{stroke-dasharray:7 8}.leaflet-popup-content-wrapper,.leaflet-popup-tip{color:var(--ink);background:#0b1e2a}.plane-popup{min-width:190px}.plane-popup strong{display:block;margin-bottom:8px;color:var(--cyan);font:500 .84rem/1 "DM Mono"}.plane-popup span{display:block;margin-top:4px;color:var(--muted);font-size:.68rem}@keyframes spin{to{transform:rotate(360deg)}}@keyframes pulse{50%{opacity:.45}}@media(max-width:860px){body{overflow:auto}.topbar{height:66px;grid-template-columns:1fr auto;padding:0 16px}.live-state{display:none}.app-shell{height:auto;min-height:calc(100vh - 66px);grid-template-columns:1fr;grid-template-rows:minmax(58vh,570px) auto}.aircraft-panel{min-height:520px;border:0;border-top:1px solid var(--line)}.aircraft-list{max-height:520px}}@media(max-width:520px){.brand-mark{width:34px;height:34px}.home-link{font-size:.7rem}.welcome-card{padding:30px 22px}.map-key{right:12px;bottom:12px;left:12px;justify-content:center;gap:10px}.map-key span{font-size:.52rem}.panel-heading,.controls{padding-inline:18px}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important}}
