:root{--bg: #18232d;--panel: #19252f;--panel-2: #1e2d38;--line: #2b3e4b;--text: #cfdee7;--dim: #94a2ac;--accent: #51b7dc;--ok: #4ec9a5;--err: #d05656;--title: #173648;--soft: #1e2d38;--accent-light: #213e4e;--danger: #bb4b4b;--icon-secondary: #d08b3e;--radius-s: 5px;--radius-m: 7px;--radius-l: 10px;--shadow-1: 0 2px 10px rgba(8, 20, 28, .35);--shadow-2: 0 12px 45px rgba(8, 20, 28, .45);--titlebar-h: 38px;--menubar-h: 34px;--ribbon-h: 76px;--overlay-bg: rgba(25, 37, 47, .88);--overlay-bg-strong: rgba(25, 37, 47, .9);--inset: #141f29;--hover: rgba(255, 255, 255, .06);--on-accent: #06121f;--backdrop: rgba(6, 12, 18, .6);--viewport-bg: #182129;--ground: #18232d;--grid-cell: #22343f;--grid-section: #3e5a6e;color-scheme:dark}:root[data-theme=light]{--bg: #ffffff;--panel: #ffffff;--panel-2: #f6f8fa;--line: #e2e8ec;--text: #243744;--dim: #5c7d91;--accent: #087aa4;--ok: #1a7f37;--err: #b3413f;--title: #112632;--soft: #f6f8fa;--accent-light: #e7f4fa;--danger: #bb4b4b;--icon-secondary: #d08b3e;--shadow-1: 0 2px 10px rgba(30, 50, 65, .12);--shadow-2: 0 12px 45px rgba(30, 50, 65, .18);--overlay-bg: rgba(255, 255, 255, .92);--overlay-bg-strong: rgba(255, 255, 255, .95);--inset: #eef2f6;--hover: rgba(0, 0, 0, .05);--on-accent: #ffffff;--backdrop: rgba(80, 90, 100, .35);--viewport-bg: #edf3f7;--ground: #dde5eb;--grid-cell: #c8d4dd;--grid-section: #94a9b8;color-scheme:light}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{background:var(--bg);color:var(--text);font:14px/1.6 Inter,-apple-system,BlinkMacSystemFont,Segoe UI,PingFang SC,Microsoft YaHei,system-ui,sans-serif}.app{--chat-w: 420px;--tree-w: 264px;--dock-h: 300px;--tb-h: calc(var(--titlebar-h) + var(--menubar-h));display:grid;grid-template-columns:minmax(0,1fr) 6px var(--chat-w);grid-template-rows:minmax(0,1fr);height:100%}.stage{display:flex;flex-direction:column;position:relative;min-width:0;min-height:0;height:100%}.stage-viewport{position:relative;flex:1;min-height:0;display:flex;flex-direction:row}.stage canvas{display:block;width:100%;height:100%}.stage-canvas{position:relative;flex:1 1 auto;min-width:0;min-height:0}.overlay{position:absolute;background:var(--overlay-bg);border:1px solid var(--line);border-radius:10px;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.tree-rail{flex:none;width:var(--tree-w);display:flex;flex-direction:column;border-right:1px solid var(--line);background:var(--panel);min-height:0;z-index:4}.tree-rail>.feature-tree{flex:1 1 auto;min-height:0;height:auto}.tree-resizer{flex:none;width:6px;cursor:col-resize;background:transparent;z-index:4}.tree-resizer:hover,.app.resizing .tree-resizer{background:var(--accent)}.tree-toggle{position:absolute;left:calc(var(--tree-w) + 6px);top:50%;transform:translateY(-50%);z-index:6;width:14px;height:46px;padding:0;display:flex;align-items:center;justify-content:center;background:var(--panel);border:1px solid var(--line);border-left:none;border-radius:0 7px 7px 0;color:var(--dim);font-size:12px;cursor:pointer}.tree-toggle:hover{color:var(--accent);border-color:var(--accent)}.tree-toggle.is-collapsed{left:0}.tool-dock{flex:none;height:var(--dock-h);min-height:0;display:flex;flex-direction:column;background:var(--panel);border-top:1px solid var(--line);overflow:hidden}.dock-resizer{flex:none;height:6px;cursor:row-resize;background:transparent}.dock-resizer:hover,.app.resizing .dock-resizer{background:var(--accent)}.dock-head{flex:none;display:flex;align-items:center;justify-content:space-between;gap:6px;padding:6px 6px 6px 8px;background:var(--soft);border-bottom:1px solid var(--line);position:relative}.dock-head:before{content:"";position:absolute;left:0;top:0;bottom:0;width:3px;background:var(--accent)}.dock-title{font-size:11px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--text)}.dock-close{background:none;border:none;cursor:pointer;color:var(--dim);font-size:15px;line-height:1;padding:0 3px}.dock-close:hover{color:var(--err)}.dock-body{flex:1;min-height:0;overflow:auto;padding:8px}.dock-form{display:flex;flex-direction:column;gap:7px}.ed-grid{gap:1px}.ed-row{display:grid;grid-template-columns:64px 1fr;align-items:center;gap:6px;min-height:24px;font-size:12px}.ed-row .ed-label{color:var(--dim);font-size:12px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ed-row input,.ed-row select{background:var(--panel);color:var(--text);border:1px solid var(--line);border-radius:5px;padding:2px 6px;font-size:12px;min-width:0;font-family:inherit}.ed-row input:focus,.ed-row select:focus{outline:none;border-color:var(--accent)}.ed-row input[aria-invalid=true]{border-color:var(--err)}.ed-row input[type=checkbox]{justify-self:start}.ed-row-wrap{align-items:start;padding-top:4px}.ed-checks{display:flex;flex-wrap:wrap;gap:2px 10px}.ed-check{display:inline-flex;align-items:center;gap:4px;font-size:11.5px;color:var(--text);cursor:pointer;-webkit-user-select:none;user-select:none}.ed-check input{margin:0}.ed-inline-err{grid-column:2;font-size:10px}.ed-actions{display:flex;gap:6px;min-height:24px;align-items:center}.dock-btn.sm{padding:1px 8px;font-size:11px}.dock-sub{margin:0;font-size:12px;line-height:1.5;color:var(--dim)}.dock-ok{margin:0;font-size:10.5px;color:var(--ok)}.dock-blocked{display:flex;flex-direction:column;align-items:flex-start;gap:6px;font-size:11px;line-height:1.6;color:var(--dim)}.dock-actions{display:flex;gap:6px;flex-wrap:wrap;padding-top:2px}.dock-btn{background:var(--panel);border:1px solid var(--line);border-radius:6px;padding:4px 10px;cursor:pointer;color:var(--text);font:inherit;font-size:11.5px}.dock-btn:hover:not(:disabled){border-color:var(--accent);color:var(--accent)}.dock-btn:disabled{opacity:.45;cursor:not-allowed}.dock-btn.primary{background:var(--accent);border-color:var(--accent);color:#fff}.dock-btn.primary:hover:not(:disabled){filter:brightness(1.1);color:#fff}.dock-btn.danger:hover:not(:disabled){border-color:var(--err);color:var(--err)}.sk-loops{display:flex;flex-direction:column;gap:4px}.sk-loop{display:flex;flex-direction:column;gap:2px}.sk-loop-head{display:flex;justify-content:space-between;align-items:center;font-size:11px;color:var(--dim);min-height:18px}.sk-mini{background:none;border:none;color:var(--dim);cursor:pointer;font:inherit;font-size:11px;padding:0 4px;line-height:1}.sk-mini:hover:not(:disabled){color:var(--err)}.sk-table{border-collapse:collapse;width:100%;table-layout:fixed}.sk-table th{font-weight:400;font-size:10px;color:var(--dim);text-align:left;padding:0 2px;height:16px}.sk-table th:first-child,.sk-table td:first-child{width:20px}.sk-table th:last-child,.sk-table td:last-child{width:20px}.sk-table td{padding:1px 2px}.sk-table td.sk-idx{font-size:10.5px;color:var(--dim)}.sk-table td input{width:100%;min-width:0;box-sizing:border-box;height:20px;background:var(--panel);color:var(--text);border:1px solid var(--line);border-radius:4px;padding:0 4px;font-size:11px;font-family:inherit}.sk-table td input:focus{outline:none;border-color:var(--accent)}.sk-add{align-self:flex-start;background:none;border:1px dashed var(--line);border-radius:4px;color:var(--dim);font:inherit;font-size:10.5px;padding:1px 6px;cursor:pointer}.sk-add:hover:not(:disabled){border-color:var(--accent);color:var(--accent)}.sk-circ{display:grid;grid-template-columns:1fr 1fr 1fr;gap:4px}.sk-circ input{width:100%;min-width:0;box-sizing:border-box;height:20px;background:var(--panel);color:var(--text);border:1px solid var(--line);border-radius:4px;padding:0 4px;font-size:11px;font-family:inherit}.sk-circ input:focus{outline:none;border-color:var(--accent)}.sk-table td input[type=checkbox]{width:auto;height:auto;accent-color:var(--accent)}.sk-kind{background:var(--panel);color:var(--text);border:1px solid var(--line);border-radius:4px;font:inherit;font-size:10.5px;height:18px;padding:0 2px}.sk-dims{display:flex;flex-direction:column;gap:3px}.sk-dims-hint{margin:0;font-size:10.5px}.sk-dim-row{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,1fr) minmax(0,.9fr);gap:4px;align-items:center}.sk-dim-label{font-size:10.5px;color:var(--dim);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sk-dim-in{width:100%;min-width:0;box-sizing:border-box;height:20px;background:var(--panel);color:var(--text);border:1px solid var(--line);border-radius:4px;padding:0 4px;font-size:11px;font-family:inherit}.sk-dim-in:focus{outline:none;border-color:var(--accent)}.sk-dim-val{font-size:10.5px;color:var(--dim);font-variant-numeric:tabular-nums;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sk-dim-val.bad{color:var(--err)}.skd-tools{display:flex;gap:4px;flex-wrap:wrap}.skd-tool{background:var(--panel);color:var(--dim);border:1px solid var(--line);border-radius:4px;font:inherit;font-size:11px;height:22px;padding:0 8px;cursor:pointer}.skd-tool:hover:not(:disabled){border-color:var(--accent);color:var(--text)}.skd-tool.on{color:var(--on-accent);background:color-mix(in srgb,var(--accent) 82%,#000 18%);border-color:transparent}.skd-hint{margin:2px 0 0;font-size:11px;color:var(--dim);min-height:15px}.dock-swatches{display:flex;flex-wrap:wrap;gap:5px}.measure-list{display:flex;flex-direction:column;gap:4px}.measure-item{display:flex;align-items:center;gap:8px;padding:5px 8px;border:1px solid var(--line);border-radius:8px;background:var(--soft);cursor:pointer;text-align:left}.measure-item:hover{border-color:var(--accent)}.measure-item.on{background:color-mix(in srgb,var(--accent) 16%,transparent);border-color:var(--accent)}.measure-item svg{width:16px;height:16px;flex:none}.measure-name{font-size:12px;font-weight:600;flex:none}.measure-hint{font-size:10.5px;color:var(--dim);margin-left:auto;line-height:1.25}.dock-swatch{width:20px;height:20px;padding:0;border:1px solid var(--line);border-radius:5px;cursor:pointer}.dock-swatch.on{border-color:var(--text);box-shadow:0 0 0 1px var(--text)}.dock-swatch.sm{width:13px;height:13px;border-radius:3px;flex:none}.dock-color-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:3px}.dock-color-list li,.dock-color-row{display:flex;align-items:center;gap:5px;font-size:10.5px}.dock-color-key{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--text);font-family:ui-monospace,monospace}.dock-x{flex:none;background:none;border:none;cursor:pointer;color:var(--dim);font-size:13px;line-height:1;padding:0 2px}.dock-x:hover{color:var(--err)}.sec-toggle{gap:3px}.sec-check{display:flex;align-items:center;gap:6px;font-size:12px;color:var(--text);cursor:pointer}.sec-check input{margin:0;flex:none}.sec-planes{display:flex;flex-direction:column;gap:6px}.sec-plane{border:1px solid var(--line);border-radius:6px;background:var(--panel);padding:5px 6px;display:flex;flex-direction:column;gap:4px}.sec-plane.muted{opacity:.55}.sec-plane-head{display:flex;align-items:center;justify-content:space-between}.sec-axis-row{display:flex;align-items:center;gap:4px}.sec-axis{flex:none;min-width:24px;background:var(--panel-2);border:1px solid var(--line);border-radius:5px;padding:2px 0;cursor:pointer;color:var(--text);font:inherit;font-size:10.5px;text-align:center}.sec-axis:hover:not(:disabled){border-color:var(--accent);color:var(--accent)}.sec-axis.on{background:var(--accent);border-color:var(--accent);color:#fff}.sec-axis:disabled{opacity:.45;cursor:not-allowed}.sec-normal{margin-left:auto;font-size:10.5px;color:var(--dim);font-variant-numeric:tabular-nums}.sec-slider{display:grid;grid-template-columns:28px 1fr 52px;align-items:center;gap:5px;font-size:11px;color:var(--dim)}.sec-slider input{width:100%;min-width:0;margin:0}.sec-slider-label{white-space:nowrap}.sec-slider-val{text-align:right;color:var(--text);font-variant-numeric:tabular-nums;font-size:11px}.app-titlebar{flex:none;height:var(--titlebar-h);display:flex;align-items:center;gap:8px;padding:0 10px 0 12px;background:var(--title);color:#cfe0ea;-webkit-user-select:none;user-select:none}.tl-logo{display:flex;align-items:center;gap:7px;flex:none}.tl-logo svg{color:#51b7dc;flex:none}.tl-title{font-size:12.5px;font-weight:600;letter-spacing:.02em;white-space:nowrap}.tl-name{font-size:11px;color:color-mix(in srgb,#cfe0ea 55%,transparent);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.tl-spring{flex:1}.tl-btn{width:26px;height:26px;flex:none;display:inline-flex;align-items:center;justify-content:center;border:none;background:transparent;color:#cfe0ea;border-radius:var(--radius-s);cursor:pointer}.tl-btn svg{width:16px;height:16px;flex:none}.tl-btn:hover:not(:disabled){background:#ffffff17;color:#fff}.tl-btn:disabled{opacity:.35;cursor:default}.tl-btn.on{background:color-mix(in srgb,#51b7dc 30%,transparent);color:#fff}.tl-sep{width:1px;height:16px;background:#ffffff29;margin:0 4px;flex:none}.app-menubar{flex:none;height:var(--menubar-h);display:flex;align-items:stretch;gap:2px;padding:0 10px 0 6px;background:var(--panel);border-bottom:1px solid var(--line)}.mb-dd{display:flex;align-items:stretch;flex:none}.mb-menu{position:relative;border:none;background:transparent;cursor:pointer;padding:0 12px;font-size:12px;color:var(--dim);white-space:nowrap}.mb-menu:hover{color:var(--text)}.mb-menu.open{color:var(--text);background:color-mix(in srgb,var(--accent) 14%,transparent)}.mb-menu.on{color:var(--text);font-weight:600}.mb-menu.on:after{content:"";position:absolute;left:8px;right:8px;bottom:0;height:2px;background:var(--accent);border-radius:1px 1px 0 0}.mb-bar-sep{width:1px;background:var(--line);margin:7px 8px 7px 6px;flex:none}.mb-spring{flex:1}.app-menubar .tb-search{align-self:center}.mb-popover{position:fixed;z-index:1000;width:236px;max-height:calc(100vh - 120px);overflow-y:auto;display:flex;flex-direction:column;gap:1px;padding:5px;background:var(--panel);border:1px solid var(--line);border-radius:var(--radius-m);box-shadow:var(--shadow-2)}.mb-header{font-size:10px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--dim);padding:6px 10px 3px;white-space:nowrap}.mb-divider{height:1px;background:var(--line);margin:4px 2px;flex:none}.mb-item{display:flex;align-items:center;justify-content:space-between;gap:8px;border:none;background:transparent;cursor:pointer;padding:6px 10px;border-radius:var(--radius-s);font-size:12px;color:var(--text);text-align:left;white-space:nowrap}.mb-item svg{width:15px;height:15px;flex:none;color:var(--dim)}.mb-item:hover:not(:disabled) svg{color:var(--accent)}.mb-item:hover:not(:disabled){background:color-mix(in srgb,var(--accent) 14%,transparent)}.mb-item:disabled{color:var(--dim);opacity:.55;cursor:default}.mb-item-title{flex:1;overflow:hidden;text-overflow:ellipsis}.mb-sep{height:1px;background:var(--line);margin:4px 8px;flex:none}.mb-hint{flex:none;font-family:inherit;font-size:10px;color:var(--dim);background:var(--inset);border:1px solid var(--line);border-radius:4px;padding:1px 5px}.tb-search.is-compact{height:26px;padding:0 8px;gap:5px}.tb-search.is-compact .tb-search-input{font-size:11.5px;width:110px}.mb-tabs{display:flex;align-items:stretch;flex:none}.app-ribbon{flex:none;height:var(--ribbon-h);display:flex;align-items:stretch;gap:4px;padding:4px 8px 3px;background:var(--panel);border-bottom:1px solid var(--line);overflow-x:auto;overflow-y:hidden;scrollbar-width:thin}.rb-group{display:flex;flex-direction:column;gap:3px;flex:none}.rb-buttons{display:flex;align-items:center;gap:3px;flex:1}.rb-label{font-size:9.5px;color:var(--dim);text-align:center;line-height:1;white-space:nowrap}.rb-sep{width:1px;background:var(--line);margin:3px 0;flex:none}.rb-btn{display:inline-flex;align-items:center;gap:5px;height:34px;padding:0 7px;border:none;background:transparent;color:var(--text);border-radius:var(--radius-s);font-size:11.5px;cursor:pointer;white-space:nowrap}.rb-btn svg{width:15px;height:15px;flex:none}.rb-btn:hover:not(:disabled){background:var(--hover)}.rb-btn:disabled{opacity:.45;cursor:default}.rb-btn.on{background:color-mix(in srgb,var(--accent) 16%,transparent);color:var(--accent)}.rb-btn.hero{flex-direction:column;justify-content:center;gap:2px;height:100%;min-width:48px;padding:2px 8px;font-size:10.5px}.rb-btn.hero svg{width:22px;height:22px}.rb-grid{display:grid;grid-template-rows:repeat(2,auto);grid-auto-flow:column;grid-auto-columns:max-content;gap:3px 4px}.rb-btn.hcell{height:26px;padding:0 6px;gap:5px;font-size:11px;line-height:1}.rb-btn.hcell svg{width:15px;height:15px}.sessions-list{display:flex;flex-direction:column;gap:2px;max-height:50vh;overflow-y:auto;margin-top:8px}.sessions-row{display:flex;align-items:baseline;gap:10px;border:none;background:transparent;cursor:pointer;padding:7px 10px;border-radius:var(--radius-s);font-size:12px;color:var(--text);text-align:left;min-width:380px}.sessions-row:hover{background:color-mix(in srgb,var(--accent) 12%,transparent)}.sessions-title{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sessions-id{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:10.5px;color:var(--dim)}.sessions-meta{font-size:10.5px;color:var(--dim);white-space:nowrap}.about-modal{min-width:400px;max-width:460px}.about-body{padding:2px 2px 6px}.about-name{font-size:15px;font-weight:600;letter-spacing:.02em;color:var(--text)}.about-tagline{font-size:11.5px;letter-spacing:.03em;color:var(--dim);margin-top:4px}.about-facts{margin:13px 0 0;display:flex;flex-direction:column;gap:6px}.about-facts>div{display:flex;align-items:baseline;gap:10px;font-size:12px;line-height:1.5}.about-facts dt{color:var(--dim);flex:none;width:56px}.about-facts dd{color:var(--text);margin:0;word-break:break-all}.about-session{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:10.5px}.about-note{font-size:12px;color:var(--dim);line-height:1.8;margin:13px 0 2px}.help-modal{width:min(480px,100%);max-height:min(82vh,720px);overflow-y:auto}.help-h{margin:14px 0 6px;font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:var(--dim);border-bottom:1px solid var(--line);padding-bottom:4px}.help-list{margin:0;padding-left:18px;display:grid;gap:3px;font-size:12.5px;color:var(--text)}.help-keys{display:grid;gap:3px;font-size:12.5px;color:var(--text)}.help-keys .key-row{display:flex;justify-content:space-between;gap:12px;font-variant-numeric:tabular-nums}.help-keys kbd{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;color:var(--accent)}.tb-segmented{background:var(--panel-2);border:1px solid var(--line);border-radius:7px;padding:2px;gap:2px}.tb-segmented button{height:24px;min-width:30px;padding:0 8px;background:none;border:none;color:var(--dim);border-radius:5px;font-size:12.5px;cursor:pointer}.tb-segmented button:hover{color:var(--text)}.tb-segmented button.on{background:var(--accent);color:var(--on-accent);font-weight:600}.tb-menu{position:fixed;min-width:120px;background:var(--panel);border:1px solid var(--line);border-radius:var(--radius-m);padding:4px;box-shadow:var(--shadow-2);display:flex;flex-direction:column;gap:1px;z-index:1000}.tb-menu a,.tb-menu-item{display:inline-flex;align-items:center;gap:8px;width:100%;text-align:left;background:none;border:none;color:var(--text);border-radius:6px;padding:7px 10px;font-size:12.5px;cursor:pointer}.tb-menu a svg,.tb-menu-item svg{flex:none;opacity:.85}.tb-menu a:hover,.tb-menu-item:hover{background:color-mix(in srgb,var(--accent) 12%,transparent);color:var(--accent)}.tb-menu a:hover svg,.tb-menu-item:hover svg{opacity:1}.tb-menu-item:disabled{opacity:.4;cursor:not-allowed}.tb-menu-check{margin-left:auto;color:var(--accent);font-weight:600}.tb-menu-hint{font-size:10px;color:var(--dim);padding:4px 10px 2px}.tb-menu-divider{height:1px;background:var(--line);margin:3px 4px}.tb-menu-item.on{color:var(--accent)}.tb-search-results .tb-menu-item.on{background:var(--accent);color:var(--on-accent)}.tb-search-results .tb-menu-item.on svg{opacity:1}.tb-search-results .tb-menu-item.on:hover{background:var(--accent);color:var(--on-accent)}.tb-search{display:inline-flex;align-items:center;gap:6px;height:46px;padding:0 10px;background:var(--panel-2);border:1px solid var(--line);border-radius:7px;color:var(--dim);flex:none}.tb-search:focus-within{border-color:var(--accent);color:var(--accent)}.tb-search svg{flex:none}.tb-search-input{width:87px;min-width:0;background:transparent;border:none;outline:none;color:var(--text);font:inherit;font-size:12.5px}.tb-search-input::placeholder{color:var(--dim)}.tb-search-clear{background:none;border:none;cursor:pointer;padding:0 2px;color:var(--dim);font-size:15px;line-height:1;flex:none}.tb-search-clear:hover{color:var(--accent)}.tb-search-results{max-width:min(420px,90vw);max-height:min(60vh,420px);overflow-y:auto}.tb-search-title{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.tb-search-group{color:var(--dim);font-size:11px;flex:none}.tb-menu-item.on .tb-search-group{color:inherit;opacity:.8}.tb-search-hint{font-size:10px;color:var(--dim);background:var(--panel-2);border:1px solid var(--line);border-radius:4px;padding:1px 5px;flex:none}.tb-search-results .tb-menu-item.on .tb-search-hint{color:var(--on-accent);opacity:.85;background:transparent;border-color:currentColor}.overlay-measure{top:12px;right:12px;padding:9px 13px;font-size:12.5px;color:var(--text);min-width:150px;font-variant-numeric:tabular-nums}.overlay-measure .m-label{color:var(--dim);font-size:11px;margin-bottom:2px}.overlay-measure .m-value{font-size:15px;font-weight:600;color:var(--accent)}.overlay-measure .m-hint{color:var(--dim);font-size:11px;margin-top:3px}.overlay-measure .m-hint b{color:var(--text)}.view-controls{position:absolute;z-index:3;bottom:12px;left:50%;transform:translate(-50%);display:flex;align-items:center;gap:2px;padding:3px 5px;background:color-mix(in srgb,var(--panel) 92%,transparent);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border:1px solid var(--line);border-radius:var(--radius-m);box-shadow:var(--shadow-1)}.vp-dims-chip{position:absolute;z-index:3;top:10px;left:50%;transform:translate(-50%);padding:4px 12px;background:color-mix(in srgb,var(--panel) 92%,transparent);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border:1px solid var(--line);border-radius:var(--radius-m);box-shadow:var(--shadow-1);font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:11px;color:var(--text);font-variant-numeric:tabular-nums;white-space:nowrap}.vc-btn{display:inline-flex;align-items:center;gap:3px;height:24px;padding:0 8px;border:none;background:none;color:var(--dim);border-radius:var(--radius-s);font-size:11.5px;cursor:pointer;white-space:nowrap}.vc-btn:hover{color:var(--text);background:var(--hover)}.vc-btn svg{width:13px;height:13px}.vc-sep{width:1px;height:14px;background:var(--line);margin:0 3px;flex:none}.vp-toolbar{position:absolute;z-index:3;top:12px;left:12px;display:flex;flex-direction:column;gap:2px;padding:3px;background:color-mix(in srgb,var(--panel) 92%,transparent);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border:1px solid var(--line);border-radius:var(--radius-m);box-shadow:var(--shadow-1)}.vpt-btn{display:inline-flex;align-items:center;justify-content:center;width:30px;height:28px;padding:0;border:none;background:transparent;color:var(--dim);border-radius:var(--radius-s);cursor:pointer}.vpt-btn svg{width:15px;height:15px}.vpt-btn:hover:not(:disabled){color:var(--text);background:var(--hover)}.vpt-btn:disabled{opacity:.45;cursor:default}.vpt-btn.on{background:color-mix(in srgb,var(--accent) 16%,transparent);color:var(--accent)}.vpt-sep{height:1px;background:var(--line);margin:2px 3px;flex:none}.navigation-hint{position:absolute;z-index:3;bottom:46px;left:50%;transform:translate(-50%);pointer-events:none;color:var(--dim);font-size:11px;background:color-mix(in srgb,var(--panel) 80%,transparent);border:1px solid var(--line);padding:3px 10px;border-radius:999px;animation:hint-fade .6s ease 6s forwards}@keyframes hint-fade{to{opacity:0}}@media (prefers-reduced-motion: reduce){.navigation-hint{animation:none}.t-chev svg,.fnode-chev svg{transition:none}}.vp-selection-card{position:absolute;top:12px;right:12px;z-index:4;width:240px;max-width:calc(100% - 24px);display:flex;flex-direction:column;gap:6px;padding:9px 10px;background:color-mix(in srgb,var(--panel) 92%,transparent);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border:1px solid var(--line);border-radius:var(--radius-m);box-shadow:var(--shadow-1)}.vpc-head{display:flex;align-items:center;gap:6px;min-width:0}.vpc-label{flex:1;min-width:0;font-size:12px;font-weight:600;color:var(--text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.vpc-x{border:none;background:none;color:var(--dim);cursor:pointer;font-size:14px;line-height:1;padding:0 2px}.vpc-x:hover{color:var(--err)}.vpc-selector{font-family:ui-monospace,monospace;font-size:10.5px;color:var(--dim);word-break:break-all}.vpc-point{font-family:ui-monospace,monospace;font-size:10.5px;color:var(--text)}.vpc-note{font-size:10.5px;color:var(--warn, #b8860b);line-height:1.4}.vpc-actions{display:flex;gap:6px}.feature-tree{display:flex;flex-direction:column;gap:0;padding:0;height:100%}.ft-head{display:flex;align-items:center;justify-content:space-between;font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--dim);padding:8px;border-bottom:1px solid var(--line)}.ft-tabs{display:flex;align-items:center;flex:1;min-width:0;letter-spacing:normal;text-transform:none}.ft-tabs button{flex:1;min-width:0;font-size:11.5px;padding:4px 6px;white-space:nowrap}.tree-scroll{flex:1;min-height:0;overflow-y:auto;padding:8px 8px 12px;display:flex;flex-direction:column;gap:2px}.t-node{display:flex;flex-direction:column}.t-row{display:flex;align-items:center;gap:5px;height:24px;padding:0 6px;border-radius:var(--radius-s);font-size:12px;color:var(--text);cursor:default}.t-row:hover{background:color-mix(in srgb,var(--accent) 7%,transparent)}.t-depth-1 .t-row{padding-left:18px}.t-depth-2 .t-row{padding-left:30px}.t-chev{width:12px;flex:none;color:var(--dim);font-size:10px;cursor:pointer;-webkit-user-select:none;user-select:none;text-align:center}.t-chev-none{visibility:hidden}.t-icon{width:14px;flex:none;color:var(--accent);text-align:center;font-size:12px}.t-label{flex:1;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.t-value{flex:none;max-width:60%;font-size:10.5px;color:var(--dim);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-variant-numeric:tabular-nums}.t-children{display:flex;flex-direction:column;gap:1px}.t-leaf{font-size:11px;padding:2px 6px 2px 30px}.t-empty{padding:4px 18px;font-size:11px}.t-addrow{display:flex;align-items:center;gap:5px;height:24px;padding:0 6px 0 30px;border:none;border-radius:var(--radius-s);background:none;font:inherit;font-size:12px;color:var(--dim);cursor:pointer;text-align:left}.t-addrow svg{color:var(--dim)}.t-addrow:hover:not(:disabled){background:color-mix(in srgb,var(--accent) 7%,transparent);color:var(--accent)}.t-addrow:hover:not(:disabled) svg{color:var(--accent)}.t-addrow:disabled{opacity:.45;cursor:not-allowed}.ft-list.ft-nested{padding-left:0}.ft-add{background:var(--panel-2);border:1px solid var(--line);color:var(--text);border-radius:6px;padding:3px 9px;font-size:11px;cursor:pointer}.ft-add:hover:not(:disabled){border-color:var(--accent)}.ft-add:disabled{opacity:.4;cursor:not-allowed}.ft-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:1px}.fnode{display:flex;align-items:center;gap:8px;height:24px;padding:0 7px;border-radius:var(--radius-s);cursor:pointer;border:1px solid transparent}.fnode:hover{background:color-mix(in srgb,var(--accent) 7%,transparent)}.fnode-sel{background:var(--accent-light);border-color:var(--accent)}.fnode-compsel{background:color-mix(in srgb,#35b8d0 14%,transparent);border-color:color-mix(in srgb,#35b8d0 70%,var(--line))}.fnode-idx{font-family:ui-monospace,Consolas,monospace;color:var(--dim);font-size:10px;width:14px;flex:none;font-variant-numeric:tabular-nums}.fnode-icon{width:14px;flex:none;text-align:center;color:var(--accent)}.fnode-body{display:flex;flex-direction:row;align-items:baseline;gap:6px;flex:1;min-width:0}.fnode-op{font-size:12px;flex:0 0 auto;max-width:62%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.fnode-note{font-size:10.5px;color:var(--dim);flex:1 1 auto;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.fnode-err{background:#e54b4b24;border-color:#e54b4b}.fnode-err .fnode-op{color:#e54b4b}.fnode-flag{font-size:12px;line-height:1;flex:none}.fnode-building{background:color-mix(in srgb,var(--accent) 10%,transparent);border-color:color-mix(in srgb,var(--accent) 45%,transparent)}.fnode-flag.building{color:var(--accent);animation:fnode-spin 1.1s linear infinite}@keyframes fnode-spin{to{transform:rotate(360deg)}}.fnode-chev{width:12px;flex:none;color:var(--dim);font-size:10px;text-align:center;-webkit-user-select:none;user-select:none;cursor:pointer}.fnode-chev:hover{color:var(--accent)}.t-chev svg,.fnode-chev svg{display:block;margin:0 auto;transition:transform .12s ease}.fnode-btns{display:flex;align-items:center;gap:1px;flex:none}.fnode-btns>button:not(.on){display:none}.fnode:hover .fnode-btns>button,.fnode-sel .fnode-btns>button,.fnode-btns>button:focus-visible{display:inline-flex}.fnode-ibtn{display:inline-flex;align-items:center;justify-content:center;background:none;border:none;cursor:pointer;padding:0 2px;color:var(--dim);line-height:1;border-radius:4px}.fnode-ibtn:hover,.fnode-ibtn.on{color:var(--accent)}.fnode-ibtn:disabled{opacity:.4;cursor:not-allowed}.fnode-prev{background:color-mix(in srgb,var(--accent) 10%,transparent)}.fnode-supp{opacity:.55}.fnode-supp .fnode-op{text-decoration:line-through}.fnode-flag.supp{color:var(--dim)}.fnode-hidden{opacity:.65}.fnode-hidden .fnode-op{font-style:italic}.fnode-rename{background:var(--panel-2);color:var(--text);border:1px solid var(--accent);border-radius:5px;font-size:12.5px;padding:2px 6px;width:100%;font-family:inherit}.fnode-rename:focus{outline:none}.overlay-preview{top:12px;left:50%;transform:translate(-50%);display:flex;align-items:center;gap:10px;background:var(--overlay-bg-strong);border:1px solid var(--accent);border-radius:8px;padding:6px 10px;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);animation:backdrop-in .15s ease-out}.overlay-preview .opv-label{font-size:12.5px;color:var(--text);font-weight:600}.overlay-preview .opv-exit{background:var(--accent);color:var(--on-accent);border:none;border-radius:6px;padding:4px 10px;font-size:12px;cursor:pointer;font-weight:600}.overlay-preview .opv-exit:hover{filter:brightness(1.1)}.overlay-upload{top:12px;left:50%;transform:translate(-50%);width:min(360px,calc(100% - 32px));display:flex;flex-direction:column;gap:8px;background:var(--overlay-bg-strong);border:1px solid var(--accent);border-radius:8px;padding:9px 11px 10px;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);animation:backdrop-in .15s ease-out}.overlay-upload .oup-head{display:flex;align-items:center;gap:8px;font-size:12.5px}.overlay-upload .oup-name{flex:1 1 auto;min-width:0;color:var(--text);font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.overlay-upload .oup-btn{flex:none;background:var(--panel-2);border:1px solid var(--line);color:var(--text);border-radius:5px;padding:2px 8px;font-size:11px;cursor:pointer;font-family:inherit}.overlay-upload .oup-btn:hover{border-color:var(--accent)}.overlay-upload .oup-stage{display:flex;flex-direction:column;gap:3px}.overlay-upload .oup-row{display:flex;align-items:baseline;gap:8px;font-size:11.5px}.overlay-upload .oup-label{flex:1 1 auto;color:var(--text);font-weight:500}.overlay-upload .oup-badge{flex:none;font-size:11px;font-weight:600;font-variant-numeric:tabular-nums;color:var(--accent)}.overlay-upload .oup-track{position:relative;overflow:hidden;height:4px;border-radius:2px;background:var(--inset)}.overlay-upload .oup-fill{height:100%;width:0;background:var(--accent);border-radius:2px;transition:width .15s linear}.overlay-upload .oup-detail{font-size:10.5px;color:var(--dim)}.overlay-upload .oup-stage.is-waiting{opacity:.55}.overlay-upload .oup-stage.is-waiting .oup-badge{color:var(--dim)}.overlay-upload .oup-stage.is-ok .oup-badge{color:var(--ok)}.overlay-upload .oup-stage.is-ok .oup-fill{background:var(--ok)}.overlay-upload .oup-stage.is-failed .oup-badge{color:var(--err)}.overlay-upload .oup-stage.is-failed .oup-fill{background:var(--err)}.overlay-upload .oup-stage.is-indeterminate .oup-fill{width:35%;transition:none;animation:oup-sweep 1.1s ease-in-out infinite}@keyframes oup-sweep{0%{transform:translate(-100%)}to{transform:translate(calc(100% / .35))}}.overlay-upload .oup-summary{font-size:11.5px;line-height:1.45;padding-top:2px;border-top:1px solid var(--line)}.overlay-upload .oup-summary.is-error{color:var(--err)}.overlay-upload .oup-summary.is-ok{color:var(--ok)}.overlay-upload:has(.oup-summary.is-error){border-color:var(--err)}@media (prefers-reduced-motion: reduce){.overlay-upload{animation:none}.overlay-upload .oup-stage.is-indeterminate .oup-fill{animation:none;width:50%}}.ft-actions{display:flex;flex-wrap:wrap;gap:6px;padding:8px;border:1px solid var(--line);border-radius:8px;background:var(--inset)}.ft-actions button{background:var(--panel-2);border:1px solid var(--line);color:var(--text);border-radius:6px;padding:4px 10px;font-size:11.5px;cursor:pointer}.ft-actions button:hover:not(:disabled){border-color:var(--accent)}.ft-actions button:disabled{opacity:.4;cursor:not-allowed}.ft-actions .danger:hover:not(:disabled){border-color:var(--err);color:var(--err)}.fnode-drop-above{box-shadow:inset 0 2px 0 0 var(--accent)}.fnode-drop-below{box-shadow:inset 0 -2px 0 0 var(--accent)}.fnode-parent{box-shadow:inset 3px 0 color-mix(in srgb,var(--accent) 75%,transparent);background:color-mix(in srgb,var(--accent) 5%,transparent)}.fnode-child{box-shadow:inset -3px 0 color-mix(in srgb,#4caf50 70%,transparent);background:color-mix(in srgb,#4caf50 5%,transparent)}.fnode-parent.fnode-child{box-shadow:inset 3px 0 color-mix(in srgb,var(--accent) 75%,transparent),inset -3px 0 color-mix(in srgb,#4caf50 70%,transparent)}.fnode-sel.fnode-parent,.fnode-sel.fnode-child{background:var(--accent-light)}.ft-find{display:flex;gap:6px;margin-bottom:6px}.ft-search{flex:1;min-width:0;background:var(--panel-2);color:var(--text);border:1px solid var(--line);border-radius:6px;padding:4px 8px;font-size:12px}.ft-search:focus{outline:none;border-color:var(--accent)}.ft-filter{background:var(--panel-2);color:var(--text);border:1px solid var(--line);border-radius:6px;padding:4px 6px;font-size:11.5px}.ft-filter:focus{outline:none;border-color:var(--accent)}.ft-form{display:flex;flex-direction:column;gap:7px;padding:9px;border:1px solid var(--accent);border-radius:8px;background:var(--inset)}.field{display:flex;flex-direction:column;gap:3px}.field-label{font-size:12px;color:var(--dim)}.field-label .req{color:var(--err);margin-left:2px}.field input,.field select{background:var(--panel-2);color:var(--text);border:1px solid var(--line);border-radius:6px;padding:4px 7px;font-size:12px;font-family:inherit}.field input:focus,.field select:focus{outline:none;border-color:var(--accent)}.field-hint{font-size:9.5px;color:var(--dim)}.ft-form-btns{display:flex;gap:6px;margin-top:2px}.ft-form-btns button{flex:1;background:var(--accent);color:var(--on-accent);font-weight:600;border:none;border-radius:6px;padding:5px;font-size:12px;cursor:pointer}.ft-form-btns button:nth-child(2){background:var(--panel-2);color:var(--text);border:1px solid var(--line)}.ft-form-btns button:disabled{opacity:.5;cursor:not-allowed}.ft-err{color:var(--err);font-size:11px;margin:0}.param-panel{margin-top:4px;padding-top:0}.param-section-row{cursor:default}.param-section-row svg{color:var(--accent);flex:none}.param-err{margin:4px 8px}.param-name{color:var(--accent);font-size:12px;flex:0 0 auto}.param-table{width:100%;border-collapse:collapse;font-size:12px;color:var(--text)}.param-table th{background:var(--soft);text-align:left;font-weight:600;font-size:10px;color:var(--dim);padding:2px 6px;border-bottom:1px solid var(--line)}.param-table td{padding:1px 4px;border-bottom:1px solid var(--line);vertical-align:middle}.param-table tr:last-child td{border-bottom:none}.param-table tr:hover td{background:color-mix(in srgb,var(--accent) 6%,transparent)}.param-table .col-idx,.param-table td.param-idx{width:26px;text-align:right;color:var(--dim);font-variant-numeric:tabular-nums;font-size:10.5px}.param-table .col-type,.param-table td.param-cell-type{width:44px;white-space:nowrap}.param-table .col-val,.param-table td.param-cell-val{width:30%;white-space:nowrap;font-variant-numeric:tabular-nums}.param-table .col-name{width:88px}.param-idx{padding:1px 6px 1px 2px!important}.param-cell-type{color:var(--dim);font-size:11px}.param-cell-val{color:var(--text)}.param-expr-text{font-family:ui-monospace,monospace;font-size:11px;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:0}.param-table td.param-expr-text{overflow:hidden}.param-val{width:100%;box-sizing:border-box;min-width:0;background:var(--panel-2);border:1px solid var(--line);color:var(--text);border-radius:4px;padding:2px 5px;font-size:11.5px;font-variant-numeric:tabular-nums}.param-val:focus{outline:none;border-color:var(--accent)}.param-expr-in{font-family:ui-monospace,monospace;font-size:11px}.param-expr-val{font-variant-numeric:tabular-nums;color:var(--dim);white-space:nowrap}.param-table td:last-child{width:26px}.param-del{background:transparent;border:none;color:var(--dim);cursor:pointer;font-size:14px;line-height:1;padding:2px 5px;border-radius:4px}.param-del:hover{color:var(--err);background:#e06c751f}.param-type{background:transparent;border:1px solid transparent;color:var(--dim);font-size:11px;padding:1px 2px;border-radius:4px;cursor:pointer;max-width:52px}.param-type:hover,.param-type:focus{outline:none;border-color:var(--line);background:var(--panel-2);color:var(--text)}select.param-val{cursor:pointer}.param-new-row td,.param-edit-row td{background:color-mix(in srgb,var(--accent) 5%,transparent)}.param-name-in{font-family:ui-monospace,monospace}.param-new-ops{white-space:nowrap}.param-table td.param-new-ops{width:auto}.param-new-ops .param-del:first-child:hover{color:var(--accent);background:color-mix(in srgb,var(--accent) 12%,transparent)}.param-refs{flex-basis:100%;margin-top:2px}.param-refs-toggle{background:none;border:none;color:var(--dim);cursor:pointer;font-size:10px;padding:0;text-decoration:underline;text-underline-offset:2px}.param-refs-toggle:hover{color:var(--accent)}.param-refs ul{list-style:none;margin:3px 0 0;padding:0 0 0 10px}.param-refs li{font-size:10.5px;color:var(--dim)}.param-ref-link{background:none;border:none;padding:0;cursor:pointer;color:var(--dim);font:inherit;font-size:10.5px;text-align:left}.param-ref-link:hover{color:var(--accent)}.param-add-form{margin-top:6px}.param-add-form .ft-form-btns{justify-content:flex-end}.param-probe{margin-top:10px;border-top:1px solid var(--line);padding-top:6px}.param-probe .ft-head{margin-bottom:4px}.param-probe-in{width:100%;box-sizing:border-box;background:var(--panel-2);border:1px solid var(--line);border-radius:5px;color:var(--text);font-family:ui-monospace,monospace;font-size:11.5px;padding:3px 6px}.param-probe-in:focus{outline:none;border-color:var(--accent)}.param-probe-ok{margin:4px 0 0;font-family:ui-monospace,monospace;font-size:12px;color:var(--accent);word-break:break-all}.param-probe-err{margin:4px 0 0;font-size:10.5px;color:var(--err);line-height:1.45}.param-probe-note{margin:4px 0 0;font-size:10px;line-height:1.45}.param-ref{margin-top:8px}.param-ref-head{background:none;border:none;padding:0;cursor:pointer;color:var(--dim);font-size:10.5px}.param-ref-head:hover{color:var(--accent)}.param-ref-body{margin-top:4px;padding-left:10px}.param-ref-body p{margin:0 0 3px;font-size:10.5px;line-height:1.5;color:var(--dim)}.param-ref-body code{color:var(--accent);font-size:10.5px}.param-ref-k{display:inline-block;min-width:30px;color:var(--text);opacity:.75}.param-ref-warn code{color:var(--accent)}.param-ref-warn strong{color:var(--text)}.param-groups{display:flex;flex-direction:column}.param-group{border-bottom:1px solid var(--line);padding:4px 0 8px}.param-group:last-child{border-bottom:none}.param-group-head{display:flex;align-items:center;gap:4px;padding:2px 6px}.param-group-toggle{flex:1;display:flex;align-items:center;gap:5px;background:none;border:none;padding:3px 0;cursor:pointer;color:var(--text);font-size:11.5px;text-align:left}.param-group-caret{color:var(--dim);font-size:9px;width:9px}.param-group-title{font-weight:600}.param-group-count{color:var(--dim);font-size:10.5px;background:var(--panel-2);border-radius:8px;padding:0 5px}.param-group-add{background:var(--panel-2);border:1px solid var(--line);color:var(--text);border-radius:4px;width:20px;height:20px;line-height:1;cursor:pointer;font-size:12px;padding:0}.param-group-add:hover:not(:disabled){border-color:var(--accent);color:var(--accent)}.param-group-add:disabled{color:var(--dim);cursor:not-allowed}.param-group-hint{margin:0 0 3px;padding-left:20px;font-size:10.5px}.param-table-btns{display:flex;gap:6px;padding:4px 6px 0}.param-table-btn{flex:1;background:var(--panel-2);border:1px solid var(--line);color:var(--text);border-radius:4px;padding:4px 6px;cursor:pointer;font-size:11px}.param-table-btn:hover:not(:disabled){border-color:var(--accent);color:var(--accent)}.param-table-btn:disabled{color:var(--dim);cursor:not-allowed}.param-table-ok{margin:5px 6px 0;font-size:10.5px;color:var(--ok)}.param-table-err{margin:5px 6px 0;font-size:10.5px;color:var(--err);line-height:1.5}.param-table-note{margin:5px 6px 0;font-size:10.5px;line-height:1.5}.param-table-note code{color:var(--accent)}.param-new-modal{width:380px;max-width:92vw}.param-new-modal .field{display:block;margin-bottom:10px}.param-new-modal .field input{width:100%;box-sizing:border-box}.param-new-hint{margin:-6px 0 10px;font-size:11.5px}.param-new-hint.err{color:var(--err)}.param-new-ok{margin:-6px 0 10px;font-size:12.5px;color:var(--ok);font-family:ui-monospace,monospace}.param-new-avail{margin:0 0 10px}.param-new-avail code{color:var(--accent)}.param-new-warn{margin:0 0 6px;padding:7px 9px;font-size:11.5px;line-height:1.6;color:var(--dim);background:var(--inset);border-radius:5px;border-left:2px solid var(--accent)}.param-new-warn strong{color:var(--text)}.param-new-warn code{color:var(--accent)}.sel-mode{display:flex;gap:4px;padding:5px}.sel-mode button{background:var(--panel-2);border:1px solid var(--line);color:var(--text);border-radius:6px;padding:5px 11px;font-size:12px;cursor:pointer}.sel-mode button:hover{border-color:var(--accent)}.sel-mode button.on{background:var(--accent);color:var(--on-accent);border-color:var(--accent);font-weight:600}.overlay-selmode{top:16px;left:50%;transform:translate(-50%)}.overlay-bar{top:16px;right:16px;display:flex;gap:8px;padding:8px}.overlay-bar button,.overlay-bar a{background:var(--panel-2);border:1px solid var(--line);color:var(--text);border-radius:7px;padding:6px 12px;font-size:12px;cursor:pointer;text-decoration:none}.overlay-bar button:hover,.overlay-bar a:hover{border-color:var(--accent)}.overlay-bar button:disabled{opacity:.4;cursor:not-allowed}.overlay-stats{bottom:16px;left:50%;transform:translate(-50%);padding:8px 14px;font-size:12px;color:var(--dim);font-variant-numeric:tabular-nums;white-space:nowrap}.statusbar{flex:none;display:flex;align-items:center;gap:0;height:25px;padding:0 10px;background:var(--panel);border-top:1px solid var(--line);font-size:9.5px;color:var(--dim);font-variant-numeric:tabular-nums;white-space:nowrap;overflow:hidden}.statusbar .st-cell{padding:0 10px;border-right:1px solid var(--line)}.statusbar .st-cell:last-child{border-right:none}.statusbar .st-mode{color:var(--text);font-weight:500}.statusbar .st-cursor{color:var(--accent);font-family:ui-monospace,monospace}.statusbar .st-fps{color:var(--text)}.statusbar.is-compact .st-cell{border-right:none;padding:0 12px}.overlay-keys{bottom:16px;left:16px;display:flex;flex-direction:column;gap:2px;padding:6px 10px 7px;border-radius:var(--radius-m);font-size:10.5px;color:var(--dim);max-width:230px}.overlay-keys summary{cursor:pointer;list-style:none;color:var(--dim);font-size:10.5px;letter-spacing:.04em;margin-bottom:4px}.overlay-keys summary::-webkit-details-marker{display:none}.overlay-keys summary:before{content:"⌨ "}.overlay-keys summary:hover{color:var(--text)}.overlay-keys .key-row{display:flex;justify-content:space-between;gap:10px;font-variant-numeric:tabular-nums}.overlay-keys kbd{font-family:ui-monospace,monospace;color:var(--accent)}.overlay-error{bottom:16px;right:16px;max-width:60%;padding:10px 14px;border-color:var(--err);color:var(--err);font-size:12px}.compare{position:absolute;top:0;right:0;bottom:0;left:0;display:grid;grid-template-rows:auto minmax(0,1fr) auto;background:var(--bg)}.compare-bar{display:flex;align-items:center;gap:12px;padding:10px 16px;border-bottom:1px solid var(--line);font-size:12px;color:var(--dim)}.compare-bar label{display:flex;align-items:center;gap:7px}.compare-bar select{background:var(--panel-2);color:var(--text);border:1px solid var(--line);border-radius:6px;padding:4px 8px;font-size:12px}.compare-vs{color:var(--accent);font-weight:600}.compare-bar button{margin-left:auto;background:var(--panel-2);border:1px solid var(--line);color:var(--text);border-radius:7px;padding:5px 12px;font-size:12px;cursor:pointer}.compare-bar button:hover{border-color:var(--accent)}.compare-panes{display:grid;grid-template-columns:1fr 1fr;gap:1px;background:var(--line);min-height:0}.compare-pane{position:relative;min-width:0;background:var(--bg)}.compare-pane canvas{display:block}.compare-label{position:absolute;top:12px;left:12px;z-index:2;display:flex;align-items:center;gap:7px;background:var(--overlay-bg-strong);border:1px solid var(--line);border-left-width:3px;border-radius:7px;padding:5px 11px;font-size:12px}.compare-label .swatch{width:9px;height:9px;border-radius:2px}.compare-note{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);z-index:2;color:var(--dim);font-size:12.5px}.compare-err{color:var(--err);max-width:80%;text-align:center}.compare-diff{display:flex;flex-wrap:wrap;gap:7px;padding:10px 16px;border-top:1px solid var(--line);font-size:11.5px}.compare-diff span{border-radius:6px;padding:3px 9px;border:1px solid transparent;font-family:ui-monospace,monospace}.chip-add{background:#4ec9a51f;color:var(--ok);border-color:var(--ok)}.chip-del{background:#ff6b6b1f;color:var(--err);border-color:var(--err)}.chip-mod{background:color-mix(in srgb,var(--accent) 12%,transparent);color:var(--accent);border-color:var(--accent)}.chip-delta{background:var(--panel-2);color:var(--text);border-color:var(--line)}.chip-none{color:var(--dim)}.chat{display:flex;flex-direction:column;background:var(--panel);min-height:0}.chat-resizer{width:6px;background:var(--line);cursor:col-resize;flex:none;transition:background .15s}.chat-resizer:hover,.app.resizing .chat-resizer{background:var(--accent)}.app.resizing{cursor:col-resize}.app.resizing .stage{pointer-events:none}.chat-head{display:flex;align-items:center;justify-content:space-between;min-height:var(--tb-h);padding:0 18px;border-bottom:1px solid var(--line);flex:none}.chat-head h1{margin:0;letter-spacing:.02em}.chat-title{display:flex;flex-direction:column;gap:1px}.chat-title-main{font-size:14.5px;font-weight:700}.chat-title-sub{font-size:10px;font-weight:400;color:var(--dim);letter-spacing:.05em}.chat-head-right{display:inline-flex;align-items:center;gap:10px}.head-icon{display:inline-flex;align-items:center;justify-content:center;background:none;border:none;color:var(--dim);cursor:pointer;padding:5px;border-radius:6px;line-height:0}.head-icon:hover:not(:disabled){color:var(--text);background:var(--hover)}.head-icon:disabled{opacity:.35;cursor:default}.status{font-size:11px;color:var(--dim)}.status.on:before,.status.off:before{content:"";display:inline-block;width:7px;height:7px;border-radius:50%;margin-right:6px}.status.on:before{background:var(--ok)}.status.off:before{background:var(--dim)}.chat-log{flex:1;overflow-y:auto;padding:16px;min-height:0}.empty{color:var(--dim);font-size:13px}.empty ul{list-style:none;padding:0;margin:14px 0 0}.empty li{margin-bottom:8px}.empty button{width:100%;text-align:left;background:var(--panel-2);border:1px solid var(--line);color:var(--text);border-radius:8px;padding:9px 12px;font-size:12.5px;cursor:pointer}.empty button:hover{border-color:var(--accent)}.msg{margin-bottom:16px}.msg-user{display:flex;justify-content:flex-end}.msg-user .bubble{background:var(--accent);color:var(--on-accent);border-radius:8px 8px 3px;padding:9px 13px;max-width:88%;white-space:pre-wrap;font-weight:500}.msg-assistant .bubble{background:var(--panel-2);border:1px solid var(--line);border-radius:12px 12px 12px 3px;padding:10px 13px;white-space:pre-wrap}.bubble-idle{color:var(--dim);font-style:italic}.msg-assistant .bubble-answer{display:flex;flex-direction:column;gap:8px}.bubble-actions{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-top:2px}.bubble-time{font-size:11px;color:var(--dim);white-space:nowrap}.bubble-stopped{font-size:11px;color:var(--dim);margin-top:4px}.bubble-stopped-bare{margin:5px 0 0 2px}.msg-assistant .bubble-refusal{background:var(--inset);border:1px solid var(--line);border-left:3px solid var(--err);border-radius:10px;padding:11px 13px;display:flex;flex-direction:column;gap:5px}.msg-assistant .bubble-refusal .bubble-body{font-size:13px}.refusal-hint{font-size:11.5px;color:var(--dim);line-height:1.5}.bubble-icons{display:inline-flex;align-items:center;gap:1px}.bubble-icons button{display:inline-flex;align-items:center;justify-content:center;background:none;border:none;color:var(--dim);cursor:pointer;padding:4px;border-radius:5px;line-height:0}.bubble-icons button:hover{color:var(--text);background:var(--hover)}.bubble-icons button.on{color:var(--accent)}.hist-prompt{display:flex;align-items:flex-start;gap:10px;background:var(--inset);border:1px solid var(--line);border-left:3px solid var(--accent);border-radius:10px;padding:11px 13px;margin-bottom:16px}.hist-icon{color:var(--accent);line-height:0;margin-top:1px;flex:none}.hist-text{display:flex;flex-direction:column;gap:3px;min-width:0;flex:1}.hist-text b{font-size:13px;font-weight:600}.hist-text span{font-size:11.5px;color:var(--dim);line-height:1.5}.hist-actions{display:flex;flex-direction:column;gap:6px;flex:none}.hist-actions button{background:var(--panel-2);border:1px solid var(--line);color:var(--text);border-radius:7px;padding:5px 12px;font-size:12px;cursor:pointer;white-space:nowrap}.hist-actions button:hover{border-color:var(--accent)}.hist-actions .hist-primary{background:var(--accent);color:var(--on-accent);border-color:var(--accent);font-weight:600}.hist-actions .hist-primary:hover{filter:brightness(1.1)}.hist-divider{display:flex;align-items:center;gap:10px;margin:4px 0 18px;color:var(--dim);font-size:11px}.hist-divider:before,.hist-divider:after{content:"";flex:1;height:1px;background:var(--line)}.question{background:var(--inset);border:1px solid var(--accent);border-left-width:3px;border-radius:10px;padding:11px 13px;margin-top:4px}.question p{margin:0;font-size:13.5px}.question-options{display:flex;flex-wrap:wrap;gap:7px;margin-top:10px}.question-options button{background:var(--accent);color:var(--on-accent);font-weight:600;border:none;border-radius:7px;padding:6px 14px;font-size:12.5px;cursor:pointer}.question-options button:hover{filter:brightness(1.1)}.thinking{margin-bottom:8px}.thinking button{background:none;border:none;color:var(--dim);font-size:11.5px;cursor:pointer;padding:0}.thinking pre{margin:6px 0 0;padding:9px 11px;background:var(--inset);border:1px solid var(--line);border-radius:8px;color:var(--dim);font-size:11.5px;white-space:pre-wrap;max-height:220px;overflow:auto}.tool{border:1px solid var(--line);border-radius:9px;margin-bottom:7px;overflow:hidden;background:var(--inset)}.tool-head{display:flex;align-items:center;gap:9px;width:100%;background:none;border:none;color:var(--text);padding:8px 11px;font-size:12.5px;cursor:pointer;text-align:left}.tool-dot{width:7px;height:7px;border-radius:50%;background:var(--dim);flex:none}.tool-ok .tool-dot{background:var(--ok)}.tool-error .tool-dot{background:var(--err)}.tool-running .tool-dot{background:var(--accent);animation:pulse 1s ease-in-out infinite}@keyframes pulse{50%{opacity:.25}}.tool-name{flex:1}.tool-chevron{color:var(--dim);font-size:10px}.tool-body{padding:0 11px 10px}.tool-body pre{margin:0;font-size:11px;color:var(--dim);white-space:pre-wrap;word-break:break-word}.tool-msg{margin:7px 0 0;font-size:11.5px;color:var(--dim)}.tool-msg-inline{padding:0 11px 9px;color:var(--err)}.tool-error .tool-body .tool-msg{color:var(--err)}.chat-level{display:flex;gap:6px;margin-bottom:9px}.chat-level button{display:inline-flex;align-items:center;gap:5px;background:var(--panel-2);border:1px solid var(--line);color:var(--dim);border-radius:999px;padding:3px 12px;font:inherit;font-size:11.5px;cursor:pointer}.chat-level button svg{width:12px;height:12px}.chat-level button.on{background:color-mix(in srgb,var(--accent) 16%,transparent);border-color:var(--accent);color:var(--accent);font-weight:600}.composer{border-top:1px solid var(--line);padding:12px 14px}.chip{display:flex;align-items:center;gap:6px;background:var(--panel-2);border:1px solid var(--accent);border-radius:7px;padding:5px 10px;margin-bottom:9px;font-size:11.5px}.chip button{margin-left:auto;background:none;border:none;color:var(--dim);cursor:pointer}.chip code{color:var(--accent)}.composer textarea{width:100%;resize:none;background:var(--panel-2);border:1px solid var(--line);color:var(--text);border-radius:var(--radius-m);padding:10px 12px;font:inherit;font-size:13px}.composer textarea:focus{outline:none;border-color:var(--accent)}.composer .send{width:100%;margin-top:9px;display:flex;align-items:center;justify-content:center;gap:6px;background:var(--accent);color:var(--on-accent);font-weight:600;border:none;border-radius:var(--radius-m);padding:9px;font-size:13px;cursor:pointer}.composer .send.stop{background:transparent;color:var(--err);box-shadow:inset 0 0 0 1px var(--err)}.composer .send:disabled{background:var(--line);color:var(--dim);cursor:not-allowed}.composer .send.stop:disabled{box-shadow:none}@media (max-width: 960px){.app{--chat-w: 340px}.app-menubar .tb-search{display:none}}@media (max-width: 720px){.app{grid-template-columns:1fr;grid-template-rows:minmax(0,1fr) minmax(160px,38%)}.chat-resizer,.tl-name{display:none}}.toast{position:fixed;left:50%;bottom:22px;transform:translate(-50%);z-index:9999;background:var(--inset);border:1px solid var(--accent);color:var(--text);padding:10px 16px;border-radius:9px;font-size:13px;box-shadow:0 8px 24px #0006;animation:toast-in .18s ease-out;pointer-events:none}@keyframes toast-in{0%{opacity:0;transform:translate(-50%,8px)}to{opacity:1;transform:translate(-50%)}}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:10000;background:var(--backdrop);-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);display:flex;align-items:center;justify-content:center;padding:20px;animation:backdrop-in .15s ease-out}@keyframes backdrop-in{0%{opacity:0}to{opacity:1}}.modal{width:min(440px,100%);background:var(--panel);border:1px solid var(--line);border-radius:var(--radius-l);box-shadow:var(--shadow-2);padding:20px;animation:modal-in .18s ease-out}@keyframes modal-in{0%{opacity:0;transform:translateY(10px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}.modal-title-row{display:flex;align-items:center;justify-content:space-between;gap:8px;margin:-20px -20px 14px;padding:7px 10px 7px 16px;background:var(--soft);border-bottom:1px solid var(--line);border-radius:calc(var(--radius-l) - 1px) calc(var(--radius-l) - 1px) 0 0;position:relative}.modal-title-row:before{content:"";position:absolute;left:0;top:0;bottom:0;width:3px;background:var(--accent)}.modal-title-row h2{margin:0;font-size:12.5px;font-weight:600;letter-spacing:.09em;color:var(--text)}.modal-close{display:grid;place-items:center;width:22px;height:22px;flex:none;background:none;border:none;color:var(--dim);font-size:17px;line-height:1;cursor:pointer;border-radius:var(--radius-s)}.modal-close:hover{color:var(--text);background:color-mix(in srgb,var(--accent) 14%,transparent)}.modal-close:focus-visible,.modal-btn:focus-visible,.export-choice:focus-visible{outline:2px solid var(--accent);outline-offset:1px}.param-modal{width:min(460px,100%)}.density-section{margin-top:18px;padding-top:14px;border-top:1px solid var(--line)}.density-section .ft-head{margin-bottom:6px}.density-hint{margin-bottom:10px}.density-input-row{display:flex;align-items:center;gap:8px;margin-bottom:10px}.density-val{flex:1}.density-unit{color:var(--dim);font-size:12.5px}.density-presets{display:flex;flex-wrap:wrap;gap:6px}.density-preset{padding:4px 10px;border-radius:999px;border:1px solid var(--line);background:var(--panel-2);color:var(--text);font-size:12px;cursor:pointer;transition:background .12s,border-color .12s}.density-preset:hover{background:var(--hover)}.density-preset.on{background:var(--accent);color:var(--accent-fg, #fff);border-color:var(--accent)}.density-preset:disabled{opacity:.5;cursor:not-allowed}.modal-sub{margin:0 0 14px;font-size:12.5px;color:var(--dim)}.modal-sub code{color:var(--accent)}.report-cats{display:flex;gap:8px;margin:0 0 10px}.report-cats button{flex:1;border-radius:var(--radius-s);padding:7px 10px;font-size:12.5px;cursor:pointer;border:1px solid var(--line);background:var(--panel-2);color:var(--dim)}.report-cats button:hover{border-color:var(--accent);color:var(--text)}.report-cats button.on{background:var(--accent);color:var(--on-accent);border-color:var(--accent);font-weight:600}.modal-textarea{width:100%;resize:vertical;background:var(--panel-2);border:1px solid var(--line);color:var(--text);border-radius:var(--radius-s);padding:10px 12px;font:inherit;font-size:13px;min-height:120px}.modal-textarea:focus{outline:none;border-color:var(--accent)}.modal-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:14px}.modal-spring{flex:1}.params-modal,.params-csv-modal{width:min(580px,calc(100vw - 48px));max-height:min(calc(100vh - 48px),760px);display:flex;flex-direction:column;min-height:0}.params-modal-body{overflow-y:auto;min-height:0;margin:0 -4px;padding:0 4px}.pm-h{margin:16px 0 8px;font-size:13px;font-weight:600;display:flex;align-items:center;gap:8px}.pm-h:first-child{margin-top:4px}.pm-count{min-width:18px;height:18px;padding:0 5px;border-radius:9px;display:inline-flex;align-items:center;justify-content:center;background:var(--soft);color:var(--dim);font-size:11px;font-weight:500}.pm-table{width:100%;margin:0 0 6px;border-collapse:collapse}.pm-table th{text-align:left;padding:5px 8px;font-size:11px;font-weight:600;color:var(--dim);background:var(--panel-2);border-bottom:1px solid var(--line)}.pm-table td{padding:5px 8px;border-bottom:1px solid var(--line)}.pm-table tbody tr:hover{background:var(--soft)}.pm-table .param-idx,.pm-table .param-cell-type{padding-left:4px;padding-right:4px}.pm-ops-h{width:34px}.pm-ops{width:34px;text-align:right;white-space:nowrap}.pm-del{border:none;background:transparent;color:var(--dim);cursor:pointer;font-size:12px;padding:3px 7px;border-radius:var(--radius-s);line-height:1}.pm-del:hover{color:var(--err);background:color-mix(in srgb,var(--err) 10%,transparent)}.pm-err{display:block;color:var(--err);font-size:11px;margin-top:2px}.param-bad-row td{background:color-mix(in srgb,var(--err) 8%,transparent)}.pm-more{margin:2px 0 6px;font-size:11px}.pm-note{margin:4px 0 10px;font-size:11px;line-height:1.5}.modal-btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;height:32px;min-width:72px;padding:0 18px;border-radius:var(--radius-s);font-size:12.5px;font-weight:500;cursor:pointer;border:1px solid var(--line);background:var(--panel-2);color:var(--text);white-space:nowrap;transition:border-color .12s,background .12s,transform .06s}.modal-btn:hover{border-color:var(--accent);background:var(--soft)}.modal-btn:active:not(:disabled){transform:translateY(1px)}.modal-submit{background:var(--accent);color:var(--on-accent);font-weight:600;border-color:var(--accent)}.modal-submit:hover:not(:disabled){filter:brightness(1.07);background:var(--accent)}.modal-submit:disabled{background:var(--line);color:var(--dim);border-color:var(--line);cursor:not-allowed}.pm-seg{display:flex;gap:4px;margin:4px 0 12px;background:var(--panel-2);border:1px solid var(--line);border-radius:var(--radius-m);padding:3px}.pm-seg button{flex:1;height:30px;border:none;background:transparent;cursor:pointer;border-radius:calc(var(--radius-m) - 3px);font:inherit;font-size:12.5px;font-weight:500;color:var(--dim);transition:background .12s,color .12s}.pm-seg button:hover{color:var(--text)}.pm-seg button.on{background:var(--panel);color:var(--accent);font-weight:600;box-shadow:0 1px 3px #00000024}.pm-btn-row{display:flex;gap:8px;margin-top:4px}.cp-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:50;background:var(--backdrop);display:flex;justify-content:center;align-items:flex-start;padding-top:12vh;animation:backdrop-in .12s ease-out}.cp{width:min(560px,92vw);max-height:64vh;display:flex;flex-direction:column;background:var(--panel);border:1px solid var(--line);border-radius:var(--radius-l);box-shadow:var(--shadow-2);overflow:hidden;animation:modal-in .16s ease-out}.cp-input-wrap{display:flex;align-items:center;gap:8px;padding:10px 14px;border-bottom:1px solid var(--line)}.cp-icon{color:var(--dim);font-size:15px}.cp-input{flex:1;background:transparent;border:none;outline:none;color:var(--text);font:inherit;font-size:14.5px}.cp-input::placeholder{color:var(--dim)}.cp-esc{font-size:10.5px;color:var(--dim);background:var(--panel-2);border:1px solid var(--line);border-radius:5px;padding:2px 6px}.cp-list{overflow-y:auto;padding:6px}.cp-empty{padding:18px;text-align:center;color:var(--dim);font-size:13px}.cp-group{margin-top:2px}.cp-group-head{font-size:10.5px;font-weight:600;color:var(--dim);text-transform:uppercase;letter-spacing:.04em;padding:8px 10px 4px}.cp-item{display:flex;align-items:center;gap:10px;width:100%;text-align:left;cursor:pointer;border:none;background:transparent;color:var(--text);border-radius:8px;padding:8px 10px;font:inherit;font-size:13px}.cp-item.active{background:var(--accent);color:var(--on-accent)}.cp-item.active .cp-item-group,.cp-item.active .cp-hint{color:var(--on-accent);opacity:.85}.cp-item.disabled{opacity:.4;cursor:not-allowed}.cp-item.disabled.active{background:var(--hover);color:var(--text)}.cp-title{flex:1}.cp-item-group{color:var(--dim);font-size:11.5px}.cp-hint{font-size:10.5px;color:var(--dim);background:var(--panel-2);border:1px solid var(--line);border-radius:5px;padding:1px 6px}.sk-row{display:flex;align-items:center;gap:6px;height:24px;padding:0 6px 0 30px;font-size:12px;border-radius:var(--radius-s);cursor:pointer}.sk-row:hover{background:color-mix(in srgb,var(--accent) 7%,transparent)}.sk-row{border:1px solid transparent}.sk-row.sk-sel{background:var(--accent-light);border-color:var(--accent)}.sk-row:focus-visible{outline:1px solid var(--accent)}.sk-idx{font-family:ui-monospace,Consolas,monospace;color:var(--dim);font-size:10px;width:14px;flex:none;font-variant-numeric:tabular-nums}.sk-name{font-weight:500;color:var(--text);flex:1;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sk-users{flex:none;padding:1px 6px;border-radius:3px;font-size:10px;background:color-mix(in srgb,var(--accent) 18%,transparent);color:var(--accent)}.sk-unused{flex:none;font-size:10px;color:var(--dim)}.export-modal{width:min(420px,100%)}.drawing-modal{width:min(1100px,calc(100vw - 48px));max-height:min(calc(100vh - 48px),900px);display:flex;flex-direction:column;min-height:0}.drawing-svg{flex:1 1 auto;min-height:0;overflow:auto;background:#fff;border:1px solid var(--line);border-radius:var(--radius-m);padding:8px}.drawing-svg svg{display:block;width:100%;height:auto}.bom-modal,.ifx-modal{width:min(560px,100%);max-height:min(640px,calc(100vh - 48px));display:flex;flex-direction:column;min-height:0}.bom-modal .asm-scroll,.ifx-modal .asm-scroll{flex:1 1 auto}.ifx-status{padding:28px 16px;text-align:center;color:var(--dim);font-size:13px}.ifx-status.ok{color:var(--ok)}.ifx-status.ifx-err{color:var(--err)}.ifx-summary{padding:8px 14px 6px;font-size:11px;color:var(--dim);border-bottom:1px solid var(--line)}.ifx-row{display:flex;align-items:center;justify-content:space-between;gap:10px;width:100%;padding:8px 12px;text-align:left;background:none;border:0;border-bottom:1px solid var(--line);color:var(--text);font-size:12.5px;cursor:pointer}.ifx-row:last-child{border-bottom:0}.ifx-row:hover{background:color-mix(in srgb,var(--accent) 8%,transparent)}.ifx-pair{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ifx-vol{flex:none;color:var(--err);font-weight:600;font-size:12px}.ifx-dim{color:var(--dim);font-weight:400;font-size:11px}.export-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:6px}.export-choice{display:flex;flex-direction:column;gap:4px;padding:16px 14px;text-align:left;background:var(--accent);color:var(--on-accent);border:none;border-radius:var(--radius-m);cursor:pointer;font:inherit;transition:filter .12s,transform .12s}.export-choice:hover{filter:brightness(1.08)}.export-choice:active{transform:translateY(1px)}.export-choice-name{font-size:17px;font-weight:700;letter-spacing:.02em}.export-choice-hint{font-size:11.5px;opacity:.85;line-height:1.4}.asm-scroll{display:flex;flex-direction:column;gap:12px;padding:8px 8px 12px;overflow-y:auto;flex:1;min-height:0}.asm-section{display:flex;flex-direction:column;gap:6px}.asm-heading{font-size:11.5px;font-weight:700;color:var(--dim);letter-spacing:.04em;display:flex;align-items:center;gap:8px}.asm-warn{color:var(--err, #e06c75);font-weight:500;cursor:help;border-bottom:1px dotted currentColor}.asm-list{display:flex;flex-direction:column;gap:1px}.asm-row{display:flex;align-items:center;gap:8px;height:24px;padding:0 7px;border-radius:var(--radius-s);font-size:12px;background:transparent;border:1px solid transparent}.asm-row:hover{background:color-mix(in srgb,var(--accent) 7%,transparent)}.asm-row.selectable{cursor:pointer}.asm-row.sel{background:var(--accent-light);border-color:var(--accent)}.asm-name{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.asm-count{font-size:11px;color:var(--dim);white-space:nowrap}.asm-err{font-size:11px;color:var(--err, #e06c75);white-space:nowrap}.asm-btn{height:22px;padding:0 8px;font-size:11.5px;background:var(--panel);border:1px solid var(--line);border-radius:5px;color:var(--text);cursor:pointer;white-space:nowrap}.asm-btn:hover{border-color:var(--accent)}.asm-btn:disabled{opacity:.5;cursor:default}.asm-row-btns{display:flex;align-items:center;gap:1px;flex:none}.asm-row-btns>button:not(.on){display:none}.asm-row:hover .asm-row-btns>button,.asm-row.sel .asm-row-btns>button,.asm-row-btns>button:focus-visible{display:inline-flex}.asm-ibtn{display:inline-flex;align-items:center;justify-content:center;padding:0 2px;background:none;border:none;border-radius:4px;color:var(--dim);line-height:1;cursor:pointer}.asm-ibtn:hover{color:var(--accent)}.asm-ibtn:disabled{opacity:.4;cursor:not-allowed}.asm-empty{font-size:12px;color:var(--dim);padding:8px 2px 4px;display:flex;flex-direction:column;gap:5px}.asm-empty-title{color:var(--text);font-size:12.5px}.asm-empty-hint{line-height:1.5}.asm-import-btn{align-self:flex-start;height:24px;padding:0 10px;font-size:12px;background:var(--accent);border:none;border-radius:6px;color:var(--on-accent);cursor:pointer;margin-top:2px}.asm-import-btn:hover:not(:disabled){filter:brightness(1.1)}.asm-import-btn:disabled{opacity:.4;cursor:not-allowed}.asm-add{height:26px;padding:0 10px;font-size:12px;background:var(--accent);border:none;border-radius:6px;color:var(--on-accent);cursor:pointer;align-self:flex-start}.asm-add:disabled{opacity:.5;cursor:default}.asm-form{display:flex;flex-direction:column;gap:6px}.asm-form label{font-size:11px;color:var(--dim)}.asm-vec{display:grid;grid-template-columns:auto 1fr auto 1fr auto 1fr;gap:4px;align-items:center}.asm-axis{font-size:11px;color:var(--dim);font-weight:600}.asm-vec input{width:100%;min-width:0;height:24px;padding:0 6px;background:var(--panel-2);border:1px solid var(--line);border-radius:5px;color:var(--text);font-size:12px}.asm-vec input:focus{outline:none;border-color:var(--accent)}.asm-err-msg{font-size:11.5px;color:var(--err, #e06c75)}.asm-form-actions{display:flex;gap:8px;justify-content:flex-end}.asm-badge{font-size:10.5px;padding:1px 6px;border-radius:999px;white-space:nowrap;background:color-mix(in srgb,var(--accent) 14%,var(--panel-2));color:var(--accent);border:1px solid color-mix(in srgb,var(--accent) 35%,transparent)}.asm-vec input.ro{background:var(--panel);color:var(--dim);border-style:dashed;cursor:default}.asm-vec input.ro:focus{border-color:var(--line)}.asm-mate-note{font-size:11px;color:var(--dim);font-style:italic}.asm-mate-block{display:flex;flex-direction:column;gap:6px;padding:8px;border-radius:6px;background:color-mix(in srgb,var(--accent) 6%,var(--panel-2));border:1px solid color-mix(in srgb,var(--accent) 25%,transparent)}.asm-mate-line{font-size:12px;color:var(--text)}.asm-mate-ref{font-family:var(--mono, monospace)}.asm-stats{display:flex;flex-direction:column;gap:3px;font-size:12px;color:var(--text)}.asm-stats>div{display:flex;gap:6px}.asm-btn.danger{color:var(--err, #e06c75);border-color:color-mix(in srgb,var(--err, #e06c75) 35%,var(--line))}.asm-btn.danger:hover{border-color:var(--err, #e06c75)}.asm-badge.warn{background:color-mix(in srgb,var(--err, #e06c75) 12%,var(--panel-2));color:var(--err, #e06c75);border-color:color-mix(in srgb,var(--err, #e06c75) 35%,transparent)}.asm-explode{display:flex;flex-direction:column;gap:6px}.asm-explode-toggle{display:flex;align-items:center;gap:6px;font-size:12px;color:var(--text);cursor:pointer}.asm-explode-slider{display:flex;align-items:center;gap:8px;font-size:11.5px;color:var(--dim);font-variant-numeric:tabular-nums}.asm-explode-slider input[type=range]{flex:1;accent-color:var(--accent)}.asm-explode-rows{display:flex;flex-direction:column;gap:4px;max-height:260px;overflow-y:auto}.asm-explode-row{display:grid;grid-template-columns:minmax(52px,88px) 1fr 32px auto;align-items:center;gap:6px;font-size:11.5px;font-variant-numeric:tabular-nums}.asm-explode-row input[type=range]{width:100%;accent-color:var(--accent)}.asm-explode-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--text)}.asm-explode-row.overridden .asm-explode-name{color:var(--accent);font-weight:600}.asm-explode-reset{padding:1px 6px;font-size:10.5px;border:1px solid var(--line);border-radius:4px;background:var(--panel-2);color:var(--dim);cursor:pointer}.asm-explode-reset:hover{color:var(--text);border-color:var(--dim)}.asm-bom{display:flex;flex-direction:column;gap:1px}.asm-row.bom{cursor:pointer;gap:6px}.asm-row.bom.head,.asm-row.bom.total{cursor:default;color:var(--dim);font-size:10.5px}.asm-row.bom.head:hover,.asm-row.bom.total:hover{background:none}.asm-row.bom.total{border-top:1px solid var(--line);font-weight:700}.asm-num{flex:none;font-size:10.5px;color:var(--dim);white-space:nowrap;font-variant-numeric:tabular-nums}.asm-bom-note{font-size:11px;color:var(--dim);font-style:italic}.asm-bom-detail{display:flex;flex-direction:column;gap:1px;padding:1px 7px 4px 30px}.asm-bom-inst{display:flex;align-items:center;gap:6px;font-size:11.5px;color:var(--dim)}.asm-bom-inst .asm-name{font-family:var(--mono, monospace)}.asm-constraint-names{display:flex;align-items:center;gap:6px;cursor:pointer;flex:1;min-width:0;font-size:12px;color:var(--text)}.asm-constraint-names:hover .asm-name{color:var(--accent)}.asm-constraint-arrow{color:var(--dim)}.asm-constraint-ctrl{display:flex;align-items:center;gap:6px;flex:1;min-width:0}.asm-constraint-ctrl select{height:24px;padding:0 4px;font-size:12px;background:var(--panel);border:1px solid var(--line);border-radius:5px;color:var(--text)}.asm-constraint-ctrl input{width:64px;height:24px;padding:0 6px;font-size:12px;background:var(--panel);border:1px solid var(--line);border-radius:5px;color:var(--text)}.asm-constraint-ctrl input:focus,.asm-constraint-ctrl select:focus{outline:none;border-color:var(--accent)}.asm-hist-row{display:flex;align-items:center;gap:8px;padding:4px 8px;border-radius:6px;font-size:12px;background:var(--panel-2)}.asm-hist-seq{color:var(--dim);font-variant-numeric:tabular-nums}.asm-hist-label{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.asm-hist-actor{font-size:10.5px;padding:1px 6px;border-radius:999px;white-space:nowrap;background:var(--panel);color:var(--dim);border:1px solid var(--line)}.asm-hist-actor.ai{background:color-mix(in srgb,var(--accent) 14%,var(--panel-2));color:var(--accent);border-color:color-mix(in srgb,var(--accent) 35%,transparent)}.asm-hist-time{font-size:11px;color:var(--dim);white-space:nowrap;font-variant-numeric:tabular-nums}.overlay-mate{top:16px;left:50%;transform:translate(-50%);padding:10px 14px;font-size:12.5px;color:var(--text);max-width:min(560px,calc(100% - 32px));display:flex;flex-direction:column;gap:7px}.om-hint{color:var(--dim)}.om-picks{font-size:13px;font-weight:600}.om-kind{display:flex;gap:12px;font-size:12px}.om-kind label{display:flex;align-items:center;gap:4px;cursor:pointer}.om-offset{display:flex;align-items:center;gap:6px;font-size:12px;color:var(--dim)}.om-offset input{width:70px;height:24px;padding:0 6px;background:var(--panel-2);border:1px solid var(--line);border-radius:5px;color:var(--text);font-size:12px}.om-offset input:focus{outline:none;border-color:var(--accent)}.om-error{font-size:11.5px;color:var(--err, #e06c75)}.om-actions{display:flex;gap:8px}.om-actions button{height:24px;padding:0 10px;font-size:11.5px;background:var(--panel);border:1px solid var(--line);border-radius:5px;color:var(--text);cursor:pointer}.om-actions button:hover{border-color:var(--accent)}.om-actions button:disabled{opacity:.5;cursor:default}.om-actions .om-confirm{background:var(--accent);border-color:var(--accent);color:var(--on-accent)}.om-actions .om-confirm:hover{border-color:var(--accent);filter:brightness(1.1)}.fnode-root{border-top:1px solid var(--border);margin-top:3px;padding-top:2px}.fnode-root:first-child{border-top:none;margin-top:0;padding-top:0}.fnode-body-chip{flex:none;width:15px;height:15px;line-height:13px;display:inline-flex;align-items:center;justify-content:center;font-size:10px;font-weight:700;color:var(--dim);border:1px solid var(--border);border-radius:4px;background:transparent;cursor:pointer;padding:0}.fnode-body-chip:hover{color:var(--accent);border-color:color-mix(in srgb,var(--accent) 55%,transparent);background:var(--accent-light)}.body-empty{list-style:none}
