:root{--paper: #f7f3ec;--paper-raised: #fdfaf3;--paper-deep: #efe8dc;--ink: #1a1611;--ink-soft: #4a4037;--ink-muted: #7a6f61;--ink-faint: #a89c8a;--rule: #d4c8b4;--rule-soft: #e4dccb;--ink-red: #9b2a1f;--ink-red-hover:#7f1f17;--ink-green: #3d5a3d;--ink-amber: #b8842c;--ink-amber-bg: #f5e8c8;--shadow-card: 0 1px 2px rgba(26,22,17,.04), 0 2px 8px rgba(26,22,17,.04);--shadow-raised: 0 2px 4px rgba(26,22,17,.06), 0 8px 24px rgba(26,22,17,.08);--shadow-deep: 0 12px 40px rgba(26,22,17,.18);--radius-xs: 3px;--radius-sm: 5px;--radius: 8px;--radius-lg: 12px;--font-display: "Newsreader", Georgia, "Times New Roman", serif;--font-body: "Geist", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--font-mono: "JetBrains Mono", ui-monospace, "SF Mono", Menlo, monospace}*{box-sizing:border-box}html,body,#root{margin:0;padding:0;height:100%;font-family:var(--font-body);font-size:14px;line-height:1.5;color:var(--ink);background:var(--paper);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-feature-settings:"ss01","cv11"}body{background-image:radial-gradient(circle at 20% 10%,rgba(212,200,180,.12) 0,transparent 40%),radial-gradient(circle at 80% 90%,rgba(155,42,31,.035) 0,transparent 45%),url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='140' height='140'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='2' seed='3'/><feColorMatrix values='0 0 0 0 0.38 0 0 0 0 0.32 0 0 0 0 0.24 0 0 0 0.045 0'/></filter><rect width='100%25' height='100%25' filter='url(%23n)'/></svg>")}::selection{background:#9b2a1f33;color:var(--ink)}.studio{--left-sidebar-width: 0px;--right-sidebar-width: 0px;display:grid;grid-template-rows:auto minmax(0,1fr);grid-template-columns:var(--left-sidebar-width) 1fr var(--right-sidebar-width);grid-template-areas:"header header header" "left preview right";height:100vh;min-height:0}.left-sidebar{grid-area:left;display:flex;flex-direction:column;background:var(--paper);border-right:1px solid var(--rule);min-width:0;min-height:0;overflow:hidden}.folder-sidebar{display:flex;flex-direction:column;min-height:0;background:var(--paper-raised);overflow:hidden;animation:sidebar-in .22s cubic-bezier(.2,.6,.2,1);flex:1 1 auto}.left-sidebar>.folder-sidebar+.json-panel,.left-sidebar>.json-panel+.folder-sidebar{border-top:1px solid var(--rule)}@keyframes sidebar-in{0%{opacity:0;transform:translate(-8px)}to{opacity:1;transform:translate(0)}}.folder-sidebar-header{display:flex;align-items:center;gap:8px;padding:14px 14px 10px;border-bottom:1px solid var(--rule-soft)}.folder-icon{width:16px;height:16px;stroke-width:1.6;color:var(--ink-muted);flex-shrink:0}.folder-name{font-family:var(--font-display);font-style:italic;font-weight:500;font-size:15px;color:var(--ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;flex:1;min-width:0}.folder-close{background:transparent;border:0;color:var(--ink-faint);cursor:pointer;font-size:18px;line-height:1;padding:2px 6px;border-radius:4px;flex-shrink:0}.folder-close:hover{color:var(--ink);background:var(--paper-deep)}.folder-sidebar-hint{padding:8px 14px 12px;font-family:var(--font-display);font-style:italic;font-size:11.5px;color:var(--ink-muted);border-bottom:1px solid var(--rule-soft)}.folder-sidebar-hint kbd{font-family:var(--font-mono);font-size:10px;padding:1px 4px;background:var(--paper);border:1px solid var(--rule);border-radius:3px;color:var(--ink);margin:0 1px;font-style:normal}.folder-file-list{flex:1;overflow-y:auto;list-style:none;padding:6px;margin:0}.folder-file-list::-webkit-scrollbar{width:8px}.folder-file-list::-webkit-scrollbar-thumb{background:var(--rule);border-radius:999px;border:2px solid var(--paper-raised)}.folder-file{display:flex;align-items:center;gap:8px;padding:7px 10px;border-radius:5px;cursor:pointer;font-size:13px;color:var(--ink-soft);transition:background .1s ease,color .1s ease;-webkit-user-select:none;user-select:none}.folder-file:hover{background:var(--paper-deep);color:var(--ink)}.folder-file.active{background:var(--paper-deep);color:var(--ink);font-weight:500;box-shadow:inset 2px 0 0 var(--ink-red)}.folder-file-dot{width:5px;height:5px;border-radius:999px;background:var(--ink-faint);flex-shrink:0;transition:background .1s ease}.folder-file.active .folder-file-dot{background:var(--ink-red)}.folder-file-name{font-family:var(--font-mono);font-size:12px;letter-spacing:.005em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0;flex:1}.folder-empty{padding:12px;font-family:var(--font-display);font-style:italic;font-size:12.5px;color:var(--ink-muted);text-align:center}.folder-empty code{font-family:var(--font-mono);font-size:11.5px;background:var(--paper-deep);padding:1px 4px;border-radius:3px;color:var(--ink);font-style:normal}.topbar{grid-area:header;display:flex;align-items:center;gap:24px;padding:14px 24px;background:var(--paper-raised);border-bottom:1px solid var(--rule);position:relative;z-index:20}.topbar:after{content:"";position:absolute;left:24px;right:24px;bottom:-4px;height:1px;background:var(--rule-soft)}.brand{display:flex;align-items:center;gap:12px;padding-right:20px;border-right:1px solid var(--rule);margin-right:4px;min-width:0}.brand-mark{width:34px;height:34px;color:var(--ink);flex-shrink:0}.brand-mark .accent{fill:var(--ink-red)}.brand-text{display:flex;flex-direction:column;line-height:1;min-width:0}.brand-name{font-family:var(--font-display);font-weight:500;font-size:22px;letter-spacing:.005em;color:var(--ink);font-feature-settings:"ss01","dlig";line-height:1;position:relative;padding-right:2px}.brand-name:after{content:"";position:absolute;left:-1px;right:32%;bottom:-4px;height:2px;background:var(--ink-red);border-radius:2px;transform:rotate(-.5deg);opacity:.85}.brand-tag{font-family:var(--font-display);font-style:italic;font-weight:400;font-size:11px;color:var(--ink-faint);margin-top:3px;letter-spacing:.02em}.toolbar{display:flex;align-items:center;gap:2px;flex:1;min-width:0}.tool-btn{display:inline-flex;align-items:center;gap:7px;padding:7px 12px;font-family:var(--font-body);font-size:13px;font-weight:500;color:var(--ink-soft);background:transparent;border:0;border-radius:var(--radius-sm);cursor:pointer;transition:background .12s ease,color .12s ease,transform 80ms ease;letter-spacing:.005em;position:relative}.tool-btn:hover{background:var(--paper-deep);color:var(--ink)}.tool-btn:active{transform:translateY(.5px)}.tool-btn:disabled{color:var(--ink-faint);cursor:not-allowed;background:transparent}.tool-btn.active{background:var(--paper-deep);color:var(--ink);box-shadow:inset 0 0 0 1px var(--rule)}.tool-btn-accent{color:var(--ink-red);background:#9b2a1f0f;box-shadow:inset 0 0 0 1px #9b2a1f40}.tool-btn-accent:hover:not(:disabled){color:var(--ink-red-hover);background:#9b2a1f1f;box-shadow:inset 0 0 0 1px #9b2a1f73}.tool-btn-accent:disabled{color:var(--ink-faint);background:transparent;box-shadow:inset 0 0 0 1px var(--rule-soft)}.tool-btn-accent svg{animation:sparkle-idle 4s ease-in-out infinite;transform-origin:center}@keyframes sparkle-idle{0%,92%,to{transform:rotate(0)}95%{transform:rotate(-6deg)}97%{transform:rotate(6deg)}}.tool-btn svg{width:15px;height:15px;stroke-width:1.6}.tool-divider{width:1px;height:22px;background:var(--rule-soft);margin:0 6px}.primary-actions{display:inline-flex;align-items:center;gap:6px;margin:0 2px}.tool-btn-primary{color:var(--ink);background:var(--paper-deep);box-shadow:inset 0 0 0 1px var(--rule)}.tool-btn-primary:hover:not(:disabled){background:var(--paper);box-shadow:inset 0 0 0 1px var(--ink-faint)}.tool-btn-primary:disabled{color:var(--ink-faint);background:transparent;box-shadow:inset 0 0 0 1px var(--rule-soft)}.menu{position:relative;display:inline-flex}.menu-trigger .menu-caret{opacity:.6;margin-left:1px;transition:transform .12s ease}.menu-open .menu-trigger{background:var(--paper-deep);color:var(--ink)}.menu-open .menu-trigger .menu-caret{transform:rotate(180deg)}.menu-popover{position:absolute;top:calc(100% + 4px);min-width:220px;background:var(--paper);border-radius:var(--radius-sm);box-shadow:0 1px 0 var(--rule-soft),0 8px 24px #1a16111f,0 2px 6px #1a16110f;border:1px solid var(--rule-soft);padding:4px;z-index:100;animation:menu-pop .1s ease-out}.menu-popover-left{left:0}.menu-popover-right{right:0}@keyframes menu-pop{0%{opacity:0;transform:translateY(-2px)}to{opacity:1;transform:translateY(0)}}.menu-item{display:flex;align-items:center;width:100%;gap:9px;padding:7px 10px;font-family:var(--font-body);font-size:13px;font-weight:500;color:var(--ink-soft);background:transparent;border:0;border-radius:var(--radius-sm);cursor:pointer;text-align:left;transition:background 80ms ease,color 80ms ease}.menu-item:hover:not(:disabled){background:var(--paper-deep);color:var(--ink)}.menu-item:disabled{color:var(--ink-faint);cursor:not-allowed}.menu-item svg{width:15px;height:15px;stroke-width:1.6;flex-shrink:0}.menu-item-check{display:inline-flex;align-items:center;justify-content:center;width:14px;height:14px;color:var(--ink-red);flex-shrink:0}.menu-item-icon{display:inline-flex;color:var(--ink-muted);flex-shrink:0}.menu-item-label{flex:1}.menu-item-shortcut{color:var(--ink-faint);font-family:var(--font-mono, ui-monospace, SFMono-Regular, Menlo, monospace);font-size:11px;letter-spacing:.04em}.menu-divider{height:1px;background:var(--rule-soft);margin:4px 6px}.file-chip{display:inline-flex;align-items:center;gap:8px;padding:5px 8px 5px 10px;background:var(--paper);border:1px solid var(--rule);border-radius:999px;font-family:var(--font-body);font-size:12.5px;color:var(--ink);max-width:340px;min-width:0}.file-chip-icon{width:14px;height:14px;stroke-width:1.6;color:var(--ink-muted);flex-shrink:0}.file-chip-name{font-family:var(--font-mono);font-size:12px;font-weight:500;letter-spacing:.01em;color:var(--ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}.file-chip-status{display:inline-flex;align-items:center;gap:6px;margin-left:4px;padding:2px 8px 2px 9px;border-left:1px solid var(--rule);font-family:var(--font-body);font-size:11px;font-weight:600;letter-spacing:.02em;text-transform:uppercase;color:var(--ink-muted);flex-shrink:0}.file-chip-status-label{white-space:nowrap}.file-chip-dot{width:7px;height:7px;border-radius:999px;background:var(--ink-green);flex-shrink:0;transition:background .16s ease,box-shadow .16s ease;box-shadow:0 0 #3d5a3d00}.file-chip.status-dirty .file-chip-dot{background:var(--ink-amber)}.file-chip.status-dirty .file-chip-status{color:var(--ink-amber)}.file-chip.status-saving .file-chip-dot{background:var(--ink-amber);animation:save-pulse .9s ease-in-out infinite}.file-chip.status-saving .file-chip-status{color:var(--ink-amber)}.file-chip.status-saved .file-chip-dot{background:var(--ink-green)}.file-chip.status-saved .file-chip-status{color:var(--ink-green)}.file-chip.status-error .file-chip-dot{background:var(--ink-red);box-shadow:0 0 0 3px #9b2a1f26}.file-chip.status-error .file-chip-status{color:var(--ink-red)}.file-chip.status-idle .file-chip-dot{background:var(--ink-faint)}.file-chip.status-idle .file-chip-status{color:var(--ink-faint)}@keyframes save-pulse{0%,to{box-shadow:0 0 #b8842c66}50%{box-shadow:0 0 0 5px #b8842c00}}.tool-toggle{display:inline-flex;align-items:center;gap:7px;padding:7px 12px;font-family:var(--font-body);font-size:13px;font-weight:500;color:var(--ink-soft);cursor:pointer;border-radius:var(--radius-sm);transition:background .12s ease,color .12s ease;-webkit-user-select:none;user-select:none}.tool-toggle:hover{background:var(--paper-deep);color:var(--ink)}.tool-toggle input{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:28px;height:16px;background:var(--rule);border-radius:999px;position:relative;cursor:pointer;transition:background .16s ease;margin:0;flex-shrink:0}.tool-toggle input:after{content:"";position:absolute;top:2px;left:2px;width:12px;height:12px;background:var(--paper-raised);border-radius:999px;transition:transform .16s ease,background .16s ease;box-shadow:0 1px 2px #1a161133}.tool-toggle input:checked{background:var(--ink-green)}.tool-toggle input:checked:after{transform:translate(12px)}.zoom-group{display:inline-flex;align-items:stretch;border:1px solid var(--rule);border-radius:var(--radius-sm);overflow:hidden;font-family:var(--font-mono);font-size:12.5px}.zoom-group .zoom-btn,.zoom-group .zoom-pct{background:transparent;border:0;padding:6px 9px;cursor:pointer;color:var(--ink-soft);font:inherit;border-left:1px solid var(--rule);transition:background .12s ease,color .12s ease;display:flex;align-items:center;justify-content:center}.zoom-group .zoom-btn:first-child{border-left:0}.zoom-group .zoom-btn:hover,.zoom-group .zoom-pct:hover{background:var(--paper-deep);color:var(--ink)}.zoom-group .zoom-pct{min-width:50px}.zoom-group .zoom-btn.fit{font-family:var(--font-body);font-size:12px;padding:6px 12px}.topbar-stats{margin-left:auto;display:flex;align-items:center;gap:14px;font-family:var(--font-mono);font-size:11px;color:var(--ink-muted);letter-spacing:.03em}.topbar-stats .dot{width:4px;height:4px;border-radius:999px;background:var(--ink-faint);display:inline-block;margin:0 2px}.preview{grid-area:preview;display:flex;flex-direction:column;min-height:0;padding:20px 20px 20px 24px;position:relative;overflow:hidden}.preview-canvas{flex:1 1 auto;min-height:0;display:flex;flex-direction:column;position:relative}.preview.split-data{flex-direction:row;gap:16px}.preview.split-data .preview-canvas{flex:1.4 1 0;min-width:0;min-height:0}.preview.split-data .data-pane{flex:1 1 0;min-width:0;min-height:0}.preview-frame{flex:1 1 auto;min-height:0;display:block;background:var(--paper-raised);border:1px solid var(--rule);border-radius:var(--radius-lg);box-shadow:var(--shadow-card);overflow:auto;padding:16px;position:relative}.preview-frame.cmd-held,.preview-frame.cmd-held svg,.preview-frame.cmd-held svg *{cursor:grab!important}.preview-frame.panning,.preview-frame.panning svg,.preview-frame.panning svg *{cursor:grabbing!important;-webkit-user-select:none;user-select:none}.canvas-empty{position:absolute;top:20px;right:20px;bottom:20px;left:24px;display:flex;align-items:center;justify-content:center;pointer-events:none;z-index:4}.canvas-empty-card{pointer-events:auto;max-width:480px;padding:32px 40px 36px;background:var(--paper-raised);border:1px solid var(--rule);border-radius:var(--radius-lg);box-shadow:var(--shadow-card);text-align:center;color:var(--ink);font-family:var(--font-body, inherit)}.canvas-empty-mark{width:48px;height:48px;color:var(--accent, #1e3a8a);margin-bottom:4px;opacity:.9}.canvas-empty-card h2{margin:4px 0 10px;font-size:22px;font-weight:600;letter-spacing:-.01em}.canvas-empty-card p{margin:6px 0;font-size:15px;line-height:1.5;color:var(--ink-soft, #475569)}.canvas-empty-card p strong{color:var(--ink);font-weight:600}.canvas-empty-card code{font-family:var(--font-mono, ui-monospace, monospace);font-size:13px;padding:1px 5px;background:var(--paper, rgba(0,0,0,.04));border-radius:4px}.canvas-empty-or{margin-top:14px!important;padding-top:12px;border-top:1px dashed var(--rule);font-size:14px}.canvas-empty-cta{margin-top:12px!important;font-size:14px;color:var(--ink-soft, #475569)}.canvas-empty-link{-webkit-appearance:none;-moz-appearance:none;appearance:none;background:none;border:0;padding:0;font:inherit;color:var(--accent, #1e3a8a);font-weight:600;cursor:pointer;text-decoration:underline;text-underline-offset:3px}.canvas-empty-link:hover{filter:brightness(1.15)}.install-skill{position:fixed;top:0;right:0;bottom:0;left:0;z-index:50;display:flex;flex-direction:column;background:var(--paper, #faf8f3);color:var(--ink);overflow:hidden}.install-skill-header{display:flex;align-items:flex-start;justify-content:space-between;gap:24px;padding:24px 32px 16px;border-bottom:1px solid var(--rule);background:var(--paper-raised)}.install-skill-header h1{margin:0 0 4px;font-size:24px;font-weight:600;letter-spacing:-.01em}.install-skill-lede{margin:0;max-width:720px;font-size:14px;line-height:1.55;color:var(--ink-soft, #475569)}.install-skill-close{-webkit-appearance:none;-moz-appearance:none;appearance:none;background:none;border:1px solid var(--rule);border-radius:8px;width:32px;height:32px;font-size:20px;line-height:1;color:var(--ink);cursor:pointer;display:flex;align-items:center;justify-content:center;flex:0 0 auto}.install-skill-close:hover{background:var(--paper)}.install-skill-tabs{display:flex;gap:2px;padding:0 32px;border-bottom:1px solid var(--rule);background:var(--paper-raised)}.install-skill-tab{-webkit-appearance:none;-moz-appearance:none;appearance:none;background:none;border:0;border-bottom:2px solid transparent;padding:12px 16px;font:inherit;font-size:14px;font-weight:500;color:var(--ink-soft, #475569);cursor:pointer}.install-skill-tab:hover{color:var(--ink)}.install-skill-tab.active{color:var(--ink);border-bottom-color:var(--accent, #1e3a8a);font-weight:600}.install-skill-body{flex:1 1 auto;min-height:0;overflow:auto;padding:24px 32px 48px;display:flex;flex-direction:column;gap:28px}.install-skill-steps h2{margin:0 0 12px;font-size:18px;font-weight:600}.install-skill-steps ol{margin:0;padding-left:24px;display:flex;flex-direction:column;gap:14px;font-size:14px;line-height:1.55;color:var(--ink);max-width:820px}.install-skill-steps li code,.install-skill-tip code{font-family:var(--font-mono, ui-monospace, monospace);font-size:13px;background:var(--paper, rgba(0,0,0,.04));padding:1px 5px;border-radius:4px}.install-skill-tip{margin:16px 0 0;padding:10px 14px;background:var(--paper-raised);border:1px dashed var(--rule);border-radius:8px;font-size:13px;color:var(--ink-soft, #475569);max-width:820px}.install-skill-cmd{display:flex;align-items:center;gap:8px;margin-top:6px;padding:8px 10px;background:var(--paper-raised);border:1px solid var(--rule);border-radius:6px;font-family:var(--font-mono, ui-monospace, monospace);font-size:13px;max-width:820px}.install-skill-cmd code{flex:1 1 auto;background:transparent!important;padding:0!important;word-break:break-all}.install-skill-file{display:flex;flex-direction:column;gap:8px;min-height:0}.install-skill-file-head{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}.install-skill-file-head h3{margin:0;font-size:15px;font-weight:600;color:var(--ink)}.install-skill-file-head h3 code{font-family:var(--font-mono, ui-monospace, monospace);font-size:14px;background:transparent;padding:0}.install-skill-dest{font-weight:400;color:var(--ink-soft, #475569);font-size:13px}.install-skill-dest code{font-family:var(--font-mono, ui-monospace, monospace);font-size:12px;background:var(--paper, rgba(0,0,0,.04));padding:1px 5px;border-radius:4px}.install-skill-actions{display:flex;gap:6px}.install-skill-btn{-webkit-appearance:none;-moz-appearance:none;appearance:none;background:var(--paper-raised);border:1px solid var(--rule);border-radius:6px;padding:6px 12px;font:inherit;font-size:13px;font-weight:500;color:var(--ink);cursor:pointer}.install-skill-btn:hover{background:var(--paper)}.install-skill-btn.compact{padding:2px 8px;font-size:12px}.install-skill-code{margin:0;padding:16px 18px;background:#0f172a;color:#e2e8f0;border-radius:8px;font-family:var(--font-mono, ui-monospace, monospace);font-size:12.5px;line-height:1.55;overflow:auto;max-height:540px;white-space:pre}.install-skill-code code{font-family:inherit;background:transparent!important;padding:0!important;color:inherit;white-space:pre}.preview-frame svg{display:block;filter:drop-shadow(0 1px 0 rgba(26,22,17,.02))}.preview-frame svg .node,.preview-frame svg .edge,.preview-frame svg .group,.preview-frame svg .table,.preview-frame svg .relation{cursor:pointer}.preview-frame svg .edge-hit{cursor:pointer}.preview-frame svg .node.is-hover path{filter:brightness(.95)}.preview-frame svg .table.is-hover path{filter:brightness(.95)}.preview-frame svg .edge.is-hover path:not(.edge-hit){opacity:.7}.preview-frame svg .relation.is-hover path:not(.edge-hit){opacity:.7}.preview-frame svg .node.is-selected path{filter:brightness(.92)}.preview-frame svg .table.is-selected path{filter:brightness(.92)}.preview-frame svg .edge.is-selected path:not(.edge-hit){stroke:#9b2a1f!important;stroke-width:3.2!important}.preview-frame svg .edge.is-selected path[fill="#475569"]{fill:#9b2a1f!important;stroke:#9b2a1f!important}.preview-frame svg .relation.is-selected path:not(.edge-hit){stroke:#9b2a1f!important;stroke-width:3.2!important}.preview-frame svg .relation.related-to-hover path:not(.edge-hit),.preview-frame svg .relation.related-to-selected path:not(.edge-hit){stroke:#ea580c!important;stroke-width:3!important}.preview-frame svg .relation.related-to-hover line,.preview-frame svg .relation.related-to-hover circle,.preview-frame svg .relation.related-to-selected line,.preview-frame svg .relation.related-to-selected circle{stroke:#ea580c!important}.preview-frame svg.has-table-focus .relation:not(.related-to-hover):not(.related-to-selected){opacity:.18}.selection-ring{fill:none;stroke:#9b2a1f;stroke-width:3;stroke-dasharray:6 4;pointer-events:none;animation:ring-pulse 1.4s ease-in-out infinite}@keyframes ring-pulse{0%,to{opacity:1}50%{opacity:.55}}.endpoint-marker{pointer-events:none}.endpoint-marker circle{stroke-width:2}.endpoint-from circle{fill:#fdfaf3;stroke:#4338ca}.endpoint-to circle{fill:#fdfaf3;stroke:#9b2a1f}.endpoint-pill{stroke-width:1.5;opacity:.5}.endpoint-from .endpoint-pill{fill:#4338ca;stroke:#312e81}.endpoint-to .endpoint-pill{fill:#9b2a1f;stroke:#7f1d1d}.endpoint-text{font-family:var(--font-mono);font-size:10.5px;font-weight:700;letter-spacing:.08em;fill:#fdfaf3;text-transform:uppercase;opacity:.85}.selection-status{position:absolute;bottom:28px;left:36px;display:inline-flex;align-items:center;gap:10px;padding:8px 14px 8px 10px;background:var(--paper-raised);border:1px solid var(--rule);border-radius:999px;box-shadow:var(--shadow-raised);font-size:12.5px;color:var(--ink-soft);letter-spacing:.01em;max-width:calc(100% - 72px);animation:msg-in .2s ease-out}.selection-status .badge{display:inline-flex;align-items:center;justify-content:center;min-width:28px;height:22px;padding:0 7px;background:#fde047;border:1.5px solid #854d0e;border-radius:999px;font-family:var(--font-mono);font-weight:700;font-size:11.5px;color:#422006;letter-spacing:.02em}.selection-status .hint{font-family:var(--font-display);font-style:italic;font-size:12.5px;color:var(--ink-muted)}.selection-status .hint kbd{font-family:var(--font-mono);font-size:10.5px;padding:1px 5px;background:var(--paper);border:1px solid var(--rule);border-radius:3px;color:var(--ink);margin:0 1px}.selection-status .hint .connections .conn{display:inline-block;padding:1px 6px;margin:0 4px 0 0;background:var(--paper);border:1px solid var(--rule);border-radius:4px;font-style:normal;color:var(--ink)}.selection-status .hint .connections .conn-via{font-family:var(--font-mono);font-size:10.5px;color:var(--ink-muted)}.selection-status .kbd-group{display:inline-flex;gap:2px;padding:0 4px;border-radius:4px;margin:0 2px}.selection-status .kbd-group.from kbd{background:#e0e7ff;border-color:#4338ca;color:#312e81}.selection-status .kbd-group.to kbd{background:#fee2e2;border-color:#9b2a1f;color:#7f1d1d}.selection-status .dismiss{background:transparent;border:0;color:var(--ink-faint);font-size:16px;line-height:1;cursor:pointer;padding:0 2px;margin-left:2px}.selection-status .dismiss:hover{color:var(--ink)}.right-sidebar{grid-area:right;position:relative;display:flex;min-width:0;min-height:0}.chat{flex:1 1 auto;display:flex;flex-direction:column;background:var(--paper-raised);border-left:1px solid var(--rule);min-height:0;min-width:0;position:relative}.left-sidebar{position:relative}.resize-handle{position:absolute;top:0;bottom:0;width:8px;cursor:col-resize;background:transparent;z-index:10;transition:background .12s ease;touch-action:none}.resize-handle:hover,.resize-handle.is-dragging{background:var(--rule)}.resize-handle-right{right:-4px}.resize-handle-left{left:-4px}body.is-resizing-sidebar{cursor:col-resize;-webkit-user-select:none;user-select:none}body.is-resizing-sidebar *{-webkit-user-select:none!important;user-select:none!important}.resize-guide{position:fixed;top:0;bottom:0;width:2px;background:var(--ink-red);opacity:.6;pointer-events:none;z-index:9999;transform:translate(-1px);box-shadow:0 0 0 1px #9b2a1f2e}.chat-header{display:flex;align-items:center;gap:8px;padding:14px 20px 12px;border-bottom:1px solid var(--rule-soft);position:relative}.chat-title{font-family:var(--font-display);font-weight:500;font-size:16px;letter-spacing:.02em;color:var(--ink)}.chat-title em{font-style:italic;font-weight:400;color:var(--ink-muted);font-size:13px;margin-left:6px}.chat-settings-btn{margin-left:auto;display:inline-flex;align-items:center;gap:6px;padding:5px 10px;font-family:var(--font-body);font-size:11.5px;font-weight:500;color:var(--ink-muted);background:transparent;border:1px solid var(--rule);border-radius:999px;cursor:pointer;transition:all .14s ease;letter-spacing:.02em;text-transform:uppercase}.chat-settings-btn:hover{color:var(--ink);border-color:var(--ink-muted);background:var(--paper-deep)}.chat-settings-btn.warn{color:var(--ink-red);border-color:var(--ink-red);background:#9b2a1f0a}.chat-settings-btn.warn:hover{background:#9b2a1f14}.chat-settings-btn svg{width:13px;height:13px;stroke-width:1.7}.settings{border-bottom:1px solid var(--rule-soft);background:var(--paper-deep);padding:18px 20px 20px;display:flex;flex-direction:column;gap:14px;animation:settings-in .22s cubic-bezier(.2,.6,.2,1);transform-origin:top center;overflow:hidden}@keyframes settings-in{0%{opacity:0;transform:translateY(-6px);max-height:0;padding-top:0;padding-bottom:0}to{opacity:1;transform:translateY(0);max-height:400px;padding-top:18px;padding-bottom:20px}}.settings-field{display:flex;flex-direction:column;gap:6px}.settings-field label{font-family:var(--font-display);font-style:italic;font-weight:400;font-size:12px;color:var(--ink-muted);letter-spacing:.02em}.settings-field input{padding:8px 0 8px 2px;font-family:var(--font-mono);font-size:12.5px;color:var(--ink);background:transparent;border:0;border-bottom:1px solid var(--rule);transition:border-color .14s ease;outline:none;letter-spacing:0}.settings-field input::placeholder{color:var(--ink-faint);font-style:italic}.settings-field input:focus{border-bottom-color:var(--ink-red)}.settings-note{font-family:var(--font-display);font-style:italic;font-size:11.5px;color:var(--ink-muted);line-height:1.4;padding-top:2px}.chat-history{flex:1;overflow-y:auto;padding:20px 20px 8px;display:flex;flex-direction:column;gap:14px;scroll-behavior:smooth}.chat-history::-webkit-scrollbar{width:10px}.chat-history::-webkit-scrollbar-track{background:transparent}.chat-history::-webkit-scrollbar-thumb{background:var(--rule);border-radius:999px;border:3px solid var(--paper-raised)}.chat-history::-webkit-scrollbar-thumb:hover{background:var(--ink-faint)}.chat-empty{padding:16px 18px;background:var(--ink-amber-bg);border-radius:var(--radius);border-left:3px solid var(--ink-amber);font-size:13px;line-height:1.55;color:var(--ink-soft);position:relative}.chat-empty:before{content:"tip";position:absolute;top:-8px;left:14px;padding:1px 8px;background:var(--ink-amber);color:var(--paper-raised);font-family:var(--font-display);font-style:italic;font-size:10px;border-radius:999px;letter-spacing:.08em;text-transform:lowercase}.chat-empty strong{font-weight:600;color:var(--ink)}.chat-empty code{font-family:var(--font-mono);font-size:11.5px;background:#1a16110f;padding:1px 5px;border-radius:3px;color:var(--ink)}.chat-msg{max-width:88%;font-size:14px;line-height:1.5;animation:msg-in .26s cubic-bezier(.2,.6,.2,1);word-wrap:break-word}@keyframes msg-in{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}.chat-msg.user{align-self:flex-end;background:var(--ink);color:var(--paper-raised);padding:10px 14px;border-radius:14px 14px 4px;font-weight:400;box-shadow:var(--shadow-card)}.chat-msg.assistant{align-self:flex-start;background:var(--paper);color:var(--ink);padding:11px 14px 12px 16px;border-radius:14px 14px 14px 4px;border:1px solid var(--rule-soft);border-left:3px solid var(--ink-green);box-shadow:var(--shadow-card);font-family:var(--font-body)}.chat-msg.assistant:first-of-type{margin-top:0}.chat-msg.system{align-self:stretch;background:transparent;color:var(--ink-red);padding:6px 2px 6px 14px;border-left:2px solid var(--ink-red);font-family:var(--font-display);font-style:italic;font-size:13px}.chat-msg.typing{font-style:italic;color:var(--ink-muted);display:inline-flex;gap:3px;padding:11px 16px}.chat-msg.typing .dot{width:6px;height:6px;border-radius:999px;background:var(--ink-muted);animation:typing-bounce 1.2s ease-in-out infinite}.chat-msg.typing .dot:nth-child(2){animation-delay:.16s}.chat-msg.typing .dot:nth-child(3){animation-delay:.32s}@keyframes typing-bounce{0%,80%,to{opacity:.3;transform:translateY(0)}40%{opacity:1;transform:translateY(-3px)}}.chat-form{display:flex;gap:10px;padding:12px 14px 16px;border-top:1px solid var(--rule-soft);align-items:flex-end;background:var(--paper-raised)}.chat-form textarea{flex:1;resize:none;padding:10px 12px;font-family:var(--font-body);font-size:14px;line-height:1.5;color:var(--ink);background:var(--paper);border:1px solid var(--rule);border-radius:var(--radius);min-height:42px;max-height:160px;transition:border-color .14s ease,background .14s ease,box-shadow .14s ease;outline:none}.chat-form textarea::placeholder{color:var(--ink-faint);font-style:italic}.chat-form textarea:focus{border-color:var(--ink-red);background:var(--paper-raised);box-shadow:0 0 0 3px #9b2a1f14}.chat-form textarea:disabled{opacity:.5;cursor:not-allowed}.send-btn{display:inline-flex;align-items:center;justify-content:center;width:42px;height:42px;background:var(--ink);color:var(--paper-raised);border:0;border-radius:var(--radius);cursor:pointer;transition:background .14s ease,transform 80ms ease;flex-shrink:0}.send-btn:hover:not(:disabled){background:var(--ink-red)}.send-btn:active:not(:disabled){transform:scale(.96)}.send-btn:disabled{background:var(--rule);color:var(--ink-faint);cursor:not-allowed}.send-btn svg{width:16px;height:16px;stroke-width:1.8}.json-panel{display:flex;flex-direction:column;flex:1 1 0;min-height:0;background:var(--paper);color:var(--ink);overflow:hidden;animation:overlay-in .18s ease-out}@keyframes overlay-in{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}.json-panel-header{display:flex;align-items:center;gap:6px;padding:10px 12px;border-bottom:1px solid var(--rule);background:var(--paper-raised);font-family:var(--font-body);font-size:12.5px;color:var(--ink-soft);flex-shrink:0}.json-panel-title{font-family:var(--font-mono);font-size:12px;font-weight:500;color:var(--ink-muted);letter-spacing:.01em;margin-right:auto}.json-panel-btn{display:inline-flex;align-items:center;gap:5px;padding:4px 9px;background:transparent;border:1px solid var(--rule);color:var(--ink-soft);border-radius:var(--radius-sm);cursor:pointer;font-family:var(--font-body);font-size:12px;font-weight:500;letter-spacing:.02em;transition:background .12s ease,color .12s ease,border-color .12s ease}.json-panel-btn:hover:not(:disabled){background:var(--paper);color:var(--ink);border-color:var(--ink-faint)}.json-panel-btn:disabled{color:var(--ink-faint);border-color:var(--rule-soft);background:transparent;cursor:default}.json-panel-btn-primary{color:var(--ink-green);border-color:#3d5a3d59;background:#3d5a3d0f}.json-panel-btn-primary:hover{background:#3d5a3d1f;border-color:#3d5a3d99;color:var(--ink-green)}.json-panel-close{display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px;padding:0;background:transparent;border:0;color:var(--ink-muted);font-size:17px;line-height:1;border-radius:999px;cursor:pointer;transition:background .12s ease,color .12s ease}.json-panel-close:hover{background:var(--paper-deep);color:var(--ink)}.json-panel-text{flex:1;background:var(--paper);color:var(--ink);border:0;padding:14px 16px;font-family:var(--font-mono);font-size:12px;line-height:1.55;resize:none;outline:none;-moz-tab-size:2;tab-size:2;white-space:pre}.json-panel-text::-webkit-scrollbar{width:10px;height:10px}.json-panel-text::-webkit-scrollbar-track{background:transparent}.json-panel-text::-webkit-scrollbar-thumb{background:var(--rule);border-radius:999px;border:3px solid transparent;background-clip:padding-box}.json-panel-text::-webkit-scrollbar-thumb:hover{background:var(--ink-faint);background-clip:padding-box;border:3px solid transparent}.json-panel-error{background:#9b2a1f14;color:var(--ink-red);padding:8px 14px;font-family:var(--font-mono);font-size:11.5px;border-top:1px solid rgba(155,42,31,.25);white-space:pre-wrap;flex-shrink:0}.autofix-banner{position:absolute;top:32px;left:50%;transform:translate(-50%);min-width:420px;max-width:min(720px,calc(100% - 80px));background:var(--paper-raised);border:1px solid var(--rule);border-radius:var(--radius-lg);box-shadow:var(--shadow-card),0 14px 32px -18px #1a161173;padding:12px 14px 14px 16px;z-index:20;pointer-events:auto;animation:autofix-in .26s cubic-bezier(.2,.7,.2,1)}@keyframes autofix-in{0%{opacity:0;transform:translate(-50%,-10px)}to{opacity:1;transform:translate(-50%)}}.autofix-banner.v-running{border-color:#1e3a8a73;background:#eef3ff}.autofix-banner.v-success{border-color:#3d5a3d80;background:#e9f2e4}.autofix-banner.v-error{border-color:#9b2a1f80;background:#fbeceb}.autofix-banner.v-neutral{border-color:#b8842c80;background:var(--ink-amber-bg)}.autofix-row{display:flex;align-items:flex-start;gap:12px}.autofix-icon{flex-shrink:0;width:26px;height:26px;border-radius:50%;display:grid;place-items:center;color:#fff;margin-top:1px}.autofix-icon svg{width:16px;height:16px;stroke-width:2.2}.autofix-banner.v-running .autofix-icon{background:#1e3a8a}.autofix-banner.v-success .autofix-icon{background:var(--ink-green)}.autofix-banner.v-error .autofix-icon{background:var(--ink-red)}.autofix-banner.v-neutral .autofix-icon{background:var(--ink-amber)}.autofix-spinner{animation:autofix-spin 1s linear infinite}@keyframes autofix-spin{to{transform:rotate(360deg)}}.autofix-text{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px;font-family:var(--font-body)}.autofix-text strong{font-family:var(--font-display);font-weight:600;font-size:14px;letter-spacing:.01em;color:var(--ink)}.autofix-text span{font-size:13px;color:var(--ink-soft);line-height:1.4;overflow:hidden;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}.autofix-dismiss{flex-shrink:0;background:transparent;border:0;color:var(--ink-faint);font-size:22px;line-height:1;padding:0 4px;cursor:pointer;border-radius:4px}.autofix-dismiss:hover{color:var(--ink);background:#0000000a}.autofix-progress{margin-top:10px;height:4px;background:#1a161114;border-radius:2px;overflow:hidden}.autofix-progress-fill{height:100%;background:#1e3a8a;transition:width .32s ease;border-radius:2px}.tool-btn.is-running{animation:tool-pulse 1.4s ease-in-out infinite;position:relative}.tool-btn.is-running:after{content:"";position:absolute;top:-3px;right:-3px;bottom:-3px;left:-3px;border-radius:inherit;border:2px solid rgba(30,58,138,.55);pointer-events:none;animation:tool-pulse-ring 1.4s ease-out infinite}@keyframes tool-pulse{0%,to{opacity:1}50%{opacity:.7}}@keyframes tool-pulse-ring{0%{opacity:.6;top:-2px;right:-2px;bottom:-2px;left:-2px}to{opacity:0;top:-8px;right:-8px;bottom:-8px;left:-8px}}.autofix-stop{flex-shrink:0;display:inline-flex;align-items:center;gap:6px;border:1px solid rgba(155,42,31,.35);background:#fff;color:var(--ink-red);font-family:var(--font-body);font-weight:600;font-size:12.5px;letter-spacing:.02em;padding:5px 10px 5px 8px;border-radius:6px;cursor:pointer;align-self:center;box-shadow:0 1px 2px #1a16110f;transition:background .12s,color .12s,border-color .12s}.autofix-stop svg{width:11px;height:11px}.autofix-stop:hover{background:var(--ink-red);color:#fff;border-color:var(--ink-red)}.data-pane{min-width:0;min-height:0;display:flex;flex-direction:column;background:var(--paper-raised);border:1px solid var(--rule);border-radius:var(--radius-lg);box-shadow:var(--shadow-card);overflow:hidden}.data-pane-header{padding:12px 16px;border-bottom:1px solid var(--rule);background:var(--paper-raised)}.data-pane-title{display:flex;align-items:baseline;gap:10px;font-size:14px;font-weight:600;color:var(--ink)}.data-pane-subtle{font-weight:400;color:var(--ink-soft, #475569);font-size:12px}.data-pane-body{flex:1 1 auto;min-height:0;overflow:auto;padding:12px 14px 20px}.data-pane-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;height:100%;padding:24px;color:var(--ink-soft, #475569)}.data-pane-empty h3{margin:0 0 8px;color:var(--ink);font-size:16px;font-weight:600}.data-pane-empty p{margin:0 0 16px;font-size:13px;line-height:1.55;max-width:320px}.data-pane-generate{display:inline-flex;align-items:center;gap:8px;padding:8px 14px;background:var(--accent, #1e3a8a);color:#fff;border:0;border-radius:8px;font:inherit;font-size:14px;font-weight:600;cursor:pointer}.data-pane-generate:disabled{opacity:.5;cursor:not-allowed}.data-pane-generate:hover:not(:disabled){filter:brightness(1.08)}.data-pane-generate svg{width:16px;height:16px}.data-pane-empty-note{margin-top:10px!important;font-size:12px;color:var(--ink-soft, #475569)}.json-tree{font-family:var(--font-mono, ui-monospace, monospace);font-size:12.5px;line-height:1.55;color:var(--ink)}.tree-section{margin-bottom:10px;border:1px solid transparent;border-radius:8px;padding:4px 6px;transition:background-color .8s,border-color .8s}.tree-section.flash{background:#1e3a8a14;border-color:#1e3a8a40;transition:background-color .05s,border-color .05s}.tree-section-head{-webkit-appearance:none;-moz-appearance:none;appearance:none;background:none;border:0;padding:4px 2px;width:100%;display:flex;align-items:center;gap:6px;font:inherit;font-weight:600;color:var(--ink);cursor:pointer}.tree-section-head:hover{color:var(--accent, #1e3a8a)}.tree-twist{display:inline-block;width:12px;transition:transform .15s}.tree-twist.closed{transform:rotate(-90deg)}.tree-section-body{padding-left:18px;border-left:1px dashed var(--rule);margin:4px 0 4px 6px}.tree-row{margin:6px 0}.tree-row-head,.tree-row>.tree-bracket{display:flex;align-items:center;gap:8px}.tree-row-index{color:var(--ink-soft, #475569);font-size:11px;font-weight:500}.tree-row-delete{-webkit-appearance:none;-moz-appearance:none;appearance:none;background:none;border:0;color:var(--ink-soft, #475569);cursor:pointer;font-size:14px;line-height:1;padding:0 4px;opacity:0;transition:opacity .15s}.tree-row:hover .tree-row-delete{opacity:1}.tree-row-delete:hover{color:var(--ink-red, #9b2a1f)}.tree-row-body{padding-left:14px;border-left:1px dotted var(--rule);margin:2px 0 2px 6px}.tree-bracket{color:var(--ink-soft, #475569)}.tree-cell{padding:1px 0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.tree-key{color:var(--accent, #1e3a8a);font-weight:500}.tree-value{-webkit-appearance:none;-moz-appearance:none;appearance:none;background:transparent;border:0;padding:1px 4px;font:inherit;cursor:text;border-radius:4px;color:inherit}.tree-value:hover{background:#0000000a}.tree-value-string{color:#1f513f}.tree-value-number{color:#7c2d12}.tree-value-bool{color:#6b21a8;font-weight:600}.tree-value-null{color:var(--ink-soft, #475569);font-style:italic}.tree-input{font:inherit;padding:1px 4px;margin:0;border:1px solid var(--accent, #1e3a8a);border-radius:4px;background:var(--paper, #faf8f3);color:var(--ink);min-width:80px}.tree-input:focus{outline:none;box-shadow:0 0 0 2px #1e3a8a33}.tree-empty-row{font-style:italic;color:var(--ink-soft, #475569);font-size:12px;padding:4px 0 6px}.tree-add-row{-webkit-appearance:none;-moz-appearance:none;appearance:none;background:transparent;border:1px dashed var(--rule);border-radius:6px;padding:4px 10px;margin-top:6px;font:inherit;font-size:12px;color:var(--ink-soft, #475569);cursor:pointer}.tree-add-row:hover{color:var(--accent, #1e3a8a);border-color:var(--accent, #1e3a8a)}
