.ke-fd-message {
    margin: 24px;
    padding: 12px 16px;
    border: 1px solid var(--dxds-color-border-danger-default-rest);
    border-radius: 8px;
    color: var(--dxds-color-content-danger-default-rest);
    background: var(--dxds-color-surface-neutral-default-rest);
}
.ke-fd-message p { margin: 0 0 8px; }
.ke-fd-loading { margin: 24px; color: var(--dxds-color-content-neutral-subdued-rest); }

.ke-fd-empty {
    flex: 1; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 8px;
    padding: 48px 16px; text-align: center; color: var(--dxds-color-content-neutral-subdued-rest);
}
.ke-fd-empty > i { font-size: 2.5rem; }
.ke-fd-empty h2 { margin: 0; font-size: 1.125rem; font-weight: 600; color: var(--dxds-color-content-neutral-default-rest); }
.ke-fd-empty p { margin: 0; }

.ke-fd-dialog { display: flex; flex-direction: column; gap: 16px; padding: 8px 0; }
.ke-fd-dialog-error { margin: 0; font-size: 0.8125rem; color: var(--dxds-color-content-danger-default-rest); }
.ke-fd-open-list { height: 360px; width: 100%; }

.ke-fd { display: flex; flex-direction: column; height: 100%; min-height: 0; }

.ke-fd-bar {
    display: flex; align-items: center; gap: 12px; flex-wrap: wrap;
    padding: 8px 16px;
    border-bottom: 1px solid var(--dxds-color-border-neutral-default-rest);
    background: var(--dxds-color-surface-neutral-default-rest);
}
.ke-fd-bar-row { flex: 1 0 100%; display: flex; align-items: stretch; gap: 12px; flex-wrap: wrap; }
.ke-fd-group { display: flex; align-items: stretch; gap: 4px; }
.ke-fd-options { gap: 12px; align-items: center; }
.ke-fd-divider { align-self: stretch; width: 1px; margin: 4px 0; background: var(--dxds-color-border-neutral-default-rest); }
.ke-fd-publish-blocked {
    align-self: center; max-width: 420px; font-size: 0.8125rem;
    color: var(--dxds-color-content-warning-default-rest);
}
.ke-fd-name {
    align-self: center; margin: 0; max-width: 360px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
    font-size: 1rem; font-weight: 600; color: var(--dxds-color-content-neutral-default-rest);
}

.ke-fd-problem {
    display: flex; align-items: center; justify-content: space-between; gap: 12px;
    padding: 8px 16px;
    border-bottom: 1px solid var(--dxds-color-border-danger-default-rest);
    color: var(--dxds-color-content-danger-default-rest);
    background: var(--dxds-color-surface-neutral-default-rest);
}
.ke-fd-dismiss {
    display: inline-flex; align-items: center; justify-content: center;
    width: 28px; height: 28px; border: 0; border-radius: 4px; cursor: pointer;
    background: transparent; color: inherit;
}
.ke-fd-dismiss:hover { background: var(--dxds-color-surface-neutral-deep-hovered); }

.ke-fd-body { display: flex; flex: 1; min-height: 0; }

.ke-fd-palette {
    width: 280px; flex: none; overflow-y: auto; padding: 12px 16px;
    display: flex; flex-direction: column; gap: 8px;
    border-right: 1px solid var(--dxds-color-border-neutral-default-rest);
    background: var(--dxds-color-surface-neutral-default-rest);
}
.ke-fd-hint { margin: 0; font-size: 0.75rem; color: var(--dxds-color-content-neutral-subdued-rest); }
.ke-fd-palette-list details { border-bottom: 1px solid var(--dxds-color-border-neutral-default-rest); padding: 4px 0; }
.ke-fd-palette-list summary { cursor: pointer; font-weight: 600; font-size: 0.875rem; padding: 4px 0; }
.ke-fd-category { margin: 4px 0 8px 8px; }
.ke-fd-category-name { display: block; font-size: 0.75rem; font-weight: 600; color: var(--dxds-color-content-neutral-subdued-rest); margin-bottom: 2px; }
.ke-fd-category ul { list-style: none; margin: 0; padding: 0; }
.ke-fd-question {
    display: block; padding: 4px 8px; border-radius: 4px; font-size: 0.875rem; cursor: grab;
    color: var(--dxds-color-content-neutral-default-rest);
}
.ke-fd-question:hover { background: var(--dxds-color-surface-neutral-deep-hovered); }
.ke-fd-question[draggable="false"] { cursor: default; opacity: 0.5; }

.ke-fd-canvas-pane {
    flex: 1; min-width: 0; overflow: auto; padding: 24px;
    background: var(--dxds-color-surface-neutral-subdued-rest);
}
[data-theme="dark"] .ke-fd-canvas-pane { background: transparent; }
@media (prefers-color-scheme: dark) {
    :root:not([data-theme]) .ke-fd-canvas-pane { background: transparent; }
}
.ke-fd-canvas {
    position: relative; width: 100%; max-width: 820px; margin: 0 auto; min-height: 200px;
    background: var(--dxds-color-surface-neutral-default-rest);
    box-shadow: 0 1px 4px rgba(0, 0, 0, 0.18);
}

