:root{color-scheme:light;--ink:#192d32;--muted:#66767b;--line:#dce4e3;--teal:#087f74;--paper:#f2f5f3}*{box-sizing:border-box}body{margin:0;background:var(--paper);color:var(--ink);font-family:system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}main{max-width:1240px;margin:auto;padding:32px 36px}header{display:flex;justify-content:space-between;align-items:center;padding-bottom:28px;border-bottom:1px solid var(--line)}.brand{display:flex;gap:12px;align-items:center;font-size:28px;color:var(--ink);text-decoration:none}.brand span{font-size:18px;font-weight:800;letter-spacing:2px}.brand small{display:block;font-size:9px;letter-spacing:3px;font-weight:500;margin-top:3px}.badge{font-size:10px;letter-spacing:2px;background:#e0e9e5;padding:9px 13px;border-radius:30px}.intro{padding:35px 0 25px}.eyebrow{font-size:10px;font-weight:750;letter-spacing:2px;color:var(--teal);margin:0 0 10px}h1{font-size:clamp(30px,4vw,46px);letter-spacing:-1.8px;line-height:1.1;margin:0 0 12px}p{line-height:1.55}.intro>p:last-child{margin:0;color:var(--muted);font-size:15px}.layout{display:grid;grid-template-columns:350px 1fr;gap:22px}.card{background:#fff;border:1px solid var(--line);border-radius:18px;overflow:hidden}.controls{padding:25px}.section-head{display:flex;align-items:center;gap:10px}.step{background:#e6f3ee;color:var(--teal);font-size:10px;padding:7px;border-radius:7px;font-weight:700}h2{font-size:18px;letter-spacing:-.4px;margin:0}.muted,.hint{font-size:12px;color:var(--muted)}.coords{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:22px}label{display:block;font-size:11px;font-weight:650;line-height:1.5}input[type=number]{width:100%;background:#f8faf9;border:1px solid #cddad7;border-radius:8px;padding:11px 9px;margin-top:7px;font:500 15px ui-monospace,monospace;color:var(--ink)}input:focus,button:focus-visible{outline:3px solid #92d0bc;outline-offset:2px}.radius-head{display:flex;align-items:center;justify-content:space-between;margin-top:24px}.radius-head input{width:70px;margin:0;padding:8px}.radius-head span{font-size:13px;color:var(--muted)}input[type=range]{width:100%;accent-color:var(--teal);margin:18px 0 2px;cursor:pointer}.range-labels{display:flex;justify-content:space-between;font-size:10px;color:var(--muted)}button{font:600 13px system-ui;cursor:pointer;border-radius:9px;border:1px solid var(--line);padding:10px 15px;color:var(--ink);background:#fff;min-height:42px}button:disabled{opacity:.6;cursor:wait}.primary{width:100%;background:var(--teal);color:white;border:0;margin-top:25px;padding:13px}.primary:hover{background:#06685e}.secondary:hover{background:#f1f6f3}.hint{margin:10px 0}.note{font-size:11px;line-height:1.6;padding-top:15px;margin-top:18px;border-top:1px solid var(--line);color:var(--muted)}#map{height:420px;background:#e3ece6;z-index:0}.map-bottom{display:flex;justify-content:space-between;align-items:center;padding:12px 18px;gap:8px;font-size:11px;color:var(--muted)}.map-bottom button{border:0;padding:5px;min-height:32px;font-size:11px}.map-bottom i{display:inline-block;width:8px;height:8px;background:var(--teal);border-radius:50%;margin-right:5px}.flights{margin-top:24px;padding:25px}.flight-header{display:flex;justify-content:space-between;align-items:center;gap:10px}#count{display:inline-block;font-size:13px;color:var(--teal);background:#e6f3ee;border-radius:20px;padding:3px 9px;vertical-align:middle;margin-left:6px}.statusline{display:flex;justify-content:space-between;gap:10px;font-size:12px;color:var(--muted);padding-top:18px}#flight-status.error{color:#aa3b24}#save-status.error{color:#aa3b24}.table-wrap{overflow-x:auto}table{width:100%;border-collapse:collapse;margin-top:14px;white-space:nowrap}th{text-align:left;font-size:10px;letter-spacing:1px;text-transform:uppercase;color:var(--muted);padding:13px 10px;border-bottom:1px solid var(--line)}td{padding:15px 10px;font-size:13px;border-bottom:1px solid #eef2ef;font-variant-numeric:tabular-nums}td:first-child{font-weight:700}td small{display:block;color:var(--muted);font-size:10px;font-weight:400;margin-top:4px}.empty{padding:24px 0;text-align:center;color:var(--muted);font-size:14px}footer{display:flex;flex-wrap:wrap;justify-content:space-between;gap:12px;font-size:10px;color:var(--muted);padding:25px 0}footer a{color:inherit}.leaflet-control-attribution{font-size:10px!important}#map-error{padding:0 18px}.flights.stale tbody{opacity:.45}@media(max-width:780px){main{padding:22px 16px}.layout{grid-template-columns:1fr}.controls{padding:22px}.map-card{order:-1}#map{height:310px}.intro{padding:28px 0 23px}.flights{padding:20px 14px}.statusline{flex-direction:column;gap:4px}.badge{font-size:9px}.coords label{font-size:12px}.map-bottom{padding:10px 12px}th,td{padding-left:8px;padding-right:8px}.flight-header h2{font-size:16px}}

.filter{display:flex;align-items:center;gap:10px;margin-top:18px}.filter input[type=checkbox]{width:20px;height:20px;margin:0;accent-color:#087f74;flex-shrink:0}

.matrix-card{padding:25px;margin-top:24px}.matrix-shell{background:#111b1e;border:10px solid #203237;border-radius:12px;padding:14px;margin:22px auto 16px;max-width:560px;box-shadow:0 8px 22px #142c3020}#matrix{display:block;width:100%;height:auto;aspect-ratio:2;image-rendering:pixelated;background:#070b0d}.matrix-card .filter{font-weight:500}.matrix-card .hint{max-width:680px}@media(max-width:780px){.matrix-card{padding:20px 14px}.matrix-shell{padding:7px;border-width:6px}.matrix-card h2{font-size:16px}}

.diagnostics-list{list-style:none;padding:0;display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:10px;font-size:13px}.diagnostics-list .ok{color:#087f74}.diagnostics-list .error{color:#aa3b24}

[hidden]{display:none!important}.auth-page{max-width:530px}.account-form{max-width:430px}input[type=text],input[type=password],textarea{display:block;width:100%;border:1px solid #cddad7;border-radius:8px;padding:12px;margin:7px 0 16px;font:inherit;background:#f8faf9;color:var(--ink)}.error{color:#aa3b24}.account-nav{display:flex;gap:12px;align-items:center;flex-wrap:wrap;justify-content:flex-end}.accounts-list{padding:0;list-style:none}.accounts-list li{display:flex;gap:10px;align-items:center;flex-wrap:wrap;padding:15px 0;border-bottom:1px solid var(--line)}.accounts-list span{flex:1;min-width:180px;font-size:13px}details{margin-top:20px}summary{cursor:pointer;font-size:14px;font-weight:600;padding:10px 0}#device-key-form button{margin-top:15px}#invite-result{margin-top:22px}#device-key-value{font-family:monospace;font-size:12px}
