:root{--panel:linear-gradient(180deg, #384a62f0, #1c2636f0);--panel-edge:#8fb2d6;--panel-dark:#0f1724;--text:#eef4fb;--muted:#9fb3c8;--accent:#ffcf3f;--accent-2:#63d36b;--runner:#ff8a00;--danger:#ff5a4f;--radio:#2b2f22;--radio-text:#b9ff6a;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;font:13px/1.35 Trebuchet MS,Segoe UI,Verdana,sans-serif}*{box-sizing:border-box}[hidden]{display:none!important}html,body{height:100%;color:var(--text);background:#a9d4f2;margin:0;overflow:hidden}#view{touch-action:none;width:100%;height:100%;display:block;position:fixed;inset:0}#labels{pointer-events:none;position:fixed;inset:0;overflow:hidden}#hud{pointer-events:none;position:fixed;inset:0}#hud>*{pointer-events:auto}button{font:inherit;color:var(--text);cursor:pointer;text-shadow:0 1px #0008;background:linear-gradient(#5f86b3,#34557d);border:1px solid #1d3047;border-color:#a9c6e6 #1d3047 #1d3047 #a9c6e6;border-radius:4px;padding:3px 9px;font-weight:700;box-shadow:inset 0 1px #ffffff40}button:hover{background:linear-gradient(#78a0cf,#3f6895)}button:active{background:linear-gradient(#2c4868,#44709f)}.panel{background:var(--panel);border:2px solid var(--panel-edge);-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);border-radius:8px;position:absolute;box-shadow:0 4px 16px #0007,inset 0 1px #ffffff30}.panel h3{letter-spacing:.12em;color:var(--accent);text-shadow:0 1px #000;border-bottom:1px solid #fff2;margin:8px 10px 4px;padding-bottom:3px;font-size:11px}.empty{color:var(--muted);padding:4px 10px 8px;font-style:italic}.ribbon{border-top:none;border-radius:0 0 12px 12px;align-items:center;gap:14px;max-width:calc(100vw - 16px);padding:5px 10px;display:flex;top:0;left:50%;transform:translate(-50%)}.brand{flex-direction:column;line-height:1.05;display:flex}.brand b{letter-spacing:.08em;color:var(--accent);text-shadow:0 2px #7a4b00;font-size:15px}.brand .sub{color:var(--muted);font-size:10px}.stats{flex-wrap:wrap;gap:6px;display:flex}.stat{background:var(--panel-dark);white-space:nowrap;border:1px solid #ffffff1f;border-radius:10px;align-items:center;gap:4px;padding:1px 8px;display:inline-flex}.stat i{font-style:normal}.tools{white-space:nowrap;align-items:center;gap:8px;display:flex}.toggle{color:var(--muted);cursor:pointer;align-items:center;gap:2px;display:inline-flex}.crew{top:var(--hud-top,100px);width:260px;max-height:calc(100vh - 370px);left:8px;overflow:auto}.crew .list .row{cursor:pointer;border-left:3px solid #0000;grid-template-columns:22px auto 1fr;align-items:center;gap:6px;padding:4px 10px;display:grid}.crew .list .row:hover{background:#ffffff14}.crew .list .row.runner{border-left-color:var(--runner)}.crew .list .row.mcp{border-left-color:var(--accent)}.crew .connect{margin:8px 0 4px}.crew .connect .cs{color:#c8d3dc;align-items:center;gap:4px;margin:4px 0;font-size:11px;display:flex}.crew .connect .cs input{color:#fff;min-width:0;font:inherit;background:#0d151c;border:1px solid #fff3;border-radius:3px;flex:1;padding:2px 6px}.crew .connect .cs button{padding:2px 8px;font-size:11px}.crew .connect code{color:#9fe39a;word-break:break-all;-webkit-user-select:all;user-select:all;background:#0d151c;border-radius:4px;padding:6px;font:10px/1.35 ui-monospace,Menlo,monospace;display:block}.crew .connect .hint{color:#9fb0bd;margin-top:4px;font-size:10.5px}.crew .ico{font-size:15px}.crew .job{color:var(--muted);text-overflow:ellipsis;white-space:nowrap;text-align:right;font-size:11px;overflow:hidden}.bar{background:#0008;border-radius:2px;height:4px;margin-top:2px;display:block;overflow:hidden}.bar .fill{background:linear-gradient(90deg, var(--accent-2), var(--accent));height:100%;display:block}.runners{padding:0 8px 8px}.runner{background:var(--panel-dark);border:1px solid #ffffff1a;border-radius:6px;margin-bottom:5px;padding:5px 7px}.rhead{flex-wrap:wrap;align-items:baseline;gap:6px;display:flex}.rhead .st{text-transform:uppercase;background:#fff2;border-radius:6px;padding:0 5px;font-size:10px}.runner.running .st{background:#2f7d32}.runner.paused .st{background:#8a6d00}.runner.error .st{background:#8c2a24}.rhead .tok{color:var(--muted);margin-left:auto;font-size:10px}.rbtns{gap:4px;margin-top:4px;display:flex}.rbtns button{padding:1px 7px;font-size:11px}.thought{color:#d6e3f0;margin-top:4px;font-size:11px;font-style:italic}.minimap{width:240px;padding:8px;bottom:8px;right:8px}.minimap canvas{cursor:crosshair;width:220px;height:220px;image-rendering:pixelated;background:#e8d6a8;border:2px solid #20334a;border-radius:4px;display:block}.timelapse{align-items:center;gap:5px;margin-top:6px;font-size:11px;display:flex}.timelapse .tl-title{color:var(--accent);font-size:10px;font-weight:700}.timelapse input{min-width:0;accent-color:var(--accent);flex:1}.timelapse button{padding:0 6px;font-size:10px}.radio{background:linear-gradient(#3b3f33,#23261d);border-color:#6d7258;border-radius:10px;width:380px;bottom:8px;left:8px}.radio header{border-bottom:1px solid #0006;align-items:center;gap:8px;padding:6px 10px;display:flex}.radio header b{letter-spacing:.15em;color:#d8dcc6}.radio .led{background:#3a0d0d;border-radius:50%;width:9px;height:9px;box-shadow:inset 0 0 2px #000}.radio:has(.ptt.on) .led{background:var(--danger);box-shadow:0 0 8px var(--danger)}.radio .dial{align-items:center;gap:4px;margin-left:auto;display:inline-flex}.radio .dial button{background:linear-gradient(#5c604c,#2f3226);border-color:#8a8f73;padding:0 6px}.radio .ch{color:#ff4a2e;text-align:center;text-shadow:0 0 6px #ff3b1f;background:#120404;border-radius:3px;min-width:92px;padding:4px 7px;font:700 14px/1 Courier New,monospace}.radio .tts{color:#c7cbb3;align-items:center;gap:2px;font-size:11px;display:inline-flex}.radio .unlock{color:#ffe08a;width:100%;font:inherit;cursor:pointer;background:#3a3215;border:1px solid #c9a227;border-radius:4px;margin:0 0 6px;padding:6px;animation:1.6s ease-in-out infinite unlock-pulse;display:block}.radio .unlock[hidden]{display:none}@keyframes unlock-pulse{50%{background:#574a1a}}.radio .log{background:var(--radio);height:180px;color:var(--radio-text);border:1px solid #000;border-radius:4px;margin:6px 8px;padding:6px 8px;font:12px/1.4 Courier New,monospace;overflow-y:auto;box-shadow:inset 0 2px 6px #000a}.radio .msg{margin-bottom:2px}.radio .msg .mch{color:#6e8a3d;margin-right:4px}.radio .msg .mch:before{content:"ch"}.radio .msg b{cursor:pointer;color:#e7ffb8}.radio .msg b:hover{text-decoration:underline}.radio .msg[title]>span:last-child{cursor:pointer}.radio .msg[title]>span:last-child:hover{color:#fff3b0}.radio .msg.human b{color:#7fd8ff}.radio .msg.system{color:#f2d36b}.radio .msg.system b{color:#ffe9a0}.radio .send{gap:5px;padding:0 8px 8px;display:flex}.radio .send input{min-width:0;font:inherit;color:var(--radio-text);background:#15170f;border:1px solid #000;border-radius:4px;flex:1;padding:4px 6px}.radio .ptt{background:linear-gradient(#8a2b22,#4d1410);border-color:#c85a4e}.radio .ptt.on{background:linear-gradient(#ff5a4f,#b3261c);box-shadow:0 0 10px #ff5a4f}#labels>div{pointer-events:auto;white-space:nowrap;will-change:transform;position:absolute;top:0;left:0}.place{color:#fff;text-shadow:0 1px 2px #000,0 0 6px #000a;cursor:pointer;background:#0003;border-radius:8px;padding:1px 6px;font-size:13px;font-weight:700}.place.depot{color:var(--accent);background:#2a1d0066;border:1px solid #ffcf3f66;font-size:12px}.mlabel{--near:1;white-space:nowrap;cursor:pointer;padding:calc(1px * var(--near)) calc(5px + 1px * var(--near)) calc(1px * var(--near)) calc(5px + 1px * var(--near));box-sizing:border-box;color:#1d1600;background:#ffe14ddd;border:1px solid #0006;border-radius:8px;align-items:center;min-width:10px;min-height:10px;font-size:11px;font-weight:700;display:flex;box-shadow:0 1px 3px #0006}.mlabel .cs,.mlabel .job{vertical-align:bottom;max-width:calc(260px * var(--near) * var(--near));opacity:calc(var(--near) * 1.6 - .6);display:inline-block;overflow:hidden}.mlabel.runner{color:#fff;background:#ff8a00e6}.mlabel.sel{outline:2px solid #fff}.mlabel .job{margin-left:calc(4px * var(--near));opacity:calc((var(--near) * 1.6 - .6) * .85);font-weight:400}.toasts{top:var(--hud-top,100px);pointer-events:none;z-index:12;flex-direction:column;align-items:center;gap:6px;display:flex;position:fixed;left:50%;transform:translate(-50%)}.toast{pointer-events:auto;cursor:pointer;background:var(--panel);border:1px solid var(--panel-edge);border-radius:6px;max-width:320px;padding:6px 10px;transition:opacity .8s,transform .8s;box-shadow:0 3px 10px #0006}.toast.out{opacity:0;transform:translateY(-14px)}.toast.ok{border-color:#63d36b}.toast.err{border-color:var(--danger);background:linear-gradient(#6e2824f2,#3c1816f2)}.connecting{background:var(--panel);border:2px solid var(--panel-edge);border-radius:10px;padding:14px 22px;font-weight:700;position:fixed;top:45%;left:50%;transform:translate(-50%,-50%)}@media (max-width:900px){.crew{display:none}.radio{width:calc(100vw - 16px);bottom:8px}.radio .log{height:110px}.minimap{width:150px;padding:5px;top:64px;bottom:auto}.minimap canvas{width:138px;height:138px}.timelapse,.ribbon .brand .sub,.ribbon .stats .stat:nth-child(n+5){display:none}}.econ{top:var(--ribbon-h,42px);z-index:3;border-top:none;border-radius:0 0 12px 12px;align-items:center;gap:12px;max-width:calc(100vw - 16px);padding:4px 12px;display:flex;left:50%;transform:translate(-50%)}.up{color:#6dea7d}.down{color:#ff7d72}.treasury{cursor:default;min-width:150px;position:relative}.tline{align-items:center;gap:6px;display:flex}.coin{color:#2a1d00;background:radial-gradient(circle at 30% 30%,#ffe27a,#d19a1e);border:1px solid #7a4b00;border-radius:50%;place-items:center;width:21px;height:21px;font-size:10px;font-style:normal;font-weight:700;display:inline-grid}.money{color:#fff;text-shadow:0 1px #000;font-variant-numeric:tabular-nums;font-size:17px;line-height:1}.delta{font-variant-numeric:tabular-nums;font-size:12px;font-weight:700}.flow{color:var(--muted);font-size:10px;display:block}.tip.ledger{z-index:10;background:var(--panel);border:2px solid var(--panel-edge);border-radius:8px;min-width:220px;padding:6px 10px 8px;display:none;position:absolute;top:calc(100% + 6px);left:0;box-shadow:0 4px 16px #0008}.treasury:hover .tip{display:block}.ledger .th{color:var(--accent);letter-spacing:.1em;text-transform:uppercase;margin-bottom:3px;font-size:11px}.ledger .lrow{font-variant-numeric:tabular-nums;justify-content:space-between;gap:16px;display:flex}.ledger .lrow.total{border-top:1px solid #fff3;margin-top:3px;padding-top:3px}.pops{gap:6px;display:flex}.tier{--tier:#aaa;color:var(--tier);background:var(--panel-dark);border:1px solid color-mix(in srgb, var(--tier) 55%, transparent);cursor:default;border-radius:12px;align-items:center;gap:5px;padding:2px 9px 2px 6px;display:flex}.tier.locked{opacity:.45;filter:grayscale(.6)}.ticon{font-style:normal}.tpop{font-variant-numeric:tabular-nums;text-align:right;min-width:44px;font-weight:700}.hbar{background:#0009;border-radius:4px;width:42px;height:7px;overflow:hidden;box-shadow:inset 0 1px 2px #000a}.hfill{width:0;height:100%;transition:width .6s,background .6s;display:block}.econ button.on{background:linear-gradient(#63b36b,#2f7d32)}.liv-legend{color:var(--muted);align-items:center;gap:4px;font-size:10px;display:inline-flex}.liv-legend b{background:linear-gradient(90deg,#db2e29,#f7cc2e,#33bf4d);border:1px solid #0006;border-radius:4px;width:54px;height:8px}.goods-panel{z-index:8;width:540px;max-width:calc(100vw - 20px);padding-bottom:8px;top:calc(100% + 4px);right:0}.grow{grid-template-columns:1.7fr .7fr .7fr .95fr .95fr;align-items:center;gap:6px;padding:2px 10px;display:grid}.grow:not(.ghead):hover{background:#ffffff12}.ghead{color:var(--accent);letter-spacing:.08em;text-transform:uppercase;font-size:10px}.grow .num{text-align:right;font-variant-numeric:tabular-nums}.gname{white-space:nowrap;text-overflow:ellipsis;align-items:center;display:flex;overflow:hidden}.gchip{border:1px solid #0008;border-radius:3px;flex:none;width:10px;height:10px;margin-right:6px;display:inline-block}input.rule{text-align:right;width:100%;min-width:0;font:inherit;color:#fff;background:#0d151c;border:1px solid #fff3;border-radius:3px;padding:1px 4px}input.rule::placeholder{color:#6f8499}.ghint{color:var(--muted);margin:6px 10px 0;font-size:10.5px}.buildmenu{z-index:2;width:min(940px,100vw - 652px);margin-inline:auto;padding-bottom:4px;bottom:8px;left:396px;right:256px}.tabs{align-items:flex-end;gap:2px;padding:6px 8px 0;display:flex}.tab{background:linear-gradient(#43607f,#27384e);border-bottom:none;border-radius:6px 6px 0 0;padding:3px 10px}.tab.on{color:#2b1c00;text-shadow:none;background:linear-gradient(#ffd75e,#e0a51c)}.tabs .demolish-btn{background:linear-gradient(#c9534a,#8a2b22);margin-left:auto}.tabs .demolish-btn.on{background:linear-gradient(#ff6a5e,#b3261c);box-shadow:0 0 8px #ff5a4f}.tabs .x{margin-left:4px;padding:0 7px}.cards{align-items:stretch;gap:6px;min-height:96px;padding:8px;display:flex;overflow-x:auto}.cards[data-empty]:not([data-empty=""]):after{content:attr(data-empty);color:var(--muted);padding:10px;font-style:italic}.card{text-align:left;text-shadow:none;background:linear-gradient(#46627f,#2a3c52);flex-direction:column;flex:0 0 172px;gap:3px;padding:5px 7px;font-weight:400;display:flex}.card:hover{filter:brightness(1.15)}.card.sel{outline:2px solid var(--accent)}.card.poor{opacity:.55}.card.poor .cost{color:#ff8d84}.card.locked{opacity:.42;filter:grayscale(.9);cursor:not-allowed}.card .lock{color:#ffd75e;font-size:11px;font-weight:700;display:none}.card.locked .lock{display:block}.chead{justify-content:space-between;gap:8px;display:flex}.chead b{text-shadow:0 1px #000a}.cost{color:var(--accent);white-space:nowrap;font-weight:700}.cmeta{color:#d6e3f0;gap:8px;font-size:11px;display:flex}.dim{color:var(--muted)}.cflow{flex-wrap:wrap;align-items:center;gap:3px;font-size:11px;display:flex}.gc{white-space:nowrap;background:#0d151c;border:1px solid #ffffff2a;border-radius:9px;align-items:center;gap:3px;padding:0 6px 0 4px;font-size:10.5px;display:inline-flex}.gc i{border:1px solid #0008;border-radius:50%;width:8px;height:8px}.gc.env{border-style:dashed}.arrow{color:var(--accent);font-weight:700}.roadtool{flex-wrap:wrap;align-items:center;gap:8px 18px;padding:10px 12px;display:flex}.roadtool .opt{align-items:center;gap:4px;display:flex}.roadtool .lbl{color:var(--muted);margin-right:2px;font-size:11px}.roadtool .hint{color:var(--muted);flex-basis:100%;font-size:11px}.chipbtn{align-items:center;gap:5px;padding:2px 9px;display:inline-flex}.chipbtn.on{color:#2b1c00;text-shadow:none;background:linear-gradient(#ffd75e,#e0a51c)}.swatch{border:1px solid #0009;border-radius:2px;width:10px;height:10px}.primary{background:linear-gradient(#63b36b,#2f7d32)}.inspector{top:var(--hud-top,100px);z-index:2;width:284px;min-height:90px;max-height:calc(100vh - 420px);padding-bottom:8px;right:8px;overflow:auto}.inspector header{justify-content:space-between;align-items:center;gap:8px;padding:7px 10px 0;display:flex}.ititle{color:var(--accent);text-shadow:0 1px #000;font-size:15px}.inspector .x{padding:0 7px}.isub{color:var(--muted);padding:0 10px;font-size:11px}.istatus{background:#0d151c;border-left:4px solid #6f8499;border-radius:4px;margin:6px 10px;padding:3px 8px}.istatus.ok{border-left-color:#63d36b}.istatus.info{border-left-color:#6fb4ff}.istatus.warn{border-left-color:#ffcf3f}.istatus.bad{border-left-color:var(--danger)}.ibody{padding:0 10px}.irow{grid-template-columns:84px 1fr 52px;align-items:center;gap:6px;padding:2px 0;display:grid}.irow.plain{grid-template-columns:84px 1fr;align-items:start}.ilabel{color:#c8d3dc;font-size:11.5px}.irow.basic .ilabel{color:#fff;font-weight:700}.ibar{background:#0009;border-radius:4px;height:8px;overflow:hidden;box-shadow:inset 0 1px 2px #000a}.ifill{width:0;height:100%;transition:width .5s;display:block}.ival{text-align:right;font-variant-numeric:tabular-nums;font-size:11.5px}.ival.wide{text-align:left}.isec{color:var(--accent);letter-spacing:.12em;text-transform:uppercase;border-bottom:1px solid #fff2;margin:6px 0 2px;font-size:10px}.ibtns{gap:6px;padding:8px 10px 0;display:flex}.danger{background:linear-gradient(#c9534a,#8a2b22)}.ibtns button:disabled{opacity:.5;cursor:not-allowed}.ptip{z-index:11;pointer-events:none;white-space:pre-line;border:1px solid var(--panel-edge);background:#0f1724ed;border-radius:5px;max-width:300px;padding:4px 9px;font-size:12px;position:fixed;top:0;left:0;box-shadow:0 3px 10px #0008}.ptip .l0{color:var(--accent);font-weight:700}.ptip .bad{color:#ff8d84}.ptip .dim{color:var(--muted);font-size:11px}.site-sign{--near:1;cursor:pointer;padding:1px calc(2px + 5px * var(--near));color:#3b2200;font-size:calc(5px + 6px * var(--near));background:#fff3d1;border:2px solid #ff8a1f;border-radius:3px;flex-direction:column;align-items:center;margin-top:-12px;line-height:1.15;display:flex;box-shadow:0 1px 3px #0006}.site-sign:after{content:"";background:#7a4b00;width:2px;height:12px;position:absolute;top:100%;left:calc(50% - 1px)}.site-sign b{text-overflow:ellipsis;max-width:180px;overflow:hidden}.site-sign i{color:#6b4a1a;max-width:calc(220px * var(--near) * var(--near));max-height:calc(14px * var(--near));opacity:calc(var(--near) * 1.6 - .6);font-size:.9em;font-style:normal;overflow:hidden}.site-sign.claimed{color:#0f2a40;background:#e4f3ff;border-color:#3b8fd9}.site-sign.claimed:after{background:#1d4a73}.site-sign.claimed i{color:#35607f}.site-sign.demo{color:#4a0f0a;background:#ffe3e0;border-color:#d63a2f}.ebubble{--near:1;cursor:pointer;width:calc(8px + 16px * var(--near));height:calc(8px + 16px * var(--near));font-size:calc(2px + 12px * var(--near));background:#ffcf3f;border:2px solid #7a4b00;border-radius:50%;place-items:center;margin-top:-6px;line-height:1;display:grid;box-shadow:0 1px 3px #0007}.ebubble.bad{background:#ff6a5e;border-color:#7a1710}.ebubble:after{content:"";border:3px solid #0000;border-top:5px solid #7a4b00;position:absolute;top:100%;left:calc(50% - 3px)}.ebubble.bad:after{border-top-color:#7a1710}.tabs .flag-btn{white-space:nowrap;color:#2b1c00;text-shadow:none;background:linear-gradient(#ffbf4a,#d9861a);border-color:#ffe2a0;flex:none;align-items:center;gap:6px;margin-left:auto;padding:3px 12px;font-size:14px;display:inline-flex;box-shadow:0 0 10px #ffb02e66,inset 0 1px #fff6}.tabs .flag-btn:hover{filter:brightness(1.1)}.tabs .flag-btn.on{background:linear-gradient(#fff1b8,#ffc83d);outline:2px solid #fff;box-shadow:0 0 14px #ffd75e}.tabs .flag-btn+.demolish-btn{margin-left:6px}kbd{color:inherit;background:#0004;border:1px solid #0005;border-radius:3px;padding:2px 4px;font:700 10px/1 ui-monospace,Menlo,monospace}.plant-hint{min-width:0;color:var(--muted);white-space:nowrap;text-overflow:ellipsis;flex:0 auto;align-self:center;margin-left:10px;font-size:11px;font-style:italic;overflow:hidden}.econ button.alert{animation:1.4s ease-in-out infinite proj-pulse;box-shadow:0 0 8px #ffb02e}@keyframes proj-pulse{50%{box-shadow:0 0 2px #ffb02e}}.pbadge{min-width:18px;color:var(--accent);text-align:center;font-variant-numeric:tabular-nums;background:#0007;border-radius:9px;padding:0 5px;display:inline-block}.flagbox{z-index:11;will-change:transform;border-color:#ffb02e;width:300px;padding:8px 10px;position:fixed;top:0;left:0}.flagbox b{color:var(--accent);font-variant-numeric:tabular-nums;margin-bottom:4px;display:block}.flagbox input{width:100%;font:inherit;color:#fff;background:#0d151c;border:1px solid #ffb02e99;border-radius:4px;padding:4px 7px}.flagbox input:focus{outline:2px solid #ffb02e}.flagbox input::placeholder{color:#6f8499;font-style:italic}.fl-hint{color:var(--muted);margin-top:4px;font-size:11px}.fl-radio{color:#b9ff6a;margin-top:2px;font-size:11px}.flag-label{--near:1;--tone:#ffb02e;cursor:pointer;padding:1px calc(2px + 5px * var(--near));color:#fff;border:2px solid var(--tone);font-size:calc(5px + 6px * var(--near));background:#1d2330ee;border-radius:3px;flex-direction:column;align-items:center;margin-top:-2px;line-height:1.15;display:flex;box-shadow:0 1px 3px #0006}.flag-label.wait{--tone:#ffb02e}.flag-label.plan{--tone:#3fb5ff}.flag-label.work{--tone:#4fd66a}.flag-label.sel{outline:2px solid #fff}.flag-label b{text-overflow:ellipsis;max-width:200px;font-style:italic;overflow:hidden}.flag-label i{color:var(--tone);max-width:calc(220px * var(--near) * var(--near));max-height:calc(14px * var(--near));opacity:calc(var(--near) * 1.6 - .6);font-size:.9em;font-style:normal;overflow:hidden}.site-sign.planned{color:#0f2a40;background:#e3f4ff;border-color:#3fb5ff}.site-sign.planned:after{background:#1d4a73}.site-sign.planned i{color:#35607f}.task-tag{--near:1;cursor:pointer;padding:0 calc(2px + 4px * var(--near));color:#3b2200;font-size:calc(4px + 7px * var(--near));opacity:calc(var(--near) * 1.6 - .4);background:#fff7dce8;border:1px solid #7a4b00;border-radius:8px;line-height:1.3;box-shadow:0 1px 3px #0005}.task-tag.claimed{color:#0f2a40;background:#e4f3ffe8;border-color:#3b8fd9}.task-tag.blocked{color:#55554e;opacity:calc(var(--near) * 1.2 - .3);background:#ecebe6e8;border-color:#8a8a82}.task-tag.done{opacity:calc(var(--near) * .7);filter:grayscale(.8);text-decoration:line-through}.projects{top:var(--hud-top,100px);z-index:2;width:340px;max-height:calc(100vh - 370px);padding-bottom:6px;left:276px;overflow:auto}.projects header{justify-content:space-between;align-items:center;gap:8px;padding:7px 10px 0;display:flex}.projects .x{padding:0 7px}.ptitle{letter-spacing:.12em;color:var(--accent);text-shadow:0 1px #000;font-size:12px}.pcontractor{background:#0d151c;border-left:4px solid #6f8499;border-radius:4px;margin:6px 10px;padding:3px 8px;font-size:12px}.pcontractor.ok{border-left-color:#63d36b}.pcontractor.none{color:#ffe08a;border-left-color:#ffcf3f}.plist{padding:0 6px}.prow{background:#ffffff0d;border-left:4px solid #6f8499;border-radius:4px;margin:3px 0}.prow.wait{border-left-color:#ffb02e}.prow.plan{border-left-color:#3fb5ff}.prow.work{border-left-color:#4fd66a}.prow.sel{outline:1px solid var(--accent);background:#fff2}.phead{cursor:pointer;grid-template-columns:18px 22px 1fr 54px;align-items:center;gap:4px;padding:4px 6px 4px 2px;display:grid}.phead:hover{background:#ffffff12}.caret{width:18px;height:18px;box-shadow:none;color:var(--muted);background:0 0;border:none;padding:0;font-size:11px;line-height:1}.caret:hover{color:#fff;background:#fff2}.picon{text-align:center;font-style:normal}.pmain{flex-direction:column;min-width:0;display:flex}.pname{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.pstatus{color:var(--muted);text-overflow:ellipsis;white-space:nowrap;font-size:11px;overflow:hidden}.pstatus.wait{color:#ffcb6b}.pstatus.plan{color:#8fd0ff}.pstatus.work{color:#8be89b}.pwho{color:#c8d3dc;text-overflow:ellipsis;white-space:nowrap;font-size:10.5px;overflow:hidden}.pcnt{text-align:right;font-variant-numeric:tabular-nums;flex-direction:column;align-items:stretch;gap:3px;font-size:11px;display:flex}.tasktree{padding:2px 4px 5px 18px}.tempty{color:var(--muted);padding:2px 4px;font-size:11px;font-style:italic}.trow{cursor:pointer;border-radius:3px;grid-template-columns:20px 1fr 46px 54px;align-items:center;gap:5px;padding:2px 3px;font-size:11.5px;display:grid}.trow:hover{background:#ffffff14}.trow.focus{background:#ffcf3f22;outline:1px solid #ffcf3f88}.trow.done{opacity:.5}.trow.done .ttext{text-decoration:line-through}.tkind{text-align:center;font-style:normal}.tmain{flex-direction:column;min-width:0;display:flex}.ttext{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.twho{color:var(--muted);text-overflow:ellipsis;white-space:nowrap;font-size:10px;font-style:normal;overflow:hidden}.treward{text-align:right;color:var(--accent);font-variant-numeric:tabular-nums;font-size:10.5px}.treward.held{opacity:.6}.treward.paid{color:#8be89b}.tneed{color:#c8d3dc;text-overflow:ellipsis;white-space:nowrap;font-size:10px;font-style:normal;overflow:hidden}.trow.blocked{opacity:.55}.trow.blocked .twho{color:#ffcb6b}.trow.blocked:hover{opacity:.85}.ptabs{gap:4px;padding:6px 10px 0;display:flex}.ptab{box-shadow:none;color:var(--muted);background:#ffffff14;border:1px solid #fff2;flex:1;padding:2px 6px;font-size:11.5px}.ptab.on{color:#fff;background:linear-gradient(#63b36b,#2f7d32)}.crewlist{padding:4px 6px 0}.crow{cursor:pointer;background:#ffffff0d;border-left:4px solid #4fd66a;border-radius:4px;flex-direction:column;gap:1px;margin:3px 0;padding:3px 6px;display:flex}.crow:hover{background:#fff2}.crow.idle{border-left-color:#6f8499}.crow.boss{border-left-color:var(--accent)}.crow.away{opacity:.55;cursor:default}.ctop{grid-template-columns:1fr auto auto;align-items:baseline;gap:8px;display:grid}.cname{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.crow.boss .cname{color:var(--accent)}.cmachine{color:var(--muted);font-size:10.5px}.cwallet{color:var(--accent);font-variant-numeric:tabular-nums;text-align:right;min-width:52px;font-size:11.5px}.con{color:#c8d3dc;text-overflow:ellipsis;white-space:nowrap;font-size:10.5px;overflow:hidden}.crow.idle .con{color:var(--muted);font-style:italic}#labels>.wage-pop{pointer-events:none;z-index:3}.wage-pop span{color:var(--accent);white-space:nowrap;text-shadow:0 1px 2px #000,0 0 6px #000c;font-size:15px;font-weight:700;animation:2.2s ease-out forwards wage-rise;display:inline-block}@keyframes wage-rise{0%{opacity:0;transform:translateY(8px)scale(.8)}12%{opacity:1;transform:translateY(0)scale(1.1)}60%{opacity:1}to{opacity:0;transform:translateY(-58px)scale(1)}}.inspector .tasktree{padding-left:0}.inspector .trow{grid-template-columns:20px 1fr 40px 54px}@media (max-width:1100px){.econ{flex-wrap:wrap;justify-content:center;width:max-content;max-width:calc(100vw - 16px)}.flow{display:none}}@media (max-width:900px){.buildmenu{width:auto;bottom:250px;left:8px;right:8px}.plant-hint{display:none}.projects{width:min(310px,100vw - 16px);top:120px;left:8px}.inspector{max-height:40vh;top:auto;bottom:360px;right:8px}.crew{display:none}.tpop{min-width:0}.hbar{width:24px}}.crew .connect .tabs{gap:4px;margin:4px 0;display:flex}.crew .connect .tabs button{opacity:.6;flex:1;padding:2px 6px;font-size:11px}.crew .connect .tabs button.on{opacity:1;border-color:#9fe39a88}.crew .connect code{white-space:pre-wrap}.radio .voicebar{border-bottom:1px solid #0004;align-items:center;gap:8px;padding:4px 10px;font-size:11px;display:flex}.radio .vsw{letter-spacing:.04em;color:#c7cbb3;background:linear-gradient(#4a4e3c,#2b2e22);border-color:#8a8f73;padding:1px 8px;font-size:10px}.radio .vsw.on{color:#e7ffb8;border-color:#6e8a3d}.radio .vstat{color:#c7cbb3;text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;overflow:hidden}.radio .vstat.bad{color:#f2d36b}.radio .vstat:empty{display:none}
