.role-admin .nav [data-view="visualBuilder"]{display:none}.builder-guide{display:flex;justify-content:space-between;gap:16px;margin:0 0 14px;padding:11px 15px;border:1px solid var(--line);border-radius:10px;background:var(--panel);color:var(--muted);font-size:10px}.builder-guide b{color:var(--accent)}.builder-shell{display:grid;grid-template-columns:240px minmax(480px,1fr) 330px;gap:12px;min-height:650px}.builder-catalog,.builder-stage-card,.builder-inspector{min-width:0;overflow:hidden}.builder-catalog-tools{display:grid;gap:8px;padding:10px}.builder-catalog-tools label{display:grid;gap:5px;color:var(--muted);font-size:9px;font-weight:800;text-transform:uppercase}.builder-catalog-tools select,.builder-inspector select,.builder-inspector input{min-width:0;width:100%;padding:9px;border:1px solid var(--line);border-radius:8px;background:var(--panel2);color:var(--text)}.builder-classes{height:550px;padding:8px;overflow:auto}.builder-class{display:grid;width:100%;gap:4px;margin-bottom:6px;padding:10px;border:1px solid var(--line);border-radius:8px;background:var(--panel2);color:var(--text);text-align:left;cursor:grab}.builder-class:hover{border-color:var(--accent)}.builder-class small{color:var(--muted);font-size:8px}.builder-class.abstract{border-style:dashed;cursor:not-allowed;opacity:.65}.builder-stage-card{position:relative}.builder-stage-tabs{display:flex;border-bottom:1px solid var(--line);background:var(--panel2)}.builder-stage-tabs button{padding:11px 15px;border:0;border-right:1px solid var(--line);background:transparent;color:var(--muted);font-weight:800}.builder-stage-tabs button.active{background:var(--panel);color:var(--text)}.builder-stage-tabs em{padding:2px 5px;border-radius:10px;background:var(--warn);color:#111;font-size:8px}.builder-pane{display:none;position:relative;height:602px}.builder-pane.active{display:block}.builder-canvas{position:relative;width:100%;height:100%;overflow:auto;background-color:#071217;background-image:radial-gradient(#29434a 1px,transparent 1px);background-size:20px 20px}.builder-canvas-empty{position:absolute;inset:0;display:grid;place-content:center;text-align:center;pointer-events:none;color:var(--muted)}.builder-canvas-empty b,.builder-canvas-empty span{display:block}.builder-canvas-empty b{color:var(--text);font-size:18px}.builder-canvas-empty span{margin-top:7px;font-size:9px}.builder-node{position:absolute;z-index:2;display:grid;width:180px;min-height:92px;padding:11px;border:2px solid #2b6876;border-radius:10px;background:#10272e;color:var(--text);box-shadow:0 7px 20px #0005;cursor:move}.builder-node.selected{border-color:var(--accent);box-shadow:0 0 0 3px #39d6ad22}.builder-node.valid-target{border-color:#55e6b1;background:#164a3d}.builder-node.invalid-target{border-color:#fb7185;background:#451d27}.builder-node-kind{color:var(--accent);font-size:7px;font-weight:900;letter-spacing:.12em}.builder-node small,.builder-node em{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--muted);font-size:8px}.builder-node em{margin-top:7px}.builder-canvas svg{position:absolute;z-index:1;inset:0;width:100%;height:100%;pointer-events:none}.builder-canvas svg line{stroke:#55e6b1;stroke-width:2;marker-end:url(#builderArrow)}.builder-canvas svg path{fill:#55e6b1}.builder-canvas svg text{fill:#d7f5ec;font-size:9px;font-weight:800;text-anchor:middle;paint-order:stroke;stroke:#071217;stroke-width:5}.builder-inspector{height:650px;overflow:auto}.builder-inspector-head{display:flex;justify-content:space-between;gap:8px;padding:14px;border-bottom:1px solid var(--line)}.builder-inspector-head span{color:var(--accent);font-size:8px;font-weight:900}.builder-inspector-head h2{margin:4px 0;font-size:19px}.builder-inspector-head small{display:block;max-width:220px;overflow:hidden;text-overflow:ellipsis;color:var(--muted);font-size:7px}.builder-fields,.builder-relations{padding:12px}.builder-fields h3,.builder-relations h3{margin:0 0 10px;font-size:12px}.builder-fields label{display:grid;gap:6px;margin-bottom:10px}.builder-fields label>span{display:flex;justify-content:space-between;gap:8px}.builder-fields label b{font-size:9px}.builder-fields label em{color:var(--muted);font-size:7px;text-align:right}.builder-relations article{padding:10px 0;border-top:1px solid var(--line)}.builder-relations article>b,.builder-relations article>small{display:block}.builder-relations article>small{margin:3px 0 8px;color:var(--muted);font-size:8px}.builder-relations article>div{display:grid;grid-template-columns:1fr auto;gap:5px}.builder-relations article>p{display:flex;justify-content:space-between;margin:6px 0 0;padding:5px 7px;border-radius:6px;background:var(--panel2);font-size:8px}.builder-relations article>p button{border:0;background:transparent;color:var(--danger)}.builder-rule-note{display:block;margin-top:7px;color:var(--warn);font-size:8px}.builder-pane pre{height:calc(100% - 54px);margin:0;padding:18px;overflow:auto;background:#050d11;color:#b8f5dc;font:11px/1.65 monospace}.builder-pane>#builderCopyXml{position:absolute;right:12px;bottom:10px}.builder-validation-summary{display:grid;gap:4px;padding:15px;border-bottom:1px solid var(--line)}.builder-validation-summary span{color:var(--muted);font-size:9px}.builder-issue{display:grid;grid-template-columns:60px 1fr;gap:10px;width:calc(100% - 24px);margin:10px 12px;padding:11px;border:1px solid var(--line);border-radius:8px;background:var(--panel2);color:var(--text);text-align:left}.builder-issue b{text-transform:uppercase}.builder-issue.error{border-left:4px solid var(--danger)}.builder-issue.warning{border-left:4px solid var(--warn)}html[data-theme="light"] .builder-canvas{background-color:#edf4f5;background-image:radial-gradient(#b9cacc 1px,transparent 1px)}html[data-theme="light"] .builder-node{background:#fff}html[data-theme="light"] .builder-canvas svg text{fill:#164a3d;stroke:#edf4f5}html[data-theme="light"] .builder-pane pre{background:#f6fafb;color:#164a3d}@media(max-width:1250px){.builder-shell{grid-template-columns:210px minmax(420px,1fr)}.builder-inspector{grid-column:1/-1;height:auto;max-height:520px}}@media(max-width:760px){.builder-guide{display:grid}.builder-shell{grid-template-columns:1fr}.builder-classes{height:220px}.builder-pane{height:520px}}
