:root{--bg: #eef1f4;--panel: #ffffff;--panel-2: #f4f6f8;--line: #d2d9e0;--line-2: #b9c3cc;--grid: rgba(40, 70, 100, .07);--text: #14202b;--muted: #5a6977;--faint: #8795a2;--accent: #d6652a;--accent-soft: rgba(214, 101, 42, .14);--on-accent: #ffffff;--hub: #1d2a37;--on-hub: #f3f6f8;--ok: #23905f;--warn: #c98500;--err: #d13f47;--info: #3a79cf;--continue: #11897a;--terminate: #4c5ad0;--pk-message: #3a79cf;--pk-tool_use: #d99a00;--pk-tool_result: #11897a;--pk-task: #7656d0;--pk-text: #6f7d8a;--pk-result: #23905f;--pk-error: #d13f47;--paper: #fffcf3;--paper-ink: #3a3322;--paper-line: #a39667;--passport: #bf3a94;--passport-soft: rgba(191, 58, 148, .12);--shadow: 0 1px 2px rgba(20, 32, 43, .06), 0 6px 18px rgba(20, 32, 43, .07);--f-display: "Bricolage Grotesque", "Avenir Next", "Segoe UI", system-ui, sans-serif;--f-body: "IBM Plex Sans", "Segoe UI", system-ui, -apple-system, sans-serif;--f-mono: "JetBrains Mono", ui-monospace, "SF Mono", Menlo, Consolas, monospace}@media (prefers-color-scheme: dark){:root:not([data-theme=light]){color-scheme:dark;--bg: #0d141b;--panel: #141d26;--panel-2: #1a2530;--line: #283542;--line-2: #3a4a59;--grid: rgba(140, 180, 220, .055);--text: #dbe5ed;--muted: #8e9fae;--faint: #66788a;--accent: #ec864a;--accent-soft: rgba(236, 134, 74, .16);--on-accent: #1a0d05;--hub: #e3eaf0;--on-hub: #0d141b;--ok: #3cbc84;--warn: #eeb02a;--err: #f06068;--info: #5d9bef;--continue: #2bbfa8;--terminate: #818ffb;--pk-message: #4e8fe6;--pk-tool_use: #e8aa1c;--pk-tool_result: #25ae99;--pk-task: #9a80f0;--pk-text: #7f8f9d;--pk-result: #36b07c;--pk-error: #e5535b;--paper: #f4eedb;--paper-ink: #2d281a;--paper-line: #a39667;--passport: #e05bb6;--passport-soft: rgba(224, 91, 182, .16);--shadow: 0 1px 2px rgba(0, 0, 0, .3), 0 8px 24px rgba(0, 0, 0, .28)}}:root[data-theme=dark]{color-scheme:dark;--bg: #0d141b;--panel: #141d26;--panel-2: #1a2530;--line: #283542;--line-2: #3a4a59;--grid: rgba(140, 180, 220, .055);--text: #dbe5ed;--muted: #8e9fae;--faint: #66788a;--accent: #ec864a;--accent-soft: rgba(236, 134, 74, .16);--on-accent: #1a0d05;--hub: #e3eaf0;--on-hub: #0d141b;--ok: #3cbc84;--warn: #eeb02a;--err: #f06068;--info: #5d9bef;--continue: #2bbfa8;--terminate: #818ffb;--pk-message: #4e8fe6;--pk-tool_use: #e8aa1c;--pk-tool_result: #25ae99;--pk-task: #9a80f0;--pk-text: #7f8f9d;--pk-result: #36b07c;--pk-error: #e5535b;--paper: #f4eedb;--paper-ink: #2d281a;--paper-line: #a39667;--passport: #e05bb6;--passport-soft: rgba(224, 91, 182, .16);--shadow: 0 1px 2px rgba(0, 0, 0, .3), 0 8px 24px rgba(0, 0, 0, .28)}*{box-sizing:border-box}html,body{height:100%}body{margin:0;background:var(--bg);color:var(--text);font:14px/1.5 var(--f-body);-webkit-font-smoothing:antialiased}button{font:inherit;color:inherit}:focus-visible{outline:2px solid var(--accent);outline-offset:2px}h1,h2,h3{font-family:var(--f-display);text-wrap:balance;margin:0}code,pre,.mono{font-family:var(--f-mono)}.btn{display:inline-flex;align-items:center;gap:6px;border:1px solid var(--line-2);background:var(--panel);color:var(--text);border-radius:8px;padding:7px 13px;cursor:pointer;font-weight:500;transition:background .15s,border-color .15s}.btn:hover:not(:disabled){border-color:var(--text)}.btn:disabled{opacity:.45;cursor:not-allowed}.btn-primary{background:var(--accent);border-color:var(--accent);color:var(--on-accent)}.btn-primary:hover:not(:disabled){filter:brightness(1.06);border-color:var(--accent)}.btn-ghost{background:transparent;border-color:transparent;color:var(--muted)}.btn-sm{padding:4px 9px;font-size:12px}.app{display:grid;grid-template-columns:248px minmax(0,1fr);min-height:100%}.rail{border-right:1px solid var(--line);background:var(--panel);padding:18px 14px;display:flex;flex-direction:column;gap:18px;position:sticky;top:env(safe-area-inset-top,0px);height:100vh}.brand{display:flex;gap:10px;align-items:center}.brand-mark{width:30px;height:30px;border-radius:50%;background:var(--accent);position:relative;flex:none;box-shadow:0 0 0 4px var(--accent-soft)}.brand-mark:after{content:"";position:absolute;top:9px;right:9px;bottom:9px;left:9px;border-radius:50%;border:2px solid var(--on-accent);border-right-color:transparent}.brand-name{font-family:var(--f-display);font-weight:700;font-size:15px;line-height:1.2}.brand-sub{font-size:11px;color:var(--muted)}.lesson-nav{display:flex;flex-direction:column;gap:6px}.lesson-link{text-align:left;display:grid;grid-template-columns:auto 1fr;gap:2px 10px;padding:10px;border-radius:10px;border:1px solid transparent;background:transparent;cursor:pointer}.lesson-link:hover{background:var(--panel-2)}.lesson-link.is-on{background:var(--panel-2);border-color:var(--line)}.lesson-num{font-family:var(--f-mono);font-size:12px;font-weight:600;color:var(--accent);grid-row:span 2;padding-top:1px}.lesson-title{font-weight:600;font-size:13px;line-height:1.3}.lesson-bars{display:flex;gap:3px;margin-top:5px}.bar{flex:1;height:4px;border-radius:2px;background:var(--line);overflow:hidden}.bar>span{display:block;height:100%;background:var(--ok);transition:width .4s}.lesson-link.is-locked{cursor:default;opacity:.5}.lesson-soon{font-size:11px;color:var(--muted)}.reset{margin-top:auto;align-self:flex-start}.main{min-width:0;padding-inline:24px;padding-block:20px 40px;display:flex;flex-direction:column;gap:14px}.lesson-head{display:flex;flex-direction:column;gap:4px}.lesson-eyebrow{font-family:var(--f-mono);font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--accent)}.lesson-head h1{font-size:30px;font-weight:700;letter-spacing:-.01em}.hook{margin:0;color:var(--muted);max-width:70ch}.mode-tabs{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:6px;margin-top:10px}.mode-tab{position:relative;display:flex;align-items:center;gap:9px;padding:9px 11px 12px;border-radius:10px;border:1px solid var(--line);background:var(--panel);cursor:pointer;text-align:left;overflow:hidden}.mode-tab:hover{border-color:var(--line-2)}.mode-tab.is-on{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent) inset}.mode-idx{width:22px;height:22px;flex:none;display:grid;place-items:center;border-radius:6px;background:var(--panel-2);font:600 11px var(--f-mono);color:var(--muted)}.mode-tab.is-on .mode-idx{background:var(--accent);color:var(--on-accent)}.mode-text{display:flex;flex-direction:column;min-width:0}.mode-label{font-weight:600}.mode-verb{font-size:11px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.mode-meter{position:absolute;left:0;right:0;bottom:0;height:3px;background:var(--line)}.mode-meter>span{display:block;height:100%;background:var(--ok);transition:width .4s}.scene-picker{display:flex;gap:8px;overflow-x:auto;padding-bottom:2px}.scene{position:relative;flex:0 0 auto;max-width:280px;display:flex;flex-direction:column;gap:2px;text-align:left;padding:8px 12px;border-radius:9px;border:1px solid var(--line);background:var(--panel);cursor:pointer}.scene.is-on{border-color:var(--text)}.scene-title{font-weight:600;font-size:13px;display:flex;gap:6px;align-items:center}.scene-blurb{font-size:11.5px;color:var(--muted)}.scene-done{position:absolute;top:6px;right:8px;color:var(--ok);font-weight:700;font-size:12px}.bug-tag{font:600 10px var(--f-mono);text-transform:uppercase;letter-spacing:.06em;color:var(--err);border:1px solid var(--err);border-radius:4px;padding:0 4px}.sim{display:grid;grid-template-columns:minmax(0,1fr) 320px;gap:14px;align-items:start}.sim-main{display:flex;flex-direction:column;gap:10px;min-width:0}.sim-side{display:flex;flex-direction:column;gap:10px}.stage-wrap{position:relative;border:1px solid var(--line);border-radius:12px;overflow:hidden;background:var(--panel);box-shadow:var(--shadow)}.stage{display:block;width:100%;height:auto;max-height:68vh;font-family:var(--f-body);-webkit-user-select:none;user-select:none}.stage-bg{fill:var(--panel)}.grid-line{fill:none;stroke:var(--grid);stroke-width:1}.panel{background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:12px 14px}.panel-title{font-size:13px;font-family:var(--f-body);font-weight:600;margin-bottom:8px}.state-eyebrow{font:600 10.5px var(--f-mono);letter-spacing:.07em;text-transform:uppercase;color:var(--muted)}.state-title{font-size:18px;margin:3px 0 4px}.state-caption{margin:0;color:var(--text);font-size:13.5px}.agent-tabs{display:flex;flex-wrap:wrap;gap:4px;margin-bottom:8px}.agent-tab{border:1px solid var(--line);background:var(--panel-2);border-radius:999px;padding:2px 10px;font-size:12px;cursor:pointer}.agent-tab.is-on{background:var(--text);color:var(--bg);border-color:var(--text)}.room{border:3px double var(--line-2);border-radius:10px;padding:8px 10px;background:var(--panel-2)}.room-label{font:600 10.5px var(--f-mono);letter-spacing:.06em;text-transform:uppercase;color:var(--muted);margin-bottom:5px}.room-label-no{margin-top:8px;color:var(--err)}.know-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:4px}.know-list li{display:flex;gap:6px;align-items:flex-start}.mark{font-weight:700;width:12px;flex:none}.know-yes .mark{color:var(--ok)}.know-no .mark{color:var(--err)}.know-none{color:var(--muted);font-style:italic;font-size:12px}.legend summary{cursor:pointer;font-weight:600;font-size:13px}.legend ul{list-style:none;padding:0;margin:8px 0 0;display:grid;gap:4px;font-size:12px;color:var(--muted)}.legend li{display:flex;align-items:center;gap:8px}.swatch{width:22px;height:11px;border-radius:6px;flex:none}.sw-message{background:var(--pk-message)}.sw-tool_use{background:var(--pk-tool_use)}.sw-tool_result{background:var(--pk-tool_result)}.sw-task{background:var(--pk-task)}.sw-result{background:var(--pk-result)}.sw-finding{background:var(--paper);border:1px solid var(--paper-line);border-radius:2px}.sw-passport{background:var(--passport);border-radius:2px}.sw-room{border:3px double var(--line-2);border-radius:3px;height:14px}.sw-forbidden{height:0;border-top:2px dashed var(--err);border-radius:0}.chip{display:inline-flex;align-items:center;gap:5px;font:11.5px/1.35 var(--f-mono);padding:2px 7px;border-radius:5px;background:var(--panel);border:1px solid var(--line);border-left-width:3px;color:var(--text);word-break:break-word}.chip-sm{font-size:12px;padding:1px 5px}.chip-msg{border-left-color:var(--pk-message)}.chip-use{border-left-color:var(--pk-tool_use)}.chip-tool{border-left-color:var(--pk-tool_result)}.chip-task{border-left-color:var(--pk-task)}.chip-finding{background:var(--paper);color:var(--paper-ink);border-color:var(--paper-line);border-radius:2px}.chip-meta{background:var(--passport-soft);border-color:var(--passport)}.chip-pass{font-size:8.5px;font-weight:700;background:var(--passport);color:#fff;border-radius:2px;padding:0 3px;letter-spacing:.04em}.chip-missing{text-decoration:line-through;text-decoration-color:var(--err);opacity:.75;border-style:dashed;border-color:var(--err);background:transparent;color:var(--muted)}.node-shape{fill:var(--panel);stroke:var(--line-2);stroke-width:1.6;transition:stroke .25s,fill .25s}.node-label{font-size:17px;font-weight:600;fill:var(--text)}.node-label-sm{font-size:14px}.node-sub{font-size:12px;fill:var(--muted);font-family:var(--f-mono)}.node-claude .node-shape{fill:var(--accent);stroke:none}.node-claude .node-label{fill:var(--on-accent);font-family:var(--f-display);font-size:19px}.node-claude .node-sub{fill:var(--on-accent);opacity:.8}.node-coordinator .node-shape{fill:var(--hub);stroke:none}.node-coordinator .node-label{fill:var(--on-hub);font-family:var(--f-display);font-size:19px}.node-coordinator .node-sub{fill:var(--on-hub);opacity:.75}.node-gate .node-shape{fill:var(--panel-2);stroke:var(--text);stroke-width:1.8}.node-gate .node-label{font-family:var(--f-mono);font-size:15px}.node-tool .node-shape{fill:var(--panel-2)}.node-glyph{fill:var(--muted)}.node-user .node-shape,.node-output .node-shape{fill:var(--panel-2)}.node-ghost .node-shape{fill:transparent;stroke-dasharray:5 5;stroke:var(--faint)}.node-ghost .node-label{fill:var(--faint)}.node-session .node-shape{fill:var(--panel);stroke:var(--text);stroke-width:3}.node-config .node-shape{fill:var(--panel-2);stroke-dasharray:3 3}.node-config .node-label{font-family:var(--f-mono);font-size:14px}.node-shadowcard{fill:var(--panel-2)}.room-wall{fill:none;stroke:var(--line-2);stroke-width:4}.node-subagent .node-shape{fill:var(--panel-2);stroke:var(--line-2)}.node-body{font-size:13px;line-height:1.3;height:100%;display:flex;flex-direction:column;gap:4px;overflow:hidden;color:var(--text)}.node-body-title{flex:none;font-weight:700;font-size:15px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.node-body-title span{font-weight:400;color:var(--muted);font-family:var(--f-mono);font-size:12px}.node-body-items{display:flex;flex-wrap:wrap;gap:3px;align-content:flex-start}.node-body-history .node-body-items{flex-direction:column;flex-wrap:nowrap}.node-body-subagent .chip:not(.chip-meta){flex:1 1 100%;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block}.node-body-subagent .chip-meta{font-size:10.5px;padding:0 4px}.node-body-subagent .chip-meta .chip-pass{display:none}.node-body-history .chip{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.node-empty{font-size:12px;color:var(--faint);font-style:italic}.node-halo{fill:none;stroke:var(--accent);stroke-width:2.5;opacity:.9;animation:halo 1.4s ease-in-out infinite}.tone-ok .node-halo{stroke:var(--ok);animation:none}.tone-warn .node-halo{stroke:var(--warn)}.tone-error .node-halo{stroke:var(--err);stroke-width:3.5}.tone-error .node-shape{stroke:var(--err)}.tone-idle{opacity:.45}.tone-working .node-shape{stroke:var(--accent);stroke-dasharray:6 4;animation:dash .8s linear infinite}.is-selected .node-shape{stroke:var(--info);stroke-width:3}.is-selected .room-wall{stroke:var(--info)}.is-clickable{cursor:pointer}.is-clickable:hover .node-shape{stroke:var(--info)}@keyframes halo{50%{opacity:.35}}.node-badge rect{fill:var(--text)}.node-badge text{fill:var(--bg);font:600 13.5px var(--f-mono)}.edge path{fill:none;stroke:var(--line-2);stroke-width:2;transition:stroke .25s,opacity .25s,stroke-width .25s}.arrowhead{fill:var(--line-2)}.ah-lit{fill:var(--accent)}.ah-continue{fill:var(--continue)}.ah-terminate{fill:var(--terminate)}.ah-forbidden{fill:var(--err)}.ah-faint{fill:var(--line)}.edge-continue path{stroke:var(--continue);stroke-dasharray:2 5}.edge-terminate path{stroke:var(--terminate);stroke-dasharray:2 5}.edge-forbidden path{stroke:var(--err);stroke-dasharray:6 6;opacity:.55}.edge-faint path{stroke:var(--line);stroke-dasharray:4 6}.edge-timeline path{stroke:var(--line-2);stroke-width:7;stroke-linecap:round}.edge.is-lit path{stroke:var(--accent);stroke-width:3;stroke-dasharray:8 6;animation:dash .9s linear infinite}.edge-timeline.is-lit path{stroke-dasharray:none;animation:none;stroke-width:8}.edge.is-branch path{stroke-width:5;stroke-dasharray:10 6;animation:dash .6s linear infinite}.edge-continue.is-branch path{stroke:var(--continue)}.edge-terminate.is-branch path{stroke:var(--terminate)}.edge.is-dim{opacity:.22}@keyframes dash{to{stroke-dashoffset:-28}}.edge-label rect{fill:var(--panel);stroke:var(--line)}.edge-label text{font:13px var(--f-mono);fill:var(--muted)}.edge.is-lit .edge-label text,.edge.is-branch .edge-label text{fill:var(--text);font-weight:600}.edge-continue.is-branch .edge-label rect{stroke:var(--continue)}.edge-terminate.is-branch .edge-label rect{stroke:var(--terminate)}.forbid-x circle{fill:var(--panel);stroke:var(--err);stroke-width:2}.forbid-x path{stroke:var(--err);stroke-width:2.4;fill:none}.packet text{font:600 13px var(--f-mono);fill:#fff}.packet-body{stroke:#00000026;stroke-width:1;filter:drop-shadow(0 2px 3px rgba(0,0,0,.18))}.packet-message .packet-body{fill:var(--pk-message)}.packet-tool_use .packet-body{fill:var(--pk-tool_use)}.packet-tool_use text{fill:#231800}.packet-tool_result .packet-body{fill:var(--pk-tool_result)}.packet-task .packet-body{fill:var(--pk-task)}.packet-text .packet-body{fill:var(--pk-text)}.packet-result .packet-body{fill:var(--pk-result)}.packet-error .packet-body{fill:var(--pk-error)}.packet-finding .packet-body{fill:var(--paper);stroke:var(--paper-line)}.packet-finding text{fill:var(--paper-ink)}.packet-lines{stroke:var(--paper-line);stroke-width:1.5}.packet.is-waiting .packet-body{opacity:.55;stroke-dasharray:3 3;stroke:var(--text)}.packet.is-waiting>text:not(.packet-wait){opacity:.7}.packet-wait{fill:var(--muted)!important;font-size:12px!important}.packet{transition:opacity .45s ease-out}.passport rect{fill:var(--passport);stroke:#0003}.passport text{font:700 10.5px var(--f-mono);fill:#fff;letter-spacing:.05em}.passport.is-lost rect{stroke:var(--err);stroke-dasharray:2 2}.packet-lost{fill:var(--err)!important;font-size:13px!important}.callout{background:var(--panel);border:1px solid var(--line);border-left:3px solid var(--info);border-radius:7px;padding:6px 9px;font-size:13.5px;line-height:1.35;box-shadow:var(--shadow);font-family:var(--f-mono);color:var(--text)}.callout-ok{border-left-color:var(--ok)}.callout-warn{border-left-color:var(--warn)}.callout-error{border-left-color:var(--err)}.concept-strip{display:flex;gap:6px;overflow-x:auto;padding-bottom:2px}.concept{flex:none;display:inline-flex;align-items:center;gap:6px;border:1px solid var(--line);background:var(--panel);border-radius:999px;padding:3px 10px 3px 6px;font-size:12px;font-family:var(--f-mono);cursor:help;transition:background .2s,border-color .2s,transform .2s}.concept.is-firing{background:var(--accent-soft);border-color:var(--accent);transform:translateY(-1px)}.glyph{width:13px;height:13px;border-radius:3px;background:var(--line-2);flex:none}.glyph-claude{border-radius:50%;background:var(--accent)}.glyph-gate{transform:rotate(45deg) scale(.8);background:transparent;border:2px solid var(--text);border-radius:1px}.glyph-tool_use{background:var(--pk-tool_use);border-radius:7px}.glyph-tool_result{background:var(--pk-tool_result);border-radius:7px}.glyph-result{background:var(--pk-result);border-radius:7px}.glyph-history{background:var(--panel-2);border:1px solid var(--line-2);box-shadow:2px -2px 0 var(--line-2)}.glyph-coordinator{background:var(--hub);clip-path:polygon(25% 0,75% 0,100% 50%,75% 100%,25% 100%,0 50%)}.glyph-subagent,.glyph-room{background:transparent;border:3px double var(--line-2)}.glyph-task{background:var(--pk-task);border-radius:7px}.glyph-finding{background:var(--paper);border:1px solid var(--paper-line);border-radius:1px}.glyph-passport{background:var(--passport);border-radius:2px}.glyph-branch{background:transparent;border:2px solid var(--continue);border-radius:50%;border-right-color:transparent}.glyph-session{background:transparent;border:3px solid var(--text);border-radius:50%}.glyph-config{background:var(--panel-2);border:1px dashed var(--line-2)}.glyph-ghost{background:transparent;border:1px dashed var(--faint)}.controls{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.speed{margin-left:auto;display:flex;border:1px solid var(--line);border-radius:8px;overflow:hidden}.speed-btn{border:0;background:var(--panel);padding:5px 9px;font:12px var(--f-mono);cursor:pointer;color:var(--muted)}.speed-btn.is-on{background:var(--text);color:var(--bg)}.timeline{list-style:none;margin:0;padding:0 0 4px;display:flex;gap:4px;overflow-x:auto}.tl-step{position:relative;flex:1 0 86px}.tl-step button{width:100%;display:flex;flex-direction:column;align-items:flex-start;gap:3px;padding:6px 7px 8px;border:1px solid var(--line);border-radius:8px;background:var(--panel);cursor:pointer;text-align:left}.tl-step button:disabled{cursor:not-allowed;opacity:.5}.tl-dot{font:600 10.5px var(--f-mono);width:20px;height:20px;border-radius:50%;display:grid;place-items:center;background:var(--panel-2);border:1px solid var(--line-2)}.tl-name{font-size:11px;line-height:1.2;color:var(--muted)}.tl-done .tl-dot{background:var(--line-2);color:var(--bg);border-color:transparent}.tl-now button{border-color:var(--accent);background:var(--accent-soft)}.tl-now .tl-dot{background:var(--accent);color:var(--on-accent);border-color:transparent}.tl-now .tl-name{color:var(--text);font-weight:600}.tl-decision .tl-dot{border-radius:4px;transform:rotate(45deg)}.tl-decision .tl-dot{font-size:0}.tl-decision .tl-dot:after{content:"?";font-size:11px;transform:rotate(-45deg)}.tl-continue button{border-bottom:3px solid var(--continue)}.tl-terminate button{border-bottom:3px solid var(--terminate)}.tl-progress{position:absolute;left:0;bottom:0;height:3px;background:var(--accent);border-radius:2px}.overlay{position:absolute;inset:auto 12px 12px 12px;display:flex;justify-content:center;pointer-events:none}.overlay>*{pointer-events:auto}.q-card{width:min(560px,100%);background:var(--panel);border:1px solid var(--line-2);border-radius:12px;padding:14px 16px;box-shadow:var(--shadow);display:flex;flex-direction:column;gap:10px;animation:rise .25s ease-out}@keyframes rise{0%{transform:translateY(8px);opacity:0}}.q-slot{scroll-margin:16px}.q-card-wide{width:100%;border-color:var(--accent);box-shadow:0 0 0 1px var(--accent) inset,var(--shadow)}.q-card-wide .options{grid-template-columns:repeat(2,minmax(0,1fr))}@media (max-width: 820px){.q-card-wide .options{grid-template-columns:minmax(0,1fr)}}.q-eyebrow{font:600 10.5px var(--f-mono);letter-spacing:.08em;text-transform:uppercase;color:var(--accent)}.q-signal{font-family:var(--f-mono);font-size:13px;background:var(--text);color:var(--bg);padding:6px 10px;border-radius:7px}.q-prompt{font-family:var(--f-display);font-size:18px;font-weight:700}.options{display:grid;gap:6px}.opt{display:grid;grid-template-columns:24px 1fr;gap:8px;align-items:start;text-align:left;padding:8px 10px;border:1px solid var(--line);border-radius:9px;background:var(--panel-2);cursor:pointer;font-size:13.5px;line-height:1.4}.opt:hover:not(:disabled){border-color:var(--text)}.opt:disabled{cursor:default}.opt-key{font:600 11px var(--f-mono);width:22px;height:22px;border-radius:6px;display:grid;place-items:center;background:var(--panel);border:1px solid var(--line-2)}.opt-why{grid-column:2;font-size:12.5px;color:var(--muted);margin-top:2px}.opt.is-right{border-color:var(--ok);background:color-mix(in srgb,var(--ok) 10%,var(--panel))}.opt.is-right .opt-key{background:var(--ok);color:#fff;border-color:var(--ok)}.opt.is-wrong{border-color:var(--err);background:color-mix(in srgb,var(--err) 8%,var(--panel))}.opt.is-wrong .opt-key{background:var(--err);color:#fff;border-color:var(--err)}.opt.is-faded{opacity:.7}.verdict{font-weight:600;display:flex;gap:8px;align-items:center}.verdict-ok{color:var(--ok)}.verdict-no{color:var(--err)}.row{display:flex;gap:8px;flex-wrap:wrap;align-items:center}.mode{display:flex;flex-direction:column;gap:12px}.intro-strip{display:flex;gap:10px;align-items:center;flex-wrap:wrap;font-size:13px;color:var(--muted)}.score-pill{font:600 12px var(--f-mono);padding:3px 9px;border-radius:999px;background:var(--panel);border:1px solid var(--line);color:var(--text)}.done-banner{border:1px solid var(--ok);background:color-mix(in srgb,var(--ok) 10%,var(--panel));color:var(--text);border-radius:10px;padding:10px 14px;display:flex;gap:10px;align-items:center;flex-wrap:wrap}.case-picker{display:flex;gap:8px;flex-wrap:wrap}.symptom{border:1px solid var(--err);border-left-width:5px;background:color-mix(in srgb,var(--err) 7%,var(--panel));border-radius:10px;padding:10px 14px}.symptom-eyebrow{font:600 10.5px var(--f-mono);letter-spacing:.08em;text-transform:uppercase;color:var(--err)}.symptom p{margin:3px 0 0;font-size:14px}.debug{display:grid;grid-template-columns:minmax(0,1fr) 360px;gap:14px;align-items:start}.trace{display:flex;flex-direction:column;gap:0}.trace-q{font-family:var(--f-display);font-size:16px;font-weight:700;margin-bottom:8px}.trace-stage{position:relative;display:flex;flex-direction:column;gap:6px}.trace-stage+.trace-stage:before{content:"↑";display:block;text-align:center;color:var(--faint);font-size:16px;line-height:1;padding:3px 0}.trace-btn{display:flex;align-items:center;gap:8px;padding:8px 10px;border:1px solid var(--line);border-radius:9px;background:var(--panel);cursor:pointer;text-align:left;width:100%}.trace-btn:hover{border-color:var(--text)}.trace-btn.is-open{border-color:var(--info);box-shadow:0 0 0 1px var(--info) inset}.trace-btn.is-root{border-color:var(--ok);box-shadow:0 0 0 1px var(--ok) inset}.trace-btn.is-cleared{opacity:.7}.trace-num{font:600 10.5px var(--f-mono);color:var(--muted)}.trace-label{font-weight:600;flex:1}.trace-tag{font:600 10px var(--f-mono);text-transform:uppercase;letter-spacing:.05em;padding:1px 6px;border-radius:4px}.tag-seen{color:var(--info);border:1px solid var(--info)}.tag-ok{color:var(--muted);border:1px solid var(--line-2)}.tag-root{color:#fff;background:var(--ok)}.inspect{border:1px solid var(--line);border-radius:9px;background:var(--panel-2);padding:9px 10px;display:flex;flex-direction:column;gap:6px}.inspect-h{font:600 10.5px var(--f-mono);letter-spacing:.06em;text-transform:uppercase;color:var(--muted)}.payload{margin:0;font:11.5px/1.45 var(--f-mono);background:var(--panel);border:1px solid var(--line);border-radius:7px;padding:7px 9px;overflow-x:auto;white-space:pre}.feedback{font-size:13px;border-radius:8px;padding:7px 10px}.feedback-no{background:color-mix(in srgb,var(--err) 9%,var(--panel));border:1px solid color-mix(in srgb,var(--err) 40%,var(--line))}.feedback-ok{background:color-mix(in srgb,var(--ok) 10%,var(--panel));border:1px solid color-mix(in srgb,var(--ok) 45%,var(--line))}.compare{display:grid;grid-template-columns:1fr 1fr;gap:10px}.compare figure{margin:0;border:1px solid var(--line);border-radius:10px;overflow:hidden;background:var(--panel)}.compare figcaption{font:600 11px var(--f-mono);padding:6px 10px;border-bottom:1px solid var(--line);text-transform:uppercase;letter-spacing:.05em}.cap-bad{color:var(--err)}.cap-good{color:var(--ok)}.build{display:grid;grid-template-columns:170px minmax(0,1fr) 290px;gap:12px;align-items:start}.palette{display:flex;flex-direction:column;gap:6px}.pal-item{display:flex;align-items:center;gap:8px;padding:7px 9px;border:1px solid var(--line);border-radius:8px;background:var(--panel);cursor:pointer;text-align:left;font-size:13px}.pal-item:hover:not(:disabled){border-color:var(--text)}.pal-item:disabled{opacity:.4;cursor:not-allowed}.pal-item .glyph{width:15px;height:15px}.pal-tokens{display:flex;flex-wrap:wrap;gap:4px}.canvas-wrap{border:1px solid var(--line);border-radius:12px;background:var(--panel);overflow:hidden;position:relative;box-shadow:var(--shadow)}.canvas{display:block;width:100%;height:auto;aspect-ratio:1000 / 600;touch-action:none}.canvas-hint{position:absolute;top:8px;left:10px;font-size:12px;color:var(--muted);background:var(--panel);padding:2px 8px;border-radius:6px;border:1px solid var(--line);pointer-events:none}.port{fill:var(--panel);stroke:var(--info);stroke-width:2;cursor:crosshair}.port:hover,.port.is-armed{fill:var(--info)}.b-edge{cursor:pointer}.b-edge path.hit{stroke:transparent;stroke-width:14;fill:none}.b-edge.is-selected path.vis{stroke:var(--info);stroke-width:3.5}.b-edge.is-bad path.vis{stroke:var(--err);stroke-width:3;stroke-dasharray:6 5}.b-node.is-bad .node-shape{stroke:var(--err);stroke-width:3}.b-node.is-decoy .node-label{fill:var(--err)}.inspector h4{margin:0 0 6px;font-size:13px}.field{display:flex;flex-direction:column;gap:4px;margin-bottom:10px}.field-label{font:600 10.5px var(--f-mono);letter-spacing:.06em;text-transform:uppercase;color:var(--muted)}.toggle-row{display:flex;flex-wrap:wrap;gap:4px}.toggle{border:1px solid var(--line);background:var(--panel-2);border-radius:6px;padding:3px 8px;font-size:12px;cursor:pointer;font-family:var(--f-mono)}.toggle.is-on{background:var(--text);color:var(--bg);border-color:var(--text)}.issues{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:6px}.issue{border:1px solid color-mix(in srgb,var(--err) 40%,var(--line));background:color-mix(in srgb,var(--err) 6%,var(--panel));border-radius:8px;padding:6px 9px;font-size:12.5px}.issue-tag{display:block;font:600 10px var(--f-mono);letter-spacing:.06em;text-transform:uppercase;color:var(--err)}.exam{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:14px;align-items:start}.q-nav{display:flex;gap:5px;flex-wrap:wrap}.q-dot{width:30px;height:30px;border-radius:8px;border:1px solid var(--line);background:var(--panel);cursor:pointer;font:600 12px var(--f-mono)}.q-dot.is-on{border-color:var(--text);box-shadow:0 0 0 1px var(--text) inset}.q-dot.is-right{background:var(--ok);color:#fff;border-color:var(--ok)}.q-dot.is-wrong{background:var(--err);color:#fff;border-color:var(--err)}.scenario{font-size:15px;line-height:1.55;margin:0}.scenario-box{background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:14px 16px;display:flex;flex-direction:column;gap:10px}.takeaway{font-family:var(--f-display);font-size:16px;font-weight:700;border-left:4px solid var(--accent);padding-left:10px}@media (max-width: 1180px){.sim,.debug{grid-template-columns:minmax(0,1fr)}.build{grid-template-columns:170px minmax(0,1fr)}.build .inspector-col{grid-column:1 / -1}.exam{grid-template-columns:minmax(0,1fr)}}@media (max-width: 820px){.app{grid-template-columns:minmax(0,1fr)}.rail{position:static;height:auto;border-right:0;border-bottom:1px solid var(--line);padding-inline:16px}.lesson-nav{flex-direction:row;overflow-x:auto}.lesson-link{flex:0 0 200px}.reset{display:none}.main{padding-inline:16px}.mode-tabs{grid-template-columns:repeat(5,minmax(64px,1fr));overflow-x:auto}.mode-verb,.mode-idx{display:none}.build{grid-template-columns:minmax(0,1fr)}.palette{flex-direction:row;flex-wrap:wrap}.compare{grid-template-columns:minmax(0,1fr)}.lesson-head h1{font-size:24px}.overlay{position:static;padding:8px}}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important}}.node foreignObject,.stage foreignObject{pointer-events:none}.canvas,.stage{-webkit-user-select:none;user-select:none}.node-session text{paint-order:stroke;stroke:var(--panel);stroke-width:5px;stroke-linejoin:round}
