:root{--bg-void: #07090b;--bg-dark: #0d1117;--bg-panel: #161b22;--bg-elevated: #1c232d;--bg-hover: #242d38;--text-bright: #e8edf2;--text-base: #b0bac4;--text-dim: #6a7682;--text-faint: #3d4651;--waste: #c4a052;--waste-dim: #8a6e34;--waste-bright: #e8c870;--rad: #5dd55a;--rad-dim: #3a8a38;--rad-bright: #7fff7d;--metal: #7d8b99;--metal-dim: #4a5560;--metal-bright: #a8b8c8;--danger: #e85d3a;--danger-dim: #a03820;--danger-bright: #ff7a50;--res-power: #f0c040;--res-water: #4a9fd4;--res-food: #6abf4b;--res-material: #c4a052;--res-pop: #d4889a;--cat-production: #5dd55a;--cat-storage: #4a9fd4;--cat-housing: #d4889a;--cat-defense: #e85d3a;--cat-facility: #c4a052;--sp-1: 4px;--sp-2: 8px;--sp-3: 12px;--sp-4: 16px;--sp-5: 24px;--sp-6: 32px;--sp-7: 48px;--sp-8: 64px;--r-sm: 2px;--r-md: 4px;--r-lg: 8px;--r-pill: 999px;--font-ui: -apple-system, BlinkMacSystemFont, "Segoe UI", system-ui, sans-serif;--font-mono: "SF Mono", "Cascadia Code", "Consolas", monospace;--font-pixel: "Press Start 2P", "VT323", monospace;--fs-xs: 10px;--fs-sm: 12px;--fs-base: 14px;--fs-md: 16px;--fs-lg: 20px;--fs-xl: 28px;--fs-2xl: 36px;--shadow-sm: 0 1px 2px rgba(0,0,0,.3);--shadow-md: 0 2px 8px rgba(0,0,0,.4);--shadow-lg: 0 4px 16px rgba(0,0,0,.5);--glow-rad: 0 0 8px rgba(93, 213, 90, .3);--glow-danger: 0 0 8px rgba(232, 93, 58, .4);--page-max: 1280px;--page-gutter: clamp(8px, 2vw, 24px);--hit: 44px;--t-fast: .1s;--t-base: .15s;--t-slow: .3s;--pixel-size: 4px}.pixelated{image-rendering:pixelated;image-rendering:crisp-edges}.pixel-btn{display:inline-flex;align-items:center;justify-content:center;gap:7px;font-family:var(--font-mono);font-size:var(--fs-sm);background:var(--bg-elevated);color:var(--text-bright);border:none;padding:var(--sp-2) var(--sp-3);cursor:pointer;position:relative;transition:none;box-shadow:0 -2px 0 0 var(--bg-void) inset,0 2px #00000080;min-height:var(--hit);letter-spacing:0;text-transform:uppercase}.pixel-btn--compact{min-height:44px;padding:7px 10px}.pixel-btn:hover{background:var(--bg-hover);color:var(--waste-bright)}.pixel-btn:active{box-shadow:0 2px 0 0 var(--bg-void) inset,0 0 #00000080;transform:translateY(2px)}.pixel-btn--primary{background:var(--waste-dim);color:var(--bg-void);font-weight:700}.pixel-btn--primary:hover{background:var(--waste)}.pixel-btn--danger{background:var(--danger-dim);color:var(--text-bright)}.pixel-btn--danger:hover{background:var(--danger)}.pixel-panel{background:var(--bg-panel);border:2px solid var(--metal-dim);box-shadow:4px 4px 0 0 var(--bg-void)}.pixel-title{font-family:var(--font-mono);font-size:var(--fs-sm);text-transform:uppercase;letter-spacing:0;color:var(--waste)}@keyframes blink{0%,49%{opacity:1}50%,to{opacity:.3}}.blink{animation:blink 1s infinite}@keyframes float-up{0%{transform:translateY(0);opacity:1}to{transform:translateY(-20px);opacity:0}}.float-text{animation:float-up 1s ease-out forwards;font-family:var(--font-mono);font-size:var(--fs-sm);pointer-events:none;position:absolute}.float-text--gain{color:var(--rad-bright)}.float-text--loss{color:var(--danger-bright)}@keyframes build-progress{0%{width:0}to{width:100%}}.world-viewport{position:relative;width:100%;height:100%;min-width:0;min-height:0;overflow:hidden;isolation:isolate;background:linear-gradient(180deg,#141f1b29,#050a09b8),url(/assets/wasteland_horizon_v1-h1mL_AHY.png) center / cover no-repeat,#09110f;-webkit-user-select:none;user-select:none}.world-viewport__canvas-host{position:absolute;inset:0;overflow:hidden;touch-action:none}.world-viewport__canvas{display:block;width:100%;height:100%;image-rendering:pixelated;image-rendering:crisp-edges;touch-action:none;cursor:grab}.world-viewport__canvas:active{cursor:grabbing}.world-viewport__hud{position:absolute;top:calc(76px + env(safe-area-inset-top,0px));z-index:10;display:flex;flex-direction:column;min-width:104px;padding:5px 8px 6px;pointer-events:none;background:linear-gradient(90deg,#06120e80,#06120e1f);border-left:1px solid rgba(184,227,152,.42);-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);font-family:var(--font-mono)}.world-viewport__hud--left{left:9px}.world-viewport__hud--right{right:9px;align-items:flex-end;text-align:right;background:linear-gradient(270deg,#06120e75,#06120e14);border-right:1px solid rgba(226,182,108,.38);border-left:0}.world-viewport__hud strong{color:#e3efda;font-size:11px;font-weight:600;line-height:1.2}.world-viewport__eyebrow{color:#b8e398c2;font-size:7px;text-transform:uppercase}.world-viewport__subline{color:#bcd3b885;font-size:7px}.world-viewport__score{color:#e2b66c;font-size:10px}.world-viewport__tools{position:absolute;top:calc(128px + env(safe-area-inset-top,0px));right:8px;z-index:12;display:grid;gap:2px}.world-viewport__tools .icon-btn{color:#d3e8cdb3;background:#06120e4d;border-color:#b8e3981f;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.world-viewport__tools .icon-btn:hover,.world-viewport__tools .icon-btn:focus-visible{color:#e6f4dc;background:#24412b7a;border-color:#b8e3987a}.world-objective{position:absolute;right:10px;bottom:calc(64px + env(safe-area-inset-bottom,0px));left:10px;z-index:18;display:grid;grid-template-columns:38px minmax(0,1fr) auto;align-items:center;min-height:64px;padding:7px 9px 8px;pointer-events:none;color:#cce0c5c7;background:linear-gradient(90deg,#071611c2,#07161166);border-top:1px solid rgba(184,227,152,.28);border-bottom:1px solid rgba(184,227,152,.12);-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px)}.world-objective:after{position:absolute;right:9px;bottom:5px;left:47px;height:2px;content:"";background:linear-gradient(90deg,#b8e398 0 50%,#b8e3981f 50% 100%)}.world-objective__index{color:#b8e398;font-family:var(--font-mono);font-size:17px;font-weight:300}.world-objective__copy{display:flex;min-width:0;flex-direction:column}.world-objective__copy span{color:#b8e3988f;font-family:var(--font-mono);font-size:7px}.world-objective__copy strong{overflow:hidden;color:#e2ecdc;font-size:13px;font-weight:600;text-overflow:ellipsis;white-space:nowrap}.world-objective__copy small{overflow:hidden;color:#bcd3b8a3;font-size:9px;text-overflow:ellipsis;white-space:nowrap}.world-objective>b{align-self:start;padding-left:8px;color:#e2b66c;font-family:var(--font-mono);font-size:8px;font-weight:500}.world-viewport__build-state{position:absolute;right:10px;bottom:calc(64px + env(safe-area-inset-bottom,0px));left:10px;z-index:19;display:grid;grid-template-columns:7px minmax(0,1fr) auto 36px;align-items:center;gap:8px;min-height:48px;padding:6px 9px;pointer-events:none;color:#e5eddc;background:#322b18b8;border:1px solid rgba(226,182,108,.58);-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);font-family:var(--font-mono);font-size:9px}.world-viewport__build-copy{display:flex;min-width:0;flex-direction:column;line-height:1.25}.world-viewport__build-copy b{overflow:hidden;color:#f2ead8;font-size:10px;font-weight:600;text-overflow:ellipsis;white-space:nowrap}.world-viewport__build-copy small{display:block;min-width:0;margin-top:2px;overflow-wrap:anywhere;color:#e2d3b0b8;font-size:8px;line-height:1.3;white-space:normal}.world-viewport__build-state .mono{color:#e2b66c;white-space:nowrap}.world-viewport__build-state .icon-btn{width:36px;height:36px;flex-basis:36px;pointer-events:auto}.world-viewport__build-state--warn{color:#ffe2d5;background:#4c1e17db;border-color:#ff7a50b8}.world-viewport__build-state--warn .status-dot--build{color:#ff7a50}.world-viewport__build-state--warn .world-viewport__build-copy small{color:#ffb093}.status-dot{width:7px;height:7px;flex:0 0 7px;background:currentColor;box-shadow:0 0 8px currentColor}.status-dot--build{color:#e2b66c;animation:status-pulse 1.25s steps(2,end) infinite}.world-viewport__loading,.world-viewport__context-state{position:absolute;z-index:40;display:flex;align-items:center;gap:8px;color:#cce0c5b8;background:#071611d1;border:1px solid rgba(184,227,152,.24);-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);font-family:var(--font-mono);font-size:9px}.world-viewport__loading{top:50%;left:50%;min-width:154px;min-height:46px;justify-content:center;padding:10px 14px;transform:translate(-50%,-50%)}.world-viewport__loading--error{color:var(--danger-bright);border-color:var(--danger)}.world-viewport__context-state{right:10px;bottom:calc(66px + env(safe-area-inset-bottom,0px));padding:7px 9px;color:var(--danger-bright)}.loading-mark{width:10px;height:10px;border:2px solid rgba(184,227,152,.2);border-top-color:#b8e398;animation:loading-turn .8s steps(4,end) infinite}.world-inspector{position:absolute;right:8px;bottom:calc(60px + env(safe-area-inset-bottom,0px));left:8px;z-index:22;display:grid;grid-template-columns:minmax(150px,.8fr) minmax(210px,1.4fr) auto;gap:8px 16px;max-height:184px;padding:10px max(10px,calc((100% - 860px)/2));overflow-y:auto;background:linear-gradient(90deg,#071611e0,#0b1c15c7);border:1px solid rgba(184,227,152,.22);border-top-color:#b8e398a3;box-shadow:0 -7px 24px #00000042;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.world-inspector__head{display:flex;align-items:center;justify-content:space-between;gap:10px}.world-inspector__head h2{color:#e4f0dc;font-size:14px;font-weight:600}.world-inspector__eyebrow{color:#b8e398b3;font-family:var(--font-mono);font-size:7px;text-transform:uppercase}.world-inspector__metrics{display:flex;align-items:center;flex-wrap:wrap;gap:5px 12px;color:#bcd3b899;font-family:var(--font-mono);font-size:9px}.world-inspector__metrics b{color:#e0ead9;font-weight:500}.world-inspector__flow--up b{color:#9edc87}.world-inspector__flow--down b{color:#e99a79}.world-inspector p{grid-column:2;color:#bcd3b89e;font-size:10px;line-height:1.4}.world-inspector__actions{grid-column:3;grid-row:1 / 3;display:flex;align-items:center;justify-content:flex-end;gap:4px;min-width:max-content}.world-inspector--sector{border-top-color:#e2b66cc7;background:linear-gradient(90deg,#141b12eb,#231f14cc)}.world-inspector--sector .world-inspector__eyebrow{color:#e2b66cc2}.world-expansion__command{min-width:176px;justify-content:center;white-space:nowrap}.worker-count{min-width:20px;color:#e4f0dc;font-family:var(--font-mono);font-size:11px;text-align:center}@keyframes loading-turn{to{transform:rotate(360deg)}}@keyframes status-pulse{50%{opacity:.35}}@media(min-width:900px){.world-viewport__hud{top:calc(88px + env(safe-area-inset-top,0px))}.world-viewport__tools{top:calc(140px + env(safe-area-inset-top,0px))}.world-objective{right:auto;bottom:72px;left:12px;width:360px}.world-viewport__build-state{right:auto;bottom:72px;left:12px;width:min(420px,calc(100% - 24px))}.world-inspector{right:12px;bottom:72px;left:12px}}@media(max-width:680px){.world-inspector{grid-template-columns:minmax(0,1fr) auto;gap:5px 8px;max-height:180px;padding:8px 9px}.world-inspector__head{grid-column:1 / -1;padding-right:42px}.world-inspector__head .icon-btn{position:absolute;top:7px;right:7px}.world-inspector__metrics,.world-inspector p{grid-column:1}.world-inspector__actions{grid-column:2;grid-row:2 / 4;flex-wrap:wrap;max-width:146px}.world-inspector--sector{grid-template-columns:minmax(0,1fr)}.world-inspector--sector .world-inspector__metrics,.world-inspector--sector p,.world-inspector--sector .world-inspector__actions{grid-column:1}.world-inspector--sector .world-inspector__actions{grid-row:auto;max-width:none;justify-content:flex-start}}@media(max-width:420px){.world-viewport__hud{top:calc(75px + env(safe-area-inset-top,0px));min-width:98px;padding:4px 7px 5px}.world-viewport__hud--left{left:7px}.world-viewport__hud--right{right:7px}.world-viewport__tools{top:calc(124px + env(safe-area-inset-top,0px));right:6px}.world-objective,.world-viewport__build-state{right:8px;left:8px}.world-viewport__build-state{grid-template-columns:7px minmax(0,1fr) auto 34px;gap:6px;padding-inline:7px}.world-viewport__build-state .icon-btn{width:34px;height:34px;flex-basis:34px}.world-viewport__build-copy b{font-size:9px}.world-viewport__build-copy small{font-size:8px}.world-inspector__actions{max-width:132px}.world-inspector__actions .pixel-btn{padding-inline:7px}}@media(max-height:520px)and (orientation:landscape){.world-viewport__hud{top:calc(69px + env(safe-area-inset-top,0px));padding:3px 6px 4px}.world-viewport__tools{top:auto;right:7px;bottom:calc(58px + env(safe-area-inset-bottom,0px));display:flex}.world-objective{right:auto;bottom:calc(58px + env(safe-area-inset-bottom,0px));left:8px;width:min(320px,calc(100% - 260px));min-height:54px;padding-block:5px 7px}.world-viewport__build-state{right:auto;bottom:calc(58px + env(safe-area-inset-bottom,0px));left:8px;width:min(360px,calc(100% - 260px))}.world-inspector{right:8px;bottom:calc(56px + env(safe-area-inset-bottom,0px));left:8px;max-height:142px}.world-inspector p{display:none}.world-inspector__actions{grid-row:2}}@media(prefers-reduced-motion:reduce){.loading-mark,.status-dot--build{animation:none}}.world-objective:after{display:none}.world-objective__progress{position:absolute;right:9px;bottom:6px;left:47px;height:2px;overflow:hidden;background:#74c9c21f}.world-objective__progress i{display:block;height:100%;background:linear-gradient(90deg,#74c9c2,#e2b66c)}.world-viewport__loading--error{max-width:min(90%,420px);flex-wrap:wrap}.world-viewport__loading--error button{display:inline-flex;min-height:36px;align-items:center;gap:5px;padding:5px 9px;color:#130a07;background:#ff8f6b;border:0;cursor:pointer}@media(max-width:680px){.world-viewport__hud{display:none}.world-viewport__tools{top:calc(94px + env(safe-area-inset-top,0px))}}@media(min-width:900px){.world-viewport__hud{top:calc(98px + env(safe-area-inset-top,0px))}.world-viewport__tools{top:auto;right:82px;bottom:16px;display:flex}.world-objective{bottom:16px;left:16px;width:390px}.world-viewport__build-state{bottom:16px;left:16px}.world-inspector{right:82px;bottom:16px;left:16px}}@media(max-height:520px)and (orientation:landscape){.world-viewport__tools{top:auto}}@media(max-width:680px)and (orientation:portrait){.world-viewport__tools{top:auto;right:6px;bottom:calc(132px + env(safe-area-inset-bottom,0px));display:flex}.world-viewport__tools--panel-open{bottom:calc(248px + env(safe-area-inset-bottom,0px))}}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0;letter-spacing:0}html{color-scheme:dark;-webkit-text-size-adjust:100%;-webkit-tap-highlight-color:transparent}body{min-width:320px;min-height:100vh;min-height:100dvh;overflow:hidden;color:var(--text-base);background:#06100e;font-family:var(--font-ui);font-size:var(--fs-base);line-height:1.5;-webkit-font-smoothing:antialiased}button,input{font:inherit}button:focus-visible{outline:2px solid var(--waste-bright);outline-offset:2px}#app{width:100vw;height:100vh;height:100dvh;overflow:hidden}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:#06100e}::-webkit-scrollbar-thumb{background:#b8e39847}.main-screen{position:relative;width:100%;height:100vh;height:100dvh;overflow:hidden;background:#06100e}.main-stage{position:absolute;inset:0;min-width:0;min-height:0;overflow:hidden}.resource-bar{position:absolute;top:env(safe-area-inset-top,0px);right:0;left:0;z-index:30;display:block;min-height:70px;overflow:visible;color:#cbdcc8;background:linear-gradient(180deg,#06100ef0,#06100e85);border-bottom:1px solid rgba(184,227,152,.16);pointer-events:none}.resource-brand{display:flex;align-items:center;gap:10px;height:38px;padding:4px 10px}.brand-lockup{display:flex;align-items:center;gap:7px;min-width:136px}.brand-mark{display:grid;width:25px;height:25px;place-items:center;color:#b8e398;border:1px solid rgba(184,227,152,.56);transform:rotate(45deg)}.brand-mark svg{transform:rotate(-45deg)}.brand-lockup strong,.brand-lockup small,.resource-cycle small,.resource-cycle b,.commander-chip small,.commander-chip strong{display:block;font-family:var(--font-mono)}.brand-lockup strong{color:#e4f0d6;font-size:14px;line-height:1}.brand-lockup small{margin-top:3px;color:#aecaa6ad;font-size:8px;line-height:1}.resource-cycle{display:flex;align-items:baseline;gap:5px;margin-left:auto;padding-left:10px;border-left:1px solid rgba(184,227,152,.16)}.resource-cycle small{color:#aecaa6a3;font-size:8px}.resource-cycle b{color:#e2b66c;font-size:14px;font-weight:600}.commander-chip{min-width:68px;padding-left:10px;border-left:1px solid rgba(184,227,152,.16)}.commander-chip small{color:#aecaa694;font-size:8px}.commander-chip strong{margin-top:2px;color:#bdd4b4;font-size:9px;font-weight:500}.population-chip{display:inline-flex;align-items:center;gap:5px;min-height:28px;padding:0 7px;color:#d4889a;border-left:1px solid rgba(184,227,152,.16);font-family:var(--font-mono);font-size:10px;white-space:nowrap}.resource-rail{display:flex;align-items:stretch;height:32px;overflow:hidden;background:#0713107a;border-top:1px solid rgba(184,227,152,.1)}.resource-item{position:relative;display:grid;grid-template-columns:14px auto 1fr;grid-template-rows:1fr 2px;align-items:center;column-gap:5px;min-width:72px;flex:1 1 0;padding:4px 7px 3px;background:#0c1b173d;border-right:1px solid rgba(184,227,152,.1);white-space:nowrap}.resource-icon{color:#cde3c8bf}.resource-label{overflow:hidden;color:#aecaa6ad;font-family:var(--font-mono);font-size:8px;text-overflow:ellipsis}.resource-value{color:#dcead5;font-family:var(--font-mono);font-size:10px;font-variant-numeric:tabular-nums;text-align:right}.resource-value small{color:#aecaa68c;font-size:7px}.resource-net{grid-column:3;justify-self:end;margin-left:2px;font-family:var(--font-mono);font-size:7px}.resource-net--up{color:#b8e398}.resource-net--down{color:#e28b6c}.resource-progress{grid-column:1 / -1;width:100%;height:2px;overflow:hidden;background:#b8e3981a}.resource-progress-fill{display:block;height:100%;background:currentColor;opacity:.86}.resource-item--power .resource-icon,.resource-item--power .resource-progress-fill{color:#e2b66c}.resource-item--water .resource-icon,.resource-item--water .resource-progress-fill{color:#74c9c2}.resource-item--food .resource-icon,.resource-item--food .resource-progress-fill{color:#b8e398}.resource-item--material .resource-icon,.resource-item--material .resource-progress-fill{color:#d0a76b}.resource-item--morale .resource-icon,.resource-item--morale .resource-progress-fill{color:#9fd18b}.icon-btn{display:inline-grid;place-items:center;width:44px;height:44px;flex:0 0 44px;color:#cde3c5;background:#08181385;border:1px solid rgba(184,227,152,.2);border-radius:var(--r-sm);cursor:pointer}.icon-btn:hover{color:#e8f6dc;border-color:#b8e3989e;background:#31523557}.icon-btn:active{transform:translateY(1px)}.icon-btn:disabled{opacity:.35;cursor:not-allowed}.icon-btn:disabled:hover{color:#cde3c5;border-color:#b8e39833;background:#08181385}.icon-btn--quiet{background:transparent}.icon-btn--active{color:#b8e398;border-color:#b8e3988a;background:#31523557}.dock{position:absolute;right:0;bottom:0;left:0;z-index:35;display:flex;align-items:center;min-height:56px;padding:4px 10px max(4px,env(safe-area-inset-bottom));overflow:hidden;background:#06100ee6;border-top:1px solid rgba(184,227,152,.16);box-shadow:0 -8px 24px #0000002e}.dock-tabs{display:grid;grid-template-columns:repeat(4,minmax(0,1fr)) 50px;gap:4px;width:100%}.dock-tab,.dock-speed{display:grid;min-width:44px;min-height:44px;place-items:center;align-content:center;gap:2px;padding:2px;color:#cde3c89e;background:transparent;border:1px solid transparent;border-radius:var(--r-sm);cursor:pointer;font-family:var(--font-mono);font-size:8px}.dock-tab:hover,.dock-speed:hover{color:#d9efcf;background:#568b4c2e}.dock-tab--active{color:#b8e398;background:#436c3f38;border-bottom-color:#b8e398}.dock-speed{color:#d4b171;font-size:9px}.dock-speed span{line-height:1}.dock__reset{display:none}.sheet-backdrop{position:fixed;inset:0;z-index:80;display:flex;align-items:flex-end;justify-content:center;padding:0 8px calc(56px + env(safe-area-inset-bottom));pointer-events:none;background:transparent}.sheet-backdrop>*{pointer-events:auto}.build-panel{width:min(100%,820px);max-height:min(240px,34dvh);overflow-y:auto;padding:10px 12px;background:#091813eb;border:1px solid rgba(184,227,152,.28);border-top:2px solid #b8e398;box-shadow:0 -10px 30px #00000057;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.build-panel__head{display:flex;align-items:center;justify-content:space-between;margin-bottom:7px}.build-panel__head h2{color:#e4f0d6;font-size:13px;font-weight:600}.build-panel__eyebrow{color:#b8e398;font-family:var(--font-mono);font-size:8px}.build-panel__grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px}.building-card{display:grid;grid-template-columns:1fr auto;gap:3px 6px;min-height:76px;padding:8px;color:#bcd3b8;background:#11271da3;border:1px solid rgba(184,227,152,.16);border-radius:var(--r-sm);cursor:pointer;text-align:left}.building-card:hover{border-color:#b8e3989e;background:#395d355c}.building-card--disabled{opacity:.38;cursor:not-allowed}.building-card__name{color:#e4f0d6;font-size:11px;font-weight:600}.building-card__cost{color:#e2b66c;font-family:var(--font-mono);font-size:8px}.building-card__desc{grid-column:1 / -1;overflow:hidden;color:#aecaa6b3;font-size:9px;line-height:1.3;text-overflow:ellipsis;white-space:nowrap}.crisis-overlay{position:fixed;inset:0;z-index:100;display:flex;align-items:flex-end;justify-content:center;padding:0 8px calc(56px + env(safe-area-inset-bottom));background:#040c0938}.crisis-panel{width:min(100%,640px);max-height:min(250px,38dvh);overflow-y:auto;padding:12px;background:#151f18f0;border:1px solid rgba(232,93,58,.68);border-top:2px solid var(--danger-bright);box-shadow:0 -8px 26px #0006}.crisis-panel__eyebrow{margin-bottom:2px;color:#e88b6cb3;font-family:var(--font-mono);font-size:7px;text-transform:uppercase}.crisis-panel__title{display:flex;align-items:center;gap:7px;margin-bottom:5px;color:var(--danger-bright);font-family:var(--font-mono);font-size:14px}.crisis-panel__desc{margin-bottom:8px;color:#d9e2d0;font-size:11px;line-height:1.35}.crisis-option{display:block;width:100%;min-height:44px;margin-bottom:5px;padding:7px 9px;text-align:left;color:inherit;background:#10231bbd;border:1px solid rgba(232,93,58,.28);cursor:pointer}.crisis-option:hover{border-color:var(--danger-bright);background:#75352352}.crisis-option__label{margin-bottom:2px;color:#f1d4bc;font-size:11px;font-weight:600}.crisis-option__desc,.crisis-option__cost{color:#dcdac4ad;font-size:9px}.crisis-option__cost{display:flex;flex-wrap:wrap;gap:2px 8px;margin-top:3px;color:#e2b66ca3;font-family:var(--font-mono)}.crisis-option__cost b{color:#e2b66c;font-weight:500}.crisis-option__outcome{display:flex;flex-wrap:wrap;gap:2px 8px;margin-top:3px;color:#dcdac4b8;font-size:9px}.crisis-option__rate{color:#b8e398;font-family:var(--font-mono)}.crisis-option__worst{color:#e28b6c}.crisis-result{position:fixed;inset:0;z-index:100;display:flex;align-items:flex-end;justify-content:center;padding:0 8px calc(56px + env(safe-area-inset-bottom));background:#040c0938}.crisis-panel--result{border-color:#b8e39880;border-top:2px solid #b8e398}.crisis-result__verdict{font-family:var(--font-mono);font-size:12px;font-weight:600}.crisis-result__verdict--ok{color:#b8e398}.crisis-result__verdict--fail{color:var(--danger-bright)}.crisis-result__choice{margin-top:6px;color:#f1d4bc;font-size:11px;font-weight:600}.crisis-result__effects{margin-top:6px;color:#dcdac4cc;font-size:10px}.crisis-result__recovery{margin-top:4px;color:#aecaa6d1;font-size:10px}.crisis-result__actions{display:flex;justify-content:flex-end;margin-top:8px}.crisis-alert{position:fixed;top:74px;left:50%;z-index:90;display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:7px;width:min(calc(100% - 20px),520px);min-height:38px;padding:5px 9px;transform:translate(-50%);color:#f4d1b5;background:#572f20c7;border:1px solid rgba(232,119,80,.62);box-shadow:0 5px 18px #00000042;-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);font-family:var(--font-mono);font-size:9px;text-align:left}.crisis-alert b{color:#ffe1c7;font-weight:600}.crisis-alert strong{color:#ff9a70;font-size:10px;font-weight:600}.notice-stack{position:fixed;top:120px;left:50%;z-index:88;display:flex;flex-direction:column;gap:4px;width:min(calc(100% - 20px),520px);transform:translate(-50%);pointer-events:none}.notice{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:6px;padding:4px 8px;color:#d8e6c8;background:#0a1814d1;border:1px solid rgba(184,227,152,.28);box-shadow:0 4px 14px #0000003d;-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);font-family:var(--font-mono);font-size:9px;pointer-events:none}.notice--warn{color:#f4d1b5;background:#4a2c1cd1;border-color:#e89e5080}.notice__text{min-width:0;text-align:left}.notice__close{display:inline-grid;place-items:center;padding:2px;color:inherit;background:none;border:0;opacity:.6;cursor:pointer;pointer-events:auto}.notice__close:hover{opacity:1}.notice-log-toggle{display:inline-flex;align-items:center;gap:5px;align-self:flex-end;padding:3px 7px;color:#b8e398b8;background:#0a1814d1;border:1px solid rgba(184,227,152,.28);border-radius:var(--r-sm);font-family:var(--font-mono);font-size:8px;pointer-events:auto;cursor:pointer}.notice-log-toggle:hover{color:#d9efcf;border-color:#b8e3989e}.notice-log-toggle b{color:#e2b66c;font-weight:500}.notice-log{display:flex;flex-direction:column;gap:3px;max-height:40dvh;overflow-y:auto;padding:5px 6px;background:#071310e6;border:1px solid rgba(184,227,152,.18);border-radius:var(--r-sm);pointer-events:auto}.notice-log__entry{display:grid;grid-template-columns:auto minmax(0,1fr);gap:6px;padding:3px 5px;color:#d8e6c8d1;border-left:2px solid rgba(184,227,152,.3);font-family:var(--font-mono);font-size:8px}.notice-log__entry--warn{color:#f4d1b5;border-left-color:#e89e5099}.notice-log__tick{color:#aecaa680}.notice-log__text{min-width:0}.notice-log__empty{padding:4px 5px;color:#aecaa680;font-family:var(--font-mono);font-size:8px}.hidden{display:none!important}.text-danger{color:var(--danger)}.text-gain{color:var(--rad)}.text-dim{color:var(--text-dim)}.text-bright{color:var(--text-bright)}.mono{font-family:var(--font-mono)}@media(max-width:520px){.resource-brand{gap:6px;padding-inline:8px}.brand-lockup{min-width:132px}.brand-lockup strong{font-size:13px}.commander-chip{display:none}.resource-cycle{margin-left:auto}.resource-item{min-width:70px;padding-inline:5px}.resource-label{font-size:7px}.resource-value{font-size:9px}.resource-net{font-size:6px}.build-panel__grid{grid-template-columns:repeat(3,minmax(0,1fr))}.building-card{min-height:72px;padding:7px}.building-card__desc{display:none}.crisis-alert{top:74px}}@media(max-width:360px){.brand-lockup{min-width:116px}.brand-lockup small{display:none}.resource-item{min-width:64px}.resource-label{display:none}.resource-value{grid-column:2 / -1;justify-self:end}}@media(min-width:900px){.resource-bar{top:8px;right:12px;left:12px;width:min(860px,calc(100% - 24px));background:linear-gradient(180deg,#06100ee0,#06100e38);border:0}.resource-brand{height:42px}.dock{right:12px;bottom:8px;left:12px;background:#06100ea8;border:1px solid rgba(184,227,152,.14)}.dock__reset{display:inline-grid;margin-left:6px}.dock-tabs{max-width:440px}}@media(max-height:430px)and (orientation:landscape){.resource-bar{min-height:66px}.resource-brand{height:34px}.dock{min-height:52px}.crisis-alert{top:68px}}.resource-bar{display:grid;grid-template-rows:40px 44px;min-height:84px;background:linear-gradient(180deg,#050c0df5,#071211db 72%,#0712112e);border-bottom-color:#74c9c23d}.resource-brand{height:auto;min-width:0;padding:5px 10px 4px;background:#040a0c80}.brand-lockup{flex:0 1 auto}.brand-lockup strong{color:#f0e7cf}.brand-mark{color:#e2b66c;border-color:#e2b66c9e}.base-condition{display:flex;min-width:0;align-items:center;gap:7px;padding-left:10px;border-left:1px solid rgba(116,201,194,.18);font-family:var(--font-mono)}.base-condition__dot{width:7px;height:7px;flex:0 0 7px;background:#74c9c2;box-shadow:0 0 8px #74c9c26b}.base-condition small,.base-condition strong{display:block;white-space:nowrap}.base-condition small{color:#bcd3b880;font-size:7px}.base-condition strong{color:#d8e6d2;font-size:10px;font-weight:600}.base-condition--warning .base-condition__dot{background:#e2b66c;box-shadow:0 0 8px #e2b66c75}.base-condition--warning strong{color:#f1d49a}.base-condition--critical .base-condition__dot{background:#ff7a50;box-shadow:0 0 8px #ff7a508a}.base-condition--critical strong{color:#ffb093}.base-condition--idle .base-condition__dot{background:#82908e;box-shadow:none}.resource-vitals{display:flex;min-width:0;align-items:center;gap:8px;margin-left:auto}.resource-vitals .resource-cycle{margin-left:0}.population-chip span,.population-chip small,.population-chip b{display:block}.population-chip span{min-width:0}.population-chip small{color:#d4889ab8;font-size:8px;line-height:1}.population-chip b{color:#edb3c0;font-size:10px;font-weight:600;line-height:1.2}.resource-rail{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));height:44px;overflow:hidden;background:#040c0dad}.resource-item{display:grid;grid-template-columns:14px minmax(0,1fr) auto;grid-template-rows:14px 14px 2px;min-width:0;min-height:0;padding:4px 6px 3px;column-gap:4px;row-gap:1px;border-right-color:#74c9c21f}.resource-icon{grid-column:1;grid-row:1;align-self:center}.resource-label{grid-column:2;grid-row:1;align-self:center;font-size:8px}.resource-value{grid-column:1 / 3;grid-row:2;justify-self:start;align-self:center;font-size:10px;text-align:left}.resource-net{grid-column:3;grid-row:2;align-self:center;justify-self:end;margin:0;font-size:7px}.resource-progress{grid-column:1 / 4;grid-row:3}.resource-risk{grid-column:3;grid-row:1;align-self:center;justify-self:end;color:#f0c58b;font-family:var(--font-mono);font-size:7px;line-height:1;white-space:nowrap}.resource-risk:before{content:"耗尽 ";color:#f0c58b9e}.resource-item--critical .resource-risk{color:#ff9a70}.resource-item--critical .resource-risk:before{color:#ff9a70ad}.resource-item--warning{background:#704a221f}.resource-item--critical{background:#8430222e}.resource-item--critical .resource-value{color:#ffbd9f}.dock-tab:disabled,.dock-speed:disabled{opacity:.36;cursor:not-allowed}.dock-tab__badge{position:absolute;top:2px;right:3px;min-width:18px;padding:1px 3px;color:#fff0dd;background:#a54028;font-size:7px;font-weight:600;line-height:1.2}.dock-tab,.dock-speed{position:relative}.dock-tab--build{color:#e2b66ccc}.build-panel{width:min(calc(100% - 4px),760px);max-height:min(380px,54dvh);padding:12px;background:#071112f0;border-color:#74c9c247;border-top-color:#e2b66c}.build-panel__head{gap:10px;margin-bottom:10px}.build-panel__head>div{min-width:0;margin-right:auto}.build-panel__head h2{margin-top:2px;color:#f0e7cf;font-size:16px}.build-panel__eyebrow{color:#74c9c2}.build-panel__reserve{color:#bcd3b8a3;font-family:var(--font-mono);font-size:9px;white-space:nowrap}.build-panel__reserve b{color:#e2b66c;font-size:13px}.build-panel__feedback{margin:-3px 0 9px;padding:6px 8px;color:#ffb093;background:#8430222e;border-left:2px solid #ff7a50;font-size:11px}.build-panel__grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.building-card{grid-template-columns:36px minmax(0,1fr) auto;grid-template-rows:auto auto auto auto;gap:5px 8px;min-height:116px;padding:10px;background:#112422b8;border-color:#74c9c22e}.building-card:hover{background:#1f3d37c7;border-color:#74c9c2b3}.building-card--short{border-color:#e85d3a47}.building-card__icon{display:grid;grid-column:1;grid-row:1 / 3;width:36px;height:36px;place-items:center;color:#e2b66c;background:#e2b66c14;border:1px solid rgba(226,182,108,.22)}.building-card__heading{display:flex;grid-column:2;grid-row:1;min-width:0;flex-direction:column}.building-card__heading small{color:#74c9c2a8;font-family:var(--font-mono);font-size:7px}.building-card__name{overflow:hidden;color:#f0e7cf;font-size:12px;text-overflow:ellipsis;white-space:nowrap}.building-card__cost{grid-column:3;grid-row:1;align-self:center;white-space:nowrap}.building-card__cost--short{color:#ff8f6b}.building-card__desc{grid-column:2 / 4;grid-row:2;color:#cddccaa8;white-space:normal}.building-card__flows{display:flex;grid-column:1 / 4;grid-row:3;flex-wrap:wrap;gap:4px 9px;font-family:var(--font-mono);font-size:8px}.building-card__flows b{font-weight:500}.building-card__flows-label{display:inline-flex;align-items:center;padding-right:7px;color:#e2b66cc2;border-right:1px solid rgba(226,182,108,.22);font-size:7px;font-weight:500;white-space:nowrap}.building-card__flow--up{color:#9edc87}.building-card__flow--down{color:#e99a79}.building-card__flow--neutral{color:#b9c9c4}.building-card__footer{display:flex;grid-column:1 / 4;grid-row:4;align-items:center;justify-content:space-between;gap:6px;padding-top:5px;color:#bcd3b899;border-top:1px solid rgba(116,201,194,.1);font-family:var(--font-mono);font-size:8px}.building-card__footer span{display:inline-flex;align-items:center;gap:3px}.building-card__synergy{color:#74c9c2;text-align:right}.colony-lost{position:fixed;inset:0;z-index:120;display:grid;place-items:center;padding:18px;background:#05080ab8;-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px)}.colony-lost__panel{width:min(100%,430px);padding:22px;color:#d8e2df;background:#101618f5;border:1px solid rgba(232,93,58,.52);border-top:3px solid #ff7a50;box-shadow:0 18px 56px #0000007a}.colony-lost__signal{display:grid;width:46px;height:46px;place-items:center;margin-bottom:14px;color:#ff8f6b;border:1px solid rgba(255,122,80,.44)}.colony-lost__eyebrow{color:#ff8f6b;font-family:var(--font-mono);font-size:9px}.colony-lost h2{margin-top:3px;color:#fff0e7;font-size:24px}.colony-lost p{margin-top:8px;color:#d8e2dfb8;font-size:13px;line-height:1.6}.colony-lost__stats{display:grid;grid-template-columns:repeat(2,1fr);gap:8px;margin-top:16px}.colony-lost__stats span{padding:8px;color:#d8e2df8f;background:#ffffff08;font-size:11px}.colony-lost__stats b{display:block;color:#f0d19a;font-family:var(--font-mono);font-size:16px}.recovery-command,.crisis-result__close{display:inline-flex;min-height:44px;align-items:center;justify-content:center;gap:7px;margin-top:16px;padding:8px 14px;color:#071011;background:#e2b66c;border:0;cursor:pointer;font-weight:700}.crisis-panel__head{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:9px;margin-bottom:8px}.crisis-panel__signal{display:grid;width:38px;height:38px;place-items:center;color:#ff8f6b;border:1px solid rgba(255,122,80,.38)}.crisis-panel__paused{color:#f0c58b;font-family:var(--font-mono);font-size:8px}.crisis-options{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:7px}.crisis-option{display:grid;grid-template-columns:26px minmax(0,1fr);gap:3px 7px;min-height:120px;margin:0}.crisis-option__index{grid-column:1;grid-row:1 / 3;color:#ff8f6b94;font-family:var(--font-mono);font-size:15px}.crisis-option__label,.crisis-option__desc,.crisis-option__cost,.crisis-option__outcome{grid-column:2}.crisis-option__outcome{display:flex;flex-direction:column}.crisis-option:disabled{opacity:.44;cursor:not-allowed}@media(max-width:520px){.resource-bar{grid-template-rows:40px 44px;min-height:84px}.resource-brand{gap:6px;padding-inline:7px}.brand-lockup{min-width:120px}.brand-lockup strong{font-size:12px}.brand-lockup small{font-size:7px}.base-condition{gap:5px;padding-left:7px}.base-condition small{display:none}.base-condition strong{font-size:8px}.resource-vitals{gap:3px}.resource-vitals .resource-cycle{display:none}.population-chip{gap:3px;padding-inline:5px}.population-chip small{display:block;font-size:7px}.resource-item{min-width:0;padding-inline:4px}.resource-label{font-size:8px}.resource-value{font-size:11px}.resource-value small{font-size:6px}.resource-net{font-size:8px}.resource-risk:before{content:"余 "}.build-panel__grid{grid-template-columns:repeat(2,minmax(0,1fr))}.building-card{min-height:108px;padding:8px}.building-card__desc{display:none}.building-card__heading{grid-row:1 / 3;justify-content:center}.building-card__flows{grid-row:3}.building-card__footer{grid-row:4}.crisis-overlay,.crisis-result{align-items:center;padding:calc(88px + env(safe-area-inset-top,0px)) 8px calc(58px + env(safe-area-inset-bottom,0px))}.crisis-panel{width:100%;max-height:calc(100dvh - 154px - env(safe-area-inset-top,0px) - env(safe-area-inset-bottom,0px));padding:10px}.crisis-panel__head{gap:7px;margin-bottom:6px}.crisis-panel__signal{width:34px;height:34px}.crisis-panel__desc{margin-bottom:6px;font-size:10px}.crisis-options{grid-template-columns:1fr;gap:5px}.crisis-option{grid-template-columns:24px minmax(0,1fr);gap:2px 6px;min-height:0;padding:6px 8px}.crisis-option__desc{line-height:1.2}.crisis-option__outcome{flex-direction:row;flex-wrap:wrap;gap:2px 8px}.notice-stack{top:94px;left:8px;width:min(260px,calc(100% - 70px));transform:none}.notice-log-toggle{align-self:flex-start}}@media(max-width:360px){.brand-lockup{min-width:108px}.base-condition{padding-left:5px}.base-condition strong{font-size:7px}.population-chip svg{display:none}.building-card{grid-template-columns:30px minmax(0,1fr)}.building-card__icon{width:30px;height:34px}.building-card__cost{grid-column:2;grid-row:2;justify-self:start}}@media(min-width:900px){.resource-bar{top:8px;right:12px;left:12px;width:auto;min-height:80px;grid-template-rows:44px 36px;border:1px solid rgba(116,201,194,.14)}.resource-brand{padding-inline:12px}.brand-lockup{min-width:210px}.resource-rail{height:36px}.resource-item{grid-template-rows:12px 12px 2px;padding:3px 9px 2px}.resource-label{font-size:9px}.resource-value{font-size:12px}.resource-net{font-size:9px}.dock{inset:108px 12px auto auto;width:58px;min-height:0;flex-direction:column;padding:4px;background:#050e0fc7;border:1px solid rgba(116,201,194,.18)}.dock-tabs{grid-template-columns:1fr;max-width:none;gap:3px;width:48px}.dock-tab,.dock-speed{width:48px;min-height:48px}.dock__reset{display:inline-grid;margin:4px 0 0}.sheet-backdrop{align-items:flex-start;justify-content:flex-end;padding:100px 82px 16px 16px}.build-panel{width:440px;max-height:calc(100dvh - 116px)}.build-panel__grid{grid-template-columns:repeat(2,minmax(0,1fr))}.crisis-overlay,.crisis-result{align-items:center;padding:96px 84px 18px 18px}.crisis-panel{width:min(760px,calc(100vw - 120px));max-height:calc(100dvh - 130px)}}@media(max-height:430px)and (orientation:landscape){.resource-bar{grid-template-rows:34px 34px;min-height:68px}.resource-brand{padding-block:2px}.brand-lockup strong{font-size:11px}.brand-lockup small{display:none}.resource-rail{height:34px}.resource-item{grid-template-rows:11px 10px 2px;padding-block:2px}.sheet-backdrop{padding-bottom:calc(52px + env(safe-area-inset-bottom))}.build-panel{max-height:calc(100dvh - 64px)}.crisis-overlay,.crisis-result{align-items:center;padding:calc(70px + env(safe-area-inset-top,0px)) 8px calc(54px + env(safe-area-inset-bottom,0px))}.crisis-panel{max-height:calc(100dvh - 124px - env(safe-area-inset-top,0px) - env(safe-area-inset-bottom,0px));padding:9px 10px}.crisis-panel__head{margin-bottom:5px}.crisis-panel__signal{width:32px;height:32px}.crisis-panel__desc{margin-bottom:5px;font-size:10px;line-height:1.25}.crisis-options{gap:5px}.crisis-option{grid-template-columns:22px minmax(0,1fr);gap:2px 5px;min-height:0;padding:6px 7px}.crisis-option__desc{line-height:1.2}}
