:root{--panel:#161b22;--panel-2:#1f262f;--edge:#3a4553;--edge-hi:#64748a;--text:#d9e2ec;--muted:#8796a8;--metal:#b8c4d4;--energy:#ffd84d;--good:#5cff8a;--bad:#ff5a5a;--accent:#3d8bfd;--side:226px}*{box-sizing:border-box}html.js body>*{visibility:visible}[hidden]{display:none!important}html,body{height:100%;color:var(--text);-webkit-user-select:none;user-select:none;background:#0b0d10;margin:0;font-family:Rajdhani,system-ui,sans-serif;font-size:15px;overflow:hidden}button{font:inherit;color:inherit;cursor:pointer}#app{position:fixed;inset:0}#view{top:0;bottom:0;right:0;left:var(--side);width:calc(100% - var(--side));cursor:default;height:100%;display:block;position:absolute}#view.cmd{cursor:crosshair}#overlay2d{top:0;left:var(--side);width:calc(100% - var(--side));pointer-events:none;height:100%;position:absolute}.bevel{background:linear-gradient(180deg, var(--panel-2), var(--panel));border:1px solid var(--edge);box-shadow:inset 0 1px #ffffff0f,0 6px 20px #00000073}#topbar{z-index:2;left:var(--side);border-bottom:1px solid var(--edge);background:linear-gradient(#1f262f,#141920);align-items:center;gap:22px;height:38px;padding:0 12px;display:flex;position:absolute;top:0;right:0;box-shadow:0 4px 14px #0006}#topbar[hidden],#side[hidden],#bottom[hidden]{display:none}.res{align-items:center;gap:8px;min-width:330px;display:flex}.res .label{letter-spacing:.12em;width:62px;font-size:12px;font-weight:700}.res.metal .label{color:var(--metal)}.res.energy .label{color:var(--energy)}.res .bar{border:1px solid var(--edge);background:#0b0e12;width:140px;height:10px;position:relative;overflow:hidden}.res .bar i{width:0;transition:width .2s;position:absolute;inset:0 auto 0 0}.res.metal .bar i{background:linear-gradient(90deg,#6e7c8f,#c9d4e3)}.res.energy .bar i{background:linear-gradient(90deg,#b8901a,#ffe27a)}.res .amount{font-variant-numeric:tabular-nums;min-width:84px;font-weight:600}.res .flow{font-variant-numeric:tabular-nums;font-size:13px}.res .flow .in{color:var(--good);font-weight:600}.res .flow .out{color:#ff9a7a;font-weight:600}.res.stall .bar{border-color:var(--bad);animation:.7s infinite blink}@keyframes blink{50%{box-shadow:0 0 8px var(--bad)}}.meta{color:var(--muted);font-variant-numeric:tabular-nums;gap:16px;margin-left:auto;font-weight:600;display:flex}.tbtns{gap:6px;display:flex}.tbtns button{border:1px solid var(--edge);background:#0f1318;border-radius:3px;width:30px;height:26px}.tbtns button:hover{border-color:var(--edge-hi);background:#18202a}#side{width:var(--side);border-right:1px solid var(--edge);background:linear-gradient(90deg,#141920,#1a2028);flex-direction:column;gap:8px;padding:8px;display:flex;position:absolute;top:0;bottom:0;left:0;box-shadow:4px 0 18px #00000073}#minimap{border:1px solid var(--edge-hi);cursor:pointer;image-rendering:auto;background:#000;width:210px;height:210px}#orders{grid-template-columns:repeat(3,1fr);gap:4px;display:grid}#orders button{letter-spacing:.04em;border:1px solid var(--edge);white-space:nowrap;text-overflow:ellipsis;letter-spacing:.01em;background:linear-gradient(#27303b,#1a2028);border-radius:3px;height:30px;padding:0 3px;font-size:13px;font-weight:700;overflow:hidden}#orders button.wide{color:#ffd84d;border-color:#6b5a24;grid-column:1/-1}#orders button:hover{border-color:var(--edge-hi)}#orders button.on{border-color:var(--good);color:var(--good)}#orders button kbd{font:inherit;opacity:.55;margin-left:2px;font-size:11px}#build-title{letter-spacing:.14em;color:var(--muted);margin-top:2px;font-size:12px;font-weight:700}#build{flex:1;grid-template-columns:repeat(3,1fr);align-content:start;gap:5px;padding-bottom:6px;display:grid;overflow-y:auto}.bbtn{aspect-ratio:1;background:radial-gradient(circle at 50% 42%,#4a6076 0%,#2a3847 45%,#161c24 100%);border:1px solid #3f4c5c;border-radius:4px;padding:0;position:relative;box-shadow:inset 0 1px #ffffff14}.bbtn canvas{width:100%;height:100%;display:block}.bbtn:hover{background:radial-gradient(circle at 50% 42%,#5d7892 0%,#33465a 45%,#1a2129 100%);border-color:#8fa6bd}.bbtn.on{border-color:var(--good);box-shadow:0 0 0 1px var(--good) inset}.bbtn.poor{opacity:.7}.bbtn .count{color:#fff;text-shadow:0 1px 2px #000,0 0 4px #000;font-size:15px;font-weight:700;position:absolute;top:1px;right:3px}.bbtn .prog{background:var(--good);height:3px;position:absolute;bottom:0;left:0}.bbtn .rep{color:var(--energy);font-size:12px;position:absolute;top:1px;left:3px}#bottom{left:calc(var(--side) + 10px);border-radius:4px;align-items:center;gap:12px;min-width:360px;max-width:640px;min-height:64px;padding:8px 12px;display:flex;position:absolute;bottom:10px}#bottom:empty{display:none}#bottom .icon{border:1px solid var(--edge);background:radial-gradient(circle at 50% 35%,#2b3541,#151a21);border-radius:4px;flex:none;width:56px;height:56px}#bottom .icon canvas{width:100%;height:100%}#bottom h3{margin:0;font-size:17px;font-weight:700}#bottom .sub{color:var(--muted);font-size:13px;line-height:1.3}#bottom .hp{border:1px solid var(--edge);background:#0b0e12;width:220px;height:6px;margin:4px 0}#bottom .hp i{background:var(--good);height:100%;display:block}#bottom .stats{color:var(--text);font-variant-numeric:tabular-nums;gap:12px;font-size:13px;display:flex}#bottom .stats b{color:var(--muted);font-weight:600}#bottom .groups{flex-wrap:wrap;gap:5px;display:flex}#bottom .grp{border:1px solid var(--edge);background:radial-gradient(circle at 50% 35%,#2b3541,#151a21);border-radius:4px;width:46px;height:46px;padding:0;position:relative}#bottom .grp:hover{border-color:var(--edge-hi)}#bottom .grp canvas{width:100%;height:100%}#bottom .grp span{text-shadow:0 1px 2px #000;font-weight:700;position:absolute;bottom:0;right:3px}#msgs{top:48px;left:calc(var(--side) + 14px);pointer-events:none;flex-direction:column;gap:4px;display:flex;position:absolute}#msgs div{border-left:3px solid var(--accent);background:#0c0f14d1;padding:4px 10px;font-weight:600;transition:opacity .6s}#msgs div.alert{border-color:var(--bad);color:#ffd0d0}#msgs div.good{border-color:var(--good);color:#d8ffe2}#tooltip{z-index:10;pointer-events:none;border-radius:4px;max-width:280px;padding:8px 10px;font-size:14px;position:fixed}#tooltip h4{margin:0 0 2px;font-size:16px}#tooltip p{color:var(--muted);margin:2px 0 6px;line-height:1.3}#tooltip .cost{font-variant-numeric:tabular-nums;gap:12px;font-weight:700;display:flex}#tooltip .m{color:var(--metal)}#tooltip .e{color:var(--energy)}#tooltip .t{color:var(--muted)}#tooltip .x{color:#b9c7d8;margin-top:4px;font-size:13px}#overlay{z-index:5;background:radial-gradient(#0a0c108c,#050608eb);place-items:center;display:grid;position:absolute;inset:0}#overlay[hidden]{display:none}.panel{text-align:center;border:1px solid var(--edge-hi);background:linear-gradient(#1f262f,#141920);border-radius:6px;width:min(460px,92vw);padding:26px 28px;box-shadow:0 20px 60px #0009}.panel[hidden]{display:none}.panel h1{letter-spacing:.12em;background:linear-gradient(#fff,#8fa3bb);color:#0000;-webkit-background-clip:text;background-clip:text;margin:0;font-family:Orbitron,Rajdhani,sans-serif;font-size:46px;font-weight:900}.panel h2{letter-spacing:.08em;margin:0 0 12px;font-family:Orbitron,sans-serif}.panel .tag{color:var(--muted);letter-spacing:.2em;text-transform:uppercase;margin:4px 0 20px;font-size:13px}.panel h1.logo{letter-spacing:.04em;filter:drop-shadow(0 2px #1a1d22)drop-shadow(0 6px 14px #0009);background:0 0;font-size:50px;line-height:1}.panel h1.logo a{background:linear-gradient(#fff 0%,#dfe5ee 38%,#7f8a9a 52%,#c8d0db 64%,#5d6673 100%);color:#0000;-webkit-background-clip:text;background-clip:text;text-decoration:none}.panel h1.logo span{background:linear-gradient(#ffe7b0 0%,#ffb43a 45%,#b5600c 55%,#ffa531 75%,#7a3a06 100%);-webkit-background-clip:text;background-clip:text}#menu .tag{color:#f3d9b5;letter-spacing:.22em;margin:8px 0 16px;font-family:Orbitron,sans-serif;font-size:11.5px;font-weight:700}@media (width<=420px){.panel h1.logo{font-size:40px}#menu .tag{letter-spacing:.1em;font-size:10.5px}}#account-note .note{text-align:left;background:linear-gradient(#ffb43a21,#ffb43a0d);border:1px solid #b07a1e;border-left:4px solid #ffb43a;border-radius:4px;margin:0 0 16px;padding:12px 14px}#account-note .note>b{color:#ffd27a;letter-spacing:.04em;font-size:15px;display:block}#account-note .note>span{color:#dfe4ea;margin-top:3px;font-size:14px;line-height:1.4;display:block}#account-note .note>span b{color:#fff}#account-note .note.ok{border-color:#2f7a4a;border-left-color:var(--good);background:#5cff8a12}#account-note .note.ok>b{color:var(--good)}#account-note .note-btns{gap:8px;margin-top:10px;display:flex}#account-note .note-btns button{flex:1;margin:0;padding:8px 10px;font-size:14px;line-height:1.2}.field{justify-content:space-between;align-items:center;gap:12px;margin:10px 0;display:flex}.field>span{color:var(--muted);font-weight:600}.seg{border:1px solid var(--edge);border-radius:4px;display:flex;overflow:hidden}.seg button{background:#10151b;border:0;padding:6px 14px;font-weight:600}.seg button+button{border-left:1px solid var(--edge)}.seg button.on{background:var(--accent);color:#fff}.seed{gap:6px;display:flex}.seed input{border:1px solid var(--edge);width:100px;color:var(--text);font:inherit;text-align:center;background:#0d1116;border-radius:4px;padding:5px 8px;font-weight:700}.seed button{border:1px solid var(--edge);background:#10151b;border-radius:4px}button.primary{letter-spacing:.1em;text-transform:uppercase;color:#fff;background:linear-gradient(#4b95ff,#2a6fd6);border:1px solid #6aa8ff;border-radius:4px;width:100%;margin-top:18px;padding:11px;font-size:18px;font-weight:700;display:block}button.primary:hover{filter:brightness(1.1)}button.ghost{border:1px solid var(--edge);background:0 0;border-radius:4px;width:100%;margin-top:8px;padding:8px;font-weight:600;display:block}.howto{text-align:left;color:var(--muted);margin-top:18px;font-size:14px;line-height:1.45}.howto b{color:var(--text)}#help table,#end table{text-align:left;border-collapse:collapse;width:100%;font-size:14px}#help td,#end td{border-bottom:1px solid #262f3a;padding:4px 6px}#help td:first-child{color:var(--energy);white-space:nowrap;font-weight:600}#end td:last-child{text-align:right;font-variant-numeric:tabular-nums;font-weight:700}#end-title{letter-spacing:.08em;font-size:clamp(28px,8vw,38px)}#end-title.win{background:linear-gradient(#d8ffe2,#5cff8a);-webkit-background-clip:text;background-clip:text}#end-title.lose{background:linear-gradient(#ffd0d0,#ff5a5a);-webkit-background-clip:text;background-clip:text}#btn-music.off{opacity:.4;text-decoration:line-through}.panel{position:relative}.panel.wide{text-align:left;width:min(620px,94vw);max-height:90vh;overflow-y:auto}.panel.wide h2{text-align:center}.panel h3{letter-spacing:.12em;text-transform:uppercase;color:var(--muted);border-bottom:1px solid var(--edge);margin:22px 0 8px;padding-bottom:4px;font-size:14px}.panel h3 .on{color:var(--good)}.panel h3 .off{color:var(--muted);font-weight:500}.sheet-x{color:var(--muted);background:0 0;border:0;padding:6px 10px;font-size:18px;position:absolute;top:8px;right:10px}.sheet-x:hover{color:var(--text)}.sheet-loading{text-align:center;color:var(--muted);padding:40px;font-size:24px}.muted{color:var(--muted)}.small{font-size:13px}.panel a{color:#7fb2ff}.ok{color:#b5ffcb;background:#5cff8a1a;border:1px solid #5cff8a66;border-radius:4px;margin:8px 0;padding:8px 10px}.err{color:#ffc0c0;background:#ff5a5a1a;border:1px solid #ff5a5a73;border-radius:4px;margin:8px 0;padding:8px 10px}.err[hidden]{display:none}.form{flex-direction:column;gap:10px;display:flex}.form label{color:var(--muted);flex-direction:column;gap:4px;font-size:14px;font-weight:600;display:flex}.form label small{font-weight:500}.form label.check{flex-direction:row;align-items:center;gap:8px}.form input:not([type=checkbox]){border:1px solid var(--edge);color:var(--text);font:inherit;background:#0d1116;border-radius:4px;padding:9px 10px;font-size:16px}.form input:focus{border-color:var(--accent);outline:none}.form.row{flex-direction:row;align-items:flex-end}.form.row label{flex:1}.form.row button{width:auto;margin:0;padding:9px 16px}.form button.primary{margin-top:6px}button.primary.small{padding:9px 14px;font-size:14px}button.ghost.small,.sbtn.small{width:auto;margin:0;padding:5px 10px;font-size:13px;display:inline-block}button.danger{color:#ff9a9a;border-color:#ff5a5a80}button:disabled{opacity:.5;cursor:wait}.btnrow{gap:8px;display:flex}.btnrow>button{flex:1}kbd{opacity:.6;margin-left:6px;font-size:11px}.or{color:var(--muted);align-items:center;gap:10px;margin:16px 0 10px;font-size:13px;display:flex}.or:before,.or:after{content:"";background:var(--edge);flex:1;height:1px}.social{flex-direction:column;gap:8px;display:flex}.sbtn{text-align:center;background:var(--c,#333);border:1px solid #ffffff26;border-radius:4px;padding:10px;font-weight:700;text-decoration:none;display:block;color:#fff!important}.sbtn:hover{filter:brightness(1.15)}.who{align-items:center;gap:12px;margin:4px 0 12px;display:flex}.who img,.who .ava{background:#0d1116;border-radius:50%;place-items:center;width:48px;height:48px;font-size:24px;display:grid}.acc-links{gap:8px;display:flex}.acc-links button{margin:0}.links .lrow{border-bottom:1px solid #222a33;justify-content:space-between;align-items:center;padding:6px 0;display:flex}.qr{background:#fff;border-radius:6px;width:220px;margin:8px auto;padding:8px}.qr svg{width:100%;height:auto;display:block}.secret,.codes{letter-spacing:.08em;-webkit-user-select:all;user-select:all;font-family:ui-monospace,Menlo,monospace}.codes{border:1px solid var(--edge);columns:2;background:#0d1116;border-radius:4px;padding:10px 14px;font-size:15px;line-height:1.7}.steps{color:var(--muted);margin:4px 0;padding-left:20px}.cards{grid-template-columns:repeat(auto-fit,minmax(96px,1fr));gap:8px;margin:6px 0 14px;display:grid}.cards div{border:1px solid var(--edge);text-align:center;background:#0d1116;border-radius:4px;padding:8px}.cards b{font-size:22px;display:block}.cards span{color:var(--muted);font-size:12px}.cards .good b{color:var(--good)}.cards .bad b{color:var(--bad)}.scroll{max-height:46vh;overflow-y:auto}table.hist{border-collapse:collapse;width:100%;font-size:14px}table.hist th{text-align:left;color:var(--muted);background:#181e26;font-weight:600;position:sticky;top:0}table.hist td,table.hist th{border-bottom:1px solid #222a33;padding:5px 6px}.r-win{color:var(--good)}.r-lose{color:var(--bad)}.r-abandoned{color:var(--muted)}.srow{border-bottom:1px solid #222a33;align-items:center;gap:10px;padding:8px 0;display:flex}.srow img,.srow .nothumb{border:1px solid var(--edge);object-fit:cover;background:#0d1116;border-radius:3px;flex:none;width:64px;height:64px}.sinfo{flex-direction:column;flex:1;gap:3px;min-width:0;display:flex}.sinfo b{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.sbtns{gap:6px;display:flex}#account-bar:empty{display:none}#account-bar{justify-content:flex-end;gap:6px;margin:-12px -14px 6px 0;display:flex}#account-bar .acc{border:1px solid var(--edge);background:#10151b;border-radius:4px;padding:5px 10px;font-size:14px;font-weight:600}#account-bar .acc:hover{border-color:var(--edge-hi)}.toast{border:1px solid var(--good);color:var(--text);z-index:50;background:#1d2630;border-radius:4px;padding:10px 18px;transition:opacity .5s;position:fixed;top:70px;left:50%;transform:translate(-50%);box-shadow:0 8px 30px #00000080}.toast.out{opacity:0}@media (width<=560px){.form.row{flex-direction:column;align-items:stretch}.codes{columns:1}}.form label.check a,.terms-note a,.menu-links a{color:#8fc0ff}.terms-note{margin-top:8px}.admin-link{text-align:center;color:#ffd27a;margin:10px 0 0;padding:8px;text-decoration:none;display:block;border-color:#8a6420!important}.delete-acc{border-top:1px solid var(--edge);text-align:left;margin-top:18px;padding-top:12px}.delete-acc summary{cursor:pointer;color:#ff8a8a;font-size:14px;font-weight:600}.menu-links{color:var(--muted);margin-top:12px;font-size:13px}select.pick{color:var(--text);border:1px solid var(--edge);font:inherit;background:#10151b;border-radius:4px;min-width:180px;padding:6px 10px;font-weight:600}.map-preview{text-align:left;border:1px solid var(--edge);background:#10151b;border-radius:4px;align-items:center;gap:12px;margin:4px 0 6px;padding:8px;display:flex}.map-preview canvas{border:1px solid var(--edge-hi);image-rendering:auto;flex:none;width:96px;height:96px}.map-preview b{font-size:15px}.map-preview p{color:#c7d0da;margin:2px 0 0;font-size:13px;line-height:1.35}#msize button{padding:6px 9px}