.ke-fd-window-anchor { position: fixed; top: 160px; right: 16px; bottom: 16px; width: 340px; pointer-events: none; }
.ke-fd-props { display: flex; flex-direction: column; gap: 10px; font-size: 0.875rem; }
.ke-fd-prop { display: flex; flex-direction: column; gap: 4px; margin: 0; }
.ke-fd-prop > span:first-child { font-size: 0.75rem; color: var(--dxds-color-content-neutral-subdued-rest); }
.ke-fd-wide { width: 100%; }
.ke-fd-section-pick { font-size: 0.875rem; margin-bottom: 12px; padding-bottom: 12px; border-bottom: 1px solid var(--dxds-color-border-neutral-default-rest); }
.ke-fd-section-actions { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 4px; }
.ke-fd-section-delete { margin-top: 12px; padding-top: 12px; border-top: 1px solid var(--dxds-color-border-neutral-default-rest); }
.ke-fd-window-header > * { min-width: 0; }
.ke-fd-window-title { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.ke-fd-prop-value { color: var(--dxds-color-content-neutral-default-rest); }
.ke-fd-rows { display: flex; flex-direction: column; gap: 8px; margin: 0; padding: 0; border: 0; }
.ke-fd-rows legend { font-size: 0.75rem; color: var(--dxds-color-content-neutral-subdued-rest); margin-bottom: 4px; padding: 0; }
.ke-fd-row {
    display: flex; flex-direction: column; gap: 4px; padding: 8px; border-radius: 6px;
    background: var(--dxds-color-surface-neutral-subdued-rest);
}
.ke-fd-row-caption { font-size: 0.6875rem; color: var(--dxds-color-content-neutral-subdued-rest); }
.ke-fd-row-line { display: flex; align-items: center; gap: 6px; }
.ke-fd-row-line > * { flex: 1; min-width: 0; }
.ke-fd-row-line > .ke-fd-colour { flex: none; }
.ke-fd-row-tools { display: flex; gap: 4px; }
.ke-fd-icon {
    display: inline-flex; align-items: center; justify-content: center;
    width: 28px; height: 28px; border-radius: 4px; cursor: pointer;
    border: 1px solid var(--dxds-color-border-neutral-default-rest);
    background: transparent; color: var(--dxds-color-content-neutral-default-rest);
}
.ke-fd-icon:hover:not(:disabled) { background: var(--dxds-color-surface-neutral-deep-hovered); }
.ke-fd-icon:disabled { opacity: 0.4; cursor: default; }
.ke-fd-colour {
    width: 32px; height: 28px; padding: 1px 2px; cursor: pointer;
    border: 1px solid var(--dxds-color-border-neutral-default-rest); border-radius: 4px; background: transparent;
}
.ke-fd-ai summary { cursor: pointer; font-size: 0.75rem; color: var(--dxds-color-content-neutral-subdued-rest); }
.ke-fd-ai[open] summary { margin-bottom: 8px; }
.ke-fd-ai .ke-fd-prop + .ke-fd-prop { margin-top: 8px; }

.ke-design-gaps { position: absolute; left: 0; top: 0; width: 0; height: 0; z-index: 150; }
.ke-design-gap { position: absolute; cursor: row-resize; touch-action: none; }
.ke-design-gap::after {
    content: ""; position: absolute; left: 0; right: 0; top: 50%; pointer-events: none;
    border-top: 1px dashed transparent;
}
.ke-design-host:hover .ke-design-gap::after { border-top-color: rgba(46, 117, 182, 0.35); }
.ke-design-gap:hover::after, .ke-design-gap-dragging::after {
    top: calc(50% - 1px); border-top: 2px solid #2e75b6;
}
.ke-design-gap-dragging { background: rgba(46, 117, 182, 0.08); }
.ke-design-gap-readout {
    position: fixed; z-index: 2000; pointer-events: none; padding: 2px 6px; border-radius: 4px;
    background: #1a2228; color: #ffffff; font: 600 12px/1.4 system-ui, sans-serif;
}
.ke-design-readonly .ke-section-dropzone { display: none; }
.ke-forms-section { margin: 24px 0 8px; display: flex; flex-direction: column; gap: 4px; }
.ke-forms-section:first-of-type { margin-top: 8px; }
.ke-forms-actions { display: flex; gap: 6px; align-items: stretch; min-height: 32px; }
.ke-forms-not-adopted { font-size: 0.8125rem; color: var(--dxds-color-content-neutral-subdued-rest); }
.ke-forms-confirm { margin: 0; padding: 8px 0; }
.ke-forms-badge-adopted, .ke-forms-badge-retired {
    background: transparent;
    color: var(--dxds-color-content-neutral-subdued-rest);
    border: 1px solid var(--dxds-color-border-neutral-default-rest);
}
.ke-forms-actions > .dxbl-btn-dropdown { display: flex; }
.ke-forms-actions .dxbl-btn-icon-only { --dxbl-btn-icon-only-padding-x: var(--dxbl-btn-padding-x-m); }
.ke-forms-danger:not(:disabled):not(.dxbl-disabled) { color: var(--dxds-color-content-danger-default-rest); }
.ke-forms-updates {
    margin: 16px 0 8px;
    padding: 12px 16px;
    border: 1px solid var(--dxds-color-border-warning-default-rest);
    border-left-width: 4px;
    border-radius: 6px;
    background: var(--dxds-color-surface-neutral-default-rest);
    display: flex;
    flex-direction: column;
    gap: 6px;
}
.ke-forms-updates-desc { margin: 4px 0 8px; max-width: 75ch; color: var(--dxds-color-content-neutral-default-rest); }
.ke-forms-updates-list { list-style: none; margin: 4px 0 0; padding: 0; display: flex; flex-direction: column; gap: 8px; }
.ke-forms-updates-item { display: flex; align-items: center; justify-content: space-between; gap: 16px; }
.ke-forms-updates-detail { color: var(--dxds-color-content-neutral-subdued-rest); font-size: 0.875rem; }
.ke-library-changes { margin: 0; padding-left: 20px; display: flex; flex-direction: column; gap: 4px; max-height: 280px; overflow-y: auto; }
.ke-wizard-steps { display: flex; gap: 16px; list-style: none; margin: 0; padding: 0 0 8px; border-bottom: 1px solid var(--dxds-color-border-neutral-default-rest); font-size: 0.8125rem; color: var(--dxds-color-content-neutral-subdued-rest); }
.ke-wizard-steps li.ke-wizard-step-done { color: var(--dxds-color-content-neutral-default-rest); }
.ke-new-question-step { display: flex; flex-direction: column; gap: 16px; height: min(400px, calc(100vh - 360px)); overflow-y: auto; }
.ke-new-question-summary { margin: 0; padding: 8px 12px; border-radius: 6px; background: var(--dxds-color-surface-neutral-default-rest); font-size: 13px; }
.ke-wizard-steps li.ke-wizard-step-current { color: var(--dxds-color-content-neutral-default-rest); font-weight: 600; }
.ke-new-question-reminder { display: flex; flex-wrap: wrap; align-items: center; gap: 4px 8px; padding: 8px 12px; border: 1px solid var(--dxds-color-border-primary-default-rest); border-radius: 6px; background: var(--dxds-color-surface-primary-subdued-rest); font-size: 13px; }
.ke-new-question-reminder .ke-new-question-reminder-link { padding-left: 0; padding-right: 0; }
.ke-new-question-matches { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 8px; }
.ke-new-question-match { display: flex; align-items: center; gap: 12px; padding: 10px 12px; border: 1px solid var(--dxds-color-border-neutral-default-rest); border-radius: 6px; }
.ke-new-question-match-text { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: 2px; }
.ke-new-question-match-detail { font-size: 13px; color: var(--dxds-color-content-neutral-subdued-rest); }
.ke-new-question-match-description { display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.ke-new-question .ke-new-question-reminder-link { padding-left: 0; padding-right: 0; }
.ke-new-question-note { margin: 0; padding: 8px 12px; border-radius: 6px; background: var(--dxds-color-surface-primary-subdued-rest); font-size: 13px; }
.ke-draft-chat { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 8px; max-height: 320px; overflow-y: auto; }
.ke-draft-chat li { display: flex; flex-direction: column; align-items: flex-start; gap: 6px; max-width: 85%; padding: 8px 12px; border-radius: 6px; font-size: 13px; white-space: pre-wrap; }
.ke-draft-chat-assistant { align-self: flex-start; background: var(--dxds-color-surface-neutral-default-rest); }
.ke-draft-chat-user { align-self: flex-end; background: var(--dxds-color-surface-primary-subdued-rest); }
.ke-draft-chat-failed { align-self: flex-start; color: var(--dxds-color-content-danger-default-rest); border: 1px solid var(--dxds-color-border-danger-default-rest); }
.ke-draft-chat-thinking { color: var(--dxds-color-content-neutral-subdued-rest); font-style: italic; }
.ke-suggested { display: inline-block; margin-left: 6px; padding: 0 6px; border-radius: 8px; border: 1px solid var(--dxds-color-border-primary-default-rest); background: var(--dxds-color-surface-primary-subdued-rest); font-size: 11px; font-weight: 600; line-height: 16px; vertical-align: middle; }
.ke-new-question-bands { display: flex; flex-direction: column; gap: 6px; }
.ke-new-question-band { display: grid; grid-template-columns: 72px 72px 1fr 110px 80px; gap: 6px; align-items: center; }
.ke-new-question-band-head { font-size: 12px; color: var(--dxds-color-content-neutral-subdued-rest); }
