:root {
  --bg0:#050910;--bg1:#0b1118;--bg2:#101820;--bg3:#16202c;
  --bd:#1a2536;--bd2:#243348;
  --t1:#d8e2ee;--t2:#7e92aa;--t3:#3e5270;
  --cy:#00cfff;--cy2:rgba(0,207,255,.10);
  --bl:#2e7cf6;--gn:#00e898;--gn2:rgba(0,232,152,.08);
  --am:#ffb020;--rd:#ff4060;--rd2:rgba(255,64,96,.08);--pu:#9568ff;
  --fm:'Azeret Mono','Fira Code',monospace;
  --fd:'Outfit','Helvetica Neue',sans-serif;
  --fb:'DM Sans','Helvetica',sans-serif;
  --hdr:48px;--lpw:360px;--rpw:330px;
}
*,*::before,*::after{margin:0;padding:0;box-sizing:border-box;}
body{font-family:var(--fb);background:var(--bg0);color:var(--t1);overflow:hidden;height:100vh;-webkit-font-smoothing:antialiased;}

.hdr{height:var(--hdr);display:flex;align-items:center;justify-content:space-between;padding:0 20px;border-bottom:1px solid var(--bd);background:linear-gradient(180deg,rgba(11,17,24,.98),rgba(5,9,16,.99));backdrop-filter:blur(16px);position:relative;z-index:100;}
.hdr-left{display:flex;align-items:center;gap:14px;}
.brand{display:flex;align-items:center;gap:8px;}
.brand-icon{width:26px;height:26px;border-radius:5px;background:linear-gradient(135deg,var(--cy),var(--bl));display:grid;place-items:center;font-size:13px;}
.brand-name{font-family:var(--fd);font-weight:700;font-size:15px;color:var(--cy);letter-spacing:-.3px;}
.brand-sub{font-family:var(--fm);font-size:9px;color:var(--t3);font-weight:400;letter-spacing:1px;}
.hdr-right{display:flex;align-items:center;gap:16px;}
.status-indicator{display:flex;align-items:center;gap:5px;}
.status-dot{width:5px;height:5px;border-radius:50%;background:var(--t3);}
.status-dot.live{background:var(--gn);box-shadow:0 0 6px var(--gn);animation:pd 2s infinite;}
.status-dot.error{background:var(--rd);}
.status-label{font-family:var(--fm);font-size:9px;color:var(--t3);text-transform:uppercase;letter-spacing:.5px;}
@keyframes pd{0%,100%{opacity:1}50%{opacity:.3}}
.hdr-clock{font-family:var(--fm);font-size:11px;color:var(--cy);font-weight:500;}

.app-layout{display:flex;height:calc(100vh - var(--hdr));}

.panel{background:var(--bg1);overflow-y:auto;overflow-x:hidden;}
.panel-left{width:var(--lpw);min-width:var(--lpw);border-right:1px solid var(--bd);}
.panel-right{width:var(--rpw);min-width:var(--rpw);border-left:1px solid var(--bd);display:flex;flex-direction:column;}
.panel-section{padding:14px 16px;border-bottom:1px solid var(--bd);}
.section-title{font-family:var(--fd);font-size:9px;font-weight:700;text-transform:uppercase;letter-spacing:1.6px;color:var(--t3);margin-bottom:10px;display:flex;align-items:center;gap:6px;}
.section-title::before{content:'';width:3px;height:10px;background:var(--cy);border-radius:1px;}

