:root{--space:#0b0a10;--panel:#0f1119eb;--panel-solid:#12141d;--line:#2a2e40;--ink:#e6e8ef;--muted:#9aa0b4;--amber:#f5b94e;--cyan:#4fdbe3;--green:#a3e36d;--red:#f08a7e;--pixel:"Silkscreen", ui-monospace, Menlo, Consolas, monospace;--text:system-ui, -apple-system, "Segoe UI", sans-serif;--safe-t:env(safe-area-inset-top,0px);--safe-b:env(safe-area-inset-bottom,0px);--safe-l:env(safe-area-inset-left,0px);--safe-r:env(safe-area-inset-right,0px);--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}*{box-sizing:border-box}[hidden]{display:none!important}html,body{background:var(--space);height:100%;color:var(--ink);font-family:var(--pixel);-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent;overscroll-behavior:none;margin:0;overflow:hidden}#view{touch-action:none;width:100%;height:100%;image-rendering:pixelated;display:block;position:fixed;inset:0}p{margin:0 0 8px}h2{margin:0 0 10px;font-size:16px;font-weight:400}h3{color:var(--muted);letter-spacing:.04em;margin:14px 0 6px;font-size:11px;font-weight:400}button{font:inherit;color:var(--ink);border:1px solid var(--line);cursor:pointer;touch-action:manipulation;background:#181b28;border-radius:4px;min-width:44px;min-height:44px;padding:0 12px;font-size:13px}button:disabled{opacity:.5;cursor:default}button[aria-pressed=true]{border-color:var(--amber);box-shadow:inset 0 -3px 0 var(--amber)}button:focus-visible,input:focus-visible{outline:2px solid var(--cyan);outline-offset:2px}button.primary{border-color:var(--amber);color:#ffe3a1;background:#3a2a10}button.danger{color:var(--red);border-color:#6b2b2b}.muted{color:var(--muted)}.small{font-size:13px}.hint{animation:1.1s ease-in-out infinite hint;position:relative;border-color:var(--amber)!important}@keyframes hint{0%,to{box-shadow:0 0 #f5b94ee6}50%{box-shadow:0 0 0 5px #f5b94e00}}.topbar{padding:calc(4px + var(--safe-t)) calc(6px + var(--safe-r)) 2px calc(6px + var(--safe-l));background:var(--panel);border-bottom:1px solid var(--line);position:fixed;top:0;left:0;right:0}.bar-row{align-items:center;gap:6px;display:flex}.icon-btn{min-width:40px;min-height:40px;padding:0;font-size:20px}.when{flex-direction:column;flex:1;min-width:0;font-size:12px;line-height:1.3;display:flex}.when #tier{color:var(--muted);font-size:10px}.speed{gap:3px;display:flex}.speed button{min-width:38px;min-height:38px;padding:0 4px;font-size:12px}.res-row{background:0 0;border:0;border-radius:0;justify-content:space-between;gap:2px;width:100%;min-height:30px;margin-top:3px;padding:2px 0;display:flex;box-shadow:none!important}.chip{white-space:nowrap;border-radius:3px;align-items:center;gap:3px;padding:2px 3px;font-size:11px;display:inline-flex}.chip .icon,.icon{width:14px;height:14px;image-rendering:pixelated;vertical-align:middle}.chip[data-state=bad]{color:#ffd0c8;background:#e0473d47;animation:1.4s ease-in-out infinite warnpulse}.chip[data-state=full]{color:var(--amber)}@keyframes warnpulse{50%{background:#e0473d14}}.goal{top:calc(84px + var(--safe-t));left:calc(8px + var(--safe-l));right:calc(8px + var(--safe-r));background:var(--panel);border:1px solid var(--line);border-left:3px solid var(--amber);border-radius:6px;max-width:420px;position:fixed}.goal.fresh{animation:.5s ease-out goalin}@keyframes goalin{0%{opacity:0;transform:translateY(-8px)}}.goal-head{text-align:left;background:0 0;border:0;align-items:baseline;gap:8px;width:100%;min-height:36px;padding:6px 10px;display:flex;box-shadow:none!important}.goal-head strong{color:#ffe3a1;font-size:13px;font-weight:400}.eyebrow{color:var(--muted);letter-spacing:.08em;text-transform:uppercase;font-size:10px}.goal-body{font-family:var(--text);padding:0 10px 8px;font-size:13px;line-height:1.35}.goal-body p{margin-bottom:4px}.goal-foot{justify-content:space-between;align-items:center;gap:8px;display:flex}.goal-foot .progress{color:var(--cyan);margin:0;font-size:13px}.goal.collapsed .goal-body{display:none}.small-btn{flex:none;min-height:34px;margin-left:auto;font-size:11px}.bottom{pointer-events:none;position:fixed;bottom:0;left:0;right:0}.bottom>*{pointer-events:auto}.toasts{flex-direction:column;align-items:center;gap:6px;padding:0 16px 8px;display:flex;pointer-events:none!important}.toast{background:var(--panel-solid);border:1px solid var(--line);max-width:100%;font-family:var(--text);border-radius:6px;padding:8px 12px;font-size:14px;animation:.25s ease-out toastin}.toast.warn{background:#2a1c22;border-color:#e0473d}.toast.good{background:#18261a;border-color:#5cbf4f}@keyframes toastin{0%{opacity:0;transform:translateY(6px)}}.toolbar{padding:6px calc(6px + var(--safe-r)) calc(6px + var(--safe-b)) calc(6px + var(--safe-l));background:var(--panel);border-top:1px solid var(--line);gap:6px;display:flex}.toolbar button{flex:1;min-height:50px;padding:0 2px;font-size:13px}.bld-row{scrollbar-width:none;overscroll-behavior-x:contain;gap:6px;display:flex;overflow-x:auto}.bld-row::-webkit-scrollbar{display:none}.bld{text-align:center;flex-direction:column;flex:none;align-items:center;gap:2px;width:76px;padding:6px 2px;font-size:9px;line-height:1.2;display:flex}.bld canvas{width:32px;height:48px;image-rendering:pixelated}.bld .cost{color:var(--amber);font-size:9px}.bld.poor .cost{color:var(--red)}.bld.locked{opacity:.45}.bld.locked .cost{color:var(--muted)}.palette{padding:6px calc(6px + var(--safe-r)) 6px calc(6px + var(--safe-l));background:var(--panel);border-top:1px solid var(--line)}.sheet{background:var(--panel);border:1px solid var(--line);border-left:3px solid var(--cyan);border-radius:6px;flex-direction:column;max-width:520px;max-height:52vh;margin:0 6px 6px;display:flex}.sheet-head{justify-content:space-between;align-items:center;gap:8px;padding:8px 8px 0 12px;display:flex}.sheet-head h2{margin:0;font-size:14px}.sheet-head button{min-width:36px;min-height:36px;padding:0;font-size:18px}.sheet-body{font-family:var(--text);-webkit-user-select:text;user-select:text;padding:6px 12px 12px;font-size:14px;line-height:1.45;overflow-y:auto}.sheet-body h3,.sheet-body .bld,.sheet-body button{font-family:var(--pixel)}.status{color:var(--cyan)}.status.problem{color:var(--red)}.stats{grid-template-columns:auto 1fr;gap:2px 10px;margin:6px 0;display:grid}.stats dt{color:var(--muted);font-size:13px}.stats dd{margin:0}.actions{flex-wrap:wrap;gap:8px;margin:6px 0;display:flex}.toggle[aria-pressed=false]{color:var(--muted)}.trade{flex-direction:column;gap:4px;display:flex}.trade-head,.trade-row{grid-template-columns:1fr auto auto;align-items:center;gap:6px;display:grid}.trade-head{font-family:var(--pixel);color:var(--muted);font-size:10px}.trade-head span:nth-child(n+2){text-align:center}.good{flex-wrap:wrap;align-items:center;gap:2px;display:inline-flex}.stepper{align-items:center;gap:2px;display:inline-flex}.stepper button{min-width:36px;min-height:36px;padding:0}.stepper .n{text-align:center;min-width:26px;font-family:var(--pixel);font-size:12px}.contract{border:1px solid var(--line);border-radius:4px;margin:6px 0;padding:6px 8px}.res-table{flex-direction:column;gap:3px;display:flex}.res-line{grid-template-columns:1fr auto auto;align-items:baseline;gap:8px;display:grid}.res-line .note{grid-column:1/-1;margin-top:-3px;font-size:12px}.res-line .note:empty{display:none}.note.bad{color:var(--red)}.note.warn{color:var(--amber)}.mood{margin:0;padding-left:18px}.modal{padding:calc(16px + var(--safe-t)) 16px calc(16px + var(--safe-b));z-index:10;background:#05060c8c;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.modal-card,.modal-title{background:var(--panel-solid);border:1px solid var(--line);border-radius:8px;width:100%;max-width:440px;max-height:100%;padding:18px 16px;animation:.3s ease-out cardin;overflow-y:auto}.modal-card p,.modal-card li{font-family:var(--text);font-size:15px;line-height:1.5}@keyframes cardin{0%{opacity:0;transform:translateY(10px)}}.modal:has(.modal-title){background:linear-gradient(#05060c26,#05060cbf);align-items:flex-end}.modal-title{text-align:center;background:#0e1018e0;margin-bottom:4vh}.title-logo{letter-spacing:.04em;flex-direction:column;margin:4px 0 10px;font-size:30px;line-height:1.05;display:flex}.title-logo span:nth-child(2){color:var(--amber)}.tagline{font-family:var(--text);color:var(--muted);font-size:15px}.fine{font-family:var(--text);color:#6d7388;margin:12px 0 0;font-size:12px}.menu-buttons{flex-direction:column;gap:8px;margin-top:14px;display:flex}.menu-buttons button{width:100%}.big{color:#ffe3a1;font-size:20px}.field{color:var(--muted);flex-direction:column;gap:4px;font-size:11px;display:flex}.field input{font:inherit;color:var(--ink);border:1px solid var(--line);-webkit-user-select:text;user-select:text;background:#0b0d14;border-radius:4px;padding:10px;font-size:16px}.locations{grid-template-columns:1fr 1fr;gap:6px;display:grid}.location{border:1px solid var(--line);border-radius:4px;flex-direction:column;gap:2px;padding:8px;font-size:11px;display:flex}.location span{font-family:var(--text);color:var(--muted);font-size:12px}.location.on{border-color:var(--amber)}.location.off{opacity:.45}.check{font-family:var(--text);align-items:center;gap:10px;margin-top:14px;font-size:15px;display:flex}.check input{width:22px;height:22px;accent-color:var(--amber)}.help section p{margin-bottom:4px}.goal-list{flex-direction:column;gap:6px;margin:0;padding:0;list-style:none;display:flex}.goal-list li{flex-direction:column;gap:2px;display:flex}.goal-list strong{font-family:var(--pixel);font-size:12px;font-weight:400}.goal-list .done strong{color:var(--green)}.goal-list .now strong{color:#ffe3a1}.goal-list .later{opacity:.5}.goal-list .divider{font-family:var(--pixel);color:var(--muted);margin-top:6px;font-size:10px}.news-list{flex-direction:column;gap:8px;margin:0;padding:0;list-style:none;display:flex}.news-list .day{font-family:var(--pixel);color:var(--muted);font-size:10px}.news-list .big{color:#ffe3a1;font-size:inherit}.news-list .warn{color:var(--red)}.unlocks{padding-left:18px}#debug{bottom:calc(70px + var(--safe-b));color:#9ff0f4;pointer-events:none;background:#0009;border-radius:4px;margin:0;padding:6px 8px;font-family:ui-monospace,Menlo,Consolas,monospace;font-size:10px;line-height:1.4;position:fixed;right:8px}@media (width>=700px){.goal{width:380px;right:auto}.sheet{margin-left:8px}.res-row{justify-content:flex-start;gap:14px}}@media (prefers-reduced-motion:reduce){.hint,.chip[data-state=bad],.goal.fresh,.toast,.modal-card{animation:none}}
