:root{color:#f3e5d6;font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;--surface:#121f2adb;--surface-soft:#ffffff0e;--surface-strong:#0e1a25f5;--border:#ccae8e42;--border-strong:#deb78b7a;--text:#f3e5d6;--muted:#f3e5d6a8;--accent:#ffc34d;--accent-strong:#e5c3a5;--error:#ff7e6e;--success:#9ed35a;--shadow:0 24px 60px #0000005c;background:linear-gradient(90deg,#ffffff06 1px,#0000 1px) 0 0/18px 18px,linear-gradient(#ffffff06 1px,#0000 1px) 0 0/18px 18px,linear-gradient(#0b1821 0%,#102430 52%,#07111a 100%);font-family:Avenir Next,Hiragino Sans,Noto Sans JP,sans-serif;font-weight:400;line-height:1.5}*{box-sizing:border-box}html,body,#root{width:100%;min-height:100%;overflow-x:hidden}body{margin:0}button,input,textarea,select{font:inherit}button{color:inherit}.react-flow{--xy-edge-stroke-default:#b1b1b7;--xy-edge-stroke-width-default:1;--xy-edge-stroke-selected-default:#555;--xy-connectionline-stroke-default:#b1b1b7;--xy-connectionline-stroke-width-default:1;--xy-attribution-background-color-default:#ffffff80;--xy-minimap-background-color-default:#fff;--xy-minimap-mask-background-color-default:#f0f0f099;--xy-minimap-mask-stroke-color-default:transparent;--xy-minimap-mask-stroke-width-default:1;--xy-minimap-node-background-color-default:#e2e2e2;--xy-minimap-node-stroke-color-default:transparent;--xy-minimap-node-stroke-width-default:2;--xy-background-color-default:transparent;--xy-background-pattern-dots-color-default:#91919a;--xy-background-pattern-lines-color-default:#eee;--xy-background-pattern-cross-color-default:#e2e2e2;background-color:var(--xy-background-color,var(--xy-background-color-default));--xy-node-color-default:inherit;--xy-node-border-default:1px solid #1a192b;--xy-node-background-color-default:#fff;--xy-node-group-background-color-default:#f0f0f040;--xy-node-boxshadow-hover-default:0 1px 4px 1px #00000014;--xy-node-boxshadow-selected-default:0 0 0 .5px #1a192b;--xy-node-border-radius-default:3px;--xy-handle-background-color-default:#1a192b;--xy-handle-border-color-default:#fff;--xy-selection-background-color-default:#0059dc14;--xy-selection-border-default:1px dotted #0059dccc;--xy-controls-button-background-color-default:#fefefe;--xy-controls-button-background-color-hover-default:#f4f4f4;--xy-controls-button-color-default:inherit;--xy-controls-button-color-hover-default:inherit;--xy-controls-button-border-color-default:#eee;--xy-controls-box-shadow-default:0 0 2px 1px #00000014;--xy-edge-label-background-color-default:#fff;--xy-edge-label-color-default:inherit;--xy-resize-background-color-default:#3367d9;direction:ltr}.react-flow.dark{--xy-edge-stroke-default:#3e3e3e;--xy-edge-stroke-width-default:1;--xy-edge-stroke-selected-default:#727272;--xy-connectionline-stroke-default:#b1b1b7;--xy-connectionline-stroke-width-default:1;--xy-attribution-background-color-default:#96969640;--xy-minimap-background-color-default:#141414;--xy-minimap-mask-background-color-default:#3c3c3c99;--xy-minimap-mask-stroke-color-default:transparent;--xy-minimap-mask-stroke-width-default:1;--xy-minimap-node-background-color-default:#2b2b2b;--xy-minimap-node-stroke-color-default:transparent;--xy-minimap-node-stroke-width-default:2;--xy-background-color-default:#141414;--xy-background-pattern-dots-color-default:#777;--xy-background-pattern-lines-color-default:#777;--xy-background-pattern-cross-color-default:#777;--xy-node-color-default:#f8f8f8;--xy-node-border-default:1px solid #3c3c3c;--xy-node-background-color-default:#1e1e1e;--xy-node-group-background-color-default:#f0f0f040;--xy-node-boxshadow-hover-default:0 1px 4px 1px #ffffff14;--xy-node-boxshadow-selected-default:0 0 0 .5px #999;--xy-handle-background-color-default:#bebebe;--xy-handle-border-color-default:#1e1e1e;--xy-selection-background-color-default:#c8c8dc14;--xy-selection-border-default:1px dotted #c8c8dccc;--xy-controls-button-background-color-default:#2b2b2b;--xy-controls-button-background-color-hover-default:#3e3e3e;--xy-controls-button-color-default:#f8f8f8;--xy-controls-button-color-hover-default:#fff;--xy-controls-button-border-color-default:#5b5b5b;--xy-controls-box-shadow-default:0 0 2px 1px #00000014;--xy-edge-label-background-color-default:#141414;--xy-edge-label-color-default:#f8f8f8}.react-flow__background{background-color:var(--xy-background-color-props,var(--xy-background-color,var(--xy-background-color-default)));pointer-events:none;z-index:-1}.react-flow__container{width:100%;height:100%;position:absolute;top:0;left:0}.react-flow__pane{z-index:1}.react-flow__pane.draggable{cursor:grab}.react-flow__pane.dragging{cursor:grabbing}.react-flow__pane.selection{cursor:pointer}.react-flow__viewport{transform-origin:0 0;z-index:2;pointer-events:none}.react-flow__renderer{z-index:4}.react-flow__selection{z-index:6}.react-flow__nodesselection-rect:focus,.react-flow__nodesselection-rect:focus-visible{outline:none}.react-flow__edge-path{stroke:var(--xy-edge-stroke,var(--xy-edge-stroke-default));stroke-width:var(--xy-edge-stroke-width,var(--xy-edge-stroke-width-default));fill:none}.react-flow__connection-path{stroke:var(--xy-connectionline-stroke,var(--xy-connectionline-stroke-default));stroke-width:var(--xy-connectionline-stroke-width,var(--xy-connectionline-stroke-width-default));fill:none}.react-flow .react-flow__edges{position:absolute}.react-flow .react-flow__edges svg{pointer-events:none;position:absolute;overflow:visible}.react-flow__edge{pointer-events:visibleStroke}.react-flow__edge.selectable{cursor:pointer}.react-flow__edge.animated path{stroke-dasharray:5;animation:.5s linear infinite dashdraw}.react-flow__edge.animated path.react-flow__edge-interaction{stroke-dasharray:none;animation:none}.react-flow__edge.inactive{pointer-events:none}.react-flow__edge.selected,.react-flow__edge:focus,.react-flow__edge:focus-visible{outline:none}.react-flow__edge.selected .react-flow__edge-path,.react-flow__edge.selectable:focus .react-flow__edge-path,.react-flow__edge.selectable:focus-visible .react-flow__edge-path{stroke:var(--xy-edge-stroke-selected,var(--xy-edge-stroke-selected-default))}.react-flow__edge-textwrapper{pointer-events:all}.react-flow__edge .react-flow__edge-text{pointer-events:none;-webkit-user-select:none;user-select:none}.react-flow__arrowhead polyline{stroke:var(--xy-edge-stroke,var(--xy-edge-stroke-default))}.react-flow__arrowhead polyline.arrowclosed{fill:var(--xy-edge-stroke,var(--xy-edge-stroke-default))}.react-flow__connection{pointer-events:none}.react-flow__connection .animated{stroke-dasharray:5;animation:.5s linear infinite dashdraw}svg.react-flow__connectionline{z-index:1001;position:absolute;overflow:visible}.react-flow__nodes{pointer-events:none;transform-origin:0 0}.react-flow__node{-webkit-user-select:none;user-select:none;pointer-events:all;transform-origin:0 0;box-sizing:border-box;cursor:default;position:absolute}.react-flow__node.selectable{cursor:pointer}.react-flow__node.draggable{cursor:grab;pointer-events:all}.react-flow__node.draggable.dragging{cursor:grabbing}.react-flow__nodesselection{z-index:3;transform-origin:0 0;pointer-events:none}.react-flow__nodesselection-rect{pointer-events:all;cursor:grab;position:absolute}.react-flow__handle{pointer-events:none;background-color:var(--xy-handle-background-color,var(--xy-handle-background-color-default));border:1px solid var(--xy-handle-border-color,var(--xy-handle-border-color-default));border-radius:100%;width:6px;min-width:5px;height:6px;min-height:5px;position:absolute}.react-flow__handle.connectingfrom{pointer-events:all}.react-flow__handle.connectionindicator{pointer-events:all;cursor:crosshair}.react-flow__handle-bottom{top:auto;bottom:0;left:50%;transform:translate(-50%,50%)}.react-flow__handle-top{top:0;left:50%;transform:translate(-50%,-50%)}.react-flow__handle-left{top:50%;left:0;transform:translate(-50%,-50%)}.react-flow__handle-right{top:50%;right:0;transform:translate(50%,-50%)}.react-flow__edgeupdater{cursor:move;pointer-events:all}.react-flow__pane.selection .react-flow__panel{pointer-events:none}.react-flow__panel{z-index:5;margin:15px;position:absolute}.react-flow__panel.top{top:0}.react-flow__panel.bottom{bottom:0}.react-flow__panel.top.center,.react-flow__panel.bottom.center{left:50%;transform:translate(-15px)translate(-50%)}.react-flow__panel.left{left:0}.react-flow__panel.right{right:0}.react-flow__panel.left.center,.react-flow__panel.right.center{top:50%;transform:translateY(-15px)translateY(-50%)}.react-flow__attribution{background:var(--xy-attribution-background-color,var(--xy-attribution-background-color-default));margin:0;padding:2px 3px;font-size:10px}.react-flow__attribution a{color:#999;text-decoration:none}@keyframes dashdraw{0%{stroke-dashoffset:10px}}.react-flow__edgelabel-renderer{pointer-events:none;-webkit-user-select:none;user-select:none;width:100%;height:100%;position:absolute;top:0;left:0}.react-flow__viewport-portal{-webkit-user-select:none;user-select:none;width:100%;height:100%;position:absolute;top:0;left:0}.react-flow__minimap{background:var(--xy-minimap-background-color-props,var(--xy-minimap-background-color,var(--xy-minimap-background-color-default)))}.react-flow__minimap-svg{display:block}.react-flow__minimap-mask{fill:var(--xy-minimap-mask-background-color-props,var(--xy-minimap-mask-background-color,var(--xy-minimap-mask-background-color-default)));stroke:var(--xy-minimap-mask-stroke-color-props,var(--xy-minimap-mask-stroke-color,var(--xy-minimap-mask-stroke-color-default)));stroke-width:var(--xy-minimap-mask-stroke-width-props,var(--xy-minimap-mask-stroke-width,var(--xy-minimap-mask-stroke-width-default)))}.react-flow__minimap-node{fill:var(--xy-minimap-node-background-color-props,var(--xy-minimap-node-background-color,var(--xy-minimap-node-background-color-default)));stroke:var(--xy-minimap-node-stroke-color-props,var(--xy-minimap-node-stroke-color,var(--xy-minimap-node-stroke-color-default)));stroke-width:var(--xy-minimap-node-stroke-width-props,var(--xy-minimap-node-stroke-width,var(--xy-minimap-node-stroke-width-default)))}.react-flow__background-pattern.dots{fill:var(--xy-background-pattern-color-props,var(--xy-background-pattern-color,var(--xy-background-pattern-dots-color-default)))}.react-flow__background-pattern.lines{stroke:var(--xy-background-pattern-color-props,var(--xy-background-pattern-color,var(--xy-background-pattern-lines-color-default)))}.react-flow__background-pattern.cross{stroke:var(--xy-background-pattern-color-props,var(--xy-background-pattern-color,var(--xy-background-pattern-cross-color-default)))}.react-flow__controls{box-shadow:var(--xy-controls-box-shadow,var(--xy-controls-box-shadow-default));flex-direction:column;display:flex}.react-flow__controls.horizontal{flex-direction:row}.react-flow__controls-button{background:var(--xy-controls-button-background-color,var(--xy-controls-button-background-color-default));border:none;border-bottom:1px solid var(--xy-controls-button-border-color-props,var(--xy-controls-button-border-color,var(--xy-controls-button-border-color-default)));width:26px;height:26px;color:var(--xy-controls-button-color-props,var(--xy-controls-button-color,var(--xy-controls-button-color-default)));cursor:pointer;-webkit-user-select:none;user-select:none;justify-content:center;align-items:center;padding:4px;display:flex}.react-flow__controls-button svg{fill:currentColor;width:100%;max-width:12px;max-height:12px}.react-flow__edge.updating .react-flow__edge-path{stroke:#777}.react-flow__edge-text{font-size:10px}.react-flow__node.selectable:focus,.react-flow__node.selectable:focus-visible{outline:none}.react-flow__node-input,.react-flow__node-default,.react-flow__node-output,.react-flow__node-group{border-radius:var(--xy-node-border-radius,var(--xy-node-border-radius-default));width:150px;color:var(--xy-node-color,var(--xy-node-color-default));text-align:center;border:var(--xy-node-border,var(--xy-node-border-default));background-color:var(--xy-node-background-color,var(--xy-node-background-color-default));padding:10px;font-size:12px}.react-flow__node-input.selectable:hover,.react-flow__node-default.selectable:hover,.react-flow__node-output.selectable:hover,.react-flow__node-group.selectable:hover{box-shadow:var(--xy-node-boxshadow-hover,var(--xy-node-boxshadow-hover-default))}.react-flow__node-input.selectable.selected,.react-flow__node-input.selectable:focus,.react-flow__node-input.selectable:focus-visible,.react-flow__node-default.selectable.selected,.react-flow__node-default.selectable:focus,.react-flow__node-default.selectable:focus-visible,.react-flow__node-output.selectable.selected,.react-flow__node-output.selectable:focus,.react-flow__node-output.selectable:focus-visible,.react-flow__node-group.selectable.selected,.react-flow__node-group.selectable:focus,.react-flow__node-group.selectable:focus-visible{box-shadow:var(--xy-node-boxshadow-selected,var(--xy-node-boxshadow-selected-default))}.react-flow__node-group{background-color:var(--xy-node-group-background-color,var(--xy-node-group-background-color-default))}.react-flow__nodesselection-rect,.react-flow__selection{background:var(--xy-selection-background-color,var(--xy-selection-background-color-default));border:var(--xy-selection-border,var(--xy-selection-border-default))}.react-flow__nodesselection-rect:focus,.react-flow__nodesselection-rect:focus-visible,.react-flow__selection:focus,.react-flow__selection:focus-visible{outline:none}.react-flow__controls-button:hover{background:var(--xy-controls-button-background-color-hover-props,var(--xy-controls-button-background-color-hover,var(--xy-controls-button-background-color-hover-default)));color:var(--xy-controls-button-color-hover-props,var(--xy-controls-button-color-hover,var(--xy-controls-button-color-hover-default)))}.react-flow__controls-button:disabled{pointer-events:none}.react-flow__controls-button:disabled svg{fill-opacity:.4}.react-flow__controls-button:last-child{border-bottom:none}.react-flow__controls.horizontal .react-flow__controls-button{border-bottom:none;border-right:1px solid var(--xy-controls-button-border-color-props,var(--xy-controls-button-border-color,var(--xy-controls-button-border-color-default)))}.react-flow__controls.horizontal .react-flow__controls-button:last-child{border-right:none}.react-flow__resize-control{position:absolute}.react-flow__resize-control.left,.react-flow__resize-control.right{cursor:ew-resize}.react-flow__resize-control.top,.react-flow__resize-control.bottom{cursor:ns-resize}.react-flow__resize-control.top.left,.react-flow__resize-control.bottom.right{cursor:nwse-resize}.react-flow__resize-control.bottom.left,.react-flow__resize-control.top.right{cursor:nesw-resize}.react-flow__resize-control.handle{background-color:var(--xy-resize-background-color,var(--xy-resize-background-color-default));border:1px solid #fff;border-radius:1px;width:5px;height:5px;translate:-50% -50%}.react-flow__resize-control.handle.left{top:50%;left:0}.react-flow__resize-control.handle.right{top:50%;left:100%}.react-flow__resize-control.handle.top{top:0;left:50%}.react-flow__resize-control.handle.bottom{top:100%;left:50%}.react-flow__resize-control.handle.top.left,.react-flow__resize-control.handle.bottom.left{left:0}.react-flow__resize-control.handle.top.right,.react-flow__resize-control.handle.bottom.right{left:100%}.react-flow__resize-control.line{border-color:var(--xy-resize-background-color,var(--xy-resize-background-color-default));border-style:solid;border-width:0}.react-flow__resize-control.line.left,.react-flow__resize-control.line.right{width:1px;height:100%;top:0;transform:translate(-50%)}.react-flow__resize-control.line.left{border-left-width:1px;left:0}.react-flow__resize-control.line.right{border-right-width:1px;left:100%}.react-flow__resize-control.line.top,.react-flow__resize-control.line.bottom{width:100%;height:1px;left:0;transform:translateY(-50%)}.react-flow__resize-control.line.top{border-top-width:1px;top:0}.react-flow__resize-control.line.bottom{border-bottom-width:1px;top:100%}.react-flow__edge-textbg{fill:var(--xy-edge-label-background-color,var(--xy-edge-label-background-color-default))}.react-flow__edge-text{fill:var(--xy-edge-label-color,var(--xy-edge-label-color-default))}.app-shell{background:radial-gradient(circle at 12% 8%,#ffc34d14,#0000 28%),linear-gradient(115deg,#49a8ff14,#0000 34%),linear-gradient(#07111a4d,#07111aad);width:100%;max-width:100vw;min-height:100vh;padding:10px;overflow-x:hidden}.app-frame{grid-template-rows:auto 1fr;gap:8px;width:100%;min-width:0;min-height:calc(100vh - 20px);display:grid}.panel{border:1px solid var(--border);background:linear-gradient(180deg, #1d2d3ae6, #0d1a26e0), var(--surface);min-width:0;box-shadow:var(--shadow);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-radius:8px}.header-bar{grid-template-columns:minmax(260px,1fr) auto;align-items:center;gap:10px;min-width:0;padding:8px 12px;display:grid}.header-copy{gap:6px;min-width:0;display:grid}.eyebrow{color:var(--accent-strong);letter-spacing:.14em;text-transform:uppercase;margin:0;font-size:.72rem}.project-name-row{flex-wrap:wrap;align-items:center;gap:12px;min-width:0;display:flex}.project-name-input,.panel-input,.panel-textarea,.dialog-select{border:1px solid var(--border);width:100%;color:var(--text);background:#060e1657;border-radius:8px;padding:10px 12px}.project-name-input{min-width:0;max-width:380px;font-size:1rem;font-weight:700}.header-meta{flex-wrap:wrap;gap:10px;display:flex}.meta-pill,.status-pill{border:1px solid var(--border);color:var(--muted);background:#ffffff0b;border-radius:999px;padding:6px 10px;font-size:.82rem}.header-actions{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:10px;min-width:0;display:flex}.header-action-group{border:1px solid var(--border);background:#ffffff09;border-radius:10px;flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:8px;min-width:0;padding:6px;display:flex}.header-mode-group{background:linear-gradient(135deg,#49a8ff1a,#ffc34d0b),#ffffff08;border-color:#49a8ff4d}.print-title-card{display:none}.primary-button,.secondary-button,.ghost-button,.danger-button{cursor:pointer;border:1px solid #0000;border-radius:8px;padding:7px 10px;transition:transform .16s,border-color .16s,background .16s}.primary-button{color:#07111a;background:linear-gradient(135deg,#49a8ff,#ffc34d);font-weight:700}.secondary-button{border-color:var(--border-strong);background:#ffffff0b}.ghost-button{border-color:var(--border);color:var(--muted);background:0 0}.danger-button{color:#ffd1ca;background:#ff7e6e1a;border-color:#ff7e6e6b}.primary-button:hover,.secondary-button:hover,.ghost-button:hover,.danger-button:hover{transform:translateY(-1px)}.primary-button:disabled,.secondary-button:disabled,.ghost-button:disabled,.danger-button:disabled{cursor:not-allowed;opacity:.45;transform:none}.workspace-grid{grid-template-columns:196px minmax(0,1fr) 220px;align-items:stretch;gap:8px;min-height:0;display:grid}.workspace-grid.read-only-workspace{grid-template-columns:minmax(0,1fr)}.read-only-mode .canvas-tab-strip{padding:8px}.read-only-mode .canvas-shell{min-height:calc(100vh - 160px)}.read-only-mode .canvas-board-legend{margin-bottom:18px}.quick-start-dock{background:linear-gradient(90deg, #49a8ff1f, #ffc34d0f 52%, transparent), linear-gradient(180deg, #1d2d3aeb, #0d1a26e6), var(--surface);border-color:#49a8ff52;grid-template-columns:minmax(132px,.28fr) minmax(520px,1.72fr);align-items:stretch;gap:8px;padding:8px;display:grid}.quick-start-dock.has-catalog-support{grid-template-columns:minmax(132px,.24fr) minmax(420px,1.26fr) minmax(220px,.5fr)}.quick-start-copy{align-content:center;gap:4px;min-width:0;padding:4px 6px;display:grid}.quick-start-copy strong{color:var(--text);font-size:.92rem}.quick-start-note{max-width:360px;color:var(--muted);font-size:.72rem;line-height:1.35}.quick-start-actions{flex-wrap:wrap;justify-content:center;align-items:center;gap:10px;display:flex}.quick-start-action-cluster{background:#060e1633;border-radius:12px;grid-template-columns:repeat(3,minmax(0,1fr));align-items:center;gap:7px;width:100%;padding:6px;display:grid}.quick-start-card{border:1px solid var(--border);min-height:42px;color:var(--text);text-align:left;cursor:pointer;background:#ffffff09;border-radius:10px;grid-template-columns:auto minmax(0,1fr);align-items:center;gap:8px;padding:7px 8px;transition:transform .16s,border-color .16s,background .16s;display:grid}.quick-start-card:hover{border-color:var(--border-strong);background:#ffffff0e;transform:translateY(-1px)}.port-label-button:disabled{cursor:default;opacity:1}.quick-start-card.is-primary{background:linear-gradient(135deg,#49a8ff2e,#ffc34d1a),#ffffff0b;border-color:#49a8ff75}.quick-start-step{color:#ffe3b0;background:#ffc34d14;border:1px solid #ffc34d57;border-radius:999px;place-items:center;width:22px;height:22px;font-size:.72rem;font-weight:700;display:inline-grid}.catalog-support-card{background:linear-gradient(90deg,#ffc34d1c,#ff7e6e12 72%,#0000),#060e1638;border:1px solid #ffc34d57;border-radius:12px;justify-content:space-between;align-items:stretch;gap:10px;padding:10px 12px;display:flex}.catalog-support-copy{gap:5px;display:grid}.catalog-support-copy strong{color:#ffe3b0;font-size:.92rem}.catalog-support-copy p{max-width:300px;color:var(--muted);margin:0;font-size:.78rem;line-height:1.5}.catalog-support-actions{flex-flow:column wrap;justify-content:center;align-items:stretch;gap:8px;display:flex}.canvas-tab-strip{gap:6px;padding:6px 8px;display:grid}.canvas-tab-list{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.canvas-layout-toolbar{flex-wrap:wrap;justify-content:flex-start;align-items:center;gap:8px;display:flex}.canvas-tab,.canvas-tab-add{border:1px solid var(--border);min-width:132px;color:var(--muted);text-align:left;background:#ffffff09;border-radius:6px;gap:2px;padding:6px 10px;transition:transform .16s,border-color .16s,background .16s;display:grid}.canvas-tab{cursor:pointer}.canvas-tab:hover{border-color:var(--border-strong);transform:translateY(-1px)}.canvas-tab.is-active{color:var(--text);background:linear-gradient(135deg,#49a8ff24,#ffc34d14),#ffffff0b;border-color:#49a8ff75}.canvas-tab span,.canvas-tab-add{font-weight:700}.canvas-tab small{color:inherit;opacity:.82;font-size:.76rem}.canvas-setup-details{gap:8px;display:grid}.canvas-setup-details summary{cursor:pointer;width:fit-content;color:var(--muted);font-size:.78rem;font-weight:700}.canvas-setup-details[open]{padding-top:6px}.canvas-tab-add{cursor:pointer;opacity:.92;min-width:auto}.canvas-tab-delete{min-width:auto}.canvas-tab-delete:disabled{cursor:not-allowed;opacity:.45;transform:none}.canvas-tab-note{color:var(--muted);margin:0;font-size:.76rem}.canvas-tab-controls{grid-template-columns:minmax(0,320px) minmax(0,1fr);align-items:start;gap:14px;display:grid}.canvas-name-field{gap:8px;min-width:0;display:grid}.canvas-name-field span{color:var(--muted);font-size:.78rem}.zone-editor-card{border:1px solid var(--border);background:#2c51650a;border-radius:10px;gap:12px;padding:14px;display:grid}.zone-editor-header{justify-content:space-between;align-items:flex-start;gap:12px;display:flex}.zone-editor-header-actions{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:8px;display:flex}.zone-editor-header strong{display:block}.zone-editor-header p,.zone-editor-empty{color:var(--muted);margin:4px 0 0;font-size:.82rem}.zone-chip-list{flex-wrap:wrap;gap:8px;display:flex}.zone-chip{border:1px solid var(--border);color:var(--muted);cursor:pointer;background:#ffffff0b;border-radius:999px;padding:8px 12px;transition:transform .16s,border-color .16s,background .16s}.zone-chip:hover{border-color:var(--border-strong);transform:translateY(-1px)}.zone-chip.is-selected{color:var(--text);background:#ffc34d1a;border-color:#ffc34d6b}.zone-editor-grid{grid-template-columns:minmax(0,280px) minmax(0,160px);align-items:end;gap:12px;display:grid}.zone-editor-field{gap:6px;display:grid}.zone-editor-field-label,.zone-editor-field-tone{min-width:0}.workspace-grid.property-hidden{grid-template-columns:196px minmax(0,1fr)}.workspace-grid.read-only-workspace,.workspace-grid.property-hidden.read-only-workspace{grid-template-columns:minmax(0,1fr)}.sidebar,.property-panel{grid-template-rows:auto 1fr;min-height:0;display:grid}.property-panel.is-hidden{display:none}.panel-header{border-bottom:1px solid var(--border);padding:18px 18px 12px}.panel-header h2,.panel-header h3,.property-section h3,.node-card h3,.dialog-card h2,.empty-state h3{margin:0}.panel-header p,.empty-state p,.property-section p,.node-meta{color:var(--muted);margin:6px 0 0}.palette-body,.property-body{padding:16px;overflow:auto}.palette-tabs{grid-template-columns:1fr 1fr;gap:6px;padding:0 16px 14px;display:grid}.palette-tabs button{border:1px solid var(--border);color:var(--muted);cursor:pointer;font:inherit;background:#ffffff0b;border-radius:8px;min-height:36px}.palette-tabs button.active{border-color:var(--accent);color:var(--text);background:#49a8ff1f}.brx-import-panel{border:1px solid var(--border);border-radius:8px;gap:10px;margin-bottom:18px;padding:12px;display:grid}.brx-import-actions{grid-template-columns:auto 1fr;align-items:center;gap:8px;display:grid}.brx-import-actions .caption{grid-column:1/-1;line-height:1.4}.brx-file-button{justify-content:center;display:inline-flex}.brx-json-paste{resize:vertical;min-height:88px}.brx-fixture-actions{grid-template-columns:1fr 1fr;align-items:center;gap:6px;display:grid}.brx-fixture-actions .caption{grid-column:1/-1}.brx-fixture-actions .ghost-button{border-radius:12px;padding:7px 9px;font-size:.78rem}.brx-load-error{background:#ff7e6e14;border:1px solid #ff7e6e5c;border-radius:12px;gap:8px;padding:10px;display:grid}.brx-load-error ul{gap:6px;margin:0;padding-left:18px;display:grid}.brx-load-error li{color:var(--muted);font-size:.82rem;line-height:1.4}.secondary-button:disabled{cursor:not-allowed;opacity:.45}.brx-summary-card{background:linear-gradient(135deg,#49a8ff1a,#ffc34d0d),#ffffff09;border:1px solid #49a8ff3d;border-radius:10px;gap:12px;margin-bottom:18px;padding:13px;display:grid}.brx-summary-header{grid-template-columns:1fr auto;align-items:start;gap:10px;display:grid}.brx-summary-header div{gap:4px;display:grid}.brx-status-pill{border:1px solid var(--border);border-radius:999px;padding:4px 9px;font-size:.78rem;font-weight:700}.brx-status-pill.is-draft{color:#ffe3b0;background:#ffc34d1f;border-color:#ffc34d80}.brx-status-pill.is-confirmed{color:#c8e6ff;background:#49a8ff1f;border-color:#49a8ff80}.brx-status-pill.is-cancelled,.brx-status-pill.is-unknown{color:#9e3232;background:#ff7e6e1a;border-color:#ff7e6e6b}.brx-summary-list{gap:9px;margin:0;display:grid}.brx-summary-list div{grid-template-columns:54px 1fr;gap:6px;display:grid}.brx-summary-list dt{color:var(--muted);font-size:.76rem}.brx-summary-list dd{min-width:0;margin:0}.import-report{border:1px solid #deb78b29;border-radius:10px;gap:12px;padding:13px;display:grid}.import-report.has-issues{background:#ffbe7414;border-color:#ffbe7457}.import-report.is-clean{background:#78dc9e14;border-color:#78dc9e47}.import-report.is-compact{padding:11px}.import-report-header{grid-template-columns:1fr auto;align-items:start;gap:10px;display:grid}.import-report-header div{gap:4px;display:grid}.import-report-status{border:1px solid var(--border);white-space:nowrap;border-radius:999px;padding:4px 8px;font-size:.72rem;font-weight:700}.import-report-status.is-warning{color:#ffe3b0;background:#ffbe741f;border-color:#ffbe7475}.import-report-status.is-ok{color:#d8f2ac;background:#9ed35a1a;border-color:#9ed35a6b}.import-report-summary{color:var(--muted);margin:0;font-size:.86rem;line-height:1.5}.import-report-issue-list{gap:10px;margin:0;padding:0;list-style:none;display:grid}.import-report-issue{border:1px solid #deb78b24;border-radius:8px;gap:10px;padding:11px;display:grid}.import-report-issue.is-warning{background:#ffbe740f;border-color:#ffbe7447}.import-report-issue.is-error{background:#ff7e6e14;border-color:#ff7e6e4d}.import-report-issue-heading{grid-template-columns:1fr auto;align-items:start;gap:8px;display:grid}.import-report-issue-heading span{color:var(--muted);white-space:nowrap;font-size:.74rem}.import-report-issue dl{gap:8px;margin:0;display:grid}.import-report-issue dl div{gap:4px;display:grid}.import-report-issue dt{color:var(--muted);font-size:.72rem}.import-report-issue dd{overflow-wrap:anywhere;margin:0;line-height:1.45}.import-report-request-message{color:#5a251e;white-space:pre-wrap;background:#fff4e7eb;border:1px solid #ff7e6e38;border-radius:8px;padding:9px;font-size:.8rem}.import-report-dialog{width:min(760px,100%);max-height:min(86vh,760px);overflow:auto}.brx-issue-box{background:#ff7e6e14;border:1px solid #ff7e6e47;border-radius:8px;gap:8px;padding:10px;display:grid}.brx-issue-box ul{gap:8px;margin:0;padding:0;list-style:none;display:grid}.brx-issue-box li{gap:3px;display:grid}.brx-issue-box small{color:var(--muted);line-height:1.4}.brx-writeback-card{background:linear-gradient(135deg,#9ed35a17,#49a8ff0d),#ffffff09;border:1px solid #9ed35a3d;border-radius:10px;gap:12px;margin-bottom:18px;padding:13px;display:grid}.brx-writeback-header{grid-template-columns:1fr auto;align-items:start;gap:10px;display:grid}.brx-writeback-header div{gap:4px;display:grid}.brx-writeback-actions{grid-template-columns:1fr 1fr;gap:8px;display:grid}.brx-writeback-actions .secondary-button{white-space:nowrap}.brx-filter-bar{grid-template-columns:1fr 1fr;gap:6px;margin-bottom:18px;display:grid}.brx-filter-bar button{border:1px solid var(--border);color:var(--muted);cursor:pointer;font:inherit;text-align:left;background:#ffffff0b;border-radius:8px;grid-template-columns:1fr auto;align-items:center;gap:6px;min-height:36px;padding:7px 9px;display:grid}.brx-filter-bar button.active{color:var(--text);background:#49a8ff1f;border-color:#49a8ff7a}.brx-filter-bar button span:first-child{white-space:nowrap}.brx-filter-empty{margin-bottom:18px}.domain-block{gap:14px;display:grid}.domain-block+.domain-block{margin-top:24px}.domain-title{border-bottom:1px solid var(--border);color:var(--text);padding-bottom:8px;font-size:.95rem}.category-block{gap:10px;display:grid}.category-title{color:var(--accent-strong);letter-spacing:.06em;text-transform:uppercase;font-size:.78rem}.palette-section-toggle{cursor:pointer;font:inherit;text-align:left;background:0 0;border:0;grid-template-columns:18px 1fr auto;align-items:center;width:100%;margin:0;padding-left:0;display:grid}.palette-section-toggle:hover{color:var(--text)}.toggle-chevron{color:var(--muted);font-size:.82rem}.section-count{border:1px solid var(--border);color:var(--muted);letter-spacing:0;text-align:center;border-radius:999px;min-width:22px;padding:2px 7px;font-size:.72rem}.equipment-card,.node-card{border:1px solid var(--border);background:linear-gradient(#263642eb,#121f2aeb),#121f2aeb;border-radius:8px}.equipment-card{cursor:grab;gap:8px;padding:14px;display:grid}.equipment-card strong,.node-card strong{font-size:.98rem}.equipment-card:hover,.node-card:hover{border-color:var(--border-strong)}.brx-equipment-card{border-color:#49a8ff61}.brx-equipment-card.is-placed{cursor:not-allowed;opacity:.62}.brx-equipment-card-header{grid-template-columns:1fr auto;align-items:start;gap:8px;display:grid}.brx-placed-pill{color:#bde77c;white-space:nowrap;background:#9ed35a1a;border:1px solid #9ed35a6b;border-radius:999px;padding:3px 7px;font-size:.72rem;font-weight:700}.brx-jump-button{color:#c8e6ff;cursor:pointer;font:inherit;text-align:center;background:#49a8ff14;border:1px solid #49a8ff57;border-radius:8px;padding:7px 9px;font-size:.78rem}.brx-jump-button:hover{border-color:#49a8ff94}.equipment-meta,.caption,.property-grid dt,.property-grid dd,.connection-list li,.error-list li,.port-list li{color:var(--muted)}.equipment-meta,.caption{font-size:.82rem}.canvas-shell{background:linear-gradient(90deg,#deb78b09 1px,#0000 1px) 0 0/18px 18px,linear-gradient(#deb78b08 1px,#0000 1px) 0 0/18px 18px,radial-gradient(circle at 18% 18%,#49a8ff14,#0000 28%),linear-gradient(#0b1620fa,#050c13f5);flex-direction:column;min-height:620px;display:flex;position:relative;overflow:hidden}.canvas-shell:before{content:"";pointer-events:none;z-index:1;background:linear-gradient(90deg,#0000 0 24%,#ffc34d12 24% calc(24% + 1px),#0000 calc(24% + 1px) 49%,#ffc34d0f 49% calc(49% + 1px),#0000 calc(49% + 1px) 74%,#ffc34d0f 74% calc(74% + 1px),#0000 calc(74% + 1px)),linear-gradient(#ffffff0e,#0000 34%);position:absolute;inset:0}.canvas-surface{z-index:2;flex:auto;min-height:0;position:relative;overflow:hidden}.canvas-surface .react-flow{z-index:2;position:absolute;inset:0}.canvas-surface .react-flow__minimap{background:#09151fd1;border:1px solid #deb78b3d;border-radius:10px;overflow:hidden;box-shadow:0 14px 26px #00000038}.canvas-surface .react-flow__controls{background:#09151fb8;border:1px solid #deb78b33;border-radius:10px;overflow:hidden;box-shadow:0 14px 26px #0000002e}.canvas-surface .react-flow__controls-button{color:#f3e5d6d1;background:0 0;border-bottom-color:#deb78b29}.canvas-surface .react-flow__controls-button:hover{background:#ffc34d1f}.zone-overlay,.connection-overlay,.zone-interaction-overlay{pointer-events:none;width:100%;height:100%;position:absolute;inset:0;overflow:visible}.zone-overlay{z-index:1}.connection-overlay{z-index:3}.zone-interaction-overlay{z-index:4}.zone-interaction-header{fill:#0000;stroke:#0000;pointer-events:all;cursor:grab}.zone-interaction-group.is-selected .zone-interaction-header{fill:#ffc34d0f}.zone-interaction-group.is-dragging .zone-interaction-header,.zone-interaction-group.is-selected .zone-interaction-header:hover{fill:#ffc34d1a}.zone-interaction-group.is-dragging .zone-interaction-header{cursor:grabbing}.zone-resize-handle{fill:#0b1821f5;stroke:#ffc34d6b;stroke-width:1.4px;pointer-events:all;cursor:nwse-resize}.zone-interaction-group.is-selected .zone-resize-handle{fill:#22291ffa;stroke:#ffc34dd6}.zone-interaction-group.is-dragging .zone-resize-handle,.zone-resize-handle:hover{fill:#2f2f20fa;stroke:#ffc34deb}.zone-overlay-group{--zone-fill:#09151f3d;--zone-stroke:#deb78b94;--zone-inner-stroke:#ffdfb42e;--zone-label-fill:#09151fc7;--zone-label-stroke:#deb78b5c;--zone-rule:#deb78b3d;--zone-text:#f3e5d6f0}.zone-overlay-group.zone-role-input{--zone-fill:#ffc34d1f;--zone-stroke:#ffc34da3;--zone-inner-stroke:#ffd8863d;--zone-label-stroke:#ffc34d6b;--zone-rule:#ffc34d52}.zone-overlay-group.zone-role-mixer{--zone-fill:#52c7a81b;--zone-stroke:#52c7a88f;--zone-inner-stroke:#92ebd333;--zone-label-stroke:#52c7a857;--zone-rule:#52c7a842}.zone-overlay-group.zone-role-video{--zone-fill:#49a8ff1a;--zone-stroke:#49a8ff94;--zone-inner-stroke:#9ad4ff33;--zone-label-stroke:#49a8ff5c;--zone-rule:#49a8ff47}.zone-overlay-group.zone-role-output{--zone-fill:#f4efe613;--zone-stroke:#deb78b99;--zone-inner-stroke:#f4efe633;--zone-label-stroke:#deb78b5c;--zone-rule:#deb78b47}.zone-overlay-group.tone-red{--zone-fill:#ff5d5d14;--zone-stroke:#ff5d5d66;--zone-inner-stroke:#ffaaaa29;--zone-label-stroke:#ff7e6e47;--zone-rule:#ff7e6e38;--zone-text:#ffddddf0}.zone-overlay-group.tone-blue{--zone-fill:#6baff714;--zone-stroke:#6baff77a;--zone-inner-stroke:#a6d3ff2e;--zone-label-stroke:#6baff752;--zone-rule:#6baff73d;--zone-text:#dfeeffeb}.zone-overlay-group.tone-green{--zone-fill:#74e16c14;--zone-stroke:#74e16c75;--zone-inner-stroke:#b1f1ab2e;--zone-label-stroke:#74e16c4d;--zone-rule:#74e16c38;--zone-text:#dfffdcf0}.zone-overlay-group.tone-magenta{--zone-fill:#ec66ff14;--zone-stroke:#ec66ff70;--zone-inner-stroke:#f9bbff2e;--zone-label-stroke:#ec66ff4d;--zone-rule:#ec66ff38;--zone-text:#fce2fff0}.zone-overlay-group.tone-cyan{--zone-fill:#52c7a814;--zone-stroke:#52c7a875;--zone-inner-stroke:#97ebd42e;--zone-label-stroke:#52c7a84d;--zone-rule:#52c7a838;--zone-text:#d2f7ebeb}.zone-overlay-group.tone-yellow{--zone-fill:#ffdf541b;--zone-stroke:#ffdf548a;--zone-inner-stroke:#ffee9f33;--zone-label-stroke:#ffdf5457;--zone-rule:#ffdf5442;--zone-text:#fff5ccf0}.zone-overlay-group.tone-white{--zone-fill:#f4efe614;--zone-stroke:#f4efe675;--zone-inner-stroke:#faf9f62e;--zone-label-stroke:#f4efe647;--zone-rule:#f4efe633;--zone-text:#faf9f6f0}.zone-overlay-rect{fill:var(--zone-fill);stroke:var(--zone-stroke);stroke-width:3px;stroke-dasharray:none;filter:drop-shadow(0 18px 26px #0003)drop-shadow(0 0 10px #ffc34d14)}.zone-overlay-inner-frame{fill:none;stroke:var(--zone-inner-stroke);stroke-width:1.2px;stroke-dasharray:10 8}.zone-overlay-header-rule{stroke:var(--zone-rule);stroke-linecap:round;stroke-width:1.4px}.zone-overlay-label-plate{fill:var(--zone-label-fill);stroke:var(--zone-label-stroke);stroke-width:1.3px;filter:drop-shadow(0 10px 16px #0000003d)drop-shadow(0 0 8px #ffc34d14)}.zone-overlay-group.is-selected .zone-overlay-rect{stroke:#ffc34dc2;stroke-width:3px;stroke-dasharray:12 8;filter:drop-shadow(0 0 10px #ffc34d29)}.zone-overlay-group.is-selected .zone-overlay-label{fill:#ffe3b0}.zone-overlay-group.is-selected .zone-overlay-label-plate{stroke:#ffc34db8;filter:drop-shadow(0 12px 18px #0000003d)drop-shadow(0 0 12px #ffc34d2e)}.zone-overlay-label{fill:var(--zone-text);letter-spacing:.08em;paint-order:stroke;stroke:#050c13c7;stroke-width:2.6px;text-transform:uppercase;font-size:17px;font-weight:900}.connection-overlay-group{pointer-events:visiblePainted}.connection-overlay-path,.connection-overlay-glow,.diagram-edge-path{fill:none;stroke-linecap:round;stroke-linejoin:round;cursor:pointer;transition:opacity .16s,stroke-width .16s,filter .16s}.connection-overlay-path{pointer-events:stroke;filter:drop-shadow(0 0 10px #ffffff1f)drop-shadow(0 0 8px #0000004d)}.connection-overlay-glow{pointer-events:none;opacity:.28;filter:blur(1.2px)}.connection-overlay-group.selected .connection-overlay-glow,.connection-overlay-group.is-hovered .connection-overlay-glow{opacity:.38}.connection-overlay-group.selected .connection-overlay-path,.diagram-edge-path.selected{filter:drop-shadow(0 0 12px #7ccfff52)drop-shadow(0 0 10px #ffc34d2e)drop-shadow(0 0 8px #00000052)}.connection-overlay-group.is-hovered .connection-overlay-path,.diagram-edge-path.is-hovered{filter:drop-shadow(0 0 10px #7ccfff3d)drop-shadow(0 0 8px #ffc34d29)}.connection-overlay-group.is-dimmed .connection-overlay-path,.connection-overlay-group.is-dimmed .connection-overlay-glow,.connection-overlay-group.is-dimmed .connection-overlay-label-wrap,.diagram-edge-path.is-dimmed{opacity:.36;filter:drop-shadow(0 0 4px #0000002e)}.connection-overlay-group.recently-changed .connection-overlay-path,.diagram-edge-path.recently-changed{animation:1.4s ease-out connection-pulse}.connection-overlay-label-wrap{pointer-events:none;overflow:visible}.connection-overlay-label-stack{flex-direction:column;align-items:center;gap:5px;display:flex}.connection-overlay-label{color:#f3e5d6ad;cursor:pointer;pointer-events:auto;min-height:22px;font:inherit;letter-spacing:.08em;text-overflow:ellipsis;white-space:nowrap;opacity:.78;background:#09151f94;border:1px solid #deb78b29;border-radius:999px;padding:4px 7px;font-size:.62rem;font-weight:700;line-height:1;overflow:hidden;box-shadow:0 6px 12px #0000002e,inset 0 1px #ffffff0f}.connection-overlay-detail{color:#ffe3b0;text-align:center;text-overflow:ellipsis;white-space:nowrap;opacity:0;background:linear-gradient(#131d26f0,#08111af0),#08111af0;border:1px solid #deb78b42;border-radius:9px;max-width:100%;padding:6px 9px;font-size:.64rem;font-weight:700;line-height:1.35;transition:opacity .14s,transform .14s;overflow:hidden;transform:translateY(-4px)scale(.98);box-shadow:0 12px 24px #00000047,inset 0 1px #ffffff14}.connection-overlay-conversion-badge{color:#ffe3b0;white-space:nowrap;background:#3f2f14c7;border:1px solid #ffc34d6b;border-radius:999px;padding:3px 7px;font-size:.56rem;font-weight:800;line-height:1;box-shadow:0 6px 12px #0003,inset 0 1px #ffffff14}.connection-overlay-issue-badge{color:#ffcbc4;text-overflow:ellipsis;white-space:nowrap;background:#4b1b19d1;border:1px solid #ff7e6e75;border-radius:999px;max-width:100%;padding:3px 8px;font-size:.56rem;font-weight:800;line-height:1.15;overflow:hidden;box-shadow:0 6px 12px #0003,inset 0 1px #ffffff14}.connection-overlay-label:hover,.connection-overlay-group.is-hovered .connection-overlay-label{color:#ffe3b0;opacity:1;background:#131d26d6;border-color:#ffc34d80}.connection-overlay-group.selected .connection-overlay-label{color:#e8f8ff;opacity:1;background:linear-gradient(#182f3ef5,#0d1d2af0),#322718eb;border-color:#7ccfff9e;box-shadow:0 10px 22px #00000042,0 0 0 1px #7ccfff57,0 0 0 4px #49a8ff1a}.connection-overlay-group.is-hovered .connection-overlay-detail,.connection-overlay-group.selected .connection-overlay-detail{opacity:1;transform:translateY(0)scale(1)}.connection-overlay-group.has-issue .connection-overlay-label{color:#ffcbc4;opacity:.94;border-color:#ff7e6e8f}.connection-overlay-group.has-issue .connection-overlay-path{stroke-dasharray:8 7}.connection-overlay-group.has-issue .connection-overlay-glow{stroke-dasharray:10 8}.flow-drop-hint{z-index:5;pointer-events:none;border:1px solid var(--border);max-width:280px;color:var(--muted);background:#0e1a25d6;border-radius:10px;gap:6px;padding:12px 14px;font-size:.84rem;display:grid;position:absolute;top:18px;right:18px;box-shadow:0 14px 28px #0000003d}.flow-drop-hint strong{color:var(--text);font-size:.82rem}.flow-drop-hint span{line-height:1.45}.flow-drop-status{color:var(--text);border-top:1px solid #deb78b29;margin-top:2px;padding-top:8px}.flow-drop-hint.is-active{color:#ffe3b0;background:#322718e6;border-color:#ffc34d7a}.canvas-board-legend{z-index:6;pointer-events:none;color:#f3e5d6b8;background:linear-gradient(#121f2ad1,#070f18db),#09151fc7;border:1px solid #deb78b42;border-radius:8px;flex-wrap:wrap;flex:none;justify-content:space-between;align-items:center;gap:12px;margin:0 18px 16px;padding:9px 12px;font-size:.74rem;font-weight:700;display:flex;position:relative;box-shadow:0 10px 22px #0003,inset 0 1px #ffffff0f}.legend-group{flex-wrap:wrap;align-items:center;gap:12px;display:flex}.legend-group span{align-items:center;gap:8px;display:inline-flex}.legend-line{border-radius:999px;width:38px;height:3px;box-shadow:0 0 7px}.legend-line.mic{color:#ff66c4;background:#ff66c4}.legend-line.line{color:#9ed35a;background:#9ed35a}.legend-line.hdmi{color:#49a8ff;background:#49a8ff}.legend-line.dvi-d{color:#7ccfff;background:#7ccfff}.legend-line.sdi{color:#ffc34d;background:#ffc34d}.legend-line.unknown{color:#ff7e6e;border-top:2px dashed #ff7e6e;height:0}.legend-status{border:1px solid #deb78b38;border-radius:999px;padding:3px 8px;font-size:.7rem}.legend-status.catalog{color:#bde77c;border-color:#9ed35a57}.legend-status.temporary{color:#ffc34d;border-color:#ffc34d66}.legend-status.unresolved{color:#ffb7ae;border-style:dashed;border-color:#ff7e6e7a}.node-card{--node-head-height:68px;--ports-top-gap:6px;--port-row-height:28px;--port-row-gap:8px;--node-panel-accent:#deb78b61;--node-panel-glow:#ffc34d14;--node-panel-face:#08111a8a;--node-panel-ridge:#fff4e11f;background:linear-gradient(#ffffff0b,#ffffff03),linear-gradient(145deg,#1d2d3af5,#08111af5);border:1px solid #deb78b6b;border-radius:12px;min-width:260px;padding:14px 16px;transition:border-color .16s,background .16s,filter .16s,box-shadow .16s,transform .16s;position:relative;box-shadow:0 20px 34px #00000057,inset 0 1px #ffffff0f}.node-card:not(.unresolved-origin):before{content:"";z-index:0;pointer-events:none;border:1px solid var(--node-panel-accent);background:linear-gradient(90deg, transparent, var(--node-panel-ridge) 16%, transparent 34%), radial-gradient(circle at 18% 12%, var(--node-panel-glow), transparent 30%), linear-gradient(180deg, #ffffff09, transparent 36%), var(--node-panel-face);border-radius:9px;position:absolute;inset:7px;box-shadow:inset 0 1px #ffffff1a,inset 0 -1px #0000005c}.node-card:not(.unresolved-origin):after{content:"";z-index:0;pointer-events:none;background:linear-gradient(90deg, transparent, var(--node-panel-accent), transparent);opacity:.72;height:1px;position:absolute;bottom:10px;left:18px;right:18px}.node-card.error{border-color:#ff7e6e94}.node-card.source-active{border-color:#ffc34da3;box-shadow:0 20px 34px #00000057,0 0 0 1px #ffc34d3d}.node-card.target-active{border-color:#9ed35a85;box-shadow:0 20px 34px #00000057,0 0 0 1px #9ed35a2e}.node-card.connection-active{--node-panel-accent:#7ccfff80;--node-panel-glow:#49a8ff2e;--node-panel-ridge:#c8e6ff2e;filter:saturate(1.08);background:radial-gradient(circle at 22% 18%,#7ccfff3d,#0000 32%),linear-gradient(#49a8ff1a,#49a8ff05),#14222df0;border-color:#7ccfffad;box-shadow:0 20px 34px #00000057,0 0 0 1px #7ccfff7a,0 0 0 6px #49a8ff1a,0 0 28px #49a8ff38}.node-card.connection-context-muted{opacity:.56;filter:saturate(.72)}.node-card.cross-canvas-linked{border-color:#49a8ff6b;box-shadow:0 20px 34px #00000057,0 0 0 1px #49a8ff29}.node-card.brx-origin{--node-panel-accent:#49a8ff6b;--node-panel-glow:#49a8ff1f;--node-panel-ridge:#c8e6ff1f;background:linear-gradient(#49a8ff14,#49a8ff05),#14222de6;border-color:#49a8ff80}.node-card.temporary-origin{--node-panel-accent:#ffc34d75;--node-panel-glow:#ffc34d24;--node-panel-face:#211d1680;--node-panel-ridge:#ffe3b024;background:linear-gradient(#ffc34d1f,#ffc34d08),#211d16e6;border-color:#ffc34d94}.node-card.unresolved-origin{background:linear-gradient(#ff7e6e1f,#ff7e6e08),#231919e6;border-style:dashed;border-color:#ff7e6ea3;min-height:178px;box-shadow:0 20px 34px #00000057,0 0 0 4px #ff7e6e14,inset 0 1px #ffffff0f}.node-card.unresolved-origin .node-unresolved-placeholder{color:#ffe8d5;pointer-events:none;background:radial-gradient(circle at 14% 16%,#fff4d64d,#0000 34%),linear-gradient(135deg,#ffd6b238,#fff8e01f),#ffe5c714;border:1px solid #ffd2a975;border-radius:14px;gap:10px;min-height:118px;margin:6px 0 0;padding:12px;font-size:.74rem;line-height:1.4;display:grid}.node-card.unresolved-origin .node-unresolved-hero{align-items:center;gap:10px;min-width:0;display:flex}.node-card.unresolved-origin .node-unresolved-mark{color:#8b4a32;background:linear-gradient(160deg,#fff8e2f2,#ffc29dc7),#fff1d9;border:1px solid #fff7dca8;border-radius:18px;flex:none;place-items:center;width:54px;height:54px;font-size:2.2rem;font-weight:900;line-height:1;display:inline-grid;box-shadow:0 10px 22px #451c0f33,inset 0 1px #ffffffb8}.node-card.unresolved-origin .node-unresolved-hero-copy{gap:2px;min-width:0;display:grid}.node-card.unresolved-origin .node-unresolved-hero-copy strong{color:#fff2df;letter-spacing:.03em;font-size:1.24rem;line-height:1}.node-card.unresolved-origin .node-unresolved-hero-copy span{color:#ffd8bd;letter-spacing:.02em;font-size:.72rem;font-weight:800}.node-card.unresolved-origin .node-unresolved-request-card{color:#6d3f2e;background:linear-gradient(#fffae8f5,#ffdec1e6),#fff4dd;border:1px solid #ffdcb594;border-radius:12px;gap:5px;padding:10px 11px;display:grid;box-shadow:inset 0 1px #ffffffb8}.node-card.unresolved-origin .node-unresolved-request-card strong{color:#5c3327;font-size:.82rem}.node-card.unresolved-origin .node-unresolved-request-card span:not(.node-unresolved-kicker){color:#7d5240}.node-card.unresolved-origin .node-unresolved-kicker{color:#8b4a32;letter-spacing:.08em;background:#ffcea499;border:1px solid #b4674447;border-radius:999px;justify-self:start;padding:2px 7px;font-size:.62rem;font-weight:900}.node-head{z-index:1;height:var(--node-head-height);background:linear-gradient(180deg, #ffffff14, #ffffff04 62%, transparent), linear-gradient(90deg, var(--node-panel-glow), transparent 54%);border-radius:7px 7px 0 0;align-content:start;gap:4px;margin-bottom:0;display:grid;position:relative;overflow:hidden;box-shadow:inset 0 -1px #00000042}.node-card.unresolved-origin .node-head{box-shadow:none;background:0 0}.node-title-row{z-index:1;justify-content:space-between;align-items:center;gap:10px;line-height:1.12;display:flex;position:relative}.node-title-row strong{color:#fff1dc;letter-spacing:0;text-shadow:0 1px #00000052;text-overflow:ellipsis;white-space:nowrap;min-width:0;font-size:.96rem;overflow:hidden}.node-meta{z-index:1;color:#f3e5d6a8;text-overflow:ellipsis;white-space:nowrap;min-width:0;font-size:.78rem;line-height:1.22;display:block;position:relative;overflow:hidden}.node-chip{letter-spacing:.03em;border-radius:999px;flex-shrink:0;padding:3px 8px;font-size:.68rem;font-weight:700}.node-chip.external-link{color:#c8e6ff;background:#49a8ff24;border:1px solid #49a8ff47}.node-chip.brx-origin{color:#c8e6ff;background:#49a8ff24;border:1px solid #49a8ff4d}.node-chip.temporary-origin{color:#ffe3b0;background:#ffc34d29;border:1px solid #ffc34d57}.node-chip.unresolved-origin{color:#ffcbc4;background:#ff7e6e24;border:1px dashed #ff7e6e70}.node-resolution-hint{color:#ffd6cf;background:#ffe2cc14;border:1px solid #ff7e6e57;border-left:4px solid #ff7e6ead;border-radius:8px;gap:4px;margin:10px 0 0;padding:8px 10px;font-size:.74rem;line-height:1.4;display:grid}.node-resolution-hint strong{color:#ffd4ce;font-size:.76rem}.node-external-summary{z-index:1;flex-wrap:wrap;gap:6px;margin-top:10px;display:flex;position:relative}.node-chip.external-route{cursor:pointer;color:#c8e6ff;background:#49a8ff1a;border:1px solid #49a8ff33}.node-chip.external-route.inbound{color:#ffe3b0;background:#ffc34d1a;border:1px solid #ffc34d33}.ports-grid{gap:var(--port-row-gap);z-index:1;padding:var(--ports-top-gap) 0 0;grid-template-columns:1fr;display:grid;position:relative}.node-signal-strip{z-index:1;flex-wrap:wrap;gap:5px;margin-top:10px;display:flex;position:relative}.node-card:not(.unresolved-origin) .node-signal-strip{background:linear-gradient(#ffffff06,#0000 68%);border-top:1px solid #deb78b29;padding-top:8px}.node-signal-chip{color:#f3e5d6d1;letter-spacing:.04em;background:#ffffff0b;border:1px solid #deb78b2e;border-radius:999px;padding:3px 8px;font-size:.64rem;font-weight:800}.node-signal-chip.signal-mic_level{color:#ffc3e9;border-color:#ff66c457}.node-signal-chip.signal-line_level,.node-signal-chip.signal-speaker_level{color:#d8f2ac;border-color:#9ed35a57}.node-signal-chip.signal-hdmi{color:#c8e6ff;border-color:#49a8ff57}.node-signal-chip.signal-dvi_d{color:#d5f2ff;border-color:#7ccfff61}.node-signal-chip.signal-sdi{color:#ffe3b0;border-color:#ffc34d66}.node-signal-chip.signal-usb_audio{color:#d8d2ff;border-color:#8f7cff5c}.node-signal-chip.more{color:var(--muted);border-style:dashed}.port-row{height:var(--port-row-height);min-height:var(--port-row-height);border-radius:14px;grid-template-columns:1fr;align-items:center;padding:0 16px;transition:background .16s,opacity .16s;display:grid}.port-row.input-only{justify-items:start}.port-row.output-only{justify-items:end}.port-row.bidirectional{justify-items:center}.port-row.is-source-selected{background:#ffc34d17}.port-row.is-candidate-target{background:#9ed35a14}.port-row.is-selected-connection{background:linear-gradient(90deg,#49a8ff2e,#49a8ff12);box-shadow:inset 0 0 0 1px #7ccfff38,0 0 14px #49a8ff14}.port-row.is-hovered-connection,.port-row.is-external-connection{background:#49a8ff14}.port-row.is-muted{opacity:.42}.port-label-button{width:min(178px,100%);min-width:0;color:inherit;cursor:pointer;text-align:inherit;background:linear-gradient(#ffffff0e,#ffffff05),#050d158f;border:1px solid #deb78b33;border-radius:8px;padding:3px 8px;transition:background .16s,box-shadow .16s;position:relative;overflow:hidden}.port-label-button:hover{background:linear-gradient(#ffffff13,#ffffff06),#050d15ad;border-color:#ffc34d5c}.port-label-button:before{content:"";background:linear-gradient(#f3e5d61a,#f3e5d605),#0000003d;border:1px solid #f3e5d657;border-radius:4px;width:8px;height:16px;position:absolute;top:50%;transform:translateY(-50%)}.port-label-button:after{content:none;background:linear-gradient(#f3e5d61a,#f3e5d605),#0000003d;border:1px solid #f3e5d657;border-radius:4px;width:8px;height:16px;position:absolute;top:50%;transform:translateY(-50%)}.port-row.input-only .port-label-button:before{left:-12px}.port-row.output-only .port-label-button:before{right:-12px}.port-row.bidirectional .port-label-button:before{left:-12px}.port-row.bidirectional .port-label-button:after{content:"";right:-12px}.port-label-button.is-pending{background:#ffc34d24;box-shadow:inset 0 0 0 1px #ffc34d6b}.port-label-button.is-source-selected{background:#ffc34d24;box-shadow:inset 0 0 0 1px #ffc34d7a,0 0 0 1px #ffc34d14}.port-label-button.is-candidate-target{background:#9ed35a1f;box-shadow:inset 0 0 0 1px #9ed35a6b}.port-label-button.is-candidate-source{box-shadow:inset 0 0 0 1px #f3e5d61f}.port-label-button.is-selected-connection{color:#e8f8ff;background:radial-gradient(circle at 18%,#7ccfff3d,#0000 32%),linear-gradient(90deg,#49a8ff29,#ffc34d0d),#49a8ff1f;border-color:#7ccfffb8;animation:1.9s ease-in-out infinite selected-port-glow;box-shadow:inset 0 0 0 1px #7ccfff8f,0 0 0 1px #49a8ff2e,0 0 0 4px #49a8ff14,0 0 18px #49a8ff33}.port-label-button.is-hovered-connection{background:linear-gradient(90deg,#49a8ff1a,#ffc34d08),#49a8ff12;border-color:#7ccfff6b;box-shadow:inset 0 0 0 1px #7ccfff52,0 0 0 3px #49a8ff0d}.port-label-button.is-selected-connection.is-hovered-connection{background:radial-gradient(circle at 18%,#7ccfff3d,#0000 32%),linear-gradient(90deg,#49a8ff29,#ffc34d0d),#49a8ff1f;border-color:#7ccfffb8;box-shadow:inset 0 0 0 1px #7ccfff8f,0 0 0 1px #49a8ff2e,0 0 0 4px #49a8ff14,0 0 18px #49a8ff33}.port-label-button.is-external-connection{box-shadow:inset 0 0 0 1px #49a8ff4d}.port-label-button.is-muted{background:0 0}.port-row.output-only .port-label{text-align:right}.port-row.bidirectional .port-label{text-align:center}.port-label{gap:1px;min-width:0;font-size:.72rem;line-height:1;display:grid}.port-label .caption{font-size:.58rem;line-height:1}.port-external-summary{flex-wrap:wrap;gap:4px;margin-top:2px;display:flex}.port-route-chip{letter-spacing:.02em;color:#c8e6ff;background:#49a8ff1f;border:1px solid #49a8ff33;border-radius:999px;padding:2px 6px;font-size:.64rem;font-weight:700}.node-chip.external-route,.port-route-chip{appearance:none;border-width:1px}.port-route-chip.inbound{color:#ffe3b0;background:#ffc34d1a;border-color:#ffc34d2e}.port-label-topline{justify-content:space-between;align-items:center;gap:10px;min-width:0;display:flex}.port-name,.port-connector-type{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.port-name{flex:auto}.port-state-badge{letter-spacing:.03em;border-radius:999px;flex-shrink:0;padding:2px 8px;font-size:.68rem;font-weight:700}.port-state-badge.source{color:#ffe3b0;background:#ffc34d29}.port-state-badge.target{color:#d8f2ac;background:#9ed35a24}.port-state-badge.selected-connection{color:#dff5ff;background:linear-gradient(90deg,#49a8ff38,#ffc34d1f);box-shadow:inset 0 0 0 1px #7ccfff57}.port-state-badge.hovered-connection{color:#c8e6ff;background:#49a8ff1f}.port-state-badge.external{color:#c8e6ff;background:#49a8ff24}.port-handle{background:radial-gradient(circle at 38% 34%,#ffffffbf,#0000 22%),#536a77;border:2px solid #fffdf7f5;border-radius:999px;width:14px;height:14px;transition:transform .16s,background .16s,border-color .16s,opacity .16s;box-shadow:0 0 0 3px #050c13cc}.port-handle.input{justify-self:start}.port-handle.output{justify-self:end}.port-handle.is-source-selected{background:var(--accent);border-color:#fffdf7;transform:scale(1.16)}.port-handle.is-candidate-target{background:var(--success);border-color:#f4fff9;transform:scale(1.14)}.port-handle.is-candidate-source{border-color:#fffdf7f5}.port-handle.is-selected-connection{background:#49a8ff;border-color:#f4fdff;transform:scale(1.22);box-shadow:0 0 0 4px #49a8ff33,0 0 0 8px #49a8ff14}.port-handle.is-hovered-connection{background:#7ccfff;border-color:#e8feff;transform:scale(1.12);box-shadow:0 0 0 3px #49a8ff29,0 0 0 7px #49a8ff0f}.port-handle.is-external-connection{background:#49a8ff;border-color:#e8feff;box-shadow:0 0 0 3px #49a8ff29}.port-handle.is-muted{opacity:.32}.edge-label-chip{pointer-events:all;white-space:nowrap;color:#f3e5d6;background:#0e1a25eb;border:1px solid #deb78b42;border-radius:999px;padding:4px 8px;font-size:.74rem;line-height:1;position:absolute;box-shadow:0 10px 20px #0000003d}.edge-label-chip.selected{color:#ffe3b0;border-color:#ffc34d8f}.edge-label-chip.is-hovered{color:#ffe3b0;border-color:#ffc34d80}.edge-label-chip.is-dimmed{opacity:.4}.edge-label-chip.recently-changed{color:#ffe3b0;border-color:#ffc34d8f}@keyframes connection-pulse{0%{stroke-width:4px;filter:drop-shadow(0 0 8px #00000057)}35%{stroke-width:7px;filter:drop-shadow(0 0 16px #ffc34d57)}to{stroke-width:4px;filter:drop-shadow(0 0 8px #00000057)}}@keyframes selected-port-glow{0%,to{box-shadow:inset 0 0 0 1px #7ccfff8f,0 0 0 1px #49a8ff2e,0 0 0 4px #49a8ff14,0 0 18px #49a8ff2e}50%{box-shadow:inset 0 0 0 1px #7ccfffa8,0 0 0 1px #49a8ff3d,0 0 0 5px #49a8ff1c,0 0 22px #49a8ff3d}}@media (prefers-reduced-motion:reduce){.port-label-button.is-selected-connection{animation:none}}.property-section{gap:12px;display:grid}.property-panel:focus-visible,.property-section-focus-anchor:focus-visible{outline-offset:4px;outline:2px solid #ffc34db8}.property-section-focus-anchor{border-radius:18px}.property-section+.property-section{margin-top:22px}.connection-issue-card{background:linear-gradient(90deg,#ff7e6e1a,#0000 72%),#ff7e6e0e;border:1px solid #ff7e6e47;border-radius:8px;gap:6px;padding:12px;display:grid}.connection-issue-card strong{color:#ffcbc4;font-size:.92rem;line-height:1.45}.connection-issue-card p{margin:0}.property-grid{grid-template-columns:110px 1fr;gap:8px 12px;margin:0;display:grid}.property-grid dt,.property-grid dd{margin:0;font-size:.9rem}.port-list,.connection-list,.error-list{gap:8px;margin:0;padding-left:18px;display:grid}.connection-reference-list{gap:8px;margin:0;padding:0;list-style:none;display:grid}.connection-reference-group-list{gap:14px;max-height:360px;padding-right:4px;display:grid;overflow:auto}.connection-reference-group{gap:8px;display:grid}.connection-reference-group-header{justify-content:space-between;align-items:baseline;gap:12px;display:flex}.connection-reference-group-header h4,.connection-reference-group-header span,.connection-reference-group-description{margin:0}.connection-reference-group-header h4{color:var(--text);font-size:.82rem}.connection-reference-group-header span,.connection-reference-group-description{color:var(--muted);font-size:.74rem}.connection-reference-summary{flex-wrap:wrap;gap:6px;display:flex}.connection-reference-count-chip{color:var(--muted);letter-spacing:.03em;background:#ffffff0e;border-radius:999px;align-items:center;padding:3px 9px;font-size:.7rem;font-weight:700;display:inline-flex}.connection-reference-count-chip.is-issue{color:#ffcbc4;background:#ff7e6e1f}.connection-reference-button{width:100%;color:inherit;text-align:left;cursor:pointer;background:#ffffff09;border:1px solid #deb78b24;border-radius:8px;gap:4px;padding:10px 12px;transition:border-color .16s,background .16s,transform .16s;display:grid;position:relative;overflow:hidden}.connection-reference-button:hover{background:#49a8ff14;border-color:#49a8ff57;transform:translateY(-1px)}.connection-reference-button.is-selected{background:#49a8ff1f;border-color:#49a8ff70;box-shadow:inset 0 0 0 1px #49a8ff2e}.connection-reference-button.is-hover-preview{background:#49a8ff17;border-color:#49a8ff61}.connection-reference-button.is-selected-hovered{border-color:#49a8ff9e}.connection-reference-button.has-issue{background:#ff7e6e14;border-color:#ff7e6e3d}.connection-reference-button.has-issue:before{content:"";background:#ff7e6ecc;width:3px;position:absolute;inset:0 auto 0 0}.connection-reference-button.has-issue.is-selected{border-color:#ff7e6e66;box-shadow:inset 0 0 0 1px #ff7e6e29}.connection-reference-button strong{color:var(--text);font-size:.84rem;line-height:1.45}.connection-reference-main,.connection-reference-subline{gap:4px;display:grid}.connection-reference-subline{color:var(--muted);font-size:.76rem}.connection-reference-label{color:var(--muted);letter-spacing:.06em;text-transform:uppercase;font-size:.66rem;font-weight:700}.connection-reference-meta{color:var(--muted);flex-wrap:wrap;align-items:center;gap:6px;font-size:.76rem;display:flex}.connection-reference-status{color:#d8f2ac;letter-spacing:.03em;background:#9ed35a1f;border-radius:999px;align-items:center;padding:2px 7px;font-size:.68rem;font-weight:700;display:inline-flex}.connection-reference-signal{color:#f3e5d6;font-family:SFMono-Regular,Consolas,monospace;font-size:.68rem}.connection-reference-status.is-issue{color:#ffcbc4;background:#ff7e6e1f}.connection-reference-issue-message{color:#ffcbc4;font-size:.74rem;line-height:1.45}.empty-state{align-content:start;gap:10px;display:grid}.dialog-overlay{z-index:30;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#02050899;place-items:center;padding:24px;display:grid;position:fixed;inset:0}.dialog-card{border:1px solid var(--border);background:var(--surface-strong);width:min(460px,100%);box-shadow:var(--shadow);border-radius:14px;padding:22px}.error-dialog-card{width:min(680px,100%)}.tutorial-guide-dialog{width:min(720px,100%)}.catalog-dialog-card{width:min(760px,100%)}.dialog-body{gap:16px;margin-top:14px;display:grid}.dialog-summary{background:#ffffff0a;border:1px solid #deb78b24;border-radius:10px;gap:12px;padding:14px;display:grid}.dialog-summary p{color:var(--muted);margin:4px 0 0;font-size:.9rem}.tutorial-guide-body{gap:14px}.tutorial-guide-lead{color:var(--muted);margin:0;line-height:1.55}.tutorial-step-list{grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;display:grid}.tutorial-step-card{background:#ffffff0a;border:1px solid #49a8ff38;border-radius:8px;grid-template-columns:auto minmax(0,1fr);align-items:start;gap:10px;min-width:0;padding:12px;display:grid}.tutorial-step-card strong{color:var(--text);font-size:.94rem}.tutorial-step-card p,.tutorial-safety-note p{color:var(--muted);margin:5px 0 0;font-size:.84rem;line-height:1.48}.tutorial-step-number{color:#ffe3b0;background:#ffc34d14;border:1px solid #ffc34d5c;border-radius:999px;place-items:center;width:26px;height:26px;font-size:.74rem;font-weight:700;display:inline-grid}.tutorial-safety-note{background:linear-gradient(90deg,#ffc34d14,#ff7e6e0f),#060e1638;border:1px solid #ffc34d42;border-radius:8px;padding:12px 14px}.tutorial-safety-note strong{color:#ffe3b0}.dialog-actions{justify-content:flex-end;gap:10px;margin-top:18px;display:flex}.catalog-url-field{gap:8px;display:grid}.catalog-dialog-actions{flex-wrap:wrap;gap:10px;display:flex}.catalog-error{color:#9e3232;background:#d9555514;border:1px solid #d9555552;border-radius:10px;padding:12px 14px;font-size:.9rem}.catalog-diff-panel{background:#2c51650a;border:1px solid #2c3f4f14;border-radius:10px;gap:14px;max-height:min(48vh,420px);padding:14px;display:grid;overflow:auto}.catalog-diff-header{justify-content:space-between;align-items:start;gap:12px;display:flex}.catalog-diff-header p{overflow-wrap:anywhere;max-width:520px;color:var(--muted);margin:4px 0 0;font-size:.84rem}.catalog-diff-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;display:grid}.catalog-diff-grid span{border:1px solid var(--border);text-align:center;background:#fffdf7b8;border-radius:8px;padding:10px;font-size:.86rem}.catalog-diff-list{gap:8px;display:grid}.catalog-diff-list ul{color:var(--muted);gap:4px;margin:0;padding-left:18px;font-size:.86rem;display:grid}.error-dialog-list{max-height:min(52vh,420px);padding-left:0;list-style:none;overflow:auto}.error-list-button{text-align:left;width:100%;color:var(--text);cursor:pointer;background:#d9555512;border:1px solid #d9555538;border-radius:10px;gap:6px;padding:14px 16px;transition:transform .16s,border-color .16s,background .16s;display:grid}.error-list-button span,.error-list-button small{color:var(--muted)}.error-list-button small{font-size:.72rem;line-height:1.4}.error-list-button:hover{background:#d955551a;border-color:#d9555561;transform:translateY(-1px)}.file-input{display:none}.status-panel.is-active{background:linear-gradient(90deg, #c8742814, transparent 48%), var(--surface);border-color:#c8742847}@media (width<=1180px){.quick-start-dock,.workspace-grid,.workspace-grid.property-hidden{grid-template-columns:1fr}.workspace-grid .canvas-shell{order:-1}}@media (width<=980px){.app-shell{padding:16px}.header-bar{grid-template-columns:1fr}.header-actions{justify-content:flex-start}.header-action-group,.header-mode-group,.project-name-input{width:100%;max-width:none}.quick-start-dock{align-items:stretch}.quick-start-action-cluster{grid-template-columns:repeat(2,minmax(0,1fr))}.tutorial-step-list{grid-template-columns:1fr}.quick-start-copy{min-width:0}.quick-start-actions,.catalog-support-actions{justify-content:flex-start}.catalog-support-card{flex-direction:column;align-items:stretch}.canvas-tab,.canvas-tab-add{width:100%;min-width:0}.canvas-tab-controls{grid-template-columns:1fr;align-items:stretch}.canvas-name-field{width:100%}.zone-editor-grid{grid-template-columns:1fr}.catalog-support-actions{flex-direction:row}.zone-editor-header-actions{justify-content:flex-start;width:100%}.canvas-shell{min-height:500px}.canvas-board-legend{gap:10px;max-width:calc(100% - 36px);font-size:.72rem}.canvas-surface .react-flow__minimap{display:none}}@media (width<=520px){.app-shell{padding:12px}.app-frame{width:100%;max-width:100%;overflow:hidden}.panel{max-width:100%;overflow:hidden}.header-bar{padding:12px}.header-action-group,.header-mode-group{grid-template-columns:repeat(2,minmax(0,1fr));justify-content:stretch;padding:8px;display:grid}.header-action-group .ghost-button,.header-mode-group .ghost-button,.header-mode-group .primary-button{grid-column:1/-1}.header-action-group .secondary-button{min-width:0}.quick-start-action-cluster{grid-template-columns:1fr}}@media (width<=1440px){.status-panel{display:none}.flow-drop-hint{max-width:320px}}@media print{@page{size:A4 landscape;margin:8mm}*{-webkit-print-color-adjust:exact;print-color-adjust:exact}html,body,#root{width:100%;min-height:0;background:#fff!important}body{color:#101820}.app-shell{min-height:0;padding:0;overflow:visible;background:#fff!important}.app-frame{min-height:0;display:block}.header-bar,.quick-start-dock,.canvas-tab-strip,.sidebar,.property-panel,.status-panel,.dialog-overlay,.flow-drop-hint,.zone-interaction-overlay,.canvas-surface .react-flow__controls,.canvas-surface .react-flow__minimap,.canvas-surface .react-flow__attribution{display:none!important}.print-title-card{color:#101820;border-bottom:.3mm solid #d8c9b7;justify-content:space-between;align-items:end;gap:12mm;margin:0 0 5mm;padding:0 0 4mm;display:flex}.print-title-card h1{color:#101820;overflow-wrap:anywhere;margin:1mm 0 0;font-size:16pt;line-height:1.15}.print-title-card .eyebrow{color:#6b5f50;letter-spacing:.12em;font-size:7pt}.print-title-card dl{gap:7mm;margin:0;display:flex}.print-title-card div{min-width:0}.print-title-card dt{color:#6b5f50;font-size:7pt;font-weight:700}.print-title-card dd{color:#101820;margin:1mm 0 0;font-size:9pt;font-weight:700}.workspace-grid,.workspace-grid.property-hidden,.workspace-grid.read-only-workspace,.workspace-grid.property-hidden.read-only-workspace{min-height:0;display:block}.panel,.canvas-shell{box-shadow:none;-webkit-backdrop-filter:none;backdrop-filter:none}.canvas-shell{break-inside:avoid;background:linear-gradient(90deg,#b19f8838 1px,#0000 1px) 0 0/6mm 6mm,linear-gradient(#b19f882e 1px,#0000 1px) 0 0/6mm 6mm,linear-gradient(#14212c,#08121c);border:.3mm solid #d8c9b7;border-radius:3mm;height:176mm;min-height:0;display:flex;overflow:hidden}.canvas-shell:before{display:none}.canvas-surface{flex:auto;height:auto;min-height:0;overflow:hidden}.canvas-surface .react-flow,.zone-overlay,.connection-overlay{overflow:visible}.canvas-board-legend{box-shadow:none;background:#08121ce6;border:.3mm solid #d8c9b77a;flex:none;margin:0 5mm 5mm;padding:2.5mm 3mm;font-size:7pt}.legend-group{gap:4mm}.legend-line{width:11mm}.connection-overlay-detail{display:none}.connection-overlay-label,.connection-overlay-conversion-badge{box-shadow:none}.node-card,.connection-overlay-path,.connection-overlay-glow,.zone-overlay-rect,.zone-overlay-label-plate{filter:none}}
