:root{--bg:#101a1c;--panel:#101a1ce0;--panel-border:#ffffff1f;--text:#e8efe9;--muted:#9fb3ad;--accent:#5fd6c4;--warn:#f2c14e;--danger:#ef6b5c;--btn:#1f3336;--btn-active:#2f5a57;--safe-top:env(safe-area-inset-top,0px);--safe-bottom:env(safe-area-inset-bottom,0px)}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}[hidden]{display:none!important}html,body{background:var(--bg);height:100%;color:var(--text);overscroll-behavior:none;-webkit-user-select:none;user-select:none;margin:0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;overflow:hidden}#app{position:fixed;inset:0}.screen{flex-direction:column;display:none;position:absolute;inset:0}.screen.active{display:flex}button{font:inherit;color:var(--text);background:var(--btn);border:1px solid var(--panel-border);cursor:pointer;touch-action:manipulation;border-radius:12px;padding:12px 16px;font-size:16px}button:active{background:var(--btn-active)}button.primary{background:var(--accent);color:#062421;border-color:#0000;font-weight:600}button.small{border-radius:10px;padding:8px 12px;font-size:14px}button:disabled{opacity:.4}button.toggle.on{background:var(--btn-active);border-color:var(--accent);box-shadow:inset 0 0 0 2px #5fd6c459}h1{margin:0 0 6px;font-size:30px}h2{margin:0 0 8px;font-size:20px}p{margin:0 0 10px;line-height:1.4}.muted{color:var(--muted)}.note{opacity:.85;max-width:30em;margin:0 auto 10px;font-size:12px;line-height:1.35}.center{text-align:center;-webkit-overflow-scrolling:touch;touch-action:pan-y;align-items:center;gap:12px;padding:24px;overflow-y:auto}.center>:first-child{margin-top:auto}.center>:last-child{margin-bottom:auto}.panel-screen{padding-top:var(--safe-top)}.panel-head{text-align:center;padding:16px 16px 8px}.panel-head h2{margin:0}.panel-body{-webkit-overflow-scrolling:touch;touch-action:pan-y;flex:1;min-height:0;padding:0 16px 12px;overflow-y:auto}.panel-body .card{margin:0 auto}.panel-foot{padding:10px 16px calc(var(--safe-bottom) + 12px);border-top:1px solid var(--panel-border);background:var(--bg);flex:none;justify-content:center;display:flex}.panel-foot button{width:min(360px,100%)}.stack{flex-direction:column;gap:10px;width:min(360px,100%);display:flex}.card{background:var(--panel);border:1px solid var(--panel-border);text-align:left;border-radius:16px;width:min(420px,100%);padding:18px}#game-canvas{touch-action:none;background:#0b1416;width:100%;height:100%;display:block;position:absolute;inset:0}#hud-top{top:var(--safe-top);pointer-events:none;align-items:center;gap:10px;padding:10px 12px;display:flex;position:absolute;left:0;right:0}#hud-top>*{pointer-events:auto}#btn-recenter{background:var(--accent);color:#062421;border-color:#0000;font-weight:600}#energy{background:var(--panel);border:1px solid var(--panel-border);font-variant-numeric:tabular-nums;border-radius:12px;flex:1;align-items:center;gap:8px;min-width:0;padding:6px 10px;font-weight:600;display:flex}#energy-bar{background:#ffffff1f;border-radius:6px;flex:1;height:10px;overflow:hidden}#energy-fill{background:var(--accent);width:100%;height:100%;transition:width .25s,background .25s}#energy-fill.low{background:var(--warn)}#energy-fill.critical{background:var(--danger)}#bubble{top:calc(var(--safe-top) + 58px);color:#12201f;opacity:0;pointer-events:none;background:#e8efe9f5;border-radius:14px;max-width:480px;margin:0 auto;padding:10px 14px;font-size:15px;line-height:1.35;transition:opacity .2s,transform .2s;position:absolute;left:12px;right:12px;transform:translateY(-6px);box-shadow:0 6px 20px #00000059}#bubble.show{opacity:1;pointer-events:auto;transform:none}#bubble:before{content:"🤖 "}#hud-bottom{padding:10px 12px calc(var(--safe-bottom) + 10px);pointer-events:none;justify-content:space-between;align-items:flex-end;gap:12px;display:flex;position:absolute;bottom:0;left:0;right:0}#hud-bottom>*{pointer-events:auto}#dpad{flex:none;width:132px;height:132px;position:relative}#dpad button{background:var(--panel);border-radius:50%;width:52px;height:52px;padding:0;font-size:22px;position:absolute}#dpad .up{top:0;left:40px}#dpad .left{top:40px;left:0}#dpad .right{top:40px;right:0}#dpad .down{bottom:0;left:40px}#joy{background:var(--panel);border:1px solid var(--panel-border);touch-action:none;border-radius:50%;flex:none;width:140px;height:140px;position:relative}#joy .joy-arrow{color:var(--muted);pointer-events:none;font-size:20px;transition:color .1s;position:absolute}#joy .joy-arrow.on{color:var(--accent)}#joy .joy-arrow.up{top:10px;right:26px}#joy .joy-arrow.left{top:10px;left:26px}#joy .joy-arrow.right{bottom:10px;right:26px}#joy .joy-arrow.down{bottom:10px;left:26px}#joy-knob{background:var(--btn-active);border:2px solid var(--accent);pointer-events:none;border-radius:50%;width:52px;height:52px;transition:transform 80ms;position:absolute;top:44px;left:44px;box-shadow:0 4px 12px #0006}#actions{grid-template-columns:1fr 1fr;gap:8px;display:grid}#actions button{background:var(--panel);min-width:86px;padding:10px 8px;font-size:14px}#actions button.wide{grid-column:span 2}#btn-grab.broken{border-style:dashed;border-color:var(--danger);color:var(--muted)}#btn-magnet.hidden,#btn-craft.hidden{display:none}#btn-craft{border-color:var(--accent)}#btn-craft.ready{background:var(--accent);color:#062421;font-weight:600}#btn-magnet.targeting{background:var(--warn);color:#241a00}.modal{z-index:10;background:#050a0bb3;justify-content:center;align-items:center;padding:20px;display:none;position:absolute;inset:0}.modal.active{display:flex}.modal .card{flex-direction:column;max-height:min(85vh,100% - 16px);padding:0;display:flex}.modal-body{-webkit-overflow-scrolling:touch;touch-action:pan-y;flex:auto;min-height:0;padding:18px;overflow-y:auto}.modal-foot{border-top:1px solid var(--panel-border);flex:none;padding:10px 18px 14px}.modal-foot .row{margin-top:0}.modal .row{flex-wrap:wrap;gap:8px;margin-top:10px;display:flex}.modal .row button{flex:1}.help ul{margin:4px 0 10px;padding-left:18px;line-height:1.45}.legend{grid-template-columns:22px 1fr;align-items:center;gap:6px 10px;font-size:14px;display:grid}.legend i{border-radius:3px;width:18px;height:12px;display:inline-block}#base-scene{border-radius:16px;width:min(440px,100%);height:auto}#base-scene .bg,#base-scene .wall,#base-scene .floor,#base-scene .lamp{transition:fill 1.1s}#base-scene.dark .bg{fill:#141f21}#base-scene.dark .wall{fill:#1b2a2c}#base-scene.dark .floor{fill:#1f2d2a}#base-scene.dark .lamp{fill:#444}#base-scene.lit .bg{fill:#2b4a44}#base-scene.lit .wall{fill:#3c6159}#base-scene.lit .floor{fill:#4c6b5a}#base-scene.lit .lamp{fill:#f2c14e}#base-scene .el{transition:opacity .7s,transform .7s}#base-scene .el.off{opacity:0;pointer-events:none}#base-scene .buddy{transform:translate(0)}#base-scene .buddy.off{transform:translate(70px)}#base-scene .tap{cursor:pointer}#base-scene .tap:active text{filter:brightness(1.3)}#base-card .line{margin:0 0 8px}#base-card .line.buddy{color:#cfe6dd}#base-card .buddy-tag{color:var(--accent);font-weight:600}#base-card.item-view h2{margin-bottom:8px}#base-card .row{gap:8px;margin-top:6px;display:flex}.stats{font-variant-numeric:tabular-nums;grid-template-columns:1fr auto;gap:6px 14px;display:grid}.stats span:nth-child(2n){text-align:right;font-weight:600}.log details{border:1px solid var(--panel-border);background:#ffffff08;border-radius:12px;margin:8px 0}.log summary{cursor:pointer;align-items:center;gap:8px;padding:12px;font-size:15px;font-weight:600;list-style:none;display:flex}.log summary::-webkit-details-marker{display:none}.log summary:before{content:"▸";color:var(--muted);font-size:13px;transition:transform .15s}.log details[open] summary:before{transform:rotate(90deg)}.log summary .area-count{color:var(--muted);white-space:nowrap;margin-left:auto;font-size:13px;font-weight:400}.log summary .area-count.all{color:var(--accent)}.log ul{margin:0;padding:0 12px 8px;list-style:none}.log li{padding:3px 0;line-height:1.35}.log li.todo{color:var(--text)}.log li.secret{color:var(--muted)}.log .small{font-size:13px}#summary-card .log h2{margin-top:16px;font-size:18px}.summary-lead{margin:6px 0 12px}.costs{font-variant-numeric:tabular-nums;grid-template-columns:1fr auto;gap:4px 14px;margin:4px 0 10px;font-size:14px;display:grid}.costs span:nth-child(2n){text-align:right;font-weight:600}
