:root{--line: rgba(134, 190, 255, .26);--panel: rgba(9, 18, 34, .88);--text: #e8f1ff;--muted: #9eb5da;--accent: #4ec8ff;--warm: #fcbf49}*{box-sizing:border-box}html,body,#app{margin:0;width:100%;height:100%;overscroll-behavior:none}body{color:var(--text);font-family:Inter,Avenir Next,Segoe UI,sans-serif;background:#02060f;overflow:hidden}.experience{position:relative;width:100%;height:100%}#scene{position:absolute;inset:0}#scene.drop-target{outline:2px dashed rgba(252,191,73,.7);outline-offset:-14px}.overlay{position:absolute;z-index:4}.header{top:.65rem;left:50%;transform:translate(-50%);width:min(96vw,1200px);position:relative;display:grid;grid-template-columns:auto minmax(240px,1fr) auto;align-items:center;gap:.7rem;border:1px solid var(--line);border-radius:14px;background:linear-gradient(165deg,#0a1427f2,#080f1eeb);padding:.58rem .75rem}.brand-logo-wrap{display:flex;align-items:center;min-width:166px;z-index:2}.brand-logo{height:32px;width:auto;display:block}.brand-copy{justify-self:center;text-align:center;pointer-events:none;width:min(52vw,420px)}.brand-copy h1{margin:0;font-size:1.05rem;letter-spacing:.03em}.beta-tag{font-size:.62em;letter-spacing:.08em;color:#9cb8e4;vertical-align:middle}.brand-copy p{margin:.1rem 0 0;font-size:.76rem;color:var(--muted)}.header-actions{display:flex;align-items:center;gap:.42rem;z-index:3}.mobile-nav-toggle{display:none;align-items:center;justify-content:center;border:1px solid rgba(121,180,255,.55);background:linear-gradient(140deg,#132d57bd,#0a1d3abd);color:var(--text);border-radius:10px;width:40px;min-width:40px;min-height:34px;padding:0;cursor:pointer}.burger-lines,.burger-lines:before,.burger-lines:after{display:block;width:16px;height:2px;border-radius:999px;background:#e8f1ff;content:"";transition:transform .2s ease,opacity .2s ease,background .2s ease}.burger-lines{position:relative}.burger-lines:before,.burger-lines:after{position:absolute;left:0}.burger-lines:before{top:-5px}.burger-lines:after{top:5px}.mobile-nav-toggle.is-open .burger-lines{background:transparent}.mobile-nav-toggle.is-open .burger-lines:before{top:0;transform:rotate(45deg)}.mobile-nav-toggle.is-open .burger-lines:after{top:0;transform:rotate(-45deg)}.header-speed{display:grid;gap:.08rem;min-width:134px;color:var(--muted);font-size:.68rem;margin:0}.header-speed input[type=range]{width:100%}.header-time{display:inline-flex;align-items:center;gap:.3rem;font-size:.74rem;color:#c9dbfb;border:1px solid rgba(129,189,255,.28);border-radius:999px;padding:.3rem .56rem;background:#08122499}.header-time strong{color:#edf5ff;font-weight:700}.mode-switch{display:grid;grid-template-columns:1fr 1fr;gap:.3rem}.btn{border:1px solid rgba(121,180,255,.55);background:linear-gradient(140deg,#132d57bd,#0a1d3abd);color:var(--text);border-radius:10px;min-height:34px;padding:.38rem .58rem;font-size:.78rem;cursor:pointer}.btn.active{border-color:#ffcc6cc7;box-shadow:inset 0 0 0 1px #fcbf4952}.btn.danger{border-color:#ff7575bd}.panel-toggle{position:absolute;top:5.85rem;z-index:5;border:1px solid var(--line);background:#071020d9;color:var(--text);border-radius:10px;padding:.35rem .55rem;font-size:.74rem;cursor:pointer}.panel-toggle.left{left:max(.65rem,calc((100vw - min(96vw,1200px))/2 - .22rem))}.panel-toggle.right{right:max(.65rem,calc((100vw - min(96vw,1200px))/2 - .22rem))}.panel{top:6.8rem;bottom:auto;max-height:calc(100vh - 7.6rem);width:min(320px,42vw);border:1px solid var(--line);border-radius:14px;background:linear-gradient(165deg,var(--panel),rgba(8,15,30,.92));-webkit-backdrop-filter:blur(7px);backdrop-filter:blur(7px);overflow:hidden;padding:.65rem;transition:transform .25s ease}.panel.left{left:.65rem;overflow-y:auto}.panel.right{right:.65rem;overflow-y:auto}.panel.left.collapsed{transform:translate(calc(-100% - 3rem));pointer-events:none}.panel.right.collapsed{transform:translate(calc(100% + 3rem));pointer-events:none}h3{margin:0 0 .42rem;color:var(--muted);font-size:.78rem;text-transform:uppercase;letter-spacing:.03em}h4{margin:.1rem 0 .4rem;color:#c5d8fb;font-size:.72rem;letter-spacing:.03em;text-transform:uppercase}.hint,.status{margin:0 0 .45rem;color:var(--muted);font-size:.73rem}.asset-grid{display:grid;grid-template-columns:1fr 1fr;gap:.36rem}.asset-card{border:1px solid rgba(122,181,255,.55);border-radius:11px;background:linear-gradient(145deg,#15315ead,#0a1c38c2);color:var(--text);display:grid;justify-items:center;gap:.16rem;padding:.38rem .3rem;cursor:grab}.asset-card.active{border-color:#ffce6fcc;box-shadow:inset 0 0 0 1px #fcbf4957}.asset-card.disabled{opacity:.46;filter:grayscale(.55);cursor:not-allowed;border-color:#8da0be73}.asset-card svg{width:42px;height:42px;fill:#d7e9ff}.asset-card[data-type=power-node] svg{fill:#f1cd7a}.asset-card[data-type=power-node]{background:linear-gradient(145deg,#503c1899,#261c0cb8);border-color:#f1cd7a9e}.asset-card[data-type=earth-observer] svg{fill:#9adb74}.asset-card[data-type=earth-observer]{background:linear-gradient(145deg,#24482a99,#102816b8);border-color:#9adb7499}.asset-card[data-type=starlynx] svg{fill:#7cf}.asset-card[data-type=starlynx]{background:linear-gradient(145deg,#193f5f9e,#0c1f30bd);border-color:#77ccff9e}.asset-card[data-type=awspace] svg{fill:#a5c8ff}.asset-card[data-type=awspace]{background:linear-gradient(145deg,#2a365e9e,#131931bd);border-color:#a5c8ff9e}.asset-card[data-type=orbitbnb] svg{fill:#ffb27d}.asset-card[data-type=orbitbnb]{background:linear-gradient(145deg,#56351e9e,#28180ebd);border-color:#ffb27d9e}.asset-card[data-type=lunar-nav] svg{fill:#6be4ff}.asset-card[data-type=lunar-nav]{background:linear-gradient(145deg,#164e5c9e,#0a262ebd);border-color:#6be4ff9e}.asset-card[data-type=moon-base] svg{fill:#ff9872}.asset-card[data-type=moon-base]{background:linear-gradient(145deg,#582d249e,#281310bd);border-color:#ff98729e}.asset-card span{font-size:.7rem}.asset-touch-ghost{position:fixed;left:0;top:0;width:48px;height:48px;display:grid;place-items:center;border-radius:10px;border:1px solid rgba(132,191,255,.56);background:#071021e0;-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);box-shadow:0 8px 18px #00000057;pointer-events:none;z-index:30}.asset-stats{width:100%;display:grid;gap:.08rem;padding-top:.08rem}.stat-row{display:grid;grid-template-columns:3.1rem 1fr;align-items:center;gap:.16rem}.stat-row small{color:#94add5;font-size:.52rem;text-transform:uppercase;letter-spacing:.02em;white-space:nowrap}.stat-track{height:4px;border-radius:999px;background:#ffffff21;overflow:hidden}.stat-track i{display:block;width:6%;height:100%;border-radius:999px;background:linear-gradient(90deg,#63ceff,#95f2c1)}.advanced-options{margin-top:.35rem;border:1px solid rgba(136,194,255,.24);border-radius:10px;padding:.3rem .4rem;background:#08101f94}.advanced-options summary{cursor:pointer;color:#c5d8fb;font-size:.72rem;letter-spacing:.02em;text-transform:uppercase}.class-defaults{margin-top:.36rem;display:grid;gap:.42rem}.class-default-card{border:1px solid rgba(130,188,255,.22);border-radius:10px;padding:.22rem .36rem;background:#0a1426bd}.class-default-card details{display:grid;gap:.28rem}.class-default-card summary{cursor:pointer;color:#d9e7ff;font-size:.72rem;letter-spacing:.02em;text-transform:uppercase}.inline-control{margin-bottom:.18rem;display:grid;grid-template-columns:5.2rem minmax(0,1fr) auto;align-items:center;gap:.36rem}.advanced-global-control{margin:.26rem 0 .38rem}.control-name{color:#b8ccec;font-size:.67rem;line-height:1.2}.inline-control .value{min-width:4rem;width:auto;text-align:right;white-space:nowrap}.inline-control input[type=range]{min-width:0;width:100%}label{display:grid;gap:.18rem;margin-bottom:.38rem;color:var(--muted);font-size:.74rem}#selected-panel label{display:grid;grid-template-columns:6rem minmax(0,1fr) auto;align-items:center;gap:.28rem .34rem}#selected-panel label>.value{min-width:4.4rem;text-align:right;white-space:nowrap}#selected-panel label>input[type=range]{min-width:0;width:100%}.selected-live{margin:.18rem 0 .45rem;border:1px solid rgba(130,188,255,.24);border-radius:10px;background:#091222b8;padding:.34rem .38rem}.selected-live h4{margin:0 0 .28rem;font-size:.67rem}.selected-live-simple{display:grid;gap:.24rem}.live-row{display:grid;grid-template-columns:5.6rem 1fr auto;align-items:center;gap:.36rem}.live-row span{color:#9fb6da;font-size:.67rem}.live-track{height:7px;border-radius:999px;background:#ffffff1f;overflow:hidden}.live-track i{display:block;height:100%;width:0%;border-radius:999px;background:linear-gradient(90deg,#67d2ff,#9af5c9);transition:width .16s linear,filter .2s ease}.live-track i.active{filter:brightness(1.12)}.live-value{min-width:4.2rem;text-align:right;color:#d5e6ff;font-size:.66rem;font-weight:600;letter-spacing:.01em}.selected-block{margin:0 0 .4rem;border:1px solid rgba(136,194,255,.24);border-radius:10px;background:#08101f94;padding:.3rem .38rem}.selected-block summary{cursor:pointer;color:#c5d8fb;font-size:.72rem;letter-spacing:.02em;text-transform:uppercase}.selected-block[open]{padding-bottom:.12rem}.selected-block[open] summary{margin-bottom:.28rem}input[type=range]{width:100%}.value{color:#c2d7fb;font-size:.72rem}.objective-list{display:grid;gap:.32rem}.objective{border:1px solid rgba(126,183,255,.24);border-radius:10px;background:#0a1222bd;padding:.35rem .42rem;display:grid;gap:.1rem;font-size:.72rem}.objective.pass{border-color:#7cd0748f}.objective.warn{border-color:#ffbd608f}.hidden{display:none!important}.drag-readout{position:absolute;left:0;top:0;z-index:7;border:1px solid rgba(152,201,255,.52);background:#060e1ce6;color:#e6f2ff;font-size:.74rem;border-radius:999px;padding:.2rem .5rem;pointer-events:none;white-space:nowrap}.asset-power-indicator{position:absolute;left:0;top:0;z-index:2;width:74px;padding:.22rem .24rem;border:1px solid rgba(130,196,255,.34);background:#070e1dc7;border-radius:7px;cursor:pointer;appearance:none;-webkit-appearance:none;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px)}.asset-power-bar{width:100%;height:6px;border-radius:999px;background:#ffffff24;overflow:hidden}.asset-power-fill{width:50%;height:100%;border-radius:999px;background:linear-gradient(90deg,#6ae2aef2,#9dffd2f2);transition:width .18s linear,background .22s ease}.body-label{position:absolute;left:0;top:0;z-index:3;border:1px solid rgba(152,201,255,.62);background:#060e1ce0;color:#e6f2ff;border-radius:999px;font-size:.72rem;letter-spacing:.02em;padding:.22rem .54rem;cursor:pointer;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.body-label:hover{border-color:#ffce6fe6}.outputs-panel{top:6.8rem;bottom:auto;max-height:calc(100vh - 7.6rem);right:.65rem;width:min(440px,48vw);border:1px solid var(--line);border-radius:14px;background:linear-gradient(160deg,#0a1324eb,#080f1de6);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);overflow:hidden;transition:transform .25s ease}.outputs-panel.collapsed{transform:translate(calc(100% + 3rem));pointer-events:none}.outputs-tooltip{position:fixed;left:0;top:0;z-index:20;width:320px;max-width:min(320px,calc(100vw - 16px));border:1px solid rgba(136,194,255,.5);background:#060e1cf0;color:#e7f2ff;border-radius:10px;padding:.36rem .48rem;font-size:.68rem;line-height:1.3;pointer-events:none;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);white-space:normal;overflow-wrap:anywhere}.outputs-meta{margin-bottom:.38rem;display:grid;grid-template-columns:1fr 1fr;gap:.32rem}.outputs-meta span{border:1px solid rgba(129,189,255,.26);border-radius:999px;background:#0a1425a6;font-size:.68rem;color:#afc7eb;padding:.25rem .42rem;display:flex;justify-content:space-between;align-items:center}.outputs-meta strong{color:#eef6ff}.outputs-scope{display:grid;grid-template-columns:1fr 1fr;gap:.3rem;margin-bottom:.42rem}.outputs-scope-btn{border:1px solid rgba(121,180,255,.45);border-radius:999px;background:#0c1a30bd;color:var(--text);padding:.3rem .45rem;font-size:.72rem;cursor:pointer}.outputs-scope-btn.active{border-color:#ffce6fd9;box-shadow:inset 0 0 0 1px #fcbf495c}.def-target{text-decoration:underline dotted rgba(137,195,255,.6);text-underline-offset:.12rem;cursor:help}.asset-info-target{text-decoration:underline dotted rgba(137,195,255,.56);text-underline-offset:.12rem;cursor:help}.asset-type-tooltip{position:fixed;left:0;top:0;z-index:20;width:300px;max-width:min(300px,calc(100vw - 16px));border:1px solid rgba(136,194,255,.5);background:#060e1cf0;color:#e7f2ff;border-radius:10px;padding:.36rem .48rem;font-size:.68rem;line-height:1.3;pointer-events:none;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);white-space:normal;overflow-wrap:anywhere}.outputs-body{padding:.5rem;animation:outputs-pop .2s ease;max-height:calc(100vh - 8.8rem);overflow:auto}.outputs-panel.collapsed .outputs-body{display:none}.outputs-grid{display:grid;gap:.46rem;grid-template-columns:repeat(2,minmax(0,1fr));align-content:start}.panel.left,.panel.right,.outputs-body{scrollbar-width:thin;scrollbar-color:rgba(119,185,255,.58) rgba(8,17,33,.62)}.panel.left::-webkit-scrollbar,.panel.right::-webkit-scrollbar,.outputs-body::-webkit-scrollbar{width:10px;height:10px}.panel.left::-webkit-scrollbar-track,.panel.right::-webkit-scrollbar-track,.outputs-body::-webkit-scrollbar-track{background:#071020a8;border-radius:999px}.panel.left::-webkit-scrollbar-thumb,.panel.right::-webkit-scrollbar-thumb,.outputs-body::-webkit-scrollbar-thumb{background:linear-gradient(180deg,#5fb1ffdb,#4b8ce8d1);border-radius:999px;border:2px solid rgba(7,16,32,.8)}.asset-card.mode-hidden{display:none}.metric-card{border:1px solid var(--line);border-radius:12px;background:linear-gradient(160deg,#0a1324eb,#080f1de6);padding:.45rem .52rem;overflow:hidden;min-height:126px}.metric-head{display:flex;justify-content:space-between;align-items:baseline;gap:.4rem;font-size:.74rem}.metric-head span{color:var(--muted)}.metric-head strong{font-size:.88rem;transition:opacity .18s ease,transform .18s ease,max-width .18s ease}.bar{margin:.28rem 0 .35rem;background:#ffffff17;border-radius:999px;height:7px;overflow:hidden;transition:opacity .18s ease,transform .18s ease,max-height .18s ease,margin .18s ease}.bar i{display:block;height:100%;width:4%;border-radius:999px}.metric-card.served .bar i{background:linear-gradient(90deg,#4ec8ff,#8af4cb)}.metric-card.eclipse .bar i{background:linear-gradient(90deg,#7db5ff,#83d7ff)}.metric-card.score .bar i{background:linear-gradient(90deg,#ffb55e,#ffe28d)}.metric-card-power .bar i{background:linear-gradient(90deg,#63ceff,#95f2c1)}.metric-card-power #bar-unserved{background:linear-gradient(90deg,#ff915f,#ffc683)}.metric-card-network #bar-transfer{background:linear-gradient(90deg,#82b7ff,#7ee4ff)}.metric-card-network #bar-uptime{background:linear-gradient(90deg,#7be39c,#afffbc)}.metric-grid{margin-top:.42rem;display:grid;grid-template-columns:1fr 1fr;gap:.34rem}.kv{border:1px solid rgba(130,188,255,.24);border-radius:10px;background:#091222bd;padding:.3rem .36rem;display:grid;gap:.12rem}.kv span{color:#9fb6da;font-size:.64rem}.kv strong{color:#ecf4ff;font-size:.85rem}.metric-card svg{width:100%;height:30px;display:block;transition:opacity .18s ease,transform .18s ease}.metric-card polyline{fill:none;stroke-width:2;stroke-linejoin:round;stroke-linecap:round}.metric-card.served polyline{stroke:#7ef3cb}.metric-card.eclipse polyline{stroke:#8ed7ff}.metric-card.score polyline{stroke:#ffd26f}@keyframes outputs-pop{0%{opacity:0;transform:translateY(6px) scale(.99)}to{opacity:1;transform:translateY(0) scale(1)}}@media(max-width:1280px)and (pointer:coarse){.header{left:max(.65rem,env(safe-area-inset-left));right:max(.65rem,env(safe-area-inset-right));width:auto;max-width:none;transform:none;grid-template-columns:auto 1fr auto;transition:border-color .22s ease,background .22s ease,transform .28s ease,padding .22s ease,opacity .22s ease}.brand-logo-wrap{min-width:128px}.brand-logo{height:28px}.brand-copy{width:min(54vw,340px)}.brand-copy h1{font-size:.98rem}.brand-copy p{font-size:.68rem}.brand-logo-wrap,.brand-copy{transition:opacity .24s ease,transform .24s ease}.mobile-nav-toggle{display:inline-flex;position:absolute;top:50%;right:.72rem;left:auto;transform:translateY(-50%);z-index:5;transition:top .26s ease,left .26s ease,right .26s ease,transform .26s ease,opacity .22s ease}.header-actions{position:absolute;top:calc(100% + .42rem);left:50%;right:auto;width:min(calc(100% - .9rem),760px);transform:translate(-50%,-7px);display:flex;flex-direction:column;align-items:stretch;gap:.42rem;border:1px solid var(--line);border-radius:12px;background:linear-gradient(165deg,#0a1427f5,#080f1ef2);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);padding:0;max-height:0;opacity:0;overflow:hidden;pointer-events:none;transition:opacity .22s ease,transform .22s ease,max-height .24s ease,padding .22s ease}.header.mobile-nav-open .header-actions{padding:.52rem;max-height:320px;opacity:1;transform:translate(-50%);pointer-events:auto;z-index:7}.header.mobile-nav-open{z-index:9}.header.mobile-header-collapsed{left:0;right:0;width:100%;transform:none;padding:0;border-color:transparent;background:transparent;-webkit-backdrop-filter:none;backdrop-filter:none;z-index:10;pointer-events:none}.header.mobile-header-collapsed .brand-logo-wrap,.header.mobile-header-collapsed .brand-copy{opacity:0;transform:translateY(-10px);pointer-events:none}.header.mobile-header-collapsed .header-actions{max-height:0;opacity:0;transform:translate(-50%,-10px);padding:0;pointer-events:none}.header.mobile-header-collapsed .mobile-nav-toggle{display:inline-flex;position:fixed;left:50%;right:auto;top:.78rem;transform:translate(-50%);pointer-events:auto}.mode-switch{width:100%;grid-template-columns:1fr 1fr}.header-speed{width:100%;min-width:0}.header-time{justify-content:center;width:100%}.header-actions .btn{width:100%}.panel-toggle{top:6.35rem;transition:top .22s ease}.panel{top:7.2rem;width:min(320px,78vw);max-height:calc(100vh - 8.05rem);transition:transform .25s ease,top .22s ease,max-height .22s ease}.panel.left{overflow-y:auto;overscroll-behavior:contain}.panel.left{left:.5rem}.panel.right{right:.5rem}.outputs-panel{top:7.2rem;right:.5rem;width:min(330px,80vw);max-height:calc(100vh - 8.05rem);transition:transform .25s ease,top .22s ease,max-height .22s ease}.outputs-body{max-height:calc(100vh - 9.2rem)}.header.mobile-header-collapsed~.panel-toggle{top:.22rem}.header.mobile-header-collapsed~.panel,.header.mobile-header-collapsed~.outputs-panel{top:1rem;max-height:calc(100vh - 1.78rem)}body{position:fixed;inset:0;width:100%;height:100%}.experience{overflow:hidden}#scene,#scene canvas{touch-action:none;-webkit-user-select:none;user-select:none}.panel,.outputs-body,.header-actions{touch-action:pan-y;overscroll-behavior:contain}.asset-card,.btn,.panel-toggle,.mobile-nav-toggle,input,button{touch-action:manipulation}}@media(max-width:940px)and (pointer:coarse){.brand-copy{width:min(40vw,260px)}.brand-copy h1{font-size:.95rem}.brand-copy p{font-size:.69rem}.header-speed{min-width:102px;font-size:.62rem}.panel{width:min(300px,75vw);top:6.2rem;bottom:auto;max-height:calc(100vh - 7rem)}.outputs-panel{right:.55rem;width:min(360px,calc(100vw - 1.1rem));max-height:calc(100vh - 7rem)}.outputs-grid{grid-template-columns:1fr}.inline-control{grid-template-columns:4.8rem minmax(0,1fr) auto}.inline-control .value{min-width:3.8rem}}@media(max-width:760px)and (pointer:coarse){.panel{width:min(286px,74vw);top:7.15rem;max-height:calc(100vh - 7.95rem);padding:.58rem}.outputs-panel{width:min(296px,76vw);top:7.15rem;max-height:calc(100vh - 7.95rem)}.panel-toggle.left{left:.45rem}.panel-toggle.right{right:.45rem}.asset-grid{grid-template-columns:1fr}.brand-copy{width:min(50vw,230px)}.brand-copy p{display:none}}
