:root{--bg:#0e0a07;--panel:#140e0af0;--line:#4a3524;--text:#f0e3cc;--muted:#a8957a;--accent:#e8b93a;--pos:#8fd06a;--neg:#ff6b5b;--order:#c9564a;--faith:#d8a33a}*{box-sizing:border-box}html,body{background:var(--bg);height:100%;color:var(--text);margin:0;font:600 14px/1.25 Rajdhani,Segoe UI,sans-serif;overflow:hidden}#app{position:fixed;inset:0}#ui{pointer-events:none;position:fixed;inset:0}#ui>*{pointer-events:auto}button{font:inherit;color:var(--text);border:1px solid var(--line);cursor:pointer;background:#2a1d13;border-radius:4px;padding:4px 8px}button:hover{background:#3a2819;border-color:#6b4c32}button.on{background:var(--accent);color:#1a1008;border-color:var(--accent)}button.off{opacity:.4;cursor:not-allowed}button.primary{border-color:var(--accent);background:#6b4a1e}button.primary:hover{background:#87602a}button.danger{color:#ffb3a8;border-color:#7a2c24}button.glow{box-shadow:0 0 0 1px var(--accent), 0 0 10px #e8b93a59}small{font-size:12px}.muted{color:var(--muted);font-weight:500}.pos{color:var(--pos)}.neg{color:var(--neg)}.warn{color:var(--accent)}em{font-style:normal}#top{background:var(--panel);border-bottom:1px solid var(--line);align-items:center;gap:18px;height:52px;padding:0 14px;display:flex;position:absolute;top:0;left:0;right:0}.brand{letter-spacing:3px;color:var(--accent);text-shadow:0 0 12px #e8b93a66;font:28px Bebas Neue,sans-serif}.resbar{flex:1;gap:14px;display:flex}.res{grid-template-columns:10px auto;align-items:center;column-gap:6px;min-width:78px;display:grid}.res i{border-radius:2px;grid-row:span 2;width:10px;height:10px}.res b{color:var(--muted);text-transform:uppercase;letter-spacing:1px;font-size:11px}.res span{font-size:16px}.res span small{color:var(--muted)}.res em{grid-column:2;height:12px;font-size:11px}.clock{white-space:nowrap;font-size:16px}.speeds{gap:4px;display:flex}.speeds button{min-width:38px}aside{flex-direction:column;gap:8px;width:264px;display:flex;position:absolute;top:60px;bottom:120px;overflow-y:auto}#left{left:8px}#right{width:304px;right:8px}.card,.meter{background:var(--panel);border:1px solid var(--line);border-radius:6px;padding:10px}.card header,.meter header{justify-content:space-between;align-items:baseline;margin-bottom:6px;display:flex}.card header b,.meter header b{letter-spacing:1.5px;font:18px Bebas Neue,sans-serif}.card p{margin:6px 0}.bar{background:#000;border:1px solid #2a1d13;border-radius:3px;height:10px;overflow:hidden}.bar i{height:100%;transition:width .3s;display:block}.bar.small{flex:1;height:7px}.meter ul,.castes,.status,.log ul{margin:6px 0 0;padding:0;list-style:none}.meter li{color:var(--muted);justify-content:space-between;font-size:13px;display:flex}.meter.danger{border-color:var(--neg);box-shadow:0 0 12px #ff4b3a40}.seg{grid-template-columns:repeat(4,1fr);gap:3px;margin-bottom:6px;display:grid}.seg button{padding:4px 2px;font-size:12px}.kv{align-items:center;gap:8px;margin:4px 0;display:flex}.kv>span{width:52px;color:var(--muted)}.castes li{grid-template-rows:auto auto;grid-template-columns:10px 1fr auto auto;align-items:center;column-gap:6px;margin-bottom:6px;display:grid}.castes li i{border-radius:50%;width:10px;height:10px}.castes li b{font-size:16px}.castes li small{color:var(--muted);grid-area:2/2/auto/span 2}.castes .mix{grid-row:span 2}.mix{align-items:center;gap:3px;display:inline-flex}.mix button{min-width:22px;padding:0 6px}h4{color:var(--muted);text-transform:uppercase;letter-spacing:1px;margin:10px 0 6px;font-size:13px}.status li{margin:3px 0}.actions{flex-wrap:wrap;gap:6px;margin-top:10px;display:flex}.tip{font-size:12px}.log{flex:1;min-height:140px}.log li{color:var(--muted);margin-bottom:4px;font-size:13px}.log li small{color:#6f5f4a}.log li.bad{color:#ff9a8c}.log li.good{color:#b6e39a}.cost{color:var(--c);white-space:nowrap}#bottom{background:var(--panel);border-top:1px solid var(--line);align-items:stretch;gap:10px;height:112px;padding:8px;display:flex;position:absolute;bottom:0;left:0;right:0}.tools{flex-direction:column;gap:6px;width:250px;display:flex}.dig{border:1px solid var(--line);border-radius:4px;flex-wrap:wrap;align-items:center;gap:5px;padding:4px;display:flex}.dig.on{border-color:var(--accent)}.rooms{flex:1;grid-template-columns:repeat(6,1fr);gap:4px;display:grid;overflow-y:auto}.room{text-align:left;grid-template-columns:8px 1fr;column-gap:6px;padding:3px 6px;font-size:13px;display:grid}.room i{border-radius:2px;grid-row:span 3}.room small{color:var(--muted);text-transform:uppercase;font-size:10px}.room span{font-size:11px}.books{grid-template-columns:1fr 1fr;gap:6px;width:250px;display:grid}.books button:first-child{grid-column:span 2}.books button{flex:1;font-size:16px}.books small{color:var(--muted);font-size:11px;display:block}#modal{background:#05030299;justify-content:center;align-items:center;display:none;position:absolute;inset:0}#modal.open{display:flex}.dialog{border:1px solid var(--accent);background:#17100b;border-radius:8px;max-width:560px;max-height:88vh;padding:22px 26px;overflow-y:auto;box-shadow:0 10px 50px #000000b3}.dialog.wide{width:94vw;max-width:1040px}.dialog h1{letter-spacing:6px;color:var(--accent);text-shadow:0 0 20px #e8b93a66;margin:0;font:64px Bebas Neue,sans-serif}.dialog h2{letter-spacing:2px;color:var(--accent);margin:0 0 8px;font:32px Bebas Neue,sans-serif}.dialog h3{letter-spacing:1.5px;margin:0 0 8px;font:22px Bebas Neue,sans-serif}.dialog p{font-size:16px;font-weight:500}.dialog .lead{color:var(--accent);font-size:20px}.dialog.intro li{margin:6px 0;font-size:15px;font-weight:500}.dialog.win{border-color:var(--pos)}.dialog.lose{border-color:var(--neg)}.dialog.lose h2{color:var(--neg)}.choices{flex-direction:column;gap:8px;display:flex}.choices button{text-align:left;padding:10px 12px;font-size:15px}.stats{color:var(--muted);gap:14px;padding:0;list-style:none;display:flex}.lawgrid{grid-template-columns:repeat(3,1fr);gap:14px;display:grid}.lawcol{border:1px solid var(--line);border-radius:6px;flex-direction:column;gap:8px;padding:10px;display:flex}.lawcol.order{border-color:var(--order)}.lawcol.order h3{color:var(--order)}.lawcol.faith{border-color:var(--faith)}.lawcol.faith h3{color:var(--faith)}.lawcol.closed{opacity:.35}.techgrid{grid-template-columns:repeat(4,1fr);gap:10px;display:grid}.law{border:1px solid var(--line);background:#1f150e;border-radius:6px;flex-direction:column;gap:4px;padding:8px 10px;display:flex}.law p{color:var(--muted);margin:0;font-size:13px}.law.signed{border-color:var(--pos)}.law.locked{opacity:.7}.law button{align-self:flex-start;margin-top:4px}#toast{border:1px solid var(--neg);opacity:0;pointer-events:none;background:#3a1410;border-radius:6px;padding:8px 14px;transition:opacity .2s;position:absolute;top:70px;left:50%;transform:translate(-50%)}#toast.show{opacity:1}#tutorial{z-index:5;background:#10202a;border:2px solid #5fd3ff;border-radius:8px;width:340px;padding:12px 14px;display:none;position:absolute;top:60px;right:320px;box-shadow:0 8px 30px #0009}#tutorial.open{display:block}#tutorial header{color:#5fd3ff;justify-content:space-between;align-items:center;display:flex}#tutorial h3{letter-spacing:1.5px;color:#bfefff;margin:4px 0;font:26px Bebas Neue,sans-serif}#tutorial p{margin:6px 0;font-size:15px;font-weight:500}#tutorial .goal{color:#5fd3ff;font-weight:700}#tutorial .goal.done{color:var(--pos)}#tutorial .dots{gap:3px;margin-top:10px;display:flex}#tutorial .dots i{background:#24404d;border-radius:2px;flex:1;height:4px}#tutorial .dots i.past{background:#5fd3ff}#tutorial .dots i.now{background:#bfefff}button.link{color:#8aa9b5;background:0 0;border:none;padding:0;font-size:12px;text-decoration:underline}.tut-focus{outline-offset:2px;z-index:4;animation:1s ease-in-out infinite tutpulse;position:relative;outline:3px solid #5fd3ff!important}@keyframes tutpulse{50%{outline-color:#5fd3ff40}}button.suggest{color:#bfefff;border-color:#5fd3ff}.clock .idle{color:var(--accent)}#alert{border:2px solid var(--neg);z-index:6;background:#3a120e;border-radius:6px;max-width:720px;padding:8px 12px;font-size:15px;display:none;position:absolute;top:58px;left:50%;transform:translate(-50%);box-shadow:0 0 18px #ff4b3a59}#alert.open{animation:1.2s ease-in-out infinite alertpulse;display:block}#alert button{margin-left:8px}@keyframes alertpulse{50%{box-shadow:0 0 4px #ff4b3a26}}.scenarios{padding:0;list-style:none}.scenarios li{margin:8px 0}.dialog a{color:var(--accent)}.dialog code{color:#bfefff;font-size:12px}.sg-overlay,.sg-open-btn{--sg-bg:#17100b;--sg-border:#4a3524;--sg-accent:#e8b93a;--sg-text:#f0e3cc;--sg-muted:#a8957a;--sg-error:#ff6b5b;--sg-ok:#8fd18b;font-family:Rajdhani,Segoe UI,sans-serif}.sg-overlay{z-index:10000;pointer-events:auto;box-sizing:border-box;background:#080503b8;justify-content:center;align-items:center;padding:16px;display:flex;position:fixed;inset:0}.sg-dialog{box-sizing:border-box;background:var(--sg-bg);width:100%;max-width:480px;max-height:calc(100vh - 32px);color:var(--sg-text);border:1px solid var(--sg-border);border-top:3px solid var(--sg-accent);border-radius:6px;padding:20px 22px 18px;font-size:15px;font-weight:600;line-height:1.3;overflow-y:auto;box-shadow:0 12px 40px #0009}.sg-title{letter-spacing:.04em;text-transform:uppercase;color:var(--sg-accent);margin:0 0 6px;font-size:22px;font-weight:700}.sg-intro{color:var(--sg-muted);margin:0 0 14px;font-weight:500}.sg-form{flex-direction:column;gap:4px;display:flex}.sg-label{letter-spacing:.06em;text-transform:uppercase;color:var(--sg-muted);margin-top:8px;font-size:13px;font-weight:700}.sg-select,.sg-input,.sg-textarea{box-sizing:border-box;width:100%;color:var(--sg-text);border:1px solid var(--sg-border);font:inherit;background:#0f0a07;border-radius:4px;outline:none;padding:8px 10px;font-weight:600}.sg-textarea{resize:vertical;min-height:110px}.sg-select:focus,.sg-input:focus,.sg-textarea:focus{border-color:var(--sg-accent);box-shadow:0 0 0 1px var(--sg-accent)}.sg-select:disabled,.sg-input:disabled,.sg-textarea:disabled{opacity:.6}.sg-input::placeholder,.sg-textarea::placeholder{color:var(--sg-muted);opacity:.7}.sg-counter{color:var(--sg-muted);align-self:flex-end;font-size:12px}.sg-counter-low{color:var(--sg-error)}.sg-hp{width:1px;height:1px;position:absolute;top:auto;left:-10000px;overflow:hidden}.sg-status{min-height:1.3em;color:var(--sg-muted);margin-top:10px}.sg-status-error{color:var(--sg-error)}.sg-status-ok{color:var(--sg-ok)}.sg-status-info{color:var(--sg-muted)}.sg-status a{color:var(--sg-accent);font-weight:700}.sg-actions{justify-content:flex-end;gap:10px;margin-top:12px;display:flex}.sg-btn{font:inherit;letter-spacing:.06em;text-transform:uppercase;cursor:pointer;border-radius:4px;padding:8px 18px;font-weight:700}.sg-btn:disabled{opacity:.55;cursor:default}.sg-btn-primary{background:var(--sg-accent);color:#17100b;border:1px solid var(--sg-accent)}.sg-btn-primary:not(:disabled):hover{filter:brightness(1.1)}.sg-btn-secondary{color:var(--sg-text);border:1px solid var(--sg-border);background:0 0}.sg-btn-secondary:not(:disabled):hover{border-color:var(--sg-muted)}.sg-sending .sg-textarea,.sg-sending .sg-input,.sg-sending .sg-select{opacity:.7}.sg-open-btn{pointer-events:auto;background:var(--sg-bg);color:var(--sg-text);border:1px solid var(--sg-border);letter-spacing:.05em;cursor:pointer;border-radius:4px;padding:5px 12px;font-size:13px;font-weight:700}.sg-open-btn:hover{border-color:var(--sg-accent);color:var(--sg-accent)}.sg-open-btn-floating{z-index:9000;position:fixed;bottom:12px;right:12px}
