spytial-core 4.0.0 → 4.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/spec-editor/ui/spec-editor.css","../../src/components/InstanceBuilder/InstanceBuilder.css","../../src/components/ErrorMessageModal/ErrorMessageModal.css","../../src/components/ReplInterface/ReplInterface.css","../../src/components/EvaluatorRepl/EvaluatorRepl.css","../../src/components/RelationHighlighter/RelationHighlighter.css","../../src/components/ProjectionControls/ProjectionControls.css","../../src/components/ProjectionControls/ProjectionOrchestrator.css"],"sourcesContent":["/*\n * Spytial spec editor styles — \"drafting instrument\".\n *\n * Light: warm paper, near-black ink, a single vermillion accent (the red\n * pencil). Dark preset: blue-black instrument panel with amber. Chrome text\n * (section titles, type labels, summaries, tabs) leans on the mono stack;\n * corners are sharp (2px); surfaces are flat (no background patterns).\n *\n * Every class is prefixed `spytial-ed-`. Every color / size / font reads from a\n * `--spytial-ed-*` custom property with a fallback equal to the `lightTheme`\n * preset in `theme.ts`, so the editor is fully styled with no theme prop. The\n * `theme` prop sets these variables inline on the editor root to override the\n * fallbacks; `darkTheme` is applied the same way. Zero Bootstrap.\n *\n * Density: the `spytial-ed--compact` root modifier tightens row padding/gap and\n * the base font; `comfortable` is the unmodified default below.\n *\n * Popups (add menu, overflow menu, autocomplete) are `position: fixed` with\n * coordinates supplied inline by `useAnchoredPopup`, so host containers with\n * `overflow` clipping (demo sidebars) cannot cut them off.\n */\n\n/* ─── Root / shared tokens ──────────────────────────────────────────── */\n\n.spytial-ed {\n font-family: var(\n --spytial-ed-font-family,\n 'Avenir Next', 'Avenir', 'Seravek', 'Segoe UI Variable', 'Segoe UI',\n 'Trebuchet MS', sans-serif\n );\n font-size: var(--spytial-ed-font-size, 14px);\n color: var(--spytial-ed-text, #221d14);\n /* derived spacing/radius shorthands so component rules stay terse */\n --spytial-ed-gap: var(--spytial-ed-spacing, 8px);\n --spytial-ed-radius-sm: var(--spytial-ed-radius, 2px);\n /* chrome (titles, tabs, badges, summaries) shares the mono stack */\n --spytial-ed-chrome-font: var(\n --spytial-ed-mono-font-family,\n ui-monospace, 'Cascadia Code', 'JetBrains Mono', 'SF Mono', Menlo,\n Consolas, 'Liberation Mono', monospace\n );\n}\n\n.spytial-ed *,\n.spytial-ed *::before,\n.spytial-ed *::after {\n box-sizing: border-box;\n}\n\n.spytial-ed--compact {\n font-size: calc(var(--spytial-ed-font-size, 14px) - 1px);\n --spytial-ed-gap: calc(var(--spytial-ed-spacing, 8px) * 0.625);\n}\n\n/* motion primitives (disabled under prefers-reduced-motion below) */\n@keyframes spytial-ed-pop {\n from {\n opacity: 0;\n transform: translateY(-3px) scale(0.99);\n }\n to {\n opacity: 1;\n transform: translateY(0) scale(1);\n }\n}\n\n@keyframes spytial-ed-unfold {\n from {\n opacity: 0;\n transform: translateY(-2px);\n }\n to {\n opacity: 1;\n transform: translateY(0);\n }\n}\n\n/* ─── Field layout (one field per row, tight) ───────────────────────── */\n\n.spytial-ed-fields {\n display: flex;\n flex-direction: column;\n gap: var(--spytial-ed-gap, 8px);\n width: 100%;\n}\n\n.spytial-ed-field {\n display: grid;\n grid-template-columns: minmax(7rem, 9rem) 1fr;\n align-items: start;\n gap: var(--spytial-ed-gap, 8px);\n}\n\n.spytial-ed--compact .spytial-ed-field {\n grid-template-columns: minmax(6rem, 8rem) 1fr;\n}\n\n.spytial-ed-field-label {\n font-family: var(--spytial-ed-chrome-font);\n font-size: 0.72em;\n font-weight: 600;\n text-transform: uppercase;\n letter-spacing: 0.09em;\n color: var(--spytial-ed-text-muted, #6e6553);\n padding-top: 0.55em;\n line-height: 1.3;\n cursor: default;\n user-select: none;\n}\n\n.spytial-ed-field-required {\n color: var(--spytial-ed-danger, #a32014);\n font-weight: 700;\n}\n\n.spytial-ed-field-control {\n display: flex;\n flex-direction: column;\n gap: 0.25em;\n min-width: 0;\n}\n\n/* ─── Inputs (text, number, combo) ──────────────────────────────────── */\n\n.spytial-ed-input {\n width: 100%;\n font-family: inherit;\n font-size: inherit;\n color: var(--spytial-ed-text, #221d14);\n background: var(--spytial-ed-surface, #faf8f2);\n border: 1px solid var(--spytial-ed-border, #d9d2c0);\n border-radius: var(--spytial-ed-radius-sm, 2px);\n padding: 0.4em 0.55em;\n line-height: 1.4;\n transition: border-color 0.15s ease, box-shadow 0.15s ease;\n}\n\n.spytial-ed--compact .spytial-ed-input {\n padding: 0.3em 0.45em;\n}\n\n.spytial-ed-input::placeholder {\n color: var(--spytial-ed-text-muted, #6e6553);\n opacity: 0.65;\n}\n\n.spytial-ed-input:focus,\n.spytial-ed-input:focus-visible {\n outline: none;\n border-color: var(--spytial-ed-accent, #b5431a);\n box-shadow: 0 0 0 2px\n color-mix(in srgb, var(--spytial-ed-accent, #b5431a) 20%, transparent);\n}\n\n.spytial-ed-input:disabled {\n background: var(--spytial-ed-surface-raised, #f1ecdf);\n color: var(--spytial-ed-text-muted, #6e6553);\n cursor: not-allowed;\n}\n\n.spytial-ed-input--number {\n width: 8rem;\n}\n\n.spytial-ed-input[aria-invalid='true'] {\n border-color: var(--spytial-ed-danger, #a32014);\n}\n\n/* ─── Color field ───────────────────────────────────────────────────── */\n\n.spytial-ed-color {\n display: flex;\n align-items: center;\n gap: var(--spytial-ed-gap, 8px);\n}\n\n.spytial-ed-color-swatch {\n inline-size: 2rem;\n block-size: 2rem;\n padding: 0;\n border: 1px solid var(--spytial-ed-border, #d9d2c0);\n border-radius: var(--spytial-ed-radius-sm, 2px);\n background: var(--spytial-ed-surface, #faf8f2);\n cursor: pointer;\n}\n\n.spytial-ed-color-swatch:focus-visible {\n outline: 2px solid var(--spytial-ed-accent, #b5431a);\n outline-offset: 1px;\n}\n\n.spytial-ed-color-text {\n width: 9rem;\n font-family: var(\n --spytial-ed-mono-font-family,\n ui-monospace, 'Cascadia Code', 'JetBrains Mono', 'SF Mono', Menlo,\n Consolas, 'Liberation Mono', monospace\n );\n}\n\n/* ─── Enum pills (segmented + multi) ────────────────────────────────── */\n\n.spytial-ed-pills {\n display: flex;\n flex-wrap: wrap;\n gap: 0.3em;\n}\n\n.spytial-ed-pill {\n font-family: var(--spytial-ed-chrome-font);\n font-size: 0.8em;\n color: var(--spytial-ed-text, #221d14);\n background: transparent;\n border: 1px solid var(--spytial-ed-border, #d9d2c0);\n border-radius: var(--spytial-ed-radius-sm, 2px);\n padding: 0.28em 0.65em;\n cursor: pointer;\n transition: background 0.15s ease, border-color 0.15s ease,\n color 0.15s ease, transform 0.1s ease;\n}\n\n.spytial-ed-pill:hover:not(:disabled) {\n border-color: var(--spytial-ed-accent, #b5431a);\n color: var(--spytial-ed-accent, #b5431a);\n}\n\n.spytial-ed-pill:active:not(:disabled) {\n transform: translateY(1px);\n}\n\n.spytial-ed-pill:focus-visible {\n outline: 2px solid var(--spytial-ed-accent, #b5431a);\n outline-offset: 1px;\n}\n\n.spytial-ed-pill--active {\n background: var(--spytial-ed-accent, #b5431a);\n border-color: var(--spytial-ed-accent, #b5431a);\n color: var(--spytial-ed-accent-text, #fdf6ec);\n font-weight: 600;\n}\n\n.spytial-ed-pill--active:hover:not(:disabled) {\n color: var(--spytial-ed-accent-text, #fdf6ec);\n}\n\n/* the \"should not hold\" pill goes danger-tinted when active */\n.spytial-ed-pill--negated {\n background: var(--spytial-ed-danger, #a32014);\n border-color: var(--spytial-ed-danger, #a32014);\n}\n\n.spytial-ed-pill--negated:hover:not(:disabled) {\n border-color: var(--spytial-ed-danger, #a32014);\n}\n\n.spytial-ed-pill:disabled {\n opacity: 0.55;\n cursor: not-allowed;\n}\n\n/* ─── Boolean switch ────────────────────────────────────────────────── */\n\n.spytial-ed-switch {\n position: relative;\n inline-size: 2.4rem;\n block-size: 1.35rem;\n padding: 0;\n border: 1px solid var(--spytial-ed-border, #d9d2c0);\n border-radius: 999px;\n background: var(--spytial-ed-surface-raised, #f1ecdf);\n cursor: pointer;\n transition: background 0.15s ease, border-color 0.15s ease;\n}\n\n.spytial-ed-switch-thumb {\n position: absolute;\n top: 50%;\n left: 0.18rem;\n transform: translateY(-50%);\n inline-size: 0.95rem;\n block-size: 0.95rem;\n border-radius: 50%;\n background: var(--spytial-ed-surface, #faf8f2);\n box-shadow: 0 1px 2px rgba(0, 0, 0, 0.25);\n transition: left 0.15s ease;\n}\n\n.spytial-ed-switch--on {\n background: var(--spytial-ed-accent, #b5431a);\n border-color: var(--spytial-ed-accent, #b5431a);\n}\n\n.spytial-ed-switch--on .spytial-ed-switch-thumb {\n left: calc(100% - 1.13rem);\n}\n\n.spytial-ed-switch:focus-visible {\n outline: 2px solid var(--spytial-ed-accent, #b5431a);\n outline-offset: 2px;\n}\n\n.spytial-ed-switch:disabled {\n opacity: 0.55;\n cursor: not-allowed;\n}\n\n/* ─── Selector field (mirror overlay) ───────────────────────────────── */\n\n.spytial-ed-selector {\n display: flex;\n flex-direction: column;\n gap: 0.25em;\n width: 100%;\n}\n\n.spytial-ed-selector-input-wrap {\n position: relative;\n width: 100%;\n /* The field's surface fill lives HERE (behind the highlight mirror), not on\n the textarea: the textarea sits on top with a transparent background so the\n mirror's syntax-highlighted text shows through. An opaque textarea would\n paint over the mirror and the field would look empty (all-surface). */\n background: var(--spytial-ed-surface, #faf8f2);\n border-radius: var(--spytial-ed-radius-sm, 2px);\n}\n\n/*\n * The textarea and the mirror MUST share identical box metrics for the overlay\n * to line up: same font, size, padding, border, line-height, letter-spacing and\n * wrapping. Both wrap on words and break long tokens, so multi-line wrapping is\n * mirrored exactly.\n */\n.spytial-ed-selector-textarea,\n.spytial-ed-selector-mirror {\n margin: 0;\n font-family: var(\n --spytial-ed-mono-font-family,\n ui-monospace, 'Cascadia Code', 'JetBrains Mono', 'SF Mono', Menlo,\n Consolas, 'Liberation Mono', monospace\n );\n font-size: 0.95em;\n line-height: 1.5;\n letter-spacing: normal;\n word-spacing: normal;\n /* Normalize text shaping: browsers apply ligatures/kerning differently in\n <textarea> vs <pre> (and the mono stack includes ligature fonts), which\n would drift the overlay out from under the caret. Force both off. */\n font-variant-ligatures: none;\n font-feature-settings: normal;\n font-kerning: none;\n hyphens: none;\n text-rendering: auto;\n tab-size: 2;\n padding: 0.4em 0.55em;\n border: 1px solid transparent;\n border-radius: var(--spytial-ed-radius-sm, 2px);\n white-space: pre-wrap;\n word-break: break-word;\n overflow-wrap: break-word;\n}\n\n.spytial-ed--compact .spytial-ed-selector-textarea,\n.spytial-ed--compact .spytial-ed-selector-mirror {\n padding: 0.3em 0.45em;\n}\n\n/* Reserve identical room for the ✨ button on BOTH elements, so the text\n never runs under the button and wrapping stays mirrored. MUST come after\n the compact rule above: that one sets the `padding` shorthand at equal\n specificity and would silently reset padding-right (source order wins). */\n.spytial-ed-selector-input-wrap--with-synth .spytial-ed-selector-textarea,\n.spytial-ed-selector-input-wrap--with-synth .spytial-ed-selector-mirror {\n padding-right: 2.3em;\n}\n\n/* The mirror sits behind; it is purely presentational. */\n.spytial-ed-selector-mirror {\n position: absolute;\n inset: 0;\n z-index: 0;\n pointer-events: none;\n overflow: hidden;\n color: var(--spytial-ed-text, #221d14);\n background: transparent;\n /* reserve room for the ✨ button so wrapping matches the textarea */\n}\n\n/* The textarea sits on top with transparent text but a visible caret. */\n.spytial-ed-selector-textarea {\n position: relative;\n z-index: 1;\n display: block;\n width: 100%;\n min-height: 2.2em;\n resize: none;\n overflow: hidden; /* height is driven by JS auto-grow */\n /* transparent so the highlight mirror behind shows through; the field fill is\n on `.spytial-ed-selector-input-wrap` (matches the code-view overlay). */\n background: transparent;\n border-color: var(--spytial-ed-border, #d9d2c0);\n color: transparent;\n caret-color: var(--spytial-ed-accent, #b5431a);\n transition: border-color 0.15s ease, box-shadow 0.15s ease;\n}\n\n.spytial-ed-selector-textarea::placeholder {\n color: var(--spytial-ed-text-muted, #6e6553);\n opacity: 0.65;\n}\n\n.spytial-ed-selector-textarea::selection {\n /* keep selection visible even though text is transparent */\n background: color-mix(\n in srgb,\n var(--spytial-ed-accent, #b5431a) 26%,\n transparent\n );\n}\n\n.spytial-ed-selector-textarea:focus,\n.spytial-ed-selector-textarea:focus-visible {\n outline: none;\n border-color: var(--spytial-ed-accent, #b5431a);\n box-shadow: 0 0 0 2px\n color-mix(in srgb, var(--spytial-ed-accent, #b5431a) 20%, transparent);\n}\n\n.spytial-ed-selector-textarea:disabled {\n cursor: not-allowed;\n}\n\n/* Disabled fill goes on the wrapper (the textarea is transparent), so the\n highlight mirror stays visible. Mirrors the code view's :has pattern. */\n.spytial-ed-selector-input-wrap:has(.spytial-ed-selector-textarea:disabled) {\n background: var(--spytial-ed-surface-raised, #f1ecdf);\n}\n\n/* highlighting disabled (escape hatch): the textarea shows its own text */\n.spytial-ed-selector-textarea--plain {\n color: var(--spytial-ed-text, #221d14);\n}\n\n/* severity borders on the wrapper's textarea */\n.spytial-ed-selector--error .spytial-ed-selector-textarea {\n border-color: var(--spytial-ed-danger, #a32014);\n box-shadow: inset 0 -2px 0 var(--spytial-ed-danger, #a32014);\n}\n\n.spytial-ed-selector--warning .spytial-ed-selector-textarea {\n border-color: var(--spytial-ed-warning, #8a6200);\n box-shadow: inset 0 -2px 0 var(--spytial-ed-warning, #8a6200);\n}\n\n/* ─── Syntax token colors (used by mirror + synth preview) ──────────── */\n\n.spytial-ed-syn-keyword {\n color: var(--spytial-ed-syn-keyword, #6d28a8);\n font-weight: 600;\n}\n.spytial-ed-syn-type {\n color: var(--spytial-ed-syn-type, #0e6b6b);\n}\n.spytial-ed-syn-relation,\n.spytial-ed-syn-identifier {\n color: var(--spytial-ed-syn-relation, #1f4f9e);\n}\n.spytial-ed-syn-operator {\n color: var(--spytial-ed-syn-operator, #b5431a);\n}\n.spytial-ed-syn-string {\n color: var(--spytial-ed-syn-string, #7a5901);\n}\n.spytial-ed-syn-number {\n color: var(--spytial-ed-syn-type, #0e6b6b);\n}\n.spytial-ed-syn-comment {\n color: var(--spytial-ed-syn-comment, #8a8170);\n font-style: italic;\n}\n\n/* ─── ✨ synthesis button ───────────────────────────────────────────── */\n\n.spytial-ed-selector-synth-btn {\n position: absolute;\n top: 0.25em;\n right: 0.25em;\n z-index: 2;\n inline-size: 1.7em;\n block-size: 1.7em;\n display: inline-flex;\n align-items: center;\n justify-content: center;\n padding: 0;\n font-size: 0.95em;\n line-height: 1;\n background: var(--spytial-ed-surface-raised, #f1ecdf);\n border: 1px solid var(--spytial-ed-border, #d9d2c0);\n border-radius: var(--spytial-ed-radius-sm, 2px);\n cursor: pointer;\n transition: border-color 0.15s ease, background 0.15s ease,\n transform 0.12s ease;\n}\n\n.spytial-ed-selector-synth-btn:hover:not(:disabled) {\n border-color: var(--spytial-ed-accent, #b5431a);\n transform: rotate(-8deg);\n}\n\n.spytial-ed-selector-synth-btn:focus-visible {\n outline: 2px solid var(--spytial-ed-accent, #b5431a);\n outline-offset: 1px;\n}\n\n.spytial-ed-selector-synth-btn:disabled {\n opacity: 0.5;\n cursor: not-allowed;\n}\n\n/* ─── Autocomplete listbox (viewport-fixed, see useAnchoredPopup) ───── */\n\n.spytial-ed-autocomplete {\n position: fixed;\n z-index: 1000;\n margin: 0;\n padding: 0.2em;\n list-style: none;\n overflow-y: auto;\n background: var(--spytial-ed-surface, #faf8f2);\n border: 1px solid var(--spytial-ed-border, #d9d2c0);\n border-radius: var(--spytial-ed-radius, 2px);\n box-shadow: 0 1px 0 color-mix(in srgb, var(--spytial-ed-text, #221d14) 8%, transparent),\n 0 8px 24px color-mix(in srgb, var(--spytial-ed-text, #221d14) 18%, transparent);\n animation: spytial-ed-pop 0.12s ease-out;\n}\n\n.spytial-ed-autocomplete-item {\n display: flex;\n align-items: center;\n gap: 0.5em;\n padding: 0.3em 0.5em;\n border-radius: var(--spytial-ed-radius-sm, 2px);\n cursor: pointer;\n font-size: 0.9em;\n}\n\n.spytial-ed-autocomplete-item--active {\n background: color-mix(\n in srgb,\n var(--spytial-ed-accent, #b5431a) 14%,\n transparent\n );\n}\n\n.spytial-ed-autocomplete-kind {\n inline-size: 0.6em;\n block-size: 0.6em;\n border-radius: 1px;\n flex: 0 0 auto;\n background: var(--spytial-ed-text-muted, #6e6553);\n}\n.spytial-ed-kind-type {\n background: var(--spytial-ed-syn-type, #0e6b6b);\n}\n.spytial-ed-kind-relation {\n background: var(--spytial-ed-syn-relation, #1f4f9e);\n}\n.spytial-ed-kind-atom {\n background: var(--spytial-ed-syn-string, #7a5901);\n}\n.spytial-ed-kind-keyword {\n background: var(--spytial-ed-syn-keyword, #6d28a8);\n}\n.spytial-ed-kind-snippet {\n background: var(--spytial-ed-success, #2f6c43);\n}\n\n.spytial-ed-autocomplete-label {\n font-family: var(\n --spytial-ed-mono-font-family,\n ui-monospace, 'Cascadia Code', 'JetBrains Mono', 'SF Mono', Menlo,\n Consolas, 'Liberation Mono', monospace\n );\n color: var(--spytial-ed-text, #221d14);\n}\n\n.spytial-ed-autocomplete-detail {\n margin-left: auto;\n font-size: 0.85em;\n color: var(--spytial-ed-text-muted, #6e6553);\n white-space: nowrap;\n}\n\n/* ─── Synthesis popover ─────────────────────────────────────────────── */\n\n.spytial-ed-synth-popover {\n margin-top: 0.3em;\n padding: var(--spytial-ed-gap, 8px);\n background: var(--spytial-ed-surface-raised, #f1ecdf);\n border: 1px solid var(--spytial-ed-border, #d9d2c0);\n border-left: 3px solid var(--spytial-ed-accent, #b5431a);\n border-radius: var(--spytial-ed-radius, 2px);\n display: flex;\n flex-direction: column;\n gap: var(--spytial-ed-gap, 8px);\n animation: spytial-ed-unfold 0.14s ease-out;\n}\n\n.spytial-ed-synth-row {\n display: flex;\n gap: 0.4em;\n}\n\n.spytial-ed-synth-input {\n flex: 1 1 auto;\n min-width: 0;\n font-family: inherit;\n font-size: 0.9em;\n color: var(--spytial-ed-text, #221d14);\n background: var(--spytial-ed-surface, #faf8f2);\n border: 1px solid var(--spytial-ed-border, #d9d2c0);\n border-radius: var(--spytial-ed-radius-sm, 2px);\n padding: 0.4em 0.55em;\n}\n\n.spytial-ed-synth-input:focus-visible {\n outline: none;\n border-color: var(--spytial-ed-accent, #b5431a);\n box-shadow: 0 0 0 2px\n color-mix(in srgb, var(--spytial-ed-accent, #b5431a) 20%, transparent);\n}\n\n.spytial-ed-synth-generate,\n.spytial-ed-synth-accept {\n font-family: var(--spytial-ed-chrome-font);\n font-size: 0.82em;\n font-weight: 600;\n color: var(--spytial-ed-accent-text, #fdf6ec);\n background: var(--spytial-ed-accent, #b5431a);\n border: 1px solid var(--spytial-ed-accent, #b5431a);\n border-radius: var(--spytial-ed-radius-sm, 2px);\n padding: 0.4em 0.8em;\n cursor: pointer;\n white-space: nowrap;\n transition: filter 0.15s ease, transform 0.1s ease;\n}\n\n.spytial-ed-synth-generate:hover:not(:disabled),\n.spytial-ed-synth-accept:hover:not(:disabled) {\n filter: brightness(1.08);\n}\n\n.spytial-ed-synth-generate:active:not(:disabled),\n.spytial-ed-synth-accept:active:not(:disabled) {\n transform: translateY(1px);\n}\n\n.spytial-ed-synth-generate:disabled {\n opacity: 0.5;\n cursor: not-allowed;\n}\n\n.spytial-ed-synth-dismiss {\n font-family: var(--spytial-ed-chrome-font);\n font-size: 0.82em;\n color: var(--spytial-ed-text, #221d14);\n background: transparent;\n border: 1px solid var(--spytial-ed-border, #d9d2c0);\n border-radius: var(--spytial-ed-radius-sm, 2px);\n padding: 0.4em 0.8em;\n cursor: pointer;\n}\n\n.spytial-ed-synth-generate:focus-visible,\n.spytial-ed-synth-accept:focus-visible,\n.spytial-ed-synth-dismiss:focus-visible {\n outline: 2px solid var(--spytial-ed-accent, #b5431a);\n outline-offset: 1px;\n}\n\n.spytial-ed-synth-error {\n color: var(--spytial-ed-danger, #a32014);\n font-size: 0.85em;\n}\n\n.spytial-ed-synth-result {\n display: flex;\n flex-direction: column;\n gap: 0.4em;\n}\n\n.spytial-ed-synth-preview {\n margin: 0;\n padding: 0.4em 0.55em;\n font-family: var(\n --spytial-ed-mono-font-family,\n ui-monospace, 'Cascadia Code', 'JetBrains Mono', 'SF Mono', Menlo,\n Consolas, 'Liberation Mono', monospace\n );\n font-size: 0.9em;\n line-height: 1.5;\n background: var(--spytial-ed-surface, #faf8f2);\n border: 1px solid var(--spytial-ed-border, #d9d2c0);\n border-radius: var(--spytial-ed-radius-sm, 2px);\n white-space: pre-wrap;\n word-break: break-word;\n color: var(--spytial-ed-text, #221d14);\n}\n\n.spytial-ed-synth-explanation {\n margin: 0;\n font-size: 0.85em;\n color: var(--spytial-ed-text-muted, #6e6553);\n}\n\n.spytial-ed-synth-actions {\n display: flex;\n gap: 0.4em;\n}\n\n/* ─── Diagnostics ───────────────────────────────────────────────────── */\n\n.spytial-ed-diagnostics {\n list-style: none;\n margin: 0;\n padding: 0;\n display: flex;\n flex-direction: column;\n gap: 0.1em;\n}\n\n.spytial-ed-diagnostic {\n display: flex;\n align-items: baseline;\n gap: 0.4em;\n font-size: 0.8em;\n line-height: 1.35;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n}\n\n.spytial-ed-diagnostic-dot {\n flex: 0 0 auto;\n inline-size: 0.5em;\n block-size: 0.5em;\n border-radius: 50%;\n align-self: center;\n}\n\n.spytial-ed-diagnostic-msg {\n min-width: 0;\n overflow: hidden;\n text-overflow: ellipsis;\n}\n\n.spytial-ed-diagnostic--error {\n color: var(--spytial-ed-danger, #a32014);\n}\n.spytial-ed-diagnostic--error .spytial-ed-diagnostic-dot {\n background: var(--spytial-ed-danger, #a32014);\n}\n.spytial-ed-diagnostic--warning {\n color: var(--spytial-ed-warning, #8a6200);\n}\n.spytial-ed-diagnostic--warning .spytial-ed-diagnostic-dot {\n background: var(--spytial-ed-warning, #8a6200);\n}\n.spytial-ed-diagnostic--info {\n color: var(--spytial-ed-text-muted, #6e6553);\n}\n.spytial-ed-diagnostic--info .spytial-ed-diagnostic-dot {\n background: var(--spytial-ed-text-muted, #6e6553);\n}\n\n/* small standalone diagnostic badge/dot, for collapsed builder rows */\n.spytial-ed-diagnostic-badge {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n min-inline-size: 0.9em;\n block-size: 0.9em;\n padding: 0 0.2em;\n margin-inline-start: 0.4em;\n border-radius: 999px;\n font-size: 0.7em;\n font-weight: 700;\n line-height: 1;\n color: #ffffff;\n background: var(--spytial-ed-danger, #a32014);\n}\n.spytial-ed-diagnostic-badge--warning {\n background: var(--spytial-ed-warning, #8a6200);\n}\n.spytial-ed-diagnostic-badge--info {\n background: var(--spytial-ed-text-muted, #6e6553);\n}\n\n/* ════════════════════════════════════════════════════════════════════════\n Views (SpecEditor toolbar, BuilderView rows/menus, CodeView)\n ════════════════════════════════════════════════════════════════════════ */\n\n/* ─── SpecEditor root chrome ────────────────────────────────────────────── */\n\n.spytial-ed {\n display: block;\n background: var(--spytial-ed-surface, #faf8f2);\n border: 1px solid var(--spytial-ed-border, #d9d2c0);\n border-radius: var(--spytial-ed-radius, 2px);\n /* NOTE: no `overflow: hidden` here — it clipped the menus before they were\n made viewport-fixed, and would still clip the ✨ popover. */\n}\n\n.spytial-ed-toolbar {\n display: flex;\n align-items: center;\n justify-content: space-between;\n gap: var(--spytial-ed-gap, 8px);\n padding: calc(var(--spytial-ed-gap, 8px) * 0.75) var(--spytial-ed-gap, 8px);\n background: var(--spytial-ed-surface-raised, #f1ecdf);\n border-bottom: 1px solid var(--spytial-ed-border, #d9d2c0);\n}\n\n.spytial-ed-viewtoggle {\n display: inline-flex;\n gap: var(--spytial-ed-gap, 8px);\n}\n\n.spytial-ed-viewtoggle-btn {\n position: relative;\n display: inline-flex;\n align-items: center;\n font-family: var(--spytial-ed-chrome-font);\n font-size: 0.78em;\n font-weight: 600;\n text-transform: uppercase;\n letter-spacing: 0.09em;\n color: var(--spytial-ed-text-muted, #6e6553);\n background: transparent;\n border: none;\n padding: 0.3em 0.15em;\n cursor: pointer;\n transition: color 0.15s ease;\n}\n\n/* underline-tab: a hairline that draws in on activation */\n.spytial-ed-viewtoggle-btn::after {\n content: '';\n position: absolute;\n left: 0;\n right: 100%;\n bottom: -2px;\n height: 2px;\n background: var(--spytial-ed-accent, #b5431a);\n transition: right 0.18s ease;\n}\n\n.spytial-ed-viewtoggle-btn:hover:not(:disabled) {\n color: var(--spytial-ed-text, #221d14);\n}\n\n.spytial-ed-viewtoggle-btn--active {\n color: var(--spytial-ed-accent, #b5431a);\n}\n\n.spytial-ed-viewtoggle-btn--active::after {\n right: 0;\n}\n\n.spytial-ed-viewtoggle-btn:focus-visible {\n outline: 2px solid var(--spytial-ed-accent, #b5431a);\n outline-offset: 2px;\n}\n\n.spytial-ed-viewtoggle-btn:disabled {\n opacity: 0.55;\n cursor: not-allowed;\n}\n\n.spytial-ed-history {\n display: inline-flex;\n gap: 4px;\n}\n\n.spytial-ed-history-btn {\n font: inherit;\n font-size: 1.05em;\n line-height: 1;\n color: var(--spytial-ed-text, #221d14);\n background: transparent;\n border: 1px solid var(--spytial-ed-border, #d9d2c0);\n border-radius: var(--spytial-ed-radius-sm, 2px);\n padding: 0.2em 0.45em;\n cursor: pointer;\n transition: border-color 0.15s ease, color 0.15s ease;\n}\n\n.spytial-ed-history-btn:hover:not(:disabled) {\n border-color: var(--spytial-ed-accent, #b5431a);\n color: var(--spytial-ed-accent, #b5431a);\n}\n\n.spytial-ed-history-btn:disabled {\n opacity: 0.4;\n cursor: not-allowed;\n}\n\n.spytial-ed-body {\n padding: var(--spytial-ed-gap, 8px);\n}\n\n/* ─── BuilderView ───────────────────────────────────────────────────────── */\n\n.spytial-ed-builder {\n display: flex;\n flex-direction: column;\n gap: calc(var(--spytial-ed-gap, 8px) * 1.25);\n}\n\n.spytial-ed-section-head {\n display: flex;\n align-items: center;\n justify-content: space-between;\n margin-bottom: calc(var(--spytial-ed-gap, 8px) * 0.5);\n}\n\n.spytial-ed-section-title {\n margin: 0;\n font-family: var(--spytial-ed-chrome-font);\n font-size: 0.72em;\n font-weight: 700;\n text-transform: uppercase;\n letter-spacing: 0.14em;\n color: var(--spytial-ed-text-muted, #6e6553);\n}\n\n.spytial-ed-rows {\n list-style: none;\n margin: 0;\n padding: 0;\n display: flex;\n flex-direction: column;\n gap: 4px;\n}\n\n.spytial-ed-row {\n border: 1px solid var(--spytial-ed-border, #d9d2c0);\n border-radius: var(--spytial-ed-radius, 2px);\n background: var(--spytial-ed-surface, #faf8f2);\n transition: border-color 0.15s ease;\n}\n\n.spytial-ed-row:hover {\n border-color: color-mix(\n in srgb,\n var(--spytial-ed-text-muted, #6e6553) 55%,\n var(--spytial-ed-border, #d9d2c0)\n );\n}\n\n.spytial-ed-row--expanded {\n border-color: var(--spytial-ed-accent, #b5431a);\n}\n\n.spytial-ed-row--error {\n border-left: 3px solid var(--spytial-ed-danger, #a32014);\n}\n.spytial-ed-row--warning {\n border-left: 3px solid var(--spytial-ed-warning, #8a6200);\n}\n\n.spytial-ed-row-main {\n display: flex;\n align-items: center;\n gap: 4px;\n}\n\n.spytial-ed-row-toggle {\n flex: 1 1 auto;\n display: flex;\n align-items: center;\n gap: 0.55em;\n min-width: 0;\n font: inherit;\n text-align: left;\n color: inherit;\n background: transparent;\n border: none;\n cursor: pointer;\n padding: calc(var(--spytial-ed-gap, 8px) * 0.55) var(--spytial-ed-gap, 8px);\n}\n\n.spytial-ed--compact .spytial-ed-row-toggle {\n padding: calc(var(--spytial-ed-gap, 8px) * 0.4)\n calc(var(--spytial-ed-gap, 8px) * 0.75);\n}\n\n/* kind badge as an inked stamp: outlined, mono, square */\n.spytial-ed-badge {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n inline-size: 1.5em;\n block-size: 1.5em;\n flex: 0 0 auto;\n font-family: var(--spytial-ed-chrome-font);\n font-size: 0.72em;\n font-weight: 700;\n border-radius: var(--spytial-ed-radius-sm, 2px);\n background: transparent;\n}\n\n.spytial-ed-badge--constraint {\n color: var(--spytial-ed-accent, #b5431a);\n border: 1px solid var(--spytial-ed-accent, #b5431a);\n}\n.spytial-ed-badge--directive {\n color: var(--spytial-ed-syn-type, #0e6b6b);\n border: 1px solid var(--spytial-ed-syn-type, #0e6b6b);\n}\n.spytial-ed-badge--unknown {\n color: var(--spytial-ed-text-muted, #6e6553);\n border: 1px dashed var(--spytial-ed-text-muted, #6e6553);\n}\n\n.spytial-ed-row-type {\n font-family: var(--spytial-ed-chrome-font);\n font-size: 0.88em;\n font-weight: 600;\n flex: 0 0 auto;\n}\n\n.spytial-ed-row-negated {\n color: var(--spytial-ed-danger, #a32014);\n font-weight: 700;\n flex: 0 0 auto;\n}\n\n.spytial-ed-row-summary {\n flex: 1 1 auto;\n min-width: 0;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n font-size: 0.85em;\n color: var(--spytial-ed-text-muted, #6e6553);\n font-family: var(--spytial-ed-mono-font-family, ui-monospace, monospace);\n}\n\n.spytial-ed-row-summary--muted {\n font-style: italic;\n font-family: inherit;\n}\n\n.spytial-ed-row-dot {\n flex: 0 0 auto;\n inline-size: 0.55em;\n block-size: 0.55em;\n border-radius: 50%;\n background: var(--spytial-ed-text-muted, #6e6553);\n}\n.spytial-ed-row-dot--error {\n background: var(--spytial-ed-danger, #a32014);\n}\n.spytial-ed-row-dot--warning {\n background: var(--spytial-ed-warning, #8a6200);\n}\n\n.spytial-ed-row-panel {\n padding: var(--spytial-ed-gap, 8px);\n border-top: 1px solid var(--spytial-ed-border, #d9d2c0);\n background: var(--spytial-ed-surface-raised, #f1ecdf);\n display: flex;\n flex-direction: column;\n gap: var(--spytial-ed-gap, 8px);\n animation: spytial-ed-unfold 0.14s ease-out;\n}\n\n.spytial-ed-row--unknown {\n background: var(--spytial-ed-surface-raised, #f1ecdf);\n}\n.spytial-ed-row--unknown .spytial-ed-row-main {\n padding: calc(var(--spytial-ed-gap, 8px) * 0.55) var(--spytial-ed-gap, 8px);\n gap: 0.55em;\n}\n\n.spytial-ed-builder-empty {\n margin: 0;\n font-size: 0.9em;\n color: var(--spytial-ed-text-muted, #6e6553);\n font-style: italic;\n}\n\n/* ─── overflow menu ─────────────────────────────────────────────────────── */\n\n.spytial-ed-overflow {\n position: relative;\n flex: 0 0 auto;\n margin-inline-end: 4px;\n}\n\n.spytial-ed-overflow-btn {\n font: inherit;\n font-size: 1.1em;\n line-height: 1;\n color: var(--spytial-ed-text-muted, #6e6553);\n background: transparent;\n border: none;\n border-radius: var(--spytial-ed-radius-sm, 2px);\n padding: 0.1em 0.4em;\n cursor: pointer;\n}\n.spytial-ed-overflow-btn:hover {\n background: var(--spytial-ed-border, #d9d2c0);\n}\n.spytial-ed-overflow-btn:disabled {\n opacity: 0.4;\n cursor: not-allowed;\n}\n\n/*\n * Both menus are viewport-fixed: `useAnchoredPopup` supplies top/bottom +\n * left/right + maxHeight inline, so host overflow clipping can't hide them\n * (the original absolute positioning rendered the add menu below short\n * sidebars, invisible).\n */\n.spytial-ed-overflow-menu,\n.spytial-ed-add-menu {\n position: fixed;\n z-index: 1000;\n min-inline-size: 10rem;\n background: var(--spytial-ed-surface, #faf8f2);\n border: 1px solid var(--spytial-ed-border, #d9d2c0);\n border-radius: var(--spytial-ed-radius, 2px);\n box-shadow: 0 1px 0 color-mix(in srgb, var(--spytial-ed-text, #221d14) 8%, transparent),\n 0 8px 24px color-mix(in srgb, var(--spytial-ed-text, #221d14) 18%, transparent);\n padding: 4px;\n animation: spytial-ed-pop 0.12s ease-out;\n}\n\n.spytial-ed-overflow-menu {\n list-style: none;\n margin: 0;\n overflow-y: auto;\n}\n\n.spytial-ed-overflow-item,\n.spytial-ed-add-item {\n display: block;\n inline-size: 100%;\n font: inherit;\n font-size: 0.88em;\n text-align: left;\n color: var(--spytial-ed-text, #221d14);\n background: transparent;\n border: none;\n border-radius: var(--spytial-ed-radius-sm, 2px);\n padding: 0.4em 0.6em;\n cursor: pointer;\n}\n.spytial-ed-overflow-item:hover:not(:disabled),\n.spytial-ed-add-item:hover {\n background: var(--spytial-ed-surface-raised, #f1ecdf);\n}\n.spytial-ed-overflow-item:disabled {\n opacity: 0.4;\n cursor: not-allowed;\n}\n.spytial-ed-overflow-item--danger {\n color: var(--spytial-ed-danger, #a32014);\n}\n\n/* ─── add menu (searchable) ─────────────────────────────────────────────── */\n\n.spytial-ed-add {\n position: relative;\n}\n\n.spytial-ed-add-btn {\n font-family: var(--spytial-ed-chrome-font);\n font-size: 0.78em;\n font-weight: 600;\n color: var(--spytial-ed-accent, #b5431a);\n background: transparent;\n border: 1px solid var(--spytial-ed-accent, #b5431a);\n border-radius: var(--spytial-ed-radius-sm, 2px);\n padding: 0.28em 0.6em;\n cursor: pointer;\n transition: background 0.15s ease, color 0.15s ease, transform 0.1s ease;\n}\n.spytial-ed-add-btn:hover:not(:disabled) {\n background: var(--spytial-ed-accent, #b5431a);\n color: var(--spytial-ed-accent-text, #fdf6ec);\n}\n.spytial-ed-add-btn:active:not(:disabled) {\n transform: translateY(1px);\n}\n.spytial-ed-add-btn:focus-visible {\n outline: 2px solid var(--spytial-ed-accent, #b5431a);\n outline-offset: 2px;\n}\n.spytial-ed-add-btn:disabled {\n opacity: 0.5;\n cursor: not-allowed;\n}\n\n/* the menu's inline maxHeight (from useAnchoredPopup) governs the whole box;\n the list flexes inside it and scrolls */\n.spytial-ed-add-menu {\n display: flex;\n flex-direction: column;\n min-inline-size: 15rem;\n}\n\n.spytial-ed-add-search {\n inline-size: 100%;\n flex: 0 0 auto;\n font: inherit;\n font-size: 0.85em;\n color: var(--spytial-ed-text, #221d14);\n background: var(--spytial-ed-surface, #faf8f2);\n border: 1px solid var(--spytial-ed-border, #d9d2c0);\n border-radius: var(--spytial-ed-radius-sm, 2px);\n padding: 0.35em 0.5em;\n margin-bottom: 4px;\n}\n\n.spytial-ed-add-search:focus-visible {\n outline: none;\n border-color: var(--spytial-ed-accent, #b5431a);\n}\n\n.spytial-ed-add-list {\n list-style: none;\n margin: 0;\n padding: 0;\n flex: 1 1 auto;\n min-block-size: 0;\n overflow-y: auto;\n}\n\n.spytial-ed-add-item {\n display: flex;\n flex-direction: column;\n gap: 1px;\n}\n.spytial-ed-add-item-label {\n font-family: var(--spytial-ed-chrome-font);\n font-size: 0.95em;\n font-weight: 600;\n}\n.spytial-ed-add-item-desc {\n font-size: 0.78em;\n color: var(--spytial-ed-text-muted, #6e6553);\n}\n.spytial-ed-add-empty {\n font-size: 0.85em;\n color: var(--spytial-ed-text-muted, #6e6553);\n padding: 0.4em 0.6em;\n}\n\n/* ─── CodeView ──────────────────────────────────────────────────────────── */\n\n.spytial-ed-code {\n display: flex;\n flex-direction: column;\n gap: var(--spytial-ed-gap, 8px);\n}\n\n.spytial-ed-code-notice {\n font-size: 0.82em;\n color: var(--spytial-ed-warning, #8a6200);\n background: color-mix(\n in srgb,\n var(--spytial-ed-warning, #8a6200) 10%,\n transparent\n );\n border: 1px solid var(--spytial-ed-warning, #8a6200);\n border-radius: var(--spytial-ed-radius-sm, 2px);\n padding: 0.4em 0.6em;\n}\n\n/* CodeMirror host: the editor renders its own themed chrome (via EditorView.theme\n in CodeView.tsx, driven by the same --spytial-ed-* vars); this container only\n sizes and caps it. The .spytial-ed-code-editor / -gutter / -textarea / -mirror\n rules below are retained for the legacy textarea CodeView still exported from\n the barrel. */\n.spytial-ed-code-cm {\n display: block;\n}\n.spytial-ed-code-cm .cm-editor {\n max-height: 32rem;\n}\n.spytial-ed-code-cm--disabled {\n opacity: 0.65;\n}\n\n.spytial-ed-code-editor {\n display: flex;\n border: 1px solid var(--spytial-ed-border, #d9d2c0);\n border-radius: var(--spytial-ed-radius, 2px);\n background: var(--spytial-ed-surface, #faf8f2);\n overflow: hidden;\n}\n\n.spytial-ed-code-gutter {\n flex: 0 0 auto;\n overflow: hidden;\n text-align: right;\n user-select: none;\n padding: 0.5em 0.4em;\n color: var(--spytial-ed-text-muted, #6e6553);\n background: var(--spytial-ed-surface-raised, #f1ecdf);\n border-inline-end: 1px solid var(--spytial-ed-border, #d9d2c0);\n font-family: var(--spytial-ed-mono-font-family, ui-monospace, monospace);\n font-size: 0.85em;\n line-height: 1.5;\n}\n\n.spytial-ed-code-gutter-line {\n min-inline-size: 1.6em;\n}\n\n/* wrapper hosting the highlight mirror + the transparent-text textarea; its\n height is driven by the textarea (which keeps `resize: vertical`) */\n.spytial-ed-code-input-wrap {\n position: relative;\n flex: 1 1 auto;\n min-width: 0;\n display: flex;\n}\n\n/*\n * Mirror and textarea MUST share identical metrics (font, size, line-height,\n * padding, tab-size, `white-space: pre`) so the highlight sits exactly under\n * the caret — same contract as the selector field's overlay.\n */\n.spytial-ed-code-textarea,\n.spytial-ed-code-mirror {\n margin: 0;\n font-family: var(--spytial-ed-mono-font-family, ui-monospace, monospace);\n font-size: 0.85em;\n line-height: 1.5;\n letter-spacing: normal;\n word-spacing: normal;\n /* same shaping normalization as the selector overlay (ligature fonts in\n the mono stack would otherwise drift textarea vs pre) */\n font-variant-ligatures: none;\n font-feature-settings: normal;\n font-kerning: none;\n hyphens: none;\n text-rendering: auto;\n padding: 0.5em 0.6em;\n border: none;\n white-space: pre;\n overflow-wrap: normal;\n tab-size: 2;\n}\n\n.spytial-ed-code-mirror {\n position: absolute;\n inset: 0;\n z-index: 0;\n pointer-events: none;\n overflow: hidden;\n color: var(--spytial-ed-text, #221d14);\n background: transparent;\n}\n\n.spytial-ed-code-textarea {\n position: relative;\n z-index: 1;\n flex: 1 1 auto;\n width: 100%;\n resize: vertical;\n min-block-size: 12rem;\n color: transparent;\n caret-color: var(--spytial-ed-accent, #b5431a);\n background: transparent;\n outline: none;\n}\n\n.spytial-ed-code-textarea::selection {\n /* keep selection visible even though the text itself is transparent */\n background: color-mix(\n in srgb,\n var(--spytial-ed-accent, #b5431a) 26%,\n transparent\n );\n}\n\n.spytial-ed-code-textarea:disabled {\n opacity: 0.6;\n}\n\n/* highlighting disabled (escape hatch): the textarea shows its own text */\n.spytial-ed-code-textarea--plain {\n color: var(--spytial-ed-text, #221d14);\n}\n\n.spytial-ed-code-textarea:disabled + .spytial-ed-code-mirror,\n.spytial-ed-code-input-wrap:has(.spytial-ed-code-textarea:disabled)\n .spytial-ed-code-mirror {\n opacity: 0.6;\n}\n\n.spytial-ed-code-diagnostics {\n list-style: none;\n margin: 0;\n padding: 0;\n display: flex;\n flex-direction: column;\n gap: 2px;\n}\n\n.spytial-ed-code-diagnostic-loc {\n font-family: var(--spytial-ed-mono-font-family, ui-monospace, monospace);\n font-size: 0.85em;\n color: var(--spytial-ed-text-muted, #6e6553);\n flex: 0 0 auto;\n}\n\n/* ─── Reduced motion ────────────────────────────────────────────────── */\n\n@media (prefers-reduced-motion: reduce) {\n .spytial-ed *,\n .spytial-ed *::before,\n .spytial-ed *::after,\n .spytial-ed-autocomplete,\n .spytial-ed-overflow-menu,\n .spytial-ed-add-menu,\n .spytial-ed-synth-popover,\n .spytial-ed-row-panel {\n animation: none !important;\n transition: none !important;\n }\n}\n\n/* ---- nested style blocks (lineStyle / textStyle / …) ---- */\n.spytial-ed-group {\n border: 1px solid var(--spytial-ed-border, #d0d7de);\n border-radius: 6px;\n padding: 0.25rem 0.6rem 0.4rem;\n margin: 0.25rem 0;\n min-inline-size: 0;\n}\n.spytial-ed-group-legend {\n display: inline-flex;\n align-items: center;\n gap: 0.35rem;\n padding-inline: 0.3rem;\n font-size: 0.78rem;\n font-weight: 600;\n color: var(--spytial-ed-muted, #656d76);\n}\n.spytial-ed-group-remove {\n border: none;\n background: transparent;\n cursor: pointer;\n font-size: 1rem;\n line-height: 1;\n padding: 0 0.15rem;\n color: var(--spytial-ed-muted, #656d76);\n}\n.spytial-ed-group-remove:hover {\n color: var(--spytial-ed-danger, #cf222e);\n}\n.spytial-ed-group-add {\n align-self: flex-start;\n border: 1px dashed var(--spytial-ed-border, #d0d7de);\n border-radius: 6px;\n background: transparent;\n cursor: pointer;\n padding: 0.3rem 0.6rem;\n margin: 0.15rem 0;\n font-size: 0.78rem;\n color: var(--spytial-ed-accent, #0969da);\n}\n.spytial-ed-group-add:hover {\n background: var(--spytial-ed-hover, #f6f8fa);\n}\n","/* InstanceBuilder Component Styles */\n\n.instance-builder {\n border: 1px solid #e0e0e0;\n border-radius: 8px;\n padding: 20px;\n background: #ffffff;\n font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;\n max-width: 800px;\n}\n\n.instance-builder__header {\n display: flex;\n justify-content: space-between;\n align-items: center;\n margin-bottom: 20px;\n padding-bottom: 10px;\n border-bottom: 1px solid #e0e0e0;\n}\n\n.instance-builder__header h2 {\n margin: 0;\n color: #333;\n font-size: 1.5rem;\n}\n\n.instance-builder__stats {\n display: flex;\n gap: 15px;\n font-size: 0.9rem;\n color: #666;\n}\n\n.instance-builder__stats span {\n background: #f5f5f5;\n padding: 4px 8px;\n border-radius: 4px;\n}\n\n.instance-builder__error {\n background: #fee;\n border: 1px solid #fcc;\n color: #c33;\n padding: 10px 15px;\n border-radius: 4px;\n margin-bottom: 20px;\n display: flex;\n justify-content: space-between;\n align-items: center;\n}\n\n.instance-builder__error button {\n background: none;\n border: none;\n color: #c33;\n font-size: 1.2rem;\n cursor: pointer;\n padding: 0;\n width: 20px;\n height: 20px;\n}\n\n.instance-builder__content {\n display: flex;\n flex-direction: column;\n gap: 30px;\n}\n\n/* N-ary relation styles */\n.relation-atoms {\n background: #f9f9f9;\n border: 1px solid #e0e0e0;\n border-radius: 4px;\n padding: 12px;\n margin: 8px 0;\n}\n\n.atom-selector {\n display: flex;\n align-items: center;\n gap: 8px;\n margin-bottom: 8px;\n}\n\n.atom-selector label {\n min-width: 80px;\n font-weight: 500;\n}\n\n.atom-selector select {\n flex: 1;\n min-width: 200px;\n}\n\n.arity-controls {\n display: flex;\n gap: 8px;\n padding-top: 8px;\n border-top: 1px solid #e0e0e0;\n}\n\n.arity-controls button {\n background: #6c757d;\n color: white;\n border: none;\n padding: 6px 12px;\n border-radius: 4px;\n cursor: pointer;\n font-size: 0.8rem;\n}\n\n.arity-controls button:hover:not(:disabled) {\n background: #5a6268;\n}\n\n.instance-builder__section {\n border: 1px solid #f0f0f0;\n border-radius: 6px;\n padding: 20px;\n background: #fafafa;\n}\n\n.instance-builder__section h3 {\n margin: 0 0 15px 0;\n color: #444;\n font-size: 1.2rem;\n border-bottom: 1px solid #e0e0e0;\n padding-bottom: 8px;\n}\n\n.instance-builder__form {\n margin-bottom: 20px;\n}\n\n.form-row {\n display: flex;\n gap: 10px;\n align-items: center;\n flex-wrap: wrap;\n}\n\n.form-row input,\n.form-row select {\n padding: 8px 12px;\n border: 1px solid #ddd;\n border-radius: 4px;\n font-size: 0.9rem;\n min-width: 120px;\n flex: 1;\n}\n\n.form-row input:focus,\n.form-row select:focus {\n outline: none;\n border-color: #007acc;\n box-shadow: 0 0 0 2px rgba(0, 122, 204, 0.2);\n}\n\n.form-row button {\n background: #007acc;\n color: white;\n border: none;\n padding: 8px 16px;\n border-radius: 4px;\n cursor: pointer;\n font-size: 0.9rem;\n white-space: nowrap;\n}\n\n.form-row button:hover:not(:disabled) {\n background: #005a9e;\n}\n\n.form-row button:disabled {\n background: #ccc;\n cursor: not-allowed;\n}\n\n.instance-builder__list {\n max-height: 300px;\n overflow-y: auto;\n border: 1px solid #e0e0e0;\n border-radius: 4px;\n background: white;\n}\n\n.empty-state {\n padding: 20px;\n text-align: center;\n color: #888;\n font-style: italic;\n margin: 0;\n}\n\n.list-item {\n display: flex;\n justify-content: space-between;\n align-items: center;\n padding: 12px 15px;\n border-bottom: 1px solid #f0f0f0;\n}\n\n.list-item:last-child {\n border-bottom: none;\n}\n\n.list-item:hover {\n background: #f9f9f9;\n}\n\n.item-info {\n display: flex;\n align-items: center;\n gap: 10px;\n flex: 1;\n}\n\n.item-info strong {\n color: #333;\n font-weight: 600;\n}\n\n.item-label {\n color: #666;\n font-style: italic;\n}\n\n.item-type {\n background: #e7f3ff;\n color: #0066cc;\n padding: 2px 6px;\n border-radius: 3px;\n font-size: 0.8rem;\n font-weight: 500;\n}\n\n.remove-button {\n background: #dc3545;\n color: white;\n border: none;\n padding: 6px 12px;\n border-radius: 4px;\n cursor: pointer;\n font-size: 0.8rem;\n}\n\n.remove-button:hover:not(:disabled) {\n background: #c82333;\n}\n\n.remove-button:disabled {\n background: #ccc;\n cursor: not-allowed;\n}\n\n.relation-group {\n margin-bottom: 15px;\n}\n\n.relation-group h4 {\n margin: 0 0 10px 0;\n color: #555;\n font-size: 1rem;\n padding: 8px 15px;\n background: #f0f8ff;\n border-left: 3px solid #007acc;\n}\n\n.relation-group .list-item {\n margin-left: 15px;\n border-left: 2px solid #e0e0e0;\n}\n\n.instance-builder__actions {\n display: flex;\n gap: 15px;\n align-items: flex-start;\n padding-top: 20px;\n border-top: 1px solid #e0e0e0;\n}\n\n.clear-button {\n background: #6c757d;\n color: white;\n border: none;\n padding: 10px 20px;\n border-radius: 4px;\n cursor: pointer;\n font-size: 0.9rem;\n}\n\n.clear-button:hover:not(:disabled) {\n background: #5a6268;\n}\n\n.clear-button:disabled {\n background: #ccc;\n cursor: not-allowed;\n}\n\n.import-section {\n flex: 1;\n}\n\n.import-section summary {\n cursor: pointer;\n font-weight: 500;\n color: #007acc;\n padding: 10px 0;\n}\n\n.import-section summary:hover {\n color: #005a9e;\n}\n\n.import-section textarea {\n width: 100%;\n padding: 10px;\n border: 1px solid #ddd;\n border-radius: 4px;\n font-family: 'Courier New', monospace;\n font-size: 0.9rem;\n resize: vertical;\n margin-top: 10px;\n}\n\n.import-section textarea:focus {\n outline: none;\n border-color: #007acc;\n box-shadow: 0 0 0 2px rgba(0, 122, 204, 0.2);\n}\n\n/* Responsive Design */\n@media (max-width: 768px) {\n .instance-builder {\n padding: 15px;\n }\n \n .instance-builder__header {\n flex-direction: column;\n align-items: flex-start;\n gap: 10px;\n }\n \n .form-row {\n flex-direction: column;\n align-items: stretch;\n }\n \n .form-row input,\n .form-row select,\n .form-row button {\n min-width: auto;\n width: 100%;\n }\n \n .instance-builder__actions {\n flex-direction: column;\n }\n \n .list-item {\n flex-direction: column;\n align-items: flex-start;\n gap: 10px;\n }\n \n .item-info {\n flex-direction: column;\n align-items: flex-start;\n gap: 5px;\n }\n}\n",".error-card {\n min-width: 320px;\n max-width: 100%;\n}\n\n#error-message-modal {\n border-radius: 0.5rem;\n border: 2px var(--bs-danger) solid;\n}\n\n/* Source constraint highlight - lighter yellow */\n.constraint-item.highlight-source {\n background-color: rgba(255, 193, 7, 0.35);\n border-radius: 4px;\n}\n\n/* Diagram element highlight - darker yellow */\n.constraint-item.highlight-diagram {\n background-color: rgba(255, 193, 7, 0.7);\n border-radius: 4px;\n}\n\n.constraint-relationship-table {\n width: 100%;\n margin-bottom: 1rem;\n}\n\n/*\n * Two independently-scrolling columns inside one resizable region.\n * - resize: vertical gives a drag handle to tune height (larger/smaller/taller)\n * - max-height caps the default so a long conflict list can't cover the screen\n * (and is the drag ceiling); min-height is the drag floor\n * - overflow: hidden is required for `resize`; each column body scrolls itself,\n * which is what lets a hovered item stay put while its correspondence in the\n * OTHER column scrolls into view\n */\n.constraint-columns {\n display: flex;\n gap: 0;\n max-height: 45vh;\n min-height: 5rem;\n overflow: hidden;\n resize: vertical;\n}\n\n.constraint-column {\n flex: 1 1 0;\n min-width: 0;\n min-height: 0;\n display: flex;\n flex-direction: column;\n border: 1px solid #dee2e6;\n}\n\n/* Collapse the seam between the two adjacent columns */\n.constraint-column + .constraint-column {\n border-left: none;\n}\n\n.constraint-column-header {\n flex: 0 0 auto;\n font-weight: 600;\n padding: 0.5rem;\n background: #f8f9fa;\n border-bottom: 1px solid #dee2e6;\n}\n\n/* The independent per-column scroll container (both axes: wide constraint\n * text scrolls within the column instead of widening the whole modal). */\n.constraint-column-body {\n flex: 1 1 auto;\n min-height: 0;\n overflow: auto;\n}\n\n.constraint-relationship-table .constraint-item {\n padding: 0.5rem;\n border-bottom: 1px solid #eee;\n}\n\n.constraint-relationship-table .constraint-item:last-child {\n border-bottom: none;\n}\n\ncode > code, code > pre {\n border: 1px solid var(--bs-code-color);\n padding: 0.2em 0.4em;\n border-radius: 4px;\n}\n\n/* Collapse/expand header bar */\n.error-modal-header {\n gap: 0.5rem;\n}\n\n.error-modal-toggle {\n background: transparent;\n border: none;\n color: var(--bs-danger);\n font-size: 1.1rem;\n line-height: 1;\n padding: 0 0.25rem;\n cursor: pointer;\n}\n\n.error-modal-toggle:hover,\n.error-modal-toggle:focus {\n opacity: 0.75;\n}","/* ReplInterface Component Styles */\n\n.repl-interface {\n display: flex;\n flex-direction: column;\n gap: 15px;\n background: #1e1e1e;\n color: #d4d4d4;\n border-radius: 8px;\n padding: 15px;\n font-family: 'Courier New', 'Monaco', 'Menlo', monospace;\n max-width: 1400px;\n min-height: 200px;\n}\n\n.repl-interface__main {\n display: flex;\n flex-direction: column;\n gap: 20px;\n}\n\n.repl-interface__header {\n display: flex;\n align-items: center;\n justify-content: space-between;\n gap: 15px;\n margin-bottom: 10px;\n padding-bottom: 8px;\n border-bottom: 1px solid #333;\n}\n\n.repl-interface__stats {\n display: flex;\n gap: 10px;\n font-size: 0.85rem;\n color: #9cdcfe;\n}\n\n.repl-interface__stats span {\n background: rgba(156, 220, 254, 0.1);\n padding: 3px 6px;\n border-radius: 3px;\n border: 1px solid rgba(156, 220, 254, 0.3);\n}\n\n\n\n.repl-interface__terminals {\n display: flex;\n flex-direction: column;\n gap: 15px;\n flex: 1;\n}\n\n.repl-terminal {\n background: #252526;\n border: 1px solid #3c3c3c;\n border-radius: 6px;\n display: flex;\n flex-direction: column;\n min-height: 120px;\n}\n\n.repl-terminal__header {\n background: #2d2d30;\n padding: 8px 12px;\n border-bottom: 1px solid #3c3c3c;\n font-size: 0.9rem;\n font-weight: 600;\n color: #cccccc;\n display: flex;\n justify-content: flex-end;\n align-items: center;\n}\n\n.repl-terminal__help {\n color: #6a737d;\n font-size: 0.8rem;\n cursor: pointer;\n}\n\n.repl-terminal__help:hover {\n color: #9cdcfe;\n}\n\n.repl-terminal__output {\n flex: 1;\n padding: 10px;\n overflow-y: auto;\n font-size: 0.85rem;\n line-height: 1.4;\n min-height: 60px;\n max-height: 120px;\n}\n\n.repl-terminal__input {\n border-top: 2px solid #4ec9b0;\n padding: 15px;\n background: #1e1e1e;\n}\n\n.repl-terminal__input textarea {\n width: 100%;\n background: transparent;\n border: 2px solid #3c3c3c;\n border-radius: 4px;\n padding: 10px;\n color: #d4d4d4;\n font-family: inherit;\n font-size: 0.9rem;\n line-height: 1.4;\n resize: none;\n outline: none;\n min-height: 60px;\n max-height: 100px;\n transition: border-color 0.2s ease;\n}\n\n.repl-terminal__input textarea:focus {\n border-color: #4ec9b0;\n}\n\n.repl-terminal__input textarea::placeholder {\n color: #6a737d;\n}\n\n.repl-terminal__controls {\n display: flex;\n justify-content: flex-end;\n align-items: center;\n padding-top: 12px;\n border-top: 1px solid #4ec9b0;\n}\n\n.repl-terminal__execute {\n background: #4ec9b0;\n color: #1e1e1e;\n border: none;\n padding: 8px 16px;\n border-radius: 4px;\n cursor: pointer;\n font-size: 0.85rem;\n font-family: inherit;\n font-weight: 600;\n}\n\n.repl-terminal__execute:hover:not(:disabled) {\n background: #6bd4ba;\n}\n\n.repl-terminal__execute:disabled {\n background: #3c3c3c;\n color: #6a737d;\n cursor: not-allowed;\n}\n\n.repl-terminal__clear {\n display: none;\n}\n\n/* Output message types */\n.repl-output-line {\n margin: 2px 0;\n padding: 2px 0;\n}\n\n.repl-output-line.command {\n color: #9cdcfe;\n}\n\n.repl-output-line.command::before {\n content: '> ';\n color: #4ec9b0;\n font-weight: bold;\n}\n\n.repl-output-line.success {\n color: #4ec9b0;\n}\n\n.repl-output-line.error {\n color: #f48771;\n}\n\n.repl-output-line.error::before {\n content: '✗ ';\n}\n\n.repl-output-line.info {\n color: #dcdcaa;\n}\n\n.repl-output-line.info::before {\n content: 'ℹ ';\n}\n\n.repl-output-line.help {\n color: #6a737d;\n font-style: italic;\n}\n\n/* Global actions */\n.repl-interface__actions {\n display: flex;\n gap: 10px;\n align-items: center;\n padding-top: 15px;\n border-top: 1px solid #3c3c3c;\n}\n\n.repl-interface__action-button {\n background: #2d2d30;\n color: #cccccc;\n border: 1px solid #3c3c3c;\n padding: 8px 16px;\n border-radius: 4px;\n cursor: pointer;\n font-size: 0.85rem;\n font-family: inherit;\n}\n\n.repl-interface__action-button:hover:not(:disabled) {\n background: #37373d;\n border-color: #505050;\n}\n\n.repl-interface__action-button:disabled {\n background: #1e1e1e;\n color: #6a737d;\n cursor: not-allowed;\n}\n\n.repl-interface__action-button.primary {\n background: #0e639c;\n border-color: #0e639c;\n color: white;\n}\n\n.repl-interface__action-button.primary:hover:not(:disabled) {\n background: #1177bb;\n border-color: #1177bb;\n}\n\n.repl-interface__action-button.danger {\n background: #a74747;\n border-color: #a74747;\n color: white;\n}\n\n.repl-interface__action-button.danger:hover:not(:disabled) {\n background: #c85450;\n border-color: #c85450;\n}\n\n/* Responsive design */\n@media (max-width: 1024px) {\n .repl-interface__drawers {\n flex-direction: column;\n }\n \n .repl-interface__drawer {\n max-width: none;\n }\n \n .repl-terminal {\n min-height: 100px;\n }\n}\n\n@media (max-width: 768px) {\n .repl-interface {\n padding: 10px;\n }\n \n .repl-interface__header {\n flex-direction: column;\n align-items: flex-start;\n gap: 10px;\n }\n \n .repl-terminal__input textarea {\n min-height: 40px;\n }\n \n .repl-interface__drawers {\n gap: 8px;\n }\n}\n\n/* Scrollbar styling for dark theme */\n.repl-terminal__output::-webkit-scrollbar {\n width: 8px;\n}\n\n.repl-terminal__output::-webkit-scrollbar-track {\n background: #252526;\n}\n\n.repl-terminal__output::-webkit-scrollbar-thumb {\n background: #424242;\n border-radius: 4px;\n}\n\n.repl-terminal__output::-webkit-scrollbar-thumb:hover {\n background: #4f4f4f;\n}\n\n/* Collapsible drawers for data display */\n.repl-interface__drawers {\n display: flex;\n gap: 10px;\n margin-top: 10px;\n}\n\n.repl-interface__drawer {\n background: #252526;\n border: 1px solid #3c3c3c;\n border-radius: 6px;\n flex: 1;\n max-width: 300px;\n}\n\n.repl-interface__drawer-header {\n padding: 8px 12px;\n background: #2d2d30;\n border-bottom: 1px solid #3c3c3c;\n font-size: 0.9rem;\n font-weight: 600;\n color: #cccccc;\n display: flex;\n justify-content: space-between;\n align-items: center;\n cursor: pointer;\n}\n\n.repl-interface__drawer-toggle {\n font-size: 0.8rem;\n color: #9cdcfe;\n}\n\n.repl-interface__drawer-content {\n max-height: 200px;\n overflow-y: auto;\n padding: 8px;\n}\n\n.repl-interface__drawer-content.collapsed {\n display: none;\n}\n\n.repl-interface__drawer-item {\n font-size: 0.8rem;\n padding: 6px 8px;\n background: rgba(156, 220, 254, 0.05);\n border: 1px solid rgba(156, 220, 254, 0.2);\n border-radius: 3px;\n line-height: 1.3;\n margin-bottom: 4px;\n display: flex;\n justify-content: space-between;\n align-items: center;\n}\n\n.repl-interface__drawer-item-content {\n flex: 1;\n}\n\n.repl-interface__drawer-item-header {\n color: #9cdcfe;\n font-weight: 600;\n}\n\n.repl-interface__drawer-item-detail {\n color: #dcdcaa;\n font-size: 0.75rem;\n margin-top: 2px;\n}\n\n.repl-interface__drawer-delete {\n background: #a74747;\n border: none;\n color: white;\n font-size: 0.7rem;\n padding: 2px 6px;\n border-radius: 3px;\n cursor: pointer;\n margin-left: 8px;\n opacity: 0.7;\n transition: opacity 0.2s ease;\n}\n\n.repl-interface__drawer-delete:hover {\n opacity: 1;\n background: #c85450;\n}\n\n.repl-interface__drawer-empty {\n color: #6a737d;\n font-style: italic;\n font-size: 0.8rem;\n text-align: center;\n padding: 10px;\n}",".code-input {\n font-family: monospace;\n}\n\n#repl-output {\n font-family: monospace; \n white-space: pre-wrap; \n max-height: 80vh; \n overflow-y: auto;\n}\n\n#evaluator-input {\n margin: 10px 0;\n}","/* RelationHighlighter Component Styles - Accordion Style */\n\n.relation-highlighter {\n border: 1px solid #ddd;\n border-radius: 6px;\n background: #ffffff;\n font-family: system-ui, -apple-system, sans-serif;\n max-width: 320px;\n box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);\n overflow: hidden;\n}\n\n/* Accordion-style header */\n.relation-highlighter-header {\n display: flex;\n justify-content: space-between;\n align-items: center;\n padding: 14px 18px;\n background: linear-gradient(135deg, #f8f9fa 0%, #e9ecef 100%);\n border-bottom: 1px solid #dee2e6;\n cursor: pointer;\n user-select: none;\n transition: background-color 0.2s ease;\n position: relative;\n}\n\n.relation-highlighter-header:hover {\n background: linear-gradient(135deg, #e9ecef 0%, #dee2e6 100%);\n}\n\n.relation-highlighter-header:active {\n background: linear-gradient(135deg, #dee2e6 0%, #ced4da 100%);\n}\n\n.relation-highlighter-title {\n margin: 0;\n font-size: 15px;\n font-weight: 600;\n color: #495057;\n letter-spacing: 0.025em;\n}\n\n/* Accordion toggle button */\n.collapse-toggle {\n background: none;\n border: none;\n font-size: 16px;\n color: #6c757d;\n cursor: pointer;\n padding: 6px;\n border-radius: 4px;\n transition: all 0.25s ease;\n line-height: 1;\n min-width: 28px;\n min-height: 28px;\n display: flex;\n align-items: center;\n justify-content: center;\n}\n\n.collapse-toggle:hover {\n background: rgba(108, 117, 125, 0.1);\n color: #495057;\n}\n\n.collapse-toggle.collapsed {\n transform: rotate(-90deg);\n color: #868e96;\n}\n\n/* Accordion-style collapsible content */\n.relation-highlighter-content {\n max-height: 350px;\n overflow: hidden;\n transition: max-height 0.35s cubic-bezier(0.4, 0, 0.2, 1);\n background: #ffffff;\n}\n\n.relation-highlighter-content.collapsed {\n max-height: 0;\n border-top: none;\n}\n\n/* No relations message */\n.no-relations {\n padding: 20px 18px;\n text-align: center;\n color: #6c757d;\n font-style: italic;\n margin: 0;\n font-size: 14px;\n}\n\n/* Relation list */\n.relation-list {\n list-style: none;\n margin: 0;\n padding: 0;\n max-height: 320px;\n overflow-y: auto;\n /* Explicitly allow horizontal scroll when content overflows */\n overflow-x: auto;\n}\n\n/* Individual relation items */\n.relation-item {\n padding: 12px 18px;\n cursor: pointer;\n border-bottom: 1px solid #f1f3f4;\n color: #495057;\n font-size: 14px;\n font-weight: 500;\n transition: all 0.2s ease;\n user-select: none;\n position: relative;\n background: #ffffff;\n overflow: hidden;\n white-space: nowrap;\n /* Minimum width to prevent excessive shrinking */\n min-width: 100px;\n}\n\n.relation-item:last-child {\n border-bottom: none;\n}\n\n.relation-item:hover {\n background: linear-gradient(90deg, #e3f2fd 0%, #f3e5f5 100%);\n color: #1565c0;\n font-weight: 600;\n /* Use left padding increase instead of transform to prevent horizontal scrolling */\n padding-left: 28px;\n /* Reduce right padding to maintain consistent width */\n padding-right: 18px;\n}\n\n.relation-item:active {\n background: linear-gradient(90deg, #bbdefb 0%, #e1bee7 100%);\n}\n\n/* Scrollbar styling for webkit browsers */\n.relation-list::-webkit-scrollbar {\n width: 8px;\n}\n\n.relation-list::-webkit-scrollbar-track {\n background: #f8f9fa;\n border-radius: 4px;\n}\n\n.relation-list::-webkit-scrollbar-thumb {\n background: linear-gradient(180deg, #ced4da 0%, #adb5bd 100%);\n border-radius: 4px;\n border: 1px solid #dee2e6;\n}\n\n.relation-list::-webkit-scrollbar-thumb:hover {\n background: linear-gradient(180deg, #adb5bd 0%, #868e96 100%);\n}\n\n/* Accordion animation enhancement */\n@keyframes accordionExpand {\n from {\n opacity: 0;\n transform: translateY(-10px);\n }\n to {\n opacity: 1;\n transform: translateY(0);\n }\n}\n\n.relation-highlighter-content:not(.collapsed) .relation-list {\n animation: accordionExpand 0.3s ease-out;\n}\n\n/* Responsive design for smaller screens */\n@media (max-width: 480px) {\n .relation-highlighter {\n max-width: 100%;\n border-radius: 4px;\n }\n \n .relation-highlighter-title {\n font-size: 14px;\n }\n \n .relation-item {\n padding: 14px 18px;\n font-size: 15px; /* Larger touch targets */\n padding-right: 32px; /* More space for arrow on mobile */\n }\n \n .relation-item:hover {\n padding-left: 32px;\n padding-right: 18px;\n }\n}\n\n/* Focus states for accessibility */\n.relation-highlighter-header:focus {\n outline: 2px solid #0d6efd;\n outline-offset: -2px;\n}\n\n.collapse-toggle:focus {\n outline: 2px solid #0d6efd;\n outline-offset: 2px;\n border-radius: 4px;\n}\n\n.relation-item:focus {\n outline: 2px solid #0d6efd;\n outline-offset: -2px;\n background: #e3f2fd;\n}","/**\n * Projection Controls Styles\n * \n * Provides styling for the projection selector component used in Forge/Alloy contexts.\n * Follows the design patterns used in NoCodeView for consistency.\n */\n\n.projection-controls {\n background: #f8f9fa;\n border: 1px solid #dee2e6;\n border-radius: 0.25rem;\n padding: 1rem;\n margin-bottom: 1rem;\n}\n\n.projection-controls__header {\n margin-bottom: 1rem;\n}\n\n.projection-controls__title {\n font-size: 1.1rem;\n font-weight: 600;\n margin: 0 0 0.25rem 0;\n color: #212529;\n}\n\n.projection-controls__description {\n font-size: 0.875rem;\n color: #6c757d;\n margin: 0;\n font-style: italic;\n}\n\n.projection-controls__list {\n display: flex;\n flex-direction: column;\n gap: 0.75rem;\n}\n\n.projection-controls__item {\n display: flex;\n align-items: center;\n gap: 0.75rem;\n}\n\n.projection-controls__label {\n font-weight: 500;\n color: #495057;\n min-width: 120px;\n margin: 0;\n font-size: 0.875rem;\n}\n\n.projection-controls__select {\n flex: 1;\n padding: 0.375rem 0.75rem;\n font-size: 0.875rem;\n line-height: 1.5;\n color: #495057;\n background-color: #fff;\n background-clip: padding-box;\n border: 1px solid #ced4da;\n border-radius: 0.25rem;\n transition: border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;\n}\n\n.projection-controls__select:focus {\n color: #495057;\n background-color: #fff;\n border-color: #80bdff;\n outline: 0;\n box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.25);\n}\n\n.projection-controls__select:disabled {\n background-color: #e9ecef;\n opacity: 1;\n cursor: not-allowed;\n}\n\n/* Responsive adjustments */\n@media (max-width: 576px) {\n .projection-controls__item {\n flex-direction: column;\n align-items: flex-start;\n }\n \n .projection-controls__label {\n min-width: auto;\n }\n \n .projection-controls__select {\n width: 100%;\n }\n}\n","/**\n * Projection Orchestrator Styles\n *\n * Simplified projection UI: free-text input for type names,\n * per-type atom dropdowns inline with remove buttons.\n */\n\n.projection-orchestrator {\n background: #f8f9fa;\n border: 1px solid #dee2e6;\n border-radius: 0.25rem;\n padding: 1rem;\n margin-bottom: 1rem;\n}\n\n/* ── Add projection row ──────────────────────────────── */\n.projection-orchestrator__add {\n display: flex;\n align-items: center;\n gap: 0.5rem;\n margin-bottom: 0.75rem;\n}\n\n.projection-controls__input {\n flex: 1;\n padding: 0.375rem 0.5rem;\n font-size: 0.875rem;\n line-height: 1.5;\n border: 1px solid #ced4da;\n border-radius: 0.25rem;\n color: #495057;\n background-color: #fff;\n min-width: 0;\n}\n\n.projection-controls__input:focus {\n border-color: #80bdff;\n outline: 0;\n box-shadow: 0 0 0 0.15rem rgba(0, 123, 255, 0.25);\n}\n\n.projection-orchestrator__add-btn {\n padding: 0.375rem 0.75rem;\n font-size: 0.875rem;\n line-height: 1.5;\n color: #fff;\n background-color: #007bff;\n border: 1px solid #007bff;\n border-radius: 0.25rem;\n cursor: pointer;\n white-space: nowrap;\n}\n\n.projection-orchestrator__add-btn:hover:not(:disabled) {\n background-color: #0069d9;\n border-color: #0062cc;\n}\n\n.projection-orchestrator__add-btn:disabled {\n opacity: 0.65;\n cursor: not-allowed;\n}\n\n/* ── Error banner ────────────────────────────────────── */\n.projection-orchestrator__error {\n padding: 0.375rem 0.75rem;\n font-size: 0.8rem;\n color: #856404;\n background-color: #fff3cd;\n border: 1px solid #ffc107;\n border-radius: 0.25rem;\n margin-bottom: 0.75rem;\n}\n\n/* ── Projection rows (type tag + atom dropdown) ──────── */\n.projection-orchestrator__list {\n display: flex;\n flex-direction: column;\n gap: 0.5rem;\n}\n\n.projection-orchestrator__row {\n display: flex;\n align-items: center;\n gap: 0.5rem;\n}\n\n.projection-orchestrator__tag {\n display: inline-flex;\n align-items: center;\n gap: 0.25rem;\n padding: 0.2rem 0.5rem;\n font-size: 0.8rem;\n font-weight: 500;\n color: #495057;\n background-color: #e2e6ea;\n border: 1px solid #ced4da;\n border-radius: 1rem;\n white-space: nowrap;\n}\n\n.projection-orchestrator__remove-btn {\n background: none;\n border: none;\n padding: 0 0.15rem;\n font-size: 1rem;\n line-height: 1;\n color: #6c757d;\n cursor: pointer;\n}\n\n.projection-orchestrator__remove-btn:hover:not(:disabled) {\n color: #dc3545;\n}\n\n.projection-orchestrator__remove-btn:disabled {\n opacity: 0.5;\n cursor: not-allowed;\n}\n\n.projection-orchestrator__no-atoms {\n font-size: 0.8rem;\n color: #6c757d;\n font-style: italic;\n}\n\n/* ── Responsive adjustments ─────────────────────────── */\n@media (max-width: 576px) {\n .projection-orchestrator__add {\n flex-direction: column;\n align-items: stretch;\n }\n .projection-orchestrator__row {\n flex-direction: column;\n align-items: stretch;\n }\n}\n"],"mappings":"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","names":[]}
1
+ {"version":3,"sources":["../../src/spec-editor/ui/spec-editor.css","../../src/components/InstanceBuilder/InstanceBuilder.css","../../src/components/ErrorMessageModal/ErrorMessageModal.css","../../src/components/ReplInterface/ReplInterface.css","../../src/components/EvaluatorRepl/EvaluatorRepl.css","../../src/components/RelationHighlighter/RelationHighlighter.css","../../src/components/ProjectionControls/ProjectionControls.css","../../src/components/ProjectionControls/ProjectionOrchestrator.css"],"sourcesContent":["/*\n * Spytial spec editor styles — \"drafting instrument\".\n *\n * Light: warm paper, near-black ink, a single vermillion accent (the red\n * pencil). Dark preset: blue-black instrument panel with amber. Chrome text\n * (section titles, type labels, summaries, tabs) leans on the mono stack;\n * corners are sharp (2px); surfaces are flat (no background patterns).\n *\n * Every class is prefixed `spytial-ed-`. Every color / size / font reads from a\n * `--spytial-ed-*` custom property with a fallback equal to the `lightTheme`\n * preset in `theme.ts`, so the editor is fully styled with no theme prop. The\n * `theme` prop sets these variables inline on the editor root to override the\n * fallbacks; `darkTheme` is applied the same way. Zero Bootstrap.\n *\n * Density: the `spytial-ed--compact` root modifier tightens row padding/gap and\n * the base font; `comfortable` is the unmodified default below.\n *\n * Popups (add menu, overflow menu, autocomplete) are `position: fixed` with\n * coordinates supplied inline by `useAnchoredPopup`, so host containers with\n * `overflow` clipping (demo sidebars) cannot cut them off.\n */\n\n/* ─── Root / shared tokens ──────────────────────────────────────────── */\n\n.spytial-ed {\n font-family: var(\n --spytial-ed-font-family,\n 'Avenir Next', 'Avenir', 'Seravek', 'Segoe UI Variable', 'Segoe UI',\n 'Trebuchet MS', sans-serif\n );\n font-size: var(--spytial-ed-font-size, 14px);\n color: var(--spytial-ed-text, #221d14);\n /* derived spacing/radius shorthands so component rules stay terse */\n --spytial-ed-gap: var(--spytial-ed-spacing, 8px);\n --spytial-ed-radius-sm: var(--spytial-ed-radius, 2px);\n /* chrome (titles, tabs, badges, summaries) shares the mono stack */\n --spytial-ed-chrome-font: var(\n --spytial-ed-mono-font-family,\n ui-monospace, 'Cascadia Code', 'JetBrains Mono', 'SF Mono', Menlo,\n Consolas, 'Liberation Mono', monospace\n );\n}\n\n.spytial-ed *,\n.spytial-ed *::before,\n.spytial-ed *::after {\n box-sizing: border-box;\n}\n\n.spytial-ed--compact {\n font-size: calc(var(--spytial-ed-font-size, 14px) - 1px);\n --spytial-ed-gap: calc(var(--spytial-ed-spacing, 8px) * 0.625);\n}\n\n/* motion primitives (disabled under prefers-reduced-motion below) */\n@keyframes spytial-ed-pop {\n from {\n opacity: 0;\n transform: translateY(-3px) scale(0.99);\n }\n to {\n opacity: 1;\n transform: translateY(0) scale(1);\n }\n}\n\n@keyframes spytial-ed-unfold {\n from {\n opacity: 0;\n transform: translateY(-2px);\n }\n to {\n opacity: 1;\n transform: translateY(0);\n }\n}\n\n/* ─── Field layout (one field per row, tight) ───────────────────────── */\n\n.spytial-ed-fields {\n display: flex;\n flex-direction: column;\n gap: var(--spytial-ed-gap, 8px);\n width: 100%;\n}\n\n.spytial-ed-field {\n display: grid;\n grid-template-columns: minmax(7rem, 9rem) 1fr;\n align-items: start;\n gap: var(--spytial-ed-gap, 8px);\n}\n\n.spytial-ed--compact .spytial-ed-field {\n grid-template-columns: minmax(6rem, 8rem) 1fr;\n}\n\n.spytial-ed-field-label {\n font-family: var(--spytial-ed-chrome-font);\n font-size: 0.72em;\n font-weight: 600;\n text-transform: uppercase;\n letter-spacing: 0.09em;\n color: var(--spytial-ed-text-muted, #6e6553);\n padding-top: 0.55em;\n line-height: 1.3;\n cursor: default;\n user-select: none;\n}\n\n.spytial-ed-field-required {\n color: var(--spytial-ed-danger, #a32014);\n font-weight: 700;\n}\n\n.spytial-ed-field-control {\n display: flex;\n flex-direction: column;\n gap: 0.25em;\n min-width: 0;\n}\n\n/* ─── Inputs (text, number, combo) ──────────────────────────────────── */\n\n.spytial-ed-input {\n width: 100%;\n font-family: inherit;\n font-size: inherit;\n color: var(--spytial-ed-text, #221d14);\n background: var(--spytial-ed-surface, #faf8f2);\n border: 1px solid var(--spytial-ed-border, #d9d2c0);\n border-radius: var(--spytial-ed-radius-sm, 2px);\n padding: 0.4em 0.55em;\n line-height: 1.4;\n transition: border-color 0.15s ease, box-shadow 0.15s ease;\n}\n\n.spytial-ed--compact .spytial-ed-input {\n padding: 0.3em 0.45em;\n}\n\n.spytial-ed-input::placeholder {\n color: var(--spytial-ed-text-muted, #6e6553);\n opacity: 0.65;\n}\n\n.spytial-ed-input:focus,\n.spytial-ed-input:focus-visible {\n outline: none;\n border-color: var(--spytial-ed-accent, #b5431a);\n box-shadow: 0 0 0 2px\n color-mix(in srgb, var(--spytial-ed-accent, #b5431a) 20%, transparent);\n}\n\n.spytial-ed-input:disabled {\n background: var(--spytial-ed-surface-raised, #f1ecdf);\n color: var(--spytial-ed-text-muted, #6e6553);\n cursor: not-allowed;\n}\n\n.spytial-ed-input--number {\n width: 8rem;\n}\n\n.spytial-ed-input[aria-invalid='true'] {\n border-color: var(--spytial-ed-danger, #a32014);\n}\n\n/* ─── Color field ───────────────────────────────────────────────────── */\n\n.spytial-ed-color {\n display: flex;\n align-items: center;\n gap: var(--spytial-ed-gap, 8px);\n}\n\n.spytial-ed-color-swatch {\n inline-size: 2rem;\n block-size: 2rem;\n padding: 0;\n border: 1px solid var(--spytial-ed-border, #d9d2c0);\n border-radius: var(--spytial-ed-radius-sm, 2px);\n background: var(--spytial-ed-surface, #faf8f2);\n cursor: pointer;\n}\n\n.spytial-ed-color-swatch:focus-visible {\n outline: 2px solid var(--spytial-ed-accent, #b5431a);\n outline-offset: 1px;\n}\n\n.spytial-ed-color-text {\n width: 9rem;\n font-family: var(\n --spytial-ed-mono-font-family,\n ui-monospace, 'Cascadia Code', 'JetBrains Mono', 'SF Mono', Menlo,\n Consolas, 'Liberation Mono', monospace\n );\n}\n\n/* ─── Enum pills (segmented + multi) ────────────────────────────────── */\n\n.spytial-ed-pills {\n display: flex;\n flex-wrap: wrap;\n gap: 0.3em;\n}\n\n.spytial-ed-pill {\n font-family: var(--spytial-ed-chrome-font);\n font-size: 0.8em;\n color: var(--spytial-ed-text, #221d14);\n background: transparent;\n border: 1px solid var(--spytial-ed-border, #d9d2c0);\n border-radius: var(--spytial-ed-radius-sm, 2px);\n padding: 0.28em 0.65em;\n cursor: pointer;\n transition: background 0.15s ease, border-color 0.15s ease,\n color 0.15s ease, transform 0.1s ease;\n}\n\n.spytial-ed-pill:hover:not(:disabled) {\n border-color: var(--spytial-ed-accent, #b5431a);\n color: var(--spytial-ed-accent, #b5431a);\n}\n\n.spytial-ed-pill:active:not(:disabled) {\n transform: translateY(1px);\n}\n\n.spytial-ed-pill:focus-visible {\n outline: 2px solid var(--spytial-ed-accent, #b5431a);\n outline-offset: 1px;\n}\n\n.spytial-ed-pill--active {\n background: var(--spytial-ed-accent, #b5431a);\n border-color: var(--spytial-ed-accent, #b5431a);\n color: var(--spytial-ed-accent-text, #fdf6ec);\n font-weight: 600;\n}\n\n.spytial-ed-pill--active:hover:not(:disabled) {\n color: var(--spytial-ed-accent-text, #fdf6ec);\n}\n\n/* the \"should not hold\" pill goes danger-tinted when active */\n.spytial-ed-pill--negated {\n background: var(--spytial-ed-danger, #a32014);\n border-color: var(--spytial-ed-danger, #a32014);\n}\n\n.spytial-ed-pill--negated:hover:not(:disabled) {\n border-color: var(--spytial-ed-danger, #a32014);\n}\n\n.spytial-ed-pill:disabled {\n opacity: 0.55;\n cursor: not-allowed;\n}\n\n/* ─── Boolean switch ────────────────────────────────────────────────── */\n\n.spytial-ed-switch {\n position: relative;\n inline-size: 2.4rem;\n block-size: 1.35rem;\n padding: 0;\n border: 1px solid var(--spytial-ed-border, #d9d2c0);\n border-radius: 999px;\n background: var(--spytial-ed-surface-raised, #f1ecdf);\n cursor: pointer;\n transition: background 0.15s ease, border-color 0.15s ease;\n}\n\n.spytial-ed-switch-thumb {\n position: absolute;\n top: 50%;\n left: 0.18rem;\n transform: translateY(-50%);\n inline-size: 0.95rem;\n block-size: 0.95rem;\n border-radius: 50%;\n background: var(--spytial-ed-surface, #faf8f2);\n box-shadow: 0 1px 2px rgba(0, 0, 0, 0.25);\n transition: left 0.15s ease;\n}\n\n.spytial-ed-switch--on {\n background: var(--spytial-ed-accent, #b5431a);\n border-color: var(--spytial-ed-accent, #b5431a);\n}\n\n.spytial-ed-switch--on .spytial-ed-switch-thumb {\n left: calc(100% - 1.13rem);\n}\n\n.spytial-ed-switch:focus-visible {\n outline: 2px solid var(--spytial-ed-accent, #b5431a);\n outline-offset: 2px;\n}\n\n.spytial-ed-switch:disabled {\n opacity: 0.55;\n cursor: not-allowed;\n}\n\n/* ─── Selector field (mirror overlay) ───────────────────────────────── */\n\n.spytial-ed-selector {\n display: flex;\n flex-direction: column;\n gap: 0.25em;\n width: 100%;\n}\n\n.spytial-ed-selector-input-wrap {\n position: relative;\n width: 100%;\n /* The field's surface fill lives HERE (behind the highlight mirror), not on\n the textarea: the textarea sits on top with a transparent background so the\n mirror's syntax-highlighted text shows through. An opaque textarea would\n paint over the mirror and the field would look empty (all-surface). */\n background: var(--spytial-ed-surface, #faf8f2);\n border-radius: var(--spytial-ed-radius-sm, 2px);\n}\n\n/*\n * The textarea and the mirror MUST share identical box metrics for the overlay\n * to line up: same font, size, padding, border, line-height, letter-spacing and\n * wrapping. Both wrap on words and break long tokens, so multi-line wrapping is\n * mirrored exactly.\n */\n.spytial-ed-selector-textarea,\n.spytial-ed-selector-mirror {\n margin: 0;\n font-family: var(\n --spytial-ed-mono-font-family,\n ui-monospace, 'Cascadia Code', 'JetBrains Mono', 'SF Mono', Menlo,\n Consolas, 'Liberation Mono', monospace\n );\n font-size: 0.95em;\n line-height: 1.5;\n letter-spacing: normal;\n word-spacing: normal;\n /* Normalize text shaping: browsers apply ligatures/kerning differently in\n <textarea> vs <pre> (and the mono stack includes ligature fonts), which\n would drift the overlay out from under the caret. Force both off. */\n font-variant-ligatures: none;\n font-feature-settings: normal;\n font-kerning: none;\n hyphens: none;\n text-rendering: auto;\n tab-size: 2;\n padding: 0.4em 0.55em;\n border: 1px solid transparent;\n border-radius: var(--spytial-ed-radius-sm, 2px);\n white-space: pre-wrap;\n word-break: break-word;\n overflow-wrap: break-word;\n}\n\n.spytial-ed--compact .spytial-ed-selector-textarea,\n.spytial-ed--compact .spytial-ed-selector-mirror {\n padding: 0.3em 0.45em;\n}\n\n/* Reserve identical room for the ✨ button on BOTH elements, so the text\n never runs under the button and wrapping stays mirrored. MUST come after\n the compact rule above: that one sets the `padding` shorthand at equal\n specificity and would silently reset padding-right (source order wins). */\n.spytial-ed-selector-input-wrap--with-synth .spytial-ed-selector-textarea,\n.spytial-ed-selector-input-wrap--with-synth .spytial-ed-selector-mirror {\n padding-right: 2.3em;\n}\n\n/* The mirror sits behind; it is purely presentational. */\n.spytial-ed-selector-mirror {\n position: absolute;\n inset: 0;\n z-index: 0;\n pointer-events: none;\n overflow: hidden;\n color: var(--spytial-ed-text, #221d14);\n background: transparent;\n /* reserve room for the ✨ button so wrapping matches the textarea */\n}\n\n/* The textarea sits on top with transparent text but a visible caret. */\n.spytial-ed-selector-textarea {\n position: relative;\n z-index: 1;\n display: block;\n width: 100%;\n min-height: 2.2em;\n resize: none;\n overflow: hidden; /* height is driven by JS auto-grow */\n /* transparent so the highlight mirror behind shows through; the field fill is\n on `.spytial-ed-selector-input-wrap` (matches the code-view overlay). */\n background: transparent;\n border-color: var(--spytial-ed-border, #d9d2c0);\n color: transparent;\n caret-color: var(--spytial-ed-accent, #b5431a);\n transition: border-color 0.15s ease, box-shadow 0.15s ease;\n}\n\n.spytial-ed-selector-textarea::placeholder {\n color: var(--spytial-ed-text-muted, #6e6553);\n opacity: 0.65;\n}\n\n.spytial-ed-selector-textarea::selection {\n /* keep selection visible even though text is transparent */\n background: color-mix(\n in srgb,\n var(--spytial-ed-accent, #b5431a) 26%,\n transparent\n );\n}\n\n.spytial-ed-selector-textarea:focus,\n.spytial-ed-selector-textarea:focus-visible {\n outline: none;\n border-color: var(--spytial-ed-accent, #b5431a);\n box-shadow: 0 0 0 2px\n color-mix(in srgb, var(--spytial-ed-accent, #b5431a) 20%, transparent);\n}\n\n.spytial-ed-selector-textarea:disabled {\n cursor: not-allowed;\n}\n\n/* Disabled fill goes on the wrapper (the textarea is transparent), so the\n highlight mirror stays visible. Mirrors the code view's :has pattern. */\n.spytial-ed-selector-input-wrap:has(.spytial-ed-selector-textarea:disabled) {\n background: var(--spytial-ed-surface-raised, #f1ecdf);\n}\n\n/* highlighting disabled (escape hatch): the textarea shows its own text */\n.spytial-ed-selector-textarea--plain {\n color: var(--spytial-ed-text, #221d14);\n}\n\n/* severity borders on the wrapper's textarea */\n.spytial-ed-selector--error .spytial-ed-selector-textarea {\n border-color: var(--spytial-ed-danger, #a32014);\n box-shadow: inset 0 -2px 0 var(--spytial-ed-danger, #a32014);\n}\n\n.spytial-ed-selector--warning .spytial-ed-selector-textarea {\n border-color: var(--spytial-ed-warning, #8a6200);\n box-shadow: inset 0 -2px 0 var(--spytial-ed-warning, #8a6200);\n}\n\n/* ─── Syntax token colors (used by mirror + synth preview) ──────────── */\n\n.spytial-ed-syn-keyword {\n color: var(--spytial-ed-syn-keyword, #6d28a8);\n font-weight: 600;\n}\n.spytial-ed-syn-type {\n color: var(--spytial-ed-syn-type, #0e6b6b);\n}\n.spytial-ed-syn-relation,\n.spytial-ed-syn-identifier {\n color: var(--spytial-ed-syn-relation, #1f4f9e);\n}\n.spytial-ed-syn-operator {\n color: var(--spytial-ed-syn-operator, #b5431a);\n}\n.spytial-ed-syn-string {\n color: var(--spytial-ed-syn-string, #7a5901);\n}\n.spytial-ed-syn-number {\n color: var(--spytial-ed-syn-type, #0e6b6b);\n}\n.spytial-ed-syn-comment {\n color: var(--spytial-ed-syn-comment, #8a8170);\n font-style: italic;\n}\n\n/* ─── ✨ synthesis button ───────────────────────────────────────────── */\n\n.spytial-ed-selector-synth-btn {\n position: absolute;\n top: 0.25em;\n right: 0.25em;\n z-index: 2;\n inline-size: 1.7em;\n block-size: 1.7em;\n display: inline-flex;\n align-items: center;\n justify-content: center;\n padding: 0;\n font-size: 0.95em;\n line-height: 1;\n background: var(--spytial-ed-surface-raised, #f1ecdf);\n border: 1px solid var(--spytial-ed-border, #d9d2c0);\n border-radius: var(--spytial-ed-radius-sm, 2px);\n cursor: pointer;\n transition: border-color 0.15s ease, background 0.15s ease,\n transform 0.12s ease;\n}\n\n.spytial-ed-selector-synth-btn:hover:not(:disabled) {\n border-color: var(--spytial-ed-accent, #b5431a);\n transform: rotate(-8deg);\n}\n\n.spytial-ed-selector-synth-btn:focus-visible {\n outline: 2px solid var(--spytial-ed-accent, #b5431a);\n outline-offset: 1px;\n}\n\n.spytial-ed-selector-synth-btn:disabled {\n opacity: 0.5;\n cursor: not-allowed;\n}\n\n/* ─── Autocomplete listbox (viewport-fixed, see useAnchoredPopup) ───── */\n\n.spytial-ed-autocomplete {\n position: fixed;\n z-index: 1000;\n margin: 0;\n padding: 0.2em;\n list-style: none;\n overflow-y: auto;\n background: var(--spytial-ed-surface, #faf8f2);\n border: 1px solid var(--spytial-ed-border, #d9d2c0);\n border-radius: var(--spytial-ed-radius, 2px);\n box-shadow: 0 1px 0 color-mix(in srgb, var(--spytial-ed-text, #221d14) 8%, transparent),\n 0 8px 24px color-mix(in srgb, var(--spytial-ed-text, #221d14) 18%, transparent);\n animation: spytial-ed-pop 0.12s ease-out;\n}\n\n.spytial-ed-autocomplete-item {\n display: flex;\n align-items: center;\n gap: 0.5em;\n padding: 0.3em 0.5em;\n border-radius: var(--spytial-ed-radius-sm, 2px);\n cursor: pointer;\n font-size: 0.9em;\n}\n\n.spytial-ed-autocomplete-item--active {\n background: color-mix(\n in srgb,\n var(--spytial-ed-accent, #b5431a) 14%,\n transparent\n );\n}\n\n.spytial-ed-autocomplete-kind {\n inline-size: 0.6em;\n block-size: 0.6em;\n border-radius: 1px;\n flex: 0 0 auto;\n background: var(--spytial-ed-text-muted, #6e6553);\n}\n.spytial-ed-kind-type {\n background: var(--spytial-ed-syn-type, #0e6b6b);\n}\n.spytial-ed-kind-relation {\n background: var(--spytial-ed-syn-relation, #1f4f9e);\n}\n.spytial-ed-kind-atom {\n background: var(--spytial-ed-syn-string, #7a5901);\n}\n.spytial-ed-kind-keyword {\n background: var(--spytial-ed-syn-keyword, #6d28a8);\n}\n.spytial-ed-kind-snippet {\n background: var(--spytial-ed-success, #2f6c43);\n}\n\n.spytial-ed-autocomplete-label {\n font-family: var(\n --spytial-ed-mono-font-family,\n ui-monospace, 'Cascadia Code', 'JetBrains Mono', 'SF Mono', Menlo,\n Consolas, 'Liberation Mono', monospace\n );\n color: var(--spytial-ed-text, #221d14);\n}\n\n.spytial-ed-autocomplete-detail {\n margin-left: auto;\n font-size: 0.85em;\n color: var(--spytial-ed-text-muted, #6e6553);\n white-space: nowrap;\n}\n\n/* ─── Synthesis popover ─────────────────────────────────────────────── */\n\n.spytial-ed-synth-popover {\n margin-top: 0.3em;\n padding: var(--spytial-ed-gap, 8px);\n background: var(--spytial-ed-surface-raised, #f1ecdf);\n border: 1px solid var(--spytial-ed-border, #d9d2c0);\n border-left: 3px solid var(--spytial-ed-accent, #b5431a);\n border-radius: var(--spytial-ed-radius, 2px);\n display: flex;\n flex-direction: column;\n gap: var(--spytial-ed-gap, 8px);\n animation: spytial-ed-unfold 0.14s ease-out;\n}\n\n.spytial-ed-synth-row {\n display: flex;\n gap: 0.4em;\n}\n\n.spytial-ed-synth-input {\n flex: 1 1 auto;\n min-width: 0;\n font-family: inherit;\n font-size: 0.9em;\n color: var(--spytial-ed-text, #221d14);\n background: var(--spytial-ed-surface, #faf8f2);\n border: 1px solid var(--spytial-ed-border, #d9d2c0);\n border-radius: var(--spytial-ed-radius-sm, 2px);\n padding: 0.4em 0.55em;\n}\n\n.spytial-ed-synth-input:focus-visible {\n outline: none;\n border-color: var(--spytial-ed-accent, #b5431a);\n box-shadow: 0 0 0 2px\n color-mix(in srgb, var(--spytial-ed-accent, #b5431a) 20%, transparent);\n}\n\n.spytial-ed-synth-generate,\n.spytial-ed-synth-accept {\n font-family: var(--spytial-ed-chrome-font);\n font-size: 0.82em;\n font-weight: 600;\n color: var(--spytial-ed-accent-text, #fdf6ec);\n background: var(--spytial-ed-accent, #b5431a);\n border: 1px solid var(--spytial-ed-accent, #b5431a);\n border-radius: var(--spytial-ed-radius-sm, 2px);\n padding: 0.4em 0.8em;\n cursor: pointer;\n white-space: nowrap;\n transition: filter 0.15s ease, transform 0.1s ease;\n}\n\n.spytial-ed-synth-generate:hover:not(:disabled),\n.spytial-ed-synth-accept:hover:not(:disabled) {\n filter: brightness(1.08);\n}\n\n.spytial-ed-synth-generate:active:not(:disabled),\n.spytial-ed-synth-accept:active:not(:disabled) {\n transform: translateY(1px);\n}\n\n.spytial-ed-synth-generate:disabled {\n opacity: 0.5;\n cursor: not-allowed;\n}\n\n.spytial-ed-synth-dismiss {\n font-family: var(--spytial-ed-chrome-font);\n font-size: 0.82em;\n color: var(--spytial-ed-text, #221d14);\n background: transparent;\n border: 1px solid var(--spytial-ed-border, #d9d2c0);\n border-radius: var(--spytial-ed-radius-sm, 2px);\n padding: 0.4em 0.8em;\n cursor: pointer;\n}\n\n.spytial-ed-synth-generate:focus-visible,\n.spytial-ed-synth-accept:focus-visible,\n.spytial-ed-synth-dismiss:focus-visible {\n outline: 2px solid var(--spytial-ed-accent, #b5431a);\n outline-offset: 1px;\n}\n\n.spytial-ed-synth-error {\n color: var(--spytial-ed-danger, #a32014);\n font-size: 0.85em;\n}\n\n.spytial-ed-synth-result {\n display: flex;\n flex-direction: column;\n gap: 0.4em;\n}\n\n.spytial-ed-synth-preview {\n margin: 0;\n padding: 0.4em 0.55em;\n font-family: var(\n --spytial-ed-mono-font-family,\n ui-monospace, 'Cascadia Code', 'JetBrains Mono', 'SF Mono', Menlo,\n Consolas, 'Liberation Mono', monospace\n );\n font-size: 0.9em;\n line-height: 1.5;\n background: var(--spytial-ed-surface, #faf8f2);\n border: 1px solid var(--spytial-ed-border, #d9d2c0);\n border-radius: var(--spytial-ed-radius-sm, 2px);\n white-space: pre-wrap;\n word-break: break-word;\n color: var(--spytial-ed-text, #221d14);\n}\n\n.spytial-ed-synth-explanation {\n margin: 0;\n font-size: 0.85em;\n color: var(--spytial-ed-text-muted, #6e6553);\n}\n\n.spytial-ed-synth-actions {\n display: flex;\n gap: 0.4em;\n}\n\n/* ─── Diagnostics ───────────────────────────────────────────────────── */\n\n.spytial-ed-diagnostics {\n list-style: none;\n margin: 0;\n padding: 0;\n display: flex;\n flex-direction: column;\n gap: 0.1em;\n}\n\n.spytial-ed-diagnostic {\n display: flex;\n align-items: baseline;\n gap: 0.4em;\n font-size: 0.8em;\n line-height: 1.35;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n}\n\n.spytial-ed-diagnostic-dot {\n flex: 0 0 auto;\n inline-size: 0.5em;\n block-size: 0.5em;\n border-radius: 50%;\n align-self: center;\n}\n\n.spytial-ed-diagnostic-msg {\n min-width: 0;\n overflow: hidden;\n text-overflow: ellipsis;\n}\n\n.spytial-ed-diagnostic--error {\n color: var(--spytial-ed-danger, #a32014);\n}\n.spytial-ed-diagnostic--error .spytial-ed-diagnostic-dot {\n background: var(--spytial-ed-danger, #a32014);\n}\n.spytial-ed-diagnostic--warning {\n color: var(--spytial-ed-warning, #8a6200);\n}\n.spytial-ed-diagnostic--warning .spytial-ed-diagnostic-dot {\n background: var(--spytial-ed-warning, #8a6200);\n}\n.spytial-ed-diagnostic--info {\n color: var(--spytial-ed-text-muted, #6e6553);\n}\n.spytial-ed-diagnostic--info .spytial-ed-diagnostic-dot {\n background: var(--spytial-ed-text-muted, #6e6553);\n}\n\n/* small standalone diagnostic badge/dot, for collapsed builder rows */\n.spytial-ed-diagnostic-badge {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n min-inline-size: 0.9em;\n block-size: 0.9em;\n padding: 0 0.2em;\n margin-inline-start: 0.4em;\n border-radius: 999px;\n font-size: 0.7em;\n font-weight: 700;\n line-height: 1;\n color: #ffffff;\n background: var(--spytial-ed-danger, #a32014);\n}\n.spytial-ed-diagnostic-badge--warning {\n background: var(--spytial-ed-warning, #8a6200);\n}\n.spytial-ed-diagnostic-badge--info {\n background: var(--spytial-ed-text-muted, #6e6553);\n}\n\n/* ════════════════════════════════════════════════════════════════════════\n Views (SpecEditor toolbar, BuilderView rows/menus, CodeView)\n ════════════════════════════════════════════════════════════════════════ */\n\n/* ─── SpecEditor root chrome ────────────────────────────────────────────── */\n\n.spytial-ed {\n display: block;\n background: var(--spytial-ed-surface, #faf8f2);\n border: 1px solid var(--spytial-ed-border, #d9d2c0);\n border-radius: var(--spytial-ed-radius, 2px);\n /* NOTE: no `overflow: hidden` here — it clipped the menus before they were\n made viewport-fixed, and would still clip the ✨ popover. */\n}\n\n.spytial-ed-toolbar {\n display: flex;\n align-items: center;\n justify-content: space-between;\n gap: var(--spytial-ed-gap, 8px);\n padding: calc(var(--spytial-ed-gap, 8px) * 0.75) var(--spytial-ed-gap, 8px);\n background: var(--spytial-ed-surface-raised, #f1ecdf);\n border-bottom: 1px solid var(--spytial-ed-border, #d9d2c0);\n}\n\n.spytial-ed-viewtoggle {\n display: inline-flex;\n gap: var(--spytial-ed-gap, 8px);\n}\n\n.spytial-ed-viewtoggle-btn {\n position: relative;\n display: inline-flex;\n align-items: center;\n font-family: var(--spytial-ed-chrome-font);\n font-size: 0.78em;\n font-weight: 600;\n text-transform: uppercase;\n letter-spacing: 0.09em;\n color: var(--spytial-ed-text-muted, #6e6553);\n background: transparent;\n border: none;\n padding: 0.3em 0.15em;\n cursor: pointer;\n transition: color 0.15s ease;\n}\n\n/* underline-tab: a hairline that draws in on activation */\n.spytial-ed-viewtoggle-btn::after {\n content: '';\n position: absolute;\n left: 0;\n right: 100%;\n bottom: -2px;\n height: 2px;\n background: var(--spytial-ed-accent, #b5431a);\n transition: right 0.18s ease;\n}\n\n.spytial-ed-viewtoggle-btn:hover:not(:disabled) {\n color: var(--spytial-ed-text, #221d14);\n}\n\n.spytial-ed-viewtoggle-btn--active {\n color: var(--spytial-ed-accent, #b5431a);\n}\n\n.spytial-ed-viewtoggle-btn--active::after {\n right: 0;\n}\n\n.spytial-ed-viewtoggle-btn:focus-visible {\n outline: 2px solid var(--spytial-ed-accent, #b5431a);\n outline-offset: 2px;\n}\n\n.spytial-ed-viewtoggle-btn:disabled {\n opacity: 0.55;\n cursor: not-allowed;\n}\n\n.spytial-ed-toolbar-actions {\n display: inline-flex;\n align-items: center;\n gap: var(--spytial-ed-gap, 8px);\n}\n\n.spytial-ed-history {\n display: inline-flex;\n gap: 4px;\n}\n\n/* ─── Layout suggestion (HOOK 3) ────────────────────────────────────────── */\n\n.spytial-ed-suggest-btn {\n display: inline-flex;\n align-items: center;\n gap: 0.35em;\n font-family: var(--spytial-ed-chrome-font);\n font-size: 0.78em;\n font-weight: 600;\n text-transform: uppercase;\n letter-spacing: 0.09em;\n color: var(--spytial-ed-accent, #b5431a);\n background: transparent;\n border: 1px solid var(--spytial-ed-accent, #b5431a);\n border-radius: var(--spytial-ed-radius-sm, 2px);\n padding: 0.3em 0.7em;\n cursor: pointer;\n white-space: nowrap;\n transition: background 0.15s ease, color 0.15s ease;\n}\n\n.spytial-ed-suggest-btn:hover:not(:disabled) {\n color: var(--spytial-ed-accent-text, #fdf6ec);\n background: var(--spytial-ed-accent, #b5431a);\n}\n\n.spytial-ed-suggest-btn:focus-visible {\n outline: 2px solid var(--spytial-ed-accent, #b5431a);\n outline-offset: 2px;\n}\n\n.spytial-ed-suggest-btn:disabled {\n opacity: 0.5;\n cursor: not-allowed;\n}\n\n.spytial-ed-suggest-error {\n margin: 0;\n padding: calc(var(--spytial-ed-gap, 8px) * 0.75) var(--spytial-ed-gap, 8px);\n font-size: 0.85em;\n color: var(--spytial-ed-danger, #a32014);\n background: color-mix(\n in srgb,\n var(--spytial-ed-danger, #a32014) 8%,\n transparent\n );\n border-bottom: 1px solid var(--spytial-ed-border, #d9d2c0);\n}\n\n.spytial-ed-suggestions {\n padding: calc(var(--spytial-ed-gap, 8px) * 0.75) var(--spytial-ed-gap, 8px);\n background: var(--spytial-ed-surface-raised, #f1ecdf);\n border-bottom: 1px solid var(--spytial-ed-border, #d9d2c0);\n border-left: 3px solid var(--spytial-ed-accent, #b5431a);\n animation: spytial-ed-unfold 0.14s ease-out;\n}\n\n.spytial-ed-suggestions-head {\n display: flex;\n align-items: center;\n justify-content: space-between;\n gap: var(--spytial-ed-gap, 8px);\n}\n\n.spytial-ed-suggestions-title {\n font-family: var(--spytial-ed-chrome-font);\n font-size: 0.74em;\n font-weight: 600;\n text-transform: uppercase;\n letter-spacing: 0.09em;\n color: var(--spytial-ed-text-muted, #6e6553);\n}\n\n.spytial-ed-suggestions-dismiss {\n font: inherit;\n font-size: 1.05em;\n line-height: 1;\n color: var(--spytial-ed-text-muted, #6e6553);\n background: transparent;\n border: none;\n padding: 0 0.2em;\n cursor: pointer;\n}\n\n.spytial-ed-suggestions-dismiss:hover {\n color: var(--spytial-ed-accent, #b5431a);\n}\n\n.spytial-ed-suggestions-dismiss:focus-visible {\n outline: 2px solid var(--spytial-ed-accent, #b5431a);\n outline-offset: 1px;\n}\n\n.spytial-ed-suggestions-list,\n.spytial-ed-suggestions-notes {\n list-style: none;\n margin: calc(var(--spytial-ed-gap, 8px) * 0.5) 0 0;\n padding: 0;\n display: flex;\n flex-direction: column;\n gap: calc(var(--spytial-ed-gap, 8px) * 0.5);\n}\n\n.spytial-ed-suggestions-notes {\n font-size: 0.82em;\n color: var(--spytial-ed-text-muted, #6e6553);\n border-top: 1px solid var(--spytial-ed-border, #d9d2c0);\n padding-top: calc(var(--spytial-ed-gap, 8px) * 0.5);\n}\n\n.spytial-ed-suggestion--omitted {\n opacity: 0.62;\n}\n\n.spytial-ed-suggestion-head {\n display: flex;\n align-items: baseline;\n flex-wrap: wrap;\n gap: 0.4em;\n}\n\n.spytial-ed-suggestion-text {\n flex: 1 1 12em;\n font-size: 0.88em;\n color: var(--spytial-ed-text, #221d14);\n}\n\n.spytial-ed-suggestion-id {\n display: block;\n margin-top: 0.15em;\n font-family: var(\n --spytial-ed-mono-font-family,\n ui-monospace, 'Cascadia Code', 'JetBrains Mono', 'SF Mono', Menlo,\n Consolas, 'Liberation Mono', monospace\n );\n font-size: 0.74em;\n color: var(--spytial-ed-text-muted, #6e6553);\n word-break: break-all;\n}\n\n.spytial-ed-suggestion-chip {\n font-family: var(--spytial-ed-chrome-font);\n font-size: 0.66em;\n font-weight: 600;\n text-transform: uppercase;\n letter-spacing: 0.07em;\n border: 1px solid currentColor;\n border-radius: var(--spytial-ed-radius-sm, 2px);\n padding: 0.15em 0.4em;\n white-space: nowrap;\n color: var(--spytial-ed-text-muted, #6e6553);\n}\n\n.spytial-ed-suggestion-chip--high,\n.spytial-ed-suggestion-chip--applied {\n color: var(--spytial-ed-success, #2f6c43);\n}\n\n.spytial-ed-suggestion-chip--medium,\n.spytial-ed-suggestion-chip--weakened {\n color: var(--spytial-ed-warning, #8a6200);\n}\n\n.spytial-ed-suggestion-chip--omitted {\n color: var(--spytial-ed-danger, #a32014);\n}\n\n.spytial-ed-history-btn {\n font: inherit;\n font-size: 1.05em;\n line-height: 1;\n color: var(--spytial-ed-text, #221d14);\n background: transparent;\n border: 1px solid var(--spytial-ed-border, #d9d2c0);\n border-radius: var(--spytial-ed-radius-sm, 2px);\n padding: 0.2em 0.45em;\n cursor: pointer;\n transition: border-color 0.15s ease, color 0.15s ease;\n}\n\n.spytial-ed-history-btn:hover:not(:disabled) {\n border-color: var(--spytial-ed-accent, #b5431a);\n color: var(--spytial-ed-accent, #b5431a);\n}\n\n.spytial-ed-history-btn:disabled {\n opacity: 0.4;\n cursor: not-allowed;\n}\n\n.spytial-ed-body {\n padding: var(--spytial-ed-gap, 8px);\n}\n\n/* ─── BuilderView ───────────────────────────────────────────────────────── */\n\n.spytial-ed-builder {\n display: flex;\n flex-direction: column;\n gap: calc(var(--spytial-ed-gap, 8px) * 1.25);\n}\n\n.spytial-ed-section-head {\n display: flex;\n align-items: center;\n justify-content: space-between;\n margin-bottom: calc(var(--spytial-ed-gap, 8px) * 0.5);\n}\n\n.spytial-ed-section-title {\n margin: 0;\n font-family: var(--spytial-ed-chrome-font);\n font-size: 0.72em;\n font-weight: 700;\n text-transform: uppercase;\n letter-spacing: 0.14em;\n color: var(--spytial-ed-text-muted, #6e6553);\n}\n\n.spytial-ed-rows {\n list-style: none;\n margin: 0;\n padding: 0;\n display: flex;\n flex-direction: column;\n gap: 4px;\n}\n\n.spytial-ed-row {\n border: 1px solid var(--spytial-ed-border, #d9d2c0);\n border-radius: var(--spytial-ed-radius, 2px);\n background: var(--spytial-ed-surface, #faf8f2);\n transition: border-color 0.15s ease;\n}\n\n.spytial-ed-row:hover {\n border-color: color-mix(\n in srgb,\n var(--spytial-ed-text-muted, #6e6553) 55%,\n var(--spytial-ed-border, #d9d2c0)\n );\n}\n\n.spytial-ed-row--expanded {\n border-color: var(--spytial-ed-accent, #b5431a);\n}\n\n.spytial-ed-row--error {\n border-left: 3px solid var(--spytial-ed-danger, #a32014);\n}\n.spytial-ed-row--warning {\n border-left: 3px solid var(--spytial-ed-warning, #8a6200);\n}\n\n.spytial-ed-row-main {\n display: flex;\n align-items: center;\n gap: 4px;\n}\n\n.spytial-ed-row-toggle {\n flex: 1 1 auto;\n display: flex;\n align-items: center;\n gap: 0.55em;\n min-width: 0;\n font: inherit;\n text-align: left;\n color: inherit;\n background: transparent;\n border: none;\n cursor: pointer;\n padding: calc(var(--spytial-ed-gap, 8px) * 0.55) var(--spytial-ed-gap, 8px);\n}\n\n.spytial-ed--compact .spytial-ed-row-toggle {\n padding: calc(var(--spytial-ed-gap, 8px) * 0.4)\n calc(var(--spytial-ed-gap, 8px) * 0.75);\n}\n\n/* kind badge as an inked stamp: outlined, mono, square */\n.spytial-ed-badge {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n inline-size: 1.5em;\n block-size: 1.5em;\n flex: 0 0 auto;\n font-family: var(--spytial-ed-chrome-font);\n font-size: 0.72em;\n font-weight: 700;\n border-radius: var(--spytial-ed-radius-sm, 2px);\n background: transparent;\n}\n\n.spytial-ed-badge--constraint {\n color: var(--spytial-ed-accent, #b5431a);\n border: 1px solid var(--spytial-ed-accent, #b5431a);\n}\n.spytial-ed-badge--directive {\n color: var(--spytial-ed-syn-type, #0e6b6b);\n border: 1px solid var(--spytial-ed-syn-type, #0e6b6b);\n}\n.spytial-ed-badge--unknown {\n color: var(--spytial-ed-text-muted, #6e6553);\n border: 1px dashed var(--spytial-ed-text-muted, #6e6553);\n}\n\n.spytial-ed-row-type {\n font-family: var(--spytial-ed-chrome-font);\n font-size: 0.88em;\n font-weight: 600;\n flex: 0 0 auto;\n}\n\n.spytial-ed-row-negated {\n color: var(--spytial-ed-danger, #a32014);\n font-weight: 700;\n flex: 0 0 auto;\n}\n\n.spytial-ed-row-summary {\n flex: 1 1 auto;\n min-width: 0;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n font-size: 0.85em;\n color: var(--spytial-ed-text-muted, #6e6553);\n font-family: var(--spytial-ed-mono-font-family, ui-monospace, monospace);\n}\n\n.spytial-ed-row-summary--muted {\n font-style: italic;\n font-family: inherit;\n}\n\n.spytial-ed-row-dot {\n flex: 0 0 auto;\n inline-size: 0.55em;\n block-size: 0.55em;\n border-radius: 50%;\n background: var(--spytial-ed-text-muted, #6e6553);\n}\n.spytial-ed-row-dot--error {\n background: var(--spytial-ed-danger, #a32014);\n}\n.spytial-ed-row-dot--warning {\n background: var(--spytial-ed-warning, #8a6200);\n}\n\n.spytial-ed-row-panel {\n padding: var(--spytial-ed-gap, 8px);\n border-top: 1px solid var(--spytial-ed-border, #d9d2c0);\n background: var(--spytial-ed-surface-raised, #f1ecdf);\n display: flex;\n flex-direction: column;\n gap: var(--spytial-ed-gap, 8px);\n animation: spytial-ed-unfold 0.14s ease-out;\n}\n\n.spytial-ed-row--unknown {\n background: var(--spytial-ed-surface-raised, #f1ecdf);\n}\n.spytial-ed-row--unknown .spytial-ed-row-main {\n padding: calc(var(--spytial-ed-gap, 8px) * 0.55) var(--spytial-ed-gap, 8px);\n gap: 0.55em;\n}\n\n.spytial-ed-builder-empty {\n margin: 0;\n font-size: 0.9em;\n color: var(--spytial-ed-text-muted, #6e6553);\n font-style: italic;\n}\n\n/* ─── overflow menu ─────────────────────────────────────────────────────── */\n\n.spytial-ed-overflow {\n position: relative;\n flex: 0 0 auto;\n margin-inline-end: 4px;\n}\n\n.spytial-ed-overflow-btn {\n font: inherit;\n font-size: 1.1em;\n line-height: 1;\n color: var(--spytial-ed-text-muted, #6e6553);\n background: transparent;\n border: none;\n border-radius: var(--spytial-ed-radius-sm, 2px);\n padding: 0.1em 0.4em;\n cursor: pointer;\n}\n.spytial-ed-overflow-btn:hover {\n background: var(--spytial-ed-border, #d9d2c0);\n}\n.spytial-ed-overflow-btn:disabled {\n opacity: 0.4;\n cursor: not-allowed;\n}\n\n/*\n * Both menus are viewport-fixed: `useAnchoredPopup` supplies top/bottom +\n * left/right + maxHeight inline, so host overflow clipping can't hide them\n * (the original absolute positioning rendered the add menu below short\n * sidebars, invisible).\n */\n.spytial-ed-overflow-menu,\n.spytial-ed-add-menu {\n position: fixed;\n z-index: 1000;\n min-inline-size: 10rem;\n background: var(--spytial-ed-surface, #faf8f2);\n border: 1px solid var(--spytial-ed-border, #d9d2c0);\n border-radius: var(--spytial-ed-radius, 2px);\n box-shadow: 0 1px 0 color-mix(in srgb, var(--spytial-ed-text, #221d14) 8%, transparent),\n 0 8px 24px color-mix(in srgb, var(--spytial-ed-text, #221d14) 18%, transparent);\n padding: 4px;\n animation: spytial-ed-pop 0.12s ease-out;\n}\n\n.spytial-ed-overflow-menu {\n list-style: none;\n margin: 0;\n overflow-y: auto;\n}\n\n.spytial-ed-overflow-item,\n.spytial-ed-add-item {\n display: block;\n inline-size: 100%;\n font: inherit;\n font-size: 0.88em;\n text-align: left;\n color: var(--spytial-ed-text, #221d14);\n background: transparent;\n border: none;\n border-radius: var(--spytial-ed-radius-sm, 2px);\n padding: 0.4em 0.6em;\n cursor: pointer;\n}\n.spytial-ed-overflow-item:hover:not(:disabled),\n.spytial-ed-add-item:hover {\n background: var(--spytial-ed-surface-raised, #f1ecdf);\n}\n.spytial-ed-overflow-item:disabled {\n opacity: 0.4;\n cursor: not-allowed;\n}\n.spytial-ed-overflow-item--danger {\n color: var(--spytial-ed-danger, #a32014);\n}\n\n/* ─── add menu (searchable) ─────────────────────────────────────────────── */\n\n.spytial-ed-add {\n position: relative;\n}\n\n.spytial-ed-add-btn {\n font-family: var(--spytial-ed-chrome-font);\n font-size: 0.78em;\n font-weight: 600;\n color: var(--spytial-ed-accent, #b5431a);\n background: transparent;\n border: 1px solid var(--spytial-ed-accent, #b5431a);\n border-radius: var(--spytial-ed-radius-sm, 2px);\n padding: 0.28em 0.6em;\n cursor: pointer;\n transition: background 0.15s ease, color 0.15s ease, transform 0.1s ease;\n}\n.spytial-ed-add-btn:hover:not(:disabled) {\n background: var(--spytial-ed-accent, #b5431a);\n color: var(--spytial-ed-accent-text, #fdf6ec);\n}\n.spytial-ed-add-btn:active:not(:disabled) {\n transform: translateY(1px);\n}\n.spytial-ed-add-btn:focus-visible {\n outline: 2px solid var(--spytial-ed-accent, #b5431a);\n outline-offset: 2px;\n}\n.spytial-ed-add-btn:disabled {\n opacity: 0.5;\n cursor: not-allowed;\n}\n\n/* the menu's inline maxHeight (from useAnchoredPopup) governs the whole box;\n the list flexes inside it and scrolls */\n.spytial-ed-add-menu {\n display: flex;\n flex-direction: column;\n min-inline-size: 15rem;\n}\n\n.spytial-ed-add-search {\n inline-size: 100%;\n flex: 0 0 auto;\n font: inherit;\n font-size: 0.85em;\n color: var(--spytial-ed-text, #221d14);\n background: var(--spytial-ed-surface, #faf8f2);\n border: 1px solid var(--spytial-ed-border, #d9d2c0);\n border-radius: var(--spytial-ed-radius-sm, 2px);\n padding: 0.35em 0.5em;\n margin-bottom: 4px;\n}\n\n.spytial-ed-add-search:focus-visible {\n outline: none;\n border-color: var(--spytial-ed-accent, #b5431a);\n}\n\n.spytial-ed-add-list {\n list-style: none;\n margin: 0;\n padding: 0;\n flex: 1 1 auto;\n min-block-size: 0;\n overflow-y: auto;\n}\n\n.spytial-ed-add-item {\n display: flex;\n flex-direction: column;\n gap: 1px;\n}\n.spytial-ed-add-item-label {\n font-family: var(--spytial-ed-chrome-font);\n font-size: 0.95em;\n font-weight: 600;\n}\n.spytial-ed-add-item-desc {\n font-size: 0.78em;\n color: var(--spytial-ed-text-muted, #6e6553);\n}\n.spytial-ed-add-empty {\n font-size: 0.85em;\n color: var(--spytial-ed-text-muted, #6e6553);\n padding: 0.4em 0.6em;\n}\n\n/* ─── CodeView ──────────────────────────────────────────────────────────── */\n\n.spytial-ed-code {\n display: flex;\n flex-direction: column;\n gap: var(--spytial-ed-gap, 8px);\n}\n\n.spytial-ed-code-notice {\n font-size: 0.82em;\n color: var(--spytial-ed-warning, #8a6200);\n background: color-mix(\n in srgb,\n var(--spytial-ed-warning, #8a6200) 10%,\n transparent\n );\n border: 1px solid var(--spytial-ed-warning, #8a6200);\n border-radius: var(--spytial-ed-radius-sm, 2px);\n padding: 0.4em 0.6em;\n}\n\n/* CodeMirror host: the editor renders its own themed chrome (via EditorView.theme\n in CodeView.tsx, driven by the same --spytial-ed-* vars); this container only\n sizes and caps it. The .spytial-ed-code-editor / -gutter / -textarea / -mirror\n rules below are retained for the legacy textarea CodeView still exported from\n the barrel. */\n.spytial-ed-code-cm {\n display: block;\n}\n.spytial-ed-code-cm .cm-editor {\n max-height: 32rem;\n}\n.spytial-ed-code-cm--disabled {\n opacity: 0.65;\n}\n\n.spytial-ed-code-editor {\n display: flex;\n border: 1px solid var(--spytial-ed-border, #d9d2c0);\n border-radius: var(--spytial-ed-radius, 2px);\n background: var(--spytial-ed-surface, #faf8f2);\n overflow: hidden;\n}\n\n.spytial-ed-code-gutter {\n flex: 0 0 auto;\n overflow: hidden;\n text-align: right;\n user-select: none;\n padding: 0.5em 0.4em;\n color: var(--spytial-ed-text-muted, #6e6553);\n background: var(--spytial-ed-surface-raised, #f1ecdf);\n border-inline-end: 1px solid var(--spytial-ed-border, #d9d2c0);\n font-family: var(--spytial-ed-mono-font-family, ui-monospace, monospace);\n font-size: 0.85em;\n line-height: 1.5;\n}\n\n.spytial-ed-code-gutter-line {\n min-inline-size: 1.6em;\n}\n\n/* wrapper hosting the highlight mirror + the transparent-text textarea; its\n height is driven by the textarea (which keeps `resize: vertical`) */\n.spytial-ed-code-input-wrap {\n position: relative;\n flex: 1 1 auto;\n min-width: 0;\n display: flex;\n}\n\n/*\n * Mirror and textarea MUST share identical metrics (font, size, line-height,\n * padding, tab-size, `white-space: pre`) so the highlight sits exactly under\n * the caret — same contract as the selector field's overlay.\n */\n.spytial-ed-code-textarea,\n.spytial-ed-code-mirror {\n margin: 0;\n font-family: var(--spytial-ed-mono-font-family, ui-monospace, monospace);\n font-size: 0.85em;\n line-height: 1.5;\n letter-spacing: normal;\n word-spacing: normal;\n /* same shaping normalization as the selector overlay (ligature fonts in\n the mono stack would otherwise drift textarea vs pre) */\n font-variant-ligatures: none;\n font-feature-settings: normal;\n font-kerning: none;\n hyphens: none;\n text-rendering: auto;\n padding: 0.5em 0.6em;\n border: none;\n white-space: pre;\n overflow-wrap: normal;\n tab-size: 2;\n}\n\n.spytial-ed-code-mirror {\n position: absolute;\n inset: 0;\n z-index: 0;\n pointer-events: none;\n overflow: hidden;\n color: var(--spytial-ed-text, #221d14);\n background: transparent;\n}\n\n.spytial-ed-code-textarea {\n position: relative;\n z-index: 1;\n flex: 1 1 auto;\n width: 100%;\n resize: vertical;\n min-block-size: 12rem;\n color: transparent;\n caret-color: var(--spytial-ed-accent, #b5431a);\n background: transparent;\n outline: none;\n}\n\n.spytial-ed-code-textarea::selection {\n /* keep selection visible even though the text itself is transparent */\n background: color-mix(\n in srgb,\n var(--spytial-ed-accent, #b5431a) 26%,\n transparent\n );\n}\n\n.spytial-ed-code-textarea:disabled {\n opacity: 0.6;\n}\n\n/* highlighting disabled (escape hatch): the textarea shows its own text */\n.spytial-ed-code-textarea--plain {\n color: var(--spytial-ed-text, #221d14);\n}\n\n.spytial-ed-code-textarea:disabled + .spytial-ed-code-mirror,\n.spytial-ed-code-input-wrap:has(.spytial-ed-code-textarea:disabled)\n .spytial-ed-code-mirror {\n opacity: 0.6;\n}\n\n.spytial-ed-code-diagnostics {\n list-style: none;\n margin: 0;\n padding: 0;\n display: flex;\n flex-direction: column;\n gap: 2px;\n}\n\n.spytial-ed-code-diagnostic-loc {\n font-family: var(--spytial-ed-mono-font-family, ui-monospace, monospace);\n font-size: 0.85em;\n color: var(--spytial-ed-text-muted, #6e6553);\n flex: 0 0 auto;\n}\n\n/* ─── Reduced motion ────────────────────────────────────────────────── */\n\n@media (prefers-reduced-motion: reduce) {\n .spytial-ed *,\n .spytial-ed *::before,\n .spytial-ed *::after,\n .spytial-ed-autocomplete,\n .spytial-ed-overflow-menu,\n .spytial-ed-add-menu,\n .spytial-ed-synth-popover,\n .spytial-ed-row-panel {\n animation: none !important;\n transition: none !important;\n }\n}\n\n/* ---- nested style blocks (lineStyle / textStyle / …) ---- */\n.spytial-ed-group {\n border: 1px solid var(--spytial-ed-border, #d0d7de);\n border-radius: 6px;\n padding: 0.25rem 0.6rem 0.4rem;\n margin: 0.25rem 0;\n min-inline-size: 0;\n}\n.spytial-ed-group-legend {\n display: inline-flex;\n align-items: center;\n gap: 0.35rem;\n padding-inline: 0.3rem;\n font-size: 0.78rem;\n font-weight: 600;\n color: var(--spytial-ed-muted, #656d76);\n}\n.spytial-ed-group-remove {\n border: none;\n background: transparent;\n cursor: pointer;\n font-size: 1rem;\n line-height: 1;\n padding: 0 0.15rem;\n color: var(--spytial-ed-muted, #656d76);\n}\n.spytial-ed-group-remove:hover {\n color: var(--spytial-ed-danger, #cf222e);\n}\n.spytial-ed-group-add {\n align-self: flex-start;\n border: 1px dashed var(--spytial-ed-border, #d0d7de);\n border-radius: 6px;\n background: transparent;\n cursor: pointer;\n padding: 0.3rem 0.6rem;\n margin: 0.15rem 0;\n font-size: 0.78rem;\n color: var(--spytial-ed-accent, #0969da);\n}\n.spytial-ed-group-add:hover {\n background: var(--spytial-ed-hover, #f6f8fa);\n}\n","/* InstanceBuilder Component Styles */\n\n.instance-builder {\n border: 1px solid #e0e0e0;\n border-radius: 8px;\n padding: 20px;\n background: #ffffff;\n font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;\n max-width: 800px;\n}\n\n.instance-builder__header {\n display: flex;\n justify-content: space-between;\n align-items: center;\n margin-bottom: 20px;\n padding-bottom: 10px;\n border-bottom: 1px solid #e0e0e0;\n}\n\n.instance-builder__header h2 {\n margin: 0;\n color: #333;\n font-size: 1.5rem;\n}\n\n.instance-builder__stats {\n display: flex;\n gap: 15px;\n font-size: 0.9rem;\n color: #666;\n}\n\n.instance-builder__stats span {\n background: #f5f5f5;\n padding: 4px 8px;\n border-radius: 4px;\n}\n\n.instance-builder__error {\n background: #fee;\n border: 1px solid #fcc;\n color: #c33;\n padding: 10px 15px;\n border-radius: 4px;\n margin-bottom: 20px;\n display: flex;\n justify-content: space-between;\n align-items: center;\n}\n\n.instance-builder__error button {\n background: none;\n border: none;\n color: #c33;\n font-size: 1.2rem;\n cursor: pointer;\n padding: 0;\n width: 20px;\n height: 20px;\n}\n\n.instance-builder__content {\n display: flex;\n flex-direction: column;\n gap: 30px;\n}\n\n/* N-ary relation styles */\n.relation-atoms {\n background: #f9f9f9;\n border: 1px solid #e0e0e0;\n border-radius: 4px;\n padding: 12px;\n margin: 8px 0;\n}\n\n.atom-selector {\n display: flex;\n align-items: center;\n gap: 8px;\n margin-bottom: 8px;\n}\n\n.atom-selector label {\n min-width: 80px;\n font-weight: 500;\n}\n\n.atom-selector select {\n flex: 1;\n min-width: 200px;\n}\n\n.arity-controls {\n display: flex;\n gap: 8px;\n padding-top: 8px;\n border-top: 1px solid #e0e0e0;\n}\n\n.arity-controls button {\n background: #6c757d;\n color: white;\n border: none;\n padding: 6px 12px;\n border-radius: 4px;\n cursor: pointer;\n font-size: 0.8rem;\n}\n\n.arity-controls button:hover:not(:disabled) {\n background: #5a6268;\n}\n\n.instance-builder__section {\n border: 1px solid #f0f0f0;\n border-radius: 6px;\n padding: 20px;\n background: #fafafa;\n}\n\n.instance-builder__section h3 {\n margin: 0 0 15px 0;\n color: #444;\n font-size: 1.2rem;\n border-bottom: 1px solid #e0e0e0;\n padding-bottom: 8px;\n}\n\n.instance-builder__form {\n margin-bottom: 20px;\n}\n\n.form-row {\n display: flex;\n gap: 10px;\n align-items: center;\n flex-wrap: wrap;\n}\n\n.form-row input,\n.form-row select {\n padding: 8px 12px;\n border: 1px solid #ddd;\n border-radius: 4px;\n font-size: 0.9rem;\n min-width: 120px;\n flex: 1;\n}\n\n.form-row input:focus,\n.form-row select:focus {\n outline: none;\n border-color: #007acc;\n box-shadow: 0 0 0 2px rgba(0, 122, 204, 0.2);\n}\n\n.form-row button {\n background: #007acc;\n color: white;\n border: none;\n padding: 8px 16px;\n border-radius: 4px;\n cursor: pointer;\n font-size: 0.9rem;\n white-space: nowrap;\n}\n\n.form-row button:hover:not(:disabled) {\n background: #005a9e;\n}\n\n.form-row button:disabled {\n background: #ccc;\n cursor: not-allowed;\n}\n\n.instance-builder__list {\n max-height: 300px;\n overflow-y: auto;\n border: 1px solid #e0e0e0;\n border-radius: 4px;\n background: white;\n}\n\n.empty-state {\n padding: 20px;\n text-align: center;\n color: #888;\n font-style: italic;\n margin: 0;\n}\n\n.list-item {\n display: flex;\n justify-content: space-between;\n align-items: center;\n padding: 12px 15px;\n border-bottom: 1px solid #f0f0f0;\n}\n\n.list-item:last-child {\n border-bottom: none;\n}\n\n.list-item:hover {\n background: #f9f9f9;\n}\n\n.item-info {\n display: flex;\n align-items: center;\n gap: 10px;\n flex: 1;\n}\n\n.item-info strong {\n color: #333;\n font-weight: 600;\n}\n\n.item-label {\n color: #666;\n font-style: italic;\n}\n\n.item-type {\n background: #e7f3ff;\n color: #0066cc;\n padding: 2px 6px;\n border-radius: 3px;\n font-size: 0.8rem;\n font-weight: 500;\n}\n\n.remove-button {\n background: #dc3545;\n color: white;\n border: none;\n padding: 6px 12px;\n border-radius: 4px;\n cursor: pointer;\n font-size: 0.8rem;\n}\n\n.remove-button:hover:not(:disabled) {\n background: #c82333;\n}\n\n.remove-button:disabled {\n background: #ccc;\n cursor: not-allowed;\n}\n\n.relation-group {\n margin-bottom: 15px;\n}\n\n.relation-group h4 {\n margin: 0 0 10px 0;\n color: #555;\n font-size: 1rem;\n padding: 8px 15px;\n background: #f0f8ff;\n border-left: 3px solid #007acc;\n}\n\n.relation-group .list-item {\n margin-left: 15px;\n border-left: 2px solid #e0e0e0;\n}\n\n.instance-builder__actions {\n display: flex;\n gap: 15px;\n align-items: flex-start;\n padding-top: 20px;\n border-top: 1px solid #e0e0e0;\n}\n\n.clear-button {\n background: #6c757d;\n color: white;\n border: none;\n padding: 10px 20px;\n border-radius: 4px;\n cursor: pointer;\n font-size: 0.9rem;\n}\n\n.clear-button:hover:not(:disabled) {\n background: #5a6268;\n}\n\n.clear-button:disabled {\n background: #ccc;\n cursor: not-allowed;\n}\n\n.import-section {\n flex: 1;\n}\n\n.import-section summary {\n cursor: pointer;\n font-weight: 500;\n color: #007acc;\n padding: 10px 0;\n}\n\n.import-section summary:hover {\n color: #005a9e;\n}\n\n.import-section textarea {\n width: 100%;\n padding: 10px;\n border: 1px solid #ddd;\n border-radius: 4px;\n font-family: 'Courier New', monospace;\n font-size: 0.9rem;\n resize: vertical;\n margin-top: 10px;\n}\n\n.import-section textarea:focus {\n outline: none;\n border-color: #007acc;\n box-shadow: 0 0 0 2px rgba(0, 122, 204, 0.2);\n}\n\n/* Responsive Design */\n@media (max-width: 768px) {\n .instance-builder {\n padding: 15px;\n }\n \n .instance-builder__header {\n flex-direction: column;\n align-items: flex-start;\n gap: 10px;\n }\n \n .form-row {\n flex-direction: column;\n align-items: stretch;\n }\n \n .form-row input,\n .form-row select,\n .form-row button {\n min-width: auto;\n width: 100%;\n }\n \n .instance-builder__actions {\n flex-direction: column;\n }\n \n .list-item {\n flex-direction: column;\n align-items: flex-start;\n gap: 10px;\n }\n \n .item-info {\n flex-direction: column;\n align-items: flex-start;\n gap: 5px;\n }\n}\n",".error-card {\n min-width: 320px;\n max-width: 100%;\n}\n\n#error-message-modal {\n border-radius: 0.5rem;\n border: 2px var(--bs-danger) solid;\n}\n\n/* Source constraint highlight - lighter yellow */\n.constraint-item.highlight-source {\n background-color: rgba(255, 193, 7, 0.35);\n border-radius: 4px;\n}\n\n/* Diagram element highlight - darker yellow */\n.constraint-item.highlight-diagram {\n background-color: rgba(255, 193, 7, 0.7);\n border-radius: 4px;\n}\n\n.constraint-relationship-table {\n width: 100%;\n margin-bottom: 1rem;\n}\n\n/*\n * Two independently-scrolling columns inside one resizable region.\n * - resize: vertical gives a drag handle to tune height (larger/smaller/taller)\n * - max-height caps the default so a long conflict list can't cover the screen\n * (and is the drag ceiling); min-height is the drag floor\n * - overflow: hidden is required for `resize`; each column body scrolls itself,\n * which is what lets a hovered item stay put while its correspondence in the\n * OTHER column scrolls into view\n */\n.constraint-columns {\n display: flex;\n gap: 0;\n max-height: 45vh;\n min-height: 5rem;\n overflow: hidden;\n resize: vertical;\n}\n\n.constraint-column {\n flex: 1 1 0;\n min-width: 0;\n min-height: 0;\n display: flex;\n flex-direction: column;\n border: 1px solid #dee2e6;\n}\n\n/* Collapse the seam between the two adjacent columns */\n.constraint-column + .constraint-column {\n border-left: none;\n}\n\n.constraint-column-header {\n flex: 0 0 auto;\n font-weight: 600;\n padding: 0.5rem;\n background: #f8f9fa;\n border-bottom: 1px solid #dee2e6;\n}\n\n/* The independent per-column scroll container (both axes: wide constraint\n * text scrolls within the column instead of widening the whole modal). */\n.constraint-column-body {\n flex: 1 1 auto;\n min-height: 0;\n overflow: auto;\n}\n\n.constraint-relationship-table .constraint-item {\n padding: 0.5rem;\n border-bottom: 1px solid #eee;\n}\n\n.constraint-relationship-table .constraint-item:last-child {\n border-bottom: none;\n}\n\ncode > code, code > pre {\n border: 1px solid var(--bs-code-color);\n padding: 0.2em 0.4em;\n border-radius: 4px;\n}\n\n/* Collapse/expand header bar */\n.error-modal-header {\n gap: 0.5rem;\n}\n\n.error-modal-toggle {\n background: transparent;\n border: none;\n color: var(--bs-danger);\n font-size: 1.1rem;\n line-height: 1;\n padding: 0 0.25rem;\n cursor: pointer;\n}\n\n.error-modal-toggle:hover,\n.error-modal-toggle:focus {\n opacity: 0.75;\n}","/* ReplInterface Component Styles */\n\n.repl-interface {\n display: flex;\n flex-direction: column;\n gap: 15px;\n background: #1e1e1e;\n color: #d4d4d4;\n border-radius: 8px;\n padding: 15px;\n font-family: 'Courier New', 'Monaco', 'Menlo', monospace;\n max-width: 1400px;\n min-height: 200px;\n}\n\n.repl-interface__main {\n display: flex;\n flex-direction: column;\n gap: 20px;\n}\n\n.repl-interface__header {\n display: flex;\n align-items: center;\n justify-content: space-between;\n gap: 15px;\n margin-bottom: 10px;\n padding-bottom: 8px;\n border-bottom: 1px solid #333;\n}\n\n.repl-interface__stats {\n display: flex;\n gap: 10px;\n font-size: 0.85rem;\n color: #9cdcfe;\n}\n\n.repl-interface__stats span {\n background: rgba(156, 220, 254, 0.1);\n padding: 3px 6px;\n border-radius: 3px;\n border: 1px solid rgba(156, 220, 254, 0.3);\n}\n\n\n\n.repl-interface__terminals {\n display: flex;\n flex-direction: column;\n gap: 15px;\n flex: 1;\n}\n\n.repl-terminal {\n background: #252526;\n border: 1px solid #3c3c3c;\n border-radius: 6px;\n display: flex;\n flex-direction: column;\n min-height: 120px;\n}\n\n.repl-terminal__header {\n background: #2d2d30;\n padding: 8px 12px;\n border-bottom: 1px solid #3c3c3c;\n font-size: 0.9rem;\n font-weight: 600;\n color: #cccccc;\n display: flex;\n justify-content: flex-end;\n align-items: center;\n}\n\n.repl-terminal__help {\n color: #6a737d;\n font-size: 0.8rem;\n cursor: pointer;\n}\n\n.repl-terminal__help:hover {\n color: #9cdcfe;\n}\n\n.repl-terminal__output {\n flex: 1;\n padding: 10px;\n overflow-y: auto;\n font-size: 0.85rem;\n line-height: 1.4;\n min-height: 60px;\n max-height: 120px;\n}\n\n.repl-terminal__input {\n border-top: 2px solid #4ec9b0;\n padding: 15px;\n background: #1e1e1e;\n}\n\n.repl-terminal__input textarea {\n width: 100%;\n background: transparent;\n border: 2px solid #3c3c3c;\n border-radius: 4px;\n padding: 10px;\n color: #d4d4d4;\n font-family: inherit;\n font-size: 0.9rem;\n line-height: 1.4;\n resize: none;\n outline: none;\n min-height: 60px;\n max-height: 100px;\n transition: border-color 0.2s ease;\n}\n\n.repl-terminal__input textarea:focus {\n border-color: #4ec9b0;\n}\n\n.repl-terminal__input textarea::placeholder {\n color: #6a737d;\n}\n\n.repl-terminal__controls {\n display: flex;\n justify-content: flex-end;\n align-items: center;\n padding-top: 12px;\n border-top: 1px solid #4ec9b0;\n}\n\n.repl-terminal__execute {\n background: #4ec9b0;\n color: #1e1e1e;\n border: none;\n padding: 8px 16px;\n border-radius: 4px;\n cursor: pointer;\n font-size: 0.85rem;\n font-family: inherit;\n font-weight: 600;\n}\n\n.repl-terminal__execute:hover:not(:disabled) {\n background: #6bd4ba;\n}\n\n.repl-terminal__execute:disabled {\n background: #3c3c3c;\n color: #6a737d;\n cursor: not-allowed;\n}\n\n.repl-terminal__clear {\n display: none;\n}\n\n/* Output message types */\n.repl-output-line {\n margin: 2px 0;\n padding: 2px 0;\n}\n\n.repl-output-line.command {\n color: #9cdcfe;\n}\n\n.repl-output-line.command::before {\n content: '> ';\n color: #4ec9b0;\n font-weight: bold;\n}\n\n.repl-output-line.success {\n color: #4ec9b0;\n}\n\n.repl-output-line.error {\n color: #f48771;\n}\n\n.repl-output-line.error::before {\n content: '✗ ';\n}\n\n.repl-output-line.info {\n color: #dcdcaa;\n}\n\n.repl-output-line.info::before {\n content: 'ℹ ';\n}\n\n.repl-output-line.help {\n color: #6a737d;\n font-style: italic;\n}\n\n/* Global actions */\n.repl-interface__actions {\n display: flex;\n gap: 10px;\n align-items: center;\n padding-top: 15px;\n border-top: 1px solid #3c3c3c;\n}\n\n.repl-interface__action-button {\n background: #2d2d30;\n color: #cccccc;\n border: 1px solid #3c3c3c;\n padding: 8px 16px;\n border-radius: 4px;\n cursor: pointer;\n font-size: 0.85rem;\n font-family: inherit;\n}\n\n.repl-interface__action-button:hover:not(:disabled) {\n background: #37373d;\n border-color: #505050;\n}\n\n.repl-interface__action-button:disabled {\n background: #1e1e1e;\n color: #6a737d;\n cursor: not-allowed;\n}\n\n.repl-interface__action-button.primary {\n background: #0e639c;\n border-color: #0e639c;\n color: white;\n}\n\n.repl-interface__action-button.primary:hover:not(:disabled) {\n background: #1177bb;\n border-color: #1177bb;\n}\n\n.repl-interface__action-button.danger {\n background: #a74747;\n border-color: #a74747;\n color: white;\n}\n\n.repl-interface__action-button.danger:hover:not(:disabled) {\n background: #c85450;\n border-color: #c85450;\n}\n\n/* Responsive design */\n@media (max-width: 1024px) {\n .repl-interface__drawers {\n flex-direction: column;\n }\n \n .repl-interface__drawer {\n max-width: none;\n }\n \n .repl-terminal {\n min-height: 100px;\n }\n}\n\n@media (max-width: 768px) {\n .repl-interface {\n padding: 10px;\n }\n \n .repl-interface__header {\n flex-direction: column;\n align-items: flex-start;\n gap: 10px;\n }\n \n .repl-terminal__input textarea {\n min-height: 40px;\n }\n \n .repl-interface__drawers {\n gap: 8px;\n }\n}\n\n/* Scrollbar styling for dark theme */\n.repl-terminal__output::-webkit-scrollbar {\n width: 8px;\n}\n\n.repl-terminal__output::-webkit-scrollbar-track {\n background: #252526;\n}\n\n.repl-terminal__output::-webkit-scrollbar-thumb {\n background: #424242;\n border-radius: 4px;\n}\n\n.repl-terminal__output::-webkit-scrollbar-thumb:hover {\n background: #4f4f4f;\n}\n\n/* Collapsible drawers for data display */\n.repl-interface__drawers {\n display: flex;\n gap: 10px;\n margin-top: 10px;\n}\n\n.repl-interface__drawer {\n background: #252526;\n border: 1px solid #3c3c3c;\n border-radius: 6px;\n flex: 1;\n max-width: 300px;\n}\n\n.repl-interface__drawer-header {\n padding: 8px 12px;\n background: #2d2d30;\n border-bottom: 1px solid #3c3c3c;\n font-size: 0.9rem;\n font-weight: 600;\n color: #cccccc;\n display: flex;\n justify-content: space-between;\n align-items: center;\n cursor: pointer;\n}\n\n.repl-interface__drawer-toggle {\n font-size: 0.8rem;\n color: #9cdcfe;\n}\n\n.repl-interface__drawer-content {\n max-height: 200px;\n overflow-y: auto;\n padding: 8px;\n}\n\n.repl-interface__drawer-content.collapsed {\n display: none;\n}\n\n.repl-interface__drawer-item {\n font-size: 0.8rem;\n padding: 6px 8px;\n background: rgba(156, 220, 254, 0.05);\n border: 1px solid rgba(156, 220, 254, 0.2);\n border-radius: 3px;\n line-height: 1.3;\n margin-bottom: 4px;\n display: flex;\n justify-content: space-between;\n align-items: center;\n}\n\n.repl-interface__drawer-item-content {\n flex: 1;\n}\n\n.repl-interface__drawer-item-header {\n color: #9cdcfe;\n font-weight: 600;\n}\n\n.repl-interface__drawer-item-detail {\n color: #dcdcaa;\n font-size: 0.75rem;\n margin-top: 2px;\n}\n\n.repl-interface__drawer-delete {\n background: #a74747;\n border: none;\n color: white;\n font-size: 0.7rem;\n padding: 2px 6px;\n border-radius: 3px;\n cursor: pointer;\n margin-left: 8px;\n opacity: 0.7;\n transition: opacity 0.2s ease;\n}\n\n.repl-interface__drawer-delete:hover {\n opacity: 1;\n background: #c85450;\n}\n\n.repl-interface__drawer-empty {\n color: #6a737d;\n font-style: italic;\n font-size: 0.8rem;\n text-align: center;\n padding: 10px;\n}",".code-input {\n font-family: monospace;\n}\n\n#repl-output {\n font-family: monospace; \n white-space: pre-wrap; \n max-height: 80vh; \n overflow-y: auto;\n}\n\n#evaluator-input {\n margin: 10px 0;\n}","/* RelationHighlighter Component Styles - Accordion Style */\n\n.relation-highlighter {\n border: 1px solid #ddd;\n border-radius: 6px;\n background: #ffffff;\n font-family: system-ui, -apple-system, sans-serif;\n max-width: 320px;\n box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);\n overflow: hidden;\n}\n\n/* Accordion-style header */\n.relation-highlighter-header {\n display: flex;\n justify-content: space-between;\n align-items: center;\n padding: 14px 18px;\n background: linear-gradient(135deg, #f8f9fa 0%, #e9ecef 100%);\n border-bottom: 1px solid #dee2e6;\n cursor: pointer;\n user-select: none;\n transition: background-color 0.2s ease;\n position: relative;\n}\n\n.relation-highlighter-header:hover {\n background: linear-gradient(135deg, #e9ecef 0%, #dee2e6 100%);\n}\n\n.relation-highlighter-header:active {\n background: linear-gradient(135deg, #dee2e6 0%, #ced4da 100%);\n}\n\n.relation-highlighter-title {\n margin: 0;\n font-size: 15px;\n font-weight: 600;\n color: #495057;\n letter-spacing: 0.025em;\n}\n\n/* Accordion toggle button */\n.collapse-toggle {\n background: none;\n border: none;\n font-size: 16px;\n color: #6c757d;\n cursor: pointer;\n padding: 6px;\n border-radius: 4px;\n transition: all 0.25s ease;\n line-height: 1;\n min-width: 28px;\n min-height: 28px;\n display: flex;\n align-items: center;\n justify-content: center;\n}\n\n.collapse-toggle:hover {\n background: rgba(108, 117, 125, 0.1);\n color: #495057;\n}\n\n.collapse-toggle.collapsed {\n transform: rotate(-90deg);\n color: #868e96;\n}\n\n/* Accordion-style collapsible content */\n.relation-highlighter-content {\n max-height: 350px;\n overflow: hidden;\n transition: max-height 0.35s cubic-bezier(0.4, 0, 0.2, 1);\n background: #ffffff;\n}\n\n.relation-highlighter-content.collapsed {\n max-height: 0;\n border-top: none;\n}\n\n/* No relations message */\n.no-relations {\n padding: 20px 18px;\n text-align: center;\n color: #6c757d;\n font-style: italic;\n margin: 0;\n font-size: 14px;\n}\n\n/* Relation list */\n.relation-list {\n list-style: none;\n margin: 0;\n padding: 0;\n max-height: 320px;\n overflow-y: auto;\n /* Explicitly allow horizontal scroll when content overflows */\n overflow-x: auto;\n}\n\n/* Individual relation items */\n.relation-item {\n padding: 12px 18px;\n cursor: pointer;\n border-bottom: 1px solid #f1f3f4;\n color: #495057;\n font-size: 14px;\n font-weight: 500;\n transition: all 0.2s ease;\n user-select: none;\n position: relative;\n background: #ffffff;\n overflow: hidden;\n white-space: nowrap;\n /* Minimum width to prevent excessive shrinking */\n min-width: 100px;\n}\n\n.relation-item:last-child {\n border-bottom: none;\n}\n\n.relation-item:hover {\n background: linear-gradient(90deg, #e3f2fd 0%, #f3e5f5 100%);\n color: #1565c0;\n font-weight: 600;\n /* Use left padding increase instead of transform to prevent horizontal scrolling */\n padding-left: 28px;\n /* Reduce right padding to maintain consistent width */\n padding-right: 18px;\n}\n\n.relation-item:active {\n background: linear-gradient(90deg, #bbdefb 0%, #e1bee7 100%);\n}\n\n/* Scrollbar styling for webkit browsers */\n.relation-list::-webkit-scrollbar {\n width: 8px;\n}\n\n.relation-list::-webkit-scrollbar-track {\n background: #f8f9fa;\n border-radius: 4px;\n}\n\n.relation-list::-webkit-scrollbar-thumb {\n background: linear-gradient(180deg, #ced4da 0%, #adb5bd 100%);\n border-radius: 4px;\n border: 1px solid #dee2e6;\n}\n\n.relation-list::-webkit-scrollbar-thumb:hover {\n background: linear-gradient(180deg, #adb5bd 0%, #868e96 100%);\n}\n\n/* Accordion animation enhancement */\n@keyframes accordionExpand {\n from {\n opacity: 0;\n transform: translateY(-10px);\n }\n to {\n opacity: 1;\n transform: translateY(0);\n }\n}\n\n.relation-highlighter-content:not(.collapsed) .relation-list {\n animation: accordionExpand 0.3s ease-out;\n}\n\n/* Responsive design for smaller screens */\n@media (max-width: 480px) {\n .relation-highlighter {\n max-width: 100%;\n border-radius: 4px;\n }\n \n .relation-highlighter-title {\n font-size: 14px;\n }\n \n .relation-item {\n padding: 14px 18px;\n font-size: 15px; /* Larger touch targets */\n padding-right: 32px; /* More space for arrow on mobile */\n }\n \n .relation-item:hover {\n padding-left: 32px;\n padding-right: 18px;\n }\n}\n\n/* Focus states for accessibility */\n.relation-highlighter-header:focus {\n outline: 2px solid #0d6efd;\n outline-offset: -2px;\n}\n\n.collapse-toggle:focus {\n outline: 2px solid #0d6efd;\n outline-offset: 2px;\n border-radius: 4px;\n}\n\n.relation-item:focus {\n outline: 2px solid #0d6efd;\n outline-offset: -2px;\n background: #e3f2fd;\n}","/**\n * Projection Controls Styles\n * \n * Provides styling for the projection selector component used in Forge/Alloy contexts.\n * Follows the design patterns used in NoCodeView for consistency.\n */\n\n.projection-controls {\n background: #f8f9fa;\n border: 1px solid #dee2e6;\n border-radius: 0.25rem;\n padding: 1rem;\n margin-bottom: 1rem;\n}\n\n.projection-controls__header {\n margin-bottom: 1rem;\n}\n\n.projection-controls__title {\n font-size: 1.1rem;\n font-weight: 600;\n margin: 0 0 0.25rem 0;\n color: #212529;\n}\n\n.projection-controls__description {\n font-size: 0.875rem;\n color: #6c757d;\n margin: 0;\n font-style: italic;\n}\n\n.projection-controls__list {\n display: flex;\n flex-direction: column;\n gap: 0.75rem;\n}\n\n.projection-controls__item {\n display: flex;\n align-items: center;\n gap: 0.75rem;\n}\n\n.projection-controls__label {\n font-weight: 500;\n color: #495057;\n min-width: 120px;\n margin: 0;\n font-size: 0.875rem;\n}\n\n.projection-controls__select {\n flex: 1;\n padding: 0.375rem 0.75rem;\n font-size: 0.875rem;\n line-height: 1.5;\n color: #495057;\n background-color: #fff;\n background-clip: padding-box;\n border: 1px solid #ced4da;\n border-radius: 0.25rem;\n transition: border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;\n}\n\n.projection-controls__select:focus {\n color: #495057;\n background-color: #fff;\n border-color: #80bdff;\n outline: 0;\n box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.25);\n}\n\n.projection-controls__select:disabled {\n background-color: #e9ecef;\n opacity: 1;\n cursor: not-allowed;\n}\n\n/* Responsive adjustments */\n@media (max-width: 576px) {\n .projection-controls__item {\n flex-direction: column;\n align-items: flex-start;\n }\n \n .projection-controls__label {\n min-width: auto;\n }\n \n .projection-controls__select {\n width: 100%;\n }\n}\n","/**\n * Projection Orchestrator Styles\n *\n * Simplified projection UI: free-text input for type names,\n * per-type atom dropdowns inline with remove buttons.\n */\n\n.projection-orchestrator {\n background: #f8f9fa;\n border: 1px solid #dee2e6;\n border-radius: 0.25rem;\n padding: 1rem;\n margin-bottom: 1rem;\n}\n\n/* ── Add projection row ──────────────────────────────── */\n.projection-orchestrator__add {\n display: flex;\n align-items: center;\n gap: 0.5rem;\n margin-bottom: 0.75rem;\n}\n\n.projection-controls__input {\n flex: 1;\n padding: 0.375rem 0.5rem;\n font-size: 0.875rem;\n line-height: 1.5;\n border: 1px solid #ced4da;\n border-radius: 0.25rem;\n color: #495057;\n background-color: #fff;\n min-width: 0;\n}\n\n.projection-controls__input:focus {\n border-color: #80bdff;\n outline: 0;\n box-shadow: 0 0 0 0.15rem rgba(0, 123, 255, 0.25);\n}\n\n.projection-orchestrator__add-btn {\n padding: 0.375rem 0.75rem;\n font-size: 0.875rem;\n line-height: 1.5;\n color: #fff;\n background-color: #007bff;\n border: 1px solid #007bff;\n border-radius: 0.25rem;\n cursor: pointer;\n white-space: nowrap;\n}\n\n.projection-orchestrator__add-btn:hover:not(:disabled) {\n background-color: #0069d9;\n border-color: #0062cc;\n}\n\n.projection-orchestrator__add-btn:disabled {\n opacity: 0.65;\n cursor: not-allowed;\n}\n\n/* ── Error banner ────────────────────────────────────── */\n.projection-orchestrator__error {\n padding: 0.375rem 0.75rem;\n font-size: 0.8rem;\n color: #856404;\n background-color: #fff3cd;\n border: 1px solid #ffc107;\n border-radius: 0.25rem;\n margin-bottom: 0.75rem;\n}\n\n/* ── Projection rows (type tag + atom dropdown) ──────── */\n.projection-orchestrator__list {\n display: flex;\n flex-direction: column;\n gap: 0.5rem;\n}\n\n.projection-orchestrator__row {\n display: flex;\n align-items: center;\n gap: 0.5rem;\n}\n\n.projection-orchestrator__tag {\n display: inline-flex;\n align-items: center;\n gap: 0.25rem;\n padding: 0.2rem 0.5rem;\n font-size: 0.8rem;\n font-weight: 500;\n color: #495057;\n background-color: #e2e6ea;\n border: 1px solid #ced4da;\n border-radius: 1rem;\n white-space: nowrap;\n}\n\n.projection-orchestrator__remove-btn {\n background: none;\n border: none;\n padding: 0 0.15rem;\n font-size: 1rem;\n line-height: 1;\n color: #6c757d;\n cursor: pointer;\n}\n\n.projection-orchestrator__remove-btn:hover:not(:disabled) {\n color: #dc3545;\n}\n\n.projection-orchestrator__remove-btn:disabled {\n opacity: 0.5;\n cursor: not-allowed;\n}\n\n.projection-orchestrator__no-atoms {\n font-size: 0.8rem;\n color: #6c757d;\n font-style: italic;\n}\n\n/* ── Responsive adjustments ─────────────────────────── */\n@media (max-width: 576px) {\n .projection-orchestrator__add {\n flex-direction: column;\n align-items: stretch;\n }\n .projection-orchestrator__row {\n flex-direction: column;\n align-items: stretch;\n }\n}\n"],"mappings":"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","names":[]}