:root{--bg: #05070d;--panel: rgba(12, 17, 26, .88);--panel-border: rgba(110, 145, 190, .22);--text: #dbe4f0;--text-dim: #8b9ab0;--accent: #6fd3ff;--accent-warm: #ffcf5c;--good: #8ef2a6;--bad: #ff8a8a;--font: "Segoe UI", "Inter", system-ui, sans-serif;--grid-line: rgba(110, 145, 190, .14);--mono: "Cascadia Mono", "Consolas", "SF Mono", monospace}*{box-sizing:border-box}html,body{margin:0;padding:0;height:100%;overflow:hidden;background:var(--bg);color:var(--text);font-family:var(--font);font-size:13px;user-select:none}#app{position:fixed;top:env(safe-area-inset-top,0px);right:env(safe-area-inset-right,0px);bottom:env(safe-area-inset-bottom,0px);left:env(safe-area-inset-left,0px)}#app>canvas{position:absolute;inset:0;display:block}.ui-root{position:absolute;inset:0;pointer-events:none}.ui-root>*{pointer-events:auto}.build-ui{position:absolute;inset:0;pointer-events:none}.panel{position:absolute;top:0;bottom:0;width:320px;padding:14px 14px 20px;background:var(--panel);border-right:1px solid var(--panel-border);backdrop-filter:blur(6px);overflow-y:auto;pointer-events:auto}.panel-left{left:0}.panel-left.trash-target{border-right-color:var(--bad);box-shadow:inset 0 0 0 2px #ff8a8a73}.panel-left.trash-target:after{content:"Loslassen zum Entfernen";position:sticky;bottom:0;display:block;margin-top:8px;padding:6px 8px;border:1px solid var(--bad);border-radius:2px;background:#3c0e0ee6;color:var(--bad);font-size:11px;text-align:center}.panel-right{right:0;left:auto;border-right:none;border-left:1px solid var(--panel-border)}.panel-title{margin:14px 0 8px;font-size:12px;letter-spacing:.12em;text-transform:uppercase;color:var(--text-dim);font-weight:600}.panel-title:first-child{margin-top:0}.filters{display:flex;flex-wrap:wrap;gap:4px;margin-bottom:8px}.chip{padding:4px 9px;border-radius:2px;border:1px solid var(--panel-border);background:#ffffff08;color:var(--text-dim);font:inherit;font-size:11px;cursor:pointer}.chip:hover{color:var(--text);border-color:var(--accent)}.chip.active{background:#6fd3ff29;color:var(--accent);border-color:var(--accent)}.row{display:flex;align-items:center;gap:6px;margin-bottom:8px}.row-label{color:var(--text-dim);font-size:11px;min-width:70px}.slider:disabled{opacity:.35;cursor:not-allowed}.slider{flex:1;accent-color:var(--accent)}.search-field{width:100%;margin-bottom:8px;padding:5px 8px;border:1px solid var(--panel-border);border-radius:2px;background:#ffffff0a;color:var(--text);font:inherit;font-size:12px}.search-field:focus{outline:none;border-color:var(--accent)}.chip-icon{width:32px;height:32px;padding:0;display:flex;align-items:center;justify-content:center;border-radius:4px}.chip-icon-image{display:block;width:21px;height:21px;opacity:.7;transition:opacity .12s,transform .12s}.chip:hover .chip-icon-image,.chip.active .chip-icon-image{opacity:1}.chip-icon:hover .chip-icon-image{transform:scale(1.08)}.category-label{margin:-2px 0 8px;font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:var(--accent)}.tile-size-xs{background:#c9a6ff}.catalog-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(84px,1fr));gap:6px}.catalog-tile{display:flex;flex-direction:column;align-items:center;gap:4px;padding:6px 4px 5px;border:1px solid var(--panel-border);border-radius:2px;background:#ffffff08;color:var(--text);font:inherit;cursor:pointer}.catalog-tile:hover{border-color:var(--accent);background:#6fd3ff1a}.tile-frame{position:relative;width:100%;height:64px;display:flex;align-items:center;justify-content:center;background:radial-gradient(circle at 50% 35%,rgba(120,170,220,.14),transparent 70%)}.tile-image{max-width:100%;max-height:100%;object-fit:contain;image-rendering:auto;filter:drop-shadow(0 1px 2px rgba(0,0,0,.6))}.tile-fallback{font-family:var(--mono);color:var(--text-dim)}.tile-size{position:absolute;right:0;top:0;padding:0 3px;font-family:var(--mono);font-size:9px;line-height:13px;border-radius:2px;color:#06121b;font-weight:700}.tile-size-small{background:#6fd3ff}.tile-size-medium{background:#8ef2a6}.tile-size-large{background:#ffcf5c}.tile-name{font-size:10px;line-height:1.2;text-align:center;color:var(--text-dim);max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.catalog-tile:hover .tile-name{color:var(--text)}.part-tooltip{position:fixed;z-index:40;max-width:240px;padding:7px 9px;border:1px solid var(--panel-border);border-radius:2px;background:#0a0e16f5;pointer-events:none;box-shadow:0 6px 18px #0000008c}.tooltip-title{font-weight:600;margin-bottom:3px}.tooltip-line{color:var(--text-dim);font-size:11px;line-height:1.45}.button{padding:7px 12px;border-radius:2px;border:1px solid var(--panel-border);background:#ffffff0d;color:var(--text);font:inherit;cursor:pointer}.button:hover{border-color:var(--accent)}.launch-bar{position:sticky;bottom:-20px;margin:18px -14px -20px;padding:10px 14px 14px;background:#0c111af7;border-top:1px solid var(--panel-border);z-index:2}.launch-bar .launch-button{margin-top:0;padding:11px 0;font-size:15px}.button-primary{width:100%;margin-top:12px;background:linear-gradient(180deg,#6fd3ff47,#6fd3ff1f);border-color:var(--accent);color:#eaf7ff;font-weight:600;letter-spacing:.04em}.link-button{padding:2px 0;border:none;background:none;color:var(--accent);font:inherit;cursor:pointer;text-align:left}.link-button.danger{color:var(--bad);font-size:11px}.stat-value{font-family:var(--mono);font-variant-numeric:tabular-nums}.stat-warning{color:var(--accent-warm);font-size:11px;padding:6px 0}.editor-bar{position:absolute;left:332px;right:332px;top:10px;display:flex;align-items:center;gap:8px;padding:4px 5px;background:var(--panel);border:1px solid var(--panel-border);border-radius:3px;backdrop-filter:blur(6px);pointer-events:auto}.bar-group{display:flex;gap:2px;flex:none}.bar-button{position:relative;min-width:30px;height:30px;padding:0 5px;display:inline-flex;align-items:center;justify-content:center;gap:3px;background:transparent;border:1px solid transparent;border-radius:2px;color:var(--text-dim);font:inherit;cursor:pointer}.bar-button:hover:not(:disabled){color:var(--text);background:#ffffff0f;border-color:var(--panel-border)}.bar-button.active{color:var(--accent);background:#6fd3ff1f;border-color:#6fd3ff66}.bar-button:disabled{opacity:.3;cursor:default}.bar-button.small{min-width:26px;height:26px}.bar-button.danger:hover:not(:disabled){color:var(--bad);border-color:#ff8a8a80}.bar-symmetry-label{font-family:var(--mono);font-size:11px}.bar-spacer{flex:1}.rocket-name{width:100%;margin:-4px 0 6px -6px;padding:3px 6px;font:inherit;font-size:16px;font-weight:600;letter-spacing:.02em;text-overflow:ellipsis;color:var(--text);background:transparent;border:1px solid transparent;border-radius:2px}.rocket-name:hover{border-color:var(--panel-border)}.rocket-name:focus{outline:none;border-color:var(--accent);background:#0000004d}.bar-menu{position:absolute;top:calc(100% + 6px);right:0;width:300px;max-height:60vh;overflow-y:auto;padding:10px 12px;background:#0a0f17f7;border:1px solid var(--panel-border);border-radius:3px;box-shadow:0 8px 22px #00000080}.help-menu{width:min(380px,calc(100vw - 32px))}.bar-menu-title{margin-bottom:8px;font-size:11px;font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:var(--text-dim)}.save-list{display:flex;flex-direction:column;gap:2px}.save-row{display:flex;align-items:center;gap:4px}.save-load{flex:1;display:flex;justify-content:space-between;gap:8px;padding:6px 8px;font:inherit;text-align:left;color:var(--text);background:#ffffff08;border:1px solid transparent;border-radius:2px;cursor:pointer}.save-load:hover{border-color:var(--accent);background:#6fd3ff1a}.save-parts{color:var(--text-dim);font-size:11px}.save-delete{width:28px;height:28px;padding:0;display:flex;align-items:center;justify-content:center;background:transparent;border:1px solid transparent;border-radius:2px;color:var(--text-dim);cursor:pointer}.save-delete:hover{color:var(--bad);border-color:#ff8a8a66}.save-delete.armed{color:#fff;background:#ff8a8a59;border-color:var(--bad)}.rocket-summary{padding-bottom:12px;border-bottom:1px solid var(--panel-border)}.summary-dv{display:flex;align-items:baseline;gap:8px}.summary-dv-value{font-family:var(--mono);font-size:24px;font-variant-numeric:tabular-nums}.summary-dv-label{color:var(--text-dim);font-size:11px;letter-spacing:.08em;text-transform:uppercase}.summary-facts{margin-top:2px;font-size:12px;color:var(--text-dim)}.panel-head{display:flex;align-items:baseline;justify-content:space-between;margin:14px 0 8px}.panel-head .panel-title{margin:0}.editor-stages{display:flex;flex-direction:column;gap:4px;margin-bottom:8px}.editor-stage{display:grid;grid-template-columns:22px 1fr auto;align-items:center;gap:8px;padding:5px 8px 5px 5px;background:#ffffff08;border:1px solid var(--panel-border);border-radius:5px;cursor:grab}.editor-stage.first{border-color:#6fd3ff66}.editor-stage.first .stage-num{color:#06121b;background:var(--accent)}.editor-stage.has-selection{background:#6fd3ff14;border-color:#6fd3ff99}.editor-stage.drop{border-style:dashed;border-color:var(--accent)}.editor-stage-body{display:flex;flex-direction:column;gap:3px;min-width:0}.editor-stage-parts{display:flex;flex-wrap:wrap;gap:2px}.editor-stage-part{width:30px;height:30px;padding:2px;display:flex;align-items:center;justify-content:center;background:#0f182499;border:1px solid transparent;border-radius:3px;cursor:grab}.editor-stage-part img{max-width:100%;max-height:100%}.editor-stage-part:hover{border-color:var(--accent)}.editor-stage-part.selected{background:#6fd3ff40;border-color:var(--accent);box-shadow:0 0 0 1px var(--accent)}.editor-stage-part.loose{border-color:var(--bad);opacity:.7}.editor-stage-facts{overflow:hidden;font-family:var(--mono);font-size:10.5px;color:var(--text-dim);white-space:nowrap;text-overflow:ellipsis}.editor-stage-facts.warn{color:var(--accent-warm)}.editor-stage .stage-dv{font-size:12px}.inspector-card{position:absolute;left:50%;bottom:40px;transform:translate(-50%);width:min(380px,calc(100vw - 680px));min-width:260px;padding:8px 10px 10px;display:flex;flex-direction:column;gap:6px;background:var(--panel);border:1px solid rgba(111,211,255,.35);border-radius:3px;backdrop-filter:blur(6px);box-shadow:0 6px 18px #0006;pointer-events:auto}.inspector-head{display:flex;align-items:center;gap:2px}.inspector-title{flex:1;font-weight:600}.inspector-facts{font-size:11px;color:var(--text-dim)}.inspector-row{display:flex;align-items:center;flex-wrap:wrap;gap:6px}.inspector-row .row-label{min-width:52px}.inspector-card .stage-assign{margin:0}.inspector-card .hint:empty,.inspector-card .stat-warning:empty{display:none}.status-line{position:absolute;left:340px;right:340px;bottom:14px;text-align:center;color:var(--text-dim);font-size:12px;pointer-events:none}@media (max-width: 1150px){.panel{width:280px}.editor-bar{left:292px;right:292px}.status-line{left:300px;right:300px}.inspector-card{width:min(380px,calc(100vw - 600px))}.net-panel{left:292px;width:min(300px,calc(50vw - 300px))}.chat-panel{right:292px;width:min(300px,calc(50vw - 300px))}}@media (max-width: 900px){.panel{width:224px;padding:10px 10px 16px}.catalog-grid{grid-template-columns:repeat(auto-fill,minmax(64px,1fr))}.editor-bar{left:232px;right:232px}.status-line{left:236px;right:236px}.inspector-card{min-width:0;width:calc(100vw - 480px)}.net-panel{left:232px;width:min(300px,calc(50vw - 240px));min-width:0}.chat-panel{right:232px;width:min(300px,calc(50vw - 240px));min-width:0}.bar-button{min-width:26px;padding:0 3px}.launch-bar{bottom:-16px;margin:14px -10px -16px;padding:8px 10px 10px}}.hud{--ui: 1;--glass: rgba(8, 12, 19, .52);--glass-strong: rgba(8, 12, 19, .72);--glass-line: rgba(160, 195, 235, .14);position:absolute;inset:0;pointer-events:none;text-shadow:0 1px 2px rgba(0,0,0,.7)}.hud-panel{position:absolute;padding:6px 9px;background:var(--glass);border:1px solid var(--glass-line);border-radius:5px;backdrop-filter:blur(6px);pointer-events:auto}.hud-caption{color:var(--text-dim);font-size:9px;letter-spacing:.14em;text-transform:uppercase}.hud-clock{left:calc(14px * var(--ui));top:calc(12px * var(--ui));padding:5px 8px;transform:scale(var(--ui));transform-origin:top left}.clock-time{font-family:var(--mono);font-size:13px;letter-spacing:.05em;font-variant-numeric:tabular-nums}.clock-warp{display:flex;align-items:center;margin-top:3px}.warp-button{width:15px;height:18px;padding:0;border:0;background:transparent;color:#dbe4f038;cursor:pointer;display:flex;align-items:center;justify-content:center}.warp-button svg{width:12px;height:12px}.warp-button:hover{color:var(--text)}.warp-step.lit{color:var(--accent)}.warp-step.rails.lit{color:var(--accent-warm)}.warp-pause{margin-right:4px;color:var(--text-dim)}.warp-pause.active{color:var(--accent-warm)}.warp-level{margin-left:6px;min-width:34px;font-family:var(--mono);font-size:10.5px;color:var(--text-dim)}.clock-note{margin-top:4px;max-width:210px;font-size:11px;line-height:1.3;color:var(--accent-warm)}.hud-altimeter{position:absolute;left:50%;top:calc(8px * var(--ui));transform:translate(-50%) scale(var(--ui));transform-origin:top center;display:flex;flex-direction:column;align-items:center;text-align:center;pointer-events:none;text-shadow:0 1px 3px rgba(0,0,0,.9)}.altitude-value{font-family:var(--mono);font-size:24px;line-height:1.1;font-variant-numeric:tabular-nums}.altitude-sub{min-height:13px;font-family:var(--mono);font-size:10.5px;color:var(--text-dim)}.altitude-sub.warn{color:var(--accent-warm)}.altitude-sub.bad{color:var(--bad)}.hud-messages{margin-top:8px;display:flex;flex-direction:column;align-items:center;gap:3px}.hud-message{max-width:70vw;padding:2px 9px;font-size:12px;color:var(--text);background:var(--glass);border-radius:3px;animation:hud-message-fade 6s linear forwards}@keyframes hud-message-fade{0%{opacity:0;transform:translateY(-4px)}4%{opacity:1;transform:none}75%{opacity:1}to{opacity:0}}.hud-menu{position:absolute;right:calc(14px * var(--ui));top:calc(12px * var(--ui));display:flex;gap:4px;transform:scale(var(--ui));transform-origin:top right;pointer-events:auto}.menu-button{width:30px;height:30px;padding:0;display:flex;align-items:center;justify-content:center;background:var(--glass);border:1px solid var(--glass-line);border-radius:5px;color:var(--text-dim);cursor:pointer;backdrop-filter:blur(6px)}.menu-button svg{width:17px;height:17px}.menu-button:hover{color:var(--text);border-color:#6fd3ff80}.menu-button.active{color:var(--accent);border-color:#6fd3ff8c;background:#142d41b3}.hud-details{right:calc(14px * var(--ui));top:calc(50px * var(--ui));width:222px;transform:scale(var(--ui));transform-origin:top right}.details-grid{display:grid;grid-template-columns:1fr 1fr;gap:5px 12px;margin-top:5px}.details-cell{display:flex;flex-direction:column;min-width:0}.details-value{font-family:var(--mono);font-size:11.5px;font-variant-numeric:tabular-nums}.hud-stages{position:absolute;left:calc(14px * var(--ui));bottom:calc(14px * var(--ui));width:178px;display:flex;flex-direction:column;gap:4px;transform:scale(var(--ui));transform-origin:bottom left;pointer-events:auto}.stage-stack{display:flex;flex-direction:column;gap:3px}.stage-card{display:grid;grid-template-columns:22px 1fr auto;align-items:center;gap:6px;padding:3px 7px 3px 3px;background:var(--glass);border:1px solid transparent;border-radius:5px;backdrop-filter:blur(6px)}.stage-card.next{background:#102436a8;border-color:#6fd3ff73}.stage-card.active{border-color:#ffcf5c59}.stage-num{width:22px;height:22px;display:flex;align-items:center;justify-content:center;border-radius:3px;font-family:var(--mono);font-size:12px;font-weight:700;color:var(--text-dim);background:#ffffff12;text-shadow:none}.stage-card.next .stage-num{color:#06121b;background:var(--accent)}.stage-card.active .stage-num{color:#1a1204;background:var(--accent-warm)}.stage-icons{display:flex;flex-wrap:wrap;gap:1px}.stage-part{width:24px;height:24px;padding:1px;display:flex;align-items:center;justify-content:center;border:0;border-radius:3px;background:transparent;cursor:pointer}.stage-part img{max-width:100%;max-height:100%}.stage-part{position:relative}.stage-count{position:absolute;right:-3px;bottom:-3px;padding:0 2px;font-family:var(--mono);font-size:9px;line-height:11px;color:var(--text);background:#080c13e0;border-radius:2px;text-shadow:none}.stage-item{display:flex;align-items:center;gap:2px}.stage-gauge{position:relative;width:4px;height:22px;border-radius:2px;background:#ffffff1a;overflow:hidden}.stage-gauge-fill{position:absolute;left:0;right:0;bottom:0;height:0;background:#8ef2a6;transition:height 90ms linear}.stage-gauge.solid .stage-gauge-fill{background:#ffb45c}.stage-part:hover{background:#6fd3ff38}.stage-part.burning img{filter:drop-shadow(0 0 3px rgba(255,190,90,.95))}.stage-part.deployed img{filter:drop-shadow(0 0 2px rgba(142,242,166,.9))}.stage-part.spent img{opacity:.35;filter:grayscale(1)}.stage-part.gone img{opacity:.3;filter:grayscale(1)}.stage-dv{min-width:34px;font-family:var(--mono);font-size:11.5px;text-align:right;color:var(--text);white-space:nowrap}.stage-dv:not(:empty):after{content:" m/s";font-size:8.5px;color:var(--text-dim)}.stage-card.pending .stage-dv{color:var(--text-dim)}.stage-more{align-self:flex-start;padding:2px 8px;font:inherit;font-size:10px;color:var(--text-dim);background:var(--glass);border:0;border-radius:3px;cursor:pointer}.stage-more:hover{color:var(--text)}.stage-empty{padding:4px 6px;font-size:11px;color:var(--text-dim)}.stages-head{display:flex;justify-content:space-between;gap:8px;padding:0 4px;font-size:10px;color:var(--text-dim)}.stages-title{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;letter-spacing:.12em;text-transform:uppercase}.stages-head.hinting .stages-title{letter-spacing:0;text-transform:none;font-size:11px;color:var(--text)}.stages-total{font-family:var(--mono);white-space:nowrap}.cockpit-speed{position:absolute;left:50%;bottom:calc(146px * var(--ui));transform:translate(-50%) scale(var(--ui));transform-origin:bottom center;min-width:128px;display:flex;flex-direction:column;align-items:center;padding:1px 10px 3px;background:var(--glass-strong);border:1px solid var(--glass-line);border-radius:5px;color:var(--text);font:inherit;cursor:pointer;backdrop-filter:blur(6px);pointer-events:auto}.cockpit-speed:hover{border-color:#6fd3ff80}.speed-mode{font-size:9px;letter-spacing:.16em;text-transform:uppercase;color:var(--accent)}.cockpit-speed[data-mode=surface] .speed-mode{color:var(--good)}.cockpit-speed[data-mode=target] .speed-mode{color:#d08cff}.speed-line{display:flex;align-items:baseline;gap:6px}.speed-value{font-family:var(--mono);font-size:15px;line-height:1.15;font-variant-numeric:tabular-nums}.speed-sub{font-family:var(--mono);font-size:10px;color:var(--text-dim)}.speed-sub:empty{display:none}.cockpit-sas{position:absolute;right:calc(50% + 94px * var(--ui));bottom:calc(14px * var(--ui));transform:scale(var(--ui));transform-origin:bottom right;display:flex;flex-direction:column;gap:3px;padding:4px;background:var(--glass);border-radius:5px;backdrop-filter:blur(6px);pointer-events:auto}.sas-toggle{height:18px;font:inherit;font-size:10px;font-weight:700;letter-spacing:.14em;color:var(--text-dim);background:#ffffff0f;border:0;border-radius:3px;cursor:pointer;text-shadow:none}.sas-toggle.active{color:#06121b;background:#8ef2a6e6}.sas-modes{display:grid;grid-template-columns:repeat(2,26px);gap:2px}.sas-mode{width:26px;height:26px;padding:0;display:flex;align-items:center;justify-content:center;background:transparent;border:1px solid transparent;border-radius:3px;cursor:pointer}.sas-mode svg{width:18px;height:18px}.sas-modes.off .sas-mode{opacity:.45}.sas-mode:hover:not(:disabled){background:#6fd3ff29}.sas-mode.active{background:#dbe4f02e;border-color:#dbe4f08c}.sas-modes .sas-mode:disabled{opacity:.18;cursor:default}.hud-info{position:absolute;left:calc(50% + 80px * var(--ui));bottom:calc(14px * var(--ui));width:214px;display:flex;flex-direction:column;gap:4px;transform:scale(var(--ui));transform-origin:bottom left;pointer-events:auto}.info-block{padding:3px 8px 4px;display:flex;flex-direction:column;background:var(--glass);border-radius:5px;backdrop-filter:blur(6px)}.info-row{display:grid;grid-template-columns:auto 1fr auto 16px;gap:6px;align-items:center;min-height:17px}.info-row.dim .info-value{color:var(--text-dim)}.info-row.go .info-value{color:var(--good)}.info-row.late .info-value{color:var(--bad)}.info-label{font-size:9.5px;letter-spacing:.08em;text-transform:uppercase;color:var(--text-dim);white-space:nowrap}.info-encounter .info-label{color:#f0dc6e}.info-value{font-family:var(--mono);font-size:12px;text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}.info-time{min-width:50px;font-family:var(--mono);font-size:10px;text-align:right;color:var(--accent);white-space:nowrap}.info-icon{width:16px;height:16px;padding:0;border:0;border-radius:2px;background:transparent;color:var(--text-dim);cursor:pointer;display:flex;align-items:center;justify-content:center}.info-icon svg{width:12px;height:12px}.info-icon:hover{color:var(--accent);background:#6fd3ff24}.info-head{display:flex;align-items:center;gap:3px;margin:1px 0}.info-title{flex:1;font-size:9px;letter-spacing:.14em;text-transform:uppercase;color:var(--accent)}.info-target .info-title{color:#d08cff}.info-node .info-title{color:#ffa24a}.node-progress{height:3px;margin:2px 0 3px}.node-inputs{display:flex;gap:8px;margin:3px 0 1px}.node-field{flex:1;display:flex;align-items:center;gap:5px}.node-input{width:100%;min-width:0;padding:1px 5px;font-family:var(--mono);font-size:11px;text-align:right;color:var(--text);background:#00000059;border:1px solid var(--glass-line);border-radius:3px;user-select:text}.node-input:focus{outline:none;border-color:var(--accent)}.info-heat{flex-direction:row;align-items:center;gap:8px;padding:4px 8px}.info-heat .bar{flex:1;height:5px}.hud.cockpit-collapsed .cockpit-speed,.hud.cockpit-collapsed .cockpit-sas{display:none}.hud.cockpit-collapsed .hud-info{left:auto;right:calc(14px * var(--ui));transform-origin:bottom right}.navball-tab{position:absolute;left:50%;bottom:0;transform:translate(-50%) scale(var(--ui));transform-origin:bottom center;padding:2px 14px 3px;font:inherit;font-size:9.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--text-dim);background:var(--glass);border:1px solid var(--glass-line);border-bottom:none;border-radius:5px 5px 0 0;cursor:pointer;pointer-events:auto}.navball-tab:hover,.navball-tab.active{color:var(--accent)}.part-menu{position:absolute;width:236px;padding:7px 10px 9px;display:flex;flex-direction:column;gap:4px;background:#0a0f17e6;border:1px solid var(--glass-line);border-radius:5px;backdrop-filter:blur(6px);box-shadow:0 6px 18px #00000073;pointer-events:auto;text-shadow:none}.part-menu.appear,.popover-field{display:flex;gap:6px;margin-top:8px}.popover-input{flex:1;min-width:0;padding:4px 7px;font:inherit;font-size:12px;color:#e6eef8;background:#ffffff0f;border:1px solid rgba(111,211,255,.35);border-radius:4px;outline:none}.popover-field .button{flex:none;width:auto;margin:0;padding:4px 9px;font-size:12px}.popover-input:focus{border-color:#6fd3ffcc}.map-popover.appear{animation:menu-in .14s ease-out}@keyframes menu-in{0%{opacity:0;transform:translateY(4px) scale(.97)}}.part-menu-head{display:flex;align-items:center;gap:4px}.part-menu-title{flex:1;font-weight:600}.part-menu-sub{margin-top:-3px;font-size:9.5px;letter-spacing:.12em;text-transform:uppercase;color:var(--text-dim)}.part-menu-state{display:flex;align-items:center;gap:6px;margin:2px 0 1px;font-size:11.5px;color:var(--text)}.part-menu-state:before{content:"";width:7px;height:7px;flex:none;border-radius:50%;background:currentColor;box-shadow:0 0 6px currentColor}.part-menu-state[data-tone=dim]{color:var(--text-dim)}.part-menu-state[data-tone=dim]:before{box-shadow:none;opacity:.6}.part-menu-state[data-tone=warm]{color:var(--accent-warm)}.part-menu-state[data-tone=good]{color:var(--good)}.part-menu-state[data-tone=warn]{color:#ffb45c}.part-menu-state[data-tone=bad]{color:var(--bad)}.part-menu-rows{display:flex;flex-direction:column;gap:3px;padding-top:5px;border-top:1px solid rgba(110,145,190,.16)}.part-menu-rows:empty{display:none}.part-menu-row{display:flex;align-items:center;gap:7px;min-height:15px}.part-menu-key{flex:none;width:70px;font-size:10.5px;color:var(--text-dim)}.part-menu-value{flex:1;font-family:var(--mono);font-size:10.5px;color:var(--text);text-align:right;white-space:nowrap}.part-menu-row[data-tone=dim] .part-menu-value{color:var(--text-dim)}.part-menu-row[data-tone=good] .part-menu-value{color:var(--good)}.part-menu-row[data-tone=warn] .part-menu-value{color:#ffb45c}.part-menu-row[data-tone=bad] .part-menu-value{color:var(--bad)}.part-menu-bar+.part-menu-value{flex:none;min-width:88px}.part-menu-bar{flex:1;height:5px;border-radius:3px;background:#ffffff1a;overflow:hidden}.part-menu-bar-fill{display:block;height:100%;width:0;background:#8ef2a6;transition:width 90ms linear}.part-menu-bar.solid .part-menu-bar-fill{background:#ffb45c}.part-menu-bar.thrust .part-menu-bar-fill{background:var(--accent-warm)}.part-menu-bar.heat .part-menu-bar-fill{background:linear-gradient(90deg,#ffb45c,#ff6a4a)}.part-menu-leader{position:absolute;height:2px;margin-top:-1px;transform-origin:0 50%;background:var(--accent);box-shadow:0 0 0 1px #05070d73;pointer-events:none}.part-menu-leader:after{content:"";position:absolute;right:-4px;top:-3px;width:8px;height:8px;border-radius:50%;background:var(--accent);box-shadow:0 0 0 1px #05070d8c}.part-menu-actions{display:flex;flex-direction:column;gap:4px;margin-top:3px}.part-menu-actions:empty{display:none}.part-menu-action{width:100%;padding:5px 9px;font-size:12px}.button.danger{color:var(--bad);border-color:#ff8a8a73}.button.danger:hover{background:#ff8a8a24;border-color:var(--bad)}.map-popover{position:absolute;min-width:190px;max-width:260px;padding:9px 11px 10px;background:#0a0f17f0;border:1px solid rgba(111,211,255,.35);border-radius:5px;box-shadow:0 8px 22px #00000080;pointer-events:auto;text-shadow:none}.popover-title{margin-bottom:3px;font-weight:600;letter-spacing:.02em}.popover-line{font-size:12px;line-height:1.4;color:var(--text-dim)}.popover-actions{display:flex;flex-direction:column;gap:4px;margin-top:8px}.popover-actions .button{width:100%;margin:0;padding:5px 9px;font-size:12px;text-align:left}.popover-stepper{display:flex;align-items:center;gap:4px;margin-top:7px;font-size:12px}.popover-stepper-label{flex:1;color:var(--text-dim)}.popover-stepper-value{min-width:24px;text-align:center;font-family:var(--mono);font-weight:600;color:var(--text)}.popover-stepper .popover-step{width:26px;height:24px;margin:0;padding:0;font-size:15px;line-height:1;text-align:center}.popover-stepper .popover-step:disabled{opacity:.35;cursor:default}.bar{position:relative;height:10px;border:1px solid var(--panel-border);background:#ffffff0d;overflow:hidden}.bar:after{content:"";position:absolute;inset:0;background-image:repeating-linear-gradient(90deg,transparent 0 9px,rgba(5,7,13,.55) 9px 10px);pointer-events:none}.bar-fill{height:100%;width:0;transition:width 90ms linear}.bar-fill.throttle{background:linear-gradient(90deg,#6fd3ff,#b6ecff)}.bar-fill.liquid{background:linear-gradient(90deg,#8ef2a6,#d6ffd9)}.bar-fill.solid{background:linear-gradient(90deg,#ffb45c,#ffe0a8)}.bar-fill.heat{background:linear-gradient(90deg,#ff9d5c,#ffd76a)}.bar-fill.heat.critical{background:linear-gradient(90deg,#ff5c5c,#ff9d5c)}.pause-menu{display:flex;flex-direction:column;gap:8px;min-width:300px;max-height:80vh;overflow-y:auto;box-shadow:0 0 0 100vmax #03050a8c}.pause-keys-toggle{align-self:center;margin-top:4px;font-size:12px}.pause-keys{border-top:1px solid var(--panel-border);padding-top:8px;margin-top:4px;text-align:left}.mission-result{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);pointer-events:auto;max-width:calc(100vw - 24px);padding:24px 32px;text-align:center;background:#0c111af0;border:1px solid var(--bad);border-radius:5px;min-width:min(320px,calc(100vw - 24px));text-shadow:none}.mission-result h2{margin:0 0 8px;font-size:18px}.mission-result-text{color:var(--text-dim);margin-bottom:8px}.mission-result.success{border-color:var(--good, #6fdc8c)}.pause-menu.mission-result{border-color:var(--panel-border)}.mission-facts{display:grid;gap:3px;margin:10px 0 6px;font-size:13px}.mission-fact{display:flex;justify-content:space-between;gap:24px}.mission-fact-label{color:var(--text-dim)}.mission-fact-value{font-family:var(--mono)}.mission-buttons{display:grid;gap:6px;margin-top:10px}.mission-buttons .button-primary{margin-top:0}.button-quiet{background:transparent;border-color:transparent;color:var(--text-dim)}.launch-hint{position:absolute;left:50%;bottom:calc(192px * var(--ui));transform:translate(-50%) scale(var(--ui));transform-origin:bottom center;display:flex;flex-wrap:wrap;justify-content:center;align-items:center;gap:5px 12px;width:max-content;max-width:min(480px,calc((100vw - 32px) / var(--ui)));padding:6px 12px;background:var(--glass-strong);border:1px solid var(--glass-line);border-radius:5px;font-size:12px;color:var(--text-dim);pointer-events:none;animation:launch-hint-in .4s ease-out}.launch-hint-text{width:100%;text-align:center;color:var(--text);font-weight:600;letter-spacing:.04em}.launch-hint-item{display:inline-flex;align-items:center;gap:5px}.launch-hint kbd{padding:0 5px;border:1px solid var(--panel-border);border-bottom-width:2px;border-radius:3px;font-family:var(--mono);font-size:11px;color:var(--text);background:#ffffff0d}@keyframes launch-hint-in{0%{opacity:0}}@media (max-width: 600px){.hud-stages{bottom:calc(192px * var(--ui))}.hud-info{left:auto;right:calc(10px * var(--ui));bottom:calc(192px * var(--ui));transform-origin:bottom right}.hud-altimeter{top:calc(66px * var(--ui))}.hud.cockpit-collapsed .hud-info{bottom:calc(14px * var(--ui))}.launch-hint{bottom:calc(260px * var(--ui))}}.debug-overlay{position:absolute;right:16px;bottom:16px;padding:10px 12px;background:#000000c7;border:1px solid var(--panel-border);border-radius:2px;font-family:var(--mono);font-size:11px;min-width:250px}.debug-row{display:flex;justify-content:space-between;gap:14px}.debug-key{color:var(--text-dim)}.fatal-error{position:absolute;inset:40px;padding:20px;background:#140000e6;border:1px solid var(--bad);color:var(--bad);font-family:var(--mono);white-space:pre-wrap;overflow:auto}.button:disabled{opacity:.4;cursor:default;border-color:var(--panel-border)}.stages-block{margin-top:2px}.hint{color:var(--text-dim);font-size:11px;line-height:1.45}.stat-warning{display:flex;align-items:baseline;justify-content:space-between;gap:8px}.stage-assign{display:flex;flex-wrap:wrap;align-items:center;gap:4px;margin-bottom:8px}.stage-assign .chip{padding:2px 8px;font-size:11px}.help-row{display:grid;grid-template-columns:96px 1fr;gap:8px;font-size:11px;line-height:1.5;color:var(--text-dim);padding:1px 0}.help-keys{color:var(--text);font-family:var(--mono);font-size:10px}.link-button.danger.armed{color:#fff;background:#ff8a8a40;border-radius:2px;padding:2px 6px}.net-panel{position:absolute;left:334px;bottom:14px;width:min(300px,calc(50vw - 342px));min-width:220px;max-height:calc(100% - 90px);display:flex;flex-direction:column;background:var(--panel);border:1px solid var(--panel-border);border-radius:4px;backdrop-filter:blur(6px);pointer-events:auto;font-size:12px}.net-panel .net-body{min-height:0;overflow-y:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch;touch-action:pan-y;padding:4px 12px 12px}.net-panel:not(.in-flight) .net-toggle{flex:none;width:100%;margin:0;padding:8px 12px;border:none;border-radius:4px 4px 0 0;background:none;color:var(--text-dim);font-size:11px;letter-spacing:.12em;text-transform:uppercase;font-weight:600;text-align:left}.net-panel:not(.in-flight).collapsed .net-toggle{border-radius:4px}.net-panel:not(.in-flight) .net-toggle.has-others{color:var(--accent-warm)}.net-panel:not(.in-flight) .net-toggle:hover{color:var(--text);background:#ffffff0a}.net-panel:not(.in-flight) .net-head .panel-title{display:none}.net-panel.collapsed:not(.in-flight){width:auto;min-width:0}.net-panel.in-flight{inset:50% 14px auto auto;transform:translateY(-50%);width:auto;min-width:0;max-width:300px;padding:0;background:none;border:none;backdrop-filter:none}.net-panel.in-flight .net-body{margin-top:4px;padding:10px 12px 12px;background:#080c13d1;border:1px solid var(--panel-border);border-radius:5px;width:280px}.net-toggle{display:block;margin-left:auto;padding:4px 10px;border:1px solid var(--panel-border);border-radius:12px;background:#080c1399;color:var(--text-dim);font:inherit;cursor:pointer}.net-toggle.has-others{color:var(--accent-warm);border-color:#ffcf5c80}.net-head{display:flex;align-items:baseline;justify-content:space-between;gap:8px}.net-head .panel-title{margin:0}.net-status{color:var(--good);font-size:11px}.net-status.bad{color:var(--text-dim)}.net-name{display:flex;align-items:center;gap:8px;margin-top:8px}.net-world{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-top:8px}.world-status{min-height:16px;color:var(--text-dim);font-size:12px}.world-status.bad{color:var(--bad)}.world-solo{padding:10px}.net-label{color:var(--text-dim);white-space:nowrap}.net-name-input{flex:1;min-width:0;padding:4px 6px;border:1px solid var(--panel-border);border-radius:2px;background:#ffffff0a;color:var(--text);font:inherit}.net-section{margin:12px 0 4px;color:var(--text-dim);font-size:10px;letter-spacing:.12em;text-transform:uppercase}.net-list{display:flex;flex-direction:column;gap:4px}.net-row{display:flex;align-items:center;gap:6px;padding:5px 6px;border-radius:3px;background:#ffffff08}.net-row-text{flex:1;min-width:0}.net-row-title{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.net-row-sub{color:var(--text-dim);font-size:11px}.net-action{padding:3px 7px;font-size:11px;white-space:nowrap}.net-empty{color:var(--text-dim);font-size:11px}.net-toggle,.chat-toggle{cursor:grab}.net-panel.dragging,.chat-panel.dragging{opacity:.85;z-index:50}.net-panel.dragging .net-toggle,.chat-panel.dragging .chat-toggle{cursor:grabbing}.chat-panel{position:absolute;right:334px;bottom:14px;width:min(300px,calc(50vw - 342px));min-width:220px;max-height:calc(100% - 90px);display:flex;flex-direction:column;background:var(--panel);border:1px solid var(--panel-border);border-radius:4px;backdrop-filter:blur(6px);pointer-events:auto;font-size:12px}.chat-panel.collapsed{width:auto;min-width:0}.chat-toggle{flex:none;width:100%;margin:0;padding:8px 12px;border:none;border-radius:4px;background:none;color:var(--text-dim);font:inherit;font-size:11px;letter-spacing:.12em;text-transform:uppercase;font-weight:600;text-align:left;cursor:pointer}.chat-toggle:hover{color:var(--text);background:#ffffff0a}.chat-toggle.has-unread{color:var(--accent-warm)}.chat-body{display:flex;flex-direction:column;min-height:0;padding:0 12px 12px}.chat-list{flex:1 1 auto;min-height:60px;max-height:220px;overflow-y:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch;touch-action:pan-y;display:flex;flex-direction:column;gap:3px;user-select:text;-webkit-user-select:text}.chat-line{line-height:1.35;overflow-wrap:anywhere}.chat-time{margin-right:5px;color:var(--text-dim);font-family:var(--mono);font-size:10px}.chat-name{margin-right:4px;color:var(--accent-warm);font-weight:600}.chat-name.me{color:var(--accent)}.chat-empty{color:var(--text-dim);font-size:11px}.chat-form{display:flex;gap:6px;margin-top:8px}.chat-input{flex:1;min-width:0;padding:5px 7px;border:1px solid var(--panel-border);border-radius:2px;background:#ffffff0a;color:var(--text);font:inherit;user-select:text;-webkit-user-select:text}.chat-input:focus{outline:none;border-color:var(--accent)}.chat-send{padding:4px 9px;font-size:11px}.chat-send:disabled{opacity:.5;cursor:default}.chat-panel.in-flight{inset:120px auto auto 14px;width:280px;min-width:0;max-height:max(80px,calc(100% - 400px));background:#080c13d1;border-radius:5px}.chat-panel.in-flight.collapsed{width:auto;background:#080c1399;border-radius:12px}.chat-panel.in-flight .chat-toggle{padding:4px 10px;font-size:12px;letter-spacing:0;text-transform:none;font-weight:400}.chat-panel.in-flight .chat-list{max-height:none}.spectator-banner{left:50%;top:calc(12px * var(--ui));transform:translate(-50%);display:flex;align-items:center;gap:10px;z-index:3}.spectator-text{color:var(--accent-warm);font-size:13px;white-space:nowrap}.hud:not(.spectator-only) .spectator-banner{top:calc(84px * var(--ui))}.hud.spectator-only .hud-altimeter,.hud.spectator-only .hud-info,.hud.spectator-only .hud-stages,.hud.spectator-only .hud-details,.hud.spectator-only .cockpit-sas,.hud.spectator-only .cockpit-speed,.hud.spectator-only .navball-tab,.hud.spectator-only .launch-hint{display:none!important}.warp-vote{position:absolute;left:50%;top:64px;transform:translate(-50%);display:flex;align-items:center;gap:8px;padding:8px 12px;background:#281e08eb;border:1px solid rgba(255,207,92,.6);border-radius:5px;pointer-events:auto;z-index:20;font-size:13px}.warp-vote:after{content:attr(data-left);color:var(--text-dim);font-size:11px;min-width:28px;text-align:right}.warp-vote-text{color:var(--accent-warm);white-space:nowrap}.warp-vote-detail{color:var(--text-dim);font-size:11px}.bar-fill.power{background:linear-gradient(90deg,#3a8fd8,#6fd3ff)}.bar-fill.power.charging{background:linear-gradient(90deg,#d8b23a,#ffe07a)}.bar-fill.power.critical{background:linear-gradient(90deg,#c8453a,#ff8a8a)}.device-picker{position:fixed;inset:0;z-index:1000;display:flex;align-items:center;justify-content:center;padding:16px;background:#05070df0}.device-box{width:min(480px,100%);padding:24px;text-align:center;background:var(--panel);border:1px solid var(--panel-border);border-radius:6px}.device-box h2{margin:0 0 16px;font-size:20px}.device-choices{display:flex;flex-wrap:wrap;gap:12px}.device-choice{flex:1 1 120px;display:flex;flex-direction:column;gap:6px;padding:18px 12px;border-radius:5px}.device-choice.button-primary{width:auto;margin-top:0;border-color:var(--accent)}.device-name{font-size:22px;font-weight:700}.device-sub{color:var(--text-dim);font-size:12px}.device-note{margin-top:14px;color:var(--text-dim);font-size:12px}.touch-controls,.touch-only{display:none!important}.touch-mode .touch-controls{display:block!important}.touch-mode .touch-only{display:inline-flex!important}.touch-mode .pc-only{display:none!important}.touch-mode body{touch-action:manipulation;-webkit-touch-callout:none;-webkit-user-select:none}.touch-mode #app>canvas{touch-action:none}.touch-controls.no-craft{display:none!important}.touch-arrow,.touch-stage,.touch-throttle{pointer-events:auto;touch-action:none}.touch-arrow{position:absolute;bottom:calc(18px * var(--ui));width:calc(64px * var(--ui));height:calc(64px * var(--ui));border-radius:50%;border:1px solid var(--panel-border);background:var(--panel);color:var(--text);font-size:calc(26px * var(--ui));line-height:1}.touch-left{right:calc(50% + 86px * var(--ui))}.touch-right{left:calc(50% + 86px * var(--ui))}.touch-arrow.held,.touch-stage.held{border-color:var(--accent);background:#6fd3ff40}.touch-mode .cockpit-sas{right:calc(50% + 160px * var(--ui))}.touch-mode .hud-info{left:calc(50% + 160px * var(--ui))}.touch-side{position:absolute;right:calc(16px * var(--ui));bottom:calc(18px * var(--ui));display:flex;flex-direction:column;align-items:center;gap:calc(8px * var(--ui))}.touch-stage{width:calc(72px * var(--ui));height:calc(52px * var(--ui));border-radius:6px;border:1px solid var(--accent-warm);background:var(--panel);color:var(--accent-warm);font:inherit;font-weight:700;font-size:calc(14px * var(--ui));letter-spacing:.06em}.touch-throttle-value{font-family:var(--mono);font-size:calc(13px * var(--ui));color:var(--text);text-shadow:0 1px 2px #000}.touch-throttle{position:relative;width:calc(56px * var(--ui));height:calc(220px * var(--ui));max-height:40vh;border-radius:8px;border:1px solid var(--panel-border);background:var(--panel);overflow:hidden}.touch-throttle-fill{position:absolute;left:0;right:0;bottom:0;height:0;background:linear-gradient(to top,#8ef2a68c,#ffcf5ca6)}.touch-throttle-knob{position:absolute;left:4px;right:4px;bottom:0;height:6px;margin-bottom:-3px;border-radius:3px;background:var(--text);box-shadow:0 0 4px #0009}.help-device{width:100%;margin-top:10px}.touch-mode .catalog-tile{touch-action:pan-y}.touch-mode .net-panel:not(.in-flight),.touch-mode .chat-panel:not(.in-flight){top:58px;bottom:auto;max-height:calc(100% - 72px)}.touch-mode .net-toggle{min-height:40px;padding-top:10px;padding-bottom:10px}.touch-mode .net-row{flex-wrap:wrap;padding:8px;gap:8px}.touch-mode .net-row-text{flex:1 1 140px}.touch-mode .net-row-title{font-size:13px}.touch-mode .net-row-sub{font-size:12px}.touch-mode .net-action{min-height:38px;padding:8px 12px;font-size:13px}.touch-mode .chat-input{padding:8px;font-size:16px}.touch-mode .chat-toggle{min-height:40px}.touch-mode .chat-send{min-height:38px;padding:8px 12px;font-size:13px}.touch-mode .chat-line{font-size:13px}.touch-mode .net-name-input{padding:8px;font-size:16px}.touch-mode .net-list{gap:6px}.touch-mode .part-tooltip{display:none!important}.orientation-hint{position:fixed;left:50%;top:calc(env(safe-area-inset-top,0px) + 56px);transform:translate(-50%);z-index:900;display:none;align-items:center;gap:10px;max-width:calc(100vw - 32px);padding:10px 14px;background:var(--panel);border:1px solid var(--accent-warm);border-radius:6px;color:var(--text)}.orientation-hint.show{display:flex}.name-box{display:flex;flex-direction:column;gap:12px}.name-box h2{margin-bottom:4px}.name-prompt-input{padding:10px 12px;border:1px solid var(--panel-border);border-radius:4px;background:#ffffff0a;color:var(--text);font:inherit;font-size:16px;text-align:center;user-select:text;-webkit-user-select:text}.name-prompt-input:focus{outline:none;border-color:var(--accent)}.name-prompt-go{padding:12px;font-size:15px}.name-box .device-note{margin-top:0}.no-signal{position:absolute;inset:0;display:none;flex-direction:column;align-items:center;justify-content:center;gap:8px;padding:16px;pointer-events:none;text-align:center;background:repeating-linear-gradient(0deg,rgba(255,255,255,.035) 0 1px,transparent 1px 3px),radial-gradient(ellipse at center,#10151d,#05070b 75%);animation:no-signal-roll .9s steps(6) infinite}.no-signal.show{display:flex}.no-signal-title{color:#ff8a7a;font-family:var(--mono);font-size:28px;font-weight:700;letter-spacing:.3em;text-transform:uppercase;animation:no-signal-blink 1.6s ease-in-out infinite}.no-signal-sub{max-width:420px;color:var(--text-dim);font-size:13px}@keyframes no-signal-roll{0%{background-position:0 0,0 0}to{background-position:0 6px,0 0}}@keyframes no-signal-blink{50%{opacity:.45}}.hud.signal-lost .hud-altimeter,.hud.signal-lost .cockpit-speed,.hud.signal-lost .hud-details,.hud.signal-lost .info-orbit,.hud.signal-lost .info-target,.hud.signal-lost .info-node{visibility:hidden}.info-signal{flex-direction:row;align-items:center;justify-content:space-between;gap:10px}.info-signal .info-value{color:var(--good)}.info-signal.lost .info-value{color:var(--bad)}.compact-controls{display:none}@media (max-width: 760px),(max-height: 520px){.compact-controls{display:contents}.drawer-toggle,.compact-launch{position:absolute;z-index:5;pointer-events:auto}.drawer-toggle{top:62px;min-height:40px;padding:8px 16px;border-radius:6px;background:var(--panel);font-weight:600;backdrop-filter:blur(6px)}.drawer-toggle.left{left:8px}.drawer-toggle.right{right:8px}.drawer-toggle.active{border-color:var(--accent);color:var(--accent)}.compact-launch{right:8px;bottom:8px;width:auto;margin:0;padding:12px 24px;font-size:16px}.build-ui .panel{top:110px;bottom:0;width:min(300px,86vw);z-index:4;transition:transform .2s ease}.build-ui .panel-left{transform:translate(-105%)}.build-ui .panel-right{transform:translate(105%)}.build-ui.show-catalog .panel-left,.build-ui.show-stages .panel-right{transform:none}.build-ui .launch-bar{display:none}.editor-bar{left:8px;right:8px;top:8px;overflow-x:auto;scrollbar-width:none}.status-line{left:8px;right:8px;bottom:64px}.inspector-card{left:8px;right:8px;bottom:64px;width:auto;min-width:0;transform:none}.net-panel:not(.in-flight),.chat-panel:not(.in-flight){top:auto!important;right:auto!important;left:8px!important;width:min(300px,calc(100vw - 16px))!important;max-height:60%}.net-panel:not(.in-flight){bottom:8px!important}.chat-panel:not(.in-flight){bottom:58px!important}.chat-panel.in-flight{max-height:calc(100% - 140px)}.net-panel.collapsed:not(.in-flight),.chat-panel.collapsed:not(.in-flight){width:auto!important}.net-panel.in-flight{top:64px;right:8px;transform:none}.launch-hint{top:max(170px,34%);bottom:auto;max-width:calc(100vw - 16px);transform:translate(-50%);transform-origin:top center}}.mission-box{max-height:calc(100vh - 32px);overflow-y:auto}.mission-row{display:grid;grid-template-columns:90px 1fr 60px;align-items:center;gap:8px;text-align:left}.mission-input{padding:6px 8px;text-align:right}.mission-unit{color:var(--text-dim);font-size:12px}.mission-slots{display:flex;flex-direction:column;gap:6px;max-height:220px;overflow-y:auto;padding:6px 0;border-top:1px solid var(--panel-border);border-bottom:1px solid var(--panel-border)}.mission-button{width:100%;margin-top:8px;padding:8px 0}.mission-banner{position:absolute;top:58px;right:14px;z-index:60;display:none;align-items:center;gap:10px;max-width:calc(100vw - 16px);padding:6px 8px 6px 12px;background:var(--panel);border:1px solid var(--accent-warm);border-radius:6px;color:var(--text);font-size:13px;pointer-events:auto}.mission-banner.show{display:flex}.mission-label{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.mission-abort{flex:none;padding:4px 10px;font-size:12px}@media (max-width: 760px),(max-height: 520px){.compact-mission{left:50%;right:auto;transform:translate(-50%)}.mission-banner{inset:auto 8px 64px}}.career-bar{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:8px;margin-bottom:12px;padding-bottom:10px;border-bottom:1px solid var(--panel-border)}.career-wallet{flex:1 0 100%;font-family:var(--mono);font-size:13px;color:var(--accent-warm)}.career-research{padding:5px 10px;font-size:12px}.launch-button.unaffordable,.compact-launch.unaffordable{border-color:var(--bad);background:#ff8a8a24}.catalog-tile.locked{opacity:.4;cursor:not-allowed}.tile-lock{position:absolute;left:4px;top:4px;font-size:12px}.tooltip-locked{color:var(--bad)}.net-funds{font-family:var(--mono);color:var(--accent-warm)}.net-cheats{padding:0 4px;border:1px solid var(--bad);border-radius:3px;color:var(--bad);font-family:inherit;font-size:10px;text-transform:uppercase}.cheat-box{margin-top:12px;padding:10px 12px;border:1px dashed rgba(255,138,138,.5);border-radius:4px;text-align:left}.cheat-title{margin-bottom:6px;color:var(--bad);font-size:11px;letter-spacing:.1em;text-transform:uppercase}.cheat-row{display:flex;align-items:center;gap:8px;padding:4px 0;cursor:pointer}.cheat-row input{width:18px;height:18px}.cheat-note{margin-top:4px;color:var(--text-dim);font-size:11px}.tech-box{width:min(1180px,100%);max-height:calc(100vh - 32px);overflow:auto;text-align:left}.tech-head{display:flex;align-items:center;gap:16px;flex-wrap:wrap}.tech-head h2{margin:0}.tech-wallet{flex:1;color:var(--accent-warm);font-family:var(--mono);font-size:13px}.tech-close{padding:6px 14px}.tech-status{margin:6px 0 10px}.tech-columns{display:flex;gap:12px;overflow-x:auto;padding-bottom:6px}.tech-column{flex:1 0 200px;display:flex;flex-direction:column;gap:10px}.tech-node{padding:10px;border:1px solid var(--panel-border);border-radius:5px;background:#ffffff08}.tech-node.done{border-color:#8ef2a680;background:#8ef2a60f}.tech-node.ready{border-color:var(--accent)}.tech-node.locked{opacity:.55}.tech-node-title{display:flex;justify-content:space-between;gap:8px;font-weight:600}.tech-cost{color:var(--accent-warm);font-family:var(--mono);font-size:12px;white-space:nowrap}.tech-node.done .tech-cost{color:var(--good)}.tech-desc{margin-top:4px;color:var(--text-dim);font-size:12px}.tech-parts{margin-top:6px;font-size:11px}.tech-needs{margin-top:6px;color:var(--bad);font-size:11px}.tech-buy{width:100%;margin-top:8px;padding:6px 0}.tech-buy:disabled{opacity:.5;cursor:default}.career-buttons{display:flex;gap:6px}.board-body{display:flex;flex-direction:column;gap:8px}.board-body .panel-title{margin:10px 0 0}.board-drop{margin-top:8px;padding:4px 10px;font-size:12px}.mission-board{width:min(640px,100%)}.tech-scroller{overflow:auto;max-height:calc(100vh - 150px);touch-action:pan-x pan-y}.tech-canvas{position:relative}.tech-lines{position:absolute;left:0;top:0;pointer-events:none}.tech-line{fill:none;stroke-width:2}.tech-line.done{stroke:#8ef2a6cc}.tech-line.open{stroke:var(--accent);stroke-dasharray:6 4}.tech-line.locked{stroke:#a0aab959}.tech-card{position:absolute;display:flex;flex-direction:column;overflow:hidden;background:var(--panel)}.tech-card{padding:8px}.tech-part{display:flex;gap:8px;flex:1;min-height:0}.tech-thumb{flex:0 0 44px;height:56px;display:flex;align-items:center;justify-content:center;border-radius:4px;background:#ffffff0a}.tech-thumb img{max-width:40px;max-height:52px;object-fit:contain}.tech-info{min-width:0;display:flex;flex-direction:column;gap:2px}.tech-info .tech-node-title{font-size:13px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.tech-price{color:var(--text-dim);font-family:var(--mono);font-size:11px}.tech-card .tech-needs{margin-top:4px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.tech-card .tech-buy{margin-top:4px;padding:4px 0;font-size:12px}.tech-card,.tech-card.locked{opacity:1;background:#0d1219}.tech-card.locked>*{opacity:.55}
