.retro{--retro-ink: #1b1b2a;--retro-edge: 3px;--retro-font: ui-monospace, "SF Mono", "Cascadia Mono", Menlo, Consolas, "Courier New", monospace;font-family:var(--retro-font);letter-spacing:.02em}.retro-panel{background:var(--panel);border:var(--retro-edge) solid var(--text);box-shadow:6px 6px color-mix(in srgb,var(--text) 28%,transparent);padding:14px;margin-bottom:20px}.retro-title{font-size:13px;margin:0 0 12px;text-transform:uppercase;letter-spacing:.14em}.retro-title:before{content:"▸ ";color:var(--accent)}.retro-button{font-family:var(--retro-font);font-weight:700;text-transform:uppercase;letter-spacing:.08em;font-size:12px;padding:8px 12px;border-radius:0;border:var(--retro-edge) solid var(--text);background:var(--panel-2);color:var(--text);box-shadow:3px 3px color-mix(in srgb,var(--text) 35%,transparent)}.retro-button:hover:not(:disabled){border-color:var(--text);transform:translate(-1px,-1px)}.retro-button:active:not(:disabled){transform:translate(2px,2px);box-shadow:none}.retro-button.go{background:var(--ok);color:#0b1a10}.retro-badge{display:inline-block;padding:1px 6px;font-size:11px;font-weight:700;border:2px solid currentColor;text-transform:uppercase;letter-spacing:.06em}.retro-badge.ok{color:var(--ok)}.retro-badge.warn{color:var(--warn)}.retro-badge.fail{color:var(--fail)}.retro-dialog{background:var(--panel);border:var(--retro-edge) solid var(--text);box-shadow:6px 6px color-mix(in srgb,var(--text) 28%,transparent)}.retro-dialog-head{display:flex;justify-content:space-between;align-items:center;padding:6px 10px;background:var(--text);color:var(--panel);text-transform:uppercase;letter-spacing:.1em;font-size:12px}.retro-dialog-body{padding:10px 12px;font-size:13px}.retro-close{background:none;border:none;color:inherit;font-size:16px;line-height:1;padding:0 2px;cursor:pointer}.office-room{--wall: #56627a;--wall-edge: #2a2a35;--floor-a: #b79a74;--floor-b: #ad906a;--hall-a: #8f8a82;--hall-b: #88837b;position:relative;width:100%;overflow:hidden;container-type:inline-size;border:3px solid var(--text);background:var(--wall-edge);image-rendering:pixelated}.room,.hall{position:absolute;background-image:linear-gradient(45deg,var(--tile) 25%,transparent 25%,transparent 75%,var(--tile) 75%),linear-gradient(45deg,var(--tile) 25%,transparent 25%,transparent 75%,var(--tile) 75%);background-size:6.25cqw 6.25cqw;background-position:0 0,3.125cqw 3.125cqw}.room{--tile: var(--floor-b);background-color:var(--floor-a);box-shadow:inset 0 0 0 .5cqw var(--wall-edge)}.hall{--tile: var(--hall-b);background-color:var(--hall-a);left:0;right:0}.room-wall{position:absolute;left:0;right:0;top:0;background:var(--wall);border-bottom:.78cqw solid rgba(0,0,0,.28);box-shadow:inset 0 0 0 .5cqw var(--wall-edge)}.room-sign{position:absolute;right:1.4cqw;top:1.4cqw;z-index:2;font-size:clamp(7px,1.2cqw,12px);font-weight:700;line-height:1;white-space:nowrap;text-transform:uppercase;letter-spacing:.06em;padding:.4cqw .7cqw;background:#e9dcc0;color:#3a2a1a;border:.25cqw solid #3a2a1a}.doorway{position:absolute;background:var(--hall-a);border-left:.6cqw solid #6b4426;border-right:.6cqw solid #6b4426}.doorway.south{bottom:0}.doorway.north{top:0}.prop,.actor{position:absolute}.prop svg,.actor svg{display:block;width:100%;height:auto}.room-dark{position:absolute;z-index:400;pointer-events:none;background:#080a1c9e}.zzz{position:absolute;z-index:450;pointer-events:none;font-size:clamp(7px,1.5cqw,14px);line-height:1;font-weight:700;color:#cfe3ff;text-shadow:1px 1px 0 #14142a;animation:snore 2.4s steps(6) infinite}.nameplate{position:absolute;transform:translate(-50%);z-index:500;font-size:clamp(7px,1.25cqw,12px);line-height:1;white-space:nowrap;padding:.25cqw .5cqw;background:#141420c7;color:#f4f4f8;pointer-events:none}.nameplate.resting{background:#14142080;color:#d5d8e2}.bubble{position:absolute;transform:translate(-50%,-100%);z-index:600;font-size:clamp(8px,1.5cqw,14px);font-weight:700;line-height:1.15;white-space:nowrap;padding:.45cqw .8cqw;background:#fdfdf5;color:#1b1b2a;border:.3cqw solid #1b1b2a;animation:pop .25s steps(3);pointer-events:none}.bubble:after{content:"";position:absolute;left:50%;top:100%;margin-left:-.5cqw;border:.5cqw solid transparent;border-top-color:#1b1b2a}.bubble.ok{background:#d8ffd6}.bubble.warn{background:#fff0b8}.bubble.fail{background:#ffd6d6}.carried{position:absolute;right:-18%;top:48%;width:50%}.character g{transform-box:view-box}.pose-idle .part-head{animation:nod 2.6s steps(1) infinite}.actor.pose-idle{filter:saturate(.7)}.phone.ringing{animation:ring .12s steps(1) infinite}.bubble.ring{z-index:470}@keyframes ring{50%{transform:translate(1px,-1px) rotate(8deg)}}.pose-sleep .part-head{transform:translateY(3px)}.pose-sleep .part-armL,.pose-sleep .part-armR{transform:translateY(1px)}.pose-work .part-armL{animation:tap .45s steps(1) infinite}.pose-work .part-armR{animation:tap .45s steps(1) infinite .22s}.pose-work .part-head{animation:nod .9s steps(1) infinite}.pose-walk .part-legL{animation:tap .32s steps(1) infinite}.pose-walk .part-legR{animation:tap .32s steps(1) infinite .16s}.pose-walk .part-armL{animation:swing .32s steps(1) infinite .16s}.pose-walk .part-armR{animation:swing .32s steps(1) infinite}.pose-work.redo .part-head{animation:none;transform:translateY(1px)}.pose-upset .part-head{transform:translateY(1px)}.pose-upset .body{animation:shake .28s steps(1) infinite}@keyframes nod{50%{transform:translateY(1px)}}@keyframes tap{50%{transform:translateY(-1px)}}@keyframes swing{50%{transform:translateY(1px)}}@keyframes shake{50%{transform:translate(1px)}}@keyframes snore{0%{transform:translate(0) scale(.7);opacity:0}30%{opacity:1}to{transform:translate(60%,-160%) scale(1.15);opacity:0}}@keyframes pop{0%{transform:translate(-50%,-100%) scale(.4)}}.hitbox{position:absolute;z-index:700;padding:0;border:none;border-radius:0;background:transparent;cursor:help}.hitbox:hover,.hitbox:focus-visible{outline:.3cqw dashed #fdfdf5;outline-offset:0;border:none}.agent-card{position:absolute;z-index:800;top:2cqw;width:min(46cqw,340px);max-height:calc(100% - 4cqw);overflow:hidden;pointer-events:none;font-family:var(--retro-font)}.agent-card.left{left:2cqw}.agent-card.right{right:2cqw}.agent-card .retro-dialog-head{font-size:clamp(9px,1.4cqw,12px)}.agent-card .retro-dialog-body{font-size:clamp(10px,1.5cqw,13px);line-height:1.35}.agent-card p{margin:0 0 6px}.agent-card p:last-child{margin-bottom:0}.agent-card-name code,.agent-card-now{font-weight:700}.stack-count{position:absolute;transform:translate(-50%,-100%);z-index:500;font-size:clamp(8px,1.5cqw,14px);font-weight:700;line-height:1;white-space:nowrap;padding:.3cqw .7cqw;background:#fff0b8;color:#1b1b2a;border:.3cqw solid #1b1b2a;pointer-events:none}.stack-list{margin:0 0 6px;padding-left:1.1em}.stack-list li{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.stack-list .more{list-style:none;margin-left:-1.1em;opacity:.75}@container (max-width: 520px){.stack-list{display:none}}.office-status{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-top:12px;font-size:13px}.office-headline{font-weight:700}@media (prefers-reduced-motion: reduce){.actor,.nameplate,.hitbox{transition:none!important}.character g,.bubble{animation:none!important}}.token-status{margin-top:18px}.token-bar{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:12px}.token-tabs{display:flex;gap:6px;flex-wrap:wrap}.token-tabs button.active{background:var(--accent-solid);color:var(--on-accent);border-color:var(--accent-solid);font-weight:600}.token-run{font-size:13px}.token-note{font-size:13px;margin:0 0 12px}.token-table th:nth-child(n+3),.token-table td:nth-child(n+3){text-align:right;font-variant-numeric:tabular-nums}.token-table tfoot td{font-weight:700;border-top:var(--retro-edge) solid var(--text)}.token-legend{font-size:12px;margin:12px 0 0}:root,:root[data-theme=dark]{--bg: #0f1115;--panel: #171a21;--panel-2: #1e222b;--border: #2a2f3a;--text: #e6e8ee;--muted: #97a0b0;--accent: #6ea8fe;--accent-solid: #2f6bd8;--on-accent: #ffffff;--ok: #4ade80;--warn: #fbbf24;--fail: #f87171;color-scheme:dark}@media (prefers-color-scheme: light){:root:not([data-theme]){--bg: #eef1f5;--panel: #fbfcfd;--panel-2: #f1f4f8;--border: #d3dae4;--text: #12151b;--muted: #5a6472;--accent: #2563eb;--accent-solid: #1d4ed8;--on-accent: #ffffff;--ok: #15803d;--warn: #b45309;--fail: #b91c1c;color-scheme:light}}:root[data-theme=light]{--bg: #eef1f5;--panel: #fbfcfd;--panel-2: #f1f4f8;--border: #d3dae4;--text: #12151b;--muted: #5a6472;--accent: #2563eb;--accent-solid: #1d4ed8;--on-accent: #ffffff;--ok: #15803d;--warn: #b45309;--fail: #b91c1c;color-scheme:light}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text);font:14px/1.5 -apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif}button{font:inherit;color:var(--text);background:var(--panel-2);border:1px solid var(--border);border-radius:6px;padding:7px 12px;cursor:pointer}button:hover:not(:disabled){border-color:var(--accent)}button:disabled{opacity:.45;cursor:not-allowed}button.primary{background:var(--accent-solid);color:var(--on-accent);border-color:var(--accent-solid);font-weight:600}button.primary:hover:not(:disabled){filter:brightness(1.12);border-color:var(--accent-solid)}input,textarea,select{font:inherit;color:var(--text);background:var(--bg);border:1px solid var(--border);border-radius:6px;padding:8px 10px;width:100%}a{color:var(--accent)}.app{max-width:1180px;margin:0 auto;padding:20px}header.top{display:flex;align-items:center;gap:16px;padding-bottom:14px;border-bottom:1px solid var(--border);margin-bottom:18px}header.top h1{font-size:16px;margin:0;letter-spacing:.3px}header.top .spacer{flex:1}nav.tabs{display:flex;gap:6px;margin-bottom:18px;flex-wrap:wrap}nav.tabs button.active{background:var(--accent-solid);color:var(--on-accent);border-color:var(--accent-solid);font-weight:600}.panel{background:var(--panel);border:1px solid var(--border);border-radius:10px;padding:16px;margin-bottom:16px}.panel h2{font-size:13px;text-transform:uppercase;letter-spacing:.08em;color:var(--muted);margin:0 0 12px}.stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(130px,1fr));gap:10px}.stat{background:var(--panel-2);border:1px solid var(--border);border-radius:8px;padding:12px;text-align:left;width:100%;font:inherit;color:inherit;cursor:pointer}.stat:hover{border-color:var(--accent)}.stat .n{font-size:24px;font-weight:650}.stat .l{font-size:11px;color:var(--muted);text-transform:uppercase;letter-spacing:.05em}.table-wrap{overflow-x:auto}table{border-collapse:collapse;width:100%;font-size:13px}th,td{text-align:left;padding:8px 10px;border-bottom:1px solid var(--border);vertical-align:top}th{color:var(--muted);font-weight:600;font-size:11px;text-transform:uppercase;letter-spacing:.05em}tr.clickable:hover{background:var(--panel-2);cursor:pointer}.badge{display:inline-block;padding:2px 8px;border-radius:999px;font-size:11px;border:1px solid var(--border);background:var(--panel-2);white-space:nowrap}.badge.ok{color:var(--ok);border-color:color-mix(in srgb,var(--ok) 45%,transparent)}.badge.warn{color:var(--warn);border-color:color-mix(in srgb,var(--warn) 45%,transparent)}.badge.fail{color:var(--fail);border-color:color-mix(in srgb,var(--fail) 45%,transparent)}.muted{color:var(--muted)}.row{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.grid-2{display:grid;grid-template-columns:1fr 1fr;gap:16px}@media (max-width: 860px){.grid-2{grid-template-columns:1fr}}.feed{max-height:420px;overflow-y:auto;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:12px}.feed .ev{padding:5px 0;border-bottom:1px solid var(--border);display:flex;gap:10px}.feed .ev time{color:var(--muted);white-space:nowrap}.doc{background:var(--panel-2);border:1px solid var(--border);border-radius:8px;padding:14px;max-height:520px;overflow-y:auto}.doc h1,.doc h2,.doc h3{font-size:15px;margin:14px 0 6px}.doc ul{padding-left:20px}iframe.preview{width:100%;height:620px;border:1px solid var(--border);border-radius:8px;background:#fff}.login{max-width:340px;margin:12vh auto}.login .panel>*+*{margin-top:12px}.spinner{width:14px;height:14px;flex:none;border:2px solid var(--border);border-top-color:var(--accent);border-radius:50%;display:inline-block;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}@media (prefers-reduced-motion: reduce){.spinner{animation-duration:2.4s}}details>summary{list-style:revert}.theme-toggle{display:inline-flex;border:1px solid var(--border);border-radius:6px;overflow:hidden}.theme-toggle button{border:0;border-radius:0;padding:5px 9px;font-size:13px;line-height:1;background:var(--panel-2);color:var(--muted)}.theme-toggle button+button{border-left:1px solid var(--border)}.theme-toggle button.active{background:var(--accent-solid);color:var(--on-accent)}button.linky{background:none;border:0;padding:0;color:var(--accent);font-size:12px;text-decoration:underline;cursor:pointer}button.linky:hover{filter:brightness(1.15)}.bar{height:6px;background:var(--panel-2);border:1px solid var(--border);border-radius:999px;overflow:hidden}.bar-fill{height:100%;background:var(--accent-solid);transition:width .8s linear}.bar-fill.indeterminate{width:35%;animation:slide 1.6s ease-in-out infinite}@keyframes slide{0%{margin-left:-35%}to{margin-left:100%}}ol.stages{list-style:none;padding:0;margin:12px 0 0}ol.stages li{display:flex;align-items:center;gap:10px;padding:4px 0;color:var(--muted)}ol.stages li .mark{width:14px;text-align:center;flex:none}ol.stages li.done{color:var(--text)}ol.stages li.done .mark{color:var(--ok)}ol.stages li.active{color:var(--text);font-weight:600}ol.stages li.active .mark{color:var(--accent)}.running-bar{display:flex;align-items:center;gap:10px;background:color-mix(in srgb,var(--accent) 12%,var(--panel));border:1px solid color-mix(in srgb,var(--accent) 45%,var(--border));border-radius:8px;padding:8px 12px;margin-bottom:8px;font-size:13px}.running-summary{font-size:12px;margin-bottom:6px;display:flex;align-items:center;gap:8px}.err{color:var(--fail);font-size:13px}.banner{border:1px solid color-mix(in srgb,var(--warn) 50%,transparent);background:color-mix(in srgb,var(--warn) 12%,transparent);border-radius:8px;padding:12px;margin-bottom:14px}
