.source-respondent-scope > [hidden] { display: none !important; }
.source-function-option { display: grid; grid-template-columns: minmax(0,1fr) auto; align-items: center; gap: 4px 12px; min-width: 0; border-bottom: 1px solid #e8e8ed; padding: 8px 0; }
.source-setup-wizard .source-function-option .source-check-option { border: 0; background: transparent; padding: 12px; }
.source-setup-wizard .source-function-option .source-check-option:has(input:checked) { background: var(--setup-selected); }
.source-workspace .source-question-preview { min-height: 44px; font-size: .8125rem; padding: 10px 12px; white-space: normal; max-width: 100%; min-width: 0; box-sizing: border-box; overflow-wrap: anywhere; background: transparent; color: #5b1d00; box-shadow: none; }
.source-workspace .source-question-preview:hover { background: #fff4ed; }
.source-question-editor { --editor-surface: #fff; --editor-ink: #1d1d1f; --editor-secondary: #36363e; --editor-line: #e8e8ed; --editor-input: #f8f8fa; color: var(--editor-ink); background: var(--editor-surface); width: min(1000px,calc(100vw - 40px)); max-width: none; max-height: min(900px,calc(100dvh - 40px)); padding: 0; border: 1px solid var(--editor-line); border-radius: 24px; box-shadow: 0 24px 90px rgb(0 0 0 / 18%); overflow: hidden; }
.source-question-editor[open] { display: flex; flex-direction: column; animation: source-question-editor-enter 220ms cubic-bezier(.2,.8,.2,1) both; }
.source-question-editor::backdrop { background: rgb(29 29 31 / 30%); backdrop-filter: blur(6px); }
.source-question-editor > :is(header,footer) { flex: 0 0 auto; padding: 24px 30px; background: var(--editor-surface); }
.source-question-editor > header { display: flex; align-items: flex-start; justify-content: space-between; gap: 20px; border-bottom: 1px solid var(--editor-line); }
.source-question-editor h2 { margin: 0 0 6px; font-size: 1.5rem; line-height: 1.3; letter-spacing: -.025em; overflow-wrap: anywhere; }
.source-question-editor h3 { margin: 30px 0 8px; font-size: 1.125rem; }
.source-question-editor > footer { border-top: 1px solid var(--editor-line); display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 12px; }
.source-question-editor .source-hint { color: var(--editor-secondary); font-size: .8125rem; line-height: 1.5; margin: 0; }
.source-question-editor .source-actions { display: flex; gap: 10px; }
.source-question-editor .button { display: inline-flex; align-items: center; justify-content: center; min-height: 44px; padding: 10px 18px; border: 0; border-radius: 12px; color: var(--editor-ink); background: var(--editor-input); font: inherit; font-size: .875rem; font-weight: 600; cursor: pointer; transition: box-shadow 160ms ease, transform 160ms ease; }
.source-question-editor .button.primary { color: #fff; background: #c64000; font-size: 1rem; font-weight: 700; }
.source-question-editor .button:hover { background: var(--editor-input); box-shadow: inset 0 0 0 1px var(--editor-line); }
.source-question-editor .button.primary:hover { background: #b63b00; }
.source-question-editor > header > div { min-width: 0; }
.source-question-editor .source-actions { flex-wrap: wrap; }
.source-question-editor .source-question-editor-close { padding: 10px; width: 44px; min-height: 44px; flex: 0 0 auto; background: transparent; }
.source-question-editor-content { padding: 0 30px 20px; overflow: auto; overscroll-behavior: contain; min-height: 0; }
.source-question-editor-row { padding: 22px 0; border-bottom: 1px solid var(--editor-line); transition: opacity 180ms ease; }
.source-question-editor-row[data-included="false"] .source-question-editor-wording { color: var(--editor-secondary); }
.source-question-editor-label { display: grid; grid-template-columns: 20px 32px minmax(0,1fr); align-items: start; gap: 14px; cursor: pointer; }
.source-question-editor-label input,.source-respondent-scope input[type="checkbox"] { accent-color: #c64000; width: 18px; height: 18px; }
.source-question-editor-number { color: #5b1d00; font-size: .875rem; line-height: 1.6; font-variant-numeric: tabular-nums; }
.source-question-editor-wording { font-size: 1rem; line-height: 1.6; overflow-wrap: anywhere; }
.source-question-editor-edit { margin: 10px 0 0 80px; font-size: .875rem; }
.source-question-editor-edit > summary { color: #5b1d00; cursor: pointer; min-height: 44px; box-sizing: border-box; padding-block: 12px; }
.source-question-editor textarea { width: 100%; box-sizing: border-box; min-height: 100px; padding: 14px; border: 1px solid #bcbcc8; border-radius: 12px; color: var(--editor-ink); background: var(--editor-input); font: inherit; line-height: 1.6; resize: vertical; }
.source-question-editor .source-field > label { display: block; padding-bottom: 8px; font-weight: 600; }
.source-question-editor :is(button,textarea,input,summary):focus-visible { outline: 2px solid #5b1d00; outline-offset: 3px; }
.source-respondent-scope { margin: 20px 0; min-width: 0; }
.source-respondent-functions { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 8px; }
.source-respondent-label { grid-column: 1/-1; font-weight: 650; margin: 18px 0 6px; }
.source-respondent-functions .source-check-option { border: 1px solid #e8e8ed; border-radius: 12px; padding: 12px; }
.source-respondent-functions .source-check-option:has(input:checked) { background: #fff4ed; border-color: #d5987a; }
.source-respondent-selection { margin-top: 18px; border-top: 1px solid #e8e8ed; }
.source-respondent-selection > summary { display: flex; gap: 16px; justify-content: space-between; align-items: center; padding: 16px 0; }
.source-respondent-questions { max-height: 380px; overflow: auto; overscroll-behavior: contain; }
.source-respondent-question { display: flex; gap: 12px; align-items: start; padding: 14px 4px; border-bottom: 1px solid #e8e8ed; font-size: .9375rem; line-height: 1.6; }
.source-respondent-question input { flex: 0 0 auto; }
@keyframes source-question-editor-enter { from { opacity: 0; transform: translateY(12px); } to { opacity: 1; transform: translateY(0); } }
@media (max-width: 640px) {
  .source-function-option { grid-template-columns: minmax(0,1fr); gap: 0; }
  .source-workspace .source-question-preview { justify-self: start; margin: 0 0 4px 38px; max-width: calc(100% - 38px); }
  .source-question-editor { width: calc(100vw - 16px); max-height: calc(100dvh - 16px); border-radius: 18px; }
  .source-question-editor > :is(header,footer) { padding: 18px; }
  .source-question-editor-content { padding: 0 18px 18px; }
  .source-question-editor-label { grid-template-columns: 20px minmax(0,1fr); gap: 10px 12px; }
  .source-question-editor-label .source-question-editor-wording { grid-column: 1/-1; }
  .source-question-editor-edit { margin-left: 0; }
  .source-question-editor h2 { font-size: 1.25rem; }
  .source-question-editor > footer { align-items: stretch; }
  .source-question-editor .source-actions { width: 100%; justify-content: flex-end; }
  .source-respondent-functions { grid-template-columns: minmax(0,1fr); }
}
@media (prefers-color-scheme: dark) {
  .source-question-editor { --editor-surface: #1c1c1e; --editor-ink: #f5f5f7; --editor-secondary: #f5f5f7; --editor-line: #48484e; --editor-input: #303034; }
  .source-question-editor :is(.source-question-editor-number,.source-question-editor-edit > summary) { color: #f5f5f7; }
  .source-question-editor :is(button,textarea,input,summary):focus-visible { outline-color: #f5f5f7; }
  .source-question-editor .button.primary { background: #ffd2b5; color: #351300; }
  .source-question-editor .button.primary:hover { background: #ffe0cc; }
  .source-workspace .source-question-preview { color: #f5f5f7; }
  .source-workspace .source-question-preview:hover { background: #3d2a20; }
  .source-respondent-functions .source-check-option:has(input:checked) { background: #3d2a20; border-color: #ae7552; }
}
@media (prefers-reduced-motion: reduce) { .source-question-editor[open] { animation: none; } .source-question-editor-row { transition: none; } }
:root[data-admin-theme="dark"] .source-question-editor { --editor-surface: #1c1c1e; --editor-ink: #f5f5f7; --editor-secondary: #f5f5f7; --editor-line: #48484e; --editor-input: #303034; }
:root[data-admin-theme="dark"] .source-question-editor :is(.source-question-editor-number,.source-question-editor-edit > summary) { color: #f5f5f7; }
:root[data-admin-theme="dark"] .source-question-editor .button.primary { background: #ffd2b5; color: #351300; }
:root[data-admin-theme="dark"] .source-question-editor .button.primary:hover { background: #ffe0cc; }
:root[data-admin-theme="dark"] .source-question-editor :is(button,textarea,input,summary):focus-visible { outline-color: #f5f5f7; }
:root[data-admin-theme="light"] .source-question-editor { --editor-surface: #fff; --editor-ink: #1d1d1f; --editor-secondary: #36363e; --editor-line: #e8e8ed; --editor-input: #f8f8fa; }
:root[data-admin-theme="light"] .source-question-editor :is(.source-question-editor-number,.source-question-editor-edit > summary) { color: #5b1d00; }
:root[data-admin-theme="light"] .source-question-editor .button.primary { background: #c64000; color: #fff; }
:root[data-admin-theme="light"] .source-question-editor .button.primary:hover { background: #b63b00; }
:root[data-admin-theme="light"] .source-question-editor :is(button,textarea,input,summary):focus-visible { outline-color: #5b1d00; }
:root[data-admin-theme="dark"] .source-respondent-functions .source-check-option:has(input:checked) { background: #3d2a20; border-color: #ae7552; }
:root[data-admin-theme="light"] .source-respondent-functions .source-check-option:has(input:checked) { background: #fff4ed; border-color: #d5987a; }
:root[data-admin-theme="dark"] .source-workspace .source-question-preview { color: #f5f5f7; }
:root[data-admin-theme="dark"] .source-workspace .source-question-preview:hover { background: #3d2a20; }
:root[data-admin-theme="light"] .source-workspace .source-question-preview { color: #5b1d00; }
:root[data-admin-theme="light"] .source-workspace .source-question-preview:hover { background: #fff4ed; }
@media (forced-colors: active) {
  .source-question-editor,.source-question-editor textarea,.source-respondent-functions .source-check-option { background: Canvas; color: CanvasText; border: 1px solid CanvasText; box-shadow: none; }
  .source-question-editor .button,.source-question-editor .button.primary { color: ButtonText; background: ButtonFace; border: 1px solid ButtonText; }
  .source-question-editor .button:hover,.source-question-editor .button.primary:hover { color: ButtonText; background: ButtonFace; box-shadow: none; }
  .source-question-editor :is(.source-hint,.source-question-editor-number,.source-question-editor-edit > summary),.source-workspace .source-question-preview { color: CanvasText; }
  .source-question-editor :is(button,textarea,input,summary):focus-visible { outline-color: Highlight; }
}
