:root{--bg:#050d18;--panel:#071727;--panel2:#091d30;--line:#16466a;--line2:#0e3554;--text:#edf5ff;--muted:#9cb2c7;--blue:#20a9ff;--cyan:#5be2ff;--green:#28e56f;--orange:#ffbd5b;--shadow:0 12px 34px #0008;font-family:Inter,system-ui,-apple-system,Segoe UI,sans-serif;color:var(--text);background:var(--bg)}*{box-sizing:border-box}body{margin:0;min-width:320px;min-height:100vh;background:radial-gradient(ellipse at 50% 38%,#0c2b45 0,#061422 45%,#030913 100%);font-size:14px}.app-shell{height:100vh;min-height:720px;display:flex;flex-direction:column;overflow:hidden}.topbar{height:78px;flex:0 0 78px;display:flex;align-items:center;gap:26px;padding:0 22px;border-bottom:1px solid #16405d;background:linear-gradient(90deg,#020913f2,#061421f4 48%,#020913f2);z-index:1000;box-shadow:0 8px 25px #0004}.brand{width:260px;flex:0 0 260px;display:flex;align-items:center;gap:12px;text-decoration:none;color:#f5faff}.brand-mark{width:58px;height:48px;color:#e8f4ff;display:block}.brand-mark svg{width:100%;height:100%}.brand-copy{display:flex;flex-direction:column;line-height:1}.brand-copy strong{font-size:26px;letter-spacing:3px;font-weight:800}.brand-copy small{font-size:13px;letter-spacing:2.2px;margin-top:6px;color:#b9cfe1}.main-nav{display:flex;align-items:stretch;justify-content:center;gap:8px;flex:1;height:100%}.nav-item{min-width:110px;border:0;border-bottom:2px solid transparent;background:transparent;color:#aebdcb;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;cursor:pointer;font:inherit;transition:.2s}.nav-item span{font-size:22px;line-height:1;color:#9cacc0}.nav-item b{font-size:12px;font-weight:600}.nav-item:hover,.nav-item.active{color:#fff;background:linear-gradient(180deg,#0b3b60aa,#0a2944aa);border-bottom-color:var(--blue)}.nav-item.active span{color:var(--blue)}.top-actions{display:flex;align-items:center;gap:18px}.language-select select{appearance:none;border:1px solid #1b5277;border-radius:9px;padding:10px 30px 10px 12px;color:#e8f5ff;background:#071a2a url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath d='m2 4 4 4 4-4' fill='none' stroke='%23b8d7ef' stroke-width='1.4'/%3E%3C/svg%3E") no-repeat right 10px center;font:600 12px Inter;cursor:pointer}.language-select option{background:#071a2a}.live-pill{border:1px solid #164c6c;border-radius:20px;padding:8px 12px;display:flex;align-items:center;gap:8px;white-space:nowrap;font-size:12px;color:#ecf8ff}.live-pill i,.status-dot,.source-indicator{width:9px;height:9px;border-radius:50%;background:var(--green);box-shadow:0 0 10px #20e76c;display:inline-block}.live-pill span{color:var(--green);font-weight:800;letter-spacing:.7px}.live-pill time{font-variant-numeric:tabular-nums}.live-pill small{color:var(--muted)}.dashboard{flex:1;min-height:0;display:grid;grid-template-columns:286px minmax(350px,1fr) 286px;gap:12px;padding:12px}.left-rail,.right-rail{display:flex;flex-direction:column;gap:10px;min-height:0;overflow:auto;scrollbar-width:thin;scrollbar-color:#1a4969 transparent}.panel{background:linear-gradient(145deg,#071a2af2,#061423f2);border:1px solid #16496c;border-radius:13px;box-shadow:var(--shadow);overflow:hidden;backdrop-filter:blur(9px)}.panel-heading{height:43px;padding:0 14px;display:flex;align-items:center;gap:9px;border-bottom:1px solid #123751}.panel-heading h2{font-size:14px;font-weight:700;margin:0;flex:1}.heading-icon{width:20px;text-align:center;color:#d7ecff;font-size:18px}.heading-icon.blue{color:var(--blue)}.icon-button{border:0;background:transparent;color:#d6e7f7;font-size:23px;padding:3px 6px;cursor:pointer}.data-grid{display:grid;grid-template-columns:1fr auto;gap:9px 10px;padding:12px 14px 13px;align-items:center}.data-grid span{color:#a6b9cb;font-size:12px}.data-grid strong{font-size:12px;font-weight:600;color:#f3f8ff;text-align:right;font-variant-numeric:tabular-nums}.data-grid.compact{padding-top:11px;padding-bottom:12px;gap:8px 8px}.text-button{border:0;border-top:1px solid #123650;width:100%;background:#092039;color:#65c9ff;padding:9px 12px;font:600 11px Inter;cursor:pointer;text-align:left}.text-button:hover{background:#0d2c49}.connection-name{font-size:15px;font-weight:800;padding:13px 14px 0;color:#f1f7ff}.status-dot{width:11px;height:11px}.handover-row{display:flex;justify-content:space-between;align-items:center;padding:0 14px 12px;color:#a6b9cb;font-size:12px}.handover-row strong{font-size:17px;color:var(--green)}.micro-note{font-size:10px;line-height:1.45;color:#8198ad;margin:0;padding:0 14px 12px}.candidate-list{padding:5px 13px 10px}.candidate-row{display:grid;grid-template-columns:24px minmax(0,1fr) auto;gap:8px;align-items:center;padding:9px 0;border-bottom:1px solid #102d45}.candidate-row:last-child{border-bottom:0}.candidate-rank{width:21px;height:21px;border:1px solid #275878;border-radius:50%;display:grid;place-items:center;font-size:10px;color:#bce2ff}.candidate-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:11px;font-weight:600}.candidate-meta{color:#9eb5c8;font-size:10px;white-space:nowrap}.empty-state{padding:13px 2px;color:#8fa8bc;font-size:11px}.map-stage{min-width:0;min-height:0;position:relative;border:1px solid #174a6e;border-radius:13px;overflow:hidden;background:#061422;box-shadow:0 14px 40px #0008}#satelliteMap{position:absolute;inset:0;background:radial-gradient(ellipse at center,#12334e,#061321 72%)}.leaflet-container{background:#071a2a;color:#eef7ff;font-family:Inter,sans-serif}.leaflet-tile{filter:brightness(.78) invert(1) hue-rotate(180deg) saturate(.72) contrast(1.08)}.leaflet-control-attribution{display:none!important}.leaflet-control-zoom{display:none}.leaflet-popup-content-wrapper,.leaflet-popup-tip{background:#071a2a;color:#f0f7ff;border:1px solid #1b6085}.leaflet-popup-content{font:12px Inter,sans-serif}.map-vignette{pointer-events:none;position:absolute;inset:0;z-index:400;background:radial-gradient(ellipse at center,transparent 44%,#020a1799 100%)}.map-status{position:absolute;top:14px;left:15px;z-index:500;border:1px solid #1d5778;background:#041422d9;border-radius:20px;padding:8px 11px;font-size:10px;color:#c6dced;display:flex;gap:8px;align-items:center;backdrop-filter:blur(8px)}.pulse{width:7px;height:7px;border-radius:50%;background:var(--green);box-shadow:0 0 0 4px #28e56f22,0 0 12px #28e56f;animation:pulse 1.8s infinite}@keyframes pulse{50%{box-shadow:0 0 0 8px #28e56f08,0 0 15px #28e56f}}.map-tools{position:absolute;left:15px;bottom:90px;z-index:500;display:flex;flex-direction:column;border:1px solid #1b5778;border-radius:9px;overflow:hidden;box-shadow:0 5px 14px #0007}.map-tools button{width:39px;height:38px;border:0;border-bottom:1px solid #1b4967;background:#061a2c;color:#eaf6ff;font:24px Inter;cursor:pointer}.map-tools button:last-child{font-size:19px;border-bottom:0}.map-tools button:hover{background:#0d3858}.map-legend{position:absolute;z-index:500;bottom:14px;left:50%;transform:translateX(-50%);display:flex;gap:15px;align-items:center;padding:10px 15px;border:1px solid #1a5579;border-radius:10px;background:#041522e8;backdrop-filter:blur(8px);white-space:nowrap}.map-legend label{display:flex;gap:7px;align-items:center;font-size:10px;color:#e5f1fc;cursor:pointer}.map-legend input{accent-color:#158df2;width:13px;height:13px;margin:0}.legend-dot{width:8px;height:8px;border-radius:50%;background:#50d9ff;box-shadow:0 0 8px #50d9ff}.legend-line{width:20px;height:3px;background:#2aef78;box-shadow:0 0 8px #2aef78}.legend-ring{width:12px;height:12px;border:1px solid #44dcff;border-radius:50%}.map-attribution{position:absolute;right:7px;bottom:5px;z-index:500;font-size:8px;color:#a5b5c4;background:#061422b8;padding:3px 5px;border-radius:4px}.map-attribution a{color:#c3e9ff}.right-rail .panel{flex:0 0 auto}.big-number-row{display:flex;align-items:center;gap:12px;padding:8px 14px 2px}.big-number-row strong{font-size:33px;line-height:1;color:var(--green);font-weight:800}.big-number-row span{font-size:11px;color:#b0c1d0}.sky-dome{height:108px;position:relative;margin:0 14px 7px;overflow:hidden}.dome-arc{position:absolute;left:0;right:0;bottom:10px;height:76px;border:1px solid #58cafa;border-bottom:0;border-radius:100px 100px 0 0;box-shadow:0 -2px 14px #1aaaff20}.dome-dots{position:absolute;left:4px;right:4px;top:6px;bottom:16px}.sky-dot{position:absolute;width:3px;height:3px;background:#effaff;border-radius:50%;box-shadow:0 0 5px #fff}.dome-labels{position:absolute;bottom:0;left:3px;right:3px;display:flex;justify-content:space-between;color:#b3c8da;font-size:9px}.signal-status{display:flex;justify-content:space-between;align-items:center;padding:10px 14px 0}.signal-status strong{color:var(--green);font-size:15px}.signal-bars{height:23px;display:flex;align-items:end;gap:3px}.signal-bars i{width:5px;background:#28e56f;border-radius:1px 1px 0 0;height:7px}.signal-bars i:nth-child(2){height:12px}.signal-bars i:nth-child(3){height:17px}.signal-bars i:nth-child(4){height:22px}.source-row{display:flex;align-items:center;gap:9px;padding:12px 14px 7px}.source-indicator{width:8px;height:8px}.source-indicator.stale{background:var(--orange);box-shadow:0 0 8px #ffbd5b}.source-indicator.error{background:#ff5d68;box-shadow:0 0 8px #ff5d68}.source-row strong{font-size:12px}.source-panel .text-button{margin-top:0}.tab-toast{position:fixed;z-index:2000;bottom:20px;left:50%;transform:translate(-50%,20px);opacity:0;pointer-events:none;border:1px solid #2b719a;border-radius:9px;background:#061b2d;color:#e8f6ff;padding:11px 16px;font-size:12px;box-shadow:var(--shadow);transition:.25s}.tab-toast.show{opacity:1;transform:translate(-50%,0)}.location-dialog{border:0;padding:0;background:transparent;max-width:min(520px,calc(100vw - 24px));width:100%;color:var(--text)}.location-dialog::backdrop{background:#020812ce;backdrop-filter:blur(5px)}.dialog-card{border:1px solid #1c5c81;border-radius:15px;background:linear-gradient(145deg,#092139,#061321);box-shadow:0 24px 80px #000b;padding:22px}.dialog-header{display:flex;justify-content:space-between;align-items:flex-start}.eyebrow{font-size:9px;font-weight:800;letter-spacing:1.8px;color:#59caff}.dialog-header h2{font-size:22px;margin:6px 0 0}.close-dialog{font-size:27px}.dialog-intro{font-size:12px;line-height:1.55;color:#9eb4c8;margin:12px 0 17px}.location-actions{display:grid;grid-template-columns:1fr 1fr;gap:9px;margin-bottom:8px}.map-pick-button{width:100%;border:1px dashed #28668a;border-radius:7px;background:#072139;color:#8bd7ff;padding:9px 12px;font:600 10px Inter;cursor:pointer;margin-bottom:9px;text-align:left}.map-pick-button:hover{background:#0b2c49}.secondary-button,.primary-button{border:1px solid #255879;border-radius:8px;background:#0b2942;color:#e4f4ff;font:600 11px Inter;padding:10px 12px;cursor:pointer}.secondary-button:hover{background:#104064}.primary-button{border-color:#148bd0;background:linear-gradient(135deg,#0878c9,#12a9e4);color:white;padding:11px 20px}.primary-button:hover{filter:brightness(1.12)}.field-label{display:block;font-size:10px;font-weight:700;color:#c1d4e5;margin:12px 0 6px}.search-wrap{display:flex;gap:7px}.search-wrap input{flex:1}.search-wrap button{width:42px;border:1px solid #236084;border-radius:7px;background:#0c3150;color:#fff;font-size:22px;cursor:pointer}input[type=text],input[type=number],input[type=search]{width:100%;border:1px solid #1b4c6b;border-radius:7px;background:#041321;color:#f0f7ff;padding:10px 11px;font:12px Inter;outline:none}input:focus{border-color:#28b6ff;box-shadow:0 0 0 2px #1ba5ee20}.search-results{display:flex;flex-direction:column;gap:4px;margin-top:5px}.search-result{border:1px solid #173e59;border-radius:6px;background:#061a2a;text-align:left;padding:8px 10px;color:#dcebf8;font:11px Inter;cursor:pointer}.search-result:hover{background:#0b2d49}.coordinate-fields{display:grid;grid-template-columns:1fr 1fr;gap:10px}.coordinate-fields label span{font-size:10px;color:#a8bdcf;display:block;margin-bottom:6px}.remember-row{display:flex;align-items:center;gap:8px;margin:15px 0;color:#b7cadb;font-size:11px}.remember-row input{accent-color:#1596e9}.dialog-footer{display:flex;justify-content:space-between;gap:10px;align-items:center;border-top:1px solid #16405d;padding-top:15px;margin-top:16px}.dialog-footer .secondary-button{padding:10px 12px}.dialog-message{font-size:10px;color:#8ecfff;margin-top:10px;min-height:14px}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.antenna-marker{width:34px;height:34px;border-radius:50%;display:grid;place-items:center;border:1px solid #8deaff;background:#06273e;box-shadow:0 0 0 8px #2ac8ff20,0 0 25px #22baff}.antenna-marker span{font-size:18px}.sat-marker{width:9px;height:9px;border-radius:50%;background:#8eeaff;border:1px solid #fff;box-shadow:0 0 10px #52d9ff,0 0 18px #52d9ff}.sat-marker.best{width:13px;height:13px;background:#2df37a;box-shadow:0 0 0 5px #2df37a25,0 0 17px #2df37a}.leaflet-tooltip{background:#061a2a;border:1px solid #1d6389;color:#edf8ff;border-radius:6px;box-shadow:0 4px 12px #0009;font:10px Inter}.leaflet-tooltip:before{border-top-color:#1d6389}.leaflet-popup-close-button{color:#fff!important}@media(max-width:1180px){.brand{width:205px;flex-basis:205px}.brand-copy strong{font-size:21px}.nav-item{min-width:82px}.dashboard{grid-template-columns:250px minmax(280px,1fr) 250px;gap:8px;padding:8px}.topbar{gap:12px;padding:0 12px}.top-actions{gap:8px}}@media(max-width:900px){.app-shell{height:auto;min-height:100vh;overflow:visible}.topbar{height:auto;min-height:72px;flex-wrap:wrap;padding:10px 12px;gap:10px}.brand{flex:1;width:auto}.brand-mark{width:44px}.brand-copy strong{font-size:20px}.main-nav{order:3;flex-basis:100%;height:48px;overflow-x:auto;justify-content:flex-start}.nav-item{min-width:75px}.top-actions{margin-left:auto}.dashboard{grid-template-columns:1fr;grid-template-rows:auto minmax(540px,70vh) auto}.left-rail,.right-rail{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));overflow:visible}.map-stage{grid-row:1;min-height:540px}.map-legend{gap:8px;padding:8px}.map-legend label{font-size:9px}.map-tools{bottom:80px}}@media(max-width:560px){.live-pill{padding:7px 9px}.live-pill small{display:none}.language-select select{max-width:118px}.left-rail,.right-rail{grid-template-columns:1fr}.dashboard{padding:7px;gap:8px}.map-stage{min-height:480px}.map-legend{left:10px;right:10px;transform:none;justify-content:center;flex-wrap:wrap;white-space:normal}.map-attribution{font-size:7px}.dialog-card{padding:16px}.dialog-footer{align-items:stretch}.dialog-footer .secondary-button,.dialog-footer .primary-button{flex:1}.dialog-footer .secondary-button{font-size:9px}}


/* Secondary navigation pages — v0.2.0 */
.section-view{flex:1;min-height:0;overflow:auto;padding:24px clamp(16px,2.3vw,38px) 34px;scrollbar-width:thin;scrollbar-color:#1b5276 transparent;background:radial-gradient(ellipse at 50% 0%,#0b2941 0,#061421 55%,#030a13 100%)}
.section-view[hidden]{display:none!important}
.section-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:20px;margin:2px 0 22px}.section-kicker{font-size:9px;letter-spacing:2.2px;color:#42b9f6;font-weight:800;margin-bottom:8px}.section-heading h1{font-size:clamp(22px,2.4vw,31px);line-height:1.15;margin:0 0 7px;font-weight:800;letter-spacing:-.5px}.section-heading p{margin:0;color:#9bb3c8;font-size:12px;line-height:1.55;max-width:760px}.section-badge{padding:8px 11px;border:1px solid #8f6535;border-radius:7px;color:#ffc36a;background:#422a142b;font-size:9px;font-weight:800;letter-spacing:1px;white-space:nowrap}
.metric-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-bottom:16px}.metric-card{min-height:108px;padding:16px 18px;display:flex;flex-direction:column;justify-content:center}.metric-card>span{font-size:10px;color:#98b0c4;margin-bottom:8px}.metric-card>strong{font-size:26px;font-weight:800;letter-spacing:-.5px;color:#f1f8ff;font-variant-numeric:tabular-nums}.metric-card>small{font-size:9px;color:#718ba2;margin-top:5px}.section-card{border:1px solid #16496c;border-radius:13px;background:linear-gradient(145deg,#081c2df5,#061321f5);box-shadow:0 12px 34px #0005;overflow:hidden}.table-card{margin-bottom:16px}.table-toolbar{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:17px 18px;border-bottom:1px solid #123751}.table-toolbar h2,.section-card-title h2{font-size:14px;margin:0;font-weight:750}.table-toolbar p{font-size:10px;color:#849db2;margin:6px 0 0}.section-search{width:min(330px,45%);border:1px solid #1b4c6b;border-radius:8px;background:#041321;color:#eef7ff;padding:10px 12px;font:11px Inter;outline:none}.table-scroll{overflow:auto}.data-table{border-collapse:collapse;width:100%;min-width:700px;text-align:left}.data-table th{font-size:9px;letter-spacing:.6px;text-transform:uppercase;color:#7f9ab0;background:#061727;padding:12px 18px;border-bottom:1px solid #153b56;white-space:nowrap}.data-table td{font-size:11px;padding:12px 18px;border-bottom:1px solid #102c43;color:#c4d5e3;white-space:nowrap}.data-table tbody tr:hover{background:#0b2940}.data-table td strong{font-size:11px;color:#edf6ff}.mono{font-variant-numeric:tabular-nums;font-family:ui-monospace,monospace}.state-pill{display:inline-flex;align-items:center;border-radius:20px;padding:5px 8px;font-size:9px;font-weight:700}.state-good{color:#5df39b;background:#123d2b;border:1px solid #1d7045}.state-muted{color:#9ab0c3;background:#172a3b;border:1px solid #2a455c}.table-footer{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 16px;color:#89a2b7;font-size:10px}.pagination{display:flex;align-items:center;gap:10px}.pagination .secondary-button{padding:7px 10px;font-size:9px}.secondary-button:disabled{opacity:.35;cursor:default}.empty-section{padding:38px 22px;text-align:center}.empty-orbit-icon{width:48px;height:48px;border:1px solid #235d80;border-radius:50%;display:grid;place-items:center;margin:0 auto 14px;color:#50caff;font-size:24px;background:#0b2d46}.empty-section h2{font-size:16px;margin:0 0 8px}.empty-section p{max-width:600px;margin:0 auto;color:#91a9bd;font-size:11px;line-height:1.6}.source-error-line{margin:14px auto 0;max-width:660px;color:#ffbf7b;background:#35251655;border:1px solid #75502d;border-radius:7px;padding:9px 11px;font-size:10px;overflow-wrap:anywhere}
.notice-card{display:flex;align-items:flex-start;gap:12px;padding:14px 17px;border:1px solid #75552d;border-radius:11px;background:linear-gradient(100deg,#39271366,#1d1b1a55);margin-bottom:16px}.notice-icon{width:23px;height:23px;flex:0 0 23px;display:grid;place-items:center;border-radius:50%;color:#ffcb76;border:1px solid #a77634;font-weight:800}.notice-card strong{font-size:11px;color:#ffd18a}.notice-card p{font-size:10px;color:#c2b39f;line-height:1.55;margin:5px 0 0}.connection-layout{display:grid;grid-template-columns:minmax(0,1.7fr) minmax(270px,.8fr);gap:14px;margin-bottom:16px}.section-card-title{padding:15px 18px;border-bottom:1px solid #123751}.connection-hero{padding:18px}.connection-hero-top{display:flex;align-items:center;justify-content:space-between;gap:10px}.status-chip,.estimate-chip{border-radius:20px;padding:6px 9px;font-size:9px;font-weight:800}.status-chip{color:#68f4a1;background:#123d2b;border:1px solid #1e7048}.estimate-chip{color:#ffc574;background:#372719;border:1px solid #76542d}.connection-satellite-name{font-size:clamp(21px,3vw,31px);font-weight:850;margin:19px 0 3px;letter-spacing:.2px}.connection-norad{font-size:10px;color:#7f9ab0}.connection-detail-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:9px;margin-top:19px}.connection-detail-grid .metric-card{min-height:84px;padding:12px}.connection-detail-grid .metric-card>strong{font-size:18px}.antenna-summary{padding-bottom:15px}.antenna-summary-icon{margin:18px auto 10px;width:48px;height:48px;border-radius:50%;display:grid;place-items:center;border:1px solid #2a789f;color:#67d7ff;background:#0b3049;font-size:25px;box-shadow:0 0 26px #20a9ff20}.antenna-summary>strong{display:block;padding:0 16px;text-align:center;font-size:11px;line-height:1.5;overflow-wrap:anywhere}.antenna-summary>.primary-button{display:block;margin:14px auto 0}.section-divider{height:1px;background:#123751;margin:17px 16px}.antenna-summary h3{font-size:11px;margin:0 16px 7px}.antenna-summary p{font-size:10px;color:#8fa7bc;line-height:1.5;margin:0 16px}.candidates-table-card{margin-bottom:12px}.connection-candidate{display:grid;grid-template-columns:26px minmax(0,1fr) 80px 90px;gap:12px;align-items:center;padding:12px 17px;border-bottom:1px solid #102d45;font-size:10px;color:#9fb4c7}.connection-candidate:last-child{border-bottom:0}.connection-candidate strong{color:#edf6ff;font-size:11px}.connection-candidate>span:last-child{text-align:right}.connection-candidate>span:nth-last-child(2){text-align:right}
.stats-metrics{grid-template-columns:repeat(4,minmax(0,1fr))}.stats-layout{display:grid;grid-template-columns:1fr 1fr;gap:14px}.distribution-row{display:grid;grid-template-columns:110px minmax(0,1fr) 28px;align-items:center;gap:12px;padding:14px 17px;border-bottom:1px solid #102d45;font-size:10px;color:#b7c9d8}.distribution-row:last-child{border-bottom:0}.distribution-track{height:8px;border-radius:10px;background:#102b40;overflow:hidden}.distribution-track i{display:block;height:100%;min-width:0;border-radius:10px;background:linear-gradient(90deg,#148ee4,#43d8ff);box-shadow:0 0 10px #1daeff66}.distribution-row strong{text-align:right;color:#eff8ff;font-variant-numeric:tabular-nums}.section-footnote{margin:14px 2px 0;color:#8199ad;font-size:10px;line-height:1.5}
.about-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:13px}.about-card{padding:18px 19px;min-height:160px}.about-icon{width:32px;height:32px;border:1px solid #1a6088;color:#4dcaff;background:#0a2941;border-radius:9px;display:grid;place-items:center;font-size:17px;margin-bottom:13px}.about-card h2{font-size:13px;margin:0 0 8px}.about-card p{font-size:10px;line-height:1.65;color:#9bb1c4;margin:0}.caution-card{border-color:#73532f;background:linear-gradient(145deg,#241d17,#111720)}.caution-card .about-icon{border-color:#906332;color:#ffc46f;background:#3b2a19}.source-links{display:flex;flex-wrap:wrap;gap:12px;margin-top:12px}.source-links a{color:#64cfff;font-size:10px;text-decoration:none}.source-links a:hover{text-decoration:underline}.about-version{display:flex;justify-content:space-between;gap:15px;padding:18px 3px;color:#647f96;font-size:9px;letter-spacing:.4px}.about-version strong{color:#a8c2d8;letter-spacing:1.2px}
@media(max-width:1000px){.section-view{padding:20px 14px}.stats-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}.connection-layout{grid-template-columns:1fr}.antenna-summary{padding-bottom:18px}.about-grid{grid-template-columns:1fr 1fr}}
@media(max-width:650px){.section-heading{align-items:flex-start;flex-direction:column}.metric-grid,.stats-metrics{grid-template-columns:1fr 1fr;gap:8px}.metric-card{min-height:88px;padding:12px}.metric-card>strong{font-size:22px}.table-toolbar{align-items:stretch;flex-direction:column}.section-search{width:100%}.table-footer{align-items:flex-start;flex-direction:column}.connection-detail-grid{grid-template-columns:1fr 1fr}.stats-layout,.about-grid{grid-template-columns:1fr}.connection-candidate{grid-template-columns:24px minmax(0,1fr) 55px 65px;gap:7px;padding:11px}.about-version{flex-direction:column;gap:5px}}
input.section-search{width:min(330px,45%);flex:0 1 330px}

/* Explicitly hide the map dashboard when another top-level page is active. */
.dashboard[hidden]{display:none!important}

/* v0.2.2 — selectable world clock and clearer automatic/manual location setup */
.timezone-control{display:inline-flex;align-items:center;min-width:0}.timezone-control select{max-width:165px;min-width:105px;border:1px solid #1a4d6d;border-radius:7px;padding:5px 22px 5px 8px;color:#b9d9ee;background:#061827 url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='10' viewBox='0 0 12 12'%3E%3Cpath d='m2 4 4 4 4-4' fill='none' stroke='%239bc5df' stroke-width='1.4'/%3E%3C/svg%3E") no-repeat right 7px center;appearance:none;font:500 10px Inter,system-ui,sans-serif;cursor:pointer}.timezone-control select:focus{outline:1px solid #24aaf2;outline-offset:1px}.timezone-control option,.timezone-control optgroup{background:#071a2a;color:#eaf6ff}.auto-location-block{padding:12px;border:1px solid #1e6286;border-radius:10px;background:linear-gradient(120deg,#0c3552aa,#082238aa);margin:0 0 13px}.auto-location-button{width:100%;font-size:11px;padding:12px}.auto-location-block p{font-size:10px;line-height:1.45;color:#9db7ca;margin:8px 2px 0}.dialog-divider{display:flex;align-items:center;gap:10px;margin:14px 0 8px;color:#65c8fa;font-size:9px;font-weight:800;letter-spacing:1.3px}.dialog-divider:before,.dialog-divider:after{content:"";height:1px;background:#17435f;flex:1}.dialog-divider.compact-divider{margin:10px 0 9px;font-size:8px;color:#8daac0}.location-dialog{max-height:calc(100vh - 24px);overflow:auto}.location-dialog .dialog-card{margin:0}
@media(max-width:900px){.timezone-control select{max-width:155px}}
@media(max-width:560px){.timezone-control select{max-width:112px;min-width:80px;font-size:9px;padding-left:5px}.live-pill{gap:6px}.auto-location-block{padding:10px}.location-dialog{max-height:calc(100vh - 12px)}}


/* v0.2.3 — make manual antenna placement obvious and directly accessible on the map */
.location-panel-button{width:calc(100% - 24px);margin:0 12px 12px;min-height:42px;display:flex;align-items:center;gap:10px;padding:9px 12px;border:1px solid #228fc5;border-radius:9px;background:linear-gradient(100deg,#0b65a5,#0878b8 58%,#07517f);color:#fff;font:700 11px Inter,system-ui,sans-serif;text-align:left;cursor:pointer;box-shadow:0 5px 15px #008bd333;transition:filter .18s,transform .18s,border-color .18s}
.location-panel-button:hover{filter:brightness(1.15);border-color:#60d7ff;transform:translateY(-1px)}
.location-panel-button:focus-visible,.map-location-action:focus-visible,.map-pick-banner button:focus-visible{outline:2px solid #8ceaff;outline-offset:3px}
.location-panel-pin{width:25px;height:25px;display:grid;place-items:center;border-radius:7px;background:#ffffff20;color:#bff1ff;font-size:18px;flex:0 0 25px}
.location-panel-button b{margin-left:auto;font-size:17px;color:#c1f4ff}
.map-location-control{position:absolute;z-index:610;top:58px;right:14px;width:min(280px,calc(100% - 28px))}
.map-location-action{width:100%;display:flex;align-items:center;gap:10px;padding:11px 12px;border:1px solid #42cfff;border-radius:12px;background:linear-gradient(115deg,#0877bdF2,#07517df2 72%,#063956f2);color:#fff;text-align:left;cursor:pointer;box-shadow:0 8px 22px #00101f99,0 0 0 1px #3acaff22;backdrop-filter:blur(9px);transition:filter .18s,transform .18s}
.map-location-action:hover{filter:brightness(1.18);transform:translateY(-1px)}
.map-location-action-icon{width:35px;height:35px;display:grid;place-items:center;flex:0 0 35px;border-radius:10px;background:#b6f1ff20;border:1px solid #9beaff66;color:#c9f5ff;font-size:22px}
.map-location-action-copy{display:flex;flex-direction:column;gap:3px;min-width:0}
.map-location-action-copy strong{font-size:11px;line-height:1.25;font-weight:800}
.map-location-action-copy small{font-size:9px;color:#c6eaff;line-height:1.3}
.map-location-action-arrow{margin-left:auto;color:#b8eeff;font-size:17px}
.map-pick-banner{display:flex;align-items:center;gap:9px;padding:10px 11px;border:1px solid #42d4a0;border-radius:11px;background:linear-gradient(110deg,#064c45f5,#073b4ef5);color:#effff9;box-shadow:0 8px 24px #00101fbb;backdrop-filter:blur(9px);font-size:10px;font-weight:700;line-height:1.35}
.map-pick-banner[hidden],.map-location-action[hidden]{display:none!important}
.map-pick-banner-icon{width:25px;height:25px;display:grid;place-items:center;flex:0 0 25px;border-radius:8px;background:#b6ffe51c;color:#a9ffe0;font-size:17px}
.map-pick-banner span:nth-child(2){flex:1}
.map-pick-banner button{border:1px solid #81e9c0;border-radius:7px;background:#0b6557;color:#fff;padding:7px 9px;font:700 9px Inter,system-ui,sans-serif;cursor:pointer}
.map-stage.map-picking #satelliteMap{cursor:crosshair}
.map-stage.map-picking .map-location-control{top:58px}
.map-stage.map-picking .map-vignette{background:radial-gradient(ellipse at center,transparent 44%,#020a1766 100%)}
@media(max-width:560px){.map-location-control{top:58px;right:10px;width:min(260px,calc(100% - 20px))}.map-location-action{padding:9px 10px}.map-location-action-icon{width:31px;height:31px;flex-basis:31px}.location-panel-button{min-height:44px}}


/* v0.2.4 — clear automatic confirmation and manual location modes */
.location-mode-tabs{display:grid;grid-template-columns:1fr 1fr;gap:9px;margin:13px 0 12px}
.location-mode-tab{min-height:62px;display:grid;grid-template-columns:29px 1fr;grid-template-rows:auto auto;align-content:center;align-items:center;column-gap:9px;padding:10px 12px;border:1px solid #1a425e;border-radius:11px;background:#071a2a;color:#b7c9d8;text-align:left;cursor:pointer;font:600 11px Inter,system-ui,sans-serif;transition:border-color .18s,background .18s,color .18s}
.location-mode-tab>span:first-child{grid-row:1/3;width:27px;height:27px;display:grid;place-items:center;border-radius:8px;background:#102b41;color:#83badb;font-size:18px}
.location-mode-tab>span:nth-child(2){font-size:12px;font-weight:800;color:#eaf6ff}
.location-mode-tab small{font-size:9px;color:#8daac0;margin-top:3px}
.location-mode-tab.active{border-color:#2daeea;background:linear-gradient(115deg,#0b3654,#0b2941);box-shadow:inset 0 0 0 1px #2ba8e933,0 5px 16px #008bd31c}
.location-mode-tab.active>span:first-child{background:#0d5b85;color:#d8f6ff}
.location-mode-tab.active small{color:#75d6ff}
.location-mode-tab:focus-visible{outline:2px solid #8ceaff;outline-offset:2px}
.location-mode-panel[hidden],.auto-detected-card[hidden],.auto-location-empty[hidden]{display:none!important}
.auto-location-block{padding:14px;border-color:#246d92;background:linear-gradient(135deg,#0b304b,#081f33 78%)}
.auto-location-heading{display:flex;align-items:flex-start;gap:10px;margin-bottom:13px}
.auto-location-symbol{width:34px;height:34px;flex:0 0 34px;display:grid;place-items:center;border-radius:10px;background:#0c5a83;color:#bdeeff;font-size:20px}
.auto-location-heading strong{display:block;font-size:12px;color:#f2f9ff;line-height:1.35}
.auto-location-heading p{font-size:10px;line-height:1.5;color:#a9c1d3;margin:5px 0 0}
.auto-detected-card{display:grid;grid-template-columns:27px minmax(0,1fr);gap:9px;align-items:start;padding:12px;margin:0 0 11px;border:1px solid #2d9a74;border-radius:10px;background:linear-gradient(120deg,#0b382f,#092a30)}
.auto-detected-check{width:25px;height:25px;display:grid;place-items:center;border-radius:50%;background:#176b4c;color:#baffdf;font-size:14px;font-weight:900}
.auto-detected-copy{min-width:0;display:flex;flex-direction:column;gap:4px}
.auto-detected-copy small{font-size:9px;color:#8fd6b8;text-transform:uppercase;letter-spacing:.7px;font-weight:800}
.auto-detected-copy strong{font-size:12px;line-height:1.45;color:#f0fff8;overflow-wrap:anywhere}
.auto-detected-copy>span{font-size:9px;line-height:1.4;color:#9ec8ba;overflow-wrap:anywhere}
.auto-confirm-button{grid-column:1/-1;width:100%;min-height:40px;margin-top:3px}
.auto-location-empty{padding:10px 11px;margin:0 0 11px;border:1px dashed #315a73;border-radius:9px;color:#9cb7c9;font-size:10px;line-height:1.5;background:#061827}
.auto-location-button{width:100%;min-height:42px}
.auto-location-button:disabled,.auto-confirm-button:disabled{opacity:.55;cursor:wait}
.auto-location-note{font-size:9px;line-height:1.5;color:#9db7ca;margin:8px 2px 0}
.manual-mode-intro{margin:0 0 12px;font-size:10px;line-height:1.5;color:#a7bdce}
.manual-save-row{justify-content:flex-end;margin-top:14px}
.manual-save-row .primary-button{width:100%;min-height:42px}
.shared-location-actions{justify-content:flex-start;margin-top:0}
@media(max-width:560px){.location-mode-tabs{gap:7px}.location-mode-tab{padding:9px;min-height:58px}.auto-location-block{padding:11px}}


/* v0.2.5 — clear independent-project notice and disclosed referral card */
.site-disclaimer{flex:0 0 auto;display:flex;justify-content:center;align-items:center;min-height:25px;padding:5px 12px;border-top:1px solid #12334b;background:#030b14;color:#8ea8bb;text-align:center;font-size:9px;letter-spacing:.25px}.independent-card{border-color:#32627d;background:linear-gradient(145deg,#0b2639,#081725)}.independent-card .about-icon{border-color:#39799b;color:#8edcff;background:#0b3450}.trademark-note{margin-top:9px!important;color:#7894aa!important;font-size:9px!important}.referral-card{grid-column:1/-1;display:grid;grid-template-columns:minmax(0,1fr) 180px;gap:22px;align-items:center;border-color:#236a8b;background:linear-gradient(120deg,#0b2b43,#071a2a 70%)}.referral-card .about-icon{margin-bottom:9px}.referral-card h2{font-size:15px}.referral-card p{font-size:10px;line-height:1.6;color:#a9bfd0}.referral-button{display:inline-flex;align-items:center;justify-content:center;min-height:39px;margin-top:8px;padding:0 15px;border:1px solid #36b9f2;border-radius:8px;background:linear-gradient(110deg,#0878bd,#07517f);color:#fff;text-decoration:none;font-size:11px;font-weight:800;box-shadow:0 5px 18px #008bd333}.referral-button:hover{filter:brightness(1.15)}.referral-card .referral-disclosure{margin-top:13px;padding:10px 11px;border:1px solid #4d6476;border-radius:8px;background:#071522;color:#91a9bb;font-size:9px}.referral-card .source-links{margin-top:8px}.referral-qr-wrap{display:flex;flex-direction:column;align-items:center;gap:8px;padding:12px;border:1px solid #254b64;border-radius:10px;background:#f7fbff}.referral-qr-wrap img{display:block;width:145px;height:145px;image-rendering:pixelated}.referral-qr-wrap small{max-width:150px;color:#23445a;text-align:center;font-size:8px;line-height:1.4}@media(max-width:650px){.referral-card{grid-template-columns:1fr}.referral-qr-wrap{width:100%;}.site-disclaimer{font-size:8px;min-height:30px}}

.brand-mark{display:flex;align-items:center;justify-content:center;flex:0 0 58px}.brand-mark svg{display:block;width:58px;height:48px;overflow:visible}

.nav-item .nav-satellite-symbol{display:grid;place-items:center;width:22px;height:22px}.nav-item .nav-satellite-symbol svg{width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:1.55;stroke-linecap:round;stroke-linejoin:round}


/* v0.2.7 — plain-text Starlink reference with original satellite illustration; live ISS map marker */
.brand{gap:10px}.brand-copy strong{font-size:27px;letter-spacing:1.7px;font-weight:800;line-height:1.05}.brand-copy small{font-size:9px;letter-spacing:.75px;color:#9bb8cd}.brand-mark{flex-basis:58px}.brand-mark svg{width:60px;height:48px}
.iss-panel{border-color:#67542a;background:linear-gradient(145deg,#1e1b14,#071624 75%)}.iss-heading-icon{width:30px;height:24px;flex:0 0 30px;display:grid;place-items:center;border:1px solid #8e7130;border-radius:7px;background:#3a2c12;color:#ffe09a;font-size:9px;font-weight:900;letter-spacing:.3px}.iss-live-row{display:flex;align-items:center;gap:7px;padding:9px 14px 2px;color:#ffe8ad}.iss-live-row strong{font-size:10px;font-weight:800}.iss-live-row #issUpdated{margin-left:auto;color:#9cb2c4;font-size:9px;font-variant-numeric:tabular-nums}.iss-live-dot{width:7px;height:7px;flex:0 0 7px;border-radius:50%;background:#41e99a;box-shadow:0 0 8px #41e99a;animation:pulse 1.8s infinite}.iss-grid{padding-bottom:4px}.iss-panel .micro-note{padding:0 14px 10px;color:#9aabb8}.iss-panel .micro-note.iss-stale{color:#ffc777}.legend-iss{width:11px;height:11px;display:inline-block;border:2px solid #ffe2a0;border-radius:50%;background:#b97922;box-shadow:0 0 8px #ffc85a}.iss-div-icon{background:transparent;border:0}.iss-marker{display:flex;align-items:center;justify-content:center;width:54px;height:42px;border-radius:50%;background:#4b3514a8;border:1px solid #ffd87a;box-shadow:0 0 0 6px #ffc65a24,0 0 22px #ffc65a99;animation:issPulse 2.5s ease-in-out infinite}.iss-marker svg{width:44px;height:34px;filter:drop-shadow(0 1px 3px #000)}@keyframes issPulse{50%{box-shadow:0 0 0 10px #ffc65a10,0 0 28px #ffc65acc}}
@media(max-width:1180px){.brand-copy strong{font-size:23px}}
@media(max-width:900px){.iss-panel{min-width:0}}
@media(max-width:560px){.brand-copy strong{font-size:20px}.brand-copy small{font-size:8px;letter-spacing:.35px}.brand-mark{flex-basis:46px}.brand-mark svg{width:48px}.map-legend{gap:7px}.map-legend label{font-size:8px}}

/* v0.3.0: selected satellite and detail popup */
.sat-marker.selected{width:16px;height:16px;border:2px solid #fff;background:#45d5ff;box-shadow:0 0 0 6px #45d5ff30,0 0 22px #45d5ff,0 0 34px #45d5ff88}
.satellite-popup{min-width:190px;color:#eaf6ff}.satellite-popup>strong{display:block;font-size:14px;color:#71d8ff;margin-bottom:2px}.satellite-popup>small{display:block;color:#91aabd;font-size:10px}.satellite-popup-grid{display:grid;grid-template-columns:1fr auto;gap:5px 12px;margin:10px 0;padding:8px 0;border-top:1px solid #1c4964;border-bottom:1px solid #1c4964;font-size:10px}.satellite-popup-grid span{color:#9eb4c8}.satellite-popup-grid b{color:#f1f8ff;text-align:right;font-weight:700}.satellite-popup-hint{line-height:1.4}

/* v0.3.0: satellite ground-track selection */
.selected-track-status{position:absolute;top:14px;right:15px;z-index:500;max-width:min(360px,calc(100% - 30px));padding:9px 13px;border:1px solid #2476a2;border-radius:9px;background:#041a2beF;color:#bfeaff;font-size:10px;font-weight:700;box-shadow:0 5px 18px #0007;backdrop-filter:blur(8px);pointer-events:none}.selected-track-status[hidden]{display:none}


/* v0.4.0 — public gateway reference points and simulated route layers */
.map-legend{max-width:calc(100% - 26px);flex-wrap:wrap;justify-content:center;white-space:normal;row-gap:8px}
.legend-gateway{width:10px;height:10px;display:inline-block;border:2px solid #ffe2a0;border-radius:3px;background:#bd7625;box-shadow:0 0 8px #ffc56b}
.legend-laser{width:20px;height:0;display:inline-block;border-top:2px dashed #39d9ff;filter:drop-shadow(0 0 3px #39d9ff)}
.legend-downlink{width:20px;height:0;display:inline-block;border-top:3px dashed #ffb34f;filter:drop-shadow(0 0 3px #ffb34f)}
.gateway-div-icon,.relay-div-icon{background:transparent;border:0}
.gateway-marker{display:grid;place-items:center;width:32px;height:32px;border:1px solid #e8b865;border-radius:10px;background:#382710eF;box-shadow:0 0 0 4px #f5b94a20,0 0 18px #e89b3c77}
.gateway-marker svg{width:25px;height:25px;filter:drop-shadow(0 1px 3px #000)}
.relay-marker{display:block;width:16px;height:16px;border:2px solid #e8fbff;border-radius:50%;background:#168ba8;box-shadow:0 0 0 5px #39d9ff27,0 0 17px #39d9ff}
.gateway-popup{min-width:190px;color:#edf7ff}.gateway-popup>strong{display:block;color:#ffd18b;font-size:13px;margin-bottom:2px}.gateway-popup>small{color:#9eb4c8;font-size:9px}.gateway-popup-meta{margin:8px 0;padding:7px 0;border-top:1px solid #684b25;border-bottom:1px solid #684b25;color:#c4d2dd;font-size:10px;line-height:1.6}.gateway-popup p{margin:7px 0;color:#ffc77b;font-size:9px;line-height:1.45}.gateway-popup a{color:#a8dcff}
.gateway-panel{border-color:#6a522e;background:linear-gradient(145deg,#211d15,#071624 78%)}
.gateway-heading-icon{width:24px;height:24px;display:grid;place-items:center;flex:0 0 24px;border:1px solid #906c36;border-radius:7px;background:#4b3518;color:#ffd18a;font-size:15px}
.gateway-route-mode{margin:10px 14px 2px;padding:8px 9px;border:1px solid #6a512d;border-radius:7px;background:#241d12;color:#ffd18a;font-size:10px;font-weight:800;line-height:1.35}
.gateway-grid{padding-bottom:3px}.gateway-grid strong{max-width:150px;overflow-wrap:anywhere;text-align:right;font-size:10px}.gateway-note{padding:0 14px 10px;color:#bdac8d!important;font-size:9px!important;line-height:1.45}
.gateway-about-note{margin-top:10px!important;padding:10px 11px;border:1px solid #4c442f;border-radius:8px;background:#151b20;color:#b6c2cb!important;font-size:10px!important;line-height:1.55}
@media(max-width:900px){.map-legend{bottom:12px;left:12px;right:12px;max-width:none;transform:none;justify-content:flex-start}.gateway-grid strong{max-width:none}}