.input-label{display:block;font-family:var(--fm);font-size:8px;color:var(--t3);text-transform:uppercase;letter-spacing:1.2px;margin-bottom:3px;}
.input-field{width:100%;padding:9px 10px;background:var(--bg0);border:1px solid var(--bd);border-radius:5px;color:var(--t1);font-family:var(--fm);font-size:12px;outline:none;margin-bottom:8px;transition:border-color .2s,box-shadow .2s;}
.input-field:focus{border-color:var(--cy);box-shadow:0 0 0 2px var(--cy2);}
.input-field::placeholder{color:var(--t3);}
.btn-primary{width:100%;padding:9px;background:linear-gradient(135deg,var(--bl),var(--cy));border:none;border-radius:5px;color:#fff;font-family:var(--fd);font-weight:600;font-size:12px;cursor:pointer;transition:all .2s;margin-top:2px;}
.btn-primary:hover{transform:translateY(-1px);box-shadow:0 4px 20px rgba(0,207,255,.25);}

.link-result{background:var(--bg0);border:1px solid var(--bd);border-radius:6px;padding:10px;margin-top:10px;display:none;}
.link-result.visible{display:block;animation:fu .25s ease;}
@keyframes fu{from{opacity:0;transform:translateY(5px)}to{opacity:1;transform:none}}
.link-result-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px;}
.result-tag{font-family:var(--fm);font-size:8px;color:var(--gn);text-transform:uppercase;letter-spacing:.8px;}
.result-latency{font-family:var(--fm);font-size:20px;font-weight:700;color:var(--cy);}
.result-latency small{font-size:9px;color:var(--t3);font-weight:400;}
.sat-pair-grid{display:grid;grid-template-columns:1fr 28px 1fr;gap:4px;align-items:center;margin:8px 0;}
.sat-node{background:var(--bg2);border-radius:5px;padding:7px;text-align:center;}
.sat-name{font-family:var(--fm);font-size:9px;font-weight:600;color:var(--cy);}
.sat-detail{font-size:8px;color:var(--t3);margin-top:2px;}
.sat-link-arrow{text-align:center;color:var(--am);font-size:14px;}
.link-comparison{margin-top:8px;padding-top:8px;border-top:1px solid var(--bd);font-family:var(--fm);font-size:9px;}
.comp-row{display:flex;justify-content:space-between;margin-bottom:3px;}
.comp-label{color:var(--t3);}
.comp-value.cable{color:var(--am);}
.comp-value.advantage{color:var(--gn);font-weight:600;}

.constellation-item{display:flex;align-items:center;justify-content:space-between;padding:7px 8px;background:var(--bg0);border:1px solid var(--bd);border-radius:5px;margin-bottom:4px;cursor:pointer;transition:all .12s;user-select:none;}
.constellation-item:hover{border-color:var(--bd2);}
.constellation-item.active{border-color:var(--cy);background:var(--cy2);}
.constellation-left{display:flex;align-items:center;gap:7px;}
.constellation-dot{width:7px;height:7px;border-radius:50%;}
.constellation-name{font-size:11px;font-weight:500;}
.constellation-count{font-family:var(--fm);font-size:10px;color:var(--t3);}

.stats-grid{font-family:var(--fm);font-size:10px;}
.stat-row{display:flex;justify-content:space-between;margin-bottom:3px;}
.stat-label{color:var(--t3);}
.stat-value{color:var(--t1);}

.exchange-item{display:flex;align-items:center;justify-content:space-between;padding:5px 6px;border-radius:3px;font-size:11px;cursor:pointer;transition:background .12s;}
.exchange-item:hover{background:var(--bg3);}
.exchange-left{display:flex;align-items:center;gap:5px;}
.exchange-flag{font-size:13px;}
.exchange-ms{font-family:var(--fm);font-size:10px;color:var(--gn);}

.globe-container{flex:1;position:relative;overflow:hidden;}
#cesiumContainer{width:100%;height:100%;}
.cesium-viewer-bottom,.cesium-viewer-animationContainer,.cesium-viewer-timelineContainer,.cesium-viewer-fullscreenContainer,.cesium-viewer-toolbar,.cesium-widget-credits{display:none!important;}

.loading-overlay{position:absolute;inset:0;background:var(--bg0);display:flex;flex-direction:column;align-items:center;justify-content:center;z-index:50;transition:opacity .6s;}
.loading-overlay.hidden{opacity:0;pointer-events:none;}
.loading-spinner{width:40px;height:40px;border:3px solid var(--bd);border-top-color:var(--cy);border-radius:50%;animation:sp 1s linear infinite;margin-bottom:16px;}
@keyframes sp{to{transform:rotate(360deg)}}
.loading-text{font-family:var(--fm);font-size:12px;color:var(--t2);}
.loading-sub{font-family:var(--fm);font-size:10px;color:var(--t3);margin-top:6px;}
.loading-progress{width:200px;height:3px;background:var(--bd);border-radius:2px;margin-top:16px;overflow:hidden;}
.loading-bar{height:100%;background:linear-gradient(90deg,var(--cy),var(--bl));border-radius:2px;width:0%;transition:width .3s;}

.globe-controls{position:absolute;top:12px;left:12px;z-index:10;display:flex;gap:5px;flex-wrap:wrap;}
.map-toggle{padding:5px 12px;background:rgba(11,17,24,.88);border:1px solid var(--bd);border-radius:16px;color:var(--t2);font-family:var(--fm);font-size:10px;cursor:pointer;backdrop-filter:blur(8px);transition:all .12s;user-select:none;}
.map-toggle:hover{border-color:var(--cy);color:var(--t1);}
.map-toggle.active{background:var(--cy2);border-color:var(--cy);color:var(--cy);}

