:root{--bg:#0e1626;--panel:#17233b;--panel2:#1f2f4f;--ink:#e8eefc;--dim:#93a4c8;--accent:#f2c14e;--danger:#e0645c;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}*{box-sizing:border-box}html,body{background:var(--bg);height:100%;color:var(--ink);overscroll-behavior:none;margin:0;font:1rem/1.35 system-ui,sans-serif}#app{height:100dvh;padding-top:env(safe-area-inset-top);grid-template:"top top""stage side"1fr/1fr 300px;display:grid}#top{grid-area:top}#topbar{background:var(--panel);border-bottom:1px solid #2c3f66;align-items:center;gap:14px;padding:6px 10px;display:flex}#topbar .spacer{flex:1}#title{color:var(--accent);letter-spacing:.08em}#stage{grid-area:stage;min-width:0;min-height:0;position:relative;overflow:hidden}#map{width:100%;height:100%;image-rendering:pixelated;touch-action:none;cursor:grab;background:#000;outline:none;display:block}#map:active{cursor:grabbing}#side{background:var(--panel);border-left:1px solid #2c3f66;flex-direction:column;grid-area:side;gap:8px;padding:8px;display:flex;overflow-y:auto}#minimap{aspect-ratio:8/5;width:100%;height:auto;image-rendering:pixelated;cursor:pointer;background:#000;border:1px solid #2c3f66}section{background:var(--panel2);border-radius:6px;padding:6px 8px}#actions{background:0 0;grid-template-columns:repeat(4,1fr);gap:4px;padding:0;display:grid}button{color:var(--ink);font:inherit;cursor:pointer;background:#2b4272;border:1px solid #3d5a96;border-radius:5px;min-height:2.45rem;padding:6px 8px}button:hover:not(:disabled){background:#35528c}button:disabled{opacity:.4;cursor:default}button.primary{border-color:var(--accent);background:#6e5314;grid-column:span 4;font-weight:600}#log{min-height:60px;max-height:180px;color:var(--dim);flex:1;font-size:.86rem;overflow-y:auto}#log div{padding:1px 0}#toast{border:1px solid var(--accent);opacity:0;pointer-events:none;text-align:center;background:#0a101eeb;border-radius:6px;max-width:90%;padding:6px 12px;transition:opacity .2s;position:absolute;bottom:14px;left:50%;transform:translate(-50%)}#toast.show{opacity:1}.dim{color:var(--dim)}h3{color:var(--accent);margin:0 0 4px;font-size:1rem}dialog{background:var(--panel);color:var(--ink);border:1px solid var(--accent);border-radius:8px;width:96vw;max-width:min(640px,96vw);padding:14px}dialog::backdrop{background:#0009}.row{flex-wrap:wrap;align-items:center;gap:8px;margin:6px 0;display:flex}.bar{background:#0b1220;border-radius:5px;flex:1;min-width:80px;height:10px;overflow:hidden}.bar>i{background:var(--accent);height:100%;display:block}.city-grid{grid-template-columns:repeat(5,1fr);gap:3px;max-width:320px;display:grid}.cell{aspect-ratio:1;cursor:pointer;border:1px solid #3d5a96;border-radius:4px;flex-direction:column;justify-content:center;align-items:center;min-height:0;padding:0;font-size:.79rem;display:flex}.cell.worked{outline:2px solid var(--accent)}.cell.gone{visibility:hidden}.cell.center{cursor:default;border-style:dashed}.cell.taken{opacity:.35;cursor:not-allowed}.slot-list{grid-template-columns:1fr auto auto;align-items:center;gap:4px 8px;display:grid}input,select{color:var(--ink);font:inherit;background:#0b1220;border:1px solid #3d5a96;border-radius:4px;padding:5px 7px}#update-banner{color:var(--ink);background:var(--panel);border:1px solid var(--accent);z-index:20;border-radius:8px;align-items:center;gap:10px;margin:0;padding:8px 12px;display:flex;position:fixed;inset:12px auto auto 50%;transform:translate(-50%)}#update-banner:not(:popover-open){display:none}@media (max-width:760px){#app{grid-template:"top""stage"1fr"side"/1fr}#side{max-height:42dvh;padding-bottom:calc(8px + env(safe-area-inset-bottom));border-top:1px solid #2c3f66;border-left:none}#minimap{align-self:center;width:auto;max-height:90px}#actions{grid-template-columns:repeat(4,1fr)}#log,#seed{display:none}}#ctx{z-index:30;background:var(--panel);border:1px solid var(--accent);border-radius:6px;flex-direction:column;gap:3px;min-width:160px;padding:4px;display:flex;position:fixed}#ctx[hidden]{display:none}#topbar button{min-height:2rem;padding:3px 8px}.mood{flex-wrap:wrap;gap:2px;margin:4px 0;display:flex}.mood i{border:1px solid #000;border-radius:50%;width:14px;height:14px;display:inline-block}.mood .happy{background:#f2c14e}.mood .content{background:#5db84f}.mood .unhappy{background:#e0645c}.mood .spec{background:#6fb4e8;border-radius:2px}.warn{color:var(--danger);font-weight:600}.tech-list{grid-template-columns:1fr 1fr;gap:4px;display:grid}.list{flex-direction:column;gap:3px;max-height:200px;display:flex;overflow-y:auto}#actions button{overflow-wrap:normal;-webkit-hyphens:manual;hyphens:manual;padding:3px 2px;font-size:.79rem}#topbar{flex-wrap:wrap;gap:6px 12px}#topbar button{font-size:.86rem}.log-link{cursor:pointer;color:var(--ink);-webkit-text-decoration:underline dotted;text-decoration:underline dotted}.high-contrast{--bg:#000;--panel:#000;--panel2:#101010;--ink:#fff;--dim:#e0e0e0;--accent:#ff0}.high-contrast button{background:#000;border-color:#fff}.high-contrast dialog{border-width:3px}.tabs{flex-wrap:wrap;gap:3px;margin-bottom:6px;display:flex}.tabs button.active{border-color:var(--accent);background:#6e5314}.pedia-body{grid-template-columns:1fr 1.4fr;gap:8px;display:grid}.pedia-list{flex-direction:column;gap:2px;max-height:50vh;display:flex;overflow-y:auto}table.adv{border-collapse:collapse;width:100%;font-size:.86rem}table.adv td,table.adv th{text-align:left;border-bottom:1px solid #2c3f66;padding:2px 6px}@media (max-width:760px){#actions{order:-1}}#intro{z-index:50;color:#fff;pointer-events:none;background:#040814eb;flex-direction:column;justify-content:center;align-items:center;gap:12px;animation:.4s ease-out intro-in;display:flex;position:fixed;inset:0}#intro[hidden]{display:none}#intro .intro-map{width:min(80vw,640px);image-rendering:pixelated;border:2px solid #e8c547}#intro .intro-title{letter-spacing:.3em;color:#e8c547;font-size:2rem}@keyframes intro-in{0%{opacity:0}}@media (prefers-reduced-motion:reduce){#intro{animation:none}}.city-view{width:100%;max-width:320px;height:auto;image-rendering:pixelated;border:1px solid #3d5a96;border-radius:4px;margin:4px 0;display:block}.cell{position:relative;overflow:hidden}.cell .cell-art{width:100%;height:100%;image-rendering:pixelated;position:absolute;inset:0}.cell .cell-yield{color:#fff;text-shadow:0 0 2px #000,0 0 2px #000,1px 1px #000;font-weight:700;position:relative}#handoff{z-index:100;color:#fff;background:#05070f;flex-direction:column;justify-content:center;align-items:center;gap:14px;display:flex;position:fixed;inset:0}#handoff[hidden]{display:none}#menubar{z-index:30;background:#0d1526;border-bottom:1px solid #3d5a96;gap:2px;display:flex;position:relative}#menubar .menu-head{background:0 0;border:0;border-radius:0;padding:3px 12px}#menubar .menu-head[aria-expanded=true]{background:#243a68}#menubar .menu-list{background:#101c36;border:1px solid #3d5a96;flex-direction:column;min-width:190px;display:flex;position:absolute;top:100%;box-shadow:0 4px 12px #000a}#menubar .menu-list button{text-align:left;background:0 0;border:0;border-radius:0}#menubar .menu-list button:hover:not(:disabled){background:#243a68}#top{min-width:0}#menubar{flex-wrap:wrap}@media (max-width:480px){#menubar .menu-head{padding:3px 6px;font-size:.86rem}}@media (max-width:600px){#topbar{flex-wrap:wrap;gap:8px;padding:2px 6px;font-size:.86rem}#topbar button,#topbar .spacer,#topbar #title,#topbar #env,#topbar #seed{display:none}#side{gap:4px;max-height:24dvh;padding:4px}#minimap,#tile-info{display:none}#actions{flex-wrap:nowrap;gap:4px;display:flex;overflow-x:auto}#actions button{flex:none;min-width:62px;min-height:40px}#actions #act-end{order:-1}#unit-info{padding:3px 6px;font-size:.86rem}}#unit-info{min-height:6.5em}#topbar button{white-space:nowrap}@media (max-width:600px){#unit-info{min-height:0}}@media (max-height:480px){#app{grid-template:"top top""stage side"1fr/1fr 190px}#side{border-top:none;border-left:1px solid #2c3f66;gap:4px;max-height:none;padding:4px}#minimap,#tile-info,#log{display:none}#topbar{gap:8px;padding:1px 6px;font-size:.79rem}#topbar button,#topbar .spacer,#topbar #title,#topbar #env,#topbar #seed{display:none}#menubar .menu-head{min-height:2rem;padding:2px 8px}#actions{grid-template-columns:repeat(2,1fr)}#unit-info{min-height:0;font-size:.79rem}}@media (pointer:coarse),(max-width:760px){input[type=checkbox],input[type=radio]{width:44px;min-width:44px;height:44px}input[type=range],input[type=text],input[type=number],input[type=file],input:not([type]){min-height:44px}}@media (pointer:coarse){button,select,#menubar .menu-head,#topbar button,#actions button,#menubar .menu-list button{min-height:44px}}#debug-panel{position:fixed;bottom:8px;left:8px}@media (max-width:760px){#debug-panel{top:6rem;bottom:auto}}dialog{max-height:92dvh;overflow-y:auto}dialog .dlg-x{float:right;z-index:2;background:#2b4272;min-width:36px;min-height:36px;padding:0 8px;position:sticky;top:0}#tab-warning,.popover-banner{color:#fff;background:#7a2e2e;border:0;justify-content:space-between;align-items:center;gap:12px;width:100%;margin:0;padding:8px 12px;display:flex;position:fixed;inset:0 0 auto}#tab-warning:not(:popover-open){display:none}.popover-banner:not(:popover-open){display:none}@media (max-height:480px){#side{min-width:0;overflow-y:auto}#actions{flex-wrap:wrap;gap:3px;display:flex;overflow:visible}#actions button{white-space:normal;overflow-wrap:normal;word-break:normal;flex:76px;min-width:64px;min-height:44px;padding:2px 4px;font-size:.75rem}#actions #act-end{flex-basis:100%;order:-1}}@media (pointer:coarse){dialog .dlg-x,#btn-help{min-width:44px;min-height:44px}}body.start-pending #app{visibility:hidden}body.start-pending dialog,body.start-pending #update-banner{visibility:visible}#first-hint{border:1px solid var(--accent);text-align:center;pointer-events:none;background:#14213df0;border-radius:8px;max-width:min(32rem,92%);padding:8px 14px;position:absolute;bottom:16px;left:50%;transform:translate(-50%)}#first-hint[hidden]{display:none}dialog canvas,dialog img,dialog table,dialog .list,dialog .tech-list,dialog .row{max-width:100%}dialog canvas{height:auto}@media (max-width:480px){dialog{box-sizing:border-box;max-width:100vw;overflow-x:hidden}dialog .row{flex-wrap:wrap}dialog table{display:block;overflow-x:auto}}dialog pre{white-space:pre-wrap;overflow-wrap:anywhere;max-width:100%}dialog button{overflow-wrap:anywhere;max-width:100%}@media (max-width:400px){#first-hint{max-width:96%;padding:4px 8px;font-size:.72rem;bottom:4px}}@media (max-height:480px){#first-hint{padding:3px 8px;font-size:.72rem;bottom:2px}}
