:root{--bg: #2b3a2a;--panel: #f6e7c8;--panel-2: #efdcb4;--wood: #b07a43;--wood-dark: #6b4523;--ink: #3d2a14;--ink-2: #6b5236;--accent: #2a78d6;--good: #1f7a3a;--bad: #b3261e;--focus: #ffd34d;color-scheme:light}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{background:var(--bg) radial-gradient(circle at 20% 10%,#3d5a3a 0,transparent 50%);color:var(--ink);font-family:Nunito,system-ui,sans-serif;font-size:.95rem}h1,h2,h3,h4,.logo,.tabs button,.sleep,.calendar b{font-family:Pixelify Sans,Nunito,monospace}h2{margin:0 0 .6rem}h3{margin:.4rem 0 .5rem;font-size:1.1rem}h4{margin:1rem 0 .4rem;font-size:.95rem;color:var(--ink-2)}button,input,select{font:inherit;color:inherit}:focus-visible{outline:3px solid var(--focus);outline-offset:2px}button{background:var(--panel-2);border:2px solid var(--wood-dark);border-radius:6px;padding:.35rem .7rem;cursor:pointer;box-shadow:0 2px 0 var(--wood-dark)}button:hover:not(:disabled){filter:brightness(1.06)}button:active:not(:disabled){transform:translateY(1px);box-shadow:0 1px 0 var(--wood-dark)}button:disabled{opacity:.5;cursor:not-allowed}button.primary{background:#5aa84a;color:#fff;border-color:#2f6b25;box-shadow:0 2px #2f6b25;font-weight:700}button.ghost{background:transparent;box-shadow:none;border-color:transparent;text-decoration:underline}button.danger{color:var(--bad)}input,select{background:#fffaf0;border:2px solid var(--wood);border-radius:6px;padding:.35rem .5rem;min-width:0}code,pre{font-family:ui-monospace,Cascadia Code,monospace;font-size:.82rem}pre{white-space:pre-wrap;word-break:break-word;margin:0}.wood{background:var(--panel);border:4px solid var(--wood);box-shadow:0 0 0 3px var(--wood-dark),0 10px 30px #0006;border-radius:10px}.card{padding:1.25rem;width:min(560px,calc(100vw - 32px))}.stack{display:flex;flex-direction:column;gap:.6rem}.row{display:flex;gap:.4rem;align-items:center;flex-wrap:wrap}.hint{color:var(--ink-2);font-size:.85rem}.warn{color:var(--bad);font-weight:600}.ok,.pos{color:var(--good)}.neg{color:var(--bad)}.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}.menu{min-height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1rem;padding:2rem 16px}.logo{font-size:clamp(2.4rem,8vw,4.5rem);color:#fff4c2;margin:0;text-shadow:4px 4px 0 var(--wood-dark),8px 8px 0 #0004;letter-spacing:2px}.logo span{color:#7fe08a}.tagline{color:#f6e7c8;margin:0;text-align:center}.missions{list-style:none;padding:0;display:flex;flex-direction:column;gap:.5rem}.missions button{width:100%;text-align:left;display:flex;flex-direction:column;gap:.2rem}.missions small{color:var(--ink-2)}.prefs{display:flex;gap:1rem;flex-wrap:wrap;color:#f6e7c8;align-items:center;justify-content:center}.prefs button{margin-left:.3rem;padding:.1rem .5rem}.lobby .list button{flex:1;text-align:left}.game{display:flex;flex-direction:column;height:100%}.topbar{display:flex;gap:1rem;align-items:center;flex-wrap:wrap;padding:.5rem 1rem;background:var(--panel);border-bottom:4px solid var(--wood);font-weight:700}.calendar{display:flex;flex-direction:column;line-height:1.1;background:#fffaf0;border:2px solid var(--wood);border-radius:8px;padding:.2rem .6rem}.calendar span{font-size:.8rem;color:var(--ink-2)}.money{background:#fff4c2;border:2px solid var(--wood);border-radius:8px;padding:.2rem .6rem}.players{display:flex;gap:.3rem;margin-left:auto;flex-wrap:wrap;align-items:center}.chip{border:3px solid;border-radius:999px;padding:.05rem .6rem;background:#fffaf0;font-size:.85rem}.chip.off{opacity:.5}.invite{font-family:ui-monospace,monospace;font-size:.85rem}.layout{flex:1;display:grid;grid-template-columns:minmax(0,1fr) minmax(320px,420px);gap:12px;padding:12px;min-height:0}.map-col{display:flex;flex-direction:column;gap:8px;min-width:0;min-height:0}.toolbar{display:flex;gap:.4rem;flex-wrap:wrap;align-items:center}.toolbar button.on,.choice button.on,.tabs button.on{background:#fff4c2;border-color:var(--wood-dark);font-weight:700}.toolbar button.on{background:var(--accent);color:#fff;border-color:#1a4f8f}.slider{display:inline-flex;align-items:center;gap:.4rem;color:inherit}.toolbar .slider{color:#f6e7c8;margin-left:auto}.world{width:100%;height:auto;max-height:calc(100vh - 260px);object-fit:contain;image-rendering:pixelated;border:4px solid var(--wood);border-radius:8px;box-shadow:0 0 0 3px var(--wood-dark);background:#7db662;cursor:pointer;touch-action:none}.ramp-legend{display:flex;gap:.5rem;align-items:center;color:#f6e7c8;font-size:.8rem}.ramp-legend i{display:inline-block;width:160px;height:10px;border-radius:3px}.sleep-bar{display:flex;gap:.6rem;align-items:center;justify-content:flex-end;flex-wrap:wrap}.pending{color:#fff4c2;font-size:.85rem}.sleep{font-size:1.1rem;padding:.5rem 1.2rem;background:#6250d6;color:#fff;border-color:#3a2f8a;box-shadow:0 3px #3a2f8a}.sleep.on{background:#3a2f8a}.panel{background:var(--panel);border:4px solid var(--wood);border-radius:10px;box-shadow:0 0 0 3px var(--wood-dark);display:flex;flex-direction:column;min-height:0}.tabs{display:flex;flex-wrap:wrap;gap:4px;padding:6px;border-bottom:3px solid var(--wood);background:var(--panel-2);border-radius:6px 6px 0 0}.tabs button{font-size:.85rem;padding:.25rem .5rem}.tab-body{overflow-y:auto;padding:.8rem 1rem 1.5rem;flex:1}.action{display:flex;justify-content:space-between;align-items:center;gap:.5rem;width:100%;margin:.25rem 0;text-align:left}.action small{color:var(--ink-2);white-space:nowrap;font-size:.75rem}.row .action{width:auto;flex:1}.stepper{display:inline-flex;align-items:center;gap:.3rem}.stepper output{min-width:2.5rem;text-align:center;font-weight:700}.choice{display:flex;flex-wrap:wrap;gap:4px;margin:.2rem 0}.choice button{padding:.15rem .5rem;font-size:.85rem}.stat{display:flex;justify-content:space-between;gap:.5rem;padding:.15rem 0;border-bottom:1px dashed #d8c294}.stat span{color:var(--ink-2)}.kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(130px,1fr));gap:.2rem 1rem;margin-bottom:.6rem}.list{padding-left:1.1rem;margin:.2rem 0}.list li{margin:.2rem 0}.query{border:2px solid #d8c294;border-radius:8px;padding:.5rem;margin:.5rem 0;background:#fffaf0}.query pre.plan{margin-top:.3rem;background:#2b2b2b;color:#d7f5c9;padding:.4rem;border-radius:4px}.objectives{list-style:none;padding:0}.objectives li{padding:.2rem 0}.objectives li.met{color:var(--good);font-weight:700}.hints li{margin:.25rem 0}.feed{list-style:none;padding:0;margin:.5rem 0}.ev{display:flex;gap:.5rem;padding:.35rem 0;border-bottom:1px dashed #d8c294}.ev small{color:var(--ink-2)}.ev-log pre,.ev-query_plan pre{background:#2b2b2b;color:#d7f5c9;padding:.3rem;border-radius:4px}.ev-incident{background:#fde8e6}.table{width:100%;border-collapse:collapse;margin:.4rem 0}.table caption{text-align:left;font-weight:700;color:var(--ink-2)}.table th{text-align:left;font-weight:600;color:var(--ink-2);padding:.15rem 0}.table td{text-align:right;padding:.15rem 0}.table tr.total th,.table tr.total td{border-top:2px solid var(--wood);font-weight:800;color:var(--ink)}.score-cell{display:flex;justify-content:flex-end;align-items:center;gap:.5rem;white-space:nowrap}.score-cell .value{min-width:7ch;text-align:right;font-variant-numeric:tabular-nums}.track{display:inline-block;width:120px;height:8px;background:#e6d3ab;border-radius:4px;overflow:hidden}.bar{display:block;height:100%;background:var(--accent);border-radius:0 4px 4px 0}.kpis.wide{grid-template-columns:repeat(auto-fit,minmax(200px,1fr))}.term{border-bottom:2px dotted var(--accent);cursor:help;position:relative}.term:hover:after,.term:focus:after{content:attr(data-tip);position:absolute;left:0;top:1.5em;z-index:20;width:260px;background:#fffaf0;color:var(--ink);border:2px solid var(--wood-dark);border-radius:6px;padding:.5rem;font:400 .8rem/1.35 Nunito,sans-serif;box-shadow:0 6px 18px #0005}.chart{margin:.6rem 0;position:relative}.chart figcaption{font-weight:700;font-size:.85rem}.chart svg{width:100%;height:auto;display:block}.chart .grid{stroke:#d8c294;stroke-width:1}.chart .tick{fill:var(--ink-2);font-size:10px}.chart .threshold{stroke:var(--ink-2);stroke-dasharray:4 3;stroke-width:1.5}.chart .crosshair{stroke:var(--ink-2);stroke-width:1}.legend{display:flex;gap:.8rem;font-size:.8rem;color:var(--ink-2)}.legend i,.tooltip i{display:inline-block;width:10px;height:10px;border-radius:2px;margin-right:4px;vertical-align:middle}.tooltip{position:absolute;top:1.4rem;transform:translate(-50%);background:#fffaf0;border:2px solid var(--wood-dark);border-radius:6px;padding:.3rem .5rem;font-size:.8rem;pointer-events:none;white-space:nowrap;box-shadow:0 4px 10px #0004}.chat{background:#fffaf0e0;border:3px solid var(--wood);border-radius:8px;padding:.4rem;max-width:520px}.chat ol{list-style:none;padding:0;margin:0 0 .3rem;max-height:110px;overflow-y:auto;font-size:.85rem}.chat input{width:100%}.toast{position:fixed;bottom:20px;left:50%;transform:translate(-50%);background:#fde8e6;border:3px solid var(--bad);color:var(--bad);padding:.6rem 1rem;border-radius:8px;font-weight:700;cursor:pointer;z-index:50;box-shadow:0 6px 20px #0006;max-width:calc(100vw - 32px)}.modal-bg{position:fixed;top:0;right:0;bottom:0;left:0;background:#0008;display:grid;place-items:center;z-index:40;padding:16px}.modal{padding:1.25rem 1.5rem;width:min(520px,100%);max-height:90vh;overflow-y:auto}.modal>.primary{margin-top:.8rem}.modal .row{margin-top:.8rem;align-items:stretch}.modal .row button{margin:0}.medal{font-size:1.6rem;font-weight:800;margin:.2rem 0}@media (max-width: 900px){.layout{grid-template-columns:1fr}.world{max-height:none}.panel{min-height:60vh}}@media (prefers-reduced-motion: reduce){*{transition:none!important;animation:none!important}}.career-game .world.career{max-height:calc(100vh - 330px)}.career-canvas-wrap{position:relative}.placement-hint{position:absolute;left:12px;top:12px;background:#fde8e6;color:var(--bad);border:2px solid var(--bad);border-radius:6px;padding:.25rem .6rem;font-weight:700;font-size:.85rem;pointer-events:none}.toolbar .sep{width:1px;height:24px;background:#f6e7c855;margin:0 .3rem}.company{display:flex;flex-direction:column;line-height:1.1}.company small{color:var(--ink-2);font-weight:600}.level{display:flex;align-items:center;gap:.4rem;font-size:.85rem}.meter{display:inline-block;width:70px;height:8px;background:#e6d3ab;border-radius:4px;overflow:hidden;vertical-align:middle}.meter.wide{width:120px}.meter>span{display:block;height:100%}.buildbar{padding:.5rem .6rem;border-radius:8px}.buildbar .cats{display:flex;gap:4px;flex-wrap:wrap;margin-bottom:.4rem}.buildbar .cats button{font-size:.85rem;padding:.2rem .6rem}.buildbar .cats button.on,.card-item.on,.role-pick button.on,.type-card.on{background:#fff4c2;border-color:var(--wood-dark);font-weight:700;outline:2px solid var(--wood-dark)}.cards-row{display:flex;gap:6px;overflow-x:auto;padding-bottom:4px}.card-item{position:relative;display:flex;flex-direction:column;align-items:flex-start;gap:2px;min-width:150px;max-width:170px;text-align:left;padding:.35rem .5rem}.card-item b{font-size:.85rem}.card-item small{color:var(--ink-2);font-size:.72rem}.card-item .lock{font-style:normal;font-size:.72rem;font-weight:700;color:var(--ink)}.role-pick{margin-top:.3rem;font-size:.85rem}.tool-hint{margin:.3rem 0 0;font-size:.78rem;color:var(--ink-2)}.problems{list-style:none;padding:0;margin:.3rem 0}.problems li{background:#fff4e0;border-left:4px solid #eda100;padding:.25rem .5rem;margin:.2rem 0;font-size:.85rem}.field{display:flex;justify-content:space-between;align-items:center;gap:.5rem;margin:.25rem 0}.field select,.field input{max-width:60%}.check{display:flex;gap:.4rem;align-items:center;margin:.25rem 0}.table.staff th{display:flex;flex-direction:column;font-weight:700;color:var(--ink)}.table.staff th small{color:var(--ink-2);font-weight:400}.table.staff td{vertical-align:middle}.table.staff input{width:5.5rem}.table.staff td small{display:block;color:var(--ink-2);font-size:.72rem}.list.cards{list-style:none;padding:0}.list.cards li{display:flex;flex-direction:column;gap:.2rem;border:2px solid #d8c294;border-radius:8px;padding:.4rem .5rem;margin:.35rem 0;background:#fffaf0}.list.cards small{color:var(--ink-2)}.list.cards button{align-self:flex-start}.wide-card{width:min(860px,calc(100vw - 32px))}.type-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:8px}.type-card{display:flex;flex-direction:column;align-items:flex-start;gap:.25rem;text-align:left}.type-card small{color:var(--ink-2)}.career-game .map-col{min-height:0}.career-canvas-wrap{flex:1;min-height:240px;display:flex}.career-game .world.career{width:100%;height:100%;max-height:none;object-fit:contain}.zoom-ctrl{position:absolute;right:12px;top:12px;display:flex;flex-direction:column;gap:4px}.zoom-ctrl button{width:32px;height:32px;padding:0;font-weight:800}.career-game{height:100vh;overflow:hidden}.career-game .layout{overflow:hidden}.career-game .buildbar .cards-row{align-items:stretch}
