/* Existing document preparation dialog, using the Results typography and surfaces. */
html:has(.assembly-dialog[open]), body:has(.assembly-dialog[open]) { overflow: hidden; min-width: 0; }
.assembly-dialog { width: min(1120px, calc(100vw - 48px)); }
.assembly-dialog::backdrop { background: rgb(28 28 26 / 28%); backdrop-filter: none; }
.assembly-dialog .material-frame { padding: 24px 32px; }
.assembly-dialog .dialog-heading { padding-bottom: 16px; margin-bottom: 20px; border-bottom: 1px solid var(--border); }
.assembly-dialog .dialog-heading h2 { font-size: var(--text-xl); line-height: var(--leading-tight); }
.assembly-dialog .dialog-heading p { font-size: var(--text-sm); line-height: var(--leading-text); }
.assembly-dialog .material-frame > .dialog-actions { display: none; }
.assembly-dialog .material-progress { margin: 0; }
.assembly-form { padding: 0; color: var(--text); font-size: var(--text-base); }
.assembly-form h3, .assembly-progress h3 { margin: 0; font-size: var(--text-base); font-weight: var(--weight-strong); line-height: var(--leading-ui); }
.assembly-kind { display: flex; align-items: center; gap: 12px; }
.assembly-kind .assembly-kind-title { font-size: var(--text-lg); }
.assembly-kind svg { flex: none; color: var(--accent); }
.assembly-form > .row-meta { margin: 8px 0 0; font-size: var(--text-sm); line-height: var(--leading-text); }
.assembly-basis { overflow-wrap: anywhere; }
.assembly-layout { display: grid; grid-template-columns: minmax(0, 1.45fr) minmax(280px, 1fr); gap: 32px; margin-top: 24px; }
.assembly-layout > section { min-width: 0; }
.assembly-options { padding-left: 24px; border-left: 1px solid var(--border); }
.assembly-form .question-choice, .assembly-form .sample-choice { margin: 0; }
.assembly-form .question-choice-head { gap: 8px 16px; margin-bottom: 12px; }
.assembly-form .question-choice-head h3 { margin-right: auto; }
.assembly-form .link-button { min-height: 32px; font-size: var(--text-sm); }
.assembly-form .question-choice-count { display: block; margin: 12px 0 8px; font-size: var(--text-sm); }
.assembly-form .assembly-search { display: block; margin: 0; }
.assembly-dialog .dialog-frame label:not(.upload-zone) { margin-bottom: 0; color: var(--text); font-size: var(--text-base); font-weight: var(--weight-normal); line-height: var(--leading-text); }
.assembly-dialog label > .field { display: block; width: 100%; margin-top: 8px; }
.assembly-dialog .field { min-width: 0; max-width: 100%; font-family: var(--font-ui); font-size: var(--text-base); color: var(--text); background: var(--surface); }
.assembly-dialog textarea { resize: vertical; }
.assembly-form .assembly-question-filters { margin-top: 12px; gap: 4px; }
.assembly-form .question-choice-list { max-height: min(40vh, 380px); margin-top: 0; padding: 0; border-color: var(--border); overscroll-behavior: contain; }
.assembly-dialog label.question-choice-row { grid-template-columns: 20px 24px minmax(0,1fr); align-items: start; gap: 8px; padding: 12px 4px; font-size: var(--text-base); line-height: var(--leading-text); border-radius: 0; border-bottom: 1px solid var(--border); }
.assembly-dialog label.question-choice-row:last-child { border-bottom: 0; }
.assembly-dialog label.question-choice-row[hidden] { display: none; }
.assembly-form .question-choice-row:hover { background: var(--surface-muted); }
.assembly-form .question-choice-row:focus-within { outline: 2px solid var(--focus); outline-offset: -2px; }
.assembly-form input[type=checkbox] { width: 18px; height: 18px; margin: 3px 0 0; accent-color: var(--accent); }
.assembly-form .question-choice-title { overflow-wrap: anywhere; }
.assembly-form .question-choice-title > span { display: block; }
.assembly-form .question-choice-basis { margin-top: 4px; color: var(--text-secondary); font-size: var(--text-sm); }
.assembly-form .assembly-selection-note { margin: 12px 0 0; font-size: var(--text-sm); line-height: var(--leading-text); }
.assembly-form .question-choice-number { color: var(--text-secondary); font-size: var(--text-sm); padding-top: 2px; }
.assembly-form .sample-choice .summary-label { color: var(--text); font-size: var(--text-base); font-weight: var(--weight-strong); text-transform: none; letter-spacing: normal; }
.assembly-form .sample-choice .row-meta, .assembly-form .assembly-options .row-meta { font-size: var(--text-sm); line-height: var(--leading-text); overflow-wrap: anywhere; }
.assembly-dialog label.sample-upload { margin: 16px 0 8px; font-size: var(--text-sm); }
.assembly-form input[type=file] { width: 100%; min-width: 0; font-family: var(--font-ui); font-size: var(--text-sm); overflow: hidden; }
.assembly-form input[type=file]::file-selector-button { padding: 8px 12px; margin-right: 8px; color: var(--text); background: var(--surface); border: 1px solid var(--border-strong); border-radius: var(--radius); font: inherit; cursor: pointer; }
.assembly-form .assembly-options > label { display: block; margin-top: 20px; }
.assembly-no-match { padding: 16px 0; font-size: var(--text-base); }
.assembly-no-match p { margin: 0 0 8px; }
.assembly-dialog .dialog-actions { border-top: 1px solid var(--border); margin-top: 24px; padding-top: 16px; gap: 8px; }
.assembly-dialog .assembly-actions { position: sticky; bottom: -24px; flex-wrap: wrap; align-items: center; padding: 16px 0 12px; background: var(--surface); }
.assembly-summary { flex: 1; min-width: 200px; }
.assembly-summary p { margin: 4px 0 0; font-size: var(--text-sm); line-height: var(--leading-text); }
.assembly-summary .assembly-scope { margin: 0; font-size: var(--text-base); font-weight: var(--weight-strong); }
.assembly-validation { color: var(--danger); font-size: var(--text-sm); line-height: var(--leading-text); }
.assembly-dialog [aria-invalid=true] { border-color: var(--danger); }
.assembly-letter { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 16px 24px; padding: 24px 0; margin-top: 20px; border-top: 1px solid var(--border); border-bottom: 1px solid var(--border); }
.assembly-letter > h3, .assembly-letter > label:nth-of-type(1), .assembly-letter > label:nth-of-type(4), .assembly-letter > .letter-signer, .assembly-letter > p { grid-column: 1/-1; }
.assembly-form .assembly-letter label + label, .assembly-form .assembly-letter .letter-signer { margin-top: 0; }
.assembly-form .assembly-letter .letter-signer { grid-template-columns: repeat(2,minmax(0,1fr)); gap: 24px; }
.assembly-progress { max-width: 800px; font-size: var(--text-base); line-height: var(--leading-text); }
.assembly-progress > p { margin: 12px 0 20px; }
.assembly-progress .agent-feed { border: 0; padding: 0; background: var(--surface); }
.assembly-progress .agent-line-title { font-size: var(--text-base); }
.assembly-progress .row-meta { font-size: var(--text-sm); }
@media(max-width:850px) {
  .assembly-layout { grid-template-columns: minmax(0,1fr); gap: 24px; }
  .assembly-options { padding: 24px 0 0; border-left: 0; border-top: 1px solid var(--border); }
}
@media(max-width:700px) {
  .assembly-dialog { width: calc(100vw - 24px); }
  .assembly-dialog .material-frame { padding: 20px; }
  .assembly-dialog .assembly-actions { bottom: -20px; }
  .assembly-summary { flex-basis: 100%; }
  .assembly-letter, .assembly-form .assembly-letter .letter-signer { grid-template-columns: minmax(0,1fr); gap: 16px; }
  .assembly-dialog .dialog-heading { gap: 12px; }
}
