:root{--bg:#14130f;--panel:#1e1c17;--panel-edge:#2e2b23;--text:#ece6d6;--muted:#9a9384;--accent:#ffb347;--ok:#9bd67a;--short:#c9806a;color:var(--text);background:var(--bg);font-family:system-ui,-apple-system,Segoe UI,sans-serif}*{box-sizing:border-box}body{background:var(--bg);margin:0}.app{max-width:1200px;margin:0 auto;padding:16px}header{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin-bottom:16px;display:flex}h1{letter-spacing:.08em;margin:0;font-size:1.6rem;font-weight:600}h2{text-transform:uppercase;letter-spacing:.1em;color:var(--muted);margin:0 0 8px;font-size:.85rem}.muted{color:var(--muted);font-size:.85rem}p.muted{margin:6px 0 0}.resources{flex-wrap:wrap;gap:12px;display:flex}.resource{background:var(--panel);border:1px solid var(--panel-edge);border-radius:8px;grid-template-columns:auto 1fr;align-items:center;column-gap:8px;min-width:170px;padding:6px 14px;display:grid}.resource-icon{grid-row:span 2;font-size:1.4rem}.resource-amount{font-variant-numeric:tabular-nums;font-size:1.25rem;font-weight:600}.resource-rate{color:var(--muted);font-variant-numeric:tabular-nums;font-size:.75rem}main{grid-template-columns:minmax(0,1fr) 340px;align-items:start;gap:16px;display:grid}@media (width<=860px){main{grid-template-columns:minmax(0,1fr)}}.board{border:1px solid var(--panel-edge);background:#000;border-radius:8px;line-height:0;position:relative;overflow:hidden}.board canvas{width:100%;height:auto;image-rendering:pixelated;cursor:crosshair;touch-action:manipulation}aside{flex-direction:column;gap:12px;display:flex}@media (width>=861px){.board{justify-self:center;width:100%;max-width:calc(100vh - 110px)}aside{overscroll-behavior:contain;scrollbar-width:thin;scrollbar-color:var(--panel-edge) transparent;max-height:calc(100vh - 110px);padding-right:4px;overflow-y:auto}}.maxed{border-top:1px solid var(--panel-edge);margin-top:10px;padding-top:10px}.panel{background:var(--panel);border:1px solid var(--panel-edge);border-radius:8px;padding:12px 14px}button{font:inherit;color:var(--bg);background:var(--accent);cursor:pointer;border:none;border-radius:6px;padding:5px 14px;font-size:.85rem}button:disabled{background:var(--panel-edge);color:var(--muted);cursor:default}button.link{color:var(--muted);background:0 0;padding:0;text-decoration:underline}.chip{background:var(--panel-edge);color:var(--text)}.chip.active{background:var(--accent);color:var(--bg)}.weather{gap:6px;display:flex}.sparks{align-items:center;gap:4px;display:flex}.spark{opacity:.2;filter:grayscale();font-size:1.3rem}.spark.on{opacity:1;filter:none}.sparks .muted{margin-left:8px}.upgrades{flex-direction:column;gap:10px;margin:0;padding:0;list-style:none;display:flex}.upgrade+.upgrade{border-top:1px solid var(--panel-edge);padding-top:10px}.upgrade-head,.upgrade-foot{justify-content:space-between;align-items:center;gap:8px;display:flex}.upgrade-foot{margin-top:6px}.cost{font-variant-numeric:tabular-nums;gap:10px;font-size:.85rem;display:flex}.cost .ok{color:var(--ok)}.cost .short{color:var(--short)}.bar{background:var(--panel-edge);border-radius:5px;height:10px;display:flex;overflow:hidden}.bar span{transition:width .25s}.legend{color:var(--muted);flex-wrap:wrap;gap:4px 14px;margin:8px 0 0;padding:0;font-size:.8rem;list-style:none;display:flex}.legend i{border-radius:2px;width:9px;height:9px;margin-right:5px;display:inline-block}.toasts{z-index:10;pointer-events:none;flex-direction:column;align-items:center;gap:8px;display:flex;position:fixed;bottom:16px;left:16px;right:16px}.toast{pointer-events:auto;background:var(--panel);border:1px solid var(--accent);border-radius:8px;justify-content:space-between;align-items:center;gap:12px;width:100%;max-width:640px;padding:10px 14px;display:flex;box-shadow:0 6px 24px #00000073}footer{justify-content:space-between;padding:0 4px;display:flex}.toast.discovery{border-color:#d39a6a}.tools{flex-wrap:wrap;gap:6px;margin-bottom:8px;display:flex}.tool-cost{align-items:center;gap:8px;display:flex}.discoveries{flex-direction:column;gap:6px;margin:0;padding:0;font-size:.85rem;list-style:none;display:flex}.tabs{z-index:2;background:var(--panel);border:1px solid var(--panel-edge);border-radius:8px;gap:4px;padding:4px;display:flex;position:sticky;top:0}.tab{color:var(--muted);background:0 0;flex:1}.tab.active{background:var(--panel-edge);color:var(--text)}.tip{z-index:3;background:var(--panel);border:1px solid var(--panel-edge);pointer-events:none;border-radius:6px;flex-direction:column;gap:4px;max-width:240px;padding:8px 10px;font-size:.8rem;line-height:1.35;display:flex;position:absolute;box-shadow:0 4px 16px #00000073}.progress{background:var(--panel-edge);border-radius:3px;height:6px;margin-top:6px;overflow:hidden}.progress span{background:var(--accent);height:100%;transition:width .25s;display:block}.progress span.hot{background:var(--short)}.progress.grow{flex:1;margin-top:0}.upgrade.locked strong{color:var(--muted)}.goals{flex-direction:column;gap:10px;margin:0;padding:0;list-style:none;display:flex}.goal.met strong{color:var(--ok)}.toast.goal{border-color:var(--ok)}.deluge{border-top:1px solid var(--panel-edge);margin-top:10px;padding-top:10px}.panel.dev{border-style:dashed}.panel.dev h2+h2,.panel.dev .row+h2,.panel.dev p+h2{margin-top:12px}.row{align-items:center;gap:6px;margin-top:6px;display:flex}.row.wrap{flex-wrap:wrap}.row:first-of-type{margin-top:0}.stats{border-collapse:collapse;font-variant-numeric:tabular-nums;width:100%;margin-top:6px;font-size:.8rem}.stats td{vertical-align:top;border-top:1px solid var(--panel-edge);padding:3px 0}.stats td+td{text-align:right;padding-left:8px}.stats .warn{color:var(--short)}.upgrades-all .levels{white-space:nowrap}.upgrades-all .levels button{margin-left:3px;padding:2px 8px}.upgrades-all .levels span{text-align:center;min-width:3.2em;display:inline-block}.check{align-items:center;gap:4px;font-size:.85rem;display:flex}select,input.num,textarea.save-text{font:inherit;color:var(--text);background:var(--bg);border:1px solid var(--panel-edge);border-radius:6px;padding:4px 6px;font-size:.85rem}input.num{width:6em}textarea.save-text{resize:vertical;width:100%;height:4.5em;margin-top:6px;font-family:ui-monospace,monospace;font-size:.7rem}.codex-entry h3{margin:0 0 6px;font-size:1.05rem}.codex-entry p{margin:6px 0;font-size:.88rem;line-height:1.45}.codex-icon{margin-right:6px}.codex-group{margin-top:10px}.codex-group>p.muted{margin:0 0 4px}input.search{font:inherit;color:var(--text);background:var(--bg);border:1px solid var(--panel-edge);border-radius:6px;flex:1;padding:5px 8px;font-size:.85rem}
