:root{--bg: #eef2f6;--panel-bg: #ffffff;--border: #d5dbe2;--border-soft: #e3e8ee;--header-bg: #f6f8fb;--text: #14181d;--text-mid: #5b6672;--text-dim: #5f6874;--accent: #1f74f0;--accent-soft: #e6effd;--accent-soft-strong: #dce9f9;--toolbar-bg: #ffffff;--selection: #e6effd;--warn: #c8912a;--surface-elevated: #ffffff;--surface-raised: #ffffff;--surface-subtle: #f8fafc;--surface-code: #fcfcfc;--surface-notice: #fff8df;--notice-text: #6e4f1b;--input-bg: #ffffff;--surface-hover: #f0f4fa;--surface-table: #f7f9fb;--surface-selected: #f7faff;--link: #175fbf;--info-soft: #e8f2f8;--success-soft: #e2f5e8;--danger-soft: #fde4e4;--danger-fill: #a63d3d;--danger-fill-hover: #873030;--toolbar-border: #a7c8f1;--chrome-icon: #3f4854;--chrome-disabled: #c3cad3;--context-bg: #f8fbff;--tab-bg: #e7ecf2;--success: #157a2f;--danger: #b02a2a;--canvas-selection: #2a6cc4;--canvas-valid: #1d9e46;--canvas-invalid: #c43a3a;--canvas-anchor: #e8820c;color-scheme:light;font-size:13px}:root[data-theme=dark]{--bg: #171b21;--panel-bg: #20262e;--border: #3a4653;--border-soft: #303944;--header-bg: #1b2128;--text: #f2f5f8;--text-mid: #c2cbd5;--text-dim: #aeb8c4;--accent: #6ea8ff;--accent-soft: #263d5d;--accent-soft-strong: #29466d;--toolbar-bg: #20262e;--selection: #29466d;--warn: #e1b45f;--surface-elevated: #252c35;--surface-raised: #252c35;--surface-subtle: #1b2128;--surface-code: #181d23;--surface-notice: #3a321f;--notice-text: #f0c978;--input-bg: #252c35;--surface-hover: #2a333d;--surface-table: #1b2128;--surface-selected: #263d5d;--link: #8bbcff;--info-soft: #213749;--success-soft: #193c26;--danger-soft: #4a2525;--danger-fill: #b94040;--danger-fill-hover: #963333;--toolbar-border: #40566f;--chrome-icon: #c6d0da;--chrome-disabled: #737e89;--context-bg: #252f3a;--tab-bg: #252d36;--success: #65c77a;--danger: #ff8b8b;color-scheme:dark}@media(prefers-color-scheme:dark){:root:not([data-theme=light]){--bg: #171b21;--panel-bg: #20262e;--border: #3a4653;--border-soft: #303944;--header-bg: #1b2128;--text: #f2f5f8;--text-mid: #c2cbd5;--text-dim: #aeb8c4;--accent: #6ea8ff;--accent-soft: #263d5d;--accent-soft-strong: #29466d;--toolbar-bg: #20262e;--selection: #29466d;--warn: #e1b45f;--surface-elevated: #252c35;--surface-raised: #252c35;--surface-subtle: #1b2128;--surface-code: #181d23;--surface-notice: #3a321f;--notice-text: #f0c978;--input-bg: #252c35;--surface-hover: #2a333d;--surface-table: #1b2128;--surface-selected: #263d5d;--link: #8bbcff;--info-soft: #213749;--success-soft: #193c26;--danger-soft: #4a2525;--danger-fill: #b94040;--danger-fill-hover: #963333;--toolbar-border: #40566f;--chrome-icon: #c6d0da;--chrome-disabled: #737e89;--context-bg: #252f3a;--tab-bg: #252d36;--success: #65c77a;--danger: #ff8b8b;color-scheme:dark}}*{box-sizing:border-box}button,[role=button]{user-select:none}input,textarea,.monaco-host{user-select:text}html,body,#root{height:100%;margin:0}body{font-family:Segoe UI,system-ui,-apple-system,sans-serif;color:var(--text);background:var(--bg);overflow:hidden}.app-shell{display:flex;flex-direction:column;height:100%}.app-main{flex:1;min-height:0}.toolbar-shell{display:flex;flex:0 0 auto;flex-direction:column;min-width:0}.toolbar{display:flex;align-items:center;gap:1px;height:42px;flex:0 0 42px;padding:0 9px;background:var(--toolbar-bg);border-bottom:1px solid var(--toolbar-border);user-select:none}.toolbar-sep{width:1px;height:22px;background:var(--border-soft);margin:0 5px}.tb-icon{position:relative;display:inline-flex;align-items:center;justify-content:center;width:29px;height:29px;border:0;background:transparent;padding:0;border-radius:5px;cursor:pointer;font:inherit;color:var(--chrome-icon)}.tb-icon>svg{display:block}.tb-icon:hover:not(:disabled){background:var(--accent-soft);color:var(--accent)}.tb-icon:disabled{color:var(--chrome-disabled);cursor:default}.tb-icon.tb-icon-text{width:auto;padding:0 10px;color:var(--text)}.toolbar-context-help{display:flex;align-items:center;height:36px;flex:0 0 36px;min-width:0;padding:0 10px;overflow:hidden;color:var(--text);background:var(--context-bg);border-bottom:1px solid var(--border);user-select:none}.toolbar-context-content{display:flex;align-items:center;gap:10px;min-width:0;flex:1 1 auto}.toolbar-context-icon{display:inline-flex;align-items:center;justify-content:center;width:26px;height:26px;flex:0 0 26px;color:var(--accent);background:var(--accent-soft);border-radius:5px}.toolbar-context-label{flex:0 0 auto;font-weight:600;white-space:nowrap}.toolbar-context-description{min-width:0;padding-left:10px;overflow:hidden;color:var(--text-mid);border-left:1px solid var(--border);text-overflow:ellipsis;white-space:nowrap}.toolbar-context-shortcut{flex:0 0 auto;margin-left:auto;padding:2px 8px;color:var(--text-mid);background:var(--surface-elevated);border:1px solid var(--border);border-radius:4px;box-shadow:none;font:inherit;font-size:11px;white-space:nowrap}.toolbar-context-hide{display:inline-flex;align-items:center;justify-content:center;width:26px;height:26px;flex:0 0 26px;margin-left:8px;padding:0;color:var(--text-mid);background:transparent;border:1px solid transparent;border-radius:5px;cursor:pointer}.toolbar-context-hide:hover{color:var(--text);background:var(--accent-soft);border-color:var(--border)}.toolbar-context-hide:focus-visible{outline:2px solid var(--accent);outline-offset:1px}@media(max-width:620px){.toolbar-context-description{display:none}}.tb-btn{border:1px solid transparent;background:transparent;padding:3px 8px;border-radius:4px;cursor:pointer;font:inherit;color:var(--text)}.tb-btn:hover:not(:disabled){background:var(--accent-soft);border-color:var(--border)}.tb-btn:disabled{color:var(--text-dim);opacity:.5;cursor:default}.status-bar{display:flex;align-items:center;gap:12px;height:26px;flex:0 0 26px;padding:0 13px;background:var(--header-bg);border-top:1px solid var(--border-soft);font-size:11.5px;color:var(--text-dim);font-variant-numeric:tabular-nums;user-select:none;white-space:nowrap;overflow:hidden}.status-sel{display:flex;align-items:center;gap:6px;min-width:0}.status-sel-name{color:var(--chrome-icon);font-weight:600;overflow:hidden;text-overflow:ellipsis}.status-dot{width:7px;height:7px;border-radius:50%;background:var(--accent);flex-shrink:0}.status-spacer{flex:1}.status-sep{width:1px;height:12px;background:var(--border);flex-shrink:0}.status-unsaved{color:var(--warn)}.status-canvas-message{font-weight:600}.status-canvas-message-anchor{color:var(--canvas-anchor)}.status-canvas-message-valid{color:var(--canvas-valid)}.status-canvas-message-invalid{color:var(--canvas-invalid)}.status-file{overflow:hidden;text-overflow:ellipsis}.status-version{color:var(--text-dim);opacity:.7;flex-shrink:0}.dock-root{width:100%;height:100%}.dock-root .dv-default-tab,.dock-root .dv-default-tab-content,.dock-root .dv-default-tab-action,.dock-root .dv-tabs-and-actions-container,.dock-root .dv-groupview-titlebar{user-select:none}.dock-root{--dv-tabs-and-actions-container-background-color: var(--tab-bg);--dv-activegroup-visiblepanel-tab-background-color: var(--surface-elevated);--dv-activegroup-visiblepanel-tab-color: var(--text);--dv-activegroup-hiddenpanel-tab-background-color: var(--tab-bg);--dv-activegroup-hiddenpanel-tab-color: var(--text-mid);--dv-inactivegroup-visiblepanel-tab-background-color: var(--surface-elevated);--dv-inactivegroup-visiblepanel-tab-color: var(--text);--dv-inactivegroup-hiddenpanel-tab-background-color: var(--tab-bg);--dv-inactivegroup-hiddenpanel-tab-color: var(--text-mid);--dv-tab-divider-color: var(--border);--dv-separator-border: var(--border);--dv-group-view-background-color: var(--panel-bg);--dv-activegroup-visiblepanel-tab-border-top-color: var(--accent)}.dock-root .dv-tabs-and-actions-container{border-bottom:1px solid var(--border)}.dock-root .dv-tab.dv-active-tab{box-shadow:inset 0 2px 0 var(--accent)}.dock-panel{height:100%;display:flex;flex-direction:column;min-height:0;overflow:hidden;background:var(--panel-bg)}.view-panel{height:100%;display:flex;min-width:0}.group-controls{display:flex;align-items:center;height:100%;padding:0 4px;gap:2px;user-select:none}.group-ctl{display:inline-flex;align-items:center;justify-content:center;width:20px;height:20px;border:none;border-radius:4px;background:transparent;color:var(--text-dim);cursor:pointer;padding:0}.group-ctl:hover{background:var(--accent-soft);color:var(--text)}.menu-check{color:var(--accent);font-weight:600}.dock-watermark{height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;color:var(--text-dim);user-select:none}.empty-hint{color:var(--text-dim);padding:12px}.editor-empty{margin:auto;color:var(--text-dim);height:100%;display:flex;flex-direction:column;justify-content:center}.script-panel{display:flex;flex-direction:column;height:100%;min-height:0}.script-header{display:flex;align-items:center;gap:6px;padding:4px 8px;background:var(--header-bg);border-bottom:1px solid var(--border);flex-shrink:0;user-select:none}.script-header select{font:inherit;padding:1px 4px;border:1px solid var(--border);border-radius:4px;max-width:160px}.run-btn{color:var(--success);font-weight:600;border:1px solid var(--border)}.run-btn:hover:not(:disabled){background:var(--success-soft)}.script-body{flex:1;min-height:0;display:flex}.script-editor{flex:3;min-width:0;border-right:1px solid var(--border)}.monaco-host{width:100%;height:100%}.script-console{flex:2;min-width:0;overflow:auto;font-family:Consolas,Courier New,monospace;font-size:12px;padding:6px 8px;background:var(--surface-code);user-select:text}.console-entry{white-space:pre-wrap;word-break:break-word;padding:1px 0}.console-entry.error{color:var(--danger)}.console-entry.warn{color:var(--warn)}.console-entry.info{color:var(--text-dim)}.extensions-panel{display:flex;flex-direction:column;height:100%;min-height:0;background:var(--panel-bg)}.extensions-head{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:8px 10px;border-bottom:1px solid var(--border);background:var(--header-bg);user-select:none}.extensions-list{flex:0 0 auto;max-height:180px;overflow:auto;border-bottom:1px solid var(--border);padding:4px}.extension-row,.extension-empty{width:100%;border:1px solid transparent;background:transparent;color:var(--text);font:inherit;border-radius:4px;cursor:default}.extension-row{display:flex;align-items:center;gap:7px;padding:5px 6px;text-align:left}.extension-row:hover,.extension-row.active{background:var(--accent-soft);border-color:var(--border)}.extension-row input{flex:0 0 auto}.extension-row-main{display:flex;flex-direction:column;min-width:0;flex:1}.extension-row-name{display:flex;align-items:center;gap:6px;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.extension-origin{flex:0 0 auto;border:1px solid var(--border);border-radius:3px;padding:0 4px;color:var(--text-dim);font-size:10px;font-weight:500;text-transform:uppercase}.extension-origin.package{color:var(--accent);background:var(--info-soft);border-color:color-mix(in srgb,var(--accent) 45%,var(--border))}.extension-origin.override{color:var(--notice-text);background:var(--surface-notice);border-color:color-mix(in srgb,var(--notice-text) 45%,var(--border))}.extension-row-id,.extension-row-version{color:var(--text-dim);font-size:12px}.extension-row-id{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.extension-empty{padding:10px;color:var(--accent)}.extension-form{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;padding:8px 10px;border-bottom:1px solid var(--border)}.extension-form label{display:flex;flex-direction:column;gap:3px;color:var(--text-dim);font-size:12px;user-select:none}.extension-form label:last-child{grid-column:1 / -1}.extension-actions{display:flex;align-items:center;gap:6px;flex-wrap:wrap;padding:6px 10px;border-bottom:1px solid var(--border);user-select:none}.extensions-head .extension-actions{padding:0;border-bottom:none}.extension-package-details{flex:0 0 auto;padding:8px 10px;border-bottom:1px solid var(--border);background:var(--surface-subtle);font-size:12px}.extension-detail-grid{display:grid;grid-template-columns:max-content minmax(0,1fr);gap:4px 10px}.extension-detail-grid span{color:var(--text-dim)}.extension-detail-grid strong{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:600}.extension-package-description{margin-top:8px;color:var(--text-dim);line-height:1.35}.extension-package-files{display:flex;gap:4px;flex-wrap:wrap;max-height:54px;overflow:auto;margin-top:8px}.extension-package-files span{border:1px solid var(--border);border-radius:3px;padding:1px 4px;background:var(--input-bg);color:var(--text-dim);font-family:Consolas,Courier New,monospace;font-size:11px}.extension-source-note{flex:0 0 auto;padding:5px 10px;border-bottom:1px solid var(--border);background:var(--surface-notice);color:var(--notice-text);font-size:12px}.extension-editor{flex:1;min-height:180px;border-bottom:1px solid var(--border)}.extension-errors{flex:0 0 96px;overflow:auto;padding:6px 8px;background:var(--surface-code);font-family:Consolas,Courier New,monospace;font-size:12px;user-select:text}.extension-panel-host{height:100%;overflow:auto;padding:10px;background:var(--panel-bg);box-sizing:border-box}.extension-panel-content{min-width:0;max-width:100%}.model-tree{flex:1;min-height:0;display:flex;flex-direction:column;overflow:hidden;container-type:inline-size}.model-tree-session{flex:1 1 0;min-height:0;overflow:auto}.model-tree-session+.model-tree-session{margin-top:2px;padding-top:2px;border-top:1px solid var(--border, #ddd)}.tree-row-window{position:relative;min-width:100%}.tree-row-slot{width:100%;height:22px}.properties-panel{flex:1;min-height:0;overflow:hidden;display:flex;flex-direction:column;container-type:inline-size}.toolbar-spacer{flex:1}.model-tree{user-select:none;padding:2px 0}.tree-filter{flex:0 0 auto;position:sticky;top:0;z-index:4;display:grid;grid-template-columns:minmax(0,1fr) 24px 24px 24px 24px;align-items:center;gap:2px;padding:4px 6px;background:var(--panel-bg, #fff);border-bottom:1px solid var(--border, #ddd)}.tree-filter-input{min-width:0;width:100%;height:24px;font-size:12px;padding:2px 7px;border:1px solid var(--border, #ccc);border-radius:3px;box-sizing:border-box}.tree-filter-input[aria-invalid=true]{border-color:var(--danger);color:var(--danger)}.tree-filter :focus-visible{outline:2px solid var(--accent);outline-offset:1px}.tree-search-options{position:relative;width:24px;height:24px}.tree-search-options>summary{display:grid;place-items:center;width:24px;height:24px;list-style:none;border-radius:3px}.tree-search-options>summary::-webkit-details-marker{display:none}.tree-search-options[open]>summary{color:var(--accent);background:var(--accent-soft)}.tree-search-menu{position:absolute;top:calc(100% + 4px);right:-78px;left:auto;z-index:20;display:grid;gap:8px;box-sizing:border-box;width:min(252px,calc(100cqw - 12px));max-height:min(520px,72vh);overflow:auto;padding:9px;border:1px solid var(--border);border-radius:5px;background:var(--panel-bg);box-shadow:0 8px 24px #141e2d33;color:var(--text);font-size:12px}.tree-search-fields{display:grid;grid-template-columns:minmax(0,1fr);gap:4px 8px;min-width:0;margin:0;padding:5px 7px 7px;border:1px solid var(--border-soft);border-radius:4px}.tree-search-modifiers{grid-template-columns:repeat(2,minmax(0,1fr))}.tree-search-fields legend,.tree-search-select-label>span{color:var(--text-dim);font-size:11px;font-weight:600}.tree-search-fields label,.tree-search-type-list label{display:flex;align-items:center;gap:5px;min-width:0}.tree-search-fields input,.tree-search-type-list input{margin:0}.tree-search-select-label{display:grid;gap:3px}.tree-search-select-label select{width:100%;min-width:0;font:inherit;border:1px solid var(--border);border-radius:3px;background:var(--input-bg);color:var(--text)}.tree-search-types{border:1px solid var(--border-soft);border-radius:4px}.tree-search-types>summary{padding:5px 7px;color:var(--text-dim);cursor:pointer;font-weight:600}.tree-search-type-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:3px 8px;max-height:180px;overflow:auto;padding:3px 7px 7px}.tree-search-type-list span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.tree-search-menu-actions{display:flex;justify-content:flex-end;gap:5px}.tree-search-error{grid-column:1 / -1;padding:1px 2px 0;color:var(--danger);font-size:11px}.tree-search-status{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap}.tree-filter-clear{width:24px;height:24px;border:none;background:none;cursor:pointer;font-size:11px;color:var(--text-dim);padding:2px 4px}.tree-filter-clear:hover{color:var(--text)}.tree-filter-btn{width:24px;height:24px;border:none;background:none;cursor:pointer;color:var(--text-dim);padding:2px 4px}.tree-filter-btn:hover:not(:disabled){color:var(--text)}.tree-filter-btn:disabled{color:var(--chrome-disabled);cursor:default}.tree-filter-empty{padding:10px;font-size:12px;color:var(--text-dim)}@container (max-width: 220px){.tree-search-modifiers,.tree-search-type-list{grid-template-columns:minmax(0,1fr)}.tree-search-menu{gap:6px;padding:7px}}@media(max-width:520px){.tree-filter{grid-template-columns:minmax(0,1fr) repeat(4,22px);padding-inline:4px}.tree-search-menu{position:fixed;top:42px;right:6px;left:6px;width:auto;max-height:calc(100vh - 54px)}}.tree-row{display:flex;align-items:center;gap:5px;padding:2px 6px;white-space:nowrap;cursor:default;border-radius:3px;height:22px}.tree-row:hover{background:var(--accent-soft)}.tree-row.selected{background:var(--selection);box-shadow:inset 2px 0 0 var(--accent);border-radius:0;font-weight:600}.tree-row.drag-over{outline:1.5px solid var(--accent);outline-offset:-1.5px}.tree-row.renaming input{font:inherit;padding:0 2px;border:1px solid var(--accent);border-radius:2px;min-width:60px}.tree-icon{display:inline-flex;width:14px;justify-content:center;flex-shrink:0}.tree-chevron{color:var(--text-dim);font-size:10px}.tree-el-icon{display:inline-flex;align-items:center;justify-content:center;width:14px;height:14px}.tree-rel-icon{color:var(--text-dim);font-size:11px}.tree-view-icon{color:var(--accent);font-size:11px}.tree-model-icon{color:var(--accent)}.tree-label.dim{color:var(--text-dim)}.navigator-panel{flex:1;min-height:0;display:flex;flex-direction:column;overflow:hidden}.navigator-toolbar{flex-shrink:0;display:flex;gap:4px;align-items:center;padding:5px 6px;background:var(--toolbar-bg);border-bottom:1px solid var(--border)}.navigator-toolbar .tb-btn.active{background:var(--selection);border-color:var(--accent)}.visualiser-panel{flex:1;min-width:0;min-height:0;display:flex;flex-direction:column;overflow:hidden;background:var(--surface-subtle)}.visualiser-toolbar,.visualiser-export{flex:0 0 auto;display:flex;align-items:center;gap:4px;padding:5px 6px;background:var(--toolbar-bg);border-bottom:1px solid var(--border)}.visualiser-toolbar .tb-btn.active{background:var(--selection);border-color:var(--accent)}.visualiser-controls{flex:0 0 auto;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:5px;padding:6px;border-bottom:1px solid var(--border);font-size:10px;background:var(--panel-bg)}.visualiser-controls label{display:grid;gap:2px;color:var(--text-dim)}.visualiser-controls label.visualiser-toggle{display:flex;align-items:center;gap:6px;min-height:24px;cursor:pointer}.visualiser-toggle input{flex:0 0 auto;margin:0}.visualiser-controls select{min-width:0;height:24px;border:1px solid var(--border);border-radius:3px;background:var(--input-bg);color:var(--text);font:inherit}.visualiser-filters{grid-column:1 / -1}.visualiser-filters summary{cursor:pointer;color:var(--text-dim)}.visualiser-filters>div{max-height:160px;overflow:auto;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:2px 8px;margin-top:5px;padding:5px;border:1px solid var(--border);background:var(--surface-elevated)}.visualiser-filters strong{grid-column:1 / -1;margin-top:4px}.visualiser-filters label{display:flex;align-items:center;gap:4px;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.visualiser-export{background:var(--panel-bg);padding-block:4px}.visualiser-truncated{margin-left:4px;color:var(--notice-text);font-size:10px}.visualiser-canvas{position:relative;flex:1;min-height:0;overflow:hidden;background-color:var(--surface-subtle);background-image:radial-gradient(var(--border) .75px,transparent .75px),linear-gradient(180deg,color-mix(in srgb,var(--panel-bg) 20%,transparent),transparent);background-size:16px 16px,100% 100%;cursor:grab;touch-action:none;user-select:none}.visualiser-canvas-empty{display:flex}.visualiser-canvas:focus-visible{box-shadow:inset 0 0 0 2px color-mix(in srgb,var(--accent) 74%,white)}.visualiser-canvas.is-space-held{cursor:grab}.visualiser-canvas.is-panning,.visualiser-canvas.is-panning .visualiser-node{cursor:grabbing}.visualiser-canvas svg{display:block;width:100%;height:100%;min-width:0;min-height:0;overflow:hidden}.visualiser-edge{fill:none;stroke:#536679;stroke-width:1.45;stroke-linecap:square;stroke-linejoin:round;opacity:.92}.visualiser-edge-label{pointer-events:none}.visualiser-edge-label rect{fill:#fffffffa;stroke:#b9c5d1;stroke-width:1px;vector-effect:non-scaling-stroke;filter:drop-shadow(0 1px 1.5px rgba(30,47,64,.16))}.visualiser-edge-label text{fill:#405164;font-size:10px;font-weight:550;text-anchor:middle;letter-spacing:.005em}#visualiser-arrow path{fill:#536679}.visualiser-node{cursor:pointer}.visualiser-node rect{stroke:#4c6073;stroke-width:1.25;filter:drop-shadow(0 1.5px 2px rgba(30,45,60,.18));transition:stroke .1s ease,filter .1s ease}.visualiser-node.focus rect{stroke:#1f6feb;stroke-width:2.4;filter:drop-shadow(0 2px 3px rgba(31,111,235,.24))}.visualiser-node:hover rect{stroke:#0b5dbb;filter:drop-shadow(0 2px 3px rgba(25,69,112,.24))}.visualiser-node text{pointer-events:none;text-anchor:middle;font-size:11px;font-weight:500;fill:#192632}.visualiser-zoom-controls{position:absolute;right:16px;bottom:16px;z-index:3;display:flex;align-items:center;overflow:hidden;border:1px solid var(--border);border-radius:9px;background:color-mix(in srgb,var(--surface-elevated) 94%,transparent);box-shadow:0 8px 22px #23344626,0 1px 2px #2334461f;backdrop-filter:blur(8px)}.visualiser-zoom-controls button{min-width:30px;height:30px;display:inline-grid;place-items:center;padding:0 8px;border:0;background:transparent;color:var(--text-mid);cursor:pointer;font:600 12px/1 Segoe UI,system-ui,sans-serif;font-variant-numeric:tabular-nums;transition:background-color 90ms ease,color 90ms ease}.visualiser-zoom-controls button:hover{background:var(--accent-soft);color:var(--accent)}.visualiser-zoom-controls button:focus-visible{position:relative;z-index:1;outline:2px solid var(--accent);outline-offset:-2px}.visualiser-zoom-controls .visualiser-zoom-percent{min-width:48px;border-right:1px solid var(--border);border-left:1px solid var(--border);color:var(--text)}.visualiser-zoom-controls .visualiser-fit-button{min-width:42px;border-left:1px solid var(--border);font-weight:650}@media(prefers-reduced-motion:reduce){.visualiser-node rect,.visualiser-zoom-controls button{transition:none}}.visualiser-status{flex:0 0 auto;padding:3px 7px;border-top:1px solid var(--border);color:var(--text-dim);background:var(--toolbar-bg);font-size:10px}.navigator-tree{flex:1;min-height:0;overflow:auto;padding:2px 0;user-select:none}.navigator-row{display:flex;align-items:center;gap:5px;min-height:22px;padding:2px 6px;white-space:nowrap;cursor:default;border-radius:3px;box-sizing:border-box}.navigator-row:hover{background:var(--surface-hover)}.navigator-row.root .navigator-label{font-weight:600}.navigator-toggle,.navigator-toggle-spacer{width:14px;height:16px;flex:0 0 14px}.navigator-toggle{border:0;background:transparent;color:var(--text-dim);padding:0;font:inherit;font-size:10px;cursor:pointer}.navigator-toggle:hover{color:var(--text)}.navigator-element-icon,.navigator-relationship-icon{display:inline-flex;align-items:center;justify-content:center;width:14px;height:14px;flex:0 0 14px;border-radius:2px;font-size:9px;line-height:1}.navigator-element-icon{color:var(--text-mid);background:var(--surface-subtle);border:1px solid var(--border)}.navigator-relationship-icon{color:var(--text-mid);background:var(--surface-table);border:1px solid var(--border)}.navigator-label{overflow:hidden;text-overflow:ellipsis}.outline-panel{flex:1;min-width:0;min-height:0;display:flex;overflow:hidden;background:#fff}.outline-svg{width:100%;height:100%;display:block;background:#fff;cursor:crosshair;touch-action:none;user-select:none}.outline-svg.dragging{cursor:grabbing}.outline-empty{flex:1;min-height:0;display:flex;align-items:center;justify-content:center;padding:12px;color:var(--text-dim);background:#fff;text-align:center}.outline-viewport{pointer-events:none}.validator-panel{flex:1;min-height:0;display:flex;flex-direction:column;overflow:hidden}.validator-toolbar{flex-shrink:0;display:flex;gap:8px;align-items:center;padding:5px 6px;background:var(--toolbar-bg);border-bottom:1px solid var(--border)}.validator-summary{font-size:11px;color:var(--text-dim);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.validator-list{flex:1;min-height:0;overflow:auto;padding:2px 0}.validator-section>h3{margin:0;padding:7px 8px 4px;border-bottom:1px solid var(--border);background:var(--surface-table);color:var(--text);font-size:11px;letter-spacing:.02em}.validator-section.integrity>h3{border-top:2px solid #64748b}.validator-config-dialog{width:min(520px,calc(100vw - 32px))}.validator-config-dialog h2,.validator-config-dialog p{margin:0 0 10px}.validator-config-dialog h2{font-size:17px}.validator-config-list{display:grid;gap:3px;border:1px solid var(--border);border-radius:5px;overflow:hidden}.validator-config-list label{display:flex;align-items:center;gap:9px;padding:7px 9px;background:var(--input-bg);border-bottom:1px solid var(--border)}.validator-config-list label:last-child{border-bottom:0}.validator-config-list span{flex:1;display:flex;align-items:baseline;justify-content:space-between;gap:10px}.validator-config-list small{color:var(--text-dim);text-transform:capitalize}.validator-config-dialog footer{display:flex;justify-content:flex-end;margin-top:12px}.validator-group-header{padding:6px 8px 3px;font-size:10px;font-weight:600;text-transform:uppercase;letter-spacing:.04em;color:var(--text-dim)}.validator-row{display:flex;align-items:flex-start;gap:6px;padding:3px 8px 3px 10px;cursor:pointer;border-left:3px solid transparent}.validator-row:hover{background:var(--surface-hover)}.validator-row.error{border-left-color:var(--danger)}.validator-row.warning{border-left-color:var(--warn)}.validator-row.advice{border-left-color:var(--accent)}.validator-glyph{flex:0 0 auto;font-size:12px;line-height:1.4}.validator-text{flex:1;min-width:0;display:flex;flex-direction:column}.validator-message{font-size:12px;line-height:1.4;word-break:break-word}.validator-where{font-size:11px;line-height:1.4;color:var(--text-dim);word-break:break-word}.ctx-root{position:fixed;z-index:1000}.ctx-menu{background:var(--surface-elevated);color:var(--text);border:1px solid var(--border);border-radius:6px;box-shadow:0 4px 16px #0000002e;padding:4px;min-width:170px;max-height:70vh;overflow-y:auto;user-select:none}.ctx-item{position:relative;display:flex;align-items:center;gap:7px;padding:4px 10px;border-radius:4px;cursor:default;white-space:nowrap}.ctx-item:hover:not(.disabled){background:var(--accent-soft)}.ctx-item.disabled{color:var(--text-dim)}.ctx-item.danger:hover{background:var(--danger-soft);color:var(--danger)}.ctx-label{flex:1}.ctx-arrow{color:var(--text-dim);font-size:10px}.ctx-icon{display:inline-flex;width:14px;justify-content:center}.ctx-sep{height:1px;background:var(--border);margin:4px 6px}.ctx-submenu{position:absolute;left:100%;top:-5px}.view-editor{position:relative;flex:1;min-width:0;background:#fff;overflow:hidden;user-select:none}.view-svg{width:100%;height:100%;display:block;background:#fff;touch-action:none;user-select:none}.view-grid{pointer-events:none}.view-grid-line{fill:none;stroke:color-mix(in srgb,var(--border) 55%,transparent);stroke-width:1;vector-effect:non-scaling-stroke}.alignment-guide{stroke:var(--accent);stroke-width:1;stroke-dasharray:4 3}.palette{width:100%;height:100%;background:var(--panel-bg);overflow-y:auto;padding:4px 3px;display:flex;flex-wrap:wrap;align-content:flex-start;gap:2px;user-select:none}.pal-layer{display:flex;flex-wrap:wrap;gap:2px;width:100%}.pal-btn{width:24px;height:24px;display:inline-flex;align-items:center;justify-content:center;border:1px solid transparent;border-radius:4px;background:transparent;color:var(--chrome-icon);cursor:pointer;padding:0}.pal-btn:hover{background:var(--accent-soft);border-color:var(--border)}.pal-btn.active{background:var(--selection);border-color:var(--accent)}.palette-item-disabled{opacity:.35;pointer-events:none}.pal-el{display:inline-flex;align-items:center;justify-content:center;width:19px;height:17px;border:1px solid rgba(0,0,0,.35);border-radius:2px}.c4-pal-el{background:#fff;border-color:#1168bd;color:#1168bd}.pal-junction-el{border-color:transparent}.pal-sep-label{width:100%;margin:6px 2px 2px;font-size:8.5px;line-height:1;letter-spacing:.1em;font-weight:700;text-transform:uppercase;color:var(--text-dim);text-align:center;user-select:none}.pal-sep{width:100%;height:1px;background:var(--border);margin:3px 2px}.prop-type{flex-shrink:0;padding:9px 14px;font-size:11px;line-height:1.2;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--chrome-icon);background:var(--header-bg);border-bottom:1px solid var(--border-soft);user-select:none}.prop-body{flex:1;min-height:0;display:flex;flex-direction:column;overflow:hidden}.prop-tabs{display:flex;flex-direction:row;flex:0 0 auto;padding:0;border-bottom:1px solid var(--border-soft);background:var(--panel-bg);user-select:none}.prop-tab{font:inherit;flex:1;min-height:33px;border:0;background:transparent;padding:8px 4px;cursor:pointer;color:var(--text-dim);font-size:11.5px;text-align:center}.prop-tab:hover{color:var(--text)}.prop-tab.active{color:var(--accent);font-weight:700;background:transparent;box-shadow:inset 0 -2px 0 var(--accent)}.prop-content{flex:1;min-width:0;overflow:auto}.prop-form{padding:12px 16px;display:flex;flex-direction:column;gap:10px}.analysis-form{padding:12px 16px;display:flex;flex-direction:column;gap:14px}.analysis-list{display:flex;flex-direction:column;gap:2px}.analysis-row{font:inherit;color:var(--text);text-align:left;border:0;border-radius:4px;background:transparent;padding:4px 6px;cursor:pointer}.analysis-row:hover{background:var(--accent-soft)}.prop-row{display:flex;flex-direction:column;gap:3px}.prop-row>label{color:var(--text-dim);font-size:12px;user-select:none}.prop-section{display:flex;flex-direction:column;gap:10px;padding-top:4px;border-top:1px solid var(--border)}.prop-section-title{color:var(--text-mid);font-size:12px;font-weight:600;user-select:none}.prop-input{font:inherit;padding:4px 6px;border:1px solid var(--border);border-radius:4px;width:100%;box-sizing:border-box;background:var(--surface-elevated);color:var(--text)}.prop-input:focus{border-color:var(--accent)}.prop-doc{min-height:90px;resize:vertical}.prop-hint{color:var(--text-dim);font-size:12px;user-select:none}.tb-btn.small{padding:1px 6px;font-size:12px;border:1px solid var(--border)}.prop-table{padding:12px 16px;display:flex;flex-direction:column;gap:4px}.prop-table-head,.prop-table-row{display:grid;grid-template-columns:1fr 1fr 24px;gap:4px;align-items:center}.prop-table-head{color:var(--text-dim);font-size:12px;user-select:none}.add-prop{align-self:flex-start;border:1px dashed var(--border);margin-top:4px}.prop-row select{font:inherit;padding:3px 6px;border:1px solid var(--border);border-radius:4px}.legend-controls{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));align-content:start;gap:8px 12px}.legend-controls .prop-option-group{min-width:0;margin:0;padding:6px 8px 7px;display:flex;flex-direction:column;gap:4px;border:1px solid var(--border);border-radius:4px}.legend-controls .prop-option-group legend,.legend-controls .prop-row>label{color:var(--text-dim);font-size:11.5px}.legend-controls .prop-option-group label{display:flex;align-items:center;gap:4px;font-size:12px;line-height:1.25}.legend-controls .prop-option-group input{margin:0}.legend-controls .prop-number,.legend-controls select{width:100%;min-width:0;height:26px;box-sizing:border-box;font:inherit}.legend-controls>button{justify-self:start;align-self:end}.appearance-form{padding:0 16px 18px;display:grid;grid-template-columns:repeat(2,minmax(280px,1fr));column-gap:42px;row-gap:12px}.appearance-font-controls{display:grid;grid-template-columns:minmax(90px,1fr) 58px 28px 28px;gap:4px}.appearance-font-controls input,.appearance-font-controls button{min-width:0;height:26px}.appearance-font-controls button.active{background:var(--accent-soft);border-color:var(--accent)}.label-expression-preview{display:block;min-height:42px;padding:7px 8px;white-space:pre-wrap;border:1px solid var(--border);background:var(--surface-raised)}.label-expression-error{color:var(--danger, #b42318)}.exchange-export-dialog{width:min(760px,calc(100vw - 32px));max-height:calc(100vh - 48px);overflow:auto}.exchange-metadata-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px 12px;margin:12px 0}.exchange-metadata-grid label{display:grid;grid-template-columns:92px minmax(0,1fr);align-items:center;gap:6px;text-transform:capitalize}.exchange-diagnostics{max-height:150px;overflow:auto;margin:10px 0;padding:8px;color:var(--danger, #b42318);border:1px solid currentColor}.appearance-column{display:flex;flex-direction:column;gap:12px;padding-top:12px}.appearance-field{min-height:34px;display:grid;grid-template-columns:minmax(116px,140px) minmax(128px,1fr);align-items:center;gap:12px}.appearance-field>label{color:var(--text);font-size:13px;line-height:1.2;user-select:none}.appearance-control{min-width:0;display:flex;align-items:center}.appearance-control select{min-width:116px;height:26px;font:inherit;padding:1px 22px 1px 6px;border:1px solid var(--border);border-radius:3px;background:var(--input-bg);color:var(--text)}.appearance-control select:disabled,.appearance-control button:disabled,.appearance-control input:disabled{color:var(--text-dim);cursor:default;opacity:.72}.appearance-colour{display:inline-flex;align-items:center;height:26px;user-select:none}.appearance-colour input[type=color]{width:96px;height:26px;padding:2px 14px;border:1px solid var(--border);border-radius:3px 0 0 3px;background:var(--input-bg)}.appearance-reset{position:relative;width:26px;height:26px;margin-left:2px;border:1px solid var(--border);border-radius:3px;background:var(--input-bg)}.appearance-reset:before{content:"";position:absolute;top:9px;left:7px;width:0;height:0;border-left:5px solid transparent;border-right:5px solid transparent;border-top:7px solid var(--chrome-icon)}.appearance-number{width:64px;height:26px;padding:1px 4px;border:1px solid var(--border);border-radius:0;font:inherit;background:var(--input-bg);color:var(--text)}.appearance-segmented{display:inline-flex;gap:5px}.appearance-segmented button{width:28px;height:28px;padding:0;display:inline-flex;align-items:center;justify-content:center;border:1px solid var(--border);border-radius:3px;background:var(--input-bg);color:var(--text)}.appearance-segmented button.active{border-color:var(--canvas-selection);background:var(--accent-soft-strong)}.appearance-align-icon,.appearance-position-icon{width:18px;height:18px;display:flex;flex-direction:column;justify-content:center;gap:2px}.appearance-align-icon i,.appearance-position-icon i{display:block;height:2px;background:var(--accent)}.appearance-align-icon.left i{align-self:flex-start}.appearance-align-icon.center i{align-self:center}.appearance-align-icon.right i{align-self:flex-end}.appearance-align-icon.left i:nth-child(1),.appearance-align-icon.left i:nth-child(3),.appearance-align-icon.right i:nth-child(1),.appearance-align-icon.right i:nth-child(3){width:12px}.appearance-align-icon.left i:nth-child(2),.appearance-align-icon.right i:nth-child(2),.appearance-align-icon.center i{width:18px}.appearance-position-icon.top{justify-content:flex-start;padding-top:2px}.appearance-position-icon.middle{justify-content:center}.appearance-position-icon.bottom{justify-content:flex-end;padding-bottom:2px}.appearance-position-icon i{width:18px;align-self:center}.appearance-line-preview{width:78px;height:28px;display:inline-flex;align-items:center;justify-content:center;border:1px solid var(--border);border-radius:3px;background:var(--input-bg)}.appearance-line-preview span{width:50px;height:2px;background:#000}@container (max-width: 760px){.appearance-form{grid-template-columns:1fr;row-gap:0}.appearance-field{grid-template-columns:minmax(112px,136px) minmax(120px,1fr)}}@container (max-width: 420px){.prop-type{padding:7px 8px;font-size:13px}.prop-tab{min-height:30px;padding:4px 8px}.appearance-form{padding:8px 10px 14px}.appearance-column{gap:10px;padding-top:0}.appearance-field{min-height:0;grid-template-columns:minmax(0,1fr);gap:4px}.appearance-field>label{font-size:13px}.appearance-control select{width:100%;max-width:180px;min-width:0}.appearance-segmented{gap:4px}.appearance-segmented button{width:28px;height:28px}}@container (max-width: 180px){.prop-body{flex-direction:column}.prop-tabs{flex:0 0 auto;flex-direction:row;overflow-x:auto;border-right:0;border-bottom:1px solid #d7d7d7}.prop-tab{flex:0 0 auto;min-height:28px;padding:4px 7px;white-space:nowrap}.prop-tab.active{box-shadow:inset 0 -3px 0 var(--canvas-selection)}.appearance-form{padding:6px}.appearance-field{width:100%}.appearance-control select{max-width:100%}.appearance-colour input[type=color]{width:56px;padding:3px 6px}.appearance-reset{width:24px;height:24px}.appearance-reset:before{top:8px;left:6px}.appearance-number{width:58px}.appearance-segmented{gap:2px}.appearance-segmented button{width:24px;height:24px}.appearance-align-icon,.appearance-position-icon{transform:scale(.88)}.appearance-line-preview{width:70px}}.settings-panel{container-type:inline-size;flex:1;min-height:0;display:flex;flex-direction:column;background:var(--panel-bg)}.settings-head{display:flex;align-items:center;gap:8px;justify-content:space-between;padding:8px 10px;border-bottom:1px solid var(--border);background:var(--header-bg);user-select:none}.settings-title{font-weight:600}.settings-summary,.settings-desc,.settings-default,.settings-section-desc{color:var(--text-dim);font-size:12px}.settings-filter{padding:8px 10px;border-bottom:1px solid var(--border)}.settings-scroll{flex:1;min-height:0;overflow:auto}.settings-section{border-bottom:1px solid var(--border)}.settings-section-head{padding:9px 10px 7px;background:var(--header-bg);user-select:none}.settings-section-title{font-weight:600;color:var(--accent)}.settings-row{display:grid;grid-template-columns:minmax(0,1fr) minmax(142px,170px) auto;gap:10px;align-items:center;padding:8px 10px;border-top:1px solid var(--border-soft)}.settings-copy{min-width:0;user-select:none}.settings-label{font-weight:500}.settings-control{min-width:0}.settings-select{min-width:120px}.settings-check{display:inline-flex;align-items:center;gap:7px;color:var(--text);user-select:none}.settings-relationship-mask{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:3px 10px;width:100%;min-width:0}.settings-mask-option{display:flex;align-items:center;gap:5px;min-width:0;color:var(--text);font-size:12px;user-select:none}.settings-mask-option span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.settings-number{display:grid;grid-template-columns:minmax(52px,1fr) 68px auto;gap:6px;align-items:center;min-width:0}.settings-number input[type=range]{width:100%;min-width:0}.settings-number input[type=number]{font:inherit;width:68px;padding:3px 5px;border:1px solid var(--border);border-radius:4px}.settings-number input[type=number]:focus{border-color:var(--accent)}.settings-unit{color:var(--text-dim);font-size:12px;user-select:none}.settings-reset-row{justify-self:end}.settings-legend-custom{border-top:1px solid #ececec}.settings-legend-custom>summary{padding:8px 10px;color:var(--accent);font-weight:500;cursor:pointer;user-select:none}.settings-legend-head,.settings-legend-row{display:grid;grid-template-columns:minmax(126px,1fr) minmax(150px,1.25fr) 72px auto;gap:8px;align-items:center;padding:5px 10px}.settings-legend-head{color:var(--text-dim);font-size:11px;border-top:1px solid var(--border-soft);border-bottom:1px solid var(--border-soft);background:var(--surface-table)}.settings-legend-row{min-height:27px;border-bottom:1px solid var(--border-soft)}.settings-legend-name{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.settings-legend-row input[type=color]{width:62px;height:25px;padding:1px;border:1px solid var(--border)}.settings-legend-na{color:var(--text-dim);text-align:center}@container (max-width: 390px){.settings-row{grid-template-columns:1fr;gap:6px}.settings-reset-row{justify-self:start}.settings-legend-head{display:none}.settings-legend-row{grid-template-columns:minmax(0,1fr) 62px auto}.settings-legend-name{grid-column:1 / -1}}.direct-edit{position:absolute;z-index:10;font:inherit;font-size:12px;text-align:center;border:1.5px solid var(--accent);border-radius:2px;resize:none;background:#fff;padding:3px;box-sizing:border-box;user-select:text}.welcome{text-align:center;user-select:none}.welcome-logo{width:128px;height:128px;margin:0 auto 16px;filter:drop-shadow(0 6px 16px rgba(28,76,146,.35))}.welcome h2{color:var(--accent);margin-bottom:4px}.welcome-actions{display:flex;gap:10px;justify-content:center;margin-top:16px}.welcome-btn{font:inherit;padding:8px 14px;border:1px solid var(--border);border-radius:6px;background:var(--surface-elevated);color:var(--text);cursor:pointer}.welcome-btn:hover{background:var(--accent-soft);border-color:var(--accent)}.modal-backdrop{position:fixed;inset:0;background:#00000059;display:flex;align-items:center;justify-content:center;z-index:2000}.modal{background:var(--panel-bg);border-radius:8px;padding:16px 20px;box-shadow:0 8px 32px #0000004d;max-width:480px;max-height:80vh;overflow:auto}.modal-surface{max-height:calc(100vh - 48px);overflow:auto}.modal-title{font-weight:600;font-size:15px;margin-bottom:10px;user-select:none}.export-dialog{min-width:340px}.static-report-export-dialog{width:min(520px,calc(100vw - 32px));display:grid;gap:12px}.static-report-export-dialog h2,.static-report-export-dialog p{margin:0}.static-report-export-dialog h2{color:var(--text);font-size:19px}.static-report-export-lead{color:var(--text-dim);line-height:1.45}.static-report-file-name{display:grid;gap:5px;color:var(--text-dim);font-size:12px}.static-report-file-name input{min-width:0;padding:7px 9px;color:var(--text);background:var(--input-bg);border:1px solid var(--border);border-radius:4px;font:inherit}.static-report-privacy{padding:10px 12px;color:var(--text-mid);font-size:11px;line-height:1.45;background:var(--surface-subtle);border-left:3px solid var(--accent)}.generate-view-dialog{width:min(440px,calc(100vw - 32px));display:grid;gap:11px}.generate-view-dialog h2,.generate-view-dialog p{margin:0}.generate-view-dialog h2{font-size:17px}.generate-view-dialog>label,.generate-view-grid label{display:grid;gap:4px;color:var(--text-dim);font-size:12px}.generate-view-dialog input,.generate-view-dialog select{min-width:0;padding:6px 7px;border:1px solid var(--border);border-radius:4px;background:var(--input-bg);color:var(--text);font:inherit}.generate-view-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}.generate-view-dialog .generate-view-check{display:flex;align-items:center;gap:7px;color:var(--text)}.generate-view-check input{margin:0}.generate-view-dialog footer{display:flex;justify-content:flex-end;gap:7px}.generate-view-error{color:var(--danger)}.model-merge-dialog{width:min(860px,calc(100vw - 32px));height:min(720px,calc(100vh - 32px));display:grid;grid-template-rows:auto auto auto auto auto minmax(120px,1fr) auto;gap:10px;overflow:hidden}.model-merge-dialog>header,.model-merge-dialog>footer{display:flex;align-items:center;justify-content:space-between;gap:12px}.model-merge-dialog h2,.model-merge-dialog p{margin:0}.model-merge-dialog h2{font-size:18px}.dialog-kicker{color:var(--accent);font-size:10px;font-weight:700;letter-spacing:.08em;text-transform:uppercase}.model-merge-lead{color:var(--text-dim)}.model-merge-file{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px;border:1px dashed var(--border);border-radius:6px;background:var(--surface-subtle)}.model-merge-options{display:flex;flex-wrap:wrap;gap:8px 18px}.model-merge-options label{display:flex;align-items:center;gap:6px}.model-merge-summary{display:grid;grid-template-columns:repeat(6,minmax(82px,1fr));border:1px solid var(--border);border-radius:5px;overflow:hidden}.model-merge-summary span{display:grid;gap:1px;padding:7px;border-right:1px solid var(--border);color:var(--text-dim);font-size:10px}.model-merge-summary span:last-child{border-right:0}.model-merge-summary strong{color:var(--text);font-size:15px}.model-merge-error{color:var(--danger)}.model-merge-details{min-height:0;overflow:auto;border:1px solid var(--border);background:var(--input-bg)}.model-merge-detail{width:100%;display:grid;grid-template-columns:72px minmax(120px,1fr) minmax(140px,1fr);gap:8px;align-items:center;padding:5px 8px;border:0;border-bottom:1px solid var(--border-soft);background:transparent;color:inherit;text-align:left}.model-merge-detail:not(:disabled):hover{background:var(--accent-soft)}.model-merge-detail>span{color:var(--text-dim);font-size:10px;text-transform:uppercase}.model-merge-detail.warning>span,.model-merge-detail.skipped>span{color:var(--notice-text)}.model-merge-detail small{color:var(--text-dim);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.model-merge-dialog>footer span{color:var(--text-dim);font-size:11px}.export-row{display:flex;align-items:center;gap:14px;padding:5px 0;font-size:13px}.export-row label{display:flex;align-items:center;gap:4px;user-select:none}.export-label{width:90px;color:var(--text-dim);user-select:none}.export-actions{display:flex;align-items:center;gap:8px;margin-top:14px}.export-actions-spacer{flex:1}.export-prefix-input{flex:1;min-width:0;font-size:12px;padding:2px 6px;border:1px solid var(--border, #ccc);border-radius:3px}.export-hint{font-size:11px;color:var(--text-dim);margin:6px 0 0}.tb-btn.primary{background:var(--canvas-selection);border-color:var(--canvas-selection);color:#fff}.tb-btn.primary:hover:not(:disabled){background:color-mix(in srgb,var(--canvas-selection) 82%,black)}.app-dialog-backdrop{padding:16px}.presentation-mode{position:fixed;inset:0;z-index:3000;background:#fff;display:flex}.presentation-mode .view-editor{flex:1}.presentation-hud{position:absolute;bottom:18px;left:50%;transform:translate(-50%);display:flex;align-items:center;gap:12px;background:#1e1e1ec7;color:#fff;padding:6px 14px;border-radius:16px;font-size:13px;transition:opacity .3s;user-select:none}.presentation-hud.hud-hidden{opacity:0;pointer-events:none}.presentation-hud-count{opacity:.7}.presentation-hud-close{border:none;background:none;color:#fff;cursor:pointer;font-size:12px;padding:0 2px;opacity:.8}.presentation-hud-close:hover{opacity:1}.app-dialog{width:min(430px,100%);max-height:min(80vh,560px);overflow:auto;display:flex;flex-direction:column;gap:16px;padding:18px;background:var(--surface-elevated);border:1px solid var(--border);border-radius:8px;box-shadow:0 22px 48px #00000047,0 0 0 1px #ffffffb3 inset}.app-dialog.intent-danger{border-color:#a63d3d4d}.app-dialog.intent-error{border-color:#a63d3d66}.app-dialog-body{min-width:0}.app-dialog-kicker{margin-bottom:6px;color:var(--accent);font-size:11px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;user-select:none}.app-dialog.intent-danger .app-dialog-kicker,.app-dialog.intent-error .app-dialog-kicker{color:var(--danger)}.app-dialog-title{margin:0;color:var(--text);font-size:18px;font-weight:650;line-height:1.25;letter-spacing:0}.app-dialog-message,.app-dialog-details{margin:10px 0 0;line-height:1.45}.app-dialog-message{color:var(--text)}.app-dialog-details{color:var(--text-dim);font-size:12px;overflow-wrap:anywhere;white-space:pre-line}.app-dialog-input{width:100%;margin-top:14px;padding:7px 8px;border:1px solid var(--border);border-radius:5px;background:var(--input-bg);color:var(--text);font:inherit}.app-dialog-input:focus{border-color:var(--accent);box-shadow:0 0 0 2px var(--accent-soft)}.app-dialog-nesting-rows{display:grid;gap:8px;margin-top:14px}.app-dialog-nesting-row{display:grid;grid-template-columns:minmax(100px,.8fr) minmax(190px,1.4fr);align-items:center;gap:8px}.app-dialog-nesting-row label{min-width:0;overflow:hidden;color:var(--text);font-size:12px;text-overflow:ellipsis;white-space:nowrap}.app-dialog-nesting-row select{min-width:0;height:28px;padding:2px 24px 2px 6px;border:1px solid var(--border);border-radius:4px;background:var(--input-bg);color:var(--text);font:inherit}.app-dialog-nesting-row select:focus-visible{outline:2px solid var(--accent);outline-offset:1px}.app-dialog-actions{display:flex;justify-content:flex-end;gap:8px}.app-dialog-btn{min-width:76px;padding:6px 12px;border:1px solid var(--border);border-radius:5px;background:var(--input-bg);color:var(--text);cursor:pointer;font:inherit}.app-dialog-btn:hover{background:var(--accent-soft);border-color:var(--accent)}.app-dialog-btn:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.app-dialog-btn.primary{border-color:var(--accent);background:var(--accent);color:#fff}.app-dialog-btn.primary:hover{background:color-mix(in srgb,var(--accent) 82%,black)}.app-dialog-btn.primary.danger{border-color:var(--danger-fill);background:var(--danger-fill)}.app-dialog-btn.primary.danger:hover{background:var(--danger-fill-hover)}.property-manager-backdrop{padding:18px}.property-manager-dialog{width:min(1040px,100%);max-height:min(88vh,760px);display:flex;flex-direction:column;overflow:hidden;border:1px solid var(--border);border-radius:8px;background:var(--panel-bg);box-shadow:0 24px 60px #18222e4d}.property-manager-header{display:flex;align-items:flex-start;justify-content:space-between;gap:18px;padding:16px 18px 13px;border-bottom:1px solid var(--border-soft);background:var(--header-bg)}.property-manager-header h2{margin:1px 0 0;font-size:18px;font-weight:650;letter-spacing:-.01em}.property-manager-header>span{margin-top:4px;color:var(--text-dim);font-size:11px;white-space:nowrap}.property-manager-kicker{color:var(--accent);font-size:10px;font-weight:700;letter-spacing:.09em;text-transform:uppercase}.property-manager-body{min-height:300px;flex:1;display:grid;grid-template-columns:285px minmax(0,1fr);overflow:hidden}.property-manager-keys{min-height:0;min-width:0;display:flex;flex-direction:column;border-right:1px solid var(--border);background:var(--surface-subtle)}.property-manager-keys>label,.property-manager-rename>label:first-child{display:grid;gap:4px;color:var(--text-mid);font-size:11px;font-weight:650}.property-manager-keys>label{padding:11px 12px 9px;border-bottom:1px solid var(--border-soft)}.property-manager-keys input,.property-manager-rename input[type=text],.property-manager-rename input:not([type]){width:100%;min-width:0;height:29px;padding:4px 7px;border:1px solid var(--border);border-radius:4px;background:var(--input-bg);color:var(--text);font:13px Segoe UI,system-ui,sans-serif;box-sizing:border-box}.property-manager-dialog input:focus-visible,.property-manager-dialog button:focus-visible{outline:2px solid var(--accent);outline-offset:1px}.property-manager-table-wrap,.property-manager-occurrences{min-height:0;flex:1;overflow:auto}.property-manager-dialog table{width:100%;border-collapse:separate;border-spacing:0;table-layout:fixed;font-size:11px}.property-manager-dialog th{position:sticky;top:0;z-index:1;padding:6px 7px;border-bottom:1px solid var(--border);background:var(--surface-table);color:var(--text-mid);font-weight:650;text-align:left}.property-manager-dialog td{padding:7px;border-bottom:1px solid var(--border-soft);vertical-align:top}.property-manager-keys th:first-child{width:auto}.property-manager-keys th:nth-child(2),.property-manager-keys th:nth-child(3){width:48px;text-align:center}.property-manager-keys td:nth-child(2),.property-manager-keys td:nth-child(3){color:var(--text-mid);font-variant-numeric:tabular-nums;text-align:center}.property-manager-keys tbody tr.selected{background:var(--surface-selected);box-shadow:inset 3px 0 var(--accent)}.property-manager-keys tbody tr:hover,.property-manager-occurrences tbody tr:hover{background-color:var(--surface-hover)}.property-manager-keys td button,.property-manager-navigate{width:100%;overflow:hidden;padding:0;border:0;background:transparent;color:var(--link);cursor:pointer;font:inherit;font-weight:650;text-align:left;text-overflow:ellipsis;white-space:nowrap}.property-manager-keys td button:hover,.property-manager-navigate:hover{text-decoration:underline}.property-manager-details{min-height:0;min-width:0;display:flex;flex-direction:column;overflow:hidden;background:var(--panel-bg)}.property-manager-detail-header{min-height:52px;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:9px 14px;border-bottom:1px solid var(--border-soft)}.property-manager-detail-header>div:first-child{min-width:0;display:grid;gap:1px}.property-manager-detail-header span{color:var(--text-dim);font-size:10px;font-weight:650;letter-spacing:.04em;text-transform:uppercase}.property-manager-detail-header strong{overflow:hidden;font-size:14px;text-overflow:ellipsis;white-space:nowrap}.property-manager-stage{display:flex;gap:5px}.property-manager-stage .active{border-color:var(--accent);background:var(--accent-soft);color:var(--accent)}.property-manager-rename{display:grid;grid-template-columns:minmax(190px,.75fr) minmax(220px,1.25fr);gap:12px;align-items:end;padding:8px 14px;border-bottom:1px solid var(--border-soft);background:var(--surface-table)}.property-manager-acknowledge{display:inline-flex;align-items:center;gap:5px;min-height:29px;color:var(--notice-text);font-size:11px}.property-manager-feedback{min-height:29px;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:5px 14px;border-bottom:1px solid var(--border-soft);background:var(--surface-table);color:var(--text-mid);font-size:11px}.property-manager-feedback [role=alert]{color:var(--notice-text);font-weight:650;text-align:right}.property-manager-occurrence-title{position:sticky;top:0;z-index:2;padding:7px 9px;border-bottom:1px solid var(--border);background:var(--surface-table);color:var(--text-mid);font-size:10px;font-weight:700;letter-spacing:.05em;text-transform:uppercase}.property-manager-occurrences th:first-child{width:27%}.property-manager-occurrences th:nth-child(2){width:19%}.property-manager-occurrences th{top:29px}.property-manager-occurrences code{display:block;max-height:48px;overflow:hidden;color:var(--text);font:11px/1.35 Cascadia Mono,Consolas,monospace;overflow-wrap:anywhere;white-space:pre-wrap}.property-manager-value.expanded{max-height:none;overflow:visible}.property-manager-value:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.property-manager-value-toggle{margin-top:4px;padding:0;border:0;background:transparent;color:var(--link);cursor:pointer;font:600 10px/1.3 Segoe UI,system-ui,sans-serif;text-align:left}.property-manager-value-toggle:hover{text-decoration:underline}.property-manager-navigate{color:var(--link);font-weight:500}.property-manager-empty{padding:18px 12px;color:var(--text-dim);font-size:11px;text-align:center}.property-manager-pagination{min-height:32px;display:flex;align-items:center;justify-content:space-between;gap:8px;padding:4px 8px;border-top:1px solid var(--border);background:var(--surface-table);color:var(--text-mid);font:10px Cascadia Mono,Consolas,monospace;font-variant-numeric:tabular-nums}.property-manager-pagination button{width:25px;height:23px;padding:0;border:1px solid var(--border);border-radius:3px;background:var(--input-bg);color:var(--link);cursor:pointer;font:18px/1 Segoe UI,system-ui,sans-serif}.property-manager-pagination button:disabled{cursor:default;opacity:.4}.property-manager-pagination span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.property-manager-actions{display:flex;justify-content:flex-end;gap:7px;padding:10px 18px 12px;border-top:1px solid var(--border);background:var(--header-bg)}.tb-btn.primary.danger{border-color:var(--danger-fill);background:var(--danger-fill)}.tb-btn.primary.danger:hover:not(:disabled){background:var(--danger-fill-hover)}.property-manager-entry{align-self:flex-start;margin:2px 0 7px;border-color:var(--border)}@media(max-width:760px){.property-manager-backdrop{padding:8px}.property-manager-dialog{max-height:94vh}.property-manager-header>span{display:none}.property-manager-body{grid-template-columns:1fr;grid-template-rows:minmax(150px,36%) minmax(220px,64%)}.property-manager-keys{border-right:0;border-bottom:1px solid var(--border)}.property-manager-rename{grid-template-columns:1fr}.property-manager-occurrences th:nth-child(2),.property-manager-occurrences td:nth-child(2){display:none}}.find-replace-backdrop{padding:18px}.find-replace-dialog{width:min(920px,100%);max-height:min(86vh,720px);display:flex;flex-direction:column;overflow:hidden;border:1px solid var(--border);border-radius:8px;background:var(--panel-bg);box-shadow:0 24px 60px #18222e4d}.find-replace-header{display:flex;align-items:flex-start;justify-content:space-between;gap:18px;padding:16px 18px 13px;border-bottom:1px solid var(--border-soft);background:var(--header-bg)}.find-replace-header h2{margin:1px 0 0;font-size:18px;font-weight:650;letter-spacing:-.01em}.find-replace-kicker{color:var(--accent);font-size:10px;font-weight:700;letter-spacing:.09em;text-transform:uppercase}.find-replace-scope-note{margin-top:4px;color:var(--text-dim);font-size:11px;white-space:nowrap}.find-replace-query-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;padding:12px 18px 8px}.find-replace-query-grid label{display:grid;gap:4px;color:var(--text-mid);font-size:11px;font-weight:600}.find-replace-query-grid input{width:100%;min-width:0;height:29px;padding:4px 7px;border:1px solid var(--border);border-radius:4px;background:var(--input-bg);color:var(--text);font:13px Segoe UI,system-ui,sans-serif}.find-replace-query-grid input:focus-visible,.find-replace-options input:focus-visible,.find-replace-preview-wrap input:focus-visible{outline:2px solid var(--accent);outline-offset:1px}.find-replace-options{display:grid;grid-template-columns:.8fr 1.45fr 1fr;gap:8px;padding:2px 18px 8px}.find-replace-options fieldset{min-width:0;margin:0;padding:6px 8px 7px;border:1px solid var(--border-soft);border-radius:5px}.find-replace-options legend{padding:0 4px;color:var(--text-mid);font-size:10px;font-weight:700;letter-spacing:.04em;text-transform:uppercase}.find-replace-options label{display:inline-flex;align-items:center;gap:4px;margin:2px 10px 2px 0;font-size:12px;white-space:nowrap}.find-replace-options input{margin:0}.find-replace-feedback{min-height:27px;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:5px 18px;border-top:1px solid var(--border-soft);border-bottom:1px solid var(--border-soft);background:var(--surface-table);color:var(--text-mid);font-size:11px}.find-replace-feedback [role=alert]{color:var(--danger);font-weight:600}.find-replace-preview-wrap{min-height:118px;flex:1;overflow:auto;background:var(--panel-bg)}.find-replace-preview-wrap table{width:100%;border-collapse:separate;border-spacing:0;table-layout:fixed;font-size:11px}.find-replace-preview-wrap th{position:sticky;top:0;z-index:1;padding:6px 7px;border-bottom:1px solid var(--border);background:var(--surface-table);color:var(--text-mid);font-weight:650;text-align:left}.find-replace-preview-wrap th:nth-child(2){width:24%}.find-replace-preview-wrap th:nth-child(3){width:15%}.find-replace-preview-wrap th:nth-child(4){width:auto}.find-replace-preview-wrap td{padding:7px;border-bottom:1px solid var(--border-soft);vertical-align:top}.find-replace-preview-wrap tbody tr:hover{background:var(--surface-hover)}.find-replace-check{width:34px;text-align:center!important}.find-replace-navigate{display:block;max-width:100%;overflow:hidden;padding:0;border:0;background:transparent;color:var(--link);cursor:pointer;font:inherit;font-weight:650;text-align:left;text-overflow:ellipsis;white-space:nowrap}.find-replace-navigate:hover{text-decoration:underline}.find-replace-navigate:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.find-replace-location{display:block;margin-top:2px;overflow:hidden;color:var(--text-dim);text-overflow:ellipsis;white-space:nowrap}.find-replace-change{display:grid;grid-template-columns:minmax(0,1fr) 14px minmax(0,1fr);gap:4px;align-items:start}.find-replace-change code{display:block;min-height:24px;max-height:54px;overflow:hidden;padding:4px 5px;border:1px solid var(--border-soft);border-radius:3px;background:var(--surface-code);color:var(--text);font:11px/1.35 Cascadia Mono,Consolas,monospace;overflow-wrap:anywhere;white-space:pre-wrap}.find-replace-change code:last-child{border-color:color-mix(in srgb,var(--accent) 40%,var(--border));background:var(--accent-soft);color:var(--accent)}.find-replace-change>span{padding-top:5px;color:var(--text-dim);text-align:center}.find-replace-count{width:54px;text-align:center!important}.find-replace-count span{display:inline-flex;min-width:23px;height:20px;align-items:center;justify-content:center;padding:0 6px;border:1px solid var(--border);border-radius:10px;background:var(--surface-subtle);color:var(--text-mid);font-weight:700}.find-replace-actions{display:flex;justify-content:flex-end;gap:7px;padding:10px 18px 12px;border-top:1px solid var(--border);background:var(--header-bg)}@media(max-width:620px){.find-replace-backdrop{padding:8px}.find-replace-dialog{max-height:94vh}.find-replace-query-grid,.find-replace-options{grid-template-columns:1fr}.find-replace-scope-note{display:none}.find-replace-preview-wrap th:nth-child(3),.find-replace-preview-wrap td:nth-child(3){display:none}.find-replace-preview-wrap th:nth-child(2){width:31%}}.update-toast{position:fixed;right:16px;bottom:16px;z-index:2000;display:flex;align-items:center;gap:10px;padding:10px 14px;background:var(--panel-bg);border:1px solid var(--border);border-radius:8px;box-shadow:0 4px 16px #0000002e;font-size:13px}.shortcut-table{border-collapse:collapse;margin-bottom:12px}.shortcut-table td{padding:3px 12px 3px 0;vertical-align:top}.shortcut-table code{background:var(--header-bg);padding:1px 6px;border-radius:4px;white-space:nowrap}.zoom-controls{position:absolute;right:14px;bottom:14px;display:flex;align-items:center;background:var(--surface-elevated);border:1px solid var(--border);border-radius:6px;overflow:hidden;box-shadow:0 4px 12px -6px #0f162038;user-select:none}.zoom-btn{font:inherit;font-size:12px;border:none;background:transparent;color:var(--text-dim);padding:2px 7px;cursor:pointer;display:inline-flex;align-items:center;min-width:24px;justify-content:center}.zoom-btn:hover{background:var(--accent-soft);color:var(--text)}.zoom-pct{min-width:42px;border-left:1px solid var(--border);border-right:1px solid var(--border)}.viewer-shell{height:100%;display:flex;flex-direction:column;min-height:0;background:var(--bg)}.viewer-toolbar{flex:0 0 auto;display:flex;align-items:center;gap:12px;padding:7px 10px;border-bottom:1px solid var(--border);background:var(--toolbar-bg)}.viewer-title{min-width:0;display:flex;flex-direction:column;gap:1px;margin-right:auto}.viewer-title strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.viewer-title span,.viewer-view-picker span{color:var(--text-dim);font-size:12px}.viewer-view-picker{display:flex;align-items:center;gap:6px}.viewer-view-picker select{font:inherit;max-width:min(280px,38vw);padding:3px 6px;border:1px solid var(--border);border-radius:4px}.viewer-main{flex:1;min-height:0;display:grid;grid-template-columns:minmax(0,1fr) 320px}.viewer-canvas{min-width:0;min-height:0;display:flex;border-right:1px solid var(--border);background:#fff}.viewer-properties{min-height:0;display:flex;background:var(--panel-bg)}.viewer-empty{margin:auto;max-width:460px;padding:24px;text-align:center;color:var(--text-dim)}.viewer-empty h1{margin:0 0 8px;color:var(--accent);font-size:20px}.view-editor.read-only .view-svg{touch-action:none}@media(max-width:760px){.viewer-toolbar{align-items:stretch;flex-wrap:wrap}.viewer-title{flex-basis:100%}.viewer-main{grid-template-columns:1fr;grid-template-rows:minmax(0,1fr) minmax(180px,32vh)}.viewer-canvas{border-right:none;border-bottom:1px solid var(--border)}}.specializations-manager{width:min(920px,calc(100vw - 48px));max-height:min(720px,calc(100vh - 48px));overflow:auto;border:1px solid var(--border);border-radius:8px;background:var(--panel-bg);box-shadow:0 16px 48px #0006;padding:18px}.specializations-manager>header,.specializations-manager>footer{display:flex;align-items:center;justify-content:space-between;gap:10px}.specializations-manager h2{margin:2px 0 12px;font-size:19px}.specializations-manager>footer{justify-content:flex-end;margin-top:16px}.specializations-table{display:grid;gap:4px}.specializations-head,.specializations-row{display:grid;grid-template-columns:minmax(180px,1.4fr) minmax(180px,1fr) 72px 118px 30px;align-items:center;gap:8px}.specializations-head{color:var(--text-dim);font-size:12px;padding:0 4px}.specialization-count{text-align:center}.specialization-image-controls{display:flex;align-items:center;gap:4px}.specialization-image-preview{width:78px;height:34px;display:grid;place-items:center;border:1px solid var(--border);background:var(--panel-bg);color:inherit;font-size:11px;cursor:pointer}.specialization-image-preview img{max-width:100%;max-height:100%;object-fit:contain}.specialization-image-editor{margin:10px 0;padding:10px;border:1px solid var(--border);background:var(--panel-bg)}.specializations-error{color:var(--danger);margin-top:10px}.image-gallery{display:grid;gap:8px}.image-import-btn{width:fit-content;cursor:pointer}.image-gallery-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(72px,1fr));gap:6px}.image-gallery-item{min-width:0;height:76px;display:grid;grid-template-rows:1fr auto;place-items:center;padding:4px;border:1px solid var(--border);background:var(--panel-bg);color:inherit}.image-gallery-item.selected{outline:2px solid var(--canvas-selection)}html :focus-visible{outline:2px solid var(--accent);outline-offset:1px}.image-gallery-item img{max-width:100%;max-height:52px;object-fit:contain;image-rendering:auto}.image-gallery-item span{max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:10px}.image-preview{min-height:88px;display:grid;place-items:center;border:1px solid var(--border);margin-bottom:8px}.image-preview img{max-width:100%;max-height:160px;object-fit:contain}.template-gallery-dialog{width:min(1040px,calc(100vw - 32px));height:min(740px,calc(100vh - 32px));max-width:none;max-height:none;display:flex;flex-direction:column;overflow:hidden;padding:0;border:1px solid #cbd4df;border-radius:10px}.template-gallery-header{flex:0 0 auto;display:flex;align-items:flex-start;justify-content:space-between;gap:16px;padding:18px 20px 16px}.template-gallery-heading{display:flex;align-items:center;gap:12px;min-width:0}.template-gallery-heading-icon{flex:0 0 auto;width:42px;height:42px;display:grid;place-items:center;border:1px solid color-mix(in srgb,var(--accent) 35%,var(--border));border-radius:8px;background:var(--accent-soft);color:var(--accent)}.template-gallery-header h2{margin:1px 0 0;font-size:20px;line-height:1.2}.template-gallery-header p{margin:4px 0 0;color:var(--text-dim);font-size:12px}.template-gallery-close{flex:0 0 auto;width:32px;height:32px;display:grid;place-items:center;padding:0;border:1px solid transparent;border-radius:5px;background:transparent;color:var(--text-dim);cursor:pointer}.template-gallery-close:hover:not(:disabled){border-color:var(--border);background:var(--header-bg);color:var(--text)}.template-gallery-close:focus-visible,.template-gallery-dialog .tb-btn:focus-visible,.template-gallery-dialog input:focus-visible,.template-gallery-dialog select:focus-visible,.template-gallery-dialog textarea:focus-visible,.template-card:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.template-gallery-toolbar{flex:0 0 auto;display:grid;grid-template-columns:minmax(220px,1fr) minmax(150px,190px) auto;align-items:center;gap:8px;padding:10px 12px;border-top:1px solid var(--border-soft);border-bottom:1px solid var(--border);background:var(--surface-table)}.template-gallery-search{position:relative;min-width:0}.template-gallery-search>svg{position:absolute;top:50%;left:10px;z-index:1;transform:translateY(-50%);color:var(--text-dim);pointer-events:none}.template-gallery-toolbar input,.template-gallery-toolbar select,.template-editor input,.template-editor select,.template-editor textarea{min-width:0;width:100%;padding:7px 9px;border:1px solid var(--border);border-radius:5px;background:var(--panel-bg);color:var(--text);font:inherit}.template-gallery-toolbar input,.template-gallery-toolbar select{height:34px}.template-gallery-search input{padding-left:32px}.template-gallery-utility-actions,.template-gallery-empty-actions{display:flex;align-items:center;gap:6px}.template-gallery-dialog .tb-btn,.template-import{min-height:32px;display:inline-flex;align-items:center;justify-content:center;gap:6px;white-space:nowrap}.template-import{position:relative;overflow:hidden;cursor:pointer}.template-import input{position:absolute;inset:0;opacity:0;cursor:pointer}.template-gallery-body{flex:1 1 auto;min-height:0;display:grid;grid-template-columns:minmax(360px,1fr) minmax(300px,340px);overflow:hidden}.template-catalog-panel{min-width:0;min-height:0;display:flex;flex-direction:column;border-right:1px solid var(--border);background:var(--surface-subtle)}.template-panel-heading{flex:0 0 auto;display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:35px;padding:8px 12px;color:var(--text-mid);font-size:11px;font-weight:700;letter-spacing:.04em;text-transform:uppercase}.template-panel-heading small{color:var(--text-dim);font-size:10px;font-weight:500;letter-spacing:0;text-transform:none}.template-card-list{flex:1 1 auto;overflow:auto;padding:0 10px 10px;display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));align-content:start;gap:8px}.template-card{position:relative;min-width:0;min-height:76px;display:grid;grid-template-columns:72px minmax(0,1fr);align-items:center;gap:10px;padding:9px;overflow:hidden;border:1px solid var(--border);border-radius:6px;background:var(--panel-bg);color:var(--text);text-align:left;cursor:pointer}.template-card:hover{border-color:var(--accent);box-shadow:0 2px 8px #28497014}.template-card.selected{border-color:var(--accent);background:var(--surface-selected);box-shadow:inset 3px 0 0 var(--accent),0 2px 8px #28497014}.template-card-copy{min-width:0;display:grid;gap:3px}.template-card-copy strong,.template-card-copy>span,.template-card-copy small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.template-card-copy>span{color:var(--text-mid);font-size:11px}.template-card-copy small{color:var(--text-dim);font-size:10px}.template-thumbnail{width:72px;height:54px;display:grid;place-items:center;overflow:hidden;border:1px solid var(--border);border-radius:4px;background-color:var(--surface-subtle);background-image:linear-gradient(color-mix(in srgb,var(--accent) 8%,transparent) 1px,transparent 1px),linear-gradient(90deg,color-mix(in srgb,var(--accent) 8%,transparent) 1px,transparent 1px);background-size:12px 12px;color:var(--accent)}.template-thumbnail.large{width:100%;height:168px}.template-thumbnail>svg{width:25px;height:25px;stroke-width:1.5}.template-thumbnail img{width:100%;height:100%;object-fit:contain;background:#fff}.template-editor{min-width:0;min-height:0;overflow:auto;display:flex;flex-direction:column;gap:10px;padding:0 12px 12px;background:var(--panel-bg)}.template-editor>.template-panel-heading{margin:0 -12px}.template-editor-fields{display:grid;gap:9px}.template-editor label{display:grid;gap:4px;color:var(--text-dim);font-size:11px;font-weight:600}.template-editor textarea{resize:vertical}.template-save-metadata{align-self:flex-end}.template-gallery-empty{flex:1 1 auto;min-height:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:15px;padding:40px 24px;text-align:center;background-color:var(--surface-subtle);background-image:linear-gradient(color-mix(in srgb,var(--accent) 5%,transparent) 1px,transparent 1px),linear-gradient(90deg,color-mix(in srgb,var(--accent) 5%,transparent) 1px,transparent 1px);background-size:24px 24px;border-top:1px solid var(--border-soft)}.template-gallery-empty-icon{width:72px;height:72px;display:grid;place-items:center;border:1px solid color-mix(in srgb,var(--accent) 35%,var(--border));border-radius:16px;background:color-mix(in srgb,var(--accent-soft) 94%,transparent);color:var(--accent);box-shadow:0 10px 24px #365b841c}.template-gallery-empty h3{margin:0;font-size:18px}.template-gallery-empty p{max-width:430px;margin:6px 0 0;color:var(--text-dim);line-height:1.45}.template-gallery-empty small{color:var(--text-dim);font-size:10px}.template-gallery-no-results{gap:12px}.template-gallery-dialog>footer{flex:0 0 auto;display:flex;align-items:center;gap:7px;min-height:54px;padding:10px 12px;border-top:1px solid var(--border);background:var(--panel-bg)}.template-gallery-dialog>footer>span{flex:1}.template-gallery-dialog .tb-btn.danger{color:var(--danger)}.template-gallery-dialog .tb-btn.danger:hover:not(:disabled){border-color:var(--danger);background:var(--danger-soft)}.template-gallery-error{flex:0 0 auto;margin:0;padding:8px 12px;color:var(--danger);background:var(--danger-soft);border-top:1px solid var(--danger)}@media(max-width:760px){.template-gallery-dialog{width:calc(100vw - 16px);height:calc(100vh - 16px);border-radius:7px}.template-gallery-toolbar{grid-template-columns:minmax(0,1fr) minmax(130px,180px)}.template-gallery-utility-actions{grid-column:1 / -1;justify-content:flex-end}.template-gallery-body{grid-template-columns:minmax(0,1fr);grid-template-rows:minmax(120px,.75fr) minmax(0,1.25fr)}.template-catalog-panel{border-right:0;border-bottom:1px solid var(--border)}.template-card-list{grid-template-columns:repeat(auto-fill,minmax(210px,1fr))}.template-thumbnail.large{height:132px}}@media(max-width:520px){.template-gallery-dialog{width:calc(100vw - 8px);height:calc(100vh - 8px)}.template-gallery-header{padding:13px 14px 12px}.template-gallery-heading{gap:9px}.template-gallery-heading-icon{width:36px;height:36px}.template-gallery-header h2{font-size:18px}.template-gallery-header p{display:none}.template-gallery-toolbar{grid-template-columns:minmax(0,1fr);padding:8px}.template-gallery-utility-actions{grid-column:auto;display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}.template-gallery-empty{padding:28px 16px}.template-gallery-empty-actions{width:min(100%,300px);display:grid;grid-template-columns:minmax(0,1fr)}.template-gallery-body{grid-template-rows:minmax(110px,.7fr) minmax(0,1.3fr)}.template-card-list{grid-template-columns:minmax(0,1fr);padding-inline:8px}.template-gallery-dialog>footer{padding:8px}}
