:root{--bg:#071017;--panel:#101f2b;--line:#2a4355;--text:#eef7fb;--muted:#abc0ce;--cyan:#68d7dd;--orange:#e8613c;--danger:#ff9b86;font-family:Inter,system-ui,-apple-system,sans-serif;color-scheme:dark}
*{box-sizing:border-box}html,body{margin:0;background:var(--bg);color:var(--text);height:100%;overflow:hidden}button,input,select{font:inherit}button{border:1px solid var(--line);background:#10232f;color:var(--text);border-radius:10px;min-height:44px;padding:9px 12px;cursor:pointer}button:hover,button.active{border-color:var(--cyan)}button:disabled{opacity:.45;cursor:not-allowed}button:focus-visible,input:focus-visible,select:focus-visible{outline:2px solid var(--cyan);outline-offset:2px}.primary{background:var(--cyan);border-color:var(--cyan);color:#06151c;font-weight:750}.danger{border-color:var(--danger);color:var(--danger)}.hidden{display:none!important}.muted{color:var(--muted)}.small{font-size:.8rem;line-height:1.5}.eyebrow{color:var(--cyan);letter-spacing:.13em;font-size:.7rem;font-weight:750}h1,h2,h3,p{margin:0 0 12px}h2{font-size:1.12rem}label{display:grid;gap:7px;margin:10px 0;color:var(--muted);font-size:.84rem}input,select{background:#07131d;border:1px solid var(--line);border-radius:8px;color:var(--text);padding:10px;width:100%;min-height:44px;font-size:16px}.check{display:flex;align-items:center;gap:8px}.check input{width:20px;min-height:20px}.start-screen{height:100dvh;overflow:auto;display:grid;place-items:center;padding:24px;background:radial-gradient(ellipse at top,#173d4d,#071017 70%)}.start-card{width:min(100%,460px);padding:26px;background:var(--panel);border:1px solid var(--line);border-radius:20px;display:grid;gap:12px}.start-card h1{font-size:2rem}.start-card p{line-height:1.5}.start-card button{width:100%}.import-label{margin:0}.import-label input{font-size:.8rem}
#gameUI{height:100dvh;display:flex;flex-direction:column}.topbar{display:flex;justify-content:space-between;align-items:center;flex-shrink:0;min-height:64px;padding:8px 16px;padding-top:max(8px,env(safe-area-inset-top));border-bottom:1px solid var(--line);background:#08131b}.brand{border:0;padding:0;min-height:28px;background:none;font-weight:850;letter-spacing:.07em}.sub{font-size:.7rem;color:var(--muted);max-width:75vw;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}main{flex:1;min-height:0;position:relative}.view{height:100%}.map-wrap{position:relative;overflow:hidden}.map-wrap canvas{width:100%;height:100%;display:block;touch-action:none;background:radial-gradient(ellipse at center,#122632,#04090f)}.map-top{position:absolute;top:10px;left:10px;display:flex;gap:6px;max-width:calc(100% - 20px)}.map-top button{font-size:.78rem;background:#0b1929}.map-clock{position:absolute;left:10px;top:64px;display:flex;align-items:center;gap:8px;font-size:.74rem;color:var(--muted);background:#071017d9;border-radius:8px;padding:2px 6px}.map-clock select{width:84px;min-height:34px;padding:4px;font-size:.8rem}.zoom{position:absolute;right:10px;top:65px;display:grid;gap:5px}.zoom button{width:44px;padding:0;background:#0b1929}.object-panel{position:absolute;left:10px;top:60px;width:min(310px,calc(100% - 70px));max-height:calc(100% - 90px);overflow:auto;padding:12px;background:#0d1b28;border:1px solid var(--line);border-radius:14px;z-index:20;box-shadow:0 10px 50px #0009}.panel-heading{display:flex;align-items:center;justify-content:space-between;gap:8px}.panel-heading h2{margin:0}.group-label{padding:14px 0 7px;color:var(--cyan);font-size:.7rem;text-transform:uppercase}.object-btn{display:flex;width:100%;text-align:left;align-items:center;justify-content:space-between;margin-bottom:5px;gap:8px}.object-btn span{overflow-wrap:anywhere}.object-btn small{color:var(--muted);display:block;font-size:.7rem;margin-top:3px}.map-legend{position:absolute;bottom:10px;left:12px;color:#bed1e0;font-size:.68rem;pointer-events:none}
.sheet{position:absolute;right:12px;bottom:12px;width:340px;max-height:calc(100% - 125px);display:flex;flex-direction:column;border:1px solid #395467;border-radius:18px;background:#0d1b28;box-shadow:0 15px 50px #0009;z-index:10;overflow:hidden}.sheet-handle{display:none}.sheet-heading{display:flex;align-items:center;justify-content:space-between;padding:14px 16px 6px;gap:10px;flex-shrink:0}.sheet-heading>div{min-width:0}.sheet-heading h2{margin:5px 0;overflow-wrap:anywhere}.sheet-heading .eyebrow{font-size:.63rem;letter-spacing:.1em}.sheet-heading>button{flex-shrink:0;font-size:1.25rem}.sheet-scroll{padding:8px 16px;overflow:auto;overscroll-behavior:contain;min-height:0;flex:1}.sheet-footer{flex-shrink:0;padding:10px 16px 14px;border-top:1px solid var(--line);background:#101f2b;display:grid;gap:7px}.secondary-actions{display:grid;grid-template-columns:1fr 1fr;gap:7px}.secondary-actions button{font-size:.78rem;padding:8px}.status-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px;margin-bottom:10px}.stat{padding:9px;border:1px solid var(--line);border-radius:9px;background:#08131d;min-width:0}.stat span{display:block;color:var(--muted);font-size:.69rem;margin-bottom:3px}.stat strong{font-size:.95rem;overflow-wrap:anywhere}#orbitReadout{font-size:.8rem;line-height:1.4}.plan-hint{position:absolute;top:110px;left:10px;right:65px;width:max-content;max-width:calc(100% - 80px);background:#163740;color:#b9fbff;padding:9px;border-radius:10px;font-size:.75rem;pointer-events:none}.planner{width:360px}.planner .sheet-footer{grid-template-columns:1fr auto}.planner .sheet-footer button{font-size:.8rem}.form-grid{display:grid;grid-template-columns:1.4fr 1fr;gap:8px}.estimate{font-size:.82rem;line-height:1.7;color:#daf0fb;border-top:1px solid var(--line);padding-top:9px}.warning{padding:9px;border:1px solid #895c46;background:#36251e;color:#ffe1c6;font-size:.78rem;line-height:1.5;border-radius:8px;margin:8px 0}
.bottom-nav{flex-shrink:0;display:grid;grid-template-columns:repeat(3,1fr);min-height:62px;padding-bottom:env(safe-area-inset-bottom);border-top:1px solid var(--line);background:#08131b}.bottom-nav button{border:0;border-radius:0;background:none;color:var(--muted);font-size:.8rem}.bottom-nav button.active{color:var(--cyan);box-shadow:inset 0 2px var(--cyan)}.page{overflow:auto;padding:24px 20px 40px}.assembly-grid{display:grid;grid-template-columns:1fr 1.2fr 1fr;gap:14px;max-width:1100px;margin:auto}.page-head{max-width:1100px;margin:auto}.card{background:var(--panel);border:1px solid var(--line);border-radius:14px;padding:16px;margin-bottom:10px}.meter-row{display:flex;justify-content:space-between;gap:10px;font-size:.85rem}meter{width:100%;height:20px}.part{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:9px;border:1px solid var(--line);border-radius:9px}.part input{width:20px}.part small{display:block;color:var(--muted)}.mission{display:flex;justify-content:space-between;gap:12px;max-width:900px;margin:0 auto 10px}.mission small{display:block;color:var(--muted);margin-top:5px}.mission span{font-size:.78rem;color:var(--cyan)}dialog{width:min(92vw,500px);max-height:85dvh;overflow:auto;border:1px solid var(--line);border-radius:16px;background:#0b1720;color:var(--text);padding:22px}dialog::backdrop{background:#000a}dialog p{line-height:1.5}dialog button{margin-bottom:10px}.dialog-actions{display:flex;gap:8px;justify-content:flex-end;margin:15px 0}.toast{position:fixed;top:max(14px,env(safe-area-inset-top));left:50%;transform:translateX(-50%);width:max-content;max-width:92vw;padding:14px 18px;background:#23434e;border:1px solid var(--cyan);border-radius:12px;z-index:100;font-size:.88rem;box-shadow:0 10px 30px #0009}
@media(max-width:800px){.topbar{min-height:58px;padding-left:12px;padding-right:12px}.map-top{top:8px;left:8px;gap:5px}.map-top button{padding:8px;font-size:.74rem}.map-clock{top:59px;left:8px}.zoom{right:8px;top:60px}.zoom button{width:40px;min-height:40px}.sheet{left:8px;right:8px;bottom:7px;width:auto;height:44%;max-height:calc(100% - 108px);min-height:200px;border-radius:18px}.sheet.expanded{height:calc(100% - 110px)}.sheet-handle{display:flex;justify-content:center;flex-shrink:0;height:22px;touch-action:none}.sheet-handle button{padding:0;min-height:22px;height:22px;width:100%;border:0;background:none;color:#657e8e}.sheet-heading{padding:4px 12px}.sheet-heading h2{font-size:1.05rem}.sheet-scroll{padding:8px 12px}.sheet-footer{padding:8px 12px;gap:6px}.sheet-footer button{min-height:44px}.sheet .sheet-heading>button{min-height:36px;height:36px}.planner{height:48%;min-height:235px;max-height:calc(100% - 110px)}.planner .sheet-heading{padding-top:10px}.planner .sheet-footer{padding-bottom:8px}.form-grid{grid-template-columns:1.25fr 1fr}.map-legend{bottom:auto;top:102px;left:10px;font-size:.62rem}.map-wrap:has(.plan-hint:not(.hidden)) .map-legend{display:none}.assembly-grid{grid-template-columns:1fr}.page{padding:18px 12px 30px}.bottom-nav{min-height:58px}.bottom-nav button{font-size:.73rem}}
@media(max-height:560px){.sheet{min-height:0;max-height:calc(100% - 64px);height:calc(100% - 64px);left:auto;right:8px;width:45%}.sheet.expanded{height:calc(100% - 64px)}.sheet-heading h2{font-size:.9rem}.sheet-handle{display:none}.sheet-footer{padding:5px 8px}.secondary-actions button{font-size:.65rem}.sheet-scroll{padding:5px 8px}.sheet-heading{padding:5px 8px}.map-legend{display:none}.topbar{min-height:46px}.sub{display:none}.bottom-nav{min-height:46px}.map-clock{max-width:45%}.plan-hint{top:100px;max-width:44%;font-size:.65rem}}

/* 0.5: independent, draggable sheets and the modular raster workbench. */
.sheet{width:390px;height:55%;max-height:calc(100% - 110px);min-height:240px}.sheet.expanded{height:calc(100% - 110px)}
.sheet-handle{display:flex;justify-content:center;flex-shrink:0;height:24px;touch-action:none;cursor:ns-resize}.sheet-handle button{padding:0;min-height:24px;height:24px;width:100%;border:0;background:none;color:#8daabf;cursor:ns-resize}.sheet-heading{padding-top:3px}
#shipActions{grid-template-columns:repeat(2,minmax(0,1fr));max-height:45%;overflow-y:auto}#shipActions .primary{grid-column:1/-1}#shipActions button{font-size:.8rem;padding:7px 8px}.planner{width:410px;height:58%}.planner.expanded{height:calc(100% - 110px)}.planner .sheet-footer{grid-template-columns:1fr auto}
.map-clock{gap:12px}.map-top{flex-wrap:wrap}.map-top button{min-height:40px}.map-legend{top:103px;bottom:auto}.plan-hint{top:103px;z-index:3}.map-wrap:has(.plan-hint:not(.hidden)) .map-legend{display:none}
.tank{margin:10px 0}.tank>div{display:flex;justify-content:space-between;gap:8px;font-size:.76rem;margin-bottom:4px}.tank strong{font-size:.76rem}.tank span{color:var(--muted)}progress{width:100%;height:8px;border:0;border-radius:6px;overflow:hidden;accent-color:var(--cyan)}progress::-webkit-progress-bar{background:#061019}progress::-webkit-progress-value{background:var(--cyan)}.activity{margin:12px 0;padding:10px;background:#10353b;border-radius:9px;color:#b9fbff;font-size:.8rem;line-height:1.6}.base-stock{border-top:1px solid var(--line);margin-top:12px;padding-top:12px;line-height:1.7}
.route-step{padding:11px 0;border-bottom:1px solid var(--line)}.route-step strong{font-size:.84rem}.route-step small{display:block;color:var(--muted);font-size:.73rem;line-height:1.65;margin-top:3px}.step-tools{display:flex;gap:6px;margin-top:7px}.step-tools button{min-height:36px;padding:4px 12px}.step-editor{padding:14px 0}#addStep{width:100%;margin-top:6px}#chooseTarget{width:100%;text-align:left}#optimizerResult{margin-top:12px}#optimizerResult ol{padding-left:20px;font-size:.78rem;line-height:1.6}#planSummary{padding:12px 0}.mission{align-items:flex-start}.mission>div{min-width:0}.mission li{font-size:.74rem;color:var(--muted);line-height:1.7}.mission.complete{opacity:.48;filter:grayscale(1)}.mission.running{border-color:#44848b}.mission.blocked{border-color:#b66b43}.mission button{flex-shrink:0}
.assembly-grid{grid-template-columns:1fr 1.4fr .85fr;max-width:1300px}.raster-card{min-width:0}.raster-card .panel-heading{flex-wrap:wrap;margin-bottom:10px}.raster-card .panel-heading button{font-size:.78rem;padding:7px}.build-grid{display:grid;gap:3px;touch-action:none;user-select:none;border:1px solid #395367;background:#08101b;padding:5px;border-radius:10px}.grid-cell{aspect-ratio:1;min-width:0;min-height:0;padding:1px;border-radius:4px;background:#112333;font-size:.63rem;color:#abc0d3}.grid-cell.filled{background:#1c5963;border-color:#347f8a;color:white}.grid-cell.selected{border:2px solid #ff9b73;background:#574030}.grid-cell.part-fuel{background:#6e4935}.grid-cell.part-water{background:#21527a}.grid-cell.part-ore{background:#615650}.grid-cell.part-solar{background:#234077}.grid-cell.part-engine{background:#795236}.part-palette{display:grid;gap:6px}.part-palette button{display:block;text-align:left;padding:8px;font-size:.82rem}.part-palette small{display:block;color:var(--muted);font-size:.69rem;margin-top:3px}#buildStats p{font-size:.82rem;line-height:1.6}#placementHint{min-height:36px}
@media(max-width:800px){.sheet{left:8px;right:8px;bottom:7px;width:auto;height:51%;min-height:235px;max-height:calc(100% - 105px)}.sheet.expanded,.planner.expanded{height:calc(100% - 105px)}.planner{height:54%;width:auto}.map-top{gap:4px}.map-top button{font-size:.74rem;padding:7px 9px}.assembly-grid{grid-template-columns:1fr}.raster-card .panel-heading h2{margin-right:auto}.part-palette{grid-template-columns:repeat(2,minmax(0,1fr))}.build-grid{max-width:500px;margin:auto}.grid-cell{font-size:.7rem}#shipActions button{font-size:.74rem}.sheet-footer{padding:8px 10px}.sheet-heading{padding:3px 10px}.sheet-scroll{padding:8px 10px}}
@media(max-height:560px) and (min-width:600px){.sheet,.planner{left:auto;right:8px;width:46%;height:calc(100% - 60px);max-height:calc(100% - 60px);min-height:0}.sheet.expanded,.planner.expanded{height:calc(100% - 60px)}.sheet-handle{height:18px}.sheet-handle button{height:18px;min-height:18px}.sheet-heading h2{font-size:.86rem}.sheet-footer{padding:5px 8px}#shipActions{max-height:48%}.sheet-scroll{padding:5px 8px}.sheet-heading>button{min-height:30px;height:30px}.map-legend{display:none}}

/* 0.6 mission-state and mobile interaction refinements */
.sheet.minimized{height:58px!important;min-height:58px!important;max-height:58px!important}
.sheet.minimized .sheet-scroll,.sheet.minimized .sheet-footer{display:none!important}
.sheet.minimized .sheet-heading{padding-bottom:8px}
.sheet.minimized .sheet-handle button{color:var(--cyan)}
.base-ops{margin-top:14px;padding:12px;border:1px solid var(--line);border-radius:10px;background:#091720}
.base-ops>strong{display:block;margin-bottom:6px}
.base-transfer{display:grid;grid-template-columns:1fr .8fr;gap:7px}
.base-transfer select,.base-transfer input{margin:0}
.base-transfer-actions{display:grid;grid-template-columns:1fr 1fr;gap:7px;margin-top:7px}
.base-ops>button{width:100%;margin-top:7px}
.grid-cell.invalid{border:2px solid var(--danger)!important;box-shadow:inset 0 0 0 1px #3b1610;background:#5a2b24!important}
.route-step small{overflow-wrap:anywhere}
@media(max-width:800px){.sheet.minimized,.planner.minimized{height:58px!important;min-height:58px!important;max-height:58px!important}.base-transfer-actions button{font-size:.72rem;padding:6px}}


/* Keep collapsed sheets usable on phones, landscape and desktop. */
.sheet.minimized,.planner.minimized{height:76px!important;min-height:76px!important;max-height:76px!important}
.sheet.minimized .sheet-scroll,.sheet.minimized .sheet-footer{display:none}
.step-tools{flex-wrap:wrap}


/* 0.7 fleet, mission and map controls */
.map-top{flex-wrap:wrap}
.map-top button.active{border-color:#3b7580;color:#b9fbff}
.sheet-heading>button{display:grid;place-items:center;line-height:1;padding:0;width:40px;height:40px}
.fleet-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:6px;align-items:stretch}
.fleet-row .object-btn{margin-bottom:5px}
.fleet-rename{min-width:42px;margin-bottom:5px;padding:0;display:grid;place-items:center}
.mission-main{min-width:0;flex:1}
.mission-actions{display:flex;flex-direction:column;gap:6px;flex-shrink:0}
.mission-actions button{margin:0}
.mission-points{margin:12px 0 0;padding-left:22px}
.mission-points li{margin-bottom:7px}
.locked-step{padding-left:10px;border-left:3px solid var(--cyan);background:#0a1c27}
.assembly-grid{grid-template-columns:1.4fr .85fr 1fr}
.build-config{align-self:start}
@media(max-width:800px){
 .sheet-heading>button{width:36px;height:36px}
 .mission{flex-direction:column}
 .mission-actions{width:100%;flex-direction:row;flex-wrap:wrap}
 .mission-actions button{flex:1;min-width:92px}
 .assembly-grid{grid-template-columns:1fr}
}
