:root{--bg:#0b0f17;--panel:#131a26;--panel-2:#1a2333;--line:#273247;--text:#dde6f3;--muted:#8494ad;--accent:#5cc8ff;--accent-2:#ffd34d;--danger:#ff6b6b;--ok:#5fd68a;--radius:6px;color:var(--text);background:var(--bg);--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif;font-size:13px}*{box-sizing:border-box}html,body,#app{height:100%;margin:0;overflow:hidden}#app{flex-direction:column;display:flex}button,select,input{font:inherit;color:inherit}button{background:var(--panel-2);border:1px solid var(--line);border-radius:var(--radius);cursor:pointer;padding:4px 9px}button:hover{border-color:var(--accent)}button:focus-visible,select:focus-visible,input:focus-visible{outline:2px solid var(--accent);outline-offset:1px}button.primary{background:#1d5b85;border-color:#2f7fb5}button.danger{color:#ffb3b3;border-color:#7a3240}select,input[type=number],input[type=text]{background:var(--bg);border:1px solid var(--line);border-radius:var(--radius);min-width:0;padding:3px 6px}kbd{color:var(--muted);border:1px solid var(--line);border-radius:3px;padding:0 3px;font-size:10px}.topbar{background:var(--panel);border-bottom:1px solid var(--line);white-space:nowrap;flex-wrap:wrap;align-items:center;gap:16px;padding:6px 12px;display:flex}.brand{align-items:center;gap:8px;display:flex}.mode-badge{color:var(--accent-2);text-transform:uppercase;letter-spacing:.05em;background:#3a2a06;border:1px solid #6b5212;border-radius:99px;padding:1px 8px;font-size:11px}.time{align-items:center;gap:6px;display:flex}.time .pause{width:34px}.time .pause.paused{border-color:var(--danger);background:#5a2a2a}.speeds{display:flex}.speeds button{border-radius:0;margin-left:-1px}.speeds button:first-child{border-radius:var(--radius) 0 0 var(--radius)}.speeds button:last-child{border-radius:0 var(--radius) var(--radius) 0}.speeds button.active{border-color:var(--accent);background:#1d5b85}.clock{font-variant-numeric:tabular-nums;min-width:150px}.stats,.perf{font-variant-numeric:tabular-nums}.file{gap:4px;margin-left:auto;display:flex}.layout{flex:1;grid-template-columns:230px 1fr 260px;min-height:0;display:grid}.panel{background:var(--panel);padding:6px 10px 16px;overflow-y:auto}.panel.left{border-right:1px solid var(--line)}.panel.right{border-left:1px solid var(--line)}.panel h3{text-transform:uppercase;letter-spacing:.08em;color:var(--muted);margin:14px 0 6px;font-size:11px}.panel h4{margin:12px 0 6px}.stage{min-width:0;min-height:0;position:relative}canvas.world{cursor:crosshair;touch-action:none;outline:none;width:100%;height:100%;display:block}.tool-grid{grid-template-columns:1fr 1fr;gap:4px;display:grid}.tool{text-align:left;justify-content:space-between;align-items:center;display:flex}.tool.active{border-color:var(--accent);background:#1d5b85}.tool-options{flex-direction:column;gap:8px;display:flex}.hint{color:var(--muted);margin:4px 0;line-height:1.4}.muted{color:var(--muted)}.row{justify-content:space-between;align-items:center;gap:8px;margin:6px 0;display:flex}.slider{flex-direction:column;gap:2px;display:flex}.slider output{color:var(--accent);font-variant-numeric:tabular-nums}input[type=range]{width:100%;accent-color:var(--accent)}.swatches,.object-list{flex-direction:column;gap:3px;display:flex}.swatch,.object-choice{text-align:left;align-items:center;gap:8px;display:flex}.object-choice{flex-direction:column;align-items:flex-start;gap:0}.object-choice small{color:var(--muted)}.swatch i{border:1px solid #0006;border-radius:3px;width:14px;height:14px}.swatch.active,.object-choice.active{border-color:var(--accent);background:#17344a}.kv{grid-template-columns:auto 1fr;gap:3px 10px;margin:4px 0;display:grid}.kv dt{color:var(--muted)}.kv dd{text-align:right;font-variant-numeric:tabular-nums;margin:0}.kv.help dd{text-align:left}.object-head{font-size:15px}.prop{flex-direction:column;gap:3px;margin:10px 0;display:flex}.prop-inputs{grid-template-columns:1fr 90px;align-items:center;gap:6px;display:grid}.status{border:1px solid var(--line);border-radius:var(--radius);pointer-events:none;background:#0b0f17cc;max-width:calc(100% - 16px);padding:4px 8px;position:absolute;bottom:8px;left:8px}.status.warn{border-color:var(--danger);color:#ffc2c2}.toasts{pointer-events:none;flex-direction:column;align-items:flex-end;gap:6px;display:flex;position:absolute;top:8px;right:8px}.toast{background:var(--panel-2);border:1px solid var(--line);border-left:4px solid var(--accent);border-radius:var(--radius);max-width:360px;padding:6px 10px;transition:opacity .3s}.toast-error{border-left-color:var(--danger)}.toast-success{border-left-color:var(--ok)}.toast-out{opacity:0}.backdrop{z-index:10;background:#000a;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.backdrop.hidden{display:none}.dialog{background:var(--panel);border:1px solid var(--line);border-radius:10px;width:min(520px,100vw - 32px);max-height:calc(100vh - 64px);padding:14px 18px;overflow-y:auto}.dialog header{justify-content:space-between;align-items:center;display:flex}.dialog h2{margin:0 0 8px;font-size:17px}.dialog .close{background:0 0;border:none;font-size:20px}.form .row input,.form .row select{width:60%}.actions{justify-content:flex-end;gap:8px;margin-top:12px;display:flex}.actions-extra{gap:8px;margin-right:auto;display:flex}.save-list{flex-direction:column;gap:4px;margin:0;padding:0;list-style:none;display:flex}.save-list li{background:var(--panel-2);border-radius:var(--radius);justify-content:space-between;align-items:center;gap:8px;padding:6px 8px;display:flex}.save-list small{color:var(--muted)}@media (width<=900px){.layout{grid-template-columns:180px 1fr}.panel.right{display:none}}.swatch-dot{vertical-align:middle;border-radius:50%;width:10px;height:10px;margin-right:6px;display:inline-block}.bars{flex-direction:column;gap:4px;margin:8px 0;display:flex}.bar{grid-template-columns:60px 1fr;align-items:center;gap:6px;display:grid}.bar b{background:var(--bg);border:1px solid var(--line);border-radius:4px;height:8px;overflow:hidden}.bar i{background:#c9a227;height:100%;display:block}.bar.good i{background:var(--ok)}.bar.warn i{background:var(--danger)}.actions-row{gap:6px;margin:6px 0;display:flex}.civ-list{flex-direction:column;gap:6px;display:flex}.civ-card{text-align:left;flex-direction:column;gap:2px;display:flex}.civ-stats{font-size:12px}.shortage{color:#ffb3a3;font-size:12px}.log{flex-direction:column;gap:3px;margin:0;padding:0;font-size:12px;list-style:none;display:flex}.log li{border-left:3px solid var(--line);padding-left:6px}.log-good{border-left-color:var(--ok)!important}.log-bad{border-left-color:var(--danger)!important}.weather{font-variant-numeric:tabular-nums}.warnings.active{color:#ffd0c0;border:1px solid var(--danger);border-radius:var(--radius);background:#4a1d1d;padding:1px 8px}.presets{flex-wrap:wrap;gap:4px;display:flex}.alert{color:#ffd0c0;font-size:12px;font-weight:600}.hidden{display:none!important}.mode-title{text-transform:uppercase;letter-spacing:.08em;color:var(--accent-2);margin:10px 0 4px;font-size:11px}button.mode-badge{cursor:pointer;border-radius:99px;padding:1px 8px}.mode-badge.mode-citizen{color:#7fd6ff;background:#0f2a3d;border-color:#2f7fb5}.mode-badge.mode-king{color:#ffd34d;background:#3a2a06;border-color:#b58f2f}.tool.disabled{opacity:.45}.unrest{margin:4px 0;font-size:12px;font-weight:600}.unrest-discontent{color:#ffd34d}.unrest-protest{color:#ffa94d}.unrest-rebellion{color:#ff6b6b}.kv dd.neg{color:#ff9b9b}.kv dd.pos{color:#8fe3a8}.rule-btn{margin-bottom:6px}.warn-text{color:#ffc2b0}.next-unlock{font-variant-numeric:tabular-nums;color:var(--accent-2)}.toast-achievement{border-left-color:var(--accent-2);color:#ffe9a8;background:#3a2a06;font-weight:600}.object-choice.locked{opacity:.6}.achievements,.unlocks{flex-direction:column;gap:6px;margin:0;padding:0;list-style:none;display:flex}.achievements li,.unlocks li{background:var(--panel-2);border-radius:var(--radius);border-left:3px solid var(--line);padding:6px 8px}.achievements li.earned,.unlocks li.earned{border-left-color:var(--accent-2)}.achievements .hint{margin:2px 0}.look summary{cursor:pointer;color:var(--muted);margin:6px 0}.look-row{grid-template-columns:60px 1fr;align-items:center;margin:4px 0;display:grid}.look-swatches{flex-wrap:wrap;gap:3px;display:flex}.look-swatch{border-radius:4px;width:18px;height:18px;padding:0}.look-swatch.active{outline:2px solid var(--accent-2)}
