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,2 +1,2 @@
1
- .instance-builder{border:1px solid #e0e0e0;border-radius:8px;padding:20px;background:#fff;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;max-width:800px}.instance-builder__header{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px;padding-bottom:10px;border-bottom:1px solid #e0e0e0}.instance-builder__header h2{margin:0;color:#333;font-size:1.5rem}.instance-builder__stats{display:flex;gap:15px;font-size:.9rem;color:#666}.instance-builder__stats span{background:#f5f5f5;padding:4px 8px;border-radius:4px}.instance-builder__error{background:#fee;border:1px solid #fcc;color:#c33;padding:10px 15px;border-radius:4px;margin-bottom:20px;display:flex;justify-content:space-between;align-items:center}.instance-builder__error button{background:none;border:none;color:#c33;font-size:1.2rem;cursor:pointer;padding:0;width:20px;height:20px}.instance-builder__content{display:flex;flex-direction:column;gap:30px}.relation-atoms{background:#f9f9f9;border:1px solid #e0e0e0;border-radius:4px;padding:12px;margin:8px 0}.atom-selector{display:flex;align-items:center;gap:8px;margin-bottom:8px}.atom-selector label{min-width:80px;font-weight:500}.atom-selector select{flex:1;min-width:200px}.arity-controls{display:flex;gap:8px;padding-top:8px;border-top:1px solid #e0e0e0}.arity-controls button{background:#6c757d;color:#fff;border:none;padding:6px 12px;border-radius:4px;cursor:pointer;font-size:.8rem}.arity-controls button:hover:not(:disabled){background:#5a6268}.instance-builder__section{border:1px solid #f0f0f0;border-radius:6px;padding:20px;background:#fafafa}.instance-builder__section h3{margin:0 0 15px;color:#444;font-size:1.2rem;border-bottom:1px solid #e0e0e0;padding-bottom:8px}.instance-builder__form{margin-bottom:20px}.form-row{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.form-row input,.form-row select{padding:8px 12px;border:1px solid #ddd;border-radius:4px;font-size:.9rem;min-width:120px;flex:1}.form-row input:focus,.form-row select:focus{outline:none;border-color:#007acc;box-shadow:0 0 0 2px #007acc33}.form-row button{background:#007acc;color:#fff;border:none;padding:8px 16px;border-radius:4px;cursor:pointer;font-size:.9rem;white-space:nowrap}.form-row button:hover:not(:disabled){background:#005a9e}.form-row button:disabled{background:#ccc;cursor:not-allowed}.instance-builder__list{max-height:300px;overflow-y:auto;border:1px solid #e0e0e0;border-radius:4px;background:#fff}.empty-state{padding:20px;text-align:center;color:#888;font-style:italic;margin:0}.list-item{display:flex;justify-content:space-between;align-items:center;padding:12px 15px;border-bottom:1px solid #f0f0f0}.list-item:last-child{border-bottom:none}.list-item:hover{background:#f9f9f9}.item-info{display:flex;align-items:center;gap:10px;flex:1}.item-info strong{color:#333;font-weight:600}.item-label{color:#666;font-style:italic}.item-type{background:#e7f3ff;color:#06c;padding:2px 6px;border-radius:3px;font-size:.8rem;font-weight:500}.remove-button{background:#dc3545;color:#fff;border:none;padding:6px 12px;border-radius:4px;cursor:pointer;font-size:.8rem}.remove-button:hover:not(:disabled){background:#c82333}.remove-button:disabled{background:#ccc;cursor:not-allowed}.relation-group{margin-bottom:15px}.relation-group h4{margin:0 0 10px;color:#555;font-size:1rem;padding:8px 15px;background:#f0f8ff;border-left:3px solid #007acc}.relation-group .list-item{margin-left:15px;border-left:2px solid #e0e0e0}.instance-builder__actions{display:flex;gap:15px;align-items:flex-start;padding-top:20px;border-top:1px solid #e0e0e0}.clear-button{background:#6c757d;color:#fff;border:none;padding:10px 20px;border-radius:4px;cursor:pointer;font-size:.9rem}.clear-button:hover:not(:disabled){background:#5a6268}.clear-button:disabled{background:#ccc;cursor:not-allowed}.import-section{flex:1}.import-section summary{cursor:pointer;font-weight:500;color:#007acc;padding:10px 0}.import-section summary:hover{color:#005a9e}.import-section textarea{width:100%;padding:10px;border:1px solid #ddd;border-radius:4px;font-family:Courier New,monospace;font-size:.9rem;resize:vertical;margin-top:10px}.import-section textarea:focus{outline:none;border-color:#007acc;box-shadow:0 0 0 2px #007acc33}@media(max-width:768px){.instance-builder{padding:15px}.instance-builder__header{flex-direction:column;align-items:flex-start;gap:10px}.form-row{flex-direction:column;align-items:stretch}.form-row input,.form-row select,.form-row button{min-width:auto;width:100%}.instance-builder__actions{flex-direction:column}.list-item{flex-direction:column;align-items:flex-start;gap:10px}.item-info{flex-direction:column;align-items:flex-start;gap:5px}}.spytial-ed{font-family:var( --spytial-ed-font-family, "Avenir Next", "Avenir", "Seravek", "Segoe UI Variable", "Segoe UI", "Trebuchet MS", sans-serif );font-size:var(--spytial-ed-font-size, 14px);color:var(--spytial-ed-text, #221d14);--spytial-ed-gap: var(--spytial-ed-spacing, 8px);--spytial-ed-radius-sm: var(--spytial-ed-radius, 2px);--spytial-ed-chrome-font: var( --spytial-ed-mono-font-family, ui-monospace, "Cascadia Code", "JetBrains Mono", "SF Mono", Menlo, Consolas, "Liberation Mono", monospace )}.spytial-ed *,.spytial-ed *:before,.spytial-ed *:after{box-sizing:border-box}.spytial-ed--compact{font-size:calc(var(--spytial-ed-font-size, 14px) - 1px);--spytial-ed-gap: calc(var(--spytial-ed-spacing, 8px) * .625)}@keyframes spytial-ed-pop{0%{opacity:0;transform:translateY(-3px) scale(.99)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes spytial-ed-unfold{0%{opacity:0;transform:translateY(-2px)}to{opacity:1;transform:translateY(0)}}.spytial-ed-fields{display:flex;flex-direction:column;gap:var(--spytial-ed-gap, 8px);width:100%}.spytial-ed-field{display:grid;grid-template-columns:minmax(7rem,9rem) 1fr;align-items:start;gap:var(--spytial-ed-gap, 8px)}.spytial-ed--compact .spytial-ed-field{grid-template-columns:minmax(6rem,8rem) 1fr}.spytial-ed-field-label{font-family:var(--spytial-ed-chrome-font);font-size:.72em;font-weight:600;text-transform:uppercase;letter-spacing:.09em;color:var(--spytial-ed-text-muted, #6e6553);padding-top:.55em;line-height:1.3;cursor:default;user-select:none}.spytial-ed-field-required{color:var(--spytial-ed-danger, #a32014);font-weight:700}.spytial-ed-field-control{display:flex;flex-direction:column;gap:.25em;min-width:0}.spytial-ed-input{width:100%;font-family:inherit;font-size:inherit;color:var(--spytial-ed-text, #221d14);background:var(--spytial-ed-surface, #faf8f2);border:1px solid var(--spytial-ed-border, #d9d2c0);border-radius:var(--spytial-ed-radius-sm, 2px);padding:.4em .55em;line-height:1.4;transition:border-color .15s ease,box-shadow .15s ease}.spytial-ed--compact .spytial-ed-input{padding:.3em .45em}.spytial-ed-input::placeholder{color:var(--spytial-ed-text-muted, #6e6553);opacity:.65}.spytial-ed-input:focus,.spytial-ed-input:focus-visible{outline:none;border-color:var(--spytial-ed-accent, #b5431a);box-shadow:0 0 0 2px color-mix(in srgb,var(--spytial-ed-accent, #b5431a) 20%,transparent)}.spytial-ed-input:disabled{background:var(--spytial-ed-surface-raised, #f1ecdf);color:var(--spytial-ed-text-muted, #6e6553);cursor:not-allowed}.spytial-ed-input--number{width:8rem}.spytial-ed-input[aria-invalid=true]{border-color:var(--spytial-ed-danger, #a32014)}.spytial-ed-color{display:flex;align-items:center;gap:var(--spytial-ed-gap, 8px)}.spytial-ed-color-swatch{inline-size:2rem;block-size:2rem;padding:0;border:1px solid var(--spytial-ed-border, #d9d2c0);border-radius:var(--spytial-ed-radius-sm, 2px);background:var(--spytial-ed-surface, #faf8f2);cursor:pointer}.spytial-ed-color-swatch:focus-visible{outline:2px solid var(--spytial-ed-accent, #b5431a);outline-offset:1px}.spytial-ed-color-text{width:9rem;font-family:var( --spytial-ed-mono-font-family, ui-monospace, "Cascadia Code", "JetBrains Mono", "SF Mono", Menlo, Consolas, "Liberation Mono", monospace )}.spytial-ed-pills{display:flex;flex-wrap:wrap;gap:.3em}.spytial-ed-pill{font-family:var(--spytial-ed-chrome-font);font-size:.8em;color:var(--spytial-ed-text, #221d14);background:transparent;border:1px solid var(--spytial-ed-border, #d9d2c0);border-radius:var(--spytial-ed-radius-sm, 2px);padding:.28em .65em;cursor:pointer;transition:background .15s ease,border-color .15s ease,color .15s ease,transform .1s ease}.spytial-ed-pill:hover:not(:disabled){border-color:var(--spytial-ed-accent, #b5431a);color:var(--spytial-ed-accent, #b5431a)}.spytial-ed-pill:active:not(:disabled){transform:translateY(1px)}.spytial-ed-pill:focus-visible{outline:2px solid var(--spytial-ed-accent, #b5431a);outline-offset:1px}.spytial-ed-pill--active{background:var(--spytial-ed-accent, #b5431a);border-color:var(--spytial-ed-accent, #b5431a);color:var(--spytial-ed-accent-text, #fdf6ec);font-weight:600}.spytial-ed-pill--active:hover:not(:disabled){color:var(--spytial-ed-accent-text, #fdf6ec)}.spytial-ed-pill--negated{background:var(--spytial-ed-danger, #a32014);border-color:var(--spytial-ed-danger, #a32014)}.spytial-ed-pill--negated:hover:not(:disabled){border-color:var(--spytial-ed-danger, #a32014)}.spytial-ed-pill:disabled{opacity:.55;cursor:not-allowed}.spytial-ed-switch{position:relative;inline-size:2.4rem;block-size:1.35rem;padding:0;border:1px solid var(--spytial-ed-border, #d9d2c0);border-radius:999px;background:var(--spytial-ed-surface-raised, #f1ecdf);cursor:pointer;transition:background .15s ease,border-color .15s ease}.spytial-ed-switch-thumb{position:absolute;top:50%;left:.18rem;transform:translateY(-50%);inline-size:.95rem;block-size:.95rem;border-radius:50%;background:var(--spytial-ed-surface, #faf8f2);box-shadow:0 1px 2px #00000040;transition:left .15s ease}.spytial-ed-switch--on{background:var(--spytial-ed-accent, #b5431a);border-color:var(--spytial-ed-accent, #b5431a)}.spytial-ed-switch--on .spytial-ed-switch-thumb{left:calc(100% - 1.13rem)}.spytial-ed-switch:focus-visible{outline:2px solid var(--spytial-ed-accent, #b5431a);outline-offset:2px}.spytial-ed-switch:disabled{opacity:.55;cursor:not-allowed}.spytial-ed-selector{display:flex;flex-direction:column;gap:.25em;width:100%}.spytial-ed-selector-input-wrap{position:relative;width:100%;background:var(--spytial-ed-surface, #faf8f2);border-radius:var(--spytial-ed-radius-sm, 2px)}.spytial-ed-selector-textarea,.spytial-ed-selector-mirror{margin:0;font-family:var( --spytial-ed-mono-font-family, ui-monospace, "Cascadia Code", "JetBrains Mono", "SF Mono", Menlo, Consolas, "Liberation Mono", monospace );font-size:.95em;line-height:1.5;letter-spacing:normal;word-spacing:normal;font-variant-ligatures:none;font-feature-settings:normal;font-kerning:none;hyphens:none;text-rendering:auto;tab-size:2;padding:.4em .55em;border:1px solid transparent;border-radius:var(--spytial-ed-radius-sm, 2px);white-space:pre-wrap;word-break:break-word;overflow-wrap:break-word}.spytial-ed--compact .spytial-ed-selector-textarea,.spytial-ed--compact .spytial-ed-selector-mirror{padding:.3em .45em}.spytial-ed-selector-input-wrap--with-synth .spytial-ed-selector-textarea,.spytial-ed-selector-input-wrap--with-synth .spytial-ed-selector-mirror{padding-right:2.3em}.spytial-ed-selector-mirror{position:absolute;inset:0;z-index:0;pointer-events:none;overflow:hidden;color:var(--spytial-ed-text, #221d14);background:transparent}.spytial-ed-selector-textarea{position:relative;z-index:1;display:block;width:100%;min-height:2.2em;resize:none;overflow:hidden;background:transparent;border-color:var(--spytial-ed-border, #d9d2c0);color:transparent;caret-color:var(--spytial-ed-accent, #b5431a);transition:border-color .15s ease,box-shadow .15s ease}.spytial-ed-selector-textarea::placeholder{color:var(--spytial-ed-text-muted, #6e6553);opacity:.65}.spytial-ed-selector-textarea::selection{background:color-mix(in srgb,var(--spytial-ed-accent, #b5431a) 26%,transparent)}.spytial-ed-selector-textarea:focus,.spytial-ed-selector-textarea:focus-visible{outline:none;border-color:var(--spytial-ed-accent, #b5431a);box-shadow:0 0 0 2px color-mix(in srgb,var(--spytial-ed-accent, #b5431a) 20%,transparent)}.spytial-ed-selector-textarea:disabled{cursor:not-allowed}.spytial-ed-selector-input-wrap:has(.spytial-ed-selector-textarea:disabled){background:var(--spytial-ed-surface-raised, #f1ecdf)}.spytial-ed-selector-textarea--plain{color:var(--spytial-ed-text, #221d14)}.spytial-ed-selector--error .spytial-ed-selector-textarea{border-color:var(--spytial-ed-danger, #a32014);box-shadow:inset 0 -2px 0 var(--spytial-ed-danger, #a32014)}.spytial-ed-selector--warning .spytial-ed-selector-textarea{border-color:var(--spytial-ed-warning, #8a6200);box-shadow:inset 0 -2px 0 var(--spytial-ed-warning, #8a6200)}.spytial-ed-syn-keyword{color:var(--spytial-ed-syn-keyword, #6d28a8);font-weight:600}.spytial-ed-syn-type{color:var(--spytial-ed-syn-type, #0e6b6b)}.spytial-ed-syn-relation,.spytial-ed-syn-identifier{color:var(--spytial-ed-syn-relation, #1f4f9e)}.spytial-ed-syn-operator{color:var(--spytial-ed-syn-operator, #b5431a)}.spytial-ed-syn-string{color:var(--spytial-ed-syn-string, #7a5901)}.spytial-ed-syn-number{color:var(--spytial-ed-syn-type, #0e6b6b)}.spytial-ed-syn-comment{color:var(--spytial-ed-syn-comment, #8a8170);font-style:italic}.spytial-ed-selector-synth-btn{position:absolute;top:.25em;right:.25em;z-index:2;inline-size:1.7em;block-size:1.7em;display:inline-flex;align-items:center;justify-content:center;padding:0;font-size:.95em;line-height:1;background:var(--spytial-ed-surface-raised, #f1ecdf);border:1px solid var(--spytial-ed-border, #d9d2c0);border-radius:var(--spytial-ed-radius-sm, 2px);cursor:pointer;transition:border-color .15s ease,background .15s ease,transform .12s ease}.spytial-ed-selector-synth-btn:hover:not(:disabled){border-color:var(--spytial-ed-accent, #b5431a);transform:rotate(-8deg)}.spytial-ed-selector-synth-btn:focus-visible{outline:2px solid var(--spytial-ed-accent, #b5431a);outline-offset:1px}.spytial-ed-selector-synth-btn:disabled{opacity:.5;cursor:not-allowed}.spytial-ed-autocomplete{position:fixed;z-index:1000;margin:0;padding:.2em;list-style:none;overflow-y:auto;background:var(--spytial-ed-surface, #faf8f2);border:1px solid var(--spytial-ed-border, #d9d2c0);border-radius:var(--spytial-ed-radius, 2px);box-shadow:0 1px color-mix(in srgb,var(--spytial-ed-text, #221d14) 8%,transparent),0 8px 24px color-mix(in srgb,var(--spytial-ed-text, #221d14) 18%,transparent);animation:spytial-ed-pop .12s ease-out}.spytial-ed-autocomplete-item{display:flex;align-items:center;gap:.5em;padding:.3em .5em;border-radius:var(--spytial-ed-radius-sm, 2px);cursor:pointer;font-size:.9em}.spytial-ed-autocomplete-item--active{background:color-mix(in srgb,var(--spytial-ed-accent, #b5431a) 14%,transparent)}.spytial-ed-autocomplete-kind{inline-size:.6em;block-size:.6em;border-radius:1px;flex:0 0 auto;background:var(--spytial-ed-text-muted, #6e6553)}.spytial-ed-kind-type{background:var(--spytial-ed-syn-type, #0e6b6b)}.spytial-ed-kind-relation{background:var(--spytial-ed-syn-relation, #1f4f9e)}.spytial-ed-kind-atom{background:var(--spytial-ed-syn-string, #7a5901)}.spytial-ed-kind-keyword{background:var(--spytial-ed-syn-keyword, #6d28a8)}.spytial-ed-kind-snippet{background:var(--spytial-ed-success, #2f6c43)}.spytial-ed-autocomplete-label{font-family:var( --spytial-ed-mono-font-family, ui-monospace, "Cascadia Code", "JetBrains Mono", "SF Mono", Menlo, Consolas, "Liberation Mono", monospace );color:var(--spytial-ed-text, #221d14)}.spytial-ed-autocomplete-detail{margin-left:auto;font-size:.85em;color:var(--spytial-ed-text-muted, #6e6553);white-space:nowrap}.spytial-ed-synth-popover{margin-top:.3em;padding:var(--spytial-ed-gap, 8px);background:var(--spytial-ed-surface-raised, #f1ecdf);border:1px solid var(--spytial-ed-border, #d9d2c0);border-left:3px solid var(--spytial-ed-accent, #b5431a);border-radius:var(--spytial-ed-radius, 2px);display:flex;flex-direction:column;gap:var(--spytial-ed-gap, 8px);animation:spytial-ed-unfold .14s ease-out}.spytial-ed-synth-row{display:flex;gap:.4em}.spytial-ed-synth-input{flex:1 1 auto;min-width:0;font-family:inherit;font-size:.9em;color:var(--spytial-ed-text, #221d14);background:var(--spytial-ed-surface, #faf8f2);border:1px solid var(--spytial-ed-border, #d9d2c0);border-radius:var(--spytial-ed-radius-sm, 2px);padding:.4em .55em}.spytial-ed-synth-input:focus-visible{outline:none;border-color:var(--spytial-ed-accent, #b5431a);box-shadow:0 0 0 2px color-mix(in srgb,var(--spytial-ed-accent, #b5431a) 20%,transparent)}.spytial-ed-synth-generate,.spytial-ed-synth-accept{font-family:var(--spytial-ed-chrome-font);font-size:.82em;font-weight:600;color:var(--spytial-ed-accent-text, #fdf6ec);background:var(--spytial-ed-accent, #b5431a);border:1px solid var(--spytial-ed-accent, #b5431a);border-radius:var(--spytial-ed-radius-sm, 2px);padding:.4em .8em;cursor:pointer;white-space:nowrap;transition:filter .15s ease,transform .1s ease}.spytial-ed-synth-generate:hover:not(:disabled),.spytial-ed-synth-accept:hover:not(:disabled){filter:brightness(1.08)}.spytial-ed-synth-generate:active:not(:disabled),.spytial-ed-synth-accept:active:not(:disabled){transform:translateY(1px)}.spytial-ed-synth-generate:disabled{opacity:.5;cursor:not-allowed}.spytial-ed-synth-dismiss{font-family:var(--spytial-ed-chrome-font);font-size:.82em;color:var(--spytial-ed-text, #221d14);background:transparent;border:1px solid var(--spytial-ed-border, #d9d2c0);border-radius:var(--spytial-ed-radius-sm, 2px);padding:.4em .8em;cursor:pointer}.spytial-ed-synth-generate:focus-visible,.spytial-ed-synth-accept:focus-visible,.spytial-ed-synth-dismiss:focus-visible{outline:2px solid var(--spytial-ed-accent, #b5431a);outline-offset:1px}.spytial-ed-synth-error{color:var(--spytial-ed-danger, #a32014);font-size:.85em}.spytial-ed-synth-result{display:flex;flex-direction:column;gap:.4em}.spytial-ed-synth-preview{margin:0;padding:.4em .55em;font-family:var( --spytial-ed-mono-font-family, ui-monospace, "Cascadia Code", "JetBrains Mono", "SF Mono", Menlo, Consolas, "Liberation Mono", monospace );font-size:.9em;line-height:1.5;background:var(--spytial-ed-surface, #faf8f2);border:1px solid var(--spytial-ed-border, #d9d2c0);border-radius:var(--spytial-ed-radius-sm, 2px);white-space:pre-wrap;word-break:break-word;color:var(--spytial-ed-text, #221d14)}.spytial-ed-synth-explanation{margin:0;font-size:.85em;color:var(--spytial-ed-text-muted, #6e6553)}.spytial-ed-synth-actions{display:flex;gap:.4em}.spytial-ed-diagnostics{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.1em}.spytial-ed-diagnostic{display:flex;align-items:baseline;gap:.4em;font-size:.8em;line-height:1.35;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.spytial-ed-diagnostic-dot{flex:0 0 auto;inline-size:.5em;block-size:.5em;border-radius:50%;align-self:center}.spytial-ed-diagnostic-msg{min-width:0;overflow:hidden;text-overflow:ellipsis}.spytial-ed-diagnostic--error{color:var(--spytial-ed-danger, #a32014)}.spytial-ed-diagnostic--error .spytial-ed-diagnostic-dot{background:var(--spytial-ed-danger, #a32014)}.spytial-ed-diagnostic--warning{color:var(--spytial-ed-warning, #8a6200)}.spytial-ed-diagnostic--warning .spytial-ed-diagnostic-dot{background:var(--spytial-ed-warning, #8a6200)}.spytial-ed-diagnostic--info{color:var(--spytial-ed-text-muted, #6e6553)}.spytial-ed-diagnostic--info .spytial-ed-diagnostic-dot{background:var(--spytial-ed-text-muted, #6e6553)}.spytial-ed-diagnostic-badge{display:inline-flex;align-items:center;justify-content:center;min-inline-size:.9em;block-size:.9em;padding:0 .2em;margin-inline-start:.4em;border-radius:999px;font-size:.7em;font-weight:700;line-height:1;color:#fff;background:var(--spytial-ed-danger, #a32014)}.spytial-ed-diagnostic-badge--warning{background:var(--spytial-ed-warning, #8a6200)}.spytial-ed-diagnostic-badge--info{background:var(--spytial-ed-text-muted, #6e6553)}.spytial-ed{display:block;background:var(--spytial-ed-surface, #faf8f2);border:1px solid var(--spytial-ed-border, #d9d2c0);border-radius:var(--spytial-ed-radius, 2px)}.spytial-ed-toolbar{display:flex;align-items:center;justify-content:space-between;gap:var(--spytial-ed-gap, 8px);padding:calc(var(--spytial-ed-gap, 8px) * .75) var(--spytial-ed-gap, 8px);background:var(--spytial-ed-surface-raised, #f1ecdf);border-bottom:1px solid var(--spytial-ed-border, #d9d2c0)}.spytial-ed-viewtoggle{display:inline-flex;gap:var(--spytial-ed-gap, 8px)}.spytial-ed-viewtoggle-btn{position:relative;display:inline-flex;align-items:center;font-family:var(--spytial-ed-chrome-font);font-size:.78em;font-weight:600;text-transform:uppercase;letter-spacing:.09em;color:var(--spytial-ed-text-muted, #6e6553);background:transparent;border:none;padding:.3em .15em;cursor:pointer;transition:color .15s ease}.spytial-ed-viewtoggle-btn:after{content:"";position:absolute;left:0;right:100%;bottom:-2px;height:2px;background:var(--spytial-ed-accent, #b5431a);transition:right .18s ease}.spytial-ed-viewtoggle-btn:hover:not(:disabled){color:var(--spytial-ed-text, #221d14)}.spytial-ed-viewtoggle-btn--active{color:var(--spytial-ed-accent, #b5431a)}.spytial-ed-viewtoggle-btn--active:after{right:0}.spytial-ed-viewtoggle-btn:focus-visible{outline:2px solid var(--spytial-ed-accent, #b5431a);outline-offset:2px}.spytial-ed-viewtoggle-btn:disabled{opacity:.55;cursor:not-allowed}.spytial-ed-history{display:inline-flex;gap:4px}.spytial-ed-history-btn{font:inherit;font-size:1.05em;line-height:1;color:var(--spytial-ed-text, #221d14);background:transparent;border:1px solid var(--spytial-ed-border, #d9d2c0);border-radius:var(--spytial-ed-radius-sm, 2px);padding:.2em .45em;cursor:pointer;transition:border-color .15s ease,color .15s ease}.spytial-ed-history-btn:hover:not(:disabled){border-color:var(--spytial-ed-accent, #b5431a);color:var(--spytial-ed-accent, #b5431a)}.spytial-ed-history-btn:disabled{opacity:.4;cursor:not-allowed}.spytial-ed-body{padding:var(--spytial-ed-gap, 8px)}.spytial-ed-builder{display:flex;flex-direction:column;gap:calc(var(--spytial-ed-gap, 8px) * 1.25)}.spytial-ed-section-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:calc(var(--spytial-ed-gap, 8px) * .5)}.spytial-ed-section-title{margin:0;font-family:var(--spytial-ed-chrome-font);font-size:.72em;font-weight:700;text-transform:uppercase;letter-spacing:.14em;color:var(--spytial-ed-text-muted, #6e6553)}.spytial-ed-rows{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:4px}.spytial-ed-row{border:1px solid var(--spytial-ed-border, #d9d2c0);border-radius:var(--spytial-ed-radius, 2px);background:var(--spytial-ed-surface, #faf8f2);transition:border-color .15s ease}.spytial-ed-row:hover{border-color:color-mix(in srgb,var(--spytial-ed-text-muted, #6e6553) 55%,var(--spytial-ed-border, #d9d2c0))}.spytial-ed-row--expanded{border-color:var(--spytial-ed-accent, #b5431a)}.spytial-ed-row--error{border-left:3px solid var(--spytial-ed-danger, #a32014)}.spytial-ed-row--warning{border-left:3px solid var(--spytial-ed-warning, #8a6200)}.spytial-ed-row-main{display:flex;align-items:center;gap:4px}.spytial-ed-row-toggle{flex:1 1 auto;display:flex;align-items:center;gap:.55em;min-width:0;font:inherit;text-align:left;color:inherit;background:transparent;border:none;cursor:pointer;padding:calc(var(--spytial-ed-gap, 8px) * .55) var(--spytial-ed-gap, 8px)}.spytial-ed--compact .spytial-ed-row-toggle{padding:calc(var(--spytial-ed-gap, 8px) * .4) calc(var(--spytial-ed-gap, 8px) * .75)}.spytial-ed-badge{display:inline-flex;align-items:center;justify-content:center;inline-size:1.5em;block-size:1.5em;flex:0 0 auto;font-family:var(--spytial-ed-chrome-font);font-size:.72em;font-weight:700;border-radius:var(--spytial-ed-radius-sm, 2px);background:transparent}.spytial-ed-badge--constraint{color:var(--spytial-ed-accent, #b5431a);border:1px solid var(--spytial-ed-accent, #b5431a)}.spytial-ed-badge--directive{color:var(--spytial-ed-syn-type, #0e6b6b);border:1px solid var(--spytial-ed-syn-type, #0e6b6b)}.spytial-ed-badge--unknown{color:var(--spytial-ed-text-muted, #6e6553);border:1px dashed var(--spytial-ed-text-muted, #6e6553)}.spytial-ed-row-type{font-family:var(--spytial-ed-chrome-font);font-size:.88em;font-weight:600;flex:0 0 auto}.spytial-ed-row-negated{color:var(--spytial-ed-danger, #a32014);font-weight:700;flex:0 0 auto}.spytial-ed-row-summary{flex:1 1 auto;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:.85em;color:var(--spytial-ed-text-muted, #6e6553);font-family:var(--spytial-ed-mono-font-family, ui-monospace, monospace)}.spytial-ed-row-summary--muted{font-style:italic;font-family:inherit}.spytial-ed-row-dot{flex:0 0 auto;inline-size:.55em;block-size:.55em;border-radius:50%;background:var(--spytial-ed-text-muted, #6e6553)}.spytial-ed-row-dot--error{background:var(--spytial-ed-danger, #a32014)}.spytial-ed-row-dot--warning{background:var(--spytial-ed-warning, #8a6200)}.spytial-ed-row-panel{padding:var(--spytial-ed-gap, 8px);border-top:1px solid var(--spytial-ed-border, #d9d2c0);background:var(--spytial-ed-surface-raised, #f1ecdf);display:flex;flex-direction:column;gap:var(--spytial-ed-gap, 8px);animation:spytial-ed-unfold .14s ease-out}.spytial-ed-row--unknown{background:var(--spytial-ed-surface-raised, #f1ecdf)}.spytial-ed-row--unknown .spytial-ed-row-main{padding:calc(var(--spytial-ed-gap, 8px) * .55) var(--spytial-ed-gap, 8px);gap:.55em}.spytial-ed-builder-empty{margin:0;font-size:.9em;color:var(--spytial-ed-text-muted, #6e6553);font-style:italic}.spytial-ed-overflow{position:relative;flex:0 0 auto;margin-inline-end:4px}.spytial-ed-overflow-btn{font:inherit;font-size:1.1em;line-height:1;color:var(--spytial-ed-text-muted, #6e6553);background:transparent;border:none;border-radius:var(--spytial-ed-radius-sm, 2px);padding:.1em .4em;cursor:pointer}.spytial-ed-overflow-btn:hover{background:var(--spytial-ed-border, #d9d2c0)}.spytial-ed-overflow-btn:disabled{opacity:.4;cursor:not-allowed}.spytial-ed-overflow-menu,.spytial-ed-add-menu{position:fixed;z-index:1000;min-inline-size:10rem;background:var(--spytial-ed-surface, #faf8f2);border:1px solid var(--spytial-ed-border, #d9d2c0);border-radius:var(--spytial-ed-radius, 2px);box-shadow:0 1px color-mix(in srgb,var(--spytial-ed-text, #221d14) 8%,transparent),0 8px 24px color-mix(in srgb,var(--spytial-ed-text, #221d14) 18%,transparent);padding:4px;animation:spytial-ed-pop .12s ease-out}.spytial-ed-overflow-menu{list-style:none;margin:0;overflow-y:auto}.spytial-ed-overflow-item,.spytial-ed-add-item{display:block;inline-size:100%;font:inherit;font-size:.88em;text-align:left;color:var(--spytial-ed-text, #221d14);background:transparent;border:none;border-radius:var(--spytial-ed-radius-sm, 2px);padding:.4em .6em;cursor:pointer}.spytial-ed-overflow-item:hover:not(:disabled),.spytial-ed-add-item:hover{background:var(--spytial-ed-surface-raised, #f1ecdf)}.spytial-ed-overflow-item:disabled{opacity:.4;cursor:not-allowed}.spytial-ed-overflow-item--danger{color:var(--spytial-ed-danger, #a32014)}.spytial-ed-add{position:relative}.spytial-ed-add-btn{font-family:var(--spytial-ed-chrome-font);font-size:.78em;font-weight:600;color:var(--spytial-ed-accent, #b5431a);background:transparent;border:1px solid var(--spytial-ed-accent, #b5431a);border-radius:var(--spytial-ed-radius-sm, 2px);padding:.28em .6em;cursor:pointer;transition:background .15s ease,color .15s ease,transform .1s ease}.spytial-ed-add-btn:hover:not(:disabled){background:var(--spytial-ed-accent, #b5431a);color:var(--spytial-ed-accent-text, #fdf6ec)}.spytial-ed-add-btn:active:not(:disabled){transform:translateY(1px)}.spytial-ed-add-btn:focus-visible{outline:2px solid var(--spytial-ed-accent, #b5431a);outline-offset:2px}.spytial-ed-add-btn:disabled{opacity:.5;cursor:not-allowed}.spytial-ed-add-menu{display:flex;flex-direction:column;min-inline-size:15rem}.spytial-ed-add-search{inline-size:100%;flex:0 0 auto;font:inherit;font-size:.85em;color:var(--spytial-ed-text, #221d14);background:var(--spytial-ed-surface, #faf8f2);border:1px solid var(--spytial-ed-border, #d9d2c0);border-radius:var(--spytial-ed-radius-sm, 2px);padding:.35em .5em;margin-bottom:4px}.spytial-ed-add-search:focus-visible{outline:none;border-color:var(--spytial-ed-accent, #b5431a)}.spytial-ed-add-list{list-style:none;margin:0;padding:0;flex:1 1 auto;min-block-size:0;overflow-y:auto}.spytial-ed-add-item{display:flex;flex-direction:column;gap:1px}.spytial-ed-add-item-label{font-family:var(--spytial-ed-chrome-font);font-size:.95em;font-weight:600}.spytial-ed-add-item-desc{font-size:.78em;color:var(--spytial-ed-text-muted, #6e6553)}.spytial-ed-add-empty{font-size:.85em;color:var(--spytial-ed-text-muted, #6e6553);padding:.4em .6em}.spytial-ed-code{display:flex;flex-direction:column;gap:var(--spytial-ed-gap, 8px)}.spytial-ed-code-notice{font-size:.82em;color:var(--spytial-ed-warning, #8a6200);background:color-mix(in srgb,var(--spytial-ed-warning, #8a6200) 10%,transparent);border:1px solid var(--spytial-ed-warning, #8a6200);border-radius:var(--spytial-ed-radius-sm, 2px);padding:.4em .6em}.spytial-ed-code-cm{display:block}.spytial-ed-code-cm .cm-editor{max-height:32rem}.spytial-ed-code-cm--disabled{opacity:.65}.spytial-ed-code-editor{display:flex;border:1px solid var(--spytial-ed-border, #d9d2c0);border-radius:var(--spytial-ed-radius, 2px);background:var(--spytial-ed-surface, #faf8f2);overflow:hidden}.spytial-ed-code-gutter{flex:0 0 auto;overflow:hidden;text-align:right;user-select:none;padding:.5em .4em;color:var(--spytial-ed-text-muted, #6e6553);background:var(--spytial-ed-surface-raised, #f1ecdf);border-inline-end:1px solid var(--spytial-ed-border, #d9d2c0);font-family:var(--spytial-ed-mono-font-family, ui-monospace, monospace);font-size:.85em;line-height:1.5}.spytial-ed-code-gutter-line{min-inline-size:1.6em}.spytial-ed-code-input-wrap{position:relative;flex:1 1 auto;min-width:0;display:flex}.spytial-ed-code-textarea,.spytial-ed-code-mirror{margin:0;font-family:var(--spytial-ed-mono-font-family, ui-monospace, monospace);font-size:.85em;line-height:1.5;letter-spacing:normal;word-spacing:normal;font-variant-ligatures:none;font-feature-settings:normal;font-kerning:none;hyphens:none;text-rendering:auto;padding:.5em .6em;border:none;white-space:pre;overflow-wrap:normal;tab-size:2}.spytial-ed-code-mirror{position:absolute;inset:0;z-index:0;pointer-events:none;overflow:hidden;color:var(--spytial-ed-text, #221d14);background:transparent}.spytial-ed-code-textarea{position:relative;z-index:1;flex:1 1 auto;width:100%;resize:vertical;min-block-size:12rem;color:transparent;caret-color:var(--spytial-ed-accent, #b5431a);background:transparent;outline:none}.spytial-ed-code-textarea::selection{background:color-mix(in srgb,var(--spytial-ed-accent, #b5431a) 26%,transparent)}.spytial-ed-code-textarea:disabled{opacity:.6}.spytial-ed-code-textarea--plain{color:var(--spytial-ed-text, #221d14)}.spytial-ed-code-textarea:disabled+.spytial-ed-code-mirror,.spytial-ed-code-input-wrap:has(.spytial-ed-code-textarea:disabled) .spytial-ed-code-mirror{opacity:.6}.spytial-ed-code-diagnostics{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:2px}.spytial-ed-code-diagnostic-loc{font-family:var(--spytial-ed-mono-font-family, ui-monospace, monospace);font-size:.85em;color:var(--spytial-ed-text-muted, #6e6553);flex:0 0 auto}@media(prefers-reduced-motion:reduce){.spytial-ed *,.spytial-ed *:before,.spytial-ed *:after,.spytial-ed-autocomplete,.spytial-ed-overflow-menu,.spytial-ed-add-menu,.spytial-ed-synth-popover,.spytial-ed-row-panel{animation:none!important;transition:none!important}}.spytial-ed-group{border:1px solid var(--spytial-ed-border, #d0d7de);border-radius:6px;padding:.25rem .6rem .4rem;margin:.25rem 0;min-inline-size:0}.spytial-ed-group-legend{display:inline-flex;align-items:center;gap:.35rem;padding-inline:.3rem;font-size:.78rem;font-weight:600;color:var(--spytial-ed-muted, #656d76)}.spytial-ed-group-remove{border:none;background:transparent;cursor:pointer;font-size:1rem;line-height:1;padding:0 .15rem;color:var(--spytial-ed-muted, #656d76)}.spytial-ed-group-remove:hover{color:var(--spytial-ed-danger, #cf222e)}.spytial-ed-group-add{align-self:flex-start;border:1px dashed var(--spytial-ed-border, #d0d7de);border-radius:6px;background:transparent;cursor:pointer;padding:.3rem .6rem;margin:.15rem 0;font-size:.78rem;color:var(--spytial-ed-accent, #0969da)}.spytial-ed-group-add:hover{background:var(--spytial-ed-hover, #f6f8fa)}
1
+ .instance-builder{border:1px solid #e0e0e0;border-radius:8px;padding:20px;background:#fff;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;max-width:800px}.instance-builder__header{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px;padding-bottom:10px;border-bottom:1px solid #e0e0e0}.instance-builder__header h2{margin:0;color:#333;font-size:1.5rem}.instance-builder__stats{display:flex;gap:15px;font-size:.9rem;color:#666}.instance-builder__stats span{background:#f5f5f5;padding:4px 8px;border-radius:4px}.instance-builder__error{background:#fee;border:1px solid #fcc;color:#c33;padding:10px 15px;border-radius:4px;margin-bottom:20px;display:flex;justify-content:space-between;align-items:center}.instance-builder__error button{background:none;border:none;color:#c33;font-size:1.2rem;cursor:pointer;padding:0;width:20px;height:20px}.instance-builder__content{display:flex;flex-direction:column;gap:30px}.relation-atoms{background:#f9f9f9;border:1px solid #e0e0e0;border-radius:4px;padding:12px;margin:8px 0}.atom-selector{display:flex;align-items:center;gap:8px;margin-bottom:8px}.atom-selector label{min-width:80px;font-weight:500}.atom-selector select{flex:1;min-width:200px}.arity-controls{display:flex;gap:8px;padding-top:8px;border-top:1px solid #e0e0e0}.arity-controls button{background:#6c757d;color:#fff;border:none;padding:6px 12px;border-radius:4px;cursor:pointer;font-size:.8rem}.arity-controls button:hover:not(:disabled){background:#5a6268}.instance-builder__section{border:1px solid #f0f0f0;border-radius:6px;padding:20px;background:#fafafa}.instance-builder__section h3{margin:0 0 15px;color:#444;font-size:1.2rem;border-bottom:1px solid #e0e0e0;padding-bottom:8px}.instance-builder__form{margin-bottom:20px}.form-row{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.form-row input,.form-row select{padding:8px 12px;border:1px solid #ddd;border-radius:4px;font-size:.9rem;min-width:120px;flex:1}.form-row input:focus,.form-row select:focus{outline:none;border-color:#007acc;box-shadow:0 0 0 2px #007acc33}.form-row button{background:#007acc;color:#fff;border:none;padding:8px 16px;border-radius:4px;cursor:pointer;font-size:.9rem;white-space:nowrap}.form-row button:hover:not(:disabled){background:#005a9e}.form-row button:disabled{background:#ccc;cursor:not-allowed}.instance-builder__list{max-height:300px;overflow-y:auto;border:1px solid #e0e0e0;border-radius:4px;background:#fff}.empty-state{padding:20px;text-align:center;color:#888;font-style:italic;margin:0}.list-item{display:flex;justify-content:space-between;align-items:center;padding:12px 15px;border-bottom:1px solid #f0f0f0}.list-item:last-child{border-bottom:none}.list-item:hover{background:#f9f9f9}.item-info{display:flex;align-items:center;gap:10px;flex:1}.item-info strong{color:#333;font-weight:600}.item-label{color:#666;font-style:italic}.item-type{background:#e7f3ff;color:#06c;padding:2px 6px;border-radius:3px;font-size:.8rem;font-weight:500}.remove-button{background:#dc3545;color:#fff;border:none;padding:6px 12px;border-radius:4px;cursor:pointer;font-size:.8rem}.remove-button:hover:not(:disabled){background:#c82333}.remove-button:disabled{background:#ccc;cursor:not-allowed}.relation-group{margin-bottom:15px}.relation-group h4{margin:0 0 10px;color:#555;font-size:1rem;padding:8px 15px;background:#f0f8ff;border-left:3px solid #007acc}.relation-group .list-item{margin-left:15px;border-left:2px solid #e0e0e0}.instance-builder__actions{display:flex;gap:15px;align-items:flex-start;padding-top:20px;border-top:1px solid #e0e0e0}.clear-button{background:#6c757d;color:#fff;border:none;padding:10px 20px;border-radius:4px;cursor:pointer;font-size:.9rem}.clear-button:hover:not(:disabled){background:#5a6268}.clear-button:disabled{background:#ccc;cursor:not-allowed}.import-section{flex:1}.import-section summary{cursor:pointer;font-weight:500;color:#007acc;padding:10px 0}.import-section summary:hover{color:#005a9e}.import-section textarea{width:100%;padding:10px;border:1px solid #ddd;border-radius:4px;font-family:Courier New,monospace;font-size:.9rem;resize:vertical;margin-top:10px}.import-section textarea:focus{outline:none;border-color:#007acc;box-shadow:0 0 0 2px #007acc33}@media(max-width:768px){.instance-builder{padding:15px}.instance-builder__header{flex-direction:column;align-items:flex-start;gap:10px}.form-row{flex-direction:column;align-items:stretch}.form-row input,.form-row select,.form-row button{min-width:auto;width:100%}.instance-builder__actions{flex-direction:column}.list-item{flex-direction:column;align-items:flex-start;gap:10px}.item-info{flex-direction:column;align-items:flex-start;gap:5px}}.spytial-ed{font-family:var( --spytial-ed-font-family, "Avenir Next", "Avenir", "Seravek", "Segoe UI Variable", "Segoe UI", "Trebuchet MS", sans-serif );font-size:var(--spytial-ed-font-size, 14px);color:var(--spytial-ed-text, #221d14);--spytial-ed-gap: var(--spytial-ed-spacing, 8px);--spytial-ed-radius-sm: var(--spytial-ed-radius, 2px);--spytial-ed-chrome-font: var( --spytial-ed-mono-font-family, ui-monospace, "Cascadia Code", "JetBrains Mono", "SF Mono", Menlo, Consolas, "Liberation Mono", monospace )}.spytial-ed *,.spytial-ed *:before,.spytial-ed *:after{box-sizing:border-box}.spytial-ed--compact{font-size:calc(var(--spytial-ed-font-size, 14px) - 1px);--spytial-ed-gap: calc(var(--spytial-ed-spacing, 8px) * .625)}@keyframes spytial-ed-pop{0%{opacity:0;transform:translateY(-3px) scale(.99)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes spytial-ed-unfold{0%{opacity:0;transform:translateY(-2px)}to{opacity:1;transform:translateY(0)}}.spytial-ed-fields{display:flex;flex-direction:column;gap:var(--spytial-ed-gap, 8px);width:100%}.spytial-ed-field{display:grid;grid-template-columns:minmax(7rem,9rem) 1fr;align-items:start;gap:var(--spytial-ed-gap, 8px)}.spytial-ed--compact .spytial-ed-field{grid-template-columns:minmax(6rem,8rem) 1fr}.spytial-ed-field-label{font-family:var(--spytial-ed-chrome-font);font-size:.72em;font-weight:600;text-transform:uppercase;letter-spacing:.09em;color:var(--spytial-ed-text-muted, #6e6553);padding-top:.55em;line-height:1.3;cursor:default;user-select:none}.spytial-ed-field-required{color:var(--spytial-ed-danger, #a32014);font-weight:700}.spytial-ed-field-control{display:flex;flex-direction:column;gap:.25em;min-width:0}.spytial-ed-input{width:100%;font-family:inherit;font-size:inherit;color:var(--spytial-ed-text, #221d14);background:var(--spytial-ed-surface, #faf8f2);border:1px solid var(--spytial-ed-border, #d9d2c0);border-radius:var(--spytial-ed-radius-sm, 2px);padding:.4em .55em;line-height:1.4;transition:border-color .15s ease,box-shadow .15s ease}.spytial-ed--compact .spytial-ed-input{padding:.3em .45em}.spytial-ed-input::placeholder{color:var(--spytial-ed-text-muted, #6e6553);opacity:.65}.spytial-ed-input:focus,.spytial-ed-input:focus-visible{outline:none;border-color:var(--spytial-ed-accent, #b5431a);box-shadow:0 0 0 2px color-mix(in srgb,var(--spytial-ed-accent, #b5431a) 20%,transparent)}.spytial-ed-input:disabled{background:var(--spytial-ed-surface-raised, #f1ecdf);color:var(--spytial-ed-text-muted, #6e6553);cursor:not-allowed}.spytial-ed-input--number{width:8rem}.spytial-ed-input[aria-invalid=true]{border-color:var(--spytial-ed-danger, #a32014)}.spytial-ed-color{display:flex;align-items:center;gap:var(--spytial-ed-gap, 8px)}.spytial-ed-color-swatch{inline-size:2rem;block-size:2rem;padding:0;border:1px solid var(--spytial-ed-border, #d9d2c0);border-radius:var(--spytial-ed-radius-sm, 2px);background:var(--spytial-ed-surface, #faf8f2);cursor:pointer}.spytial-ed-color-swatch:focus-visible{outline:2px solid var(--spytial-ed-accent, #b5431a);outline-offset:1px}.spytial-ed-color-text{width:9rem;font-family:var( --spytial-ed-mono-font-family, ui-monospace, "Cascadia Code", "JetBrains Mono", "SF Mono", Menlo, Consolas, "Liberation Mono", monospace )}.spytial-ed-pills{display:flex;flex-wrap:wrap;gap:.3em}.spytial-ed-pill{font-family:var(--spytial-ed-chrome-font);font-size:.8em;color:var(--spytial-ed-text, #221d14);background:transparent;border:1px solid var(--spytial-ed-border, #d9d2c0);border-radius:var(--spytial-ed-radius-sm, 2px);padding:.28em .65em;cursor:pointer;transition:background .15s ease,border-color .15s ease,color .15s ease,transform .1s ease}.spytial-ed-pill:hover:not(:disabled){border-color:var(--spytial-ed-accent, #b5431a);color:var(--spytial-ed-accent, #b5431a)}.spytial-ed-pill:active:not(:disabled){transform:translateY(1px)}.spytial-ed-pill:focus-visible{outline:2px solid var(--spytial-ed-accent, #b5431a);outline-offset:1px}.spytial-ed-pill--active{background:var(--spytial-ed-accent, #b5431a);border-color:var(--spytial-ed-accent, #b5431a);color:var(--spytial-ed-accent-text, #fdf6ec);font-weight:600}.spytial-ed-pill--active:hover:not(:disabled){color:var(--spytial-ed-accent-text, #fdf6ec)}.spytial-ed-pill--negated{background:var(--spytial-ed-danger, #a32014);border-color:var(--spytial-ed-danger, #a32014)}.spytial-ed-pill--negated:hover:not(:disabled){border-color:var(--spytial-ed-danger, #a32014)}.spytial-ed-pill:disabled{opacity:.55;cursor:not-allowed}.spytial-ed-switch{position:relative;inline-size:2.4rem;block-size:1.35rem;padding:0;border:1px solid var(--spytial-ed-border, #d9d2c0);border-radius:999px;background:var(--spytial-ed-surface-raised, #f1ecdf);cursor:pointer;transition:background .15s ease,border-color .15s ease}.spytial-ed-switch-thumb{position:absolute;top:50%;left:.18rem;transform:translateY(-50%);inline-size:.95rem;block-size:.95rem;border-radius:50%;background:var(--spytial-ed-surface, #faf8f2);box-shadow:0 1px 2px #00000040;transition:left .15s ease}.spytial-ed-switch--on{background:var(--spytial-ed-accent, #b5431a);border-color:var(--spytial-ed-accent, #b5431a)}.spytial-ed-switch--on .spytial-ed-switch-thumb{left:calc(100% - 1.13rem)}.spytial-ed-switch:focus-visible{outline:2px solid var(--spytial-ed-accent, #b5431a);outline-offset:2px}.spytial-ed-switch:disabled{opacity:.55;cursor:not-allowed}.spytial-ed-selector{display:flex;flex-direction:column;gap:.25em;width:100%}.spytial-ed-selector-input-wrap{position:relative;width:100%;background:var(--spytial-ed-surface, #faf8f2);border-radius:var(--spytial-ed-radius-sm, 2px)}.spytial-ed-selector-textarea,.spytial-ed-selector-mirror{margin:0;font-family:var( --spytial-ed-mono-font-family, ui-monospace, "Cascadia Code", "JetBrains Mono", "SF Mono", Menlo, Consolas, "Liberation Mono", monospace );font-size:.95em;line-height:1.5;letter-spacing:normal;word-spacing:normal;font-variant-ligatures:none;font-feature-settings:normal;font-kerning:none;hyphens:none;text-rendering:auto;tab-size:2;padding:.4em .55em;border:1px solid transparent;border-radius:var(--spytial-ed-radius-sm, 2px);white-space:pre-wrap;word-break:break-word;overflow-wrap:break-word}.spytial-ed--compact .spytial-ed-selector-textarea,.spytial-ed--compact .spytial-ed-selector-mirror{padding:.3em .45em}.spytial-ed-selector-input-wrap--with-synth .spytial-ed-selector-textarea,.spytial-ed-selector-input-wrap--with-synth .spytial-ed-selector-mirror{padding-right:2.3em}.spytial-ed-selector-mirror{position:absolute;inset:0;z-index:0;pointer-events:none;overflow:hidden;color:var(--spytial-ed-text, #221d14);background:transparent}.spytial-ed-selector-textarea{position:relative;z-index:1;display:block;width:100%;min-height:2.2em;resize:none;overflow:hidden;background:transparent;border-color:var(--spytial-ed-border, #d9d2c0);color:transparent;caret-color:var(--spytial-ed-accent, #b5431a);transition:border-color .15s ease,box-shadow .15s ease}.spytial-ed-selector-textarea::placeholder{color:var(--spytial-ed-text-muted, #6e6553);opacity:.65}.spytial-ed-selector-textarea::selection{background:color-mix(in srgb,var(--spytial-ed-accent, #b5431a) 26%,transparent)}.spytial-ed-selector-textarea:focus,.spytial-ed-selector-textarea:focus-visible{outline:none;border-color:var(--spytial-ed-accent, #b5431a);box-shadow:0 0 0 2px color-mix(in srgb,var(--spytial-ed-accent, #b5431a) 20%,transparent)}.spytial-ed-selector-textarea:disabled{cursor:not-allowed}.spytial-ed-selector-input-wrap:has(.spytial-ed-selector-textarea:disabled){background:var(--spytial-ed-surface-raised, #f1ecdf)}.spytial-ed-selector-textarea--plain{color:var(--spytial-ed-text, #221d14)}.spytial-ed-selector--error .spytial-ed-selector-textarea{border-color:var(--spytial-ed-danger, #a32014);box-shadow:inset 0 -2px 0 var(--spytial-ed-danger, #a32014)}.spytial-ed-selector--warning .spytial-ed-selector-textarea{border-color:var(--spytial-ed-warning, #8a6200);box-shadow:inset 0 -2px 0 var(--spytial-ed-warning, #8a6200)}.spytial-ed-syn-keyword{color:var(--spytial-ed-syn-keyword, #6d28a8);font-weight:600}.spytial-ed-syn-type{color:var(--spytial-ed-syn-type, #0e6b6b)}.spytial-ed-syn-relation,.spytial-ed-syn-identifier{color:var(--spytial-ed-syn-relation, #1f4f9e)}.spytial-ed-syn-operator{color:var(--spytial-ed-syn-operator, #b5431a)}.spytial-ed-syn-string{color:var(--spytial-ed-syn-string, #7a5901)}.spytial-ed-syn-number{color:var(--spytial-ed-syn-type, #0e6b6b)}.spytial-ed-syn-comment{color:var(--spytial-ed-syn-comment, #8a8170);font-style:italic}.spytial-ed-selector-synth-btn{position:absolute;top:.25em;right:.25em;z-index:2;inline-size:1.7em;block-size:1.7em;display:inline-flex;align-items:center;justify-content:center;padding:0;font-size:.95em;line-height:1;background:var(--spytial-ed-surface-raised, #f1ecdf);border:1px solid var(--spytial-ed-border, #d9d2c0);border-radius:var(--spytial-ed-radius-sm, 2px);cursor:pointer;transition:border-color .15s ease,background .15s ease,transform .12s ease}.spytial-ed-selector-synth-btn:hover:not(:disabled){border-color:var(--spytial-ed-accent, #b5431a);transform:rotate(-8deg)}.spytial-ed-selector-synth-btn:focus-visible{outline:2px solid var(--spytial-ed-accent, #b5431a);outline-offset:1px}.spytial-ed-selector-synth-btn:disabled{opacity:.5;cursor:not-allowed}.spytial-ed-autocomplete{position:fixed;z-index:1000;margin:0;padding:.2em;list-style:none;overflow-y:auto;background:var(--spytial-ed-surface, #faf8f2);border:1px solid var(--spytial-ed-border, #d9d2c0);border-radius:var(--spytial-ed-radius, 2px);box-shadow:0 1px color-mix(in srgb,var(--spytial-ed-text, #221d14) 8%,transparent),0 8px 24px color-mix(in srgb,var(--spytial-ed-text, #221d14) 18%,transparent);animation:spytial-ed-pop .12s ease-out}.spytial-ed-autocomplete-item{display:flex;align-items:center;gap:.5em;padding:.3em .5em;border-radius:var(--spytial-ed-radius-sm, 2px);cursor:pointer;font-size:.9em}.spytial-ed-autocomplete-item--active{background:color-mix(in srgb,var(--spytial-ed-accent, #b5431a) 14%,transparent)}.spytial-ed-autocomplete-kind{inline-size:.6em;block-size:.6em;border-radius:1px;flex:0 0 auto;background:var(--spytial-ed-text-muted, #6e6553)}.spytial-ed-kind-type{background:var(--spytial-ed-syn-type, #0e6b6b)}.spytial-ed-kind-relation{background:var(--spytial-ed-syn-relation, #1f4f9e)}.spytial-ed-kind-atom{background:var(--spytial-ed-syn-string, #7a5901)}.spytial-ed-kind-keyword{background:var(--spytial-ed-syn-keyword, #6d28a8)}.spytial-ed-kind-snippet{background:var(--spytial-ed-success, #2f6c43)}.spytial-ed-autocomplete-label{font-family:var( --spytial-ed-mono-font-family, ui-monospace, "Cascadia Code", "JetBrains Mono", "SF Mono", Menlo, Consolas, "Liberation Mono", monospace );color:var(--spytial-ed-text, #221d14)}.spytial-ed-autocomplete-detail{margin-left:auto;font-size:.85em;color:var(--spytial-ed-text-muted, #6e6553);white-space:nowrap}.spytial-ed-synth-popover{margin-top:.3em;padding:var(--spytial-ed-gap, 8px);background:var(--spytial-ed-surface-raised, #f1ecdf);border:1px solid var(--spytial-ed-border, #d9d2c0);border-left:3px solid var(--spytial-ed-accent, #b5431a);border-radius:var(--spytial-ed-radius, 2px);display:flex;flex-direction:column;gap:var(--spytial-ed-gap, 8px);animation:spytial-ed-unfold .14s ease-out}.spytial-ed-synth-row{display:flex;gap:.4em}.spytial-ed-synth-input{flex:1 1 auto;min-width:0;font-family:inherit;font-size:.9em;color:var(--spytial-ed-text, #221d14);background:var(--spytial-ed-surface, #faf8f2);border:1px solid var(--spytial-ed-border, #d9d2c0);border-radius:var(--spytial-ed-radius-sm, 2px);padding:.4em .55em}.spytial-ed-synth-input:focus-visible{outline:none;border-color:var(--spytial-ed-accent, #b5431a);box-shadow:0 0 0 2px color-mix(in srgb,var(--spytial-ed-accent, #b5431a) 20%,transparent)}.spytial-ed-synth-generate,.spytial-ed-synth-accept{font-family:var(--spytial-ed-chrome-font);font-size:.82em;font-weight:600;color:var(--spytial-ed-accent-text, #fdf6ec);background:var(--spytial-ed-accent, #b5431a);border:1px solid var(--spytial-ed-accent, #b5431a);border-radius:var(--spytial-ed-radius-sm, 2px);padding:.4em .8em;cursor:pointer;white-space:nowrap;transition:filter .15s ease,transform .1s ease}.spytial-ed-synth-generate:hover:not(:disabled),.spytial-ed-synth-accept:hover:not(:disabled){filter:brightness(1.08)}.spytial-ed-synth-generate:active:not(:disabled),.spytial-ed-synth-accept:active:not(:disabled){transform:translateY(1px)}.spytial-ed-synth-generate:disabled{opacity:.5;cursor:not-allowed}.spytial-ed-synth-dismiss{font-family:var(--spytial-ed-chrome-font);font-size:.82em;color:var(--spytial-ed-text, #221d14);background:transparent;border:1px solid var(--spytial-ed-border, #d9d2c0);border-radius:var(--spytial-ed-radius-sm, 2px);padding:.4em .8em;cursor:pointer}.spytial-ed-synth-generate:focus-visible,.spytial-ed-synth-accept:focus-visible,.spytial-ed-synth-dismiss:focus-visible{outline:2px solid var(--spytial-ed-accent, #b5431a);outline-offset:1px}.spytial-ed-synth-error{color:var(--spytial-ed-danger, #a32014);font-size:.85em}.spytial-ed-synth-result{display:flex;flex-direction:column;gap:.4em}.spytial-ed-synth-preview{margin:0;padding:.4em .55em;font-family:var( --spytial-ed-mono-font-family, ui-monospace, "Cascadia Code", "JetBrains Mono", "SF Mono", Menlo, Consolas, "Liberation Mono", monospace );font-size:.9em;line-height:1.5;background:var(--spytial-ed-surface, #faf8f2);border:1px solid var(--spytial-ed-border, #d9d2c0);border-radius:var(--spytial-ed-radius-sm, 2px);white-space:pre-wrap;word-break:break-word;color:var(--spytial-ed-text, #221d14)}.spytial-ed-synth-explanation{margin:0;font-size:.85em;color:var(--spytial-ed-text-muted, #6e6553)}.spytial-ed-synth-actions{display:flex;gap:.4em}.spytial-ed-diagnostics{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.1em}.spytial-ed-diagnostic{display:flex;align-items:baseline;gap:.4em;font-size:.8em;line-height:1.35;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.spytial-ed-diagnostic-dot{flex:0 0 auto;inline-size:.5em;block-size:.5em;border-radius:50%;align-self:center}.spytial-ed-diagnostic-msg{min-width:0;overflow:hidden;text-overflow:ellipsis}.spytial-ed-diagnostic--error{color:var(--spytial-ed-danger, #a32014)}.spytial-ed-diagnostic--error .spytial-ed-diagnostic-dot{background:var(--spytial-ed-danger, #a32014)}.spytial-ed-diagnostic--warning{color:var(--spytial-ed-warning, #8a6200)}.spytial-ed-diagnostic--warning .spytial-ed-diagnostic-dot{background:var(--spytial-ed-warning, #8a6200)}.spytial-ed-diagnostic--info{color:var(--spytial-ed-text-muted, #6e6553)}.spytial-ed-diagnostic--info .spytial-ed-diagnostic-dot{background:var(--spytial-ed-text-muted, #6e6553)}.spytial-ed-diagnostic-badge{display:inline-flex;align-items:center;justify-content:center;min-inline-size:.9em;block-size:.9em;padding:0 .2em;margin-inline-start:.4em;border-radius:999px;font-size:.7em;font-weight:700;line-height:1;color:#fff;background:var(--spytial-ed-danger, #a32014)}.spytial-ed-diagnostic-badge--warning{background:var(--spytial-ed-warning, #8a6200)}.spytial-ed-diagnostic-badge--info{background:var(--spytial-ed-text-muted, #6e6553)}.spytial-ed{display:block;background:var(--spytial-ed-surface, #faf8f2);border:1px solid var(--spytial-ed-border, #d9d2c0);border-radius:var(--spytial-ed-radius, 2px)}.spytial-ed-toolbar{display:flex;align-items:center;justify-content:space-between;gap:var(--spytial-ed-gap, 8px);padding:calc(var(--spytial-ed-gap, 8px) * .75) var(--spytial-ed-gap, 8px);background:var(--spytial-ed-surface-raised, #f1ecdf);border-bottom:1px solid var(--spytial-ed-border, #d9d2c0)}.spytial-ed-viewtoggle{display:inline-flex;gap:var(--spytial-ed-gap, 8px)}.spytial-ed-viewtoggle-btn{position:relative;display:inline-flex;align-items:center;font-family:var(--spytial-ed-chrome-font);font-size:.78em;font-weight:600;text-transform:uppercase;letter-spacing:.09em;color:var(--spytial-ed-text-muted, #6e6553);background:transparent;border:none;padding:.3em .15em;cursor:pointer;transition:color .15s ease}.spytial-ed-viewtoggle-btn:after{content:"";position:absolute;left:0;right:100%;bottom:-2px;height:2px;background:var(--spytial-ed-accent, #b5431a);transition:right .18s ease}.spytial-ed-viewtoggle-btn:hover:not(:disabled){color:var(--spytial-ed-text, #221d14)}.spytial-ed-viewtoggle-btn--active{color:var(--spytial-ed-accent, #b5431a)}.spytial-ed-viewtoggle-btn--active:after{right:0}.spytial-ed-viewtoggle-btn:focus-visible{outline:2px solid var(--spytial-ed-accent, #b5431a);outline-offset:2px}.spytial-ed-viewtoggle-btn:disabled{opacity:.55;cursor:not-allowed}.spytial-ed-toolbar-actions{display:inline-flex;align-items:center;gap:var(--spytial-ed-gap, 8px)}.spytial-ed-history{display:inline-flex;gap:4px}.spytial-ed-suggest-btn{display:inline-flex;align-items:center;gap:.35em;font-family:var(--spytial-ed-chrome-font);font-size:.78em;font-weight:600;text-transform:uppercase;letter-spacing:.09em;color:var(--spytial-ed-accent, #b5431a);background:transparent;border:1px solid var(--spytial-ed-accent, #b5431a);border-radius:var(--spytial-ed-radius-sm, 2px);padding:.3em .7em;cursor:pointer;white-space:nowrap;transition:background .15s ease,color .15s ease}.spytial-ed-suggest-btn:hover:not(:disabled){color:var(--spytial-ed-accent-text, #fdf6ec);background:var(--spytial-ed-accent, #b5431a)}.spytial-ed-suggest-btn:focus-visible{outline:2px solid var(--spytial-ed-accent, #b5431a);outline-offset:2px}.spytial-ed-suggest-btn:disabled{opacity:.5;cursor:not-allowed}.spytial-ed-suggest-error{margin:0;padding:calc(var(--spytial-ed-gap, 8px) * .75) var(--spytial-ed-gap, 8px);font-size:.85em;color:var(--spytial-ed-danger, #a32014);background:color-mix(in srgb,var(--spytial-ed-danger, #a32014) 8%,transparent);border-bottom:1px solid var(--spytial-ed-border, #d9d2c0)}.spytial-ed-suggestions{padding:calc(var(--spytial-ed-gap, 8px) * .75) var(--spytial-ed-gap, 8px);background:var(--spytial-ed-surface-raised, #f1ecdf);border-bottom:1px solid var(--spytial-ed-border, #d9d2c0);border-left:3px solid var(--spytial-ed-accent, #b5431a);animation:spytial-ed-unfold .14s ease-out}.spytial-ed-suggestions-head{display:flex;align-items:center;justify-content:space-between;gap:var(--spytial-ed-gap, 8px)}.spytial-ed-suggestions-title{font-family:var(--spytial-ed-chrome-font);font-size:.74em;font-weight:600;text-transform:uppercase;letter-spacing:.09em;color:var(--spytial-ed-text-muted, #6e6553)}.spytial-ed-suggestions-dismiss{font:inherit;font-size:1.05em;line-height:1;color:var(--spytial-ed-text-muted, #6e6553);background:transparent;border:none;padding:0 .2em;cursor:pointer}.spytial-ed-suggestions-dismiss:hover{color:var(--spytial-ed-accent, #b5431a)}.spytial-ed-suggestions-dismiss:focus-visible{outline:2px solid var(--spytial-ed-accent, #b5431a);outline-offset:1px}.spytial-ed-suggestions-list,.spytial-ed-suggestions-notes{list-style:none;margin:calc(var(--spytial-ed-gap, 8px) * .5) 0 0;padding:0;display:flex;flex-direction:column;gap:calc(var(--spytial-ed-gap, 8px) * .5)}.spytial-ed-suggestions-notes{font-size:.82em;color:var(--spytial-ed-text-muted, #6e6553);border-top:1px solid var(--spytial-ed-border, #d9d2c0);padding-top:calc(var(--spytial-ed-gap, 8px) * .5)}.spytial-ed-suggestion--omitted{opacity:.62}.spytial-ed-suggestion-head{display:flex;align-items:baseline;flex-wrap:wrap;gap:.4em}.spytial-ed-suggestion-text{flex:1 1 12em;font-size:.88em;color:var(--spytial-ed-text, #221d14)}.spytial-ed-suggestion-id{display:block;margin-top:.15em;font-family:var( --spytial-ed-mono-font-family, ui-monospace, "Cascadia Code", "JetBrains Mono", "SF Mono", Menlo, Consolas, "Liberation Mono", monospace );font-size:.74em;color:var(--spytial-ed-text-muted, #6e6553);word-break:break-all}.spytial-ed-suggestion-chip{font-family:var(--spytial-ed-chrome-font);font-size:.66em;font-weight:600;text-transform:uppercase;letter-spacing:.07em;border:1px solid currentColor;border-radius:var(--spytial-ed-radius-sm, 2px);padding:.15em .4em;white-space:nowrap;color:var(--spytial-ed-text-muted, #6e6553)}.spytial-ed-suggestion-chip--high,.spytial-ed-suggestion-chip--applied{color:var(--spytial-ed-success, #2f6c43)}.spytial-ed-suggestion-chip--medium,.spytial-ed-suggestion-chip--weakened{color:var(--spytial-ed-warning, #8a6200)}.spytial-ed-suggestion-chip--omitted{color:var(--spytial-ed-danger, #a32014)}.spytial-ed-history-btn{font:inherit;font-size:1.05em;line-height:1;color:var(--spytial-ed-text, #221d14);background:transparent;border:1px solid var(--spytial-ed-border, #d9d2c0);border-radius:var(--spytial-ed-radius-sm, 2px);padding:.2em .45em;cursor:pointer;transition:border-color .15s ease,color .15s ease}.spytial-ed-history-btn:hover:not(:disabled){border-color:var(--spytial-ed-accent, #b5431a);color:var(--spytial-ed-accent, #b5431a)}.spytial-ed-history-btn:disabled{opacity:.4;cursor:not-allowed}.spytial-ed-body{padding:var(--spytial-ed-gap, 8px)}.spytial-ed-builder{display:flex;flex-direction:column;gap:calc(var(--spytial-ed-gap, 8px) * 1.25)}.spytial-ed-section-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:calc(var(--spytial-ed-gap, 8px) * .5)}.spytial-ed-section-title{margin:0;font-family:var(--spytial-ed-chrome-font);font-size:.72em;font-weight:700;text-transform:uppercase;letter-spacing:.14em;color:var(--spytial-ed-text-muted, #6e6553)}.spytial-ed-rows{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:4px}.spytial-ed-row{border:1px solid var(--spytial-ed-border, #d9d2c0);border-radius:var(--spytial-ed-radius, 2px);background:var(--spytial-ed-surface, #faf8f2);transition:border-color .15s ease}.spytial-ed-row:hover{border-color:color-mix(in srgb,var(--spytial-ed-text-muted, #6e6553) 55%,var(--spytial-ed-border, #d9d2c0))}.spytial-ed-row--expanded{border-color:var(--spytial-ed-accent, #b5431a)}.spytial-ed-row--error{border-left:3px solid var(--spytial-ed-danger, #a32014)}.spytial-ed-row--warning{border-left:3px solid var(--spytial-ed-warning, #8a6200)}.spytial-ed-row-main{display:flex;align-items:center;gap:4px}.spytial-ed-row-toggle{flex:1 1 auto;display:flex;align-items:center;gap:.55em;min-width:0;font:inherit;text-align:left;color:inherit;background:transparent;border:none;cursor:pointer;padding:calc(var(--spytial-ed-gap, 8px) * .55) var(--spytial-ed-gap, 8px)}.spytial-ed--compact .spytial-ed-row-toggle{padding:calc(var(--spytial-ed-gap, 8px) * .4) calc(var(--spytial-ed-gap, 8px) * .75)}.spytial-ed-badge{display:inline-flex;align-items:center;justify-content:center;inline-size:1.5em;block-size:1.5em;flex:0 0 auto;font-family:var(--spytial-ed-chrome-font);font-size:.72em;font-weight:700;border-radius:var(--spytial-ed-radius-sm, 2px);background:transparent}.spytial-ed-badge--constraint{color:var(--spytial-ed-accent, #b5431a);border:1px solid var(--spytial-ed-accent, #b5431a)}.spytial-ed-badge--directive{color:var(--spytial-ed-syn-type, #0e6b6b);border:1px solid var(--spytial-ed-syn-type, #0e6b6b)}.spytial-ed-badge--unknown{color:var(--spytial-ed-text-muted, #6e6553);border:1px dashed var(--spytial-ed-text-muted, #6e6553)}.spytial-ed-row-type{font-family:var(--spytial-ed-chrome-font);font-size:.88em;font-weight:600;flex:0 0 auto}.spytial-ed-row-negated{color:var(--spytial-ed-danger, #a32014);font-weight:700;flex:0 0 auto}.spytial-ed-row-summary{flex:1 1 auto;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:.85em;color:var(--spytial-ed-text-muted, #6e6553);font-family:var(--spytial-ed-mono-font-family, ui-monospace, monospace)}.spytial-ed-row-summary--muted{font-style:italic;font-family:inherit}.spytial-ed-row-dot{flex:0 0 auto;inline-size:.55em;block-size:.55em;border-radius:50%;background:var(--spytial-ed-text-muted, #6e6553)}.spytial-ed-row-dot--error{background:var(--spytial-ed-danger, #a32014)}.spytial-ed-row-dot--warning{background:var(--spytial-ed-warning, #8a6200)}.spytial-ed-row-panel{padding:var(--spytial-ed-gap, 8px);border-top:1px solid var(--spytial-ed-border, #d9d2c0);background:var(--spytial-ed-surface-raised, #f1ecdf);display:flex;flex-direction:column;gap:var(--spytial-ed-gap, 8px);animation:spytial-ed-unfold .14s ease-out}.spytial-ed-row--unknown{background:var(--spytial-ed-surface-raised, #f1ecdf)}.spytial-ed-row--unknown .spytial-ed-row-main{padding:calc(var(--spytial-ed-gap, 8px) * .55) var(--spytial-ed-gap, 8px);gap:.55em}.spytial-ed-builder-empty{margin:0;font-size:.9em;color:var(--spytial-ed-text-muted, #6e6553);font-style:italic}.spytial-ed-overflow{position:relative;flex:0 0 auto;margin-inline-end:4px}.spytial-ed-overflow-btn{font:inherit;font-size:1.1em;line-height:1;color:var(--spytial-ed-text-muted, #6e6553);background:transparent;border:none;border-radius:var(--spytial-ed-radius-sm, 2px);padding:.1em .4em;cursor:pointer}.spytial-ed-overflow-btn:hover{background:var(--spytial-ed-border, #d9d2c0)}.spytial-ed-overflow-btn:disabled{opacity:.4;cursor:not-allowed}.spytial-ed-overflow-menu,.spytial-ed-add-menu{position:fixed;z-index:1000;min-inline-size:10rem;background:var(--spytial-ed-surface, #faf8f2);border:1px solid var(--spytial-ed-border, #d9d2c0);border-radius:var(--spytial-ed-radius, 2px);box-shadow:0 1px color-mix(in srgb,var(--spytial-ed-text, #221d14) 8%,transparent),0 8px 24px color-mix(in srgb,var(--spytial-ed-text, #221d14) 18%,transparent);padding:4px;animation:spytial-ed-pop .12s ease-out}.spytial-ed-overflow-menu{list-style:none;margin:0;overflow-y:auto}.spytial-ed-overflow-item,.spytial-ed-add-item{display:block;inline-size:100%;font:inherit;font-size:.88em;text-align:left;color:var(--spytial-ed-text, #221d14);background:transparent;border:none;border-radius:var(--spytial-ed-radius-sm, 2px);padding:.4em .6em;cursor:pointer}.spytial-ed-overflow-item:hover:not(:disabled),.spytial-ed-add-item:hover{background:var(--spytial-ed-surface-raised, #f1ecdf)}.spytial-ed-overflow-item:disabled{opacity:.4;cursor:not-allowed}.spytial-ed-overflow-item--danger{color:var(--spytial-ed-danger, #a32014)}.spytial-ed-add{position:relative}.spytial-ed-add-btn{font-family:var(--spytial-ed-chrome-font);font-size:.78em;font-weight:600;color:var(--spytial-ed-accent, #b5431a);background:transparent;border:1px solid var(--spytial-ed-accent, #b5431a);border-radius:var(--spytial-ed-radius-sm, 2px);padding:.28em .6em;cursor:pointer;transition:background .15s ease,color .15s ease,transform .1s ease}.spytial-ed-add-btn:hover:not(:disabled){background:var(--spytial-ed-accent, #b5431a);color:var(--spytial-ed-accent-text, #fdf6ec)}.spytial-ed-add-btn:active:not(:disabled){transform:translateY(1px)}.spytial-ed-add-btn:focus-visible{outline:2px solid var(--spytial-ed-accent, #b5431a);outline-offset:2px}.spytial-ed-add-btn:disabled{opacity:.5;cursor:not-allowed}.spytial-ed-add-menu{display:flex;flex-direction:column;min-inline-size:15rem}.spytial-ed-add-search{inline-size:100%;flex:0 0 auto;font:inherit;font-size:.85em;color:var(--spytial-ed-text, #221d14);background:var(--spytial-ed-surface, #faf8f2);border:1px solid var(--spytial-ed-border, #d9d2c0);border-radius:var(--spytial-ed-radius-sm, 2px);padding:.35em .5em;margin-bottom:4px}.spytial-ed-add-search:focus-visible{outline:none;border-color:var(--spytial-ed-accent, #b5431a)}.spytial-ed-add-list{list-style:none;margin:0;padding:0;flex:1 1 auto;min-block-size:0;overflow-y:auto}.spytial-ed-add-item{display:flex;flex-direction:column;gap:1px}.spytial-ed-add-item-label{font-family:var(--spytial-ed-chrome-font);font-size:.95em;font-weight:600}.spytial-ed-add-item-desc{font-size:.78em;color:var(--spytial-ed-text-muted, #6e6553)}.spytial-ed-add-empty{font-size:.85em;color:var(--spytial-ed-text-muted, #6e6553);padding:.4em .6em}.spytial-ed-code{display:flex;flex-direction:column;gap:var(--spytial-ed-gap, 8px)}.spytial-ed-code-notice{font-size:.82em;color:var(--spytial-ed-warning, #8a6200);background:color-mix(in srgb,var(--spytial-ed-warning, #8a6200) 10%,transparent);border:1px solid var(--spytial-ed-warning, #8a6200);border-radius:var(--spytial-ed-radius-sm, 2px);padding:.4em .6em}.spytial-ed-code-cm{display:block}.spytial-ed-code-cm .cm-editor{max-height:32rem}.spytial-ed-code-cm--disabled{opacity:.65}.spytial-ed-code-editor{display:flex;border:1px solid var(--spytial-ed-border, #d9d2c0);border-radius:var(--spytial-ed-radius, 2px);background:var(--spytial-ed-surface, #faf8f2);overflow:hidden}.spytial-ed-code-gutter{flex:0 0 auto;overflow:hidden;text-align:right;user-select:none;padding:.5em .4em;color:var(--spytial-ed-text-muted, #6e6553);background:var(--spytial-ed-surface-raised, #f1ecdf);border-inline-end:1px solid var(--spytial-ed-border, #d9d2c0);font-family:var(--spytial-ed-mono-font-family, ui-monospace, monospace);font-size:.85em;line-height:1.5}.spytial-ed-code-gutter-line{min-inline-size:1.6em}.spytial-ed-code-input-wrap{position:relative;flex:1 1 auto;min-width:0;display:flex}.spytial-ed-code-textarea,.spytial-ed-code-mirror{margin:0;font-family:var(--spytial-ed-mono-font-family, ui-monospace, monospace);font-size:.85em;line-height:1.5;letter-spacing:normal;word-spacing:normal;font-variant-ligatures:none;font-feature-settings:normal;font-kerning:none;hyphens:none;text-rendering:auto;padding:.5em .6em;border:none;white-space:pre;overflow-wrap:normal;tab-size:2}.spytial-ed-code-mirror{position:absolute;inset:0;z-index:0;pointer-events:none;overflow:hidden;color:var(--spytial-ed-text, #221d14);background:transparent}.spytial-ed-code-textarea{position:relative;z-index:1;flex:1 1 auto;width:100%;resize:vertical;min-block-size:12rem;color:transparent;caret-color:var(--spytial-ed-accent, #b5431a);background:transparent;outline:none}.spytial-ed-code-textarea::selection{background:color-mix(in srgb,var(--spytial-ed-accent, #b5431a) 26%,transparent)}.spytial-ed-code-textarea:disabled{opacity:.6}.spytial-ed-code-textarea--plain{color:var(--spytial-ed-text, #221d14)}.spytial-ed-code-textarea:disabled+.spytial-ed-code-mirror,.spytial-ed-code-input-wrap:has(.spytial-ed-code-textarea:disabled) .spytial-ed-code-mirror{opacity:.6}.spytial-ed-code-diagnostics{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:2px}.spytial-ed-code-diagnostic-loc{font-family:var(--spytial-ed-mono-font-family, ui-monospace, monospace);font-size:.85em;color:var(--spytial-ed-text-muted, #6e6553);flex:0 0 auto}@media(prefers-reduced-motion:reduce){.spytial-ed *,.spytial-ed *:before,.spytial-ed *:after,.spytial-ed-autocomplete,.spytial-ed-overflow-menu,.spytial-ed-add-menu,.spytial-ed-synth-popover,.spytial-ed-row-panel{animation:none!important;transition:none!important}}.spytial-ed-group{border:1px solid var(--spytial-ed-border, #d0d7de);border-radius:6px;padding:.25rem .6rem .4rem;margin:.25rem 0;min-inline-size:0}.spytial-ed-group-legend{display:inline-flex;align-items:center;gap:.35rem;padding-inline:.3rem;font-size:.78rem;font-weight:600;color:var(--spytial-ed-muted, #656d76)}.spytial-ed-group-remove{border:none;background:transparent;cursor:pointer;font-size:1rem;line-height:1;padding:0 .15rem;color:var(--spytial-ed-muted, #656d76)}.spytial-ed-group-remove:hover{color:var(--spytial-ed-danger, #cf222e)}.spytial-ed-group-add{align-self:flex-start;border:1px dashed var(--spytial-ed-border, #d0d7de);border-radius:6px;background:transparent;cursor:pointer;padding:.3rem .6rem;margin:.15rem 0;font-size:.78rem;color:var(--spytial-ed-accent, #0969da)}.spytial-ed-group-add:hover{background:var(--spytial-ed-hover, #f6f8fa)}
2
2
  /*# sourceMappingURL=integrated-demo-components.css.map */
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/components/InstanceBuilder/InstanceBuilder.css","../../src/spec-editor/ui/spec-editor.css"],"sourcesContent":["/* 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","/*\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"],"mappings":"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","names":[]}
1
+ {"version":3,"sources":["../../src/components/InstanceBuilder/InstanceBuilder.css","../../src/spec-editor/ui/spec-editor.css"],"sourcesContent":["/* 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","/*\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"],"mappings":"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","names":[]}