:root,:root[data-theme=dark]{--bg: #16181d;--panel: #1f2229;--panel-2: #262a33;--border: #33373f;--text: #e6e8ee;--text-2: #c8ccd6;--muted: #8f95a3;--disabled: #565b66;--accent: #2d7bff;--accent-2: #4f92ff;--warn: #e0b040;--danger: #e05a5a;--ok: #3fbf7f;--sunken: #1b1e25;--surface-1: #23262e;--surface-2: #2f333d;--surface-3: #3a3f4a;--hover: #2a2e37;--select: #263a5e;--drop: #223252;--surface-accent: #232a38;--input-bg: #14161b;--code-bg: #14161b;--viewer-bg: #1d1f24;--grid-major: #3a3d45;--grid-minor: #2a2c33;--badge-fg: #d0d4dd;--mat-bg: #4c3d8f;--mat-border: #6a58c0;--child-bg: #2f6b4f;--child-border: #3f8f6a;--prefab-bg: #8a5a22;--prefab-border: #b3782f;--ok-bg: #235c40;--ok-border: #235c40;--ok-fg: #bff0d6;--warn-bg: #7a5a1a;--warn-border: #7a5a1a;--warn-fg: #ffd98a;--warn-badge-fg: #1a1206;--info-bg: #20283a;--info-border: #3a6bd6;--preview: #ff9f1a;--icon-group: #c9a15f;--icon-mesh: #7da4ff;--overlay-bg: rgba(20,22,28,.94);--backdrop: rgba(0,0,0,.55);--shadow-a: rgba(0,0,0,.4);--shadow-b: rgba(0,0,0,.5);--shadow-c: rgba(0,0,0,.6);--radius: 6px;font-family:Segoe UI,system-ui,-apple-system,sans-serif;font-size:13px;color:var(--text)}:root[data-theme=light]{--bg: #eef0f4;--panel: #ffffff;--panel-2: #eff1f5;--border: #d2d6de;--text: #1b1f27;--text-2: #3c434f;--muted: #6a7180;--disabled: #a9aeb8;--accent: #1f6feb;--accent-2: #1558c4;--warn: #a8730c;--danger: #c33b3b;--ok: #1c8f5c;--sunken: #e8eaef;--surface-1: #f6f7f9;--surface-2: #eceef2;--surface-3: #dde1e8;--hover: #edf0f5;--select: #d7e5ff;--drop: #c8dcff;--surface-accent: #e7effd;--input-bg: #ffffff;--code-bg: #eceef2;--viewer-bg: #e6e8ec;--grid-major: #b8bcc6;--grid-minor: #ccd0d8;--badge-fg: #3c434f;--mat-bg: #6a58c0;--mat-border: #55459f;--child-bg: #2f8f66;--child-border: #267754;--prefab-bg: #b3782f;--prefab-border: #96631f;--ok-bg: #d3f0e0;--ok-border: #7fc9a6;--ok-fg: #14603f;--warn-bg: #fbeac2;--warn-border: #d8ab48;--warn-fg: #7a5a1a;--warn-badge-fg: #ffffff;--info-bg: #e4ecfd;--info-border: #7ba1ec;--preview: #d97706;--icon-group: #9a7024;--icon-mesh: #2f6ad0;--overlay-bg: rgba(255,255,255,.96);--backdrop: rgba(30,35,45,.35);--shadow-a: rgba(25,32,48,.14);--shadow-b: rgba(25,32,48,.18);--shadow-c: rgba(25,32,48,.22)}*{box-sizing:border-box}html,body{margin:0;height:100%;background:var(--bg);overflow:hidden}#app{height:100vh;--w-left: 320px;--w-rules: 340px;--w-right: 380px;display:grid;grid-template-columns:26px var(--w-left) 1fr var(--w-rules) var(--w-right) 26px;grid-template-rows:44px 1fr;grid-template-areas:"tb tb tb tb tb tb" "rail-l left center rules right rail-r"}#app.left-hidden{--w-left: 0px}#app.rules-hidden{--w-rules: 0px}#app.right-hidden{--w-right: 0px}#app.left-hidden .panel-left,#app.rules-hidden .panel-rules,#app.right-hidden .panel-right{display:none}.panel-rules{grid-area:rules;border-left:1px solid var(--border)}.rail{display:flex;flex-direction:column;align-items:stretch;background:var(--panel-2);overflow:hidden}.rail-left{grid-area:rail-l;border-right:1px solid var(--border)}.rail-right{grid-area:rail-r;border-left:1px solid var(--border)}.rail-btn{display:flex;flex-direction:column;align-items:center;gap:6px;padding:10px 0;background:none;border:0;border-bottom:1px solid var(--border);color:var(--muted);font:inherit;cursor:pointer}.rail-btn:hover{background:var(--hover);color:var(--text)}.rail-btn.active{color:var(--text)}.rail-btn.highlight{color:var(--accent-2)}.rail-btn .rail-label{writing-mode:vertical-rl;font-weight:600;letter-spacing:.04em}.rail-btn .rail-arrow{color:var(--muted);font-size:12px}.rules-list{padding:6px;display:flex;flex-direction:column;gap:6px}.rules-caption{padding:4px 4px 0;display:flex;align-items:center;gap:6px}.rule-card{padding:6px 8px}.rule-target{display:flex;align-items:center;gap:6px;font-weight:600;flex:1;min-width:0}.rule-target .kind{font-weight:400;color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;flex:0 1 auto}.rule-target .tname{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;flex:0 1 auto}.rule-conds{margin:4px 0 0 22px;display:flex;flex-direction:column;gap:2px}.rule-cond{font-size:12px;color:var(--text-2)}.rule-cond .kw{color:var(--muted)}.rule-cond code{background:var(--code-bg);padding:0 4px;border-radius:3px;font-size:12px}.rules-group{margin:8px 0 2px;padding:2px 4px;display:flex;align-items:center;gap:6px;font-weight:600;border-bottom:1px solid var(--border)}.rules-filter{display:flex;align-items:center;gap:6px;padding:6px 8px;background:var(--select);border-radius:var(--radius);margin:4px 0}.rules-filter .label{flex:1}.star{background:none;border:0;cursor:pointer;padding:0 2px;font-size:12px;line-height:1;filter:grayscale(.2)}.star:hover,.star.active{filter:none;transform:scale(1.2)}.sugg-bar{display:flex;align-items:center;gap:6px;padding:5px 8px;background:var(--info-bg);border-bottom:1px solid var(--info-border)}.sugg-bar .label{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.rule-card.rule-active{border-left:3px solid var(--ok);padding-left:6px}.rule-card.rule-idle,.rule-card.rule-broken{opacity:.7}.rule-card.rule-off{opacity:.5}.badge-ok{background:var(--ok-bg);color:var(--ok-fg)}.rule-card.previewing{border-color:var(--preview)}.rule-suggestion{border-color:var(--info-border);background:var(--info-bg)}.rule-text{flex:1;line-height:1.45;white-space:normal}.rule-text code{background:var(--code-bg);padding:0 4px;border-radius:3px;font-size:12px}.rule-foot{margin:6px 0 0}.cond-row select{width:96px;flex:0 0 auto}.cond-row input[type=text]{flex:1;min-width:60px}.nowrap{white-space:nowrap}.rule-summary{margin-top:6px}.badge-warn{background:var(--warn-bg);color:var(--warn-fg)}.warn-text{color:var(--warn)}.ok-text{color:var(--ok)}.match-list{max-height:220px;overflow:auto;margin-top:4px}.details{margin:4px 0 8px}.kv-detail{margin:2px 0}.kv-detail .val{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.toolbar{grid-area:tb;display:flex;align-items:center;gap:6px;padding:0 10px;background:var(--panel);border-bottom:1px solid var(--border)}.app-title{font-weight:600;margin-right:8px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:380px}.spacer{flex:1}.sep{width:1px;height:24px;background:var(--border);margin:0 4px}.panel{display:flex;flex-direction:column;background:var(--panel);overflow:hidden}.panel-left{grid-area:left;border-right:1px solid var(--border)}.panel-right{grid-area:right;border-left:1px solid var(--border)}.panel-section{display:flex;flex-direction:column;min-height:0}.scene-section{flex:1 1 50%;border-bottom:1px solid var(--border)}.inspector-section{flex:1 1 50%}.panel-head{display:flex;align-items:center;gap:6px;padding:6px 8px;border-bottom:1px solid var(--border);background:var(--panel-2)}.panel-title{font-weight:600;margin-right:auto}.search{flex:1;min-width:60px;max-width:160px}.tagbar{display:flex;flex-wrap:wrap;align-items:center;gap:4px;padding:5px 8px;border-bottom:1px solid var(--border);background:var(--panel-2)}.tagbar-sep{width:1px;height:13px;background:var(--border);margin:0 2px}.filter-tag{font:inherit;font-size:11px;line-height:16px;padding:1px 7px;border-radius:9px;border:1px solid var(--border);background:var(--surface-2);color:var(--muted);cursor:pointer;white-space:nowrap}.filter-tag:hover:not(:disabled){background:var(--surface-3);color:var(--text)}.filter-tag:disabled{opacity:.5;cursor:default}.filter-tag.active{background:var(--accent);border-color:var(--accent-2);color:#fff}.filter-tag.tag-material.active{background:var(--mat-bg);border-color:var(--mat-border)}.filter-tag.tag-child.active{background:var(--child-bg);border-color:var(--child-border)}.filter-tag.tag-prefab.active{background:var(--prefab-bg);border-color:var(--prefab-border)}.tag-count{margin-left:auto}.tagbar .tag-clear{display:none}.tagbar.has-tags .tag-clear{display:inline-block}.tree{flex:1;overflow:auto;padding:4px 0}.tree-caption{padding:4px 10px 6px;border-bottom:1px dashed var(--border);margin-bottom:4px}.empty{padding:16px 12px;color:var(--muted);line-height:1.5}.muted{color:var(--muted)}.small{font-size:12px}.accent{color:var(--accent-2)}.row{display:flex;align-items:center;gap:5px;padding:3px 8px;cursor:pointer;white-space:nowrap;-webkit-user-select:none;user-select:none;min-height:24px;border-left:2px solid transparent}.row:hover{background:var(--hover)}.row.hovered{background:var(--hover);border-left-color:var(--muted)}.row.selected{background:var(--select);border-left-color:var(--accent)}.row.drop-hover{outline:2px solid var(--accent-2);outline-offset:-2px;background:var(--drop)}.row .label{overflow:hidden;text-overflow:ellipsis;flex:1}.row-group .label{font-weight:600}.row-step .label{font-weight:500}.row-option .label,.row-optionGroup .label{color:var(--text-2)}.row-optionGroup .label{font-style:italic}.row-infoStep{opacity:.6}.row-model{background:var(--panel-2);position:sticky;top:0;z-index:1}.row-model.row-missing .label{color:var(--warn)}.transform-editor{padding:4px 10px 6px 22px;background:var(--sunken);border-bottom:1px solid var(--border)}.transform-editor .kv>.muted{min-width:64px}.transform-editor input[type=number]{width:58px}.transform-editor select{flex:1}.btn.active{background:var(--accent);border-color:var(--accent);color:#fff}.row-group>.label{color:var(--text-2)}.row-group .icon{color:var(--icon-group)}.vis-box{width:12px;height:12px;margin:0;flex-shrink:0;accent-color:var(--accent);cursor:pointer}.row-hidden>.label,.row-hidden>.icon,.row-hidden>.badge,.row-hidden>.badges{opacity:.4}.row-mesh .icon{color:var(--icon-mesh);font-size:9px}.arrow{width:12px;display:inline-block;text-align:center;color:var(--muted);font-size:10px}.arrow:before{content:"▼"}.arrow.collapsed:before{content:"▶"}.arrow-empty:before{content:""}.icon{width:14px;text-align:center;color:var(--muted);font-size:11px}.chip{display:inline-block;width:12px;height:12px;border-radius:3px;flex-shrink:0;border:1px solid rgba(0,0,0,.4)}.chip-small{width:9px;height:9px}.swatch{width:16px;height:16px;border-radius:3px;border:1px solid var(--border);flex-shrink:0}.tag{font-size:10px;padding:0 4px;border:1px solid var(--border);border-radius:3px;color:var(--muted)}.badges{display:inline-flex;gap:3px;margin-left:auto}.badge{font-size:10px;font-weight:400;padding:1px 5px;border-radius:8px;background:var(--surface-3);color:var(--badge-fg);line-height:14px}.badge-material{background:var(--mat-bg);color:#fff}.badge-child{background:var(--child-bg);color:#fff}.badge-prefab{background:var(--prefab-bg);color:#fff}.preview-toggle{margin:0 2px;accent-color:var(--accent)}.btn{background:var(--surface-2);color:var(--text);border:1px solid var(--border);border-radius:var(--radius);padding:5px 10px;cursor:pointer;font:inherit;white-space:nowrap}.btn:hover{background:var(--surface-3)}.btn:disabled{opacity:.5;cursor:default}.btn-primary{background:var(--accent);border-color:var(--accent);color:#fff}.btn-primary:hover{background:var(--accent-2)}.btn-small{padding:2px 7px;font-size:12px}.btn-icon{padding:2px 6px;font-size:12px;line-height:16px}.btn-warn{border-color:var(--warn);color:var(--warn)}.btn-row{display:flex;gap:6px;flex-wrap:wrap;margin:6px 0}.btn-row.right{justify-content:flex-end}input[type=text],input[type=password],input[type=email],input[type=number],input[type=search],select{background:var(--input-bg);color:var(--text);border:1px solid var(--border);border-radius:var(--radius);padding:4px 6px;font:inherit;min-width:0}input[type=number]{width:70px}input[type=color]{width:28px;height:24px;padding:0;border:1px solid var(--border);background:none;border-radius:4px}input[type=range]{flex:1;accent-color:var(--accent)}.check{display:inline-flex;align-items:center;gap:4px;cursor:pointer;color:var(--text-2)}.seg{display:inline-flex;border:1px solid var(--border);border-radius:var(--radius);overflow:hidden}.seg-btn{background:var(--surface-2);color:var(--muted);border:0;padding:5px 9px;cursor:pointer;font:inherit;border-right:1px solid var(--border)}.seg-btn:last-child{border-right:0}.seg-btn.active{background:var(--accent);color:#fff}.menu{position:relative}.menu-list{display:none;position:absolute;top:110%;left:0;background:var(--panel-2);border:1px solid var(--border);border-radius:var(--radius);min-width:200px;z-index:30;padding:4px;box-shadow:0 6px 20px var(--shadow-a)}.menu.open .menu-list{display:block}.menu-item{display:block;width:100%;text-align:left;background:none;border:0;color:var(--text);padding:6px 10px;cursor:pointer;font:inherit;border-radius:4px}.menu-item:hover{background:var(--surface-3)}.viewer-wrap{grid-area:center;position:relative;overflow:hidden;background:var(--viewer-bg)}.viewer{display:block;width:100%;height:100%}.viewer-overlay{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none}.tooltip{position:absolute;background:var(--overlay-bg);border:1px solid var(--border);border-radius:var(--radius);padding:6px 9px;max-width:260px;pointer-events:none;z-index:5;line-height:1.4}.drop-hint{position:absolute;top:10px;left:50%;transform:translate(-50%);background:var(--accent);color:#fff;padding:6px 14px;border-radius:20px;pointer-events:none;z-index:6;font-weight:500;box-shadow:0 4px 14px var(--shadow-a)}.expand-cycle{min-width:22px}.viewer-loading{position:absolute;top:0;right:0;bottom:0;left:0;z-index:7;pointer-events:none;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;background:color-mix(in srgb,var(--bg) 40%,transparent)}.viewer-loading-text{font-size:15px;font-weight:500}.spinner{width:46px;height:46px;border-radius:50%;border:4px solid var(--border);border-top-color:var(--accent);animation:spin .9s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.viewer-wrap.is-loading .viewer-empty{display:none}.gizmo-bar{position:absolute;bottom:14px;left:50%;transform:translate(-50%);display:flex;gap:6px;align-items:center;background:var(--overlay-bg);border:1px solid var(--border);border-radius:20px;padding:5px 10px;z-index:6;box-shadow:0 4px 14px var(--shadow-a)}.gizmo-bar .gizmo-label{font-weight:500;margin-right:4px;max-width:180px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.hidden{display:none!important}.viewer-empty{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;pointer-events:none;z-index:3}.viewer-empty>*{pointer-events:auto}.viewer-empty-title{font-size:16px;color:var(--muted)}.btn-big{padding:10px 22px;font-size:15px}.empty-center{display:flex;flex-direction:column;align-items:center;gap:10px;text-align:center;padding-top:40px}body.dragging .viewer-wrap{outline:2px dashed var(--accent-2);outline-offset:-4px}.tabs{display:flex;border-bottom:1px solid var(--border);background:var(--panel-2)}.tab{flex:1;min-width:0;background:none;border:0;border-bottom:2px solid transparent;color:var(--muted);padding:7px 2px;cursor:pointer;font:inherit;font-size:12px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.tab.active{color:var(--text);border-bottom-color:var(--accent)}.tab-count{margin-left:3px;font-size:10px;color:var(--muted)}.tab.active .tab-count{color:var(--text)}.inspector-body{flex:1;overflow:auto;padding:8px 10px}.inspector-body h3{margin:4px 0 2px;font-size:14px;display:flex;align-items:center;gap:6px}.inspector-body h4{margin:12px 0 4px;font-size:12px;text-transform:uppercase;letter-spacing:.04em;color:var(--muted)}.kv{display:flex;align-items:center;gap:8px;margin:4px 0}.kv>.muted{min-width:70px}.kv input[type=text],.kv select{flex:1}.new-section select{flex:0 0 auto;max-width:180px}.stats{display:flex;flex-wrap:wrap;gap:4px 12px;color:var(--muted);font-size:12px;margin:6px 0}.assign-list,.target-list{display:flex;flex-direction:column;gap:2px;margin:4px 0}.assign-row{display:flex;align-items:center;gap:6px;padding:3px 6px;border-radius:4px;background:var(--surface-1)}.assign-row:hover{background:var(--hover)}.assign-row .label{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.assign-row.missing .label{color:var(--warn)}.target-list{border:1px dashed var(--border);border-radius:var(--radius);padding:4px 6px}.target-list.drop-hover{border-color:var(--accent-2);background:var(--drop)}.target-head{display:flex;align-items:center;justify-content:space-between;color:var(--muted);font-size:12px;margin-bottom:2px}.dropzone{margin:8px 0;padding:14px 10px;border:2px dashed var(--border);border-radius:var(--radius);color:var(--muted);text-align:center;font-size:12px}.dropzone.drop-hover{border-color:var(--accent-2);color:var(--text);background:var(--drop)}.option-box{border:1px solid var(--border);border-radius:var(--radius);padding:6px 8px;margin:6px 0}.option-head{display:flex;align-items:center;gap:6px;cursor:grab;padding:2px 0}.mat-editor{margin-top:6px;border-top:1px dashed var(--border);padding-top:4px}.thumb{width:28px;height:28px;object-fit:cover;border-radius:3px;margin-left:6px}.real-mat{border:1px solid var(--border);border-radius:var(--radius);padding:5px 7px;margin-bottom:6px;background:var(--surface-1)}.real-mat-head{display:flex;align-items:center;gap:6px}.real-mat-head .thumb{width:34px;height:34px;margin-left:0}.seg-btn.disabled{opacity:.45}.card-list{display:flex;flex-direction:column;gap:8px;margin-top:8px}.card{border:1px solid var(--border);border-radius:var(--radius);padding:6px 8px;background:var(--surface-1)}.card.active{border-color:var(--accent)}.card.drop-hover{border-color:var(--accent-2);background:var(--drop)}.section-row{display:flex;align-items:center;gap:6px;padding:5px 8px;cursor:grab}.section-row .label{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.section-row .icon{color:var(--muted)}.section-row:hover{border-color:var(--muted)}.section-hidden .label,.section-hidden .icon{opacity:.65}.section-editor{border-color:var(--accent);background:var(--surface-accent)}.section-catalog{cursor:default;border-style:dashed;opacity:.85}.section-catalog:hover{opacity:1}.editor-caption{display:flex;align-items:center;gap:6px;margin-bottom:4px}.badge-edit{background:var(--accent);color:#fff}.color-chip{width:22px;height:22px;padding:0;flex:0 0 auto;background:none;border:1px solid var(--border);border-radius:4px}.color-field{width:22px;height:22px;padding:0;flex:0 0 auto;border:1px solid var(--border);border-radius:4px;cursor:pointer}.color-field:hover{border-color:var(--accent-2)}.cp-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:30}.cp-panel{position:fixed;width:216px;background:var(--panel);border:1px solid var(--border);border-radius:8px;padding:8px;box-shadow:0 16px 40px var(--shadow-c)}.cp-area{position:relative;height:120px;border-radius:4px;cursor:crosshair;touch-action:none}.cp-hue{position:relative;height:14px;margin-top:8px;border-radius:4px;cursor:ew-resize;touch-action:none;background:linear-gradient(to right,red,#ff0 17%,#0f0 33%,#0ff,#00f 67%,#f0f 83%,red)}.cp-knob{position:absolute;width:12px;height:12px;margin:-6px 0 0 -6px;border:2px solid #fff;border-radius:50%;box-shadow:0 0 0 1px #0009;pointer-events:none}.cp-knob-hue{top:50%}.cp-row{display:flex;align-items:center;gap:6px;margin:8px 0 6px}.cp-preview{width:22px;height:22px;border-radius:4px;border:1px solid var(--border);flex:0 0 auto}.cp-hex{flex:1;min-width:0}.cp-presets{display:grid;grid-template-columns:repeat(6,1fr);gap:4px;margin-top:4px}.cp-preset{height:20px;border:1px solid var(--border);border-radius:3px;cursor:pointer;padding:0}.cp-preset:hover{border-color:var(--accent-2)}.list-caption{margin:10px 0 2px;padding-bottom:2px;border-bottom:1px solid var(--border)}.card-head{display:flex;align-items:center;gap:6px;cursor:grab}.card-head input[type=text]{flex:1}.tool{display:inline-block;padding:8px 12px;border:1px dashed var(--warn);color:var(--warn);border-radius:var(--radius);cursor:grab;margin:6px 0}.door-editor{margin-top:4px}.dialog{background:var(--panel);color:var(--text);border:1px solid var(--border);border-radius:10px;padding:18px 22px;width:480px;max-width:95vw;box-shadow:0 20px 60px var(--shadow-c)}.dialog-wide{width:720px}.sections-dialog{display:flex;flex-direction:column;max-height:min(78vh,720px);overflow:auto}.sections-dialog .card-list{margin-top:4px}.dialog-rule,.dialog-sugg{width:560px}.sugg-list{max-height:min(60vh,520px);overflow:auto;padding-right:2px;margin-top:4px}.rule-dialog-body{max-height:min(60vh,520px);overflow:auto;padding-right:2px}.rule-dialog-foot{align-items:center;margin-top:10px;border-top:1px solid var(--border);padding-top:10px}.rule-enabled{margin-top:10px}.dialog::backdrop{background:var(--backdrop)}.dialog h2{margin:0 0 8px;font-size:17px}.dialog h4{margin:14px 0 6px;font-size:12px;text-transform:uppercase;letter-spacing:.04em;color:var(--muted)}.field{display:flex;flex-direction:column;gap:3px;margin:8px 0}.field span{color:var(--muted);font-size:12px}.advanced{margin:10px 0 4px;border-top:1px solid var(--border);padding-top:6px}.advanced>summary{cursor:pointer;color:var(--muted);font-size:12px;-webkit-user-select:none;user-select:none}.advanced>summary:hover{color:var(--text)}.help li{margin:6px 0;line-height:1.45}.toast-host{position:fixed;bottom:16px;right:16px;display:flex;flex-direction:column;gap:6px;z-index:100}.toast{background:var(--surface-2);border:1px solid var(--border);border-left:4px solid var(--accent);padding:8px 12px;border-radius:var(--radius);max-width:380px;box-shadow:0 6px 20px var(--shadow-a);animation:toast-in .2s ease-out}.toast-ok{border-left-color:var(--ok)}.toast-error{border-left-color:var(--danger)}@keyframes toast-in{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-thumb{background:var(--surface-3);border-radius:5px;border:2px solid var(--panel)}.btn-assign{visibility:hidden;margin-left:4px;padding:0 5px;font-size:11px;line-height:15px;background:none;border-color:var(--border);color:var(--muted);flex-shrink:0}.row:hover .btn-assign{visibility:visible}.btn-assign:hover:not(:disabled){background:var(--accent);border-color:var(--accent);color:#fff}.btn-assign:disabled{color:var(--disabled)}.context-menu{position:fixed;z-index:60;min-width:230px;background:var(--panel-2);border:1px solid var(--border);border-radius:var(--radius);padding:4px;box-shadow:0 10px 30px var(--shadow-b)}.context-heading{padding:4px 10px 6px;margin-bottom:4px;color:var(--muted);font-size:12px;border-bottom:1px solid var(--border);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.context-item{display:flex;align-items:center;gap:14px;width:100%;text-align:left;background:none;border:0;color:var(--text);padding:6px 10px;border-radius:4px;cursor:pointer;font:inherit}.context-item .label{flex:1}.context-item .hint{color:var(--muted);font-size:11px}.context-item:hover:not(:disabled),.context-item.active{background:var(--surface-3)}.context-item:disabled{opacity:.45;cursor:default}.context-sep{height:1px;background:var(--border);margin:4px 2px}.qa-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:70}.qa-panel{position:absolute;display:flex;flex-direction:column;width:400px;max-width:92vw;background:var(--panel);border:1px solid var(--accent-2);border-radius:10px;box-shadow:0 20px 60px var(--shadow-c);overflow:hidden;animation:toast-in .12s ease-out}.qa-head{padding:8px 10px 6px;border-bottom:1px solid var(--border)}.qa-input{margin:8px 10px}.qa-list{max-height:320px;overflow:auto;padding:0 4px 4px}.qa-row{display:flex;align-items:center;gap:6px;padding:5px 8px;border-radius:4px;cursor:pointer;white-space:nowrap}.qa-row.active{background:var(--select)}.qa-name{overflow:hidden;text-overflow:ellipsis}.qa-path{flex:1;min-width:20px;color:var(--muted);font-size:11px;overflow:hidden;text-overflow:ellipsis;direction:rtl;text-align:left}.qa-kind{margin-left:auto;font-size:10px;padding:1px 5px;border-radius:8px;background:var(--surface-3);color:var(--badge-fg);flex-shrink:0}.qa-foot{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:6px 10px;border-top:1px solid var(--border);background:var(--panel-2)}.badge-guess{opacity:.55;font-style:italic}.badge-targets{letter-spacing:.5px}.badge-controller{min-width:38px;text-align:center;flex-shrink:0}.prefab-section{border-left:2px solid var(--prefab-border);padding-left:8px;margin:8px 0}.step-id{font-size:11px;font-style:italic;color:var(--muted);margin:-2px 0 6px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.details-block{border-top:1px solid var(--border);margin-top:8px}.details-block>summary{cursor:pointer;padding:6px 2px;font-weight:500;-webkit-user-select:none;user-select:none}.details-block>summary:hover{color:var(--accent)}.details-block[open]>summary{margin-bottom:4px}.section-title{font-weight:500;margin:8px 0 4px;cursor:help}.btn-wide{display:block;width:100%;margin:6px 0}.vec3{display:flex;gap:4px;flex:1}.vec3>input{width:100%;min-width:0}.login-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:100;background:var(--bg);display:flex;align-items:center;justify-content:center;padding:20px}.login-overlay.busy{cursor:progress}.login-card{width:100%;max-width:380px;background:var(--panel);border:1px solid var(--border);border-radius:10px;padding:32px 28px;display:flex;flex-direction:column;gap:4px}.login-title{margin:0;font-size:22px;font-weight:600}.login-sub{margin:0 0 20px;color:var(--muted);font-size:12px}.login-form{display:flex;flex-direction:column;gap:10px}.login-label{color:var(--muted);font-size:12px}.login-input{padding:9px 10px!important;font-size:14px}.login-digits{display:flex;gap:6px;justify-content:space-between}.login-digit{width:100%;text-align:center;font-size:20px;font-family:ui-monospace,monospace;padding:8px 0!important}.login-digit:focus{outline:2px solid var(--accent);outline-offset:-1px}.btn-link{background:none;border:0;color:var(--muted);text-decoration:underline;padding:4px}.btn-link:hover{background:none;color:var(--text)}.login-status{margin:14px 0 0;font-size:12px;color:var(--muted);min-height:32px;line-height:1.5}.login-status.error{color:var(--danger)}.user-chip{display:flex;align-items:center;gap:6px;color:var(--muted);font-size:12px}.user-chip .company{color:var(--text)}.user-chip .badge-visionme{background:var(--accent);color:#fff;border-radius:3px;padding:1px 5px;font-size:10px;text-transform:uppercase;letter-spacing:.5px}.login-dev{margin-top:16px;padding-top:14px;border-top:1px dashed var(--border);display:flex}.login-dev .btn{flex:1}.badge-simulating{background:var(--warn);color:var(--warn-badge-fg);border-radius:3px;padding:2px 7px;font-size:11px;font-weight:600;white-space:nowrap}body.simulating .toolbar{border-bottom:2px solid var(--warn)}.company-list{max-height:320px;overflow-y:auto;display:flex;flex-direction:column;gap:2px;margin:6px 0}.company-row{display:flex;align-items:center;gap:8px;width:100%;text-align:left;background:none;border:0;border-radius:var(--radius);padding:6px 8px;color:var(--text);font:inherit;cursor:pointer}.company-row:hover{background:var(--panel-2)}.company-row .label{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.rs-list{max-height:320px;overflow-y:auto;display:flex;flex-direction:column;gap:6px;margin:6px 0}.rs-row{border:1px solid var(--border);border-radius:var(--radius);padding:6px 8px;display:flex;flex-direction:column;gap:4px}.rs-row:hover{border-color:var(--accent-2)}.rs-head{display:flex;align-items:center;gap:6px}.rs-head .label{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:600}.sep-h{height:1px;background:var(--border);margin:10px 0 6px}.rules-views{display:flex;margin:4px 6px 0}.rules-views .seg-btn{flex:1}.step-row{padding:4px 6px}.step-row .card-head{gap:4px}.step-row .label{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.step-no{width:14px;text-align:right;flex:0 0 auto}.badge-transform{background:var(--mat-bg);color:#fff}.house-btn{display:inline-flex;align-items:center;gap:6px;max-width:360px}.house-btn .house-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:600}.sync-clean{background:var(--ok-bg);color:var(--ok-fg)}.sync-dirty{background:var(--surface-3);color:var(--badge-fg)}.sync-error{background:var(--warn-bg);color:var(--warn-fg)}.home-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:90;background:var(--bg);display:flex;align-items:center;justify-content:center;padding:24px;overflow:auto}.home{width:min(760px,100%);display:flex;flex-direction:column;gap:12px}.home-head{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.home-head .spacer{flex:1}.home-user{display:flex;align-items:center;gap:8px}.home-title{font-size:20px;font-weight:600}.home-steps{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px}.home-step{display:flex;align-items:center;gap:12px;padding:10px 12px;border:1px solid var(--border);border-radius:var(--radius);background:var(--panel)}.home-step .num{width:24px;height:24px;border-radius:50%;background:var(--surface-2);color:var(--text);display:grid;place-items:center;flex:0 0 auto;font-size:12px}.home-step.done{border-color:var(--ok-border)}.home-step.done .num{background:var(--ok-bg);color:var(--ok-fg)}.home-step .body{flex:1;min-width:0}.home-check{display:flex;flex-wrap:wrap;gap:8px}.home-check .kpi{border:1px solid var(--border);border-radius:var(--radius);padding:6px 12px;background:var(--panel);display:flex;flex-direction:column;line-height:1.3}.home-check .kpi b{font-size:18px}.home-check .kpi.ok{border-color:var(--ok-border)}.home-check .kpi.warn{border-color:var(--warn-border)}.home-foot{margin-top:4px}.home-save{display:flex;align-items:center;gap:8px;flex-wrap:wrap;padding:10px 12px;border:1px solid var(--border);border-radius:var(--radius);background:var(--panel)}.home-save input[type=text]{flex:1;min-width:160px}.home-save-hint{flex-basis:100%}.home-houses{display:flex;flex-direction:column;gap:6px}.home-houses .rs-row.current{border-color:var(--accent)}.home-ways{display:flex;gap:10px;flex-wrap:wrap}.home-way{flex:1 1 240px;display:flex;flex-direction:column;gap:4px;text-align:left;padding:14px 16px;border:1px solid var(--border);border-radius:var(--radius);background:var(--panel);color:var(--text);font:inherit;cursor:pointer}.home-way:hover{border-color:var(--accent-2)}.home-way.primary{border-color:var(--accent);background:var(--surface-accent)}.home-way b{font-size:15px}.home-head .btn{margin-right:6px}.home-new{display:flex;flex-direction:column;gap:8px;padding:12px 14px;border:1px solid var(--accent);border-radius:var(--radius);background:var(--surface-accent)}.home-new .row{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.home-new input[type=text]{flex:1;min-width:180px}.home-conflict{display:flex;align-items:center;gap:10px;padding:10px 12px;border:1px solid var(--warn-border);border-radius:var(--radius);background:var(--warn-bg);color:var(--warn-fg)}.home-conflict>span{flex:1}.home>.home-way{flex:0 0 auto}.set-bar{display:flex;align-items:center;gap:6px;padding:5px 8px;border-bottom:1px solid var(--border);background:var(--panel)}.set-bar .label{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.set-bar.dirty{background:var(--warn-bg)}.rule-card.picked{border-color:var(--accent);background:var(--surface-accent)}.sugg-pick{flex:0 0 auto;margin-right:2px}.row-section .chip{flex:0 0 auto;width:10px;height:10px;border-radius:50%}.row-section .label{font-weight:500}
