@font-face{font-family:Lato;src:url(/tools/data-mapping/assets/Lato-Reg-DdeWwgMf.woff2)format("woff2");font-style:normal;font-weight:400;font-display:swap}@font-face{font-family:Lato;src:url(/tools/data-mapping/assets/Lato-Bol-Owk1O9jN.woff2)format("woff2");font-style:normal;font-weight:700;font-display:swap}:root{--rise-black:#040606;--rise-text:#000;--rise-dark:#222;--rise-teal:#009ba5;--rise-teal-dark:#007b83;--rise-pink:#e83c63;--rise-green-pale:#ebf5f0;--rise-peach-pale:#fde8df;--rise-cream:#fff7dd;--rise-peach-medium:#f3b9a2;--rise-aqua-pale:#bfe4e3;--rise-navy:#0e4d64;--rise-navy-deep:#082f3e;--rise-orange:#fbae40;--rise-muted:#4f5d61;--rise-border:#c9d9d9;--steel:#e1e6e8;--font:"Lato", Arial, sans-serif;--text:var(--rise-dark);--text-muted:var(--rise-muted);--surface:#fff;--background:#e8eff2;--border:var(--rise-border);--field-border:#7a878b;--selection:var(--rise-teal);--selection-glow:#009ba573;--selected:var(--rise-teal-dark);--selected-glow:#007b8366;--map-focus:var(--rise-navy);--primary:var(--rise-navy);--primary-text:#fff;--link:#00737a;--asset-fill:linear-gradient(180deg, #62737a, #3f4b4f);--asset-border:#333d40;--asset-text:#fff;--asset-icon:var(--rise-orange);--item-fill:linear-gradient(180deg, #fffbeb, #fdf0c8);--item-bg:var(--rise-cream);--item-border:var(--rise-peach-medium);--item-accent:var(--rise-navy);--edge-product:var(--rise-navy);--edge-join:var(--rise-pink);--pink-text:#c8234f;--edge-link:var(--rise-muted);--unsaved:var(--rise-orange);--danger:var(--pink-text);--problem:#c62828;--problem-bg:#fdecea;--gap:#a35400;--gap-bg:#fff4e0;--answer-bg:var(--rise-aqua-pale);--unknown-bg:var(--steel);--faded-bg:#f1f4f5;--disabled-text:#8a979b;--step-1:var(--rise-teal);--step-1-bg:var(--rise-green-pale);--step-2:var(--rise-pink);--step-2-bg:var(--rise-peach-pale);--step-3:var(--rise-orange);--step-3-bg:var(--rise-cream);--step-done:var(--rise-navy);--step-done-bg:var(--rise-aqua-pale);--tooltip-bg:var(--rise-navy-deep);--tooltip-text:#fff;--shadow:0 4px 14px #0e4d6414;font-family:var(--font);color:var(--text);background:var(--background);font-size:14px}*{box-sizing:border-box}body{margin:0}button{font:inherit;cursor:pointer}input,select,textarea{font:inherit;color:var(--text)}input:focus-visible,select:focus-visible,textarea:focus-visible,button:focus-visible{outline:2px solid var(--selection);outline-offset:1px}a{color:var(--link);text-underline-offset:2px;text-decoration:underline}a:hover{text-decoration-thickness:2px}a:focus-visible{outline:2px solid var(--selection);outline-offset:2px;border-radius:2px}.error{color:var(--danger)}.spacer{flex:1}button.primary{border:1px solid var(--primary);background:var(--primary);color:var(--primary-text);border-radius:6px;padding:6px 14px}button.primary:disabled{opacity:.5;cursor:default}button.link{min-height:24px;color:var(--link);background:0 0;border:none;padding:0;font-size:12px}button.danger{border:1px solid var(--danger);background:var(--danger);color:#fff;border-radius:6px;padding:6px 14px}button.danger:disabled{opacity:.5}button.delete{border:1px solid var(--border);background:var(--surface);color:var(--danger);border-radius:4px;padding:2px 8px;font-size:12px}.page{background:var(--surface);max-width:640px;box-shadow:var(--shadow);border-radius:8px;margin:48px auto;padding:24px}.page>header,.map-list>header.top{align-items:center;gap:12px;display:flex}.page h1{color:var(--primary)}.menu{position:relative}.menu-list{z-index:20;background:var(--surface);border:1px solid var(--border);min-width:180px;max-height:60vh;box-shadow:var(--shadow);border-radius:6px;flex-direction:column;padding:4px;display:flex;position:absolute;top:calc(100% + 4px);left:0;overflow-y:auto}.menu.end .menu-list{left:auto;right:0}.menu-list>button,.menu-list>a{color:var(--text);text-align:left;padding:6px 10px;text-decoration:none;background:0 0!important;border:none!important}.menu-list>button:hover:not([aria-disabled=true]),.menu-list>button:focus-visible,.menu-list>a:hover,.menu-list>a:focus-visible{background:var(--background)!important}.menu-list [aria-disabled=true]{color:var(--disabled-text);cursor:default}.menu-header{border-bottom:1px solid var(--border);color:var(--text-muted);white-space:normal;margin-bottom:4px;padding:6px 10px 8px;font-size:12px}.menu-list .danger-zone{border-top:1px solid var(--border);margin-top:4px;padding-top:4px}.menu-list .danger-zone button{width:100%;color:var(--danger);text-align:left;background:0 0;border:none;padding:6px 10px}.menu-list .danger-zone button[aria-disabled=true]{color:var(--text-muted);cursor:default}.account{align-items:center;gap:10px;font-size:12px;display:inline-flex}.account-name{color:var(--text);background:0 0;border:none;padding:2px 4px;font-weight:700}.account-link{color:var(--link);text-decoration:none}.account-link:hover{text-decoration:underline}.navbar{background:var(--surface);border-bottom:1px solid var(--border);align-items:center;gap:16px;padding:10px 24px;display:flex}.navbar-name{color:var(--primary);font-size:17px;font-weight:700;text-decoration:none}.navbar-action{color:var(--link);font-weight:700;text-decoration:none}.navbar-action:hover{text-decoration:underline}.login-page{background:var(--surface);max-width:380px;box-shadow:var(--shadow);border-radius:8px;margin:64px auto;padding:24px}.login-page h1{color:var(--primary);margin:0 0 16px;font-size:22px}.login-form,.dialog-form,.create-user{flex-direction:column;gap:10px;display:flex}.login-form label,.dialog-form label,.create-user label{color:var(--text-muted);flex-direction:column;gap:4px;font-size:12px;display:flex}.login-form input,.dialog-form input,.create-user input,.create-user select{border:1px solid var(--field-border);border-radius:6px;padding:8px 10px}.modal{width:min(440px,100vw - 32px);color:var(--text);border:none;border-radius:8px;padding:20px;box-shadow:0 12px 28px #0e4d6440}.modal::backdrop{background:#082f3e73}.modal-head{justify-content:space-between;align-items:center;display:flex}.modal-head h2{color:var(--primary);margin:0 0 12px;font-size:17px}.modal-close{color:var(--text-muted);background:0 0;border:none}.sr-only{clip-path:inset(50%);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.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:#555;--xy-background-pattern-lines-color-default:#333;--xy-background-pattern-cross-color-default:#333;--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;touch-action:none}.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))}.editor{flex-direction:column;height:100dvh;display:flex;overflow-x:hidden}.toolbar{background:var(--surface);border-bottom:1px solid var(--border);white-space:nowrap;align-items:center;gap:6px 12px;padding:8px 12px;display:flex}.toolbar>*{flex-shrink:0}.toolbar.hide-tips .info-tip,.toolbar.hide-saved .status:not(.dirty){display:none}.toolbar.wrap{flex-wrap:wrap}.toolbar .map-name{field-sizing:content;text-overflow:ellipsis;border:1px solid #0000;border-radius:4px;min-width:4em;max-width:20em;padding:4px 8px;font-weight:700}.toolbar .map-name:hover,.toolbar .map-name:focus{border-color:var(--field-border)}.toolbar .spacer{flex:1}.toolbar .status{color:var(--text-muted);display:inline-block}.toolbar .status.dirty{color:var(--text)}.toolbar .status.dirty:first-letter{color:var(--unsaved)}.toolbar button{border:1px solid var(--border);background:var(--surface);border-radius:6px;padding:4px 12px}.toolbar button.primary{background:var(--primary);border-color:var(--primary);color:var(--primary-text)}.button-icon{vertical-align:-.15em;width:1em;height:1em}.toolbar button:disabled{cursor:default}.toolbar button:disabled:not(.primary){color:var(--disabled-text)}.workspace{--panel-width:300px;flex:1;min-height:0;display:flex;position:relative}.canvas{flex:1}.side-panel{width:var(--panel-width);background:var(--surface);border-left:1px solid var(--border);padding:16px;overflow-y:auto}.side-panel h2{color:var(--primary);margin-top:0;font-size:16px}.side-panel label{color:var(--text-muted);flex-direction:column;gap:4px;margin-bottom:12px;font-size:12px;display:flex}.side-panel input,.side-panel select,.side-panel textarea{border:1px solid var(--field-border);color:var(--text);border-radius:4px;padding:6px 8px}.side-panel .hint{font-size:12px}.side-panel .level-field{border:none;min-width:0;margin:0 0 12px;padding:0}.side-panel .level-field legend{color:var(--text-muted);margin-bottom:4px;padding:0;font-size:12px}.level-buttons{flex-wrap:wrap;gap:4px 8px;display:flex}.level-scale{display:flex}.side-panel .level-buttons label{border:1px solid var(--border);background:var(--surface);color:var(--text);cursor:pointer;margin:0 0 0 -1px;padding:3px 9px;font-size:13px;display:block;position:relative}.side-panel .level-scale label:first-child{border-radius:4px 0 0 4px;margin-left:0}.side-panel .level-scale label:last-child{border-radius:0 4px 4px 0}.side-panel .level-buttons label.unknown{color:var(--text-muted);border-style:dashed;border-radius:4px;margin-left:0}.side-panel .level-buttons label:has(input:checked){z-index:1;border-color:var(--selected);box-shadow:inset 0 0 0 1px var(--selected);background:var(--answer-bg);font-weight:700}.side-panel .level-buttons label.unknown:has(input:checked){border-color:var(--text-muted);box-shadow:inset 0 0 0 1px var(--text-muted);background:var(--unknown-bg)}.side-panel .level-buttons label:has(input:focus-visible){z-index:2;outline:2px solid var(--selection);outline-offset:1px}.side-panel .level-buttons label:has(input:disabled){cursor:default}.side-panel .level-buttons input{opacity:0;pointer-events:none;position:absolute}.side-panel .draw-line{border-top:1px solid var(--border);align-items:flex-end;gap:6px;margin-bottom:12px;padding-top:12px;display:flex}.side-panel .draw-line label{flex:1;min-width:0;margin-bottom:0}.side-panel .panel-title{align-items:baseline;gap:6px;display:flex}.side-panel .panel-subject{color:var(--text);margin:-8px 0 12px;font-size:13px;font-weight:700}.how-to{color:var(--text-muted);margin-bottom:12px;font-size:12px}.how-to summary{color:var(--link);cursor:pointer;font-weight:700}.how-to h3{color:var(--text);margin:12px 0 6px;font-size:12px}.how-to-line{grid-template-columns:64px 1fr;align-items:center;gap:10px;margin-bottom:8px;display:grid}.how-to-line strong{color:var(--text)}.how-to-click{margin:0}.how-to-picture{justify-content:center;align-items:center;display:flex}.how-to-picture.vertical{flex-direction:column}.mini-box{border:1px solid;width:22px;height:12px}.mini-box.asset{border-color:var(--asset-border);background:var(--asset-fill);border-radius:3px}.mini-box.item{border-color:var(--item-border);background:var(--item-fill);border-radius:6px}.how-to-keys{grid-template-columns:auto 1fr;align-items:baseline;gap:6px 10px;margin:0;display:grid}.how-to-keys dt{color:var(--text);white-space:nowrap}.how-to-keys dd{margin:0}.how-to kbd{border:1px solid var(--border);background:var(--surface);min-width:1.6em;font:11px/1.4 var(--font);text-align:center;border-bottom-width:2px;border-radius:4px;padding:1px 5px;display:inline-block}.drag-hint-region{pointer-events:none}.drag-hint{background:var(--tooltip-bg);max-width:420px;color:var(--tooltip-text);box-shadow:var(--shadow);text-align:center;border-radius:6px;padding:8px 12px;font-size:13px;display:block}.panel-tab{z-index:6;border:1px solid var(--border);background:var(--surface);width:24px;height:48px;color:var(--text-muted);cursor:pointer;border-right:none;border-radius:6px 0 0 6px;padding:0;position:absolute;top:50%;right:0;transform:translateY(-50%)}.workspace.panel-open .panel-tab{right:var(--panel-width)}.panel-tab.has-selection:after{content:"";background:var(--selection);border-radius:50%;width:6px;height:6px;position:absolute;top:6px;left:6px}@media (width<=800px){.workspace{--panel-width:min(300px, 85vw)}.side-panel{z-index:5;position:absolute;top:0;bottom:0;right:0;box-shadow:-4px 0 12px #00000026}}.edge-label{pointer-events:all;cursor:pointer;background:var(--surface);color:var(--text);white-space:nowrap;border-radius:3px;padding:1px 4px;font-size:12px;position:absolute}.edge-label.selected{outline:2px solid var(--selected);box-shadow:0 0 10px 2px var(--selected-glow)}.react-flow{--xy-background-color:var(--background);--xy-background-pattern-color:var(--border);--xy-edge-stroke-selected:var(--selected);--xy-handle-background-color:var(--asset-border);--xy-handle-border-color:var(--surface)}.react-flow__attribution a{color:var(--text-muted)}.node{--node-edge:var(--asset-border);--node-ring:inset 0 0 0 1px var(--node-edge);background:var(--asset-fill);min-width:140px;box-shadow:var(--node-ring), var(--shadow);text-align:center;border-radius:6px;padding:13px 23px;font-size:16px;position:relative}.asset-node{color:var(--asset-text)}.node-icon{width:13px;height:13px;position:absolute;top:6px;left:7px}.asset-node .node-icon{color:var(--asset-icon)}.item-node .node-icon{color:var(--item-accent)}.node.selected{--node-edge:var(--selected);box-shadow:var(--node-ring), 0 0 0 3px var(--selected), 0 0 16px 4px var(--selected-glow)}.react-flow__node:focus-visible .node:after{content:"";box-shadow:0 0 0 2px var(--map-focus);pointer-events:none;border-radius:12px;position:absolute;inset:-6px}.react-flow__node:focus-visible .item-node:after{border-radius:24px}.item-node{--node-edge:var(--item-border);background:var(--item-fill);border-radius:18px}.item-system{color:var(--item-accent);margin-top:2px;font-size:13px}.node-name{font-weight:700}.react-flow__node .react-flow__handle{width:8px;height:8px}.react-flow__handle.to-item{background:var(--item-bg);border-color:var(--asset-border)}.react-flow__node:hover .react-flow__handle.connectable{border-width:1.5px;width:12px;height:12px}.react-flow__handle.connectable:before{content:"";border-radius:50%;width:24px;height:24px;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}@media (prefers-reduced-motion:no-preference){.react-flow__node .react-flow__handle{transition:width .12s,height .12s}}.edge-product{--edge-color:var(--edge-product)}.edge-join{--edge-color:var(--edge-join)}.edge-link{--edge-color:var(--edge-link)}.edge-product .react-flow__edge-path{stroke:var(--edge-product);stroke-width:1.5px}.edge-join .react-flow__edge-path{stroke:var(--edge-join);stroke-width:1.5px;stroke-dasharray:6 4}.edge-link .react-flow__edge-path{stroke:var(--edge-link)}.react-flow__edge.selected .react-flow__edge-path{stroke:var(--selected);filter:drop-shadow(0 0 4px var(--selected))}.react-flow__edge:focus-visible{outline:2px solid var(--map-focus);outline-offset:4px}.react-flow__edge.selectable:focus:not(.selected) .react-flow__edge-path,.react-flow__edge.selectable:focus-visible:not(.selected) .react-flow__edge-path{stroke:var(--edge-color)}.react-flow__edge.edge-product.selected .react-flow__edge-path,.react-flow__edge.edge-join.selected .react-flow__edge-path{stroke-width:3px}.node-name-input{text-align:center;border:1px solid var(--selection);border-radius:4px;width:100%;padding:2px 4px;font-weight:700}.language-picker{border:1px solid var(--field-border);background:var(--surface);border-radius:6px;padding:3px 6px}.info-tip{color:var(--text-muted);cursor:help;font-size:13px;display:inline-block}.info-tip-bubble{z-index:10000;background:var(--tooltip-bg);color:var(--tooltip-text);white-space:pre-line;border-radius:6px;padding:8px 10px;font-size:12px;font-weight:400;line-height:1.4;position:fixed}.field-hint{color:var(--text-muted);font-size:11px}.field-hint.error{color:var(--danger)}.hint{color:var(--text-muted);font-size:12px}.panel-tabs{border-bottom:1px solid var(--border);margin:-16px -16px 14px;display:flex}.panel-tabs button{color:var(--text-muted);background:0 0;border:none;border-bottom:3px solid #0000;flex:1;padding:9px 0;font-weight:700}.panel-tabs button[aria-selected=true]{border-bottom-color:var(--selection);color:var(--text)}.key-top{flex-wrap:wrap;align-items:center;gap:4px 6px;display:flex}.key-top .key-name{flex:1;min-width:0}.key-top .field-hint{flex-basis:100%}.trace-pick{border:2px solid var(--edge-join);background:var(--surface);border-radius:50%;flex:none;width:20px;height:20px;padding:0}.trace-pick[aria-pressed=true]{background:radial-gradient(var(--edge-join) 45%, var(--surface) 50%)}.trace-pick:disabled{border-color:var(--border);cursor:default}.key-row{border-bottom:1px solid var(--border);flex-direction:column;gap:4px;padding:8px 0;display:flex}.key-row input{border:1px solid var(--field-border);border-radius:4px;padding:4px 6px}.key-row .key-name{font-weight:700}.key-usages{flex-wrap:wrap;align-items:baseline;gap:4px 8px;display:flex}button.link{color:var(--link);background:0 0;border:none;padding:0;font-size:12px}button.link:hover{text-decoration:underline}.key-delete{border:1px solid var(--border);background:var(--surface);color:var(--danger);border-radius:4px;align-self:flex-start;padding:2px 8px;font-size:12px}.key-delete:disabled{opacity:.5;cursor:not-allowed}.react-flow__minimap.overview{--xy-minimap-background-color:var(--surface);--xy-minimap-mask-background-color:#e8eff2bf;border:1px solid var(--border);box-shadow:var(--shadow);border-radius:6px;overflow:hidden}.overview .react-flow__minimap-node.asset{fill:var(--asset-border)}.overview .react-flow__minimap-node.item{fill:var(--item-bg);stroke:var(--item-border);stroke-width:8px}.legend{background:var(--surface);border:1px solid var(--border);box-shadow:var(--shadow);color:var(--text-muted);border-radius:6px;padding:8px 10px;font-size:13px}.legend-head{color:var(--text);justify-content:space-between;align-items:center;margin-bottom:4px;display:flex}.legend-hide,.legend-show{color:var(--text-muted);background:0 0;border:none}.legend-show{background:var(--surface);border:1px solid var(--border);border-radius:6px;padding:4px 8px;font-size:13px}.legend-row{align-items:center;gap:6px;display:flex}.legend-more{color:var(--link);font:inherit;background:0 0;border:none;margin-top:6px;padding:0;font-weight:700;display:block}.legend-table{grid-template-columns:repeat(5,auto);align-items:center;gap:3px 8px;margin-top:6px;display:grid}.legend-table svg{margin:0 auto;display:block}.legend-col{text-align:center}.legend-rowhead{color:var(--text)}.legend-table .unknown{border-left:1px dashed var(--border);padding-left:8px}.legend-sample path{fill:none}.legend-product{stroke:var(--edge-product);stroke-width:1.5px}.legend-sample .legend-arrow{fill:var(--edge-product)}.legend-join{stroke:var(--edge-join);stroke-width:1.5px;stroke-dasharray:6 4}.legend-link{stroke:var(--edge-link)}.panel-fieldset{display:contents}.read-only-badge{background:var(--background);color:var(--text-muted);border-radius:10px;padding:2px 8px;font-size:12px}.demo-badge{background:var(--item-bg);border:1px solid var(--item-border);color:var(--text);white-space:nowrap;border-radius:10px;padding:2px 8px;font-size:12px}.toolbar .demo-login{color:var(--link);font-weight:700;text-decoration:none}.toolbar .map-name[readonly]{cursor:default}.member-list{margin:0 0 12px;padding:0;list-style:none}.member-list li{border-bottom:1px solid var(--border);align-items:center;gap:8px;padding:6px 0;display:flex}.member-list li strong{flex:1}.invite{gap:8px;display:flex}.invite input{border:1px solid var(--field-border);border-radius:6px;flex:1;padding:6px 8px}.member-list select,.invite select{border:1px solid var(--field-border);border-radius:6px;padding:4px 6px}.menu-list.context-menu{position:fixed}.menu-empty{margin:0;padding:6px 10px}.member-list .fixed-role{color:var(--text-muted);padding:4px 6px;font-size:12px}.member-list .you{color:var(--text-muted);font-size:12px}.react-flow__node.has-problem .node{--node-edge:var(--problem);box-shadow:var(--node-ring), 0 0 0 3px #c6282840}.react-flow__node.has-problem .node.selected{box-shadow:var(--node-ring), 0 0 0 3px var(--selected), 0 0 16px 4px var(--selected-glow)}.react-flow__edge.has-problem{--edge-color:var(--problem)}.react-flow__edge.has-problem .react-flow__edge-path{stroke:var(--problem);stroke-width:3px}.findings-badge{color:var(--problem);border-radius:12px;padding:3px 10px;font-weight:700;border:1px solid var(--problem)!important;background:var(--problem-bg)!important}.findings .menu-list{white-space:normal;width:320px}.finding-row{flex-direction:column;gap:2px;padding:6px 8px;font-size:12px;display:flex}.finding-row span{color:var(--text-muted)}.split{display:inline-flex}.toolbar .split>button{border-right-width:0;border-top-right-radius:0;border-bottom-right-radius:0}.toolbar .split .menu>button{border-top-left-radius:0;border-bottom-left-radius:0;padding:4px 8px}.toolbar .gaps.on .gaps-button{border-color:var(--gap);background:var(--gap-bg);color:var(--gap)}.react-flow__node.has-gap .node{outline:2px dashed var(--gap);outline-offset:3px}.react-flow__edge.has-gap .react-flow__edge-path{filter:drop-shadow(0 0 3px var(--gap))}.react-flow__edge.has-gap.selected .react-flow__edge-path{filter:drop-shadow(0 0 4px var(--selected))}.react-flow__edge.edge-join .react-flow__edge-path{--dash-period:10px;--dash-duration:1.25s}.react-flow__edge.edge-product.selected .react-flow__edge-path{stroke-dasharray:9 5;--dash-period:14px;--dash-duration:1.75s}@keyframes march{to{stroke-dashoffset:calc(-1 * var(--dash-period))}}@media (prefers-reduced-motion:no-preference){.react-flow__edge.selected .react-flow__edge-path,.react-flow__edge.in-trace .react-flow__edge-path{animation:march var(--dash-duration) linear infinite}}.trace-chip{border:1px solid var(--edge-join);background:var(--surface);box-shadow:var(--shadow);color:var(--pink-text);border-radius:14px;align-items:center;gap:6px;padding:3px 4px 3px 10px;font-size:12px;font-weight:700;display:flex}.trace-chip button{width:20px;height:20px;color:inherit;background:0 0;border:none;border-radius:50%;padding:0;line-height:1}.trace-chip button:hover{background:var(--background)}.react-flow__edge.in-trace:not(.selected) .react-flow__edge-path{stroke-width:3px;filter:drop-shadow(0 0 3px var(--edge-join))}.react-flow__node.in-trace .node:not(.selected){box-shadow:var(--node-ring), 0 0 0 3px var(--background), 0 0 0 5px var(--edge-join), var(--shadow);outline:none}.react-flow__edge.faded:not(.selected){opacity:.25}.react-flow__node.faded:not(.selected) .node{--node-edge:var(--border);background:var(--faded-bg);box-shadow:var(--node-ring);outline:none}.react-flow__node.faded:not(.selected) .node *,.edge-label.faded:not(.selected){color:var(--text-muted)}.side-panel .gap-field{border-left:3px solid var(--gap);padding-left:8px}.side-panel .gap-field>span:first-child,.side-panel .gap-field>legend{color:var(--gap);font-weight:700}.side-panel .gap-field select,.side-panel .gap-field input{border-color:var(--gap);background:var(--gap-bg);color:var(--gap)}.side-panel .gap-field .level-buttons label.unknown:has(input:checked){border-color:var(--gap);background:var(--gap-bg);color:var(--gap)}.side-panel .gap-reason{color:var(--gap);font-size:12px}.panel-problems{border-left:3px solid var(--problem);background:var(--problem-bg);color:var(--problem);margin-bottom:12px;padding:8px 10px;font-size:12px}.panel-problems p{margin:0}.panel-problems p+p{margin-top:4px}.landing{flex-direction:column;min-height:100vh;display:flex}.landing main{flex:1;width:min(960px,100%);margin:0 auto;padding:48px 16px}.hero-split{grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:center;gap:32px;display:grid}@media (width<=800px){.hero-split{grid-template-columns:minmax(0,1fr)}}.hero{max-width:680px}.landing-map{border:1px solid var(--border);background:var(--surface);box-shadow:var(--shadow);border-radius:8px;margin:0;overflow:hidden}.landing-map-canvas{background:var(--background);height:260px}.landing-map figcaption{border-top:1px solid var(--border);color:var(--text-muted);padding:8px 12px;font-size:12px}.hero h1{color:var(--primary);margin:0 0 16px;font-size:clamp(26px,5vw,38px);line-height:1.2}.hero .intro{font-size:17px;line-height:1.5}.hero .actions{flex-wrap:wrap;gap:12px;margin:24px 0 8px;display:flex}.button{border:1px solid var(--primary);background:var(--surface);color:var(--primary);border-radius:6px;padding:10px 18px;font-weight:700;text-decoration:none;display:inline-block}.button.primary{background:var(--primary);color:var(--primary-text)}.button:focus-visible{outline:2px solid var(--selection);outline-offset:2px}.steps{grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:16px;margin:48px 0;padding:0;list-style:none;display:grid}.steps li,.deliverable{background:var(--card-bg);border-left:40px solid var(--strip);box-shadow:var(--shadow);border-radius:8px;padding:20px;position:relative}.steps li:first-child{--strip:var(--step-1);--card-bg:var(--step-1-bg)}.steps li:nth-child(2){--strip:var(--step-2);--card-bg:var(--step-2-bg)}.steps li:nth-child(3){--strip:var(--step-3);--strip-text:var(--primary);--card-bg:var(--step-3-bg)}.deliverable{--strip:var(--step-done);--card-bg:var(--step-done-bg)}.step-number{width:40px;color:var(--strip-text,#fff);text-align:center;font-size:19px;font-weight:700;line-height:1.1;position:absolute;top:20px;left:-40px}.steps h2,.deliverable h2{color:var(--primary);margin:0 0 6px;font-size:17px}.steps p,.deliverable p{margin:0;line-height:1.5}.privacy{max-width:680px}.privacy h2{margin:28px 0 8px;font-size:18px}.privacy li{margin-bottom:6px}.landing footer{color:var(--text-muted);text-align:center;padding:16px 24px;font-size:12px}.map-list{background:var(--surface);max-width:640px;box-shadow:var(--shadow);border-radius:8px;margin:48px auto;padding:24px}.map-list header{justify-content:space-between;align-items:center;display:flex}.map-list h1{color:var(--primary);margin-top:0}.map-list form{gap:8px;margin-bottom:24px;display:flex}.map-list form input{border:1px solid var(--field-border);border-radius:6px;flex:1;padding:8px 10px}.map-list form button{border:1px solid var(--primary);background:var(--primary);color:var(--primary-text);border-radius:6px;padding:8px 16px}.map-list form button:disabled{opacity:.5;cursor:default}.map-list ul{padding:0;list-style:none}.map-list li{border-bottom:1px solid var(--border);justify-content:space-between;padding:10px 0;display:flex}.map-list li a{font-weight:700}.map-list li span{color:var(--text-muted)}.map-list li .delete{border:1px solid var(--border);background:var(--surface);color:var(--danger);border-radius:4px;margin-left:12px;padding:2px 8px;font-size:12px}.users-page section{margin-top:24px}.users-page h2{color:var(--primary);font-size:16px}.with-button{gap:8px;display:flex}.with-button input{flex:1}.with-button button:not(.primary){border:1px solid var(--border);background:var(--surface);border-radius:6px;padding:6px 12px}.created{background:var(--background);border-radius:6px;margin-top:16px;padding:12px}.created code{margin-bottom:10px;font-size:14px;display:block}.user-list{padding:0;list-style:none}.user-list li{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;padding:8px 0;display:flex}
