:root{--surface:#fff;--surface-muted:#f9fafb;--surface-accent:#eff6ff;--app-bg:#f1f5f9;--text:#1f2937;--text-muted:#6b7280;--border:#d1d5db;--border-strong:#9ca3af;--border-accent:#93c5fd;--primary:#2563eb;--primary-hover:#1d4ed8;--success:#059669;--success-hover:#047857;--info:#0891b2;--info-hover:#0e7490;--warning:#d97706;--warning-hover:#b45309;--danger:#dc2626;--danger-hover:#b91c1c;--neutral:#6b7280;--neutral-hover:#4b5563;--brand:#003d7a;--brand-hover:#0052a3;--disabled-bg:#e5e7eb;--disabled-text:#9ca3af;--focus-ring:#2563eb;--shadow-sm:0 2px 8px #00000026;--shadow-md:0 4px 12px #0000001f;--success-surface:#e8f5e9;--success-text:#2e7d32;--success-border:#4caf50;--danger-surface:#ffebee;--danger-text:#c62828;--danger-border:#f44336;--code-text:#424242}[data-theme=dark]{--surface:#26262a;--surface-muted:#2e2e33;--surface-accent:#2c3344;--app-bg:#1c1c1f;--text:#e7e7ea;--text-muted:#a1a1aa;--border:#3a3a40;--border-strong:#52525b;--border-accent:#2d4a7a;--primary:#3b82f6;--primary-hover:#60a5fa;--success:#10b981;--success-hover:#34d399;--info:#22d3ee;--info-hover:#67e8f9;--warning:#f59e0b;--warning-hover:#fbbf24;--danger:#f87171;--danger-hover:#fca5a5;--neutral:#71717a;--neutral-hover:#8b8b93;--brand:#3b82f6;--brand-hover:#60a5fa;--disabled-bg:#35353a;--disabled-text:#71717a;--focus-ring:#60a5fa;--shadow-sm:0 2px 10px #00000073;--shadow-md:0 6px 18px #00000080;--success-surface:#16271f;--success-text:#6ee7b7;--success-border:#10b981;--danger-surface:#2a1a1d;--danger-text:#fca5a5;--danger-border:#f87171;--code-text:#cbd5e1}body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background-color:var(--app-bg);color:var(--text);margin:0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;transition:background-color .2s,color .2s}code{font-family:source-code-pro,Menlo,Monaco,Consolas,Courier New,monospace}.preset-node.selected{z-index:10;transform:scale(1.05);box-shadow:0 0 20px #2563eb99;border:3px solid var(--primary)!important}.output-node.selected{box-shadow:0 0 15px #2563eb99;border:3px solid var(--primary)!important}*{box-sizing:border-box}button:focus-visible,a:focus-visible,select:focus-visible,input:focus-visible,textarea:focus-visible,[role=menuitem]:focus-visible,[role=button]:focus-visible{outline:2px solid var(--focus-ring);outline-offset:2px;border-radius:4px}.react-flow__controls-button{background:var(--surface);border-bottom:1px solid var(--border)}.react-flow__controls-button svg{fill:var(--text)}.react-flow__attribution{background:0 0}.react-flow__attribution a{color:var(--text-muted)}.config-validation{color:var(--text);padding:1rem}.config-header{border-bottom:1px solid var(--border);margin-bottom:1.5rem;padding-bottom:1rem}.config-header h3{margin:0 0 .5rem}.config-header p{color:var(--text-muted);margin:0}.validation-section{margin-bottom:2rem}.validation-section h4{margin-bottom:1rem;font-size:1.1rem}.success-message{background-color:var(--success-surface);border-left:4px solid var(--success-border);color:var(--success-text);padding:.75rem}.notification-type-group{margin-bottom:1rem}.notification-type-group h5{color:var(--danger-text);margin:.5rem 0}.ambiguity-item{background-color:var(--surface);border-radius:4px;margin-bottom:.5rem;margin-left:1rem;padding:.5rem}.ambiguity-item p{margin:.25rem 0}.error-section{background-color:var(--danger-surface);border-left:4px solid var(--danger-border);padding:.75rem}.error-header{color:var(--danger-text);margin:0 0 1rem;font-weight:600}.conflicts-list{flex-direction:column;gap:.75rem;display:flex}.conflict-item{background-color:var(--surface);border-left:3px solid var(--danger-border);border-radius:4px;padding:.75rem}.conflict-path{color:var(--code-text);margin-bottom:.5rem;font-family:monospace;font-size:.9rem;font-weight:500}.conflict-message{color:var(--danger-text);border-left:2px solid var(--danger-border);padding-left:.5rem;font-size:.875rem;line-height:1.4}.react-flow{direction:ltr}.react-flow__container{width:100%;height:100%;position:absolute;top:0;left:0}.react-flow__pane{z-index:1;cursor:-webkit-grab;cursor:grab}.react-flow__pane.selection{cursor:pointer}.react-flow__pane.dragging{cursor:-webkit-grabbing;cursor:grabbing}.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 .react-flow__edges{pointer-events:none;overflow:visible}.react-flow__edge-path,.react-flow__connection-path{stroke:#b1b1b7;stroke-width:1px;fill:none}.react-flow__edge{pointer-events:visibleStroke;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:focus .react-flow__edge-path,.react-flow__edge:focus-visible .react-flow__edge-path{stroke:#555}.react-flow__edge-textwrapper{pointer-events:all}.react-flow__edge-textbg{fill:#fff}.react-flow__edge .react-flow__edge-text{pointer-events:none;-webkit-user-select:none;user-select:none}.react-flow__connection{pointer-events:none}.react-flow__connection .animated{stroke-dasharray:5;animation:.5s linear infinite dashdraw}.react-flow__connectionline{z-index:1001}.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:-webkit-grab;cursor:grab;position:absolute}.react-flow__node.dragging{cursor:-webkit-grabbing;cursor:grabbing}.react-flow__nodesselection{z-index:3;transform-origin:0 0;pointer-events:none}.react-flow__nodesselection-rect{pointer-events:all;cursor:-webkit-grab;cursor:grab;position:absolute}.react-flow__handle{pointer-events:none;background:#1a192b;border:1px solid #fff;border-radius:100%;width:6px;min-width:5px;height:6px;min-height:5px;position:absolute}.react-flow__handle.connectionindicator{pointer-events:all;cursor:crosshair}.react-flow__handle-bottom{top:auto;bottom:-4px;left:50%;transform:translate(-50%)}.react-flow__handle-top{top:-4px;left:50%;transform:translate(-50%)}.react-flow__handle-left{top:50%;left:-4px;transform:translateY(-50%)}.react-flow__handle-right{top:50%;right:-4px;transform:translateY(-50%)}.react-flow__edgeupdater{cursor:move;pointer-events:all}.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.left{left:0}.react-flow__panel.right{right:0}.react-flow__panel.center{left:50%;transform:translate(-50%)}.react-flow__attribution{background:#ffffff80;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}.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-default,.react-flow__node-input,.react-flow__node-output,.react-flow__node-group{color:#222;text-align:center;background-color:#fff;border:1px solid #1a192b;border-radius:3px;width:150px;padding:10px;font-size:12px}.react-flow__node-default.selectable:hover,.react-flow__node-input.selectable:hover,.react-flow__node-output.selectable:hover,.react-flow__node-group.selectable:hover{box-shadow:0 1px 4px 1px #00000014}.react-flow__node-default.selectable.selected,.react-flow__node-default.selectable:focus,.react-flow__node-default.selectable:focus-visible,.react-flow__node-input.selectable.selected,.react-flow__node-input.selectable:focus,.react-flow__node-input.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:0 0 0 .5px #1a192b}.react-flow__node-group{background-color:#f0f0f040}.react-flow__nodesselection-rect,.react-flow__selection{background:#0059dc14;border:1px dotted #0059dccc}.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{box-shadow:0 0 2px 1px #00000014}.react-flow__controls-button{box-sizing:content-box;cursor:pointer;-webkit-user-select:none;user-select:none;background:#fefefe;border:none;border-bottom:1px solid #eee;justify-content:center;align-items:center;width:16px;height:16px;padding:5px;display:flex}.react-flow__controls-button:hover{background:#f4f4f4}.react-flow__controls-button svg{width:100%;max-width:12px;max-height:12px}.react-flow__controls-button:disabled{pointer-events:none}.react-flow__controls-button:disabled svg{fill-opacity:.4}.react-flow__minimap{background-color:#fff}.react-flow__minimap svg{display:block}.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:#3367d9;border:1px solid #fff;border-radius:1px;width:4px;height:4px;transform: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:0 solid #3367d9}.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%}.auth-container{background:var(--app-bg);justify-content:center;align-items:center;min-height:100vh;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;display:flex}.auth-card{background:var(--surface);box-shadow:var(--shadow-md);border:1px solid var(--border);text-align:center;border-radius:16px;width:90%;max-width:400px;padding:3rem 2.5rem}.postnord-logo{width:180px;height:auto;margin-bottom:2rem}.login-button{color:#fff;background-color:var(--brand);cursor:pointer;border:none;border-radius:12px;justify-content:center;align-items:center;gap:.75rem;width:100%;padding:1rem 2rem;font-size:1.125rem;font-weight:600;transition:all .2s;display:flex;box-shadow:0 4px 12px #003d7a4d}.login-button:hover{background-color:var(--brand-hover);transform:translateY(-2px);box-shadow:0 6px 20px #003d7a66}.login-button:active{transform:translateY(0)}.loading-spinner{border:4px solid var(--border);border-top-color:var(--brand);border-radius:50%;width:48px;height:48px;margin:0 auto 1rem;animation:1s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}
