:root{--bg:#f4efe5;--panel:#fffdf8f0;--panel-border:#d8cfc1;--text:#1f1c17;--muted:#6e6659;--accent:#0f766e;--accent-soft:#d9f2ee;--trace-line:#e4f6f3;--trace-line-strong:#0f766e;--error:#b42318;--error-soft:#fde8e8;--terminal-bg:#111618;--terminal-text:#d7f7db;--shadow:0 16px 38px #16141114}*{box-sizing:border-box}body{min-height:100vh;color:var(--text);background:radial-gradient(circle at top left, #fff7e6 0%, transparent 28%), linear-gradient(180deg, #efe4d3 0%, var(--bg) 42%, #ece7dd 100%);margin:0;font-family:Avenir Next,Segoe UI,sans-serif}button,input,textarea{font:inherit}.workspace{grid-template-rows:minmax(360px,1fr) minmax(220px,.62fr);grid-template-columns:minmax(0,1.2fr) minmax(380px,.8fr);gap:16px;width:min(1480px,100vw - 32px);height:calc(100vh - 32px);min-height:calc(100vh - 32px);margin:16px auto;display:grid}.pane{border:1px solid var(--panel-border);background:var(--panel);min-height:0;box-shadow:var(--shadow);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-radius:20px;grid-template-rows:auto minmax(0,1fr);display:grid;overflow:hidden}.pane-header{border-bottom:1px solid var(--panel-border);color:var(--muted);letter-spacing:.08em;text-transform:uppercase;background:#efe5d5b3;justify-content:space-between;align-items:center;gap:12px;padding:12px 16px;font-size:13px;display:flex}.header-actions{align-items:center;gap:10px;display:flex}.code-pane{grid-area:1/1}.terminal-pane{grid-area:2/1}.trace-pane{grid-area:1/2/span 2;min-height:0}.code-body,.trace-body{min-height:0}.editor-shell{background:#fffdfa;grid-template-columns:56px minmax(0,1fr);height:100%;display:grid}.editor-gutter{background:#fbf6ed;border-right:1px solid #efe4d7;min-height:0;padding:18px 0;overflow:hidden}.editor-surface{background:#fffdfa;min-height:0;position:relative;overflow:hidden}.editor-highlight{pointer-events:none;padding:18px 0;font-family:SF Mono,Cascadia Code,JetBrains Mono,monospace;position:absolute;inset:0;overflow:hidden}.editor-highlight-line{white-space:pre;min-width:max-content;padding:0 18px;line-height:1.55;transition:background-color .12s,box-shadow .12s;position:relative}.editor-highlight-line.active{background:var(--trace-line);box-shadow:inset 3px 0 0 var(--trace-line-strong)}.editor-highlight-line.error{background:var(--error-soft);color:var(--error);box-shadow:inset 3px 0 0 var(--error)}.editor-highlight-line.active.error{background:linear-gradient(90deg, #0f766e1f, #0f766e1f), var(--error-soft)}.editor-line-number{color:#9a8f80;text-align:right;-webkit-user-select:none;user-select:none;padding:0 12px 0 0;font-family:SF Mono,Cascadia Code,JetBrains Mono,monospace;line-height:1.55}.editor{resize:none;color:#0000;white-space:pre;width:100%;height:100%;caret-color:var(--text);-webkit-text-fill-color:transparent;background:0 0;border:0;outline:none;margin:0;padding:18px;font-family:SF Mono,Cascadia Code,JetBrains Mono,monospace;line-height:1.55;position:relative;overflow:auto}.code-view{background:#fffdfa;height:100%;min-height:0;padding:18px 0;font-family:SF Mono,Cascadia Code,JetBrains Mono,monospace;overflow:auto}.code-line{white-space:pre;grid-template-columns:56px 1fr;gap:12px;min-width:max-content;padding:0 18px;line-height:1.55;transition:background-color .12s,box-shadow .12s;display:grid;position:relative}.code-line.active{background:var(--trace-line);box-shadow:inset 3px 0 0 var(--trace-line-strong)}.code-line.error{background:var(--error-soft);color:var(--error);box-shadow:inset 3px 0 0 var(--error)}.code-line.active.error{background:linear-gradient(90deg, #0f766e1f, #0f766e1f), var(--error-soft)}.line-number{color:#9a8f80;text-align:right;-webkit-user-select:none;user-select:none}.editor-highlight-line.active,.code-line.active .line-number{color:var(--trace-line-strong)}.editor-highlight-line.error,.code-line.error .line-number{color:var(--error)}.code-text{overflow:visible}.token.comment,.token.prolog,.token.doctype,.token.cdata{color:#8a8175;font-style:italic}.token.keyword,.token.control-flow{color:#8b2fc9}.token.string,.token.char{color:#b45309}.token.number,.token.boolean,.token.constant{color:#b42318}.token.class-name,.token.function,.token.method{color:#0b63c8}.token.operator,.token.punctuation{color:#5e5549}.token.annotation,.token.property,.token.field{color:#c2410c}.run-button,.ghost-button,.nav button{cursor:pointer;border:0;border-radius:999px;padding:10px 16px;transition:transform .12s,opacity .12s}.run-button{background:var(--accent);color:#fff}.ghost-button,.nav button{color:var(--text);background:#ece4d7}.run-button:hover,.ghost-button:hover,.nav button:hover{transform:translateY(-1px)}.ghost-button:disabled,.nav button:disabled{cursor:not-allowed;opacity:.45}.terminal-body{background:var(--terminal-bg);grid-template-rows:minmax(0,1fr) auto auto;min-height:0;display:grid}.terminal-output{min-height:0;color:var(--terminal-text);white-space:pre-wrap;word-break:break-word;margin:0;padding:18px;font-family:SF Mono,Cascadia Code,JetBrains Mono,monospace;line-height:1.55;overflow:auto}.terminal-toast{color:#dbe8eb;background:#f5f7f91f;border-radius:14px;margin:0 16px 12px;padding:10px 12px;line-height:1.45}.terminal-toast.waiting{color:#c8fff6;background:#0f766e3d}.terminal-prompt{border-top:1px solid #ffffff14;align-items:center;gap:12px;padding:14px 16px;display:flex}.prompt-label{color:#9ec4ca;white-space:nowrap;font-family:SF Mono,Cascadia Code,JetBrains Mono,monospace}.terminal-entry{width:100%;color:var(--terminal-text);background:0 0;border:0;outline:none;padding:0;font-family:SF Mono,Cascadia Code,JetBrains Mono,monospace}.terminal-entry::placeholder{color:#6e8a90}.status-pill{letter-spacing:.08em;text-transform:uppercase;min-width:108px;color:var(--muted);background:#ece4d7;border-radius:999px;justify-content:center;align-items:center;padding:6px 10px;font-size:12px;display:inline-flex}.state-label{color:var(--muted)}.state-value.status-pill{letter-spacing:.02em;text-transform:none;justify-content:flex-start;min-width:132px;padding:8px 14px;font-size:15px;font-weight:700}.status-pill.running{color:#1d4ed8;background:#e6f0fb}.status-pill.waiting{color:#c96a16;background:#fff1e5}.status-pill.finished{color:#2e6f40;background:#eaf5ea}.status-pill.error{background:var(--error-soft);color:var(--error)}.trace-body{min-height:0;display:block;overflow:auto}.trace-header{align-items:flex-start}.trace-header-title{gap:8px;display:grid}.trace-actions{flex-wrap:wrap;justify-content:flex-end}.trace-summary{border-bottom:1px solid var(--panel-border);gap:8px;padding:16px 18px 10px;display:grid}.trace-summary strong{letter-spacing:-.05em;font-size:28px}.trace-note{color:var(--text);font-size:17px;line-height:1.5}.trace-code-preview{color:var(--text);white-space:pre-wrap;background:#0f766e14;border-radius:14px;padding:12px 14px;font-family:SF Mono,Cascadia Code,JetBrains Mono,monospace;line-height:1.45}.trace-sections{gap:18px;padding:16px 18px 24px;display:grid}.trace-section{gap:10px;display:grid}.trace-section h3{color:var(--muted);letter-spacing:.08em;text-transform:uppercase;margin:0;font-size:13px}.state-grid{gap:10px;display:grid}.execution-order-section{overflow:visible}.state-card{border:1px solid var(--panel-border);background:#ffffffb8;border-radius:16px;gap:8px;padding:14px;display:grid}.state-card-header{justify-content:space-between;align-items:baseline;gap:12px;display:flex}.state-card-header strong{font-size:18px}.state-card-header span{color:var(--accent);font-family:SF Mono,Cascadia Code,JetBrains Mono,monospace;font-weight:700}.state-card p{color:var(--muted);margin:0;line-height:1.5}.step-list{gap:10px;display:grid;overflow:visible}.step-item{border:1px solid var(--panel-border);text-align:left;cursor:pointer;background:#ffffff8c;border-radius:16px;gap:4px;padding:14px;display:grid}.step-item.active{border-color:var(--accent);background:var(--accent-soft)}.step-item:disabled{cursor:default}.step-index,.step-line,.step-text{color:var(--muted);line-height:1.45}.step-index{letter-spacing:.08em;text-transform:uppercase;font-size:12px}.step-line{color:var(--text);font-weight:700}.empty{color:var(--muted)}@media (width<=1080px){.workspace{grid-template-rows:minmax(0,1.05fr) minmax(260px,.6fr) minmax(320px,1fr);grid-template-columns:1fr;height:auto}.code-pane{grid-area:1/1}.terminal-pane{grid-area:2/1}.trace-pane{grid-area:3/1}.trace-actions{justify-content:flex-start}}
