:root{color-scheme:dark;--bg: #12100d;--rail: #1a1713;--ink: #e8e0d4;--muted: #9a8f7a;--line: #3a342c;--ember: #c45c26;--gold: #c8a84b;--mint: #7ec8a3;--err: #e07070}*{box-sizing:border-box}html,body,#root{margin:0;height:100%;height:100dvh;background:var(--bg);color:var(--ink);font:13px/1.4 Segoe UI,system-ui,sans-serif}button,input,select{font:inherit;color:var(--ink);background:#2a241c;border:1px solid var(--line);border-radius:2px;padding:8px 10px;min-height:40px;touch-action:manipulation}button{cursor:pointer;background:#3a2c20}button:hover:not(:disabled){background:#4a3828}button:disabled{opacity:.45;cursor:not-allowed}input[type=number]{width:4.5rem}.shell{display:grid;grid-template-columns:minmax(300px,360px) 1fr;height:100%}.rail{overflow:auto;background:var(--rail);border-right:1px solid var(--line);padding:12px 14px 32px}.brand{display:flex;justify-content:space-between;gap:12px;align-items:flex-start;margin-bottom:10px}.brand h1{margin:0;font-size:16px;letter-spacing:.04em}.brand p{margin:2px 0 0;color:var(--muted)}.credits{text-align:right}.credits span{display:block;color:var(--muted);font-size:11px}.credits strong{font-size:22px;color:var(--mint)}.steps{margin:0 0 12px;padding:0;list-style:none;font-size:12px}.steps li{color:var(--muted)}.steps li.done{color:var(--mint)}section{border-top:1px solid var(--line);padding:10px 0}h2{margin:0 0 6px;font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--gold)}.row{display:flex;flex-wrap:wrap;gap:6px;margin:6px 0}.hint,.log,.stock{color:var(--muted);margin:4px 0;padding:0}.stock,.log{list-style:none}.stock strong{color:var(--ink)}.flash{color:var(--gold)}.err{color:var(--err)}.boot{padding:24px}table{width:100%;border-collapse:collapse;font-size:12px}th,td{text-align:left;padding:3px 4px;border-bottom:1px solid var(--line)}.mapwrap{position:relative;min-height:280px}.hexmap{width:100%;height:100%;display:block;cursor:pointer;touch-action:manipulation}.maplegend{position:absolute;left:12px;bottom:8px;margin:0;color:var(--muted);font-size:11px;pointer-events:none}.log li{margin-bottom:4px}@media(max-width:840px){.shell{display:flex;flex-direction:column;height:100dvh;grid-template-columns:none}.mapwrap{order:-1;height:42dvh;min-height:220px;flex-shrink:0}.rail{flex:1;min-height:0;border-right:0;border-top:1px solid var(--line);-webkit-overflow-scrolling:touch}button,select,input{min-height:44px;font-size:16px}input[type=number]{width:5.5rem}.maplegend{font-size:10px;left:8px;right:8px}}
