:root{font-family:Inter,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;line-height:1.5;font-weight:400;color-scheme:light dark;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background-color:#f8fafc}body{margin:0;min-height:100vh;background:radial-gradient(circle at top,rgba(59,130,246,.1),transparent 55%),radial-gradient(circle at bottom,rgba(30,64,175,.08),transparent 45%),#f8fafc;color:#0f172a}@media(prefers-color-scheme:dark){:root{background-color:#0f172a}body{background:radial-gradient(circle at top,rgba(148,163,184,.12),transparent 55%),radial-gradient(circle at bottom,rgba(59,130,246,.12),transparent 45%),#0f172a;color:#e2e8f0}}.login-nudge-banner{display:flex;align-items:center;justify-content:space-between;gap:.75rem;padding:.5rem 1rem;background-color:var(--color-surface-secondary, #f5f5f5);border-bottom:1px solid var(--color-border, #e0e0e0);font-size:.875rem;color:var(--color-text-secondary, #555)}.login-nudge-banner__text{margin:0;flex:1}.login-nudge-banner__dismiss{background:none;border:none;cursor:pointer;font-size:1.125rem;line-height:1;color:var(--color-text-secondary, #555);padding:.25rem .5rem;border-radius:4px;flex-shrink:0}.login-nudge-banner__dismiss:hover{background-color:var(--color-surface-hover, #e8e8e8)}.react-flow{direction:ltr}.react-flow__container{position:absolute;width:100%;height:100%;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:1;fill:none}.react-flow__edge{pointer-events:visibleStroke;cursor:pointer}.react-flow__edge.animated path{stroke-dasharray:5;-webkit-animation:dashdraw .5s linear infinite;animation:dashdraw .5s linear infinite}.react-flow__edge.animated path.react-flow__edge-interaction{stroke-dasharray:none;-webkit-animation: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;-moz-user-select:none;user-select:none}.react-flow__connection{pointer-events:none}.react-flow__connection .animated{stroke-dasharray:5;-webkit-animation:dashdraw .5s linear infinite;animation:dashdraw .5s linear infinite}.react-flow__connectionline{z-index:1001}.react-flow__nodes{pointer-events:none;transform-origin:0 0}.react-flow__node{position:absolute;-webkit-user-select:none;-moz-user-select:none;user-select:none;pointer-events:all;transform-origin:0 0;box-sizing:border-box;cursor:-webkit-grab;cursor:grab}.react-flow__node.dragging{cursor:-webkit-grabbing;cursor:grabbing}.react-flow__nodesselection{z-index:3;transform-origin:left top;pointer-events:none}.react-flow__nodesselection-rect{position:absolute;pointer-events:all;cursor:-webkit-grab;cursor:grab}.react-flow__handle{position:absolute;pointer-events:none;min-width:5px;min-height:5px;width:6px;height:6px;background:#1a192b;border:1px solid white;border-radius:100%}.react-flow__handle.connectionindicator{pointer-events:all;cursor:crosshair}.react-flow__handle-bottom{top:auto;left:50%;bottom:-4px;transform:translate(-50%)}.react-flow__handle-top{left:50%;top:-4px;transform:translate(-50%)}.react-flow__handle-left{top:50%;left:-4px;transform:translateY(-50%)}.react-flow__handle-right{right:-4px;top:50%;transform:translateY(-50%)}.react-flow__edgeupdater{cursor:move;pointer-events:all}.react-flow__panel{position:absolute;z-index:5;margin:15px}.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{font-size:10px;background:#ffffff80;padding:2px 3px;margin:0}.react-flow__attribution a{text-decoration:none;color:#999}@-webkit-keyframes dashdraw{0%{stroke-dashoffset:10}}@keyframes dashdraw{0%{stroke-dashoffset:10}}.react-flow__edgelabel-renderer{position:absolute;width:100%;height:100%;pointer-events:none;-webkit-user-select:none;-moz-user-select:none;user-select:none}.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{padding:10px;border-radius:3px;width:150px;font-size:12px;color:#222;text-align:center;border-width:1px;border-style:solid;border-color:#1a192b;background-color:#fff}.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 rgba(0,89,220,.8)}.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{border:none;background:#fefefe;border-bottom:1px solid #eee;box-sizing:content-box;display:flex;justify-content:center;align-items:center;width:16px;height:16px;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;user-select:none;padding:5px}.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{width:4px;height:4px;border:1px solid #fff;border-radius:1px;background-color:#3367d9;transform:translate(-50%,-50%)}.react-flow__resize-control.handle.left{left:0;top:50%}.react-flow__resize-control.handle.right{left:100%;top:50%}.react-flow__resize-control.handle.top{left:50%;top:0}.react-flow__resize-control.handle.bottom{left:50%;top:100%}.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:#3367d9;border-width:0;border-style:solid}.react-flow__resize-control.line.left,.react-flow__resize-control.line.right{width:1px;transform:translate(-50%);top:0;height:100%}.react-flow__resize-control.line.left{left:0;border-left-width:1px}.react-flow__resize-control.line.right{left:100%;border-right-width:1px}.react-flow__resize-control.line.top,.react-flow__resize-control.line.bottom{height:1px;transform:translateY(-50%);left:0;width:100%}.react-flow__resize-control.line.top{top:0;border-top-width:1px}.react-flow__resize-control.line.bottom{border-bottom-width:1px;top:100%}:root{color-scheme:light dark;--node-glow-color: 59, 130, 246;--node-glow-border-opacity: .4;--node-glow-spread-opacity: .3;--node-glow-duration: .2s;--node-glow-easing: cubic-bezier(.2, .9, .2, 1);--presence-dot-size: 6px;--presence-dot-gap: 3px;--presence-dot-duration: .15s}.animations-paused,.animations-paused *{animation-play-state:paused!important;transition:none!important}#root{max-width:960px;margin:0 auto;padding:2.5rem 1.25rem 4rem;font-family:Inter,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;color:var(--text-color, #111827)}#root:has(.app--wide){max-width:100%;padding:0;height:100vh;overflow:hidden}@media(min-width:1024px){#root:not(:has(.app--wide)){max-width:1400px}}.app{display:flex;flex-direction:column;gap:1.5rem}.app__header h1{margin-bottom:.25rem;font-size:clamp(2rem,2.8vw,2.75rem);line-height:1.1}.app__subtitle{margin:0;color:#6b7280;font-size:1rem}.app__status{margin:0;color:#4b5563;font-size:1rem}.app__status--error{color:#dc2626;font-weight:600}.concept-map-list{display:grid;gap:1.25rem;padding:0;margin:0;list-style:none}.concept-map{border:1px solid rgba(107,114,128,.3);border-radius:.75rem;padding:1rem 1.25rem;background:#ffffffa6;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);box-shadow:0 10px 15px -3px #0f172a14,0 4px 6px -4px #0f172a0d;display:flex;flex-direction:column;gap:.75rem}.concept-map h2{margin:0 0 .75rem;font-size:1.35rem;color:#1f2937}.concept-map__hint{margin:0;color:#475569;font-size:.95rem}.concept-map__open{align-self:flex-start;padding:.45rem .9rem;border-radius:.5rem;background:linear-gradient(135deg,#3b82f62e,#2563eb38);color:#1d4ed8;font-weight:600;text-decoration:none;transition:background .12s ease,transform .12s ease,box-shadow .12s ease;box-shadow:0 10px 20px -12px #2563ebcc}.concept-map__open:hover{background:linear-gradient(135deg,#3b82f642,#2563eb4d);transform:translateY(-1px)}.concept-map__open:focus-visible{outline:2px solid rgba(37,99,235,.6);outline-offset:2px}.app--wide{height:100vh;display:flex;flex-direction:column;overflow:hidden;gap:0}.editor{display:flex;flex-direction:column;height:100vh;overflow:hidden;gap:0}.editor__toolbar{display:flex;align-items:center;gap:.75rem;padding:.35rem .75rem;background:#f8fafc;border-bottom:1px solid #e2e8f0;flex-shrink:0;min-height:0}.editor__toolbar .editor__back{font-size:.8rem;padding:0;white-space:nowrap}.editor__toolbar .editor__title{font-size:.95rem;margin:0;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.editor__toolbar .editor__autosave{margin:0;font-size:.75rem;white-space:nowrap;color:#6b7280}.editor__toolbar .editor__revisions-toggle{font-size:.75rem;padding:.2rem .5rem;border-radius:.375rem}.editor__toolbar .presence{flex-shrink:0;flex-direction:row;align-items:center;gap:.35rem;padding:0}.editor__toolbar .presence__label,.editor__toolbar .presence__hint{display:none}.editor__toolbar-spacer{flex:1}.editor__revisions-toggle{align-self:flex-start;border:1px solid rgba(107,114,128,.3);border-radius:.5rem;padding:.35rem .75rem;background:#ffffffa6;color:#374151;font-size:.875rem;font-weight:500;cursor:pointer;transition:background .12s ease,border-color .12s ease}.editor__revisions-toggle:hover{background:#ffffffe6;border-color:#6b728080}.editor__workspace{display:flex;flex-direction:column;flex:1;min-height:0;overflow:hidden}.editor__workspace-left{display:flex;flex-direction:column;flex:1 1 0;min-height:0;overflow:hidden}.editor__workspace-right{display:flex;flex-direction:column;flex:1 1 0;min-width:0;min-height:0;overflow:hidden}.editor__resize-handle{display:none}@media(min-width:1024px){.editor__workspace{flex-direction:row;align-items:stretch}.editor__workspace-left,.editor__workspace-right{flex:1 1 0;min-width:0}.editor__resize-handle{display:block;width:6px;cursor:col-resize;background:#e2e8f0;flex-shrink:0;transition:background .15s ease}.editor__resize-handle:hover{background:#94a3b8}.editor__workspace-left .editor__codemirror{flex:1;min-height:0}.editor__workspace-right .editor__graph-preview{flex:1;display:flex;flex-direction:column;min-height:0}.editor__workspace-right .editor__graph-preview-output{flex:1;height:auto;min-height:0}}.editor__back{align-self:flex-start;border:none;background:none;padding:0;color:#1d4ed8;font-size:.95rem;font-weight:600;cursor:pointer}.editor__back:hover{text-decoration:underline}.editor__header{display:flex;flex-direction:column;gap:.4rem}.editor__title{margin:0;font-size:clamp(1.5rem,2.2vw,2rem);color:#111827}.editor__subtitle{margin:0;color:#6b7280;font-size:1rem}.presence{display:flex;flex-direction:column;gap:.5rem;padding:.75rem 0}.presence__label{margin:0;font-weight:600;font-size:.95rem;color:#1f2937}.presence__list{position:relative;display:flex;align-items:center}.presence-avatar-wrapper{position:relative;width:32px;height:48px;flex-shrink:0}.presence-avatar-wrapper--overflow{width:40px}.presence-avatar{position:absolute;left:0;top:6px;padding:2px;border:1px solid rgba(15,23,42,.08);border-radius:999px;background:#ffffffe6;box-shadow:0 2px 8px -4px #0f172a66;transform-origin:center;transition:transform .14s cubic-bezier(.2,.9,.2,1),box-shadow .14s ease-out;cursor:pointer;z-index:1}.presence-avatar-wrapper[data-active=true] .presence-avatar{transform:translateY(-2px) scale(1.08);box-shadow:0 4px 12px -4px #0f172a80;z-index:10}.presence-avatar__badge{width:34px;height:34px;border-radius:50%;display:flex;align-items:center;justify-content:center;box-shadow:inset 0 0 0 2px #ffffff59}.presence-avatar__glyph{width:70%;height:70%}.presence-avatar__glyph svg{width:100%!important;height:100%!important}.presence-avatar__glyph svg *{fill:currentColor!important;stroke:currentColor!important}.presence-avatar__initial{font-weight:700;color:#ffffffe6}.presence-avatar__tooltip{position:absolute;bottom:100%;left:50%;transform:translate(-50%) translateY(4px);padding:6px 10px;background:#1f2937;color:#fff;font-size:.8rem;font-weight:500;border-radius:6px;white-space:nowrap;opacity:0;pointer-events:none;transition:opacity .12s ease-out,transform .14s cubic-bezier(.2,.9,.2,1);z-index:100}.presence-avatar__tooltip:after{content:"";position:absolute;top:100%;left:50%;transform:translate(-50%);border:5px solid transparent;border-top-color:#1f2937}.presence-avatar-wrapper[data-active=true] .presence-avatar__tooltip{opacity:1;transform:translate(-50%) translateY(-4px)}.presence-avatar__pill{position:absolute;left:20px;top:50%;transform:translateY(-50%) scaleX(.8);height:22px;padding:0 12px 0 22px;background:#fffffff2;border:1px solid rgba(15,23,42,.08);border-radius:999px;display:flex;align-items:center;box-shadow:0 2px 8px -4px #0f172a4d;opacity:0;transform:scaleX(.8);transform-origin:left center;transition:opacity .12s ease-out,transform .16s cubic-bezier(.2,.9,.2,1);pointer-events:none;white-space:nowrap;z-index:5}.presence-avatar__pill-text{font-size:.75rem;font-weight:600;color:#0f172a}.presence-avatar-wrapper[data-active=true] .presence-avatar__pill{opacity:1;transform:translateY(-50%) scaleX(1)}.presence__list--fan-out .presence-avatar-wrapper{width:28px;transition:width .18s cubic-bezier(.2,.9,.2,1),margin-right .18s cubic-bezier(.2,.9,.2,1)}.presence__list--fan-out[data-group-hovered=true] .presence-avatar-wrapper{width:44px}.presence-avatar__fan-label{position:absolute;top:46px;left:50%;transform:translate(-50%);font-size:.7rem;font-weight:600;color:#475569;white-space:nowrap;opacity:0;transition:opacity .14s ease-out;pointer-events:none}.presence-avatar-wrapper[data-active=true] .presence-avatar__fan-label{opacity:1}.presence-avatar--overflow{background:none;border:none;padding:0;position:absolute;left:0;top:6px}.presence-avatar__badge--overflow{background-color:#6b7280;color:#fff;font-size:.75rem;font-weight:700}.presence-avatar--overflow:hover .presence-avatar__badge--overflow{background-color:#4b5563}.presence-avatar:focus-visible{outline:2px solid #3b82f6;outline-offset:2px}.presence__hint{font-size:.85rem;color:#475569}.presence__hint--error{color:#b91c1c;font-weight:600}.editor__label{font-weight:600;color:#1f2937}.editor__autosave{margin:.25rem 0 .75rem;color:#475569;font-size:.9rem}.editor__autosave--error{color:#b91c1c}.editor__revisions{margin-top:1.5rem;padding:1rem;background:#f8fafc;border:1px solid #e2e8f0;border-radius:.75rem}.editor__revisions-header{display:flex;align-items:center;justify-content:space-between;gap:.75rem}.editor__revisions-header h3{margin:0;font-size:1rem;font-weight:600}.editor__revisions-refresh{border:1px solid #94a3b8;background:#fff;color:#0f172a;padding:.35rem .85rem;border-radius:.5rem;cursor:pointer}.editor__revisions-refresh:disabled{opacity:.6;cursor:not-allowed}.editor__revisions-form{display:flex;gap:.75rem;margin-top:.75rem}.editor__revisions-form input{flex:1;padding:.5rem .75rem;border:1px solid #cbd5f5;border-radius:.5rem;font-size:.95rem}.editor__revisions-form button{padding:.5rem .85rem;border:none;border-radius:.5rem;background:#2563eb;color:#fff;font-weight:600;cursor:pointer}.editor__revisions-form button:disabled{opacity:.6;cursor:not-allowed}.editor__revisions-list{list-style:none;margin:1rem 0 0;padding:0;display:flex;flex-direction:column;gap:.75rem}.editor__revision-item{padding-bottom:.75rem;border-bottom:1px solid #e2e8f0}.editor__revision-item:last-child{border-bottom:none;padding-bottom:0}.editor__revision-message{margin:0;font-weight:600;color:#0f172a}.editor__revision-meta{margin:.25rem 0 0;color:#475569;font-size:.875rem}.editor__revisions-empty{margin-top:.75rem;color:#475569}.editor__revisions-error{margin-top:.75rem}.editor__codemirror{display:flex;flex-direction:column;flex:1;min-height:0;overflow:hidden;border-right:1px solid #e2e8f0;background:#ffffffe6;color:#1f2937}.editor__codemirror:focus-within{outline:2px solid rgba(37,99,235,.55);outline-offset:-2px}.editor__codemirror>div{display:flex;flex-direction:column;flex:1;min-height:0}.editor__codemirror .cm-editor{flex:1;min-height:0;background:transparent}.editor__codemirror .cm-scroller{font-family:Fira Code,Source Code Pro,monospace;font-size:.95rem;line-height:1.5;overflow:auto}.editor__codemirror .cm-lineNumbers .cm-gutterElement{font-family:inherit}.editor__graph-preview{display:flex;flex-direction:column;flex:1;min-height:0;background:#ffffffeb;overflow:hidden}.editor__graph-preview-title{margin:0;padding:.25rem .5rem;font-size:.75rem;font-weight:600;color:#6b7280;text-transform:uppercase;letter-spacing:.05em;border-bottom:1px solid #e2e8f0;flex-shrink:0}.editor__graph-preview-output{position:relative;flex:1;min-height:0;background:#eff6ffb3;overflow:hidden}.editor__graph-preview-output .react-flow__panel{background:#ffffffd9;border-radius:.5rem;box-shadow:0 10px 18px -12px #0f172a73}.camera-mode-selector{display:flex;gap:2px;padding:2px;background:#f1f5f9e6;border-radius:.5rem}.camera-mode-selector__button{padding:.25rem .75rem;border:none;border-radius:.375rem;font-size:.75rem;font-weight:500;color:#64748b;background:transparent;cursor:pointer;transition:all .15s ease;white-space:nowrap}.camera-mode-selector__button:hover{color:#334155;background:#ffffff80}.camera-mode-selector__button--active{color:#1e40af;background:#fff;box-shadow:0 1px 3px #0000001a}.focused-node-description{max-width:400px;padding:.5rem .75rem}.focused-node-description__label{display:block;font-size:.8125rem;font-weight:600;color:#1e293b;margin-bottom:.25rem}.focused-node-description__text{margin:0;font-size:.75rem;line-height:1.4;color:#475569;max-height:4.5rem;overflow-y:auto}.editor__graph-preview-output .react-flow__node{transition:transform .22s ease-out}.editor__graph-preview-empty{margin:0;height:100%;display:flex;align-items:center;justify-content:center;font-size:.95rem;color:#4b5563;text-align:center;padding:1rem}.concept-node{width:220px;height:80px;display:flex;align-items:center;justify-content:center;font-size:.95rem;line-height:1.35;color:#1f2937;text-align:center;padding:0 .75rem;border-radius:.75rem;box-sizing:border-box}.concept-node--object{border:2px solid rgba(59,130,246,.55);background:#dbeafed9;font-weight:600;box-shadow:0 10px 20px -18px #2563eba6;transition:box-shadow var(--node-glow-duration) var(--node-glow-easing);will-change:box-shadow;position:relative}.concept-node--object.concept-node--highlighted{box-shadow:0 10px 20px -18px #2563eba6,0 0 0 3px rgba(var(--node-glow-color),var(--node-glow-border-opacity)),0 0 20px 4px rgba(var(--node-glow-color),var(--node-glow-spread-opacity))}.concept-node--predicate{font-weight:600;color:#1d4ed8;background:#3b82f614;border:2px solid rgba(59,130,246,.25);transition:box-shadow var(--node-glow-duration) var(--node-glow-easing);will-change:box-shadow}.concept-node--predicate.concept-node--highlighted{box-shadow:0 0 0 3px rgba(var(--node-glow-color),var(--node-glow-border-opacity)),0 0 20px 4px rgba(var(--node-glow-color),var(--node-glow-spread-opacity))}.concept-node__handle{width:1px;height:1px;border:none;background:transparent;opacity:0}.flowchart-node{box-sizing:border-box;width:150px;height:50px;display:flex;align-items:center;justify-content:center;border:1.5px solid #9370db;border-radius:4px;background:#ece2ff;font-size:14px;color:#1e293b;text-align:center;padding:4px 12px;overflow:hidden;text-overflow:ellipsis}.flowchart-node--stadium{border-radius:25px}.flowchart-node--diamond{width:90px;height:90px;padding:0;border-radius:0;transform:rotate(45deg);overflow:visible}.flowchart-node--diamond span{display:block;transform:rotate(-45deg);white-space:nowrap;font-size:13px}.flowchart-node__handle{width:1px;height:1px;min-width:0;min-height:0;border:none;background:transparent;opacity:0}.flowchart-edge-label{font-size:12px;color:#1e293b;background:#e8e8e8;padding:2px 4px;border-radius:3px;white-space:nowrap}.react-flow__node-conceptObject{pointer-events:all!important}.edge-path-ball{position:absolute;top:0;left:0;width:8px;height:8px;margin-left:-4px;margin-top:-4px;border-radius:50%;background-color:rgb(var(--node-glow-color));box-shadow:0 0 8px 2px rgba(var(--node-glow-color),.6);pointer-events:none;z-index:1000;will-change:transform,opacity}.node-presence-indicators{display:flex;flex-direction:row;align-items:center;gap:var(--presence-dot-gap);position:absolute;bottom:6px;right:6px}.node-presence-dot{width:var(--presence-dot-size);height:var(--presence-dot-size);border-radius:50%;opacity:.85;transition:opacity var(--presence-dot-duration) ease-out}.node-presence-dot:hover{opacity:1}.node-presence-overflow{font-size:.6rem;font-weight:600;color:#6b7280;padding:0 2px}.cm-remoteSelection{border-radius:2px}.cm-remoteCursor{position:relative;display:inline;width:0;margin:0;padding:0;border:none;pointer-events:none;will-change:transform}.cm-remoteCursor:before{content:"";position:absolute;top:0;left:-1px;width:2px;height:1.2em;background-color:var(--remote-cursor-color, #3b82f6)}.cm-remoteCursor__label{position:absolute;top:-1.5rem;left:0;transform:translateY(-25%);padding:.05rem .45rem;border-radius:.35rem;font-size:.7rem;font-weight:600;white-space:nowrap;box-shadow:0 4px 8px -4px #0f172a59;max-width:150px;overflow:hidden;text-overflow:ellipsis}.cm-remoteCursor__label--below{top:auto;bottom:-1.5rem;transform:translateY(25%)}.editor__status{margin:0;color:#4b5563;font-size:1rem}.editor__status--error{color:#dc2626;font-weight:600}.c4-node{box-sizing:border-box;display:flex;flex-direction:column;align-items:center;justify-content:center;border:1.5px solid #1168BD;border-radius:8px;background:#438dd5;color:#fff;font-size:13px;text-align:center;padding:8px 12px;overflow:hidden}.c4-node--person{border-radius:50% 50% 8px 8px;background:#08427b;border-color:#073b6f}.c4-node--softwareSystem{background:#1168bd;border-color:#0b4884}.c4-node--container{background:#438dd5;border-color:#2d6da3}.c4-node--component{background:#85bbf0;border-color:#5a9bd5;color:#1e293b}.c4-node--database,.c4-node--queue{border-radius:4px;background:#438dd5;border-color:#2d6da3}.c4-node--external{background:#999;border-color:#777;color:#fff}.c4-node__handle{width:1px;height:1px;min-width:0;min-height:0;border:none;background:transparent;opacity:0}.c4-node__name{font-weight:700;font-size:14px;line-height:1.3;margin-bottom:2px}.c4-node__type{font-size:11px;opacity:.85;line-height:1.3;margin-bottom:2px}.c4-node__description{font-size:11px;opacity:.75;line-height:1.3;max-height:2.6em;overflow:hidden}.c4-boundary{width:100%;height:100%;border:2px dashed #888888;border-radius:8px;background:#c8c8c814;position:relative}.c4-boundary__label{position:absolute;top:8px;left:12px;font-size:14px;font-weight:600;color:#555}.c4-edge-label{font-size:11px;color:#1e293b;background:#f0f0f0;padding:2px 6px;border-radius:3px;white-space:pre-line;text-align:center;line-height:1.4}@media(prefers-color-scheme:dark){#root{--text-color: #f3f4f6}.app__subtitle,.app__status{color:#d1d5db}.concept-map{border-color:#94a3b866;background:#1e293b99}.concept-map h2{color:#f9fafb}.concept-map__hint{color:#d1d5db}.concept-map__open{color:#93c5fd;background:linear-gradient(135deg,#60a5fa33,#3b82f647);box-shadow:0 10px 20px -14px #3b82f6cc}.editor__subtitle,.editor__status{color:#cbd5f5}.editor__title{color:#e5e7eb}.editor__revisions-toggle{background:#1e293bb3;border-color:#60a5fa59;color:#e5e7eb}.editor__revisions-toggle:hover{background:#1e293be6;border-color:#60a5fa8c}.editor__codemirror{background:#0f172abf;border-color:#60a5fa59;color:#f3f4f6;box-shadow:inset 0 1px 2px #0f172a33,0 8px 16px -12px #1e40af66}.editor__graph-preview{background:#0f172ab8;border-color:#60a5fa59;box-shadow:inset 0 1px #94a3b826,0 10px 20px -18px #60a5fa8c}.editor__graph-preview-title{color:#e5e7eb}.editor__graph-preview-output{border-color:#60a5fa59;background:#1e40af42}.editor__graph-preview-output .react-flow__panel{background:#1e293bd9;color:#f9fafb;box-shadow:0 10px 20px -18px #3b82f6a6}.focused-node-description__label{color:#f1f5f9}.focused-node-description__text{color:#cbd5e1}.editor__graph-preview-empty{color:#cbd5f5}.concept-node{color:#e5e7eb}.concept-node--object{border-color:#60a5faa6;background:#1e40af66;color:#f8fafc;box-shadow:0 12px 24px -20px #3b82f6b3}.concept-node--predicate{color:#93c5fd;background:#3b82f62e;border-color:#60a5fa66}.concept-node__handle{border:none;background:transparent}.flowchart-node{border-color:#a78bfa;background:#2e1065;color:#e2e8f0}.flowchart-edge-label{color:#e2e8f0;background:#3b1d6e}.c4-node{border-color:#5a9bd5}.c4-node--component{color:#1e293b}.c4-boundary{border-color:#666;background:#64646414}.c4-boundary__label{color:#a0a0a0}.c4-edge-label{color:#e2e8f0;background:#334155}}.button{display:inline-flex;align-items:center;justify-content:center;padding:.5rem 1rem;border:1px solid transparent;border-radius:.5rem;font-size:.875rem;font-weight:600;text-decoration:none;cursor:pointer;transition:all .15s ease}.button:disabled{opacity:.6;cursor:not-allowed}.button--primary{background:linear-gradient(135deg,#3b82f6e6,#2563eb);color:#fff;box-shadow:0 4px 6px -1px #3b82f640}.button--primary:hover:not(:disabled){background:linear-gradient(135deg,#2563ebf2,#1d4ed8);box-shadow:0 6px 12px -2px #3b82f659;transform:translateY(-1px)}.button--secondary{background:#f9fafbcc;color:#374151;border-color:#d1d5dbcc}.button--secondary:hover:not(:disabled){background:#f3f4f6e6;border-color:#9ca3afe6}.app__header-content{display:flex;justify-content:space-between;align-items:flex-start;gap:1rem}.create-button{flex-shrink:0;margin-top:.25rem}.app__empty-state{display:flex;flex-direction:column;align-items:center;gap:1rem;padding:2rem;text-align:center}.modal-overlay{position:fixed;inset:0;background-color:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000;padding:1rem}.modal-content{background:#fff;border-radius:.75rem;box-shadow:0 20px 25px -5px #0000001a,0 10px 10px -5px #0000000a;width:100%;max-width:500px;max-height:90vh;overflow:auto}.modal-header{display:flex;justify-content:space-between;align-items:center;padding:1.5rem 1.5rem 1rem;border-bottom:1px solid rgba(229,231,235,.6);margin-bottom:1.5rem}.modal-header h2{margin:0;font-size:1.5rem;color:#1f2937}.modal-close{background:none;border:none;font-size:1.5rem;color:#6b7280;cursor:pointer;padding:.25rem;border-radius:.25rem;transition:color .15s ease}.modal-close:hover{color:#374151}.create-form{padding:0 1.5rem 1.5rem}.form-field{margin-bottom:1.5rem}.form-field label{display:block;margin-bottom:.5rem;font-weight:600;color:#374151}.form-field input,.form-field textarea{width:100%;padding:.75rem;border:1px solid rgba(209,213,219,.8);border-radius:.5rem;font-size:.875rem;transition:all .15s ease;box-sizing:border-box}.form-field input:focus,.form-field textarea:focus{outline:none;border-color:#3b82f699;box-shadow:0 0 0 3px #3b82f61a}.form-field input:disabled,.form-field textarea:disabled{background-color:#f3f4f680;opacity:.6;cursor:not-allowed}.field-hint{display:block;margin-top:.5rem;font-size:.75rem;color:#6b7280}.error-message{background:#f871711a;border:1px solid rgba(248,113,113,.3);border-radius:.5rem;padding:.75rem;margin-bottom:1.5rem;color:#dc2626;font-size:.875rem;font-weight:600}.modal-footer{display:flex;gap:.75rem;justify-content:flex-end;margin-top:2rem}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}@media(prefers-color-scheme:dark){.button--secondary{background:#374151cc;color:#e5e7eb;border-color:#4b5563cc}.button--secondary:hover:not(:disabled){background:#4b5563e6;border-color:#6b7280e6}.modal-content{background:#1f2937f2;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.modal-header{border-bottom-color:#4b556399}.modal-header h2{color:#f9fafb}.modal-close{color:#d1d5db}.modal-close:hover{color:#f3f4f6}.form-field label{color:#e5e7eb}.form-field input,.form-field textarea{background:#37415180;border-color:#6b728099;color:#f9fafb}.form-field input:focus,.form-field textarea:focus{border-color:#60a5fa99;box-shadow:0 0 0 3px #60a5fa1a}.form-field input:disabled,.form-field textarea:disabled{background-color:#4b55634d}.field-hint{color:#d1d5db}.error-message{background:#f8717126;border-color:#f8717166;color:#fca5a5}}.waitlist-form{max-width:560px;display:flex;flex-direction:column;gap:1.5rem}.waitlist-form h2{margin:0;font-size:1.75rem}.waitlist-form__subtitle{margin:0;color:#6b7280}.waitlist-form__error{margin:0;padding:.75rem 1rem;background:#dc262614;border:1px solid rgba(220,38,38,.3);border-radius:.5rem;color:#dc2626;font-size:.875rem}.waitlist-form form{display:flex;flex-direction:column;gap:1.25rem}.waitlist-form__field{display:flex;flex-direction:column;gap:.375rem}.waitlist-form__field label{font-size:.875rem;font-weight:600;color:#374151}.waitlist-form__field input,.waitlist-form__field select,.waitlist-form__field textarea{padding:.5rem .75rem;border:1px solid rgba(209,213,219,.8);border-radius:.5rem;font-size:.9375rem;font-family:inherit;background:#fff;color:#111827;transition:border-color .15s ease}.waitlist-form__field input:focus,.waitlist-form__field select:focus,.waitlist-form__field textarea:focus{outline:none;border-color:#3b82f699;box-shadow:0 0 0 3px #3b82f626}.waitlist-form__field input:disabled,.waitlist-form__field select:disabled,.waitlist-form__field textarea:disabled{opacity:.6;cursor:not-allowed}.waitlist-form__field-error{margin:0;font-size:.8125rem;color:#dc2626}.waitlist-form__optional{font-weight:400;color:#9ca3af;font-size:.8125rem}.waitlist-form--success{align-items:flex-start}.waitlist-form--success h2{color:#059669}.waitlist-admin{display:flex;flex-direction:column;gap:1rem}.waitlist-admin__count{margin:0;color:#6b7280;font-size:.875rem}.waitlist-admin__table-wrapper{overflow-x:auto}.waitlist-admin__table{width:100%;border-collapse:collapse;font-size:.875rem}.waitlist-admin__table th,.waitlist-admin__table td{text-align:left;padding:.625rem .75rem;border-bottom:1px solid rgba(229,231,235,.8)}.waitlist-admin__table th{font-weight:600;color:#374151;background:#f9fafbcc}.waitlist-admin__table tbody tr:hover{background:#f9fafb80}.waitlist-admin__table a{color:#2563eb;text-decoration:none}.waitlist-admin__table a:hover{text-decoration:underline}@media(prefers-color-scheme:dark){.waitlist-form__field label{color:#d1d5db}.waitlist-form__field input,.waitlist-form__field select,.waitlist-form__field textarea{background:#1f2937cc;border-color:#4b556399;color:#f9fafb}.waitlist-admin__table th{background:#1f293780;color:#d1d5db}.waitlist-admin__table th,.waitlist-admin__table td{border-bottom-color:#37415199}}
