:root{--font-sans:system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;--fs-2xs:0.625rem;--fs-xs:0.6875rem;--fs-sm:0.75rem;--fs-base:0.8125rem;--fs-md:0.875rem;--fs-lg:1.125rem;--surface-0:#f8fafc;--surface-1:#fff;--surface-2:#f1f5f9;--surface-3:#e2e8f0;--border-subtle:#e8ecf1;--border-default:#dce1e8;--border-strong:#c5cdd8;--accent:#0f766e;--accent-hover:#115e59;--accent-surface:#f0fdfa}*{box-sizing:border-box}body,html{margin:0;padding:0;height:100%;font-family:var(--font-sans);background:var(--surface-0);color:#1e293b;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}button,input,select,textarea{font-family:inherit;font-style:normal}.app{display:flex;flex-direction:column;min-height:100vh;height:100vh}.main{flex:1 1 auto;overflow:hidden}.editor-shell,.main{min-height:0;display:flex;flex-direction:column}.editor-shell{flex:1 1 auto;height:100%;background:var(--surface-0);color:#334155}.editor-closed-screen{flex:1 1;background:var(--surface-0);display:flex;align-items:flex-start;justify-content:center;overflow-y:auto}.welcome-catalog{max-width:860px;width:100%;padding:48px 32px 32px;display:flex;flex-direction:column;gap:36px}.welcome-header{text-align:center}.welcome-title{font-size:28px;font-weight:700;color:#171717;letter-spacing:-.03em;margin:0}.welcome-subtitle{font-size:14px;color:#737373;margin:6px 0 0;font-weight:400}.welcome-actions{display:flex;justify-content:center;gap:12px}.welcome-action-btn{display:flex;align-items:center;gap:8px;padding:10px 22px;border-radius:6px;font-size:13px;font-weight:600;cursor:pointer;border:1px solid var(--border-default);background:var(--surface-1);color:#404040;transition:background .15s,border-color .15s,box-shadow .15s}.welcome-action-btn:hover{background:#f5f5f5;border-color:#a3a3a3}.welcome-action-btn--primary{background:#2563eb;color:#fff;border-color:#2563eb}.welcome-action-btn--primary:hover{background:#1d4ed8;border-color:#1d4ed8;box-shadow:0 2px 8px rgba(37,99,235,.25)}.welcome-section-title{font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.08em;color:#a3a3a3;margin:0 0 14px}.welcome-templates{display:grid;grid-template-columns:repeat(auto-fill,minmax(130px,1fr));grid-gap:10px;gap:10px}.welcome-template-card{display:flex;flex-direction:column;align-items:center;gap:8px;padding:16px 8px 12px;border:1px solid var(--border-subtle);border-radius:6px;background:var(--surface-1);cursor:pointer;transition:border-color .15s,box-shadow .15s,background .15s}.welcome-template-card:hover{border-color:#2563eb;box-shadow:0 2px 8px rgba(37,99,235,.1);background:#fafbff}.welcome-template-icon{display:flex;align-items:center;justify-content:center;color:#525252;width:56px;height:56px}.welcome-template-label{font-size:11px;font-weight:500;color:#525252;text-align:center;line-height:1.3}.welcome-features{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));grid-gap:16px;gap:16px}.welcome-feature-group{padding:14px 16px;border:1px solid var(--border-subtle);border-radius:6px;background:var(--surface-1)}.welcome-feature-title{font-size:12px;font-weight:600;color:#262626;margin:0 0 8px}.welcome-feature-list{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:4px}.welcome-feature-list li{font-size:11.5px;color:#636363;line-height:1.45;padding-left:12px;position:relative}.welcome-feature-list li:before{content:"";position:absolute;left:0;top:7px;width:4px;height:4px;border-radius:50%;background:#d4d4d4}.welcome-footer{display:flex;justify-content:center;align-items:center;gap:8px;font-size:11px;color:#a3a3a3;padding-top:8px}.welcome-footer-sep{color:#d4d4d4}.editor-titlebar{height:28px;font-size:var(--fs-xs);display:flex;align-items:center;justify-content:space-between;padding:0 10px;border-bottom:1px solid var(--border-subtle);background:var(--surface-1);letter-spacing:.01em;position:relative}.editor-titlebar .title-left{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.mode-toggle{position:absolute;left:calc(50% + 24px);transform:translateX(-50%);display:flex;gap:1px;background:var(--border-default);border-radius:6px;overflow:hidden;padding:1px}.mode-btn{width:88px;padding:3px 0;border:none;background:var(--surface-1);color:#64748b;font-size:11px;font-weight:500;cursor:pointer;transition:background .15s,color .15s;border-radius:5px;text-align:center}.mode-btn:hover{background:var(--surface-2);color:#334155}.mode-btn.active{background:var(--accent);color:#fff;box-shadow:0 1px 3px rgba(15,118,110,.35)}.editor-menu{display:flex;align-items:center;gap:1px;min-height:32px;padding:2px 6px;background:var(--surface-1);border-bottom:1px solid var(--border-subtle);position:relative}.editor-menu,.editor-menu>button{color:#475569;font-size:var(--fs-sm)}.editor-menu>button{border:none;background:transparent;padding:4px 10px;min-height:26px;height:auto;border-radius:5px;cursor:pointer;transition:background .1s,color .1s}.editor-menu>button:hover{background:var(--surface-2);color:#1e293b}.editor-menu>button.active{background:var(--accent-surface);color:var(--accent)}.menu-dropdown{position:absolute;top:calc(100% + 2px);left:var(--menu-left,0);z-index:30;min-width:248px;padding:5px;border:1px solid var(--border-default);background:var(--surface-1);box-shadow:0 8px 30px rgba(15,23,42,.14),0 2px 6px rgba(15,23,42,.06);border-radius:8px;display:flex;flex-direction:column;gap:1px;max-height:80vh;overflow-y:auto;animation:menu-open .12s ease-out}@keyframes menu-open{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}.menu-dropdown button{border:none;background:transparent;text-align:left;padding:7px 10px;min-height:30px;height:auto;font-size:var(--fs-sm);color:#374151;border-radius:5px;cursor:pointer;transition:background .08s}.menu-dropdown button:hover{background:var(--surface-2);color:#0f172a}.menu-divider{height:1px;background:#e3e8ef;margin:5px 4px}.menu-item-btn{display:grid;grid-template-columns:18px 1fr auto;align-items:center;grid-gap:8px;gap:8px}.menu-item-icon{width:18px;height:18px;display:inline-flex;align-items:center;justify-content:center;flex-shrink:0}.menu-item-check{font-size:13px;font-weight:700;color:#2563eb}.menu-svg-icon{width:18px;height:18px;flex-shrink:0;color:#475569;display:inline-block;vertical-align:middle}.menu-item-btn:hover .menu-svg-icon{color:#1e293b}.menu-svg-icon-fallback{width:18px;height:18px;display:inline-block}.menu-item-label{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.menu-item-shortcut{font-size:var(--fs-xs);color:#94a3b8}.menu-item-chevron{color:#9ca3af;flex-shrink:0}.menu-item-parent:hover .menu-item-chevron{color:#374151}.menu-item-parent{position:relative}.menu-item-parent:hover>.menu-item-btn{background:var(--surface-2)}.menu-item-parent>.menu-item-btn{width:100%;grid-template-columns:18px 1fr 10px}.menu-submenu-portal{min-width:240px;padding:5px;border:1px solid var(--border-default);background:var(--surface-1);box-shadow:0 8px 30px rgba(15,23,42,.14),0 2px 6px rgba(15,23,42,.06);border-radius:8px;display:flex;flex-direction:column;gap:1px;max-height:80vh;overflow-y:auto;animation:menu-open .12s ease-out}.menu-submenu-portal button{border:none;background:transparent;text-align:left;padding:7px 10px;min-height:30px;height:auto;font-size:var(--fs-sm);color:#374151;border-radius:5px;cursor:pointer;transition:background .08s}.menu-submenu-portal button:hover{background:var(--surface-2);color:#0f172a}.toolbar-stack{border-bottom:1px solid var(--border-subtle);background:var(--surface-1)}.drawing-props-bar{display:flex;align-items:center;gap:12px;padding:2px 8px;background:var(--surface-2);border-bottom:1px solid var(--border-subtle);font-size:var(--fs-xs);min-height:24px}.drawing-props-label{display:flex;align-items:center;gap:4px;font-weight:500}.drawing-props-select{border:1px solid var(--border-default);background:var(--surface-1);border-radius:2px;padding:1px 4px;font-size:var(--fs-xs);min-width:120px}.drawing-props-info{color:#64748b;font-size:var(--fs-xs)}.toolbar-row{display:flex;align-items:center;gap:3px;padding:3px 6px;border-bottom:1px solid var(--border-subtle)}.toolbar-row.toolbar-spread{flex-wrap:wrap}.toolbar-spacer{flex:1 1;min-width:8px}.icon-btn,.text-btn{border:1px solid var(--border-default);background:var(--surface-1);color:#475569;border-radius:4px;height:24px;min-width:24px;font-size:var(--fs-sm);cursor:pointer;transition:background .1s,border-color .1s,color .1s}.icon-btn:hover,.text-btn:hover{background:var(--surface-2);border-color:var(--border-strong);color:#1e293b}.icon-btn{display:inline-flex;align-items:center;justify-content:center;padding:0}.icon-btn.active{border-color:#cbd5e1;background:var(--accent-surface);color:var(--accent)}.toolbar-icon{width:14px;height:14px}.toolbar-fallback{font-size:var(--fs-xs);color:#6b7280}.text-btn{padding:0 8px}.generate-btn{background:#84cc16;color:#111827;border-color:#65a30d;font-weight:600}.generate-btn:hover{background:#65a30d}.toolbar-btn-group{display:inline-flex;gap:0}.toolbar-btn-group .icon-btn{border-radius:0;margin-left:-1px}.toolbar-btn-group .icon-btn:first-child{border-radius:2px 0 0 2px;margin-left:0}.toolbar-btn-group .icon-btn:last-child{border-radius:0 2px 2px 0}.toolbar-divider{width:1px;height:16px;margin:0 4px;background:var(--border-default)}.toolbar-dropdown-panel{position:absolute;top:100%;left:0;z-index:200;min-width:280px;max-height:420px;overflow-y:auto;background:var(--surface-1);border:1px solid var(--border-default);border-radius:6px;box-shadow:0 4px 16px rgba(0,0,0,.12);padding:8px;margin-top:2px}.editor-layout{display:grid;min-height:0;flex:1 1;background:var(--surface-0)}.left-toolstrip{border-right:1px solid var(--border-subtle);background:var(--surface-1);padding:4px 3px;display:flex;flex-direction:column;gap:2px}.left-toolstrip button{border:1px solid transparent;background:transparent;height:26px;width:28px;display:inline-flex;align-items:center;justify-content:center;cursor:pointer;border-radius:5px;color:#64748b;transition:background .1s,color .1s}.left-toolstrip button:hover{background:var(--surface-2);color:#1e293b}.left-toolstrip button.active{background:var(--accent-surface);color:var(--accent)}.toolstrip-icon{width:14px;height:14px}.snap-menu-wrap{position:relative}.snap-menu-anchor{position:relative}.snap-menu-anchor,.snap-menu-trigger{display:inline-flex;align-items:center}.snap-menu-trigger{border:1px solid var(--border-default);background:var(--surface-1);height:22px;width:28px;justify-content:center;cursor:pointer}.snap-menu-trigger.active{background:var(--accent-surface);border-color:var(--accent)}.snap-menu-trigger--muted:not(.active){opacity:.72}.snap-menu-icon{display:block;flex-shrink:0}.snap-menu-icon--statusbar{width:12px;height:12px}.snap-menu-panel{position:absolute;left:100%;top:0;margin-left:6px;z-index:200;min-width:232px;padding:8px 10px 10px;box-shadow:0 10px 40px rgba(15,23,42,.1),0 2px 8px rgba(15,23,42,.06)}.snap-floating-panel,.snap-menu-panel{background:var(--surface-1);border:1px solid var(--border-subtle);border-radius:8px;font-family:var(--font-sans);font-size:var(--fs-sm);animation:snap-floating-in .2s cubic-bezier(.2,.9,.2,1) both}.snap-floating-panel{box-shadow:0 10px 40px rgba(15,23,42,.12),0 2px 8px rgba(15,23,42,.06);overflow:hidden}.snap-floating-panel-scroll{overflow-y:auto;max-height:inherit;padding:10px 12px 12px}@keyframes snap-floating-in{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.snap-panel-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:8px;padding-bottom:8px;border-bottom:1px solid #eef2f7}.snap-panel-title{font-weight:600;color:#1e293b}.snap-master-switch{display:inline-flex;align-items:center;gap:8px;border:none;background:transparent;cursor:pointer;padding:2px 4px;border-radius:6px;font-family:inherit;font-size:var(--fs-xs);font-weight:600;color:#64748b;transition:background-color .15s ease,color .15s ease}.snap-master-switch:hover{background:var(--surface-2);color:#334155}.snap-master-switch:focus-visible{outline:none;box-shadow:0 0 0 2px #fff,0 0 0 4px #94a3b8}.snap-master-switch__track{position:relative;width:36px;height:20px;border-radius:999px;background:#cbd5e1;transition:background-color .2s ease;flex-shrink:0}.snap-master-switch--on .snap-master-switch__track{background:#475569}.snap-master-switch__thumb{position:absolute;top:2px;left:2px;width:16px;height:16px;border-radius:50%;background:#fff;box-shadow:0 1px 2px rgba(0,0,0,.12);transition:transform .2s cubic-bezier(.2,.9,.2,1)}.snap-master-switch--on .snap-master-switch__thumb{transform:translateX(16px)}.snap-panel-section-label{font-size:var(--fs-xs);font-weight:600;text-transform:uppercase;letter-spacing:.04em;color:#94a3b8;margin-bottom:4px}.snap-panel-row{display:flex;align-items:center;gap:10px;padding:5px 4px;cursor:pointer;color:#334155;border-radius:4px;transition:background-color .12s ease;font-weight:500}.snap-panel-row:hover{background:var(--surface-2)}.snap-panel-row input{margin:0;flex-shrink:0}@media (prefers-reduced-motion:reduce){.snap-floating-panel,.snap-menu-panel{animation:none}.snap-master-switch,.snap-master-switch__thumb,.snap-master-switch__track,.snap-panel-row{transition:none}}.navigator-panel{background:var(--surface-1);border-right:none;overflow-y:auto;min-width:0}.navigator-panel.docked{position:relative;display:flex;flex-direction:column;overflow:hidden;height:100%}.navigator-panel.docked-left{border-right:1px solid var(--border-subtle)}.navigator-panel.docked-right{border-left:1px solid var(--border-subtle)}.navigator-panel.docked .navigator{flex:1 1;overflow-y:auto;min-height:0}.navigator-panel.docked .navigator>h3{display:none}.nav-dock-resize-handle{position:absolute;top:0;width:4px;height:100%;cursor:col-resize;z-index:2}.nav-dock-resize-handle.dock-right{right:-2px}.nav-dock-resize-handle.dock-left{left:-2px}.nav-dock-resize-handle:hover{background:rgba(15,118,110,.18)}.navigator-panel.floating{display:flex;flex-direction:column;border-radius:8px;border:1px solid var(--border-subtle);box-shadow:0 8px 32px rgba(0,0,0,.12),0 2px 8px rgba(0,0,0,.08);max-height:calc(100vh - 100px);height:auto;overflow:hidden}.navigator-panel.floating .navigator .tree{max-height:calc(100vh - 200px);overflow-y:auto}.navigator-panel.floating .navigator{flex:1 1;overflow-y:auto;min-height:0}.navigator-panel.floating .navigator>h3{display:none}.nav-float-titlebar{display:flex;align-items:center;justify-content:space-between;padding:5px 8px 4px 10px;background:var(--surface-2);border-bottom:1px solid var(--border-subtle);cursor:move;-webkit-user-select:none;-moz-user-select:none;user-select:none;flex-shrink:0;border-radius:8px 8px 0 0}.nav-float-title{font-size:11px;font-weight:600;color:var(--text-primary);letter-spacing:-.01em}.nav-float-close{display:flex;align-items:center;justify-content:center;width:18px;height:18px;border:none;border-radius:4px;background:none;color:var(--text-secondary);cursor:pointer;transition:all .1s}.nav-float-close:hover{background:rgba(239,68,68,.12);color:#dc2626}.nav-float-resize-handle{position:absolute;top:0;right:-2px;width:5px;height:100%;cursor:col-resize;z-index:1}.nav-float-resize-handle:hover{background:rgba(99,102,241,.15)}.nav-resize-handle{width:3px;cursor:col-resize;background:var(--border-subtle);transition:background .15s}.nav-resize-handle:hover{background:var(--accent)}.navigator{padding:0;display:flex;flex-direction:column;height:100%}.navigator h3{padding:7px 10px;font-size:var(--fs-sm);font-weight:600;background:var(--surface-1);color:#1e293b;letter-spacing:.01em}.navigator .tabs,.navigator h3{margin:0;border-bottom:1px solid var(--border-subtle)}.navigator .tabs{display:flex;gap:0;padding:3px 4px;background:var(--surface-0)}.navigator .tabs button{flex:1 1;padding:5px 4px;font-size:var(--fs-sm);font-weight:500;background:transparent;border:none;border-bottom:2px solid transparent;color:#64748b;cursor:pointer;border-radius:0;transition:color .12s,border-color .12s}.navigator .tabs button:hover{color:#334155}.navigator .tabs button.active{background:transparent;color:var(--accent);border-bottom-color:var(--accent)}.tree{padding:2px 0;color:#374151;flex:1 1;overflow-y:auto}.tree-node{-webkit-user-select:none;-moz-user-select:none;user-select:none}.tree-node-header{display:flex;align-items:center;gap:3px;padding:2px 6px;font-size:var(--fs-sm);cursor:default;min-height:22px}.tree-node-header.clickable{cursor:pointer}.tree-node-header:hover{background:var(--surface-2)}.tree-toggle{width:12px;font-size:var(--fs-2xs);flex-shrink:0;text-align:center;color:#94a3b8}.tree-icon{flex-shrink:0;width:16px;display:flex;align-items:center;justify-content:center;color:#64748b}.tree-icon svg{width:13px;height:13px}.tree-label{flex:1 1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.tree-detail{font-size:var(--fs-xs);color:#94a3b8;margin-left:4px;flex-shrink:0}.tree-close-btn{margin-left:auto;background:none;border:none;color:#94a3b8;font-size:10px;cursor:pointer;padding:0 4px;line-height:1;opacity:0;transition:opacity .15s}.tree-node-header:hover .tree-close-btn{opacity:1}.tree-close-btn:hover{color:#ef4444}.tree-empty{padding:12px 8px;color:#94a3b8;font-size:var(--fs-sm);text-align:center}.tree-node-children{padding-left:14px}.tree-section-label{font-size:var(--fs-xs);color:#64748b;font-weight:600;padding:6px 12px 3px;text-transform:uppercase;letter-spacing:.05em}.tree-section-label--follow{margin-top:8px}.tree-checkbox-item{display:flex;align-items:center;gap:8px;padding:3px 12px;font-size:var(--fs-sm);color:#374151;cursor:pointer}.tree-checkbox-item:hover{background:var(--surface-2)}.tree-checkbox-item input{accent-color:#475569}.tree-select-row{display:flex;align-items:center;gap:6px;padding:3px 12px}.tree-select-label,.tree-select-row{font-size:var(--fs-sm);color:#374151}.tree-select-label{font-family:var(--font-sans);font-weight:500;white-space:nowrap}.tree-select{flex:1 1;font-size:var(--fs-sm);font-family:var(--font-sans);color:#1e293b;background:var(--surface-1);border:1px solid var(--border-default);border-radius:4px;padding:2px 6px;outline:none;cursor:pointer;min-width:0}.tree-select:focus{border-color:var(--accent)}.tree-scale-row{display:flex;align-items:center;gap:6px;padding:2px 12px;font-size:var(--fs-2xs);color:#475569}.tree-scale-label{min-width:62px;font-size:var(--fs-2xs);color:#374151}.tree-scale-slider{flex:1 1;height:3px;-webkit-appearance:none;-moz-appearance:none;appearance:none;background:var(--border-default);border-radius:2px;outline:none;cursor:pointer}.tree-scale-slider::-webkit-slider-thumb{-webkit-appearance:none;width:10px;height:10px;border-radius:50%;background:var(--accent);border:1.5px solid var(--surface-1);box-shadow:0 1px 2px rgba(0,0,0,.15);cursor:pointer}.tree-scale-slider::-moz-range-thumb{width:10px;height:10px;border-radius:50%;background:var(--accent);border:1.5px solid var(--surface-1);box-shadow:0 1px 2px rgba(0,0,0,.15);cursor:pointer}.tree-scale-value{min-width:32px;text-align:right;font-feature-settings:"tnum";font-variant-numeric:tabular-nums;font-weight:600;color:var(--accent);font-size:var(--fs-2xs)}.floating-table{z-index:1001;isolation:isolate;resize:none;border-radius:10px;border:1px solid rgba(148,163,184,.5);box-shadow:inset 0 0 0 1px hsla(0,0%,100%,.7),0 24px 60px rgba(15,23,42,.2),0 8px 20px rgba(15,23,42,.1);max-width:calc(100vw - 32px);max-height:calc(100vh - 32px);pointer-events:auto}.floating-table .floating-panel-header{border-radius:10px 10px 0 0;padding:8px 10px;background:var(--surface-1);border-bottom:1px solid var(--border-default)}.floating-table-header-main{display:flex;align-items:center;gap:8px;min-width:0;flex:1 1}.floating-table-header-accent{width:3px;height:17px;border-radius:2px;background:linear-gradient(180deg,#94a3b8,#475569);flex-shrink:0;opacity:.95}.floating-table-header-icon{display:flex;align-items:center;justify-content:center;color:#64748b;flex-shrink:0}.floating-table-header-title{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;letter-spacing:.01em}.floating-table .floating-panel-body{border-radius:0 0 10px 10px;background:var(--surface-1)}.floating-table-body{overflow:auto;padding:0;font-size:var(--fs-sm);color:#374151}.floating-table-body .tables-panel--embedded{min-height:0}.floating-table-body .table-content{padding:10px 12px 12px}.floating-table-body .table-content table{background:var(--surface-1);border-radius:6px;overflow:hidden;box-shadow:0 0 0 1px rgba(226,232,240,.9)}.floating-table-body .table-content th{background:var(--surface-0);font-weight:600;color:#475569;border-bottom:1px solid #e2e8f0}.floating-table-body .table-content td{border-bottom:1px solid #f1f5f9}.table-cell-input{width:100%;min-width:2.5rem;max-width:100%;box-sizing:border-box;padding:2px 4px;margin:0;font:inherit;font-size:var(--fs-sm);color:inherit;border:1px solid transparent;border-radius:2px;background:transparent}.table-cell-input:hover{border-color:var(--border-default);background:var(--surface-1)}.table-cell-input:focus{border-color:var(--accent);background:var(--surface-1);outline:none}.table-cell-select{max-width:100%;padding:2px 4px;font:inherit;font-size:var(--fs-sm);color:inherit;border:1px solid var(--border-default);border-radius:2px;background:var(--surface-1);cursor:pointer}.table-conn-pair{display:flex;align-items:center;flex-wrap:wrap;gap:2px}.table-conn-pair .table-cell-input{width:auto;min-width:3rem;flex:1 1 4rem}.table-conn-sep{color:#94a3b8;flex-shrink:0;font-size:var(--fs-sm)}.table-toolbar{display:flex;align-items:center;gap:6px;padding:4px 0 6px}.table-toolbar-btn{padding:3px 10px;font-size:var(--fs-sm);font-weight:500;color:var(--text-secondary);background:var(--surface-1);border:1px solid var(--border-default);border-radius:4px;cursor:pointer;transition:background .15s}.table-toolbar-btn:hover{background:var(--surface-2,#e2e8f0);color:var(--text-primary)}.table-row-delete-btn{padding:1px 6px;font-size:11px;color:#94a3b8;background:none;border:none;cursor:pointer;border-radius:3px;transition:color .15s,background .15s}.table-row-delete-btn:hover{color:#ef4444;background:#fef2f2}.tables-panel--embedded .table-content{margin-top:0}.table-analysis-stack{display:flex;flex-direction:column;gap:12px}.table-analysis-stack .tree-section-label{margin-bottom:4px}.tree-info-text{padding:6px 12px 8px;color:#94a3b8}.tree-info-text,.tree-kv-list{font-size:var(--fs-sm);line-height:1.35}.tree-kv-list{padding:2px 0 0;color:#374151}.tree-kv-row{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:3px 12px;min-height:22px;box-sizing:border-box;border-bottom:1px solid var(--border-subtle)}.tree-kv-label{flex:1 1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#374151}.tree-kv-value{flex-shrink:0;font-size:var(--fs-sm);font-weight:400;font-feature-settings:"tnum";font-variant-numeric:tabular-nums;color:#475569}.tree-kv-row--status-pass{box-shadow:inset 3px 0 0 0 #bbf7d0}.tree-kv-row--status-warning{box-shadow:inset 3px 0 0 0 #fde68a}.tree-kv-row--status-fail{box-shadow:inset 3px 0 0 0 #fecaca}.tree-action-btn{display:block;width:calc(100% - 24px);margin:6px 12px;padding:5px 10px;font-size:var(--fs-sm);line-height:1.35;border:1px solid var(--border-default);background:var(--surface-1);color:#334155;border-radius:4px;cursor:pointer;font-weight:500;transition:background .12s,border-color .12s}.tree-action-btn:hover{background:var(--surface-2);border-color:var(--border-strong)}.workspace{background:var(--surface-0);position:relative;display:flex;flex-direction:column;min-width:0;min-height:0}.workspace-split{display:grid;grid-gap:0;gap:0;height:100%}.workspace-split.layout-1x1{grid-template-columns:1fr}.workspace-split.layout-1x2{grid-template-columns:1fr 4px 1fr}.workspace-split.layout-2x2{grid-template-columns:1fr 1fr;grid-template-rows:1fr 1fr}.split-handle{width:4px;cursor:col-resize;background:var(--border-default);transition:background .15s}.split-handle:hover{background:var(--accent)}.view-pane{display:flex;flex-direction:column;min-width:0;min-height:0;overflow:hidden;position:relative;border:2px solid var(--border-default,#cbd5e1)}.view-pane--active{border-color:var(--accent,#0f766e);box-shadow:inset 0 0 0 1px var(--accent,#0f766e);z-index:1}.view-caption{height:22px;border-bottom:1px solid var(--border-default);background:var(--surface-1);font-size:var(--fs-sm);padding:0 4px;justify-content:space-between;flex-shrink:0}.view-caption,.view-caption-left{display:flex;align-items:center;gap:4px}.view-caption-left{min-width:0}.caption-select{display:inline-flex;min-width:0;font-family:var(--font-sans)}.caption-select__trigger{display:inline-flex;align-items:center;gap:4px;max-width:100%;border:none;background:transparent;font-family:inherit;font-size:inherit;color:inherit;font-weight:600;cursor:pointer;padding:1px 2px;border-radius:3px;transition:background-color .15s ease,color .15s ease,box-shadow .15s ease}.caption-select__trigger:hover:not(:disabled){background:rgba(15,23,42,.06)}.caption-select__trigger:focus-visible{outline:none;box-shadow:0 0 0 2px #fff,0 0 0 4px #94a3b8}.caption-select__trigger:disabled{opacity:.5;cursor:default}.caption-select__value{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;transition:color .12s ease}.caption-select__caret{flex-shrink:0;width:0;height:0;border-left:3.5px solid transparent;border-right:3.5px solid transparent;border-top:4px solid #64748b;margin-top:1px;opacity:.85;transition:transform .2s cubic-bezier(.2,.9,.2,1),opacity .15s ease}.caption-select__trigger[aria-expanded=true] .caption-select__caret{transform:rotate(180deg)}.caption-select-trigger--view{font-size:var(--fs-sm);color:#374151}.caption-select-trigger--story{font-size:var(--fs-xs);color:#334155}.caption-select__panel{font-family:var(--font-sans);font-size:var(--fs-sm);font-weight:600;color:#1e293b;background:var(--surface-1);border:1px solid var(--border-default);border-radius:6px;box-shadow:0 10px 40px rgba(15,23,42,.12),0 2px 8px rgba(15,23,42,.06);overflow:hidden;animation:caption-select-open .2s cubic-bezier(.2,.9,.2,1) both}.caption-select__panel--above{animation-name:caption-select-open-above}.caption-select__panel-scroll{overflow-y:auto;max-height:inherit;padding:4px}.caption-select__option{display:flex;align-items:center;gap:6px;width:100%;border:none;background:transparent;font:inherit;text-align:left;cursor:pointer;padding:5px 8px;border-radius:4px;color:#334155;transition:background-color .12s ease,color .12s ease}.caption-select__option--highlight:not(.caption-select__option--selected),.caption-select__option:hover{background:var(--surface-2);color:#0f172a}.caption-select__option--selected{background:var(--accent);color:#fff}.caption-select__option--selected.caption-select__option--highlight{background:var(--accent-hover);color:#fff}.caption-select__check{flex-shrink:0;width:1em;font-size:.85em;text-align:center}.caption-select__check--spacer{visibility:hidden}.caption-select__option-label{flex:1 1;min-width:0}@keyframes caption-select-open{0%{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:translateY(0)}}@keyframes caption-select-open-above{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}.caption-select__trigger.caption-select-trigger--statusbar{height:18px;min-height:18px;padding:0 4px 0 8px;border:1px solid var(--border-default);border-radius:3px;background:var(--surface-1);font-size:var(--fs-xs);font-weight:600;color:#374151;max-width:168px}.caption-select__trigger.caption-select-trigger--statusbar:hover:not(:disabled){background:var(--surface-2)}.statusbar-right .caption-select{max-width:168px}@media (prefers-reduced-motion:reduce){.caption-select__caret,.caption-select__option,.caption-select__trigger,.caption-select__value{transition:none}.caption-select__panel{animation:none}}.story-nav{display:flex;align-items:center;gap:2px;margin-left:6px;padding-left:6px;border-left:1px solid var(--border-default);min-width:0}.story-nav .caption-select{flex:1 1;min-width:0;max-width:200px}.story-nav-btn{border:1px solid var(--border-default);background:var(--surface-1);font-size:var(--fs-2xs);width:16px;height:16px;padding:0;cursor:pointer;display:flex;align-items:center;justify-content:center;color:#64748b;border-radius:2px}.story-nav-btn:hover:not(:disabled){background:var(--surface-2);color:#1e293b}.story-nav-btn:disabled{opacity:.35;cursor:default}.story-tabs-sidebar{display:flex;flex-direction:column;gap:1px;background:var(--surface-1);border-left:1px solid var(--border-default);padding:2px;overflow-y:auto;min-width:28px}.story-tab{border:1px solid var(--border-default);background:var(--surface-1);color:#64748b;font-size:var(--fs-2xs);font-weight:600;padding:4px 2px;cursor:pointer;writing-mode:horizontal-tb;text-align:center;border-radius:2px;min-height:22px}.story-tab.active{background:var(--accent);color:#fff;border-color:var(--accent-hover)}.story-tab:hover:not(.active){background:var(--surface-2);color:#1e293b}.viewer3d{flex:1 1;min-height:0;height:100%;background:var(--surface-0)}.editor-statusbar{display:flex;justify-content:space-between;align-items:center;padding:0 6px;height:24px;background:var(--surface-1);border-top:1px solid var(--border-default);color:#4b5563;font-size:var(--fs-xs);flex-shrink:0}.statusbar-left{display:flex;align-items:center;gap:6px}.statusbar-right{display:flex;align-items:center;gap:2px}.statusbar-item{font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.statusbar-divider{color:#d1d5db}.statusbar-sel{color:#d97706;font-weight:600}.statusbar-draw{color:#16a34a;font-weight:600}.statusbar-results{color:var(--accent);font-weight:600}.statusbar-mode{color:#7c3aed;font-weight:600}.statusbar-locked{color:#dc2626;font-weight:700;letter-spacing:.5px;padding:0 6px;background:#fef2f2;border-radius:2px}.statusbar-scope-select{border:1px solid var(--border-default);background:var(--surface-1);color:#374151;padding:0 4px;font-size:var(--fs-xs);cursor:pointer;height:18px;border-radius:2px}.sb-metric{color:#475569}.sb-metric strong{color:#0f172a;font-weight:600}.sb-warn strong{color:#dc2626}.statusbar-btn{border:1px solid var(--border-default);background:var(--surface-1);color:#374151;padding:1px 8px;font-size:var(--fs-xs);cursor:pointer;height:18px;border-radius:2px}.statusbar-btn:hover{background:var(--surface-2)}.statusbar-btn.active{background:var(--accent-surface);border-color:var(--accent)}.statusbar-btn.snap-menu-trigger--statusbar{width:22px;min-width:22px;padding:0;display:inline-flex;align-items:center;justify-content:center}.statusbar-coords{font-feature-settings:"tnum";font-variant-numeric:tabular-nums;padding:0 6px;white-space:nowrap;font-weight:600;color:#374151}.statusbar-anim-dock{display:none}.statusbar-anim{display:flex;align-items:center;gap:6px;flex-wrap:nowrap;justify-content:flex-start;min-width:0}.statusbar-anim-iconbtn{display:flex;align-items:center;justify-content:center;width:18px;height:18px;padding:0;border:1px solid var(--border-default);border-radius:3px;background:var(--surface-1);color:#4b5563;cursor:pointer;flex-shrink:0}.statusbar-anim-iconbtn:hover{background:var(--surface-2);border-color:var(--border-strong);color:#1f2937}.statusbar-anim-iconbtn:focus-visible{outline:2px solid var(--accent);outline-offset:1px}.statusbar-anim-iconbtn[aria-pressed=true]{background:var(--accent-surface);border-color:var(--accent);color:var(--accent)}.statusbar-anim-divider{width:1px;height:12px;background:var(--border-default);flex-shrink:0}.statusbar-anim-label{display:flex;align-items:center;gap:3px;min-width:0;cursor:default}.statusbar-anim-lbltext{font-size:9px;font-weight:600;color:var(--accent);text-transform:uppercase;letter-spacing:.04em;flex-shrink:0}.statusbar-anim-slider{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:56px;height:14px;margin:0;padding:0;background:transparent;cursor:pointer;flex-shrink:0;--anim-track:var(--surface-3,#e2e8f0)}.statusbar-anim-slider:focus{outline:none}.statusbar-anim-slider:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:4px}.statusbar-anim-slider::-webkit-slider-runnable-track{height:3px;border-radius:2px;background:var(--anim-track)}.statusbar-anim-slider::-webkit-slider-thumb{-webkit-appearance:none;appearance:none;width:10px;height:10px;margin-top:-3.5px;border-radius:50%;background:var(--accent);border:1.5px solid var(--surface-1);box-shadow:0 0 0 1px rgba(15,118,110,.25)}.statusbar-anim-slider:hover::-webkit-slider-thumb{background:var(--accent-hover);box-shadow:0 0 0 1px rgba(15,118,110,.4)}.statusbar-anim-slider::-moz-range-track{height:3px;border-radius:2px;background:var(--anim-track)}.statusbar-anim-slider::-moz-range-thumb{width:10px;height:10px;border-radius:50%;background:var(--accent);border:1.5px solid var(--surface-1);box-shadow:0 0 0 1px rgba(15,118,110,.25)}.statusbar-anim-val{font-size:10px;font-feature-settings:"tnum";font-variant-numeric:tabular-nums;color:#374151;min-width:2.2rem;flex-shrink:0;line-height:1.2}.statusbar-anim-mode{display:flex;align-items:center;gap:3px}.statusbar-anim-modecount{min-width:1.75rem;text-align:center}.statusbar-anim-minibtn{width:16px;height:16px;padding:0;font-size:9px;line-height:1;border:1px solid var(--border-default);border-radius:2px;background:var(--surface-1);color:#4b5563;cursor:pointer;flex-shrink:0}.statusbar-anim-minibtn:hover:not(:disabled){background:var(--surface-2);color:#1f2937}.statusbar-anim-minibtn:disabled{opacity:.3;cursor:not-allowed}.floating-panel{position:fixed;z-index:500;border:1px solid var(--border-strong);border-radius:4px;box-shadow:0 6px 24px rgba(0,0,0,.18);flex-direction:column;overflow:hidden;resize:both;min-width:240px;min-height:150px}.floating-panel,.floating-panel-header{background:var(--surface-1);display:flex}.floating-panel-header{align-items:center;justify-content:space-between;padding:4px 8px;border-bottom:1px solid var(--border-default);font-size:var(--fs-sm);font-weight:600;color:#374151;cursor:move;-webkit-user-select:none;-moz-user-select:none;user-select:none;flex-shrink:0}.floating-panel-close{border:none;background:none;color:#94a3b8;font-size:var(--fs-base);cursor:pointer;padding:0 2px;line-height:1}.floating-panel-close:hover{color:#ef4444}.floating-panel-body{flex:1 1;overflow-y:auto}.properties-panel{font-size:var(--fs-sm);color:#374151}.prop-title{font-weight:600;font-size:var(--fs-sm);padding:6px 8px;background:var(--surface-1);border-bottom:1px solid var(--border-default);color:#1e293b}.prop-section{border-bottom:1px solid var(--border-subtle)}.prop-section-header{display:flex;align-items:center;gap:4px;width:100%;padding:4px 8px;border:none;background:var(--surface-1);font-size:var(--fs-sm);font-weight:600;color:#475569;cursor:pointer;text-align:left}.prop-section-header:hover{background:var(--surface-2)}.prop-chevron{font-size:var(--fs-2xs);width:10px;color:#94a3b8}.prop-section-body{padding:2px 0}.prop-row{display:flex;align-items:center;justify-content:space-between;padding:2px 8px 2px 16px;min-height:22px}.prop-row:hover{background:var(--surface-2)}.prop-label{color:#64748b;white-space:nowrap;flex-shrink:0;margin-right:8px}.prop-value{font-feature-settings:"tnum";font-variant-numeric:tabular-nums;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.prop-input,.prop-value{text-align:right;color:#1e293b}.prop-input{width:80px;padding:1px 4px;border:1px solid var(--border-default);border-radius:2px;font-size:var(--fs-sm);background:var(--surface-1)}.prop-input:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 1px var(--accent)}.prop-select{width:100px;padding:1px 4px;border:1px solid var(--border-default);border-radius:2px;font-size:var(--fs-xs);background:var(--surface-1);color:#1e293b}.prop-select:focus{outline:none;border-color:var(--accent)}.prop-sub-header{font-size:var(--fs-xs);font-weight:600;color:#94a3b8;padding:3px 8px 1px 12px;text-transform:uppercase;letter-spacing:.5px}.prop-muted{color:#94a3b8;padding:4px 16px}.prop-empty{color:#94a3b8;text-align:center;padding:24px 8px}.tooltip-popup{position:fixed;transform:translateX(-50%);z-index:9999;background:#1e222a;color:#e2e8f0;font-size:var(--fs-sm);padding:4px 8px;border-radius:4px;white-space:nowrap;pointer-events:none;box-shadow:0 2px 8px rgba(0,0,0,.3);display:flex;gap:8px;align-items:center;animation:tooltip-fade .15s ease-out}.tooltip-shortcut{color:#94a3b8;font-size:var(--fs-xs);border-left:1px solid #374151;padding-left:6px}@keyframes tooltip-fade{0%{opacity:0;transform:translateX(-50%) translateY(-2px)}to{opacity:1;transform:translateX(-50%) translateY(0)}}.context-menu{background:var(--surface-1);border:1px solid var(--border-default);border-radius:6px;box-shadow:0 4px 16px rgba(0,0,0,.15);min-width:180px;padding:4px 0}.context-menu-item{display:flex;align-items:center;justify-content:space-between;width:100%;padding:4px 12px;border:none;background:none;font-size:var(--fs-sm);color:#374151;cursor:pointer;text-align:left}.context-menu-item:hover:not(:disabled){background:var(--accent-surface);color:var(--accent-hover)}.context-menu-item:disabled{color:#9ca3af;cursor:default}.context-menu-label{flex:1 1}.context-menu-shortcut{color:#9ca3af;font-size:var(--fs-xs);margin-left:16px}.context-menu-divider{height:1px;background:#e5e7eb;margin:3px 0}.context-menu-arrow{color:#9ca3af;font-size:8px;margin-left:8px;flex-shrink:0}.context-menu-item--active{background:var(--accent-surface);color:var(--accent-hover)}.hover-info{position:absolute;z-index:100;background:hsla(0,0%,100%,.94);color:#374151;font-size:var(--fs-xs);padding:4px 8px;border-radius:4px;border:1px solid #d1d5db;pointer-events:none;white-space:nowrap;box-shadow:0 2px 6px rgba(0,0,0,.1);font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.dialog-overlay{position:fixed;inset:0;z-index:12000;display:flex;align-items:flex-start;justify-content:center;padding-top:min(8vh,64px);background:rgba(15,23,42,.45);backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);animation:dialog-overlay-in .15s ease-out}@keyframes dialog-overlay-in{0%{opacity:0}to{opacity:1}}@keyframes dialog-box-in{0%{opacity:0;transform:translateY(-8px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}.dialog-box{background:var(--surface-1);border:1px solid var(--border-default);border-radius:10px;box-shadow:0 0 0 1px rgba(0,0,0,.03),0 4px 12px rgba(0,0,0,.08),0 16px 48px rgba(0,0,0,.16);display:flex;flex-direction:column;max-height:80vh;outline:none;animation:dialog-box-in .18s ease-out}.dialog-header{display:flex;align-items:center;justify-content:space-between;padding:14px 20px;background:var(--surface-0);border-bottom:1px solid var(--border-subtle);border-radius:10px 10px 0 0}.dialog-title{font-size:var(--fs-md);font-weight:600;color:#0f172a;letter-spacing:-.01em}.dialog-close{display:flex;align-items:center;justify-content:center;width:28px;height:28px;background:none;border:1px solid transparent;border-radius:6px;color:#94a3b8;font-size:16px;cursor:pointer;transition:all .12s ease}.dialog-close:hover{background:#fee2e2;border-color:#fecaca;color:#dc2626}.dialog-body{flex:1 1;overflow-y:auto;padding:20px;font-size:var(--fs-base);color:#374151;line-height:1.5}.dialog-body::-webkit-scrollbar{width:5px}.dialog-body::-webkit-scrollbar-track{background:transparent}.dialog-body::-webkit-scrollbar-thumb{background:#cbd5e1;border-radius:4px}.dialog-body::-webkit-scrollbar-thumb:hover{background:#94a3b8}.dialog-footer{display:flex;justify-content:flex-end;gap:8px;padding:14px 20px;border-top:1px solid var(--border-subtle);background:var(--surface-0);border-radius:0 0 10px 10px}.dialog-btn{padding:7px 20px;border-radius:6px;border:1px solid #d1d5db;font-size:var(--fs-base);cursor:pointer;font-weight:500;transition:all .12s ease}.dialog-btn-cancel{background:var(--surface-1);color:#64748b;border-color:var(--border-default)}.dialog-btn-cancel:hover{background:var(--surface-2);color:#374151;border-color:#94a3b8}.dialog-btn-ok{background:var(--accent);color:#fff;border-color:var(--accent-hover);box-shadow:0 1px 3px rgba(15,118,110,.25)}.dialog-btn-ok:hover{background:var(--accent-hover);box-shadow:0 2px 6px rgba(15,118,110,.35)}.info-dialog{display:grid;grid-gap:16px;gap:16px}.info-dialog-summary{margin:0;font-size:13px;line-height:1.55;color:#475569}.info-dialog-list{margin:0;padding:0;list-style:none;display:grid;grid-gap:2px;gap:2px}.info-dialog-list li{display:flex;align-items:baseline;gap:10px;padding:7px 12px;font-size:12.5px;line-height:1.45;color:#334155;border-radius:6px;background:var(--surface-0);border:1px solid var(--border-subtle)}.info-dialog-list li:before{content:"";flex-shrink:0;width:6px;height:6px;border-radius:50%;background:var(--accent);margin-top:4px}.info-dialog-list li:hover{background:#f0fdfa;border-color:#99f6e4}.form-field{display:flex;flex-direction:column;gap:4px;margin-bottom:10px}.form-field-inline{flex-direction:row;align-items:center;gap:8px}.form-label{font-size:var(--fs-sm);color:#64748b;font-weight:500}.form-input,.form-select{background:var(--surface-1);border:1px solid var(--border-default);border-radius:4px;padding:6px 10px;font-size:var(--fs-base);color:#1e293b;outline:none}.form-input:focus,.form-select:focus{border-color:var(--accent);box-shadow:0 0 0 2px rgba(51,65,85,.12)}.form-input-group{display:flex;align-items:center;gap:6px}.form-unit{font-size:var(--fs-sm);color:#94a3b8}.form-fieldset{border:1px solid var(--border-subtle);border-radius:6px;padding:10px 14px}.form-fieldset legend{font-size:var(--fs-sm);color:#64748b;padding:0 4px;font-weight:500}.form-radio-option{display:flex;align-items:center;gap:6px;font-size:var(--fs-base);color:#374151;margin:4px 0}.form-table-wrapper{overflow:auto;max-height:260px;border:1px solid var(--border-subtle);border-radius:4px}.form-table{width:100%;border-collapse:collapse;font-size:var(--fs-sm)}.form-table th{background:var(--surface-0);color:#64748b;font-weight:600;text-align:left;padding:6px 10px;border-bottom:1px solid #e2e8f0;position:-webkit-sticky;position:sticky;top:0}.form-table td{padding:5px 10px;border-bottom:1px solid #f1f5f9;color:#374151}.form-table tr:hover{background:var(--surface-2)}.form-table tr.selected{background:#dbeafe}.dialog-form-row{display:flex;gap:12px}.dialog-form-row>.form-field{flex:1 1}.dialog-section-title{font-size:var(--fs-base);font-weight:600;color:#475569;margin:14px 0 8px;border-bottom:1px solid var(--border-subtle);padding-bottom:5px}.dialog-box:has(.analysis-dialog){border-color:#e2e8f0;box-shadow:0 20px 60px rgba(0,0,0,.12),0 4px 16px rgba(0,0,0,.06);border-radius:12px;max-height:85vh}.dialog-box:has(.analysis-dialog) .dialog-header{background:#fff;border-bottom:1px solid #f1f5f9;border-radius:12px 12px 0 0;padding:12px 16px}.dialog-box:has(.analysis-dialog) .dialog-title{font-size:14px;font-weight:700;color:#1e293b;letter-spacing:-.02em}.dialog-box:has(.analysis-dialog) .dialog-close{color:#94a3b8}.dialog-box:has(.analysis-dialog) .dialog-close:hover{color:#334155}.dialog-box:has(.analysis-dialog) .dialog-body{padding:0;overflow:hidden}@keyframes analysis-pulse{0%,to{opacity:1}50%{opacity:.3}}.wizard-root{display:flex;flex-direction:column;height:100%;min-height:420px}.wizard-steps{display:flex;gap:2px;padding:0 12px 10px;border-bottom:1px solid #e2e8f0}.wizard-step-btn{flex:1 1;display:flex;align-items:center;gap:6px;padding:8px 10px;background:transparent;color:#6b7280;font-size:var(--fs-sm);cursor:pointer;border:none;border-bottom:2px solid transparent;transition:all .15s}.wizard-step-btn.active{color:var(--accent);border-bottom-color:var(--accent)}.wizard-step-btn.done{color:#22c55e}.wizard-step-num{width:20px;height:20px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;font-size:var(--fs-xs);font-weight:600;background:#e2e8f0;color:#64748b;flex-shrink:0}.wizard-step-btn.active .wizard-step-num{background:#475569;color:#fff}.wizard-step-btn.done .wizard-step-num{background:#22c55e;color:#fff;font-size:var(--fs-2xs)}.wizard-step-label{white-space:nowrap}.wizard-body{flex:1 1;overflow-y:auto;padding:16px}.wizard-section-title{font-size:var(--fs-md);font-weight:600;color:#1e293b;margin:0 0 14px}.wizard-template-grid--scroll{max-height:min(44vh,380px);overflow-y:auto;padding-right:4px}.wizard-template-grid{display:grid;grid-template-columns:1fr 1fr;grid-gap:10px;gap:10px}.wizard-template-card{display:flex;flex-direction:column;align-items:center;gap:6px;padding:14px 10px;background:var(--surface-1);border:2px solid var(--border-subtle);border-radius:8px;cursor:pointer;transition:all .15s;color:#64748b;text-align:center}.wizard-template-card:hover{border-color:var(--border-strong);background:var(--surface-2)}.wizard-template-card.selected{border-color:var(--accent);background:var(--accent-surface);color:#1e293b}.wizard-template-icon{color:#5eead4}.wizard-template-card.selected .wizard-template-icon{color:var(--accent)}.wizard-template-name{font-size:var(--fs-base);font-weight:600;color:#374151}.wizard-template-desc{font-size:var(--fs-xs);color:#94a3b8;line-height:1.3}.wizard-template-card.selected .wizard-template-desc{color:var(--accent)}.generate-model-dialog{display:flex;flex-direction:column;gap:14px}.generate-model-hint{margin:0;font-size:var(--fs-base);color:#64748b;line-height:1.45}.generate-model-grid{max-height:min(52vh,420px);overflow-y:auto;padding-right:4px}.generate-model-actions{display:flex;justify-content:flex-end;gap:10px;padding-top:4px;border-top:1px solid var(--border-subtle);margin-top:4px}.wizard-units-list{display:flex;flex-direction:column;gap:6px}.wizard-unit-option{display:flex;align-items:center;gap:10px;padding:10px 14px;background:var(--surface-1);border:2px solid var(--border-subtle);border-radius:6px;cursor:pointer;font-size:var(--fs-base);color:#374151;transition:all .15s}.wizard-unit-option:hover{border-color:#94a3b8}.wizard-unit-option.selected{border-color:var(--accent);background:var(--accent-surface)}.wizard-unit-option input[type=radio]{accent-color:#475569}.wizard-grid-row{display:flex;gap:20px;align-items:flex-start}.wizard-grid-form{flex:1 1;gap:10px}.wizard-field,.wizard-grid-form{display:flex;flex-direction:column}.wizard-field{gap:3px}.wizard-field label{font-size:var(--fs-sm);color:#64748b;font-weight:500}.wizard-field input{padding:6px 10px;border:1px solid var(--border-default);border-radius:4px;background:var(--surface-1);color:#1e293b;font-size:var(--fs-base);width:100%}.wizard-field input:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 2px rgba(51,65,85,.12)}.wizard-preview-box{flex-shrink:0;background:var(--surface-1);border:1px solid var(--border-subtle);border-radius:6px;padding:8px;display:flex;align-items:center;justify-content:center}.wizard-grid-preview,.wizard-story-preview{display:block}.wizard-summary{display:flex;flex-direction:column;gap:8px}.wizard-summary-row{display:flex;justify-content:space-between;padding:8px 12px;background:var(--surface-1);border:1px solid var(--border-subtle);border-radius:6px;font-size:var(--fs-base);color:#64748b}.wizard-summary-row strong{color:#1e293b}.wizard-footer{display:flex;justify-content:space-between;padding:10px 14px;border-top:1px solid var(--border-subtle);background:var(--surface-0)}.wizard-footer-right{display:flex;gap:8px}.wizard-btn{padding:6px 18px;border-radius:5px;border:1px solid var(--border-default);background:var(--surface-1);color:#374151;font-size:var(--fs-base);font-weight:500;cursor:pointer;transition:all .12s}.wizard-btn:hover{background:var(--surface-2)}.wizard-btn.primary{background:var(--accent);border-color:var(--accent);color:#fff}.wizard-btn.primary:hover{background:var(--accent-hover)}.wizard-btn.cancel{background:transparent;border-color:transparent;color:#94a3b8}.wizard-btn.cancel:hover{color:#374151}.dialog-body:has(.tg-root){padding:0;overflow:hidden;display:flex;flex-direction:column}.tg-root{display:flex;flex:1 1;min-height:0;gap:0;font-size:var(--fs-base)}.tg-catalog{width:320px;min-width:320px;display:flex;flex-direction:column;border-right:1px solid var(--border-default);background:var(--surface-0)}.tg-catalog-header{display:flex;justify-content:space-between;align-items:center;padding:12px 14px;border-bottom:1px solid var(--border-subtle)}.tg-catalog-title{font-size:var(--fs-md);font-weight:600;color:#1e293b}.tg-catalog-count{font-size:var(--fs-xs);color:#94a3b8}.tg-catalog-list{flex:1 1;overflow-y:auto;padding:8px;display:flex;flex-direction:column;gap:4px}.tg-card{display:flex;align-items:flex-start;gap:10px;padding:10px;border:2px solid transparent;border-radius:8px;background:transparent;cursor:pointer;text-align:left;transition:all .15s;width:100%;font-family:inherit}.tg-card:hover{background:var(--surface-2);border-color:var(--border-subtle)}.tg-card.selected{background:var(--accent-surface);border-color:var(--accent)}.tg-card-icon{flex-shrink:0;width:72px;height:52px;display:flex;align-items:center;justify-content:center;border-radius:6px;background:#fff;border:1px solid var(--border-subtle);overflow:hidden}.tg-card.selected .tg-card-icon{border-color:var(--accent);background:#fff}.tg-card-info{flex:1 1;min-width:0;display:flex;flex-direction:column;gap:2px}.tg-card-name{font-size:var(--fs-sm);font-weight:600;color:#374151;line-height:1.3}.tg-card.selected .tg-card-name{color:var(--accent-hover)}.tg-card-desc{font-size:var(--fs-xs);color:#94a3b8;line-height:1.3;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.tg-mat-badge{display:inline-flex;align-items:center;padding:1px 6px;font-size:9px;font-weight:600;text-transform:uppercase;letter-spacing:.5px;border-radius:3px;border:1px solid;border-opacity:.3;width:-moz-fit-content;width:fit-content;margin-top:2px}.tg-right{flex:1 1;display:flex;flex-direction:column;min-width:0;min-height:0;overflow:hidden}.tg-selected-header{display:flex;justify-content:space-between;align-items:flex-start;padding:12px 16px;border-bottom:1px solid var(--border-subtle);background:var(--surface-1)}.tg-selected-name{font-size:var(--fs-md);font-weight:700;color:#1e293b}.tg-selected-desc{font-size:var(--fs-xs);color:#64748b;margin-top:2px}.tg-config{display:flex;gap:16px;padding:10px 16px;border-bottom:1px solid var(--border-subtle);background:var(--surface-1)}.tg-config-section{flex:1 1}.tg-config-label{font-size:var(--fs-xs);font-weight:600;color:#475569;text-transform:uppercase;letter-spacing:.5px;margin-bottom:6px}.tg-config-row{display:flex;gap:8px}.tg-field{display:flex;flex-direction:column;gap:2px;flex:1 1}.tg-field label{font-size:var(--fs-2xs);color:#94a3b8;white-space:nowrap}.tg-field input{padding:4px 6px;font-size:var(--fs-sm);border:1px solid var(--border-default);border-radius:4px;background:#fff;width:100%;text-align:center}.tg-field input:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 2px rgba(15,118,110,.1)}.tg-stats{display:flex;align-items:center;gap:8px;padding:6px 16px;background:#f8fafc;border-bottom:1px solid var(--border-subtle);font-size:var(--fs-xs);color:#64748b}.tg-stat strong{color:#1e293b;font-weight:600}.tg-stat-sep{width:1px;height:12px;background:var(--border-default)}.tg-preview{flex:1 1;display:flex;flex-direction:column;gap:4px;padding:8px 12px;overflow-y:auto;background:var(--surface-0);min-height:0}.tg-preview-plan{flex:1.5 1;min-height:0}.tg-preview-elev{flex:1 1;min-height:0}.tg-elev-svg,.tg-plan-svg{width:100%;height:100%;display:block}.tg-footer{display:flex;justify-content:flex-end;gap:8px;padding:10px 16px;border-top:1px solid var(--border-default);background:var(--surface-1);flex-shrink:0}.tg-btn{padding:7px 24px;font-size:var(--fs-sm);font-weight:500;border-radius:6px;border:1px solid var(--border-default);background:#fff;color:#374151;cursor:pointer;transition:all .15s}.tg-btn:hover{background:var(--surface-2);border-color:var(--border-strong)}.tg-btn.primary{background:var(--accent);border-color:var(--accent);color:#fff;font-weight:600}.tg-btn.primary:hover{background:var(--accent-hover)}.sidebar-section{background:var(--surface-1);border:1px solid var(--border-default);padding:.55rem;border-radius:4px;margin-bottom:.65rem}.control-panel h3,.sidebar-section h3,.tables-panel h3{margin:0 0 .75rem;font-size:var(--fs-md);color:#374151}.table-content table{width:100%;font-size:var(--fs-sm);border-collapse:collapse}.table-content td,.table-content th{padding:.35rem .5rem;text-align:left;border-bottom:1px solid #e5e7eb}.table-content th{color:#64748b;font-weight:500}.table-content{margin-top:1rem}.summary-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-gap:.45rem;gap:.45rem;margin-bottom:.85rem}.summary-card{padding:.55rem;background:var(--surface-1);border:1px solid var(--border-default);border-radius:4px;display:flex;flex-direction:column;gap:.2rem}.summary-card .label{color:#64748b;font-size:var(--fs-sm)}.summary-card strong{color:#1e293b;font-size:var(--fs-lg)}.model-toolbar{display:flex;flex-wrap:wrap;gap:.25rem;padding:.5rem;background:linear-gradient(180deg,#3a4049,#2f353e);border-bottom:1px solid #1d2026}.model-toolbar button{padding:.5rem 1rem;font-size:var(--fs-base);background:#262a31;border:1px solid #1b1e24;color:#d4d8df;cursor:pointer;border-radius:3px}.model-toolbar button.active{background:#546479;color:#fff}.model-toolbar .sample-btn{margin-left:auto;background:#84cc16;color:#111827}.workspace-column{flex-direction:column;flex:1 1}.workspace-column,.workspace-middle{display:flex;min-height:0;min-width:0}.workspace-middle{flex-direction:row;flex:1 1}.workspace-middle>.workspace-split{flex:1 1;min-width:0}.dock-panel{display:flex;flex-direction:column;background:var(--surface-1,#fff);border:1px solid var(--border,rgba(0,0,0,.1));font-family:system-ui,-apple-system,sans-serif;font-size:12px;color:var(--text-1,#1e293b);z-index:10}.dock-panel--float{position:fixed;border-radius:8px;box-shadow:0 8px 32px rgba(0,0,0,.18),0 2px 8px rgba(0,0,0,.08);z-index:900;min-width:320px;min-height:180px}.dock-panel--docked{position:relative;border-radius:0;box-shadow:none;flex-shrink:0}.dock-panel--bottom{border:none;border-top:2px solid var(--accent,#3b82f6)}.dock-panel--top{border:none;border-bottom:2px solid var(--accent,#3b82f6)}.dock-panel--left{border:none;border-right:2px solid var(--accent,#3b82f6)}.dock-panel--right{border:none;border-left:2px solid var(--accent,#3b82f6)}.dock-panel-header{display:flex;align-items:center;justify-content:space-between;padding:4px 10px;background:var(--surface-2,#f8fafc);border-bottom:1px solid var(--border,rgba(0,0,0,.06));cursor:-webkit-grab;cursor:grab;-webkit-user-select:none;-moz-user-select:none;user-select:none;flex-shrink:0;min-height:28px}.dock-panel-header:active{cursor:-webkit-grabbing;cursor:grabbing}.dock-panel-title{font-weight:600;font-size:11px;letter-spacing:.02em;color:var(--text-2,#475569)}.dock-panel-close{width:20px;height:20px;border:none;border-radius:4px;background:transparent;cursor:pointer;font-size:11px;color:var(--text-3,#94a3b8);display:flex;align-items:center;justify-content:center;transition:background .15s,color .15s}.dock-panel-close:hover{background:rgba(0,0,0,.08);color:var(--text-1,#1e293b)}.dock-panel-body{flex:1 1;overflow:auto;min-height:0}.dock-panel-body .table-content td,.dock-panel-body .table-content th{white-space:nowrap;min-width:80px;padding:4px 10px}.dock-panel-body .table-cell-input{min-width:60px}.dock-resize-handle{position:absolute;z-index:11;background:transparent;transition:background .15s}.dock-resize-handle:hover{background:var(--accent,#3b82f6);opacity:.4}.dock-resize-handle--top{top:0;left:0;right:0;height:4px;cursor:ns-resize}.dock-resize-handle--bottom{bottom:0;left:0;right:0;height:4px;cursor:ns-resize}.dock-resize-handle--left{left:0;top:0;bottom:0;width:4px;cursor:ew-resize}.dock-resize-handle--right{right:0;top:0;bottom:0;width:4px;cursor:ew-resize}.dock-zone-overlay{position:fixed;inset:0;z-index:9999;pointer-events:none}.dock-zone{position:absolute;transition:background .15s,opacity .15s;opacity:0}.dock-zone--top{top:0;left:0;right:0;height:40px}.dock-zone--bottom{bottom:0;left:0;right:0;height:40px}.dock-zone--left{top:0;left:0;bottom:0;width:40px}.dock-zone--right{top:0;right:0;bottom:0;width:40px}.dock-zone--active{opacity:1;background:rgba(59,130,246,.18);border:2px solid rgba(59,130,246,.5)}.dock-zone--active.dock-zone--top{border-top:none;border-left:none;border-right:none}.dock-zone--active.dock-zone--bottom{border-bottom:none;border-left:none;border-right:none}.dock-zone--active.dock-zone--left{border-left:none;border-top:none;border-bottom:none}.dock-zone--active.dock-zone--right{border-right:none;border-top:none;border-bottom:none}@media (max-width:900px){.editor-layout:not(.arch-layout){grid-template-columns:34px 1fr!important}.editor-layout:not(.arch-layout) .nav-resize-handle,.editor-layout:not(.arch-layout) .navigator-panel:not(.floating):not(.docked){display:none}}.oi-panel-wrapper{position:fixed;inset:0;z-index:11000}.oi-panel{position:absolute;background:var(--surface-1);border:1px solid var(--border-default);border-radius:10px;box-shadow:0 8px 32px rgba(0,0,0,.12),0 2px 8px rgba(0,0,0,.06);display:flex;flex-direction:column;max-height:calc(100vh - 100px);overflow:hidden;font-size:var(--fs-base)}.oi-panel-header{display:flex;align-items:center;justify-content:space-between;padding:10px 14px;background:linear-gradient(to bottom,var(--surface-1),var(--surface-0));border-bottom:1px solid var(--border-subtle);border-radius:10px 10px 0 0;cursor:-webkit-grab;cursor:grab;-webkit-user-select:none;-moz-user-select:none;user-select:none}.oi-panel-header:active{cursor:-webkit-grabbing;cursor:grabbing}.oi-panel-header-left{display:flex;align-items:center;gap:8px;font-size:var(--fs-md);font-weight:600;color:#1e293b}.oi-panel-icon{color:var(--accent)}.oi-panel-close{background:none;border:none;color:#94a3b8;cursor:pointer;padding:4px;border-radius:4px;display:flex;align-items:center;justify-content:center;transition:all .15s}.oi-panel-close:hover{background:#fee2e2;color:#ef4444}.oi-scroll-area{overflow-y:auto;padding:10px;display:flex;flex-direction:column;gap:10px;max-height:calc(100vh - 180px)}.oi-scroll-area::-webkit-scrollbar{width:5px}.oi-scroll-area::-webkit-scrollbar-thumb{background:#cbd5e1;border-radius:3px}.oi-multi-badge{font-size:var(--fs-xs);font-weight:600;color:#64748b;text-transform:uppercase;letter-spacing:.04em;padding:4px 0;text-align:center}.oi-object-card{background:var(--surface-1);border:1px solid var(--border-subtle);border-radius:8px;overflow:hidden}.oi-card-header{display:flex;align-items:center;gap:10px;padding:10px 12px;background:var(--surface-0);border-bottom:1px solid var(--border-subtle)}.oi-card-type-badge{font-size:var(--fs-2xs);font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:#fff;padding:2px 8px;border-radius:4px;background:#64748b}.oi-badge--node{background:#0ea5e9}.oi-card-id{font-size:var(--fs-sm);font-weight:500;color:#475569;font-family:ui-monospace,SF Mono,Cascadia Code,monospace;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.oi-section-header{display:flex;align-items:center;gap:6px;padding:7px 12px 4px;border-top:1px solid var(--border-subtle)}.oi-object-card>.oi-section-header:first-of-type{border-top:none}.oi-section-icon{width:18px;height:18px;display:flex;align-items:center;justify-content:center;font-size:10px;border-radius:4px;background:var(--surface-2);color:#64748b}.oi-section-title{font-size:var(--fs-xs);font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:#94a3b8}.oi-prop-group{padding:2px 12px 8px}.oi-prop-row{display:flex;align-items:center;justify-content:space-between;padding:4px 0;min-height:28px;border-bottom:1px solid #f1f5f9}.oi-prop-row:last-child{border-bottom:none}.oi-prop-label{font-size:var(--fs-sm);color:#64748b;font-weight:500;display:flex;align-items:center;gap:5px;white-space:nowrap}.oi-badge{font-size:9px;font-weight:600;color:#94a3b8;background:var(--surface-2);padding:1px 4px;border-radius:3px}.oi-cell-value{font-size:var(--fs-sm);color:#1e293b;font-weight:500;text-align:right;max-width:200px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.oi-cell-readonly{color:#64748b}.oi-cell-editable{display:inline-flex;align-items:center;gap:4px;padding:2px 6px;border-radius:4px;cursor:pointer;transition:all .15s}.oi-cell-editable:hover{background:var(--accent-surface);color:var(--accent)}.oi-edit-icon{opacity:0;color:var(--accent);transition:opacity .15s;flex-shrink:0}.oi-cell-editable:hover .oi-edit-icon{opacity:.7}.oi-cell-input{font-size:var(--fs-sm);font-family:inherit;padding:2px 6px;border:1px solid var(--accent);border-radius:4px;outline:none;background:var(--accent-surface);color:#1e293b;text-align:right;width:140px;box-shadow:0 0 0 2px rgba(15,118,110,.12)}.oi-cell-input:focus{border-color:var(--accent)}select.oi-cell-input{text-align:left;cursor:pointer;width:160px}.oi-dof-grid{display:flex;gap:4px;padding:4px 0}.oi-dof-grid--compact{padding:0}.oi-dof-btn{font-size:10px;font-weight:700;font-family:ui-monospace,SF Mono,monospace;padding:3px 6px;border:1px solid var(--border-default);border-radius:4px;background:var(--surface-1);color:#94a3b8;cursor:pointer;transition:all .12s;line-height:1}.oi-dof-btn:hover{border-color:var(--accent);color:var(--accent)}.oi-dof-btn--active{background:var(--accent);border-color:var(--accent);color:#fff}.oi-dof-btn--active:hover{background:var(--accent-hover);color:#fff}.oi-dof-btn--small{padding:2px 5px;font-size:9px}.oi-dof-btn--released{background:#fef3c7;border-color:#f59e0b;color:#92400e}.oi-dof-btn--released:hover{background:#fde68a}.oi-dof-summary{font-size:var(--fs-xs);color:#94a3b8;padding:2px 0 0}.oi-release-row{display:flex;align-items:center;gap:8px;padding:4px 0}.oi-release-label{font-size:var(--fs-xs);color:#64748b;font-weight:500;width:44px;flex-shrink:0}.oi-load-tag{font-size:var(--fs-xs);color:#dc2626;background:#fef2f2;border:1px solid #fecaca;border-radius:4px;padding:3px 8px;margin-bottom:3px;font-family:ui-monospace,SF Mono,monospace}.oi-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:32px 16px;gap:6px;color:#94a3b8}.oi-empty p{margin:0;font-size:var(--fs-base);font-weight:500;color:#64748b}.oi-empty span{font-size:var(--fs-xs)}.shadow-time-slider{width:100%;height:4px;-webkit-appearance:none;-moz-appearance:none;appearance:none;background:linear-gradient(90deg,#1e293b,#f59e0b 25%,#f8fafc 50%,#f59e0b 75%,#1e293b);border-radius:2px;outline:none;cursor:pointer}.shadow-time-slider::-webkit-slider-thumb{-webkit-appearance:none;appearance:none;width:12px;height:12px;border-radius:50%;background:var(--accent,#0f766e);border:2px solid #fff;box-shadow:0 1px 4px rgba(0,0,0,.25);cursor:pointer}.shadow-time-slider::-moz-range-thumb{width:12px;height:12px;border-radius:50%;background:var(--accent,#0f766e);border:2px solid #fff;box-shadow:0 1px 4px rgba(0,0,0,.25);cursor:pointer}