*{margin:0;padding:0;box-sizing:border-box}
body{overflow:hidden;background:#000;font-family:'Segoe UI',system-ui,sans-serif;color:#e0e0e0;user-select:none}
#game-container{width:100vw;height:100vh;position:relative}
#game-canvas{width:100%;height:100%;display:block}
#loading-screen{position:fixed;inset:0;background:linear-gradient(135deg,#0a0a2e,#1a1a3e,#0a0a2e);display:flex;align-items:center;justify-content:center;z-index:9999;transition:opacity .5s}
#loading-screen.fade-out{opacity:0;pointer-events:none}
.loading-content{text-align:center}
.loading-content h1{font-size:3em;color:#4fc3f7;text-shadow:0 0 30px rgba(79,195,247,.5);margin-bottom:.2em}
.loading-content p{font-size:1.2em;color:#888;margin-bottom:2em}
.loading-bar{width:300px;height:4px;background:#333;border-radius:2px;overflow:hidden;margin:0 auto}
.loading-fill{width:100%;height:100%;background:#4fc3f7}
.panel{position:absolute;background:rgba(25,28,38,.95);border:1px solid #444;border-radius:8px;backdrop-filter:blur(10px)}
.hidden{display:none!important}
.btn{padding:8px 16px;border:1px solid #555;border-radius:4px;background:rgba(50,55,70,.8);color:#ddd;cursor:pointer;font-size:13px;transition:all .15s}
.btn:hover{background:rgba(70,75,100,.9);border-color:#4fc3f7}
.btn:disabled{opacity:.4;cursor:not-allowed}
#vab-panel{inset:0;border-radius:0;display:flex;flex-direction:column;z-index:10}
.vab-header{display:flex;justify-content:space-between;align-items:center;padding:12px 20px;background:rgba(15,18,28,.9);border-bottom:1px solid #444}
.vab-header h2{color:#4fc3f7;font-size:1.3em}
.vab-name{color:#555;font-size:1.5em;font-weight:bold;letter-spacing:3px}
.vab-body{display:flex;flex:1;overflow:hidden}
.parts-list{width:260px;padding:15px;border-right:1px solid #333;overflow-y:auto}
.parts-list h3{color:#4fc3f7;margin:12px 0 6px;font-size:.85em;text-transform:uppercase;letter-spacing:1px}
.parts-list h3:first-child{margin-top:0}
.part-item{display:flex;align-items:center;gap:10px;padding:8px;margin-bottom:3px;background:rgba(45,50,65,.5);border:1px solid #3a3f50;border-radius:6px;cursor:pointer;transition:all .15s}
.part-item:hover{background:rgba(60,65,90,.6);border-color:#4fc3f7;transform:translateX(3px)}
.part-icon{font-size:1.3em;width:36px;height:36px;display:flex;align-items:center;justify-content:center;background:rgba(79,195,247,.12);border-radius:6px;color:#4fc3f7}
.part-info{display:flex;flex-direction:column}
.part-name{font-size:.85em;font-weight:600}
.part-mass{font-size:.7em;color:#888}
.assembly-area{flex:1;display:flex;flex-direction:column;padding:15px}
.assembly-area h3{color:#4fc3f7;margin-bottom:10px;font-size:.95em;text-transform:uppercase;letter-spacing:1px}
#assembly-list{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;min-height:200px;padding:20px}
.assembly-part{width:80px;padding:8px 5px;text-align:center;border:1px solid #555;border-radius:4px;background:rgba(45,50,65,.6);font-size:.8em;cursor:pointer;transition:all .15s;position:relative}
.assembly-part:hover{border-color:#ff5555;background:rgba(100,50,50,.4)}
.assembly-part.part-CommandPod,.assembly-part.part-CommandPodSmall{background:rgba(79,195,247,.2);border-color:#4fc3f7;border-radius:20px 20px 4px 4px}
.assembly-part.part-LargeTank,.assembly-part.part-SmallTank,.assembly-part.part-TinyTank{background:rgba(200,200,200,.12)}
.assembly-part.part-LargeEngine,.assembly-part.part-SmallEngine,.assembly-part.part-VacuumEngine{background:rgba(255,152,0,.2);border-color:#ff9800;border-radius:4px 4px 12px 12px}
.assembly-part.part-SolidBooster{background:rgba(255,87,34,.2);border-color:#ff5722}
.assembly-part.part-Decoupler{background:rgba(255,235,59,.12);border-color:#ffeb3b;height:12px;padding:2px}
.assembly-part.part-Parachute{background:rgba(244,67,54,.15);border-color:#f44336}
.assembly-part.part-Fairing{background:rgba(238,238,238,.12);border-color:#eee;border-radius:20px 20px 4px 4px}
.assembly-part.part-SolarPanel{background:rgba(26,35,126,.2);border-color:#1a237e}
.assembly-part.part-LandingLeg{background:rgba(117,117,117,.2);border-color:#757575}
.assembly-stats{display:flex;gap:20px;padding:10px 0;border-top:1px solid #333;margin-top:10px;font-size:.9em;color:#aaa}
.assembly-stats span span{color:#4fc3f7;font-weight:bold}
.assembly-actions{display:flex;gap:10px;padding-top:10px}
.btn-launch{background:rgba(76,175,80,.3)!important;border-color:#4caf50!important;color:#4caf50!important;font-weight:bold;padding:10px 30px;font-size:1.1em}
.btn-launch:hover:not(:disabled){background:rgba(76,175,80,.5)!important}
.btn-clear{border-color:#ff5555!important;color:#ff5555!important}
.btn-template{border-color:#4fc3f7!important;color:#4fc3f7!important}
.assembly-wrapper{display:flex;align-items:center;gap:4px}
.part-controls{display:none;flex-direction:column;gap:2px}
.assembly-wrapper:hover .part-controls{display:flex}
.btn-part{background:rgba(80,85,110,.8);border:1px solid #555;border-radius:3px;color:#ccc;cursor:pointer;font-size:10px;padding:2px 5px;line-height:1}
.btn-part:hover{background:rgba(100,105,130,.9);border-color:#4fc3f7}
.btn-del:hover{border-color:#ff5555;color:#ff5555}
.insert-point{height:8px;border:1px dashed transparent;border-radius:4px;transition:all .15s;cursor:pointer;font-size:0}
.insert-point:hover{border-color:#4fc3f7;background:rgba(79,195,247,.1);height:20px;font-size:10px;color:#4fc3f7;line-height:20px;text-align:center}
.insert-point.selected{border-color:#4caf50;background:rgba(76,175,80,.15);height:20px;font-size:10px;color:#4caf50;line-height:20px;text-align:center}
#flight-hud{position:absolute;inset:0;pointer-events:none;z-index:5}
#flight-hud>*{pointer-events:auto}
#throttle-bar{position:absolute;left:20px;bottom:140px;width:30px;height:180px;background:rgba(25,28,38,.8);border:1px solid #555;border-radius:4px;overflow:hidden}
#throttle-fill{position:absolute;bottom:0;width:100%;height:0%;background:linear-gradient(to top,#4caf50,#ffeb3b,#ff5722);transition:height .1s}
#throttle-label{position:absolute;bottom:-25px;width:100%;text-align:center;font-size:.8em;color:#aaa}
#info-bar{position:absolute;top:10px;left:50%;transform:translateX(-50%);display:flex;gap:12px;background:rgba(18,22,32,.85);padding:8px 14px;border-radius:6px;border:1px solid #3a3f50}
.info-item{display:flex;flex-direction:column;align-items:center;min-width:70px}
.info-label{font-size:.65em;color:#777;text-transform:uppercase;letter-spacing:1px}
.info-value{font-size:.95em;font-weight:bold;color:#4fc3f7;font-family:'Courier New',monospace}
#warp-bar{position:absolute;top:60px;left:50%;transform:translateX(-50%);display:flex;align-items:center;gap:8px;background:rgba(18,22,32,.85);padding:5px 12px;border-radius:4px;border:1px solid #3a3f50}
#warp-indicator{color:#ffeb3b;font-weight:bold;font-size:.95em;min-width:30px;text-align:center}
.btn-warp{padding:4px 10px;font-size:.85em}
#navball-container{position:absolute;bottom:20px;left:50%;transform:translateX(-50%);width:200px;height:200px}
#navball{width:200px;height:200px;border-radius:50%;border:2px solid #555}
#staging-panel{position:absolute;right:20px;bottom:80px;width:120px}
.stage-list{display:flex;flex-direction:column;gap:3px;margin-bottom:5px}
.stage-item{padding:6px 8px;background:rgba(45,50,65,.7);border:1px solid #555;border-radius:4px;font-size:.75em;display:flex;align-items:center;gap:6px}
.stage-item.active{border-color:#4caf50;background:rgba(76,175,80,.2)}
.stage-item.spent{opacity:.3}
.stage-hint{font-size:.7em;color:#666;text-align:center}
#fuel-panel{position:absolute;right:20px;bottom:20px;width:120px}
.fuel-label{font-size:.7em;color:#888;margin-bottom:3px}
.fuel-bar{height:8px;background:rgba(45,50,65,.7);border:1px solid #555;border-radius:4px;overflow:hidden}
.fuel-fill{width:100%;height:100%;background:linear-gradient(to right,#ff5722,#4caf50);transition:width .2s}
.fuel-percent{font-size:.8em;color:#4fc3f7;text-align:right;margin-top:2px}
#bottom-bar{position:absolute;bottom:20px;left:70px;display:flex;gap:8px}
.btn-view{font-size:.8em;padding:6px 12px}
.btn-view.active{background:rgba(79,195,247,.3)!important;border-color:#4fc3f7!important;color:#4fc3f7!important}
#btn-help{position:absolute;top:10px;right:10px;width:30px;height:30px;padding:0;display:flex;align-items:center;justify-content:center;border-radius:50%;font-size:1em;font-weight:bold}
#controls-help{position:absolute;top:50px;right:10px;background:rgba(18,22,32,.92);border:1px solid #444;border-radius:6px;padding:15px;font-size:.85em;line-height:1.8}
#controls-help h4{color:#4fc3f7;margin-bottom:5px}
#map-hud{position:absolute;inset:0;pointer-events:none;z-index:5}
#map-hud>*{pointer-events:auto}
#map-info{position:absolute;top:10px;left:50%;transform:translateX(-50%);display:flex;gap:12px;background:rgba(18,22,32,.85);padding:8px 14px;border-radius:6px;border:1px solid #3a3f50}
#map-bottom-bar{position:absolute;bottom:20px;left:50%;transform:translateX(-50%)}
#autopilot-panel{position:absolute;top:50px;right:10px;width:120px;padding:10px;display:flex;flex-direction:column;align-items:center;gap:6px}
#autopilot-panel h4{color:#4fc3f7;font-size:.85em;margin:0}
#ap-status{font-size:.8em;color:#aaa;min-height:1.2em}
#ap-indicator{width:8px;height:8px;border-radius:50%;background:#555;position:absolute;top:8px;right:10px}
#ap-indicator.active{background:#4caf50;box-shadow:0 0 6px #4caf50}
.ap-buttons{display:flex;flex-wrap:wrap;gap:4px;justify-content:center}
.btn-ap{padding:5px 10px;font-size:.75em;min-width:50px}
.btn-ap-off{border-color:#ff5555!important;color:#ff5555!important}
::-webkit-scrollbar{width:6px}
::-webkit-scrollbar-track{background:rgba(25,28,38,.5)}
::-webkit-scrollbar-thumb{background:#555;border-radius:3px}