.globe-stats{position:absolute;bottom:12px;left:12px;z-index:10;display:flex;gap:10px;}
.globe-stat{padding:6px 12px;background:rgba(11,17,24,.9);border:1px solid var(--bd);border-radius:6px;backdrop-filter:blur(8px);}
.stat-number{font-family:var(--fm);font-size:15px;font-weight:700;color:var(--cy);}
.stat-caption{font-size:8px;color:var(--t3);text-transform:uppercase;letter-spacing:.7px;}

.sat-info-panel{position:absolute;bottom:12px;right:12px;z-index:10;width:260px;background:rgba(11,17,24,.92);border:1px solid var(--bd);border-radius:8px;padding:12px;backdrop-filter:blur(12px);display:none;font-family:var(--fm);font-size:10px;}
.sat-info-panel.visible{display:block;animation:fu .2s ease;}
.sip-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px;}
.sip-name{font-weight:600;color:var(--cy);font-size:12px;}
.sip-close{background:none;border:none;color:var(--t3);cursor:pointer;font-size:12px;padding:2px;}
.sip-close:hover{color:var(--t1);}
.sip-row{display:flex;justify-content:space-between;margin-bottom:2px;}
.sip-label{color:var(--t3);}
.sip-value{color:var(--t1);}

.tab-bar{display:flex;border-bottom:1px solid var(--bd);flex-shrink:0;}
.tab-btn{flex:1;padding:9px;text-align:center;font-family:var(--fm);font-size:9px;text-transform:uppercase;letter-spacing:.8px;color:var(--t3);cursor:pointer;border:none;background:none;border-bottom:2px solid transparent;transition:all .12s;}
.tab-btn:hover{color:var(--t2);}
.tab-btn.active{color:var(--cy);border-bottom-color:var(--cy);}
.tab-panel{display:none;flex:1;overflow-y:auto;}
.tab-panel.active{display:block;}

.news-card{padding:10px 14px;border-left:2px solid var(--bd);margin:0 0 0 14px;cursor:pointer;transition:border-color .12s;}
.news-card:hover{border-left-color:var(--cy);}
.news-card.alert{border-left-color:var(--rd);}
.news-time{font-family:var(--fm);font-size:8px;color:var(--t3);margin-bottom:3px;}
.news-headline{font-size:11px;font-weight:500;line-height:1.45;margin-bottom:4px;}
.news-meta{font-size:9px;color:var(--t3);}
.news-tag{display:inline-block;padding:1px 5px;border-radius:3px;font-family:var(--fm);font-size:7px;font-weight:600;text-transform:uppercase;letter-spacing:.4px;margin-right:3px;}
.news-tag.satellite{background:rgba(46,124,246,.12);color:var(--bl);}
.news-tag.cable{background:var(--gn2);color:var(--gn);}
.news-tag.outage{background:var(--rd2);color:var(--rd);}
.news-tag.launch{background:rgba(149,104,255,.12);color:var(--pu);}

.latency-row{display:flex;align-items:center;justify-content:space-between;padding:9px 10px;background:var(--bg0);border:1px solid var(--bd);border-radius:5px;margin:0 14px 5px 14px;}
.latency-route{font-size:11px;font-weight:500;}
.latency-via{font-size:9px;color:var(--t3);display:block;margin-top:1px;}
.latency-ms{font-family:var(--fm);font-size:12px;font-weight:600;color:var(--gn);text-align:right;}
.latency-sub{font-size:9px;color:var(--t3);font-weight:400;display:block;}

.cable-row{display:flex;align-items:center;justify-content:space-between;padding:7px 10px;background:var(--bg0);border:1px solid var(--bd);border-radius:5px;margin:0 14px 4px 14px;font-size:11px;}
.cable-name{font-weight:500;max-width:155px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.cable-status-badge{display:flex;align-items:center;gap:4px;font-family:var(--fm);font-size:9px;text-transform:uppercase;}
.cable-dot{width:5px;height:5px;border-radius:50%;}
.cable-dot.ok{background:var(--gn);}
.cable-dot.degraded{background:var(--am);}
.cable-dot.down{background:var(--rd);}

::-webkit-scrollbar{width:5px;}
::-webkit-scrollbar-track{background:transparent;}
::-webkit-scrollbar-thumb{background:var(--bd);border-radius:3px;}

@media(max-width:1400px){:root{--lpw:320px;--rpw:290px;}}
@media(max-width:1100px){.panel-right{display:none;}}
