:root{font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:#182230;background:#e9edf3;font-synthesis:none}
*{box-sizing:border-box} body{margin:0;display:grid;grid-template-columns:310px minmax(0,1fr);height:100vh;overflow:hidden}
.sidebar{background:#101828;color:#d0d5dd;padding:26px 18px 20px;display:flex;flex-direction:column;min-height:0;border-right:1px solid #344054}
.brand{padding:0 8px 20px}.brand h1{color:#fff;font-size:24px;margin:4px 0 8px}.brand p:last-child{font-size:13px;line-height:1.5;margin:0;color:#98a2b3}
.eyebrow{margin:0;text-transform:uppercase;letter-spacing:.13em;font-size:11px;font-weight:800;color:#c2410c}
#prompt-list{overflow:auto;display:grid;gap:7px;padding:2px 6px 18px}.prompt-button{appearance:none;border:1px solid transparent;background:transparent;color:#d0d5dd;padding:11px 12px;border-radius:10px;text-align:left;cursor:pointer;display:grid;grid-template-columns:46px 1fr;gap:8px;align-items:start}
.prompt-button:hover{background:#1d2939}.prompt-button.active{background:#fff;color:#101828;border-color:#fff;box-shadow:0 8px 20px #0004}.prompt-number{font-weight:800;color:#f79009}.prompt-preview{font-size:12px;line-height:1.35;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.legend{margin-top:auto;border-top:1px solid #344054;padding:16px 8px 0;display:grid;gap:8px;font-size:12px}.legend span{display:flex;align-items:center;gap:8px}.swatch{width:14px;height:14px;border-radius:4px;border:1px solid #667085}.swatch.neutral{background:#f8fafc}.swatch.visited{background:#fecaca;border-color:#ef4444}.swatch.revisited{background:#b91c1c;border-color:#7f1d1d}
.workspace{min-width:0;display:grid;grid-template-rows:auto minmax(0,1fr);padding:18px;gap:14px}.prompt-header{background:#fff;border:1px solid #d0d5dd;border-radius:14px;padding:18px 22px;display:flex;justify-content:space-between;gap:24px;align-items:center;box-shadow:0 1px 2px #1018280d}.prompt-header h2{font-size:17px;line-height:1.45;margin:5px 0 0;max-width:850px}.metrics{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end}.metrics span{background:#f2f4f7;border-radius:9px;padding:8px 10px;font-size:12px;white-space:nowrap}.metrics strong{font-size:15px;margin-right:3px}
.canvas-shell{position:relative;min-height:0;background:#fff;border:1px solid #d0d5dd;border-radius:14px;overflow:hidden;box-shadow:0 4px 18px #10182812}.toolbar{position:absolute;z-index:2;top:12px;left:12px;display:flex;align-items:center;gap:6px;background:#ffffffed;border:1px solid #d0d5dd;border-radius:10px;padding:6px;box-shadow:0 5px 16px #1018281f}.toolbar button{border:1px solid #d0d5dd;background:#fff;border-radius:7px;min-width:32px;height:30px;color:#344054;font-weight:700;cursor:pointer}.toolbar button:hover{background:#f2f4f7}.toolbar button:disabled{opacity:.4;cursor:not-allowed;background:#f2f4f7}.toolbar .step-button{padding:0 11px}.toolbar span{font-size:11px;color:#667085;padding:0 6px}.toolbar .step-position{min-width:72px;text-align:center;font-variant-numeric:tabular-nums;color:#344054;font-weight:700}.toolbar-divider{width:1px;height:22px;background:#d0d5dd;margin:0 3px}
#tree{width:100%;height:100%;display:block;cursor:grab;background-color:#fcfcfd;background-image:radial-gradient(#d0d5dd 1px,transparent 1px);background-size:22px 22px;touch-action:none}#tree.dragging{cursor:grabbing}
.tree-edge{fill:none;stroke:#cbd5e1;stroke-width:1.5}.path-edge{fill:none;stroke:#991b1b;stroke-width:4;marker-end:url(#path-arrow);filter:drop-shadow(0 1px 1px #fff)}.edge-label-bg{fill:#fff;stroke:#fecaca;stroke-width:1}.edge-label{font-size:12px;font-weight:800;fill:#991b1b;text-anchor:middle;dominant-baseline:middle}
.doc-node rect{fill:#f8fafc;stroke:#94a3b8;stroke-width:1.4;rx:9}.doc-node text{font-size:11px;fill:#334155;text-anchor:middle;pointer-events:none}.doc-node.visited-1 rect{fill:#fecaca;stroke:#ef4444;stroke-width:2.5}.doc-node.visited-2 rect{fill:#f87171;stroke:#b91c1c;stroke-width:3}.doc-node.visited-3 rect{fill:#b91c1c;stroke:#7f1d1d;stroke-width:4}.doc-node.visited-2 text,.doc-node.visited-3 text{fill:#fff;font-weight:700}.doc-node.current rect{stroke:#f59e0b;stroke-width:6;filter:drop-shadow(0 0 8px #f59e0baa)}
@media(max-width:900px){body{grid-template-columns:230px 1fr}.metrics{display:none}.prompt-header h2{font-size:14px}}
