:root{color-scheme:dark;font-family:Inter,Segoe UI,Arial,sans-serif;background:#101112;color:#f2f3f4;font-synthesis:none}*{box-sizing:border-box}body{margin:0}a{color:inherit;text-decoration:none}button,input,select{font:inherit}button,a,select,input{touch-action:manipulation}button,select,input{border:1px solid #44474a;border-radius:8px;background:#282a2d;color:#f2f3f4;padding:12px}button{cursor:pointer;min-height:44px}button:hover{background:#373a3e}button:disabled{opacity:.5;cursor:wait}a:hover{text-decoration:underline}:focus-visible{outline:2px solid #f2f3f4;outline-offset:4px}[hidden]{display:none!important}.header{max-width:1440px;margin:auto;display:flex;justify-content:space-between;align-items:center;padding:28px 5%;border-bottom:1px solid #2e3033;gap:20px}.brand{display:flex;align-items:center;gap:12px;font-size:18px;font-weight:700;letter-spacing:2px}.brand-icon{font-size:38px;color:#c6cbd0}.brand small{display:block;font-size:9px;letter-spacing:2px;margin-top:6px;color:#b4b7bb}.languages{display:flex;align-items:center;gap:9px;white-space:nowrap}.languages a{display:inline-grid;place-items:center;min-width:38px;min-height:44px;color:#9da2a8;font-weight:600}.languages a[aria-current=true]{color:#fff;border-bottom:2px solid #dfe3e6}main{max-width:1320px;margin:auto;padding:48px 4% 32px}.eyebrow{font-size:11px;letter-spacing:2.8px;color:#b1b6bc;font-weight:600}h1{font-size:clamp(30px,4vw,48px);letter-spacing:-1.7px;margin:16px 0}p{color:#b5bac0;line-height:1.65}.intro>p:last-child{margin-bottom:30px}#node-form{display:flex;gap:16px;align-items:center;background:#1c1e20;border:1px solid #35373b;border-radius:14px;padding:22px}.input-group{display:grid;grid-template-columns:auto minmax(130px,230px);gap:10px 20px;align-items:center;flex:1}.input-group small{grid-column:2;color:#a4aab1;font-size:12px}input{width:100%;background:#111315;letter-spacing:2px}.primary{background:linear-gradient(145deg,#f0f2f4,#a6adb5);color:#16191b;font-weight:700;border:0;padding:15px 22px}.primary:hover{background:#fff}#notice{min-height:26px;font-size:14px}.error{color:#ffb9b0}.section-heading{display:flex;justify-content:space-between;align-items:center;gap:16px;margin:25px 0 20px}h2{font-size:20px;margin:0}.section-heading a{font-size:13px;color:#bdc3c9}.cards{display:grid;grid-template-columns:1fr 1.4fr 1fr;gap:16px;margin-bottom:22px}.cards article{background:#1c1e20;border:1px solid #35373b;border-radius:12px;padding:22px;display:flex;flex-direction:column;gap:12px}.cards small,.cards label{font-size:12px;color:#afb5bc}.cards strong{font-size:19px;font-weight:600}.cards article>span{font-size:12px;line-height:1.6;color:#a5abb3}.cards button{align-self:flex-start}.topology{border:1px solid #35373b;border-radius:14px;overflow:hidden;background:#17191b}.toolbar{display:flex;justify-content:space-between;align-items:center;padding:20px;gap:12px}.toolbar small{display:block;margin-top:6px;color:#abb2ba}.controls{display:flex;gap:8px}.controls button{font-size:21px;width:44px;padding:5px}#viewer{height:520px;position:relative;overflow:hidden;display:grid;place-items:center;background-color:#0c0e10;background-image:radial-gradient(#33373c 1px,transparent 1px);background-size:22px 22px;touch-action:none;cursor:grab}#viewer:active{cursor:grabbing}#topology-image{max-width:94%;max-height:94%;object-fit:contain;user-select:none;transform-origin:center;will-change:transform}#viewer-message{position:absolute;margin:24px;text-align:center;pointer-events:none}.viewer-footer{display:flex;justify-content:space-between;gap:20px;padding:14px 20px;font-size:12px;color:#b4bbc2}details{margin-top:22px;border-top:1px solid #33373c;padding:22px 0}summary{cursor:pointer;color:#cdd1d6}details p{font-size:13px;max-width:850px}footer{max-width:1220px;margin:auto;padding:24px 4%;border-top:1px solid #2e3033;font-size:12px;color:#959da5}.topology:fullscreen{width:100%;height:100%;display:flex;flex-direction:column;border-radius:0}.topology:fullscreen #viewer{flex:1;height:auto}@media(max-width:700px){.header{padding:18px 5%;gap:8px}.brand{font-size:13px;letter-spacing:1px;gap:6px}.brand small{font-size:7px;letter-spacing:1px}.brand-icon{font-size:28px}.languages{gap:2px;font-size:13px}main{padding-top:28px}.cards{grid-template-columns:1fr}.cards article{padding:18px}#node-form{align-items:stretch;flex-direction:column;padding:18px}.input-group{grid-template-columns:1fr}.input-group small{grid-column:1}.section-heading{align-items:flex-start;flex-direction:column}.toolbar{padding:14px;align-items:flex-start;flex-direction:column}.toolbar h2{font-size:18px}#viewer{height:420px}.viewer-footer{padding:12px;font-size:11px}h1{letter-spacing:-1px}}@media(prefers-reduced-motion:no-preference){button{transition:background .15s}}
.flag{width:24px;height:12px;display:block;margin-right:5px}#topology-image{position:absolute;inset:3%;width:94%;height:94%;min-width:0;min-height:0}.input-group{grid-template-columns:minmax(130px,230px) 1fr}.input-group label{grid-column:1;grid-row:1}.input-group input{grid-column:1;grid-row:2}.input-group small{grid-column:2;grid-row:2}@media(max-width:700px){.input-group{grid-template-columns:1fr}.input-group small{grid-column:1;grid-row:3}}
/* Structured RF network */
.network-workspace{display:grid;grid-template-columns:minmax(0,1fr) 260px;border-top:1px solid #32373a}.network-main{min-width:0}.network-search{display:flex;align-items:center;gap:12px;padding:14px 20px;border-bottom:1px solid #2d3236;background:#191d20;flex-wrap:wrap}.network-search label{font-size:12px;color:#aebbc2}.network-search input{max-width:220px;padding:9px;letter-spacing:0}.network-search span{font-size:12px;color:#f2c482}#viewer{height:610px;background-color:#101619;background-image:radial-gradient(#344047 1px,transparent 1px)}#network-svg{width:100%;height:100%;position:absolute;inset:0;user-select:none}.network-edge{fill:none;stroke:#628b8d;stroke-width:1.8;opacity:.75}.network-orbit{fill:none;stroke:#8ddad0;stroke-opacity:.13;stroke-dasharray:3 10}.station-bg{fill:#202c32;stroke:#566970;stroke-width:1.2}.station-node{cursor:pointer;outline:none}.station-node.is-root .station-bg{fill:#233c40;stroke:#9dded6;stroke-width:2}.station-node.is-selected .station-bg,.station-node:focus .station-bg,.station-node:hover .station-bg{stroke:#baf9ed;stroke-width:3}.station-dot{fill:#8ba3ac}.is-root .station-dot{fill:#a6efda}.station-role{font:10px 'Segoe UI',sans-serif;fill:#aebfc5;letter-spacing:1px}.station-number{font:600 23px 'Segoe UI',sans-serif;fill:#f3f7f7;letter-spacing:1px}.station-callsign{font:12px 'Segoe UI',sans-serif;fill:#b8cbd1}.station-node.is-muted{opacity:.17}.station-node.is-match .station-bg{stroke:#e6c58a;stroke-width:3}#station-panel{background:linear-gradient(160deg,#20292e,#171d21);border-left:1px solid #344047;padding:24px 20px}#station-panel .eyebrow{font-size:9px;letter-spacing:1.5px;color:#9eb3ba}#station-id{font-size:24px;letter-spacing:.4px;margin:20px 0 7px}#station-call{font-size:16px;color:#b0eadf}dl{margin:28px 0}dt{font-size:11px;color:#94a8b1;margin-top:22px}dd{font-size:14px;line-height:1.6;margin:6px 0 0;overflow-wrap:anywhere}#explore-station{font-size:12px;width:100%;border-color:#496366}.source-report{margin-top:30px;border-top:1px solid #344047;padding-top:20px}.source-report small{font-size:11px;color:#9badb6}.source-report time{display:block;font-size:13px;margin-top:8px}.source-report p{font-size:11px;color:#91b5b0}.source-report .stale{color:#e2be80}.topology:fullscreen .network-workspace{flex:1;min-height:0}.topology:fullscreen .network-main{display:flex;flex-direction:column}.topology:fullscreen #viewer{flex:1;min-height:0}.cards strong#link-count{font-size:34px;color:#c4eee4}.toolbar h2{letter-spacing:-.4px}.brand-icon{color:#b6e2d9}@media(max-width:900px){.network-workspace{grid-template-columns:1fr}#station-panel{border-left:0;border-top:1px solid #344047;padding:18px}#station-panel dl{display:grid;grid-template-columns:1fr 2fr;gap:10px;margin:20px 0}#station-panel dt,#station-panel dd{margin:0}.source-report{margin-top:18px}#viewer{height:480px}.network-search{padding:12px}.network-search input{max-width:none;width:100%}.topology:fullscreen #station-panel{display:none}}@media(max-width:480px){#viewer{height:420px}}
.station-node.is-unresolved .station-bg{stroke:#d4b37e;stroke-dasharray:5 4}
