:root{--color-bg: #ffffff;--color-surface: #f5f5f5;--color-border: #d0d0d0;--color-text: #1a1a1a;--color-text-muted: #666666;--color-accent: #0066cc;--color-danger: #d32f2f;--color-badge-preset-bg: #e3f2fd;--color-badge-preset-text: #1565c0;--color-badge-migration-bg: #fff3e0;--color-badge-migration-text: #e65100;--color-layer-strategy: #F5DEAA;--color-layer-business: #FFFFAF;--color-layer-application: #AFFFFF;--color-layer-technology: #AFFFAF;--color-layer-physical: #AFFFAF;--color-layer-motivation: #CCCCFF;--color-layer-implementation: #FFE0E0;--color-layer-other: #FFFFFF;--color-v4-common: #E5DFD3;--color-v4-motivation: #D1BADC;--color-v4-strategy: #EFBD5D;--color-v4-business: #EDD779;--color-v4-application: #B0D0D9;--color-v4-technology: #BCD9AE;--color-v4-implementation: #F1BBB7;--color-canvas-valid: #2e7d32;--color-canvas-invalid: #c62828;--color-canvas-drop-target: #1565c0;--color-canvas-grid: #e8e8e8;--color-canvas-grid-accent: #d0d0d0;--color-canvas-guide: #1565c0;--color-canvas-selection: var(--color-accent);--panel-width-nav: 240px;--panel-width-props: 280px;--console-height: 200px;--menubar-height: 36px}[data-theme=dark]{--color-bg: #1e1e1e;--color-surface: #252526;--color-border: #3c3c3c;--color-text: #d4d4d4;--color-text-muted: #9e9e9e;--color-accent: #4fc3f7;--color-danger: #ef5350;--color-badge-preset-bg: #1a3a5c;--color-badge-preset-text: #90caf9;--color-badge-migration-bg: #3d2600;--color-badge-migration-text: #ffb74d;--color-layer-strategy: #8B7340;--color-layer-business: #8B8B3D;--color-layer-application: #3D8B8B;--color-layer-technology: #4E7A3E;--color-layer-physical: #4E7A3E;--color-layer-motivation: #5C5C99;--color-layer-implementation: #8B5C5C;--color-layer-other: #3C3C3C;--color-v4-common: #5C5550;--color-v4-motivation: #5C4F7A;--color-v4-strategy: #8B6530;--color-v4-business: #8B8B3D;--color-v4-application: #3D8B8B;--color-v4-technology: #4E7A3E;--color-v4-implementation: #8B4545;--color-canvas-valid: #66bb6a;--color-canvas-invalid: #ef5350;--color-canvas-drop-target: #42a5f5;--color-canvas-grid: #2a2a2a;--color-canvas-grid-accent: #3a3a3a;--color-canvas-guide: #42a5f5;--color-canvas-selection: var(--color-accent)}*{box-sizing:border-box;margin:0;padding:0}body{font-family:system-ui,sans-serif;font-size:13px;background:var(--color-bg);color:var(--color-text);height:100vh;overflow:hidden}.app-shell{display:flex;flex-direction:column;height:100vh}.app-body{display:flex;flex:1;overflow:hidden}.app-canvas{flex:1;overflow:hidden;background:var(--color-bg)}.menubar{display:flex;align-items:center;gap:4px;height:var(--menubar-height);padding:0 8px;background:var(--color-surface);border-bottom:1px solid var(--color-border);flex-shrink:0}.menubar button{background:none;border:none;color:var(--color-text);cursor:pointer;padding:4px 8px;border-radius:3px}.menubar button:hover{background:var(--color-border)}.menubar button:disabled{opacity:.4;cursor:default}.menubar-spacer{flex:1}.menubar-model-name{font-size:12px;color:var(--color-text-muted)}.dirty-indicator{color:var(--color-accent);margin-right:4px}.menubar-dropdown-wrapper{position:relative}.menubar-trigger{background:none;border:none;color:var(--color-text);cursor:pointer;padding:4px 8px;border-radius:3px;font-size:13px}.menubar-trigger:hover,.menubar-trigger-active{background:var(--color-border)}.menubar-dropdown{position:absolute;top:100%;left:0;min-width:200px;max-width:260px;background:var(--color-surface);border:1px solid var(--color-border);border-radius:0 0 4px 4px;box-shadow:0 4px 12px #00000026;padding:4px 0;z-index:1000;outline:none;animation:menubar-dropdown-in .12s ease-out}@media (prefers-reduced-motion: reduce){.menubar-dropdown{animation:none}}@keyframes menubar-dropdown-in{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}[data-theme=dark] .menubar-dropdown{box-shadow:0 4px 12px #0006}.menubar-dropdown .context-menu-item{padding:0 12px 0 28px}.menubar-check{position:absolute;left:8px;width:16px;text-align:center;font-size:12px;color:var(--color-accent)}.navigator{background:var(--color-surface);border-right:1px solid var(--color-border);overflow:auto;flex-shrink:0;padding:8px;width:100%;box-sizing:border-box}.navigator h2{font-size:11px;text-transform:uppercase;color:var(--color-text-muted);margin:8px 0 4px}.navigator ul{list-style:none;min-width:max-content}.navigator li{padding:0;list-style:none}.tree-row{display:flex;align-items:center;gap:4px;padding:2px 6px;border-radius:3px;cursor:pointer;white-space:nowrap;-webkit-user-select:none;user-select:none}.tree-row:hover{background:color-mix(in srgb,var(--color-accent) 15%,transparent)}.tree-row.selected{background:var(--color-accent);color:#fff}.tree-toggle{flex-shrink:0;width:12px;font-size:10px;text-align:center;cursor:pointer}.tree-label{overflow:hidden;text-overflow:ellipsis}.tree-icon{width:14px;height:14px;margin-right:4px;vertical-align:-2px;flex-shrink:0}.tree-empty{padding:16px 8px;color:var(--color-text-muted);font-style:italic}.tree-rename-input{flex:1;font:inherit;font-size:13px;padding:0 4px;background:var(--color-bg);color:var(--color-text);border:1px solid var(--color-accent);border-radius:2px;outline:none;min-width:0}.properties-panel{background:var(--color-surface);border-left:1px solid var(--color-border);overflow:auto;flex-shrink:0;display:flex;flex-direction:column;width:100%;box-sizing:border-box}.properties-panel dt{font-size:11px;text-transform:uppercase;color:var(--color-text-muted);margin-top:8px}.properties-panel dd{margin:2px 0 0}.props-tabs{display:flex;gap:0;border-bottom:1px solid var(--color-border);flex-shrink:0;overflow-x:auto;scrollbar-width:thin;scroll-behavior:smooth;max-width:100%}.props-tabs::-webkit-scrollbar{height:4px}.props-tabs::-webkit-scrollbar-thumb{background:var(--color-border);border-radius:2px}.props-tab{padding:4px 10px;background:none;border:none;border-bottom:2px solid transparent;color:var(--color-text-muted);cursor:pointer;font-size:11px;white-space:nowrap}.props-tab.active{color:var(--color-text);border-bottom-color:var(--color-accent)}.props-tab:hover:not(.active){color:var(--color-text)}.props-content{padding:8px;overflow:auto;flex:1;min-width:0}.props-input{width:100%;padding:3px 6px;border:1px solid var(--color-border);border-radius:3px;background:var(--color-bg);color:var(--color-text);font:inherit;font-size:13px;box-sizing:border-box}.props-row{display:flex;align-items:center;gap:6px}.props-label-inline{font-size:12px;color:var(--color-text-muted, #888);min-width:14px}.props-input--narrow{width:60px;padding:3px 4px;border:1px solid var(--color-border);border-radius:3px;background:var(--color-bg);color:var(--color-text);font:inherit;font-size:12px;box-sizing:border-box}.props-readonly{font-size:12px;color:var(--color-text-muted, #888);-webkit-user-select:all;user-select:all}.props-lang-badge{font-size:10px;color:var(--color-warning, #c57600);font-weight:400;margin-left:4px;text-transform:none}.tree-lang-badge{font-size:10px;color:var(--color-warning, #c57600);font-weight:400}.tree-warning{font-size:12px;font-weight:700;color:#d84315;cursor:help}.props-input:focus{outline:2px solid var(--color-accent);outline-offset:-1px}.props-select{width:100%;padding:3px 6px;border:1px solid var(--color-border);border-radius:3px;background:var(--color-bg);color:var(--color-text);font:inherit;font-size:13px;box-sizing:border-box}.props-select:focus{outline:2px solid var(--color-accent);outline-offset:-1px}.props-textarea{width:100%;padding:3px 6px;border:1px solid var(--color-border);border-radius:3px;background:var(--color-bg);color:var(--color-text);font:inherit;font-size:13px;resize:vertical;box-sizing:border-box;min-height:60px}.props-textarea:focus{outline:2px solid var(--color-accent);outline-offset:-1px}.props-textarea--display{cursor:text;white-space:pre-wrap;word-break:break-word}.props-placeholder{color:var(--color-text-muted);font-style:italic}.props-hyperlink{color:var(--color-accent);text-decoration:underline;cursor:pointer}.props-checkbox{display:flex;align-items:center;gap:6px;cursor:pointer;font-size:13px}.props-empty{padding:4px 0;color:var(--color-text-muted);font-style:italic;font-size:13px}.props-link{background:none;border:none;color:var(--color-accent);cursor:pointer;font:inherit;padding:0;text-decoration:none}.props-link:hover{text-decoration:underline}.props-section-header{font-weight:600;margin-top:12px;border-bottom:1px solid var(--color-border);padding-bottom:2px}.props-color-field{display:flex;flex-direction:column;gap:4px}.props-field-label{font-size:11px;color:var(--color-text-muted)}.props-color-row{display:flex;align-items:center;gap:8px}.props-color-row input[type=color]{width:32px;height:24px;padding:0;border:1px solid var(--color-border);border-radius:3px;cursor:pointer;background:none}.props-color-row input[type=color]:disabled{opacity:.5;cursor:default}.props-opacity-row{display:flex;align-items:center;gap:8px}.props-opacity-row input[type=range]{flex:1;height:4px}.props-opacity-value{font-size:11px;min-width:24px;text-align:right;color:var(--color-text-muted)}.props-table{width:100%;border-collapse:collapse;font-size:12px;margin-top:4px}.props-table th{text-align:left;font-size:11px;color:var(--color-text-muted);border-bottom:1px solid var(--color-border);padding:2px 4px}.props-table td{padding:3px 4px}.props-table-row{cursor:pointer}.props-table-row:hover{background:var(--color-border)}.props-table-row.selected{background:color-mix(in srgb,var(--color-accent) 20%,transparent)}.props-user-toolbar{display:flex;gap:4px;margin-bottom:6px}.props-btn{padding:2px 10px;border:1px solid var(--color-border);border-radius:3px;background:var(--color-bg);color:var(--color-text);font-size:11px;cursor:pointer}.props-btn:hover:not(:disabled){background:var(--color-border)}.props-btn:disabled{opacity:.5;cursor:default}.props-input--compact{padding:1px 4px;font-size:12px;border:1px solid transparent;background:transparent}.props-input--compact:focus{border-color:var(--color-border);background:var(--color-bg)}.props-value-cell{display:flex;align-items:center;gap:4px}.props-value-cell .props-input--compact{flex:1}.props-hyperlink-icon{color:var(--color-accent);text-decoration:none;font-size:12px;flex-shrink:0}.props-table-sortable{cursor:pointer;-webkit-user-select:none;user-select:none}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0006;display:flex;align-items:center;justify-content:center;z-index:1000}.modal-dialog{background:var(--color-surface);border:1px solid var(--color-border);border-radius:6px;padding:16px;min-width:400px;max-width:600px;max-height:80vh;overflow-y:auto;box-shadow:0 4px 24px #0003}.modal-title{font-size:14px;font-weight:600;margin:0 0 12px}.modal-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:12px}.props-manager-toolbar{display:flex;gap:4px;margin-bottom:8px}.script-console{background:var(--color-surface);border-top:1px solid var(--color-border);flex-shrink:0}.script-console>button{width:100%;text-align:left;padding:4px 8px;background:none;border:none;color:var(--color-text);cursor:pointer;font-size:12px}.console-body{display:flex;flex-direction:column;height:var(--console-height)}.console-output{flex:1;overflow-y:auto;padding:4px 8px;font-family:monospace;font-size:12px}.console-input{display:flex;border-top:1px solid var(--color-border);padding:4px;gap:4px}.console-input input{flex:1;background:var(--color-bg);border:1px solid var(--color-border);color:var(--color-text);padding:2px 6px;font-family:monospace;font-size:12px;border-radius:3px}.console-input button{padding:2px 10px;background:var(--color-accent);color:#fff;border:none;border-radius:3px;cursor:pointer}.palette{background:var(--color-surface);border-right:1px solid var(--color-border);overflow-y:auto;flex-shrink:0;padding:4px}.palette-search{position:relative;display:flex;align-items:center;margin-bottom:4px}.palette-search-input{flex:1;min-width:0;padding:4px 22px 4px 24px;font-size:11px;border:1px solid var(--color-border);border-radius:3px;background:var(--color-surface);color:var(--color-text);box-sizing:border-box}.palette-search-clear{position:absolute;right:2px;top:50%;transform:translateY(-50%);background:none;border:none;cursor:pointer;color:var(--color-text-muted);font-size:14px;line-height:1;padding:2px 4px}.palette-section--separator{border-top:1px solid var(--color-border);margin-top:6px;padding-top:2px}.palette-section--recent{border-bottom:1px solid var(--color-border);margin-bottom:4px;padding-bottom:4px}.palette-section-label{font-size:10px;text-transform:uppercase;color:var(--color-text-muted);margin:8px 4px 2px;letter-spacing:.5px}.palette-section-label--toggle{cursor:pointer;-webkit-user-select:none;user-select:none}.palette-toggle{display:inline-block;width:10px;font-size:9px}.palette-items{display:flex;flex-direction:column;gap:1px}.palette-item{display:block;width:100%;text-align:left;padding:3px 8px;background:none;border:none;border-radius:3px;color:var(--color-text);cursor:grab;font-size:12px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.palette-item:hover{background:color-mix(in srgb,var(--color-accent) 15%,transparent)}.palette-item.active{background:var(--color-accent);color:#fff}.palette-item.rel{font-style:italic}.palette-icon{width:14px;height:14px;margin-right:4px;vertical-align:-2px;flex-shrink:0}.palette-icon--rel{background:color-mix(in srgb,var(--color-text-muted) 15%,transparent);border-radius:2px}.palette--icons-only{width:auto;min-width:48px;max-width:180px}.palette--icons-only .palette-items{flex-direction:row;flex-wrap:wrap;gap:2px}.palette--icons-only .palette-item{width:auto;padding:4px;font-size:0;overflow:visible}.palette--icons-only .palette-icon{margin-right:0}.palette-icons-only{display:flex;align-items:center;gap:2px;margin-left:4px;cursor:pointer;font-size:14px;color:var(--color-text-muted);flex-shrink:0}.palette-icons-only input{width:12px;height:12px;margin:0}.context-menu-backdrop{z-index:1000}.context-menu{position:fixed;min-width:180px;max-width:320px;max-height:calc(100vh - 16px);overflow-y:auto;background:var(--color-surface);border:1px solid var(--color-border);border-radius:4px;box-shadow:0 4px 12px #00000026;padding:4px 0;z-index:1001;outline:none}.context-menu-item{display:flex;align-items:center;gap:4px;height:28px;padding:0 8px;cursor:pointer;font-size:12px;color:var(--color-text);-webkit-user-select:none;user-select:none}.context-menu-item:hover,.context-menu-item.focused{background:color-mix(in srgb,var(--color-accent) 15%,transparent)}.context-menu-item.focused{outline:2px solid var(--color-accent);outline-offset:-2px}.context-menu-item.disabled{opacity:.4;pointer-events:none}.context-menu-icon{flex-shrink:0;width:16px;height:16px;display:flex;align-items:center;justify-content:center}.context-menu-icon svg{width:16px;height:16px}.context-menu-label{flex:1}.context-menu-shortcut{margin-left:auto;font-size:11px;color:var(--color-text-muted)}.menubar-external,.context-menu-arrow{margin-left:auto;font-size:10px;color:var(--color-text-muted)}.context-menu-separator{height:1px;background:var(--color-border);margin:4px 0}.context-menu-header{font-size:11px;text-transform:uppercase;color:var(--color-text-muted);padding:4px 8px;-webkit-user-select:none;user-select:none}.context-menu-item-wrapper{position:relative}.canvas-container{display:flex;flex-direction:column;width:100%;height:100%;position:relative}.canvas-tooltip{position:absolute;background:var(--color-surface);border:1px solid var(--color-border);border-radius:4px;padding:4px 8px;font-size:11px;color:var(--color-text);white-space:pre-line;pointer-events:none;z-index:100;box-shadow:0 2px 8px #00000026;max-width:300px}.canvas{flex:1;width:100%;position:relative;background-color:var(--color-bg);background-image:linear-gradient(var(--color-canvas-grid-accent) 1px,transparent 1px),linear-gradient(90deg,var(--color-canvas-grid-accent) 1px,transparent 1px),linear-gradient(var(--color-canvas-grid) 1px,transparent 1px),linear-gradient(90deg,var(--color-canvas-grid) 1px,transparent 1px);background-size:40px 40px,40px 40px,10px 10px,10px 10px}.canvas-empty{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);color:var(--color-text-muted);font-style:italic;pointer-events:none}.canvas-inline-edit{font:12px system-ui,sans-serif;padding:2px 4px;background:var(--color-bg);color:var(--color-text);border:2px solid var(--color-accent);border-radius:2px;outline:none;z-index:100;text-align:center}div.mxRubberband{position:absolute;overflow:hidden;border:1px solid var(--color-accent);background:#0077ff26}.canvas-controls{position:absolute;bottom:12px;right:12px;display:flex;flex-direction:column;gap:2px;border:1px solid var(--color-border);border-radius:6px;padding:4px;z-index:20;box-shadow:0 1px 4px #0000001a}.canvas-controls button{width:28px;height:28px;border:none;background:transparent;border-radius:4px;cursor:pointer;font-size:14px;line-height:1;color:var(--color-text)}.canvas-controls button:hover{background:var(--color-hover)}.canvas-autocomplete{position:fixed;min-width:160px;max-width:300px;max-height:200px;overflow-y:auto;background:var(--color-surface);border:1px solid var(--color-border);border-radius:4px;box-shadow:0 4px 12px #00000026;padding:4px 0;margin:0;list-style:none;z-index:1002}.canvas-autocomplete-item{padding:4px 8px;font-size:12px;cursor:pointer;color:var(--color-text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.canvas-autocomplete-item:hover,.canvas-autocomplete-item.focused{background:color-mix(in srgb,var(--color-accent) 15%,transparent)}.view-tabs{display:flex;gap:0;background:var(--color-surface);border-bottom:1px solid var(--color-border);flex-shrink:0;overflow-x:auto}.view-tab{padding:4px 16px;background:none;border:none;border-bottom:2px solid transparent;color:var(--color-text-muted);cursor:pointer;font-size:12px;white-space:nowrap}.view-tab.active{color:var(--color-text);border-bottom-color:var(--color-accent)}.tree-search{padding:4px 8px;border-bottom:1px solid var(--color-border)}.tree-search-input{width:100%;padding:4px 6px;font-size:12px;background:var(--color-bg);color:var(--color-text);border:1px solid var(--color-border);border-radius:3px;outline:none}.tree-search-input:focus{border-color:var(--color-accent)}.tree-search-options{display:flex;gap:8px;align-items:center;margin-top:4px;font-size:11px}.tree-search-option{display:flex;align-items:center;gap:2px;color:var(--color-text-muted);cursor:pointer}.tree-search-option input{margin:0}.tree-search-clear{margin-left:auto;background:none;border:none;color:var(--color-text-muted);cursor:pointer;font-size:14px}.app-left-panels{display:flex;flex-direction:column;border-right:1px solid var(--color-border);overflow-y:hidden}.app-left-panels>.navigator{flex:1;min-height:0;min-width:0;border-right:none}.props-btn--icon{padding:2px 4px;font-size:12px;min-width:24px;text-align:center}.props-btn--icon.active{background:var(--color-accent);color:#fff;border-radius:3px}.palette-item.greyed{opacity:.45}.find-replace-bar{display:flex;gap:4px;padding:4px 8px;background:var(--color-surface);border-bottom:1px solid var(--color-border);align-items:center;flex-wrap:wrap}.find-replace-bar input{flex:1;min-width:100px;padding:3px 6px;font-size:12px;background:var(--color-bg);color:var(--color-text);border:1px solid var(--color-border);border-radius:3px}.find-replace-bar input:focus{border-color:var(--color-accent)}.find-replace-bar button{padding:3px 8px;font-size:11px;background:var(--color-surface);color:var(--color-text);border:1px solid var(--color-border);border-radius:3px;cursor:pointer}.find-replace-bar button:hover{background:var(--color-border)}.find-replace-count{font-size:11px;color:var(--color-text-muted);white-space:nowrap}.outline-panel{border-top:1px solid var(--color-border);background:var(--color-surface);height:150px;position:relative;overflow:hidden}.outline-panel-header{padding:4px 8px;font-size:11px;font-weight:600;text-transform:uppercase;color:var(--color-text-muted);border-bottom:1px solid var(--color-border)}.outline-canvas{width:100%;height:calc(100% - 24px)}.tree-drill-bar{display:flex;align-items:center;gap:4px;padding:4px 8px;border-bottom:1px solid var(--color-border);background:var(--color-surface);font-size:12px}.tree-drill-label{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--color-text-muted)}.tree-row.drag-over{outline:2px solid var(--color-accent);outline-offset:-2px;background:color-mix(in srgb,var(--color-accent) 10%,transparent)}.tree-search-type-filter{font-size:.75rem;padding:1px 4px;border:1px solid var(--color-border);border-radius:3px;background:var(--color-bg);color:var(--color-text);max-width:120px}.tree-confirm-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0006;display:flex;align-items:center;justify-content:center;z-index:9999}.tree-confirm-dialog{background:var(--color-bg);border:1px solid var(--color-border);border-radius:6px;padding:16px;max-width:400px;box-shadow:0 4px 12px #0003}.tree-confirm-dialog ul{margin:8px 0;padding-left:20px;max-height:120px;overflow-y:auto}.tree-confirm-actions{display:flex;gap:8px;justify-content:flex-end;margin-top:12px}.app-right-panels{display:flex;flex-direction:column;border-left:1px solid var(--color-border);overflow-y:hidden}.app-right-panels>.properties-panel{flex:1;min-height:0;min-width:0;border-left:none}.view-tabs-viewpoint{margin-left:auto;padding:2px 6px;font-size:11px;background:var(--color-bg);color:var(--color-text);border:1px solid var(--color-border);border-radius:3px;cursor:pointer;max-width:180px;align-self:center;margin-right:8px}.view-tabs-viewpoint option,.props-select option{color:#000;padding:2px 6px}.view-tabs-viewpoint:focus{border-color:var(--color-accent);outline:none}.modal-dialog--wide{max-width:600px}.modal-dialog--specializations{width:700px;max-width:700px;height:70vh;display:flex;flex-direction:column}.props-error{color:var(--color-danger);font-size:12px;padding:4px 8px}.spec-groups-container{flex:1;overflow-y:auto}.spec-group-header{display:flex;align-items:center;gap:4px;height:28px;padding:0 8px;background:var(--color-surface);border-bottom:1px solid var(--color-border);font-size:12px;font-weight:600;cursor:pointer;-webkit-user-select:none;user-select:none}.spec-group-header:hover{background:var(--color-border)}.spec-group-header:focus-visible{outline:2px solid var(--color-accent);outline-offset:-2px}.spec-group-toggle{font-size:12px;color:var(--color-text-muted);width:12px;flex-shrink:0}.spec-group-count{font-weight:400;color:var(--color-text-muted)}.spec-group .props-manager-table{margin-left:28px}.spec-color-swatch{display:inline-block;width:24px;height:14px;border-radius:2px;border:1px solid var(--color-border);vertical-align:middle}.spec-color-input{width:24px;height:14px;padding:0;border:1px solid var(--color-border);border-radius:2px;cursor:pointer;vertical-align:middle}.spec-selection-count{font-size:11px;color:var(--color-text-muted)}.props-btn--destructive{color:var(--color-danger);border-color:var(--color-danger)}.props-btn--destructive-fill{background:var(--color-danger);color:#fff;border:none;padding:2px 10px;border-radius:3px;font-size:11px;cursor:pointer}.props-btn--destructive-fill:hover{opacity:.9}.spec-doc-popover{margin:4px 0 0;padding:6px 8px;font-size:11px;color:var(--color-text-muted);background:var(--color-surface);border:1px solid var(--color-border);border-radius:3px;white-space:pre-wrap}.figure-options{display:flex;gap:4px;flex-wrap:wrap}.figure-option{padding:6px 12px;background:var(--color-bg);border:1px solid var(--color-border);border-radius:3px;cursor:pointer;font-size:12px;color:var(--color-text)}.figure-option:hover{background:var(--color-border)}.figure-option.active{background:var(--color-accent);color:#fff;border-color:var(--color-accent)}.image-preview{display:flex;align-items:center;gap:8px}.image-preview-name{font-size:12px;color:var(--color-text-muted);overflow:hidden;text-overflow:ellipsis}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.toast{position:fixed;bottom:16px;right:16px;padding:8px 16px;border-radius:6px;font-size:13px;font-weight:500;color:#fff;z-index:1500;cursor:pointer;box-shadow:0 2px 8px #00000026;animation:toast-in .2s ease-out}.toast--success{background:var(--color-canvas-valid)}.toast--error{background:var(--color-danger)}@keyframes toast-in{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@media (prefers-reduced-motion: reduce){.toast{animation:none}}.loading-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0000004d;display:flex;align-items:center;justify-content:center;z-index:2000}.loading-dialog{background:var(--color-surface);border-radius:8px;padding:24px 32px;display:flex;flex-direction:column;align-items:center;gap:8px;font-size:14px;color:var(--color-text);box-shadow:0 4px 24px #0003}.loading-spinner{width:20px;height:20px;border:2px solid var(--color-border);border-top-color:var(--color-accent);border-radius:50%;animation:spin .8s linear infinite}.loading-filename{font-size:12px;color:var(--color-text-muted)}@keyframes spin{to{transform:rotate(360deg)}}@media (prefers-reduced-motion: reduce){.loading-spinner{animation:none;opacity:.7}}.canvas-onboarding{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);display:flex;flex-direction:column;align-items:center;gap:16px;pointer-events:auto;z-index:5}.canvas-onboarding-icon{color:var(--color-text-muted)}.canvas-onboarding-heading{font-size:16px;font-weight:500;color:var(--color-text)}.canvas-onboarding-actions{display:flex;gap:12px}.canvas-onboarding-btn{display:flex;flex-direction:column;align-items:center;gap:2px;padding:10px 20px;border-radius:4px;background:var(--color-accent);color:#fff;border:none;font-size:13px;font-weight:500;cursor:pointer}.canvas-onboarding-btn:hover{opacity:.9}.canvas-onboarding-shortcut{font-size:11px;opacity:.7}.canvas-onboarding-hint{font-size:12px;color:var(--color-text-muted);font-style:italic}.canvas--tool-active{cursor:crosshair}.canvas--format-painter{cursor:cell}.canvas-tool-indicator{position:absolute;top:8px;left:8px;background:color-mix(in srgb,var(--color-accent) 10%,var(--color-surface));border:1px solid var(--color-accent);border-radius:6px;padding:6px 12px;z-index:15;display:flex;flex-direction:column;gap:2px}.canvas-tool-indicator-label{font-size:12px;font-weight:500;color:var(--color-text)}.canvas-tool-indicator-hint{font-size:11px;color:var(--color-text-muted)}.canvas-controls-zoom{font-size:11px;color:var(--color-text-muted);text-align:center;padding:4px 2px;cursor:pointer;-webkit-user-select:none;user-select:none;min-width:28px}.canvas-controls-zoom:hover{color:var(--color-text)}.canvas-controls-version{font-size:10px;color:var(--color-text-muted);padding:2px 6px;border-radius:3px;background:var(--color-surface-alt, rgba(128, 128, 128, .15));-webkit-user-select:none;user-select:none}.canvas-controls{background:color-mix(in srgb,var(--color-surface) 90%,transparent)}.dirty-indicator{animation:dirty-pulse 2s ease-in-out infinite}@keyframes dirty-pulse{0%,to{opacity:1}50%{opacity:.5}}@media (prefers-reduced-motion: reduce){.dirty-indicator{animation:none}}.palette-section-toggle-btn{all:unset;cursor:pointer;display:flex;align-items:center;gap:2px;width:100%;font-size:10px;text-transform:uppercase;color:var(--color-text-muted);letter-spacing:.5px}.palette-section-toggle-btn:focus-visible{outline:2px solid var(--color-accent);outline-offset:2px;border-radius:2px}.palette-search-input,.tree-search-input{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 16 16' fill='none' stroke='%23888' stroke-width='1.5'%3E%3Ccircle cx='7' cy='7' r='4.5'/%3E%3Cline x1='10.5' y1='10.5' x2='14' y2='14'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:6px center;background-size:14px}.tree-search-input{padding-left:24px}.view-tab-close{opacity:0;width:16px;height:16px;line-height:16px;text-align:center;border-radius:50%;transition:background .1s,opacity .1s}.view-tab:hover .view-tab-close{opacity:.7}.view-tab-close:hover{opacity:1!important;background:var(--color-danger);color:#fff}.tree-selection-badge{font-size:11px;color:var(--color-accent);font-weight:500;white-space:nowrap;margin-left:4px;flex-shrink:0}.tree-highlight{background:color-mix(in srgb,var(--color-accent) 30%,transparent);color:inherit;border-radius:1px;padding:0 1px}.tree-row.selected .tree-highlight{background:#ffffff4d}.app-left-panels,.app-right-panels,.palette{transition:width .15s ease-out,min-width .15s ease-out}@media (prefers-reduced-motion: reduce){.app-left-panels,.app-right-panels,.palette{transition:none}}.panel-divider{width:4px;flex-shrink:0;cursor:col-resize;position:relative;z-index:5}.panel-divider:before{content:"";position:absolute;top:0;right:-2px;bottom:0;left:-2px}.panel-divider:hover{background:var(--color-border)}.panel-divider:active{background:color-mix(in srgb,var(--color-accent) 50%,transparent)}.panel-divider:focus-visible{outline:2px solid var(--color-accent);outline-offset:-1px}.migration-dialog-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:9999}.migration-dialog{background:var(--color-surface);border:1px solid var(--color-border);border-radius:8px;padding:24px;max-width:600px;width:90vw;max-height:80vh;overflow-y:auto}.migration-dialog h2{margin:0 0 12px;font-size:16px}.migration-dialog p{margin:0 0 8px;font-size:13px;color:var(--color-text-muted)}.migration-dialog-note{font-style:italic}.migration-dialog-list{max-height:300px;overflow-y:auto;border:1px solid var(--color-border);border-radius:4px;margin:12px 0}.migration-item{display:grid;grid-template-columns:auto 1fr auto;gap:8px;padding:6px 10px;border-bottom:1px solid var(--color-border);font-size:12px;cursor:pointer;align-items:center}.migration-item:hover{background:var(--color-hover)}.migration-item--review{background:color-mix(in srgb,var(--color-warning, #f0ad4e) 10%,transparent)}.migration-item-name{font-weight:500}.migration-item-type{color:var(--color-text-muted);grid-column:2}.migration-item-note{grid-column:2 / -1;color:var(--color-text-muted);font-style:italic;font-size:11px}.migration-dialog-actions{display:flex;gap:8px;justify-content:flex-end;margin-top:16px}.migration-dialog-actions button{padding:6px 14px;border-radius:4px;border:1px solid var(--color-border);background:var(--color-surface);cursor:pointer;font-size:13px}.migration-dialog-apply{background:var(--color-accent, #2563eb)!important;color:#fff;border-color:transparent!important}.palette-item.deprecated{opacity:.5;text-decoration:line-through;pointer-events:none}
