:root{color-scheme:dark;--bg:#080913;--panel:#10111e;--line:#282b40;--cyan:#46f4e3;--pink:#ff58bc;--yellow:#e5ff6c;--text:#e3e6f3;--muted:#9b9eb8;--mono:ui-monospace,Consolas,"Liberation Mono",monospace}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text);font-family:Arial,Helvetica,sans-serif;font-size:13px}button,input,select{font:11px var(--mono)}button,select{cursor:pointer}button{color:var(--text);background:#191c2e;border:1px solid #3b405a;padding:10px 12px;transition:background .15s,border-color .15s}button:hover{background:#293147;border-color:var(--cyan)}button:disabled{opacity:.4;cursor:not-allowed}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible{outline:2px solid var(--yellow);outline-offset:3px}input,select{border:1px solid #363a52;background:#090c17;color:var(--text);padding:11px;width:100%;min-width:0;border-radius:0}input[type=checkbox]{width:auto;accent-color:var(--cyan)}a{color:inherit}header{height:88px;padding:0 26px;display:flex;align-items:center;justify-content:space-between;gap:20px;border-bottom:1px solid #353347;background:linear-gradient(100deg,#111727,#0e0d1d 65%,#28162b)}.brand{display:flex;gap:12px;align-items:center;text-decoration:none;font-size:22px;font-weight:900;letter-spacing:1px}.brand b{color:var(--cyan)}.brand small{display:block;font:8px var(--mono);letter-spacing:2px;color:#a1a9c5;margin-top:6px}.logo{font:italic 900 32px Arial;border:1px solid var(--cyan);padding:8px 7px;box-shadow:4px 4px 0 #713467;color:var(--cyan);transform:skew(-7deg)}.logo span{color:var(--pink)}.title{font:bold 17px var(--mono);letter-spacing:3px}.slash{color:var(--pink);margin-right:14px}.version{display:block;font:8px var(--mono);color:var(--muted);letter-spacing:2.5px;margin-top:9px;margin-left:38px}.head-right{display:flex;gap:20px;align-items:center}#clock{font:10px var(--mono);color:var(--cyan)}.icon-button{font-size:16px;color:var(--cyan);padding:8px 13px}.status-strip{height:35px;display:flex;gap:30px;align-items:center;padding:0 26px;font:9px var(--mono);letter-spacing:1px;background:#0d101c;border-bottom:1px solid var(--line);color:#a1aac6}.status-strip>span:first-child{color:var(--cyan);margin-right:auto}.status-strip b{margin-left:8px;color:var(--text)}.pulse{display:inline-block;width:6px;height:6px;border-radius:50%;background:var(--cyan);box-shadow:0 0 10px var(--cyan);margin-right:9px}.console{display:grid;grid-template-columns:260px minmax(0,1fr) 270px;min-height:calc(100vh - 164px)}.sidebar,.inspector{background:linear-gradient(180deg,#111322,#0b0d18);min-width:0}.sidebar{border-right:1px solid var(--line)}.inspector{border-left:1px solid var(--line)}.panel-title{padding:17px 18px;font:9px var(--mono);letter-spacing:1.5px;color:#b8bed8;display:flex;justify-content:space-between;border-bottom:1px solid var(--line)}.cross{color:var(--pink)}.channel{padding:20px 17px;border-bottom:1px solid var(--line);position:relative}.channel:before{content:'';position:absolute;left:0;top:20px;height:28px;width:3px;background:var(--cyan);box-shadow:0 0 12px #46f4e344}.channel.wifi:before{background:var(--pink)}.channel-heading{display:flex;justify-content:space-between;align-items:center;gap:8px}h2{margin:0;font:700 12px var(--mono);letter-spacing:1px}.mesh h2{color:var(--cyan)}.wifi h2{color:var(--pink)}.toggle{font:10px var(--mono);color:var(--muted);display:flex;align-items:center;gap:5px}.channel p,.micro{font-size:11px;color:var(--muted);line-height:1.6}.channel>label,dialog form>label{display:block;font:8px var(--mono);letter-spacing:1px;margin:16px 0 8px;color:#a1aac6}.input-row{display:flex;gap:6px}.input-row button{font-size:18px;color:var(--cyan);padding:6px 11px}.input-row select{font-size:10px}.source-status{font:10px/1.6 var(--mono);color:#a2aec6;padding:12px 0;overflow-wrap:anywhere}.source-status.error{color:#ff8ebc}.source-status.ok{color:var(--cyan)}.full{width:100%;margin:5px 0}.subtle{background:transparent;color:#a4abc7;font-size:10px}.pink{background:#ff58bc18;border-color:#87426f;color:#ff99d4}.button-row{display:flex;gap:6px;margin:8px 0}.button-row>*{flex:1;font-size:9px}.utilities{padding:0 17px 20px}.utilities .panel-title{padding:18px 0;border:0}.source-links{display:flex;justify-content:space-between;color:var(--cyan);font:10px var(--mono);margin-top:20px}.center{min-width:0}.map-toolbar{display:flex;padding:12px;gap:7px;border-bottom:1px solid var(--line);background:#101321}.map-toolbar form{display:flex;align-items:center;flex:1;min-width:0;border:1px solid #363a52;background:#090c17}.map-toolbar input{border:0;padding-left:4px}.map-toolbar form button{border:0;background:#252c3b;font-size:9px}.map-toolbar>button{font-size:9px;padding:8px}.search-glyph{color:var(--cyan);font-size:25px;margin:0 9px}.map-shell{position:relative;height:61vh;min-height:450px;max-height:800px;background:#141827}#map{height:100%;width:100%;background:radial-gradient(ellipse,#182638,#0e1220);z-index:0}.map-id{position:absolute;z-index:500;top:17px;left:57px;pointer-events:none;display:flex;flex-direction:column;gap:8px;background:#090d1bd9;border-left:2px solid var(--cyan);padding:10px 14px;box-shadow:0 0 24px #0007}.map-id span{font:9px var(--mono);color:var(--cyan);letter-spacing:2px}.map-id b{font:8px var(--mono);letter-spacing:1px;color:#acb8d2}.map-tools{position:absolute;right:13px;top:17px;z-index:500;display:flex;gap:6px}.map-tools button,.map-tools select{font:9px var(--mono);padding:9px;background:#0b1021eb;width:auto}.map-tools button[aria-pressed=true]{border-color:var(--yellow);color:var(--yellow)}#map-message{position:absolute;z-index:500;left:50%;bottom:60px;transform:translateX(-50%);background:#0d1425ed;border:1px solid #505971;border-left:3px solid var(--pink);padding:11px 17px;font:10px/1.5 var(--mono);color:#d5dcef;width:max-content;max-width:85%;pointer-events:none}.map-bottom{position:absolute;left:0;right:0;bottom:0;z-index:500;pointer-events:none;padding:9px 14px;background:#0a101ce8;display:flex;justify-content:space-between;font:8px var(--mono);letter-spacing:1px;color:#9aafc8}.leaflet-control-attribution{margin-bottom:29px!important;background:#0b1021e8!important;color:#a2b2c8!important;font-size:9px!important}.leaflet-control-attribution a{color:#a7d1dd}.leaflet-control-zoom{border:1px solid #414c65!important}.leaflet-control-zoom a{background:#11182b!important;color:var(--cyan)!important;border-color:#414c65!important}.leaflet-control-scale{margin-bottom:38px!important}.leaflet-control-scale-line{background:#10182bc9!important;color:#dbe5ff!important;border-color:#637590!important}.night .leaflet-tile-pane{filter:invert(100%) hue-rotate(185deg) saturate(.6) brightness(.64) contrast(1.15)}.leaflet-tooltip{background:#0b1021;color:var(--text);border:1px solid #3c7a86;font:11px var(--mono);box-shadow:none}.pin{display:flex;align-items:center;justify-content:center}.pin>span{display:block;width:13px;height:13px;transform:rotate(45deg);background:#103d43;border:2px solid var(--cyan);box-shadow:0 0 10px #46f4e377}.pin.wifi-pin>span{border-color:var(--pink);background:#4e1a47;border-radius:50%;box-shadow:0 0 8px #ff58bc77}.cluster{display:flex;align-items:center;justify-content:center;border-radius:50%;color:var(--cyan);background:#102e3bdc;border:1px solid #46f4e399;box-shadow:0 0 0 5px #46f4e31a;font:700 12px var(--mono)}.cluster.wifi-cluster{background:#3a1839dd;color:var(--pink);border-color:#ff58bc99;box-shadow:0 0 0 5px #ff58bc1a}.results-heading{height:52px;display:flex;gap:8px;align-items:center;padding:0 14px;border-block:1px solid var(--line);background:#111525}.results-heading h2{font-size:10px;margin-right:auto;letter-spacing:.5px}.results-heading h2 span{display:inline-block;color:var(--cyan);margin-left:8px}.results-heading label{font:9px var(--mono);color:var(--muted);white-space:nowrap}.results-heading>span{font:9px var(--mono);color:var(--muted);white-space:nowrap}.results-heading button{padding:4px 7px}.table-wrap{overflow:auto;max-height:360px;min-height:180px}table{width:100%;border-collapse:collapse;font:10px var(--mono);text-align:left}th{font-size:8px;letter-spacing:.7px;color:#8e9dbb;background:#101320;padding:11px;position:sticky;top:0;z-index:1}td{border-bottom:1px solid #20263a;padding:12px 11px;color:#aebbd5;max-width:190px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}td button{padding:0;border:0;background:none;color:#e8edff;text-align:left;max-width:190px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}tr:hover td{background:#171e30}.tag{font:8px var(--mono);color:var(--cyan);padding:4px 5px;border:1px solid #2e656a;background:#46f4e310}.tag.wifi{color:var(--pink);border-color:#663652;background:#ff58bc10}.empty{text-align:center;padding:35px 15px;color:var(--muted)}.empty>span{display:block;font-size:32px;color:#52627e;margin-bottom:10px}.empty strong{font:11px var(--mono)}.empty p{font-size:11px}.no-selection{text-align:center;padding:45px 22px;color:var(--muted)}.reticle{width:80px;height:80px;display:grid;place-items:center;border:1px solid #3c4362;border-radius:50%;outline:1px dashed #383650;outline-offset:10px;margin:10px auto 35px;font:40px var(--mono);color:var(--pink);background:radial-gradient(circle,#ff58bc10,transparent)}.no-selection h2{color:#b9c7df;font-size:11px}.no-selection p{font-size:12px;line-height:1.7}.detail-header{padding:22px 18px;background:linear-gradient(120deg,#17323977,#32172d44);border-bottom:1px solid var(--line)}.detail-header h2{font-size:18px;line-height:1.4;margin:12px 0;overflow-wrap:anywhere;color:var(--text)}.detail-header p{font:10px var(--mono);color:var(--cyan);overflow-wrap:anywhere}.detail-dl{padding:5px 18px;margin:0}.detail-dl div{display:flex;justify-content:space-between;gap:14px;padding:11px 0;border-bottom:1px solid #20283b;font:10px/1.5 var(--mono)}.detail-dl dt{color:#8996b2}.detail-dl dd{margin:0;text-align:right;overflow-wrap:anywhere;max-width:145px;color:#e0e7fb}.detail-actions{padding:12px 18px}.detail-actions button{width:100%;font-size:9px}.detail-source{font:9px/1.7 var(--mono);color:var(--muted);padding:0 18px 16px;overflow-wrap:anywhere}.analysis{border-top:1px solid var(--line);padding-bottom:15px}.stat-grid{display:grid;grid-template-columns:1fr 1fr;padding:20px 18px;gap:15px}.stat-grid strong{display:block;font:27px var(--mono);color:var(--cyan)}.stat-grid>div:last-child strong{color:var(--pink)}.stat-grid span{font:8px var(--mono);color:var(--muted);display:block;margin-top:7px}.analysis h3{font:8px var(--mono);letter-spacing:1px;color:#b6c1db;padding:0 18px}#channels{padding:8px 18px}.channel-bar{display:flex;gap:8px;align-items:center;margin:10px 0;font:9px var(--mono);color:#aab6d0}.channel-bar>span{width:30px;flex-shrink:0}.channel-bar meter{height:9px;width:100%;accent-color:var(--pink)}.channel-bar b{font-weight:400;min-width:24px;text-align:right}.analysis>.micro{padding:0 18px;font-size:10px}footer{display:flex;justify-content:space-between;align-items:center;gap:20px;padding:12px 20px;background:#0b0d18;border-top:1px solid var(--line);font:8px var(--mono);letter-spacing:1px;color:#9da6bf}footer>span:first-child{color:var(--pink)}footer button{font:8px var(--mono);border:0;background:transparent;color:var(--cyan);padding:0}#notice{letter-spacing:.2px;text-align:right}dialog{background:#111525;border:1px solid #55617e;color:var(--text);padding:24px;width:min(540px,92vw);max-height:85vh;box-shadow:0 0 80px #000a}dialog::backdrop{background:#040713bf;backdrop-filter:blur(6px)}dialog p{font-size:13px;color:#adb9d0;line-height:1.7}.dialog-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:15px}.dialog-head h2{color:var(--cyan);font-size:14px}.dialog-head button{font-size:22px;border:0;background:transparent;padding:0 5px;color:var(--pink)}dialog .button-row{margin-top:18px}.cyan-link{font:10px var(--mono);color:var(--cyan)}.guide-body h3{font:11px var(--mono);color:var(--pink);margin-top:26px}.guide-body a{color:var(--cyan)}.sr-only,.skip:not(:focus){position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.skip:focus{position:absolute;z-index:9999;background:var(--yellow);color:#000;padding:15px}[hidden]{display:none!important}body.sample-mode #map-label{color:var(--yellow)}@media(min-width:1700px){.console{grid-template-columns:290px minmax(0,1fr) 320px}.channel{padding:24px}.utilities{padding-inline:24px}.map-shell{height:66vh}}@media(max-width:1200px){.console{grid-template-columns:230px minmax(0,1fr)}.inspector{grid-column:1/-1;display:grid;grid-template-columns:230px 1fr 1fr;border-top:1px solid var(--line);border-left:0}.inspector>.panel-title{border:0;align-items:start}.inspector .analysis{border:0;border-left:1px solid var(--line)}.no-selection{padding:30px}.map-id{max-width:230px}.map-id span{font-size:8px}.map-tools{top:auto;bottom:105px}.status-strip{gap:18px}.title{font-size:14px}.detail-dl{display:grid;grid-template-columns:1fr 1fr;gap:0 20px}.detail-source{grid-column:1/-1}}@media(max-width:760px){header{height:74px;padding:0 15px}.brand{font-size:19px}.brand small{font-size:6px;letter-spacing:1px}.logo{font-size:26px}.title{display:none}.head-right{gap:12px}#clock{font-size:8px}.status-strip{height:auto;min-height:36px;flex-wrap:wrap;padding:10px 15px;gap:10px;font-size:8px}.status-strip>span:first-child{width:100%}.console{display:flex;flex-direction:column}.center{order:0}.sidebar{order:1;display:grid;grid-template-columns:1fr 1fr;border-top:1px solid var(--line);border-right:0}.sidebar>.panel-title{grid-column:1/-1}.channel{padding:17px 13px}.channel h2{font-size:10px}.channel p{font-size:10px}.input-row{flex-wrap:wrap}.input-row select{flex:1;width:100px}.utilities{grid-column:1/-1;display:grid;grid-template-columns:1fr 1fr;gap:8px 16px;padding:0 13px 20px}.utilities .panel-title,.utilities .micro,.source-links{grid-column:1/-1}.utilities .button-row{margin:5px 0}.utilities button{font-size:9px}.inspector{order:2;display:block}.map-toolbar{flex-wrap:wrap;padding:10px}.map-toolbar form{min-width:100%;height:37px}.map-toolbar>button{flex:1}.map-shell{height:62vh;min-height:390px}.map-id{left:55px;top:12px}.map-id span{letter-spacing:1px}.map-tools{bottom:93px;right:10px}.map-bottom{font-size:7px;letter-spacing:0;padding:9px}.results-heading{flex-wrap:wrap;height:auto;min-height:50px;padding:10px;gap:10px}.results-heading h2{font-size:9px}.results-heading label{font-size:8px}.table-wrap{max-height:250px}th,td{padding:10px 8px}.inspector .analysis{border:0;border-top:1px solid var(--line)}.detail-header h2{font-size:22px}.detail-dl{display:grid;grid-template-columns:1fr 1fr;gap:0 20px}.detail-dl dd{max-width:110px}.stat-grid{max-width:400px}.analysis h3,#channels{max-width:500px}footer{flex-wrap:wrap;font-size:7px;gap:12px}footer #notice{width:100%;order:3;text-align:left}.source-status{font-size:9px;min-height:60px}}@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important}}

/* Make the purpose and first action visible before the console. */
.intro{display:grid;grid-template-columns:1.4fr 1fr;gap:40px;padding:32px clamp(20px,4vw,64px);border-bottom:1px solid #293345;background:radial-gradient(ellipse at 70% 0%,#122c35 0%,transparent 65%),#090e16}
.eyebrow{font:11px monospace;letter-spacing:2px;color:#75dedb}.intro h1{font:700 clamp(28px,3.5vw,46px)/1.12 sans-serif;letter-spacing:-1px;margin:12px 0}.intro h1 em{font-style:normal;color:#70f5da}.intro p{max-width:660px;color:#b5c3d2;font:14px/1.65 sans-serif;margin:10px 0}.intro .intro-note{font-size:12px;color:#90a7b9}.start-card{align-self:center;padding:22px;background:#101924;border:1px solid #2c4050;border-left:3px solid #ee70bc}.start-card button{margin-top:14px;padding:13px;text-align:left;font-size:13px}.start-card button span{display:block;margin-top:6px;font-size:11px;font-weight:400;opacity:.8}.start-card p{font-size:12px;margin-bottom:0}.demo-banner{display:flex;gap:14px;align-items:center;padding:12px 24px;background:#26251a;border-bottom:1px solid #6e6633;color:#e9dfa1;font:12px/1.5 sans-serif}.demo-banner[hidden]{display:none}.demo-banner strong{white-space:nowrap;letter-spacing:1px}.location-note{padding:9px 24px;color:#a0b8c8;background:#0d1520;font:12px/1.5 sans-serif;border-bottom:1px solid #293345}
@media(max-width:760px){.intro{grid-template-columns:1fr;gap:16px;padding:24px 16px}.intro h1 br{display:none}.intro h1 em:before{content:' '}.start-card{padding:16px}.demo-banner{align-items:flex-start;padding:12px 16px}.location-note{padding:9px 16px}}
