:root{color-scheme:dark;--bg:#090f16;--panel:#101a24;--line:#25343f;--muted:#8195a6;--text:#e4edf2;--mint:#a5e5c5;--orange:#edb278;--blue:#85b9d9}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text);font:14px/1.5 Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}button,input{font:inherit}button{cursor:pointer;color:inherit;background:none;border:1px solid var(--line);border-radius:7px;padding:10px 14px;transition:.15s}button:hover{border-color:var(--mint);background:#a5e5c50b}button:disabled{opacity:.4;cursor:not-allowed}button:focus-visible,input:focus-visible{outline:2px solid var(--mint);outline-offset:3px}input{background:#0a121b;border:1px solid var(--line);border-radius:7px;color:var(--text);padding:12px;width:100%}h1,h2,h3,p{margin:0}h1{font-size:30px;font-weight:550;letter-spacing:-1px}h2{font-size:19px;font-weight:550}h3{font-size:14px;font-weight:600}.muted{color:var(--muted)}.eyebrow{font-size:10px;letter-spacing:2px;color:var(--mint);text-transform:uppercase;font-weight:650}.mono{font-family:ui-monospace,SFMono-Regular,Consolas,monospace}.shell{display:grid;grid-template-columns:212px 1fr;min-height:100vh}.sidebar{border-right:1px solid var(--line);background:#0d151e;padding:30px 18px;display:flex;flex-direction:column;gap:35px;position:sticky;top:0;height:100vh}.brand{display:flex;align-items:center;gap:12px;padding:0 10px}.brandmark{font-size:32px;line-height:1;color:var(--mint)}.brand strong{letter-spacing:3px;font-size:16px;font-weight:600}.brand small{display:block;color:var(--muted);font-size:9px;letter-spacing:2px}.nav{display:grid;gap:7px}.nav button{text-align:left;border-color:transparent;display:flex;gap:12px;align-items:center;padding:12px}.nav button.active{background:#a5e5c510;color:var(--mint);border-color:#a5e5c523}.nav .ico{width:22px;font-size:20px}.sidebar-footer{margin-top:auto;border-top:1px solid var(--line);padding:20px 10px 0;font-size:11px;color:var(--muted)}.status-dot{display:inline-block;width:6px;height:6px;background:var(--mint);border-radius:50%;margin-right:7px;box-shadow:0 0 10px #a5e5c555}.topbar{height:89px;padding:20px 32px;border-bottom:1px solid var(--line);display:flex;gap:30px;align-items:center;justify-content:space-between;background:#0c141d}.resource-strip{display:flex;gap:30px}.resource{display:flex;gap:10px;align-items:center}.resource-icon{color:var(--orange);font-size:23px}.resource:nth-child(2) .resource-icon{color:var(--blue)}.resource:nth-child(3) .resource-icon{color:var(--mint)}.resource label{color:var(--muted);font-size:10px;text-transform:uppercase;letter-spacing:1.6px}.resource strong{font-size:17px;font-weight:550;display:block;font-variant-numeric:tabular-nums}.resource small{font-size:10px;color:var(--muted);margin-left:5px}.commander{text-align:right;font-size:12px}.commander small{color:var(--muted);display:block;font-size:10px}.content{padding:28px 32px}.page-heading{display:flex;justify-content:space-between;align-items:end;gap:20px;margin-bottom:24px}.page-heading p{color:var(--muted);font-size:12px;margin-top:6px}.badge{border:1px solid #a5e5c532;border-radius:20px;padding:6px 12px;color:var(--mint);font-size:10px;letter-spacing:.5px;white-space:nowrap}.workspace{display:grid;grid-template-columns:minmax(400px,1fr) 292px;gap:20px;align-items:start}.panel{border:1px solid var(--line);background:var(--panel);border-radius:10px;overflow:hidden}.panel-head{padding:17px 20px;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;gap:12px}.panel-head small{font-size:10px;color:var(--muted)}.board-wrap{padding:22px;background:radial-gradient(ellipse at 30% 30%,#26352f66,transparent 65%),repeating-radial-gradient(ellipse at 80% 50%,transparent 0 36px,#9bb6a407 37px 38px),#111e23;overflow:auto}.base-grid{width:100%;min-width:390px;aspect-ratio:1;display:grid;grid-template-columns:repeat(15,1fr);gap:3px;position:relative}.cell{position:relative;border:1px solid #98b6a80b;border-radius:2px;padding:0;min-width:0;background:#0000000e;display:flex;align-items:center;justify-content:center;aspect-ratio:1}.cell:hover{border-color:#a5e5c566;background:#a5e5c511}.cell.valid{border-color:#a5e5c526;background:#a5e5c506}.cell.module{border:1px solid #607d78;background:linear-gradient(145deg,#3b514c,#1b2c30);color:#c3e5d4;box-shadow:inset 0 0 0 3px #0d1a2144}.cell.module.command{background:linear-gradient(145deg,#acdac0,#4e8576);color:#0c2823;border-color:#bee8cb;box-shadow:0 0 28px #a5e5c522}.cell.module.solar{color:#f3ce8c;background:linear-gradient(135deg,#39444b,#202e36)}.cell.module.refinery{color:#dfb08b}.cell.module.turret{color:#eab0a5}.cell.module.corridor{background:#263b39;border-color:#4b6961;box-shadow:none}.cell.module.building{background:repeating-linear-gradient(45deg,#b6925e15 0 4px,#b6925e30 4px 8px);border-color:#edb27899;color:var(--orange);border-style:dashed}.cell.selected{outline:2px solid var(--mint);outline-offset:1px;z-index:3}.cell .glyph{font-size:clamp(15px,1.6vw,26px);line-height:1}.cell .level{position:absolute;right:2px;bottom:0px;font-size:7px;color:#c3dfce}.cell.right:after{content:'';position:absolute;right:-5px;top:42%;height:16%;width:6px;background:#82a998;z-index:1}.cell.down:before{content:'';position:absolute;bottom:-5px;left:42%;width:16%;height:6px;background:#82a998;z-index:1}.board-footer{padding:13px 20px;display:flex;justify-content:space-between;font-size:10px;color:var(--muted);border-top:1px solid var(--line)}.metrics{display:grid;grid-template-columns:repeat(4,1fr);border-top:1px solid var(--line)}.metric{padding:14px 18px;border-right:1px solid var(--line)}.metric:last-child{border:0}.metric span{font-size:9px;letter-spacing:1.2px;text-transform:uppercase;color:var(--muted);display:block}.metric strong{font-size:16px;font-weight:500}.right-stack{display:grid;gap:16px}.panel-body{padding:18px}.panel-body p{color:var(--muted);font-size:12px;margin:10px 0 16px}.module-list{display:grid;gap:6px}.module-option{text-align:left;display:flex;align-items:center;gap:12px;padding:10px 12px;width:100%;border-color:transparent;border-radius:6px}.module-option.active{border-color:#a5e5c544;background:#a5e5c50b}.module-option .glyph{font-size:22px;width:28px;color:var(--mint)}.module-option strong{font-size:12px;font-weight:500;display:block}.module-option small{color:var(--muted);font-size:10px;display:block}.primary{background:var(--mint);color:#102920;border-color:var(--mint);font-weight:650;width:100%;margin-top:14px}.primary:hover{background:#bfeeda;color:#102920}.cost{display:flex;gap:10px;flex-wrap:wrap;color:var(--orange);font-size:11px;margin-top:12px}.detail-icon{font-size:30px;color:var(--mint);margin-bottom:8px}.row{display:flex;justify-content:space-between;align-items:center;gap:12px;font-size:12px;margin-top:12px}.row span{color:var(--muted)}.progress{height:4px;background:#263a40;border-radius:4px;overflow:hidden;margin-top:12px}.progress i{display:block;height:100%;background:var(--mint);width:45%;animation:pulse 2s infinite}.timer{color:var(--orange);font-size:12px}.help-note{padding:14px 16px;background:#a5e5c508;border:1px solid #a5e5c51c;border-radius:8px;font-size:11px;color:#a0b9ad}.mission{padding:15px 18px;border-bottom:1px solid var(--line)}.mission:last-child{border:0}.mission strong{font-weight:500;font-size:12px}.mission p{color:var(--muted);font-size:11px;margin-top:4px}.mission .timer{float:right}.world-wrap{overflow:auto;background:radial-gradient(ellipse at 25% 30%,#31413977,transparent 50%),radial-gradient(ellipse at 80% 60%,#24364788,transparent 45%),#111c25;position:relative}.world-map{width:100%;min-width:550px;display:block;aspect-ratio:1}.world-map .grid-line{stroke:#a0c3bb0e;stroke-width:.6}.world-map .node{cursor:pointer;outline:none}.world-map .node:hover .halo,.world-map .node.selected .halo{stroke:var(--mint);stroke-width:1.4;fill:#a5e5c516}.world-map .halo{fill:transparent;stroke:transparent}.world-map .node:focus-visible .halo{stroke:white}.world-map text{font:7px ui-monospace,monospace;fill:#b3c6ce;pointer-events:none}.world-map .track{stroke:#a5e5c577;stroke-width:1;stroke-dasharray:4 4}.legend{display:flex;gap:16px;flex-wrap:wrap}.legend b{margin-right:5px}.count-control{display:grid;grid-template-columns:40px 1fr 40px;gap:8px;margin-top:12px}.count-control input{text-align:center;padding:8px}.count-control button{padding:6px}.reports{max-width:1000px}.log-item{padding:18px 22px;display:flex;gap:20px;border-bottom:1px solid var(--line);font-size:13px}.log-item time{color:var(--muted);font-size:11px;white-space:nowrap}.empty{padding:30px;color:var(--muted);font-size:12px}.join-shell{min-height:100vh;display:grid;grid-template-columns:1.1fr 1fr;align-items:center;max-width:1150px;margin:auto;padding:60px;gap:80px}.join-art{height:450px;position:relative;display:flex;align-items:center;justify-content:center}.planet{width:320px;height:320px;border-radius:50%;background:radial-gradient(circle at 30% 25%,#8b9f7d,#425a54 35%,#233a3f 60%,#09121b 76%);box-shadow:inset -40px -15px 60px #020810,0 0 100px #8bc4a31a;position:relative;overflow:hidden}.planet:after{content:'';position:absolute;inset:0;background:repeating-radial-gradient(ellipse at 30% 40%,transparent 0 10px,#c3d6aa12 11px 13px);transform:rotate(-25deg)}.orbit{position:absolute;width:450px;height:155px;border:1px solid #a5e5c529;border-radius:50%;transform:rotate(-32deg)}.orbit:after{content:'◈';position:absolute;left:50px;top:4px;color:var(--mint);font-size:26px}.join-copy .brand{padding:0;margin-bottom:44px}.join-copy h1{font-size:44px;line-height:1.15;margin:14px 0 20px}.join-copy>p{color:var(--muted);font-size:14px;line-height:1.8;max-width:390px}.join-form{margin-top:30px}.join-form label{display:block;font-size:11px;color:var(--muted);margin-bottom:8px}.join-copy .fine{font-size:11px;color:var(--muted);margin-top:15px;line-height:1.6}.loading{padding:60px;text-align:center;color:var(--mint)}#toast{position:fixed;bottom:26px;left:50%;transform:translateX(-50%) translateY(120px);max-width:90vw;background:#192b32;border:1px solid #a5e5c566;color:var(--text);padding:13px 22px;border-radius:8px;z-index:100;transition:transform .2s;box-shadow:0 10px 40px #0008}#toast.show{transform:translateX(-50%) translateY(0)}.error{color:#f2a598!important}.full-width{grid-column:1/-1}.section-label{color:var(--muted);font-size:10px;letter-spacing:1.5px;text-transform:uppercase;margin-bottom:12px}.danger-text{color:#e9a18e}.mobile-brand{display:none}@keyframes pulse{50%{opacity:.4}}
@media(min-width:1550px){.content{max-width:1450px;margin:auto}.workspace{grid-template-columns:minmax(500px,1fr) 320px}.base-grid{max-width:800px;margin:auto}}@media(max-width:1150px){.shell{grid-template-columns:76px 1fr}.sidebar{padding:26px 10px}.brand{padding:0;justify-content:center}.sidebar .brand div,.nav .nav-label,.sidebar-footer{display:none}.nav button{justify-content:center;padding:12px 6px}.nav .ico{width:auto}.topbar{padding:16px 22px}.content{padding:24px 22px}.workspace{grid-template-columns:minmax(350px,1fr) 260px}.resource-strip{gap:20px}.board-wrap{padding:14px}.cell .glyph{font-size:20px}.resource small{display:none}}
@media(max-width:850px){.workspace{grid-template-columns:1fr}.right-stack{grid-template-columns:1fr 1fr}.right-stack>.panel:first-child{grid-column:1/-1}.module-list{grid-template-columns:repeat(2,1fr)}.resource-strip{gap:15px}.resource{gap:6px}.resource strong{font-size:14px}.commander{max-width:120px}.page-heading .badge{display:none}.join-shell{padding:30px;grid-template-columns:1fr;gap:20px;max-width:550px}.join-art{display:none}.join-copy h1{font-size:38px}.content{padding:20px 16px}.base-grid{min-width:330px}.cell .glyph{font-size:18px}.metrics .metric{padding:12px}}
@media(max-width:550px){.shell{grid-template-columns:1fr}.sidebar{position:relative;flex-direction:row;height:auto;padding:12px 16px;border-bottom:1px solid var(--line);gap:15px}.sidebar .brand{display:none}.nav{display:flex;width:100%;gap:8px}.nav button{flex:1;padding:8px}.nav .nav-label{display:inline;font-size:11px}.nav .ico{font-size:16px}.topbar{height:auto;padding:14px 16px}.resource-strip{gap:16px}.resource label{font-size:8px}.resource-icon{font-size:18px}.commander{display:none}h1{font-size:25px}.right-stack{grid-template-columns:1fr}.right-stack>.panel:first-child{grid-column:auto}.panel-head{padding:14px}.board-wrap{padding:8px}.base-grid{gap:2px;min-width:300px}.cell .glyph{font-size:16px}.cell.right:after{right:-4px;width:4px}.cell.down:before{bottom:-4px;height:4px}.board-footer{padding:10px;font-size:9px}.metric strong{font-size:13px}.metric span{font-size:8px}.metric{padding:10px!important}.log-item{gap:10px;padding:14px;flex-direction:column}.page-heading{margin-bottom:18px}.resource strong{font-size:13px}.page-heading p{font-size:11px}}
/* Stage 2 */
select,textarea{font:inherit;color:var(--text);background:#0a121b;border:1px solid var(--line);border-radius:7px;padding:10px;width:100%}select{cursor:pointer}textarea{resize:vertical;font-family:ui-monospace,monospace;font-size:13px;word-break:break-all}.secondary{width:100%;margin-top:10px}.auth-tabs{display:flex;gap:10px;margin-top:26px}.auth-tabs button{flex:1}.auth-tabs button.active{color:var(--mint);border-color:var(--mint)}.account-layout{display:grid;grid-template-columns:minmax(300px,620px) minmax(240px,340px);gap:20px;align-items:start}.module-status{display:inline-block;margin-top:8px;text-transform:uppercase;letter-spacing:1px;font-size:9px;color:var(--mint);border:1px solid #a5e5c533;padding:3px 8px;border-radius:20px}.module-status.damaged,.module-status.brownout,.module-status.disconnected,.module-status.isolated{color:var(--orange);border-color:#edb27866}.cell.module.isolated,.cell.module.disconnected{opacity:.45;border-style:dashed;box-shadow:none;background:#19252c;color:#8e9a9f}.cell.module.damaged{background:repeating-linear-gradient(45deg,#713c3011 0 4px,#d38a6633 4px 8px);border:1px dashed #e7a38e;color:#e7a38e;box-shadow:none}.cell.module.brownout{border-color:#d4a163;background:#453b2a;color:#e0b274;box-shadow:none}.cell.module.disconnected:after,.cell.module.disconnected:before,.cell.module.isolated:after,.cell.module.isolated:before,.cell.module.damaged:after,.cell.module.damaged:before{background:#766554}.map-toolbar{display:flex;gap:10px;align-items:center;flex-wrap:wrap;padding:12px 16px;border-bottom:1px solid var(--line);background:#0d1821}.map-buttons{display:flex;gap:5px}.map-buttons button{padding:5px 10px;font-size:11px}.map-toolbar input{width:150px;flex:1;font-size:11px;padding:7px 10px}.map-toolbar select{width:120px;font-size:11px;padding:7px}.world-map{touch-action:none;cursor:grab}.world-map:active{cursor:grabbing}.world-map .track.other{stroke:#85b9d955}.world-map .fleet-marker circle{fill:var(--mint);stroke:#122830;stroke-width:1}.world-map .fleet-marker.other circle{fill:var(--blue)}.world-map .fleet-marker{pointer-events:none;filter:drop-shadow(0 0 3px #a5e5c5)}.panel-body .section-label{display:block;margin-top:18px;margin-bottom:6px}.module-status+ p{margin-top:12px}.nav{gap:6px}.page-heading .badge{font-variant-numeric:tabular-nums}@media(max-width:850px){.account-layout{grid-template-columns:1fr}.map-toolbar{padding:10px}.map-toolbar input{min-width:110px}}@media(max-width:550px){.nav{gap:2px}.nav button{gap:5px}.nav .nav-label{font-size:10px}.nav .ico{font-size:14px}.map-buttons{width:100%}.world-map{min-width:0}.account-layout .mono{font-size:11px}}
/* Stage 3: knowledge and frontier directives. */
.research-summary{display:flex;gap:24px;justify-content:space-between;align-items:center;margin-bottom:20px;padding:24px;background:linear-gradient(115deg,#192d2b,#101b26);border:1px solid var(--line);border-radius:10px}.research-summary h2{font-size:26px;margin:5px 0}.research-summary p{font-size:12px}.tech-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;margin-top:20px}.tech-card{display:flex;flex-direction:column}.tech-card .panel-body{display:flex;flex-direction:column;flex:1}.tech-card .panel-body p{min-height:52px}.tech-card h2{font-size:17px}.tech-prereq{font-size:10px;color:var(--muted);padding:10px 0;border-top:1px solid var(--line);margin-bottom:5px;min-height:45px}.tech-card .cost{margin-top:auto}.tech-card.researched{border-color:#a5e5c54a}.tech-card.researching{border-color:#edb27877}.technology-complete{color:var(--mint);font-size:12px;padding:16px 0 4px;margin-top:auto}.text-button{border:0;padding:4px 0;color:var(--mint);font-size:12px;display:block;text-align:left}.text-button:hover{background:none}.module-option.locked{opacity:.45}.research-lock{font-size:11px!important;color:var(--orange)!important}.rank-panel{padding:24px;display:flex;justify-content:space-between;gap:30px;align-items:center;margin-bottom:20px}.rank-panel h2{font-size:24px;margin:7px 0}.rank-progress{width:40%}.rank-progress small{color:var(--muted);font-size:11px}.objective-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.objective-card.claimed{opacity:.6}.objective-card p{min-height:32px}.reward-line{color:var(--mint);font-size:12px;margin-top:12px}progress{appearance:none;-webkit-appearance:none;height:6px;border:0;width:100%;display:block;background:#263a40;border-radius:5px;overflow:hidden;margin:12px 0}progress::-webkit-progress-bar{background:#263a40}progress::-webkit-progress-value{background:var(--mint)}progress::-moz-progress-bar{background:var(--mint)}.objective-grid+.help-note{margin-top:20px}.nav{overflow-y:auto}.right-stack .panel-body>p{line-height:1.6}@media(max-width:1200px){.tech-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:850px){.rank-panel,.research-summary{align-items:start;flex-direction:column}.rank-progress{width:100%}.research-summary .badge{white-space:normal}}@media(max-width:650px){.tech-grid,.objective-grid{grid-template-columns:1fr}}@media(max-width:550px){.nav{flex-wrap:wrap;overflow:visible}.nav button{flex:1 1 29%;min-width:90px}.sidebar{height:auto}.tech-card .panel-body p{min-height:0}.rank-panel{padding:18px}}
/* Physical connection ports and reviewable layouts. */
.port-overlay{position:absolute;inset:0;width:100%;height:100%;overflow:visible;pointer-events:none;z-index:2}.port-overlay path{stroke:#b2e9cd;stroke-width:2.8;fill:none}.port-overlay circle{fill:#b2e9cd}.port-overlay.hall path{stroke-width:4}.cell.module:has(.port-overlay.hall) .glyph{display:none}.cell .glyph{z-index:1;font-size:clamp(12px,1.3vw,20px)}.cell.module.disconnected .port-overlay path,.cell.module.isolated .port-overlay path,.cell.module.damaged .port-overlay path{stroke:#bd8d67}.cell.module.disconnected .port-overlay circle,.cell.module.isolated .port-overlay circle{fill:#bd8d67}.migration-banner{display:flex;align-items:center;justify-content:space-between;gap:24px;border:1px solid #a5e5c54a;background:#a5e5c50a;border-radius:9px;padding:18px 22px;margin-bottom:20px}.migration-banner p{font-size:12px;color:var(--muted);margin-top:6px;max-width:760px}.migration-banner>button{white-space:nowrap;color:var(--mint)}.placement-controls{display:flex;gap:16px;align-items:center;margin:18px 0 8px}.port-sample{position:relative;width:60px;height:60px;background:#1f3433;border:1px solid #678b7c;border-radius:6px;padding:8px}.placement-controls .secondary{font-size:11px;padding:6px 10px}.placement-controls strong{font-size:11px;letter-spacing:1px}.placement-note{padding:10px 12px;border:1px solid var(--line);border-radius:7px;font-size:11px;line-height:1.7;margin:12px 0}.placement-note.valid,.valid-text{color:var(--mint)!important}.placement-note.invalid{color:var(--orange);border-color:#edb27844}.plan-cell{border-color:#7ba99522}.plan-cell.module{box-shadow:inset 0 0 0 3px #0d1a2144}.plan-cell.module.disconnected{opacity:.85;background:#482e22}.plan-cell .level{z-index:4}.port-sample .port-overlay{inset:5px;width:50px;height:50px}@media(max-width:850px){.migration-banner{align-items:start;flex-direction:column;gap:12px}.migration-banner>button{white-space:normal}}
.plan-cell{touch-action:none}.plan-cell.module{cursor:grab}.plan-cell.module:active{cursor:grabbing}.plan-cell.draft-new{background:#57452a77;border-color:#edb278}.plan-cell.draft-new .port-overlay path{stroke:#edb278}.plan-cell.draft-new .port-overlay circle{fill:#edb278}.plan-cell.draft-new .level{font-size:7px;color:var(--orange)}
.fleet-input{width:82px;text-align:right}.fleet-workspace{margin-top:24px}.battle-report{padding:16px 0;border-bottom:1px solid var(--border,#25343d)}.battle-report summary{cursor:pointer;font-weight:600}.battle-report p{color:var(--muted,#9aaeb7)}

.auth-field{display:grid;gap:9px}.auth-field small{font-size:11px;line-height:1.5;color:#8da3ac}.join-form .auth-field label{margin:0}.join-form .auth-field input{margin:0;width:100%;box-sizing:border-box}.auth-assurance{display:flex;align-items:center;gap:14px;padding:18px 20px;border:1px solid #2d4547;background:rgba(169,231,202,.035);border-radius:10px;margin-top:24px}.auth-assurance>span{font-size:26px;color:#a8e5c8}.auth-assurance strong{display:block;font-size:12px;font-weight:500;color:#d8e7e4}.auth-assurance small{display:block;font-size:11px;color:#8da3ac;margin-top:5px}.join-copy h1{font-size:clamp(38px,4vw,62px);line-height:1.06;letter-spacing:-2px}.join-form{gap:18px}.auth-tabs{margin-bottom:26px}

.planet:before{content:'';position:absolute;left:197.867px;top:117px;width:6px;height:6px;background:var(--mint);transform:rotate(58deg);z-index:1}

.tutorial-banner{padding:24px 28px;border:1px solid #507b6b;background:linear-gradient(110deg,#18362f55,#101a2455);border-radius:12px;margin-bottom:22px}.tutorial-banner h2{margin:8px 0}.tutorial-banner p{color:#c5d7dc;max-width:850px}.tutorial-banner small{display:block;color:#8fa8ad;margin-top:12px}.reward-banner{border-color:#cead72}.bonus-strip{padding:14px 20px;margin-bottom:18px}.bonus-strip>span{display:inline-block;margin-right:28px;color:var(--mint)}.bonus-strip p{color:var(--muted);margin-top:8px;font-size:12px}kbd{display:inline-block;background:#1c2b34;border:1px solid #47616c;border-radius:4px;padding:1px 7px;color:var(--mint);font-family:inherit}.rotation-hint{color:var(--muted);font-size:12px;margin:16px 0}.plane-overview{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-bottom:20px}.plane-overview button{display:flex;justify-content:space-between;align-items:center;padding:15px 20px;background:var(--panel)}.plane-overview button.active{border-color:var(--mint)}.plane-overview span{font-size:11px;color:var(--muted)}.station-gate .panel-body{max-width:850px;padding:40px}.station-gate h1{margin:18px 0}.station-gate p{margin:18px 0;color:#9db3bd}.nav{overflow:auto;max-height:calc(100vh - 240px)}

.removal-confirm{margin:20px 0;padding:16px;border:1px solid #a46156;border-radius:8px;background:#4b272033}.removal-confirm h3{margin-bottom:12px}.removal-confirm p{margin:12px 0}

.base-grid .module{touch-action:none;cursor:grab}.base-grid .module.building{cursor:default}.base-grid .held-module{outline:3px solid var(--mint);opacity:.65;cursor:grabbing}.base-grid .drop-target{outline:3px solid #cead72;z-index:2}.move-review .secondary{margin-left:12px}

.module-drag-preview{position:fixed;width:54px;height:54px;z-index:10000;pointer-events:none;display:flex;align-items:center;justify-content:center;border:2px solid #a5e5c5;border-radius:7px;background:#173d39;box-shadow:0 8px 24px #0009,0 0 20px #a5e5c544;color:#a5e5c5}.module-drag-preview .glyph{font-size:24px;z-index:1}.module-drag-preview .port-overlay{z-index:2}.drag-preview-caption{position:absolute;top:62px;left:50%;transform:translateX(-50%);padding:5px 9px;white-space:nowrap;background:#101c25ee;border:1px solid #a5e5c566;border-radius:5px;font-size:11px;text-align:center;line-height:1.5;color:#d9eee5}

.placement-preview-cell{border:2px dashed #a5e5c5!important;background:#a5e5c508!important}.placement-preview-cell .ghost-glyph{opacity:.45}.preview-tag{position:absolute;bottom:1px;left:0;right:0;font-size:6px;letter-spacing:.3px;color:#edb278;z-index:4}.preview-explanation{padding:10px;border-left:2px solid #edb278;color:#edc790!important;background:#edb2780a;font-size:12px}
/* Rework: the local outpost is the main scene; controls live at its edges. */
.scene-shell .topbar{height:70px;background:#09131de8}
.scene-shell .content{padding:18px 24px;max-width:none}
.scene-shell .page-heading{margin-bottom:12px}.scene-shell .page-heading h1{font-size:24px}.scene-shell .page-heading p{display:none}
.scene-shell .plane-overview{margin-bottom:12px;max-width:600px}
.scene-shell .workspace{grid-template-columns:minmax(400px,1fr) 300px;gap:16px}
.scene-shell .workspace>section{border:1px solid #546e684d;box-shadow:0 20px 90px #0005;background:#071317}
.scene-shell .board-wrap{min-height:500px;background:radial-gradient(ellipse at 22% 23%,#63806b33,transparent 28%),radial-gradient(ellipse at 74% 70%,#323b2eaa,transparent 44%),repeating-linear-gradient(137deg,transparent 0 70px,#879b6e08 71px 74px),#132222;position:relative}
.scene-shell .base-grid{max-width:760px;margin:auto;gap:2px}
.scene-shell .cell{border-color:#adc4a608;background:#030a0a08}
.scene-shell .cell.valid{border-color:#9cd9b928;background:#bce8b505}
.scene-shell .cell.module{border-radius:3px 8px 3px 5px;background:linear-gradient(135deg,#6d807b,#314b4b 40%,#182c32);box-shadow:inset 2px 2px 0 #d3e4ce50,inset -3px -4px 0 #020b11a0,2px 4px 4px #0008;transform:translateY(-1px)}
.scene-shell .cell.module.command{background:linear-gradient(135deg,#a7d2b8,#528b7d 42%,#2d535b);box-shadow:inset 3px 3px 0 #d0f5db66,inset -4px -4px 0 #11292b88,0 0 25px #a5e5c52d}
.scene-shell .cell.module.solar{background:repeating-linear-gradient(90deg,#5b8ba9 0 5px,#25485e 6px 8px);border-color:#a0bfd3;color:#ffe1a0}
.scene-shell .cell.module.mine{background:linear-gradient(135deg,#a48b67,#5c645b 40%,#283735);color:#f4d1a0}
.scene-shell .cell.module:has(.port-overlay.hall){background:#293c3a;box-shadow:inset 0 0 0 4px #122322;border-radius:2px}
.scene-shell .cell.module.building{background:repeating-linear-gradient(45deg,#b6925e15 0 4px,#b6925e30 4px 8px);box-shadow:none}
.scene-shell .cell .port-overlay{filter:drop-shadow(0 1px 1px #000)}
.scene-shell .board-footer{background:#091319}.scene-shell .metrics{background:#0a141b}
.scene-shell .right-stack{max-height:calc(100vh - 210px);overflow-y:auto;scrollbar-width:thin;position:sticky;top:12px}
.scene-shell .module-list{grid-template-columns:1fr 1fr;gap:5px}.scene-shell .module-option{display:block;padding:8px;min-height:84px;background:#152530;border:1px solid #47605e55}.scene-shell .module-option .glyph{display:block;font-size:24px;margin-bottom:5px}.scene-shell .module-option.active{border-color:#b8dca9;background:#233a38}
.scene-shell .module-option small{font-size:9px}.scene-shell .panel-head{padding:12px 16px}.scene-shell .panel-body{padding:14px}
.guide-window{display:flex;gap:16px;padding:18px 22px;margin-bottom:14px;max-width:100%;background:linear-gradient(105deg,#16332eee,#10202dee);border:1px solid #8ebcab66;box-shadow:0 8px 35px #0003}
.guide-portrait{font-size:35px;width:58px;min-width:58px;height:70px;border:1px solid #7cae9866;display:grid;place-items:center;background:linear-gradient(135deg,#39665c,#10252c);color:#c1ead6}
.guide-window h2{font-size:19px;margin:3px 0 6px}.guide-window p{font-size:13px;line-height:1.65;margin:0;max-width:1000px}.guide-window .primary{width:auto;padding:8px 18px;margin-top:10px}
.tutorial-highlight{outline:2px solid #e5c28d;outline-offset:4px;box-shadow:0 0 28px #edb27822!important}
.level-flash{animation:levelGlow 1.3s ease-in-out infinite}@keyframes levelGlow{50%{color:#ffe3a8;text-shadow:0 0 16px #ffce7a}}
.reward-overlay{position:fixed;inset:0;z-index:80;background:#020810cf;display:grid;place-items:center;padding:24px;backdrop-filter:blur(5px)}
.level-reward{width:min(760px,100%);max-height:90vh;overflow:auto;text-align:center;border:1px solid #bbcd9a;padding:35px;background:radial-gradient(ellipse at top,#335548,#111f2c 70%);box-shadow:0 0 100px #96bd7022}.level-reward h1{font-size:40px;margin:12px}.level-reward>p{color:#c3d1c8}
.reward-cards{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin:28px 0}.reward-cards article{background:#0b1827aa;border:1px solid #b8d6a344;padding:20px 10px;border-radius:6px}.reward-cards article>span{font-size:36px;color:#edcb93}.reward-cards h3{font-size:14px;margin:12px 0}.reward-cards p{font-size:11px;color:#b6c9bf}
.orbit-scene .board-wrap{background:radial-gradient(circle at 10% 90%,#526f8155,transparent 45%),radial-gradient(circle at 70% 30%,#90bcd033 1px,transparent 2px),#070f20;background-size:auto,85px 75px,auto}
@media(max-width:950px){.scene-shell .workspace{grid-template-columns:1fr}.scene-shell .right-stack{max-height:none;position:static;display:block}.scene-shell .module-list{grid-template-columns:repeat(4,1fr)}.reward-cards{grid-template-columns:1fr 1fr}}
@media(max-width:550px){.scene-shell{grid-template-columns:1fr}.scene-shell .content{padding:12px}.scene-shell .workspace{display:block}.scene-shell .right-stack{margin-top:16px}.scene-shell .module-list{grid-template-columns:1fr 1fr}.guide-window{padding:14px;gap:10px}.guide-portrait{display:none}.level-reward{padding:20px}.level-reward h1{font-size:28px}.scene-shell .commander{display:block;max-width:100px}.scene-shell .resource-strip{gap:8px}}
@media(prefers-reduced-motion:reduce){.level-flash,.progress i{animation:none}}
.scene-shell .commander{min-width:0;overflow-wrap:anywhere}.scene-shell .topbar{min-width:0}.scene-shell main{min-width:0}
@media(max-width:550px){.scene-shell .commander{font-size:10px;max-width:90px}.scene-shell .commander small{font-size:8px}.scene-shell .board-wrap{min-height:0}.scene-shell .plane-overview button{padding:10px}.scene-shell .plane-overview span{font-size:10px}}
.work-ribbon{display:flex;justify-content:space-between;gap:12px;padding:10px 14px;margin-bottom:14px;background:#0d2027;border:1px solid #35534e;font-size:11px;color:#afc5bd}.work-ribbon strong{color:#efca94}.commander[data-view]{border-color:#40574e;background:transparent;padding:6px 10px;text-align:right}
@media(max-width:550px){.work-ribbon{font-size:10px;flex-wrap:wrap}.commander[data-view]{padding:4px}.scene-shell .resource-icon{font-size:15px}.scene-shell .resource strong{font-size:12px}}

.onboarding{margin-bottom:20px}.alliance-entry{padding:16px 0;border-bottom:1px solid #26353d}.alliance-entry button{margin-top:8px}.alliance-entry small{display:block;color:#9aaeb7}.chat-messages{max-height:480px;overflow:auto}.chat-messages article{padding:12px 0;border-bottom:1px solid #26353d}.chat-messages time{float:right;font-size:11px;color:#9aaeb7}.chat-messages p{white-space:pre-wrap;overflow-wrap:anywhere}form.panel-body{display:grid;gap:12px}.panel-body ol{padding-left:22px;line-height:1.8}.nav{overflow-y:auto;max-height:calc(100vh - 250px)}


.scene-shell .nav{max-height:calc(100vh - 100px)}.chat-messages article p{overflow-wrap:anywhere}.alliance-entry{overflow-wrap:anywhere}
.module-art{display:block;width:100%;height:100%;overflow:visible;filter:drop-shadow(1px 3px 2px #0008)}.cell .glyph:has(.module-art){position:absolute;inset:0;font-size:0}.module-option .glyph:has(.module-art){width:43px;height:43px;margin:0 0 7px}.scene-shell .cell.module.solar{background:#263d49}.scene-shell .cell.module.mine{background:#34433f}.drag-ghost .module-art{position:absolute;inset:0}.board-camera{display:flex;gap:7px;align-items:center;font-size:10px}.board-camera button{padding:4px 9px}.scene-shell .base-grid{flex-shrink:0}.scene-shell .board-wrap{max-height:calc(100vh - 240px);min-height:400px;overflow:auto;scrollbar-width:thin}.combat-rounds{width:100%;border-collapse:collapse;font-size:12px;margin:14px 0}.combat-rounds td,.combat-rounds th{text-align:left;padding:7px;border-bottom:1px solid #38534e}.account-security{max-width:660px;margin-bottom:20px}.account-security form{display:grid;gap:10px}.account-security input{width:100%}
@media(max-width:550px){.scene-shell .board-wrap{max-height:65vh;min-height:0}.board-camera{gap:4px}.board-camera button{padding:4px 7px}}
.module-drag-preview .glyph:has(.module-art){position:absolute;inset:0;display:block;width:100%;height:100%;font-size:0}

/* The first briefing takes focus before a new commander sees construction. */
.briefing-welcome{color:var(--text);width:min(580px,calc(100vw - 32px));max-height:calc(100dvh - 32px);overflow:auto;margin:auto;padding:36px;border:1px solid #b5d9ba;border-radius:16px;background:radial-gradient(ellipse at top,#254c43,#101e2a 75%);box-shadow:0 24px 100px #0009;text-align:center}
.briefing-welcome::backdrop{background:#020810da;backdrop-filter:blur(6px)}
.briefing-emblem{font-size:52px;color:var(--mint);margin-bottom:16px}.briefing-welcome h1{font-size:32px;line-height:1.2;margin:14px 0 20px}.briefing-welcome>p{color:#d0dfdb;font-size:15px;line-height:1.8}.briefing-next{margin:24px 0;padding:18px;text-align:left;background:#08162088;border:1px solid #84b6a433;border-radius:8px}.briefing-next p{margin-top:6px;color:#afc7bd;line-height:1.6}.briefing-welcome .primary{width:100%;padding:15px;font-size:16px;background:#a5e5c5;color:#10251d;font-weight:650}.briefing-welcome>small{display:block;margin-top:14px;color:#adc4b9}
.guide-window{position:sticky;top:12px;z-index:25;border-left:4px solid #edcb93;box-shadow:0 8px 35px #0008}.guide-window .eyebrow{color:#edcb93}
@media(max-width:550px){.briefing-welcome{padding:24px 20px}.briefing-welcome h1{font-size:27px}.guide-window{top:6px}}
