:root{--bg: #0e1116;--panel: rgba(16, 19, 26, .82);--panel-border: rgba(255, 255, 255, .08);--ink: #f4f2ee;--ink-dim: rgba(244, 242, 238, .62);--ink-faint: rgba(244, 242, 238, .38);--ok: #3ddc97;--warn: #ffb340;--bad: #ff3b30;--idle: #4da3ff;--accent: #3ddc97;--mono: ui-monospace, "SF Mono", Menlo, Consolas, monospace;--sans: -apple-system, BlinkMacSystemFont, "Segoe UI", Inter, Roboto, sans-serif}*{box-sizing:border-box}html,body{margin:0;height:100%;overflow:hidden;background:var(--bg);color:var(--ink);font-family:var(--sans);font-size:14px;line-height:1.4}html.stage .hud{zoom:1.22}@keyframes pulse{0%,to{opacity:.35;transform:scale(.8)}50%{opacity:1;transform:scale(1.15)}}.status .pulse{display:inline-block;width:9px;height:9px;border-radius:50%;background:var(--warn);margin-right:9px;animation:pulse 1.1s ease-in-out infinite}@media(prefers-reduced-motion:reduce){.status .pulse{animation:none}}#app{position:fixed;inset:0}#app>canvas{display:block;width:100%;height:100%}.fatal{position:fixed;inset:24px;background:#1a0d0d;color:#ffb4ae;padding:16px;border-radius:10px;overflow:auto;z-index:100}.hud{position:fixed;inset:0;pointer-events:none;z-index:10}.hud>*{pointer-events:auto}.brand{position:absolute;top:14px;left:16px;max-width:340px}.brand-row{display:flex;align-items:center;gap:10px}.brand-name{font-size:22px;font-weight:800;letter-spacing:-.02em}.brand-sub{color:var(--ink-dim);margin-top:2px}.brand-world{color:var(--ink-dim);font-family:var(--mono);font-size:12px;margin-top:4px}.badge{font-size:11px;font-weight:600;padding:2px 8px;border-radius:999px;border:1px solid var(--panel-border);background:var(--panel);letter-spacing:.02em}.badge.convex{color:var(--ok);border-color:#3ddc9766}.badge.local{color:var(--warn);border-color:#ffb34066}.status{position:absolute;top:14px;left:50%;transform:translate(-50%);background:var(--panel);border:1px solid var(--panel-border);padding:8px 14px;border-radius:999px;font-family:var(--mono);font-size:12px;color:var(--ink-dim);backdrop-filter:blur(10px)}.toast{position:absolute;bottom:118px;left:50%;transform:translate(-50%);background:#3ddc9724;border:1px solid rgba(61,220,151,.4);color:var(--ink);padding:8px 14px;border-radius:10px;font-size:13px;backdrop-filter:blur(10px)}.panel{position:absolute;top:104px;bottom:118px;width:300px;display:flex;flex-direction:column;gap:10px;overflow-y:auto;scrollbar-width:thin}.panel.left{left:16px}.panel.right{right:16px;width:320px}.panel section{background:var(--panel);border:1px solid var(--panel-border);border-radius:12px;padding:10px 12px;backdrop-filter:blur(10px)}.section-title{font-weight:700;font-size:12px;text-transform:uppercase;letter-spacing:.08em;color:var(--ink-dim);margin-bottom:8px;display:flex;justify-content:space-between;align-items:baseline;gap:8px}.section-title .hint{text-transform:none;letter-spacing:0;font-weight:400}.hint{color:var(--ink-faint);font-size:12px}.mono{font-family:var(--mono);font-variant-numeric:tabular-nums}button{font:inherit;color:var(--ink);background:#ffffff0f;border:1px solid var(--panel-border);border-radius:8px;padding:6px 10px;cursor:pointer}button:hover{background:#ffffff1f}button:focus-visible,input:focus-visible,select:focus-visible{outline:2px solid var(--accent);outline-offset:1px}button.primary{background:var(--accent);color:#06140d;border-color:transparent;font-weight:700}button.primary:hover{filter:brightness(1.08)}button.danger{color:#ffb4ae;border-color:#ff3b3059}button.ghost{color:var(--ink-dim)}input,select{font:inherit;color:var(--ink);background:#ffffff0f;border:1px solid var(--panel-border);border-radius:8px;padding:6px 8px;min-width:0}input[type=color]{padding:2px;width:36px;height:30px}input[type=number]{width:64px}.seg{display:flex;flex-wrap:wrap;gap:6px}.seg button.on{background:#3ddc972e;border-color:#3ddc9780}.draft{display:flex;gap:6px;margin-top:8px}.draft input[type=text],.draft input:not([type]){flex:1}.tool-hint{margin-top:8px;color:var(--ink-faint);font-size:12px}.row{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.toggle{display:inline-flex;align-items:center;gap:4px;color:var(--ink-dim);font-size:12px}.entities{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:3px;max-height:150px;overflow-y:auto}.entities li{display:grid;grid-template-columns:12px 1fr auto 20px;align-items:center;gap:8px;padding:4px 6px;border-radius:6px;cursor:pointer}.entities li:hover{background:#ffffff0d}.entities li.selected{background:#3ddc9724}.swatch{width:10px;height:10px;border-radius:3px;display:inline-block;background:#888}.swatch.zone{background:var(--ok);border-radius:50%}.swatch.fixture{background:#ffd166;border-radius:2px}.ename{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.emeta{color:var(--ink-faint);font-size:12px;font-family:var(--mono)}.remove{padding:0;width:20px;height:20px;line-height:18px;text-align:center;color:var(--ink-faint);background:transparent;border-color:transparent}.remove:hover{color:var(--bad)}.empty{color:var(--ink-faint);font-size:12px}.task-text{font-size:15px;font-weight:600;letter-spacing:-.01em}.task-meta{color:var(--ink-faint);font-size:12px;margin:2px 0 8px}.steps{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:4px}.steps li{display:grid;grid-template-columns:62px 66px 1fr;gap:8px;align-items:baseline;font-size:14px;padding:6px 8px;border-radius:8px;background:#ffffff08;border-left:3px solid var(--ink-faint)}.steps li .note{grid-column:2 / -1;color:var(--ink-dim);font-size:12px;font-family:var(--mono)}.steps li.doing{border-left-color:var(--warn);background:#ffb3401a}.steps li.done{border-left-color:var(--ok)}.steps li.failed{border-left-color:var(--bad);background:#ff3b301a}.chip{font-family:var(--mono);font-size:11px;text-transform:uppercase;letter-spacing:.06em;color:var(--ink-dim)}.doing .chip{color:var(--warn)}.done .chip{color:var(--ok)}.failed .chip{color:var(--bad)}.kind{font-weight:600}.tname{color:var(--ink-dim)}.planning{color:var(--warn);font-family:var(--mono);font-size:12px}.result{margin-top:8px;padding:8px 10px;border-radius:8px;display:flex;gap:10px;align-items:baseline;font-size:13px}.result b{font-size:17px;letter-spacing:.04em}.queue{margin-top:8px;border-top:1px solid var(--panel-border);padding-top:6px}.queue-title{font-size:11px;text-transform:uppercase;letter-spacing:.08em;color:var(--ink-faint);margin-bottom:4px}.queue-item{display:flex;justify-content:space-between;gap:8px;font-size:13px;color:var(--ink-dim);padding:2px 0}.queue-item em{font-style:normal;color:var(--ink-faint);font-size:11px}.result.pass{background:#3ddc9729;color:var(--ok)}.result.fail{background:#ff3b3029;color:#ffb4ae}.history{margin-top:8px;color:var(--ink-dim)}.history summary{cursor:pointer;font-size:12px}.hist{display:flex;justify-content:space-between;gap:8px;padding:3px 0;font-size:12px}.hist.pass b{color:var(--ok)}.hist.fail b{color:var(--bad)}.robot-status{display:flex;flex-wrap:wrap;gap:8px;align-items:center}.led{width:10px;height:10px;border-radius:50%;display:inline-block;box-shadow:0 0 10px currentColor}.led.idle{background:var(--idle);color:var(--idle)}.led.moving{background:var(--ok);color:var(--ok)}.led.working{background:var(--warn);color:var(--warn)}.led.failed{background:var(--bad);color:var(--bad)}.qr{display:flex;gap:12px;align-items:center}.qr canvas{flex:none;border-radius:8px}.qr-text a{color:var(--accent);font-family:var(--mono);font-size:12px;word-break:break-all}.controls{gap:8px}.gauntlet-head{display:flex;justify-content:space-between;gap:8px;margin-bottom:6px;color:var(--ink-dim);font-size:13px}.gauntlet-why{font-size:13px;color:#ffb4ae;margin-bottom:6px;line-height:1.35}.gauntlet-why b{color:var(--ink);font-weight:600}.gauntlet-head b{color:var(--ink);font-family:var(--mono)}.tiles{display:grid;grid-template-columns:repeat(2,1fr);gap:5px}.tile{border-radius:8px;padding:6px 8px;font-size:12px;cursor:pointer;border:1px solid var(--panel-border);min-height:46px;display:flex;flex-direction:column;gap:2px}.tile b{font-size:11px;text-transform:uppercase;letter-spacing:.06em;color:var(--ink-dim)}.tile span{color:var(--ink);overflow:hidden;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}.tile.pass{background:#3ddc9729;border-color:#3ddc9766}.tile.fail{background:#ff3b3029;border-color:#ff3b3066}.tile.pending{background:#ffffff0a}.receipts{display:flex;flex-direction:column;gap:8px;margin-top:6px}.receipt{display:grid;gap:2px;font-size:12px;color:var(--ink-dim)}.receipt b{color:var(--ink)}.receipt em{color:var(--ink-faint);font-style:normal;font-family:var(--mono)}details summary{list-style:none;cursor:pointer}details summary::-webkit-details-marker{display:none}.chorebar{position:absolute;left:50%;bottom:18px;transform:translate(-50%);width:min(720px,calc(100% - 700px));min-width:420px;display:flex;flex-direction:column;gap:8px;align-items:center}.chorebar form{display:flex;gap:8px;width:100%;background:var(--panel);border:1px solid var(--panel-border);border-radius:14px;padding:8px;backdrop-filter:blur(12px)}.chorebar input{flex:1;font-size:16px;padding:10px 12px;background:transparent;border:none}.chorebar input::placeholder{color:var(--ink-faint)}.chorebar .primary{padding:10px 18px;font-size:14px}.chips{display:flex;flex-wrap:wrap;justify-content:center;gap:6px}.chips button{font-size:12px;padding:5px 10px;border-radius:999px;color:var(--ink-dim);background:var(--panel)}.hints{position:absolute;bottom:6px;left:16px;color:var(--ink-faint);font-size:12px}@media(max-height:800px){.entities{max-height:110px}.panel{top:100px;bottom:112px}}@media(max-width:1100px){.panel{width:250px}.panel.right{width:270px}.chorebar{width:calc(100% - 560px);min-width:320px}}html,body{overflow:auto;height:auto;min-height:100%;font-size:15px}#ledger-app{max-width:560px;margin:0 auto;padding:16px 14px 40px;display:flex;flex-direction:column;gap:12px}#ledger-app header .brand{position:static;font-size:24px;font-weight:800;letter-spacing:-.02em;display:flex;align-items:center;gap:10px}#ledger-app header .sub{color:var(--ink-dim);font-size:13px;margin-top:2px}#ledger-app form{display:flex;gap:8px;background:var(--panel);border:1px solid var(--panel-border);border-radius:14px;padding:8px}#ledger-app form input{flex:1;font-size:16px;padding:10px 12px;background:transparent;border:none}#ledger-app form button{background:var(--accent);color:#06140d;font-weight:700;border-color:transparent;padding:10px 16px}#ledger-app .chips{justify-content:flex-start}#ledger-app .chips button{min-height:40px;font-size:14px;padding:8px 14px}#ledger-app .steps li{font-size:15px}#ledger-app .chip{font-size:12px}#ledger-app .steps li .note{font-size:13px}#ledger-app .tile{font-size:13px;min-height:56px}#ledger-app section{background:var(--panel);border:1px solid var(--panel-border);border-radius:12px;padding:12px}#ledger-app section:empty{display:none}#map{width:100%;height:auto;border-radius:8px;display:block}.gh{font-weight:700;font-size:12px;text-transform:uppercase;letter-spacing:.08em;color:var(--ink-dim);margin-bottom:8px}#ledger-app .tiles{grid-template-columns:repeat(3,1fr)}#ledger-app footer{color:var(--ink-faint);font-size:12px;text-align:center}
