/** Accessible public intake forms using the policy palette. */
form[data-public-case] { display: grid; gap: 1.2rem; max-width: 48rem; }
form[data-public-case] label { display: grid; gap: .4rem; }
form[data-public-case] label:has(input[type=checkbox]) { display: flex; align-items: baseline; gap: .6rem; }
form[data-public-case] input:not([type=checkbox]), form[data-public-case] select, form[data-public-case] textarea {
  width: 100%; box-sizing: border-box; padding: .7rem; background: #171a20; color: #f3f4f6; border: 1px solid #737780; border-radius: .4rem; font: inherit;
}
form[data-public-case] fieldset { display: grid; gap: .6rem; border: 1px solid #737780; border-radius: .4rem; }
form[data-public-case] button { width: fit-content; padding: .8rem 1.3rem; cursor: pointer; }
form[data-public-case] [role=status] { white-space: pre-wrap; overflow-wrap: anywhere; }

/* Long field labels and native file controls must stay inside the reading column. */
form[data-public-case], form[data-public-case] fieldset, form[data-public-case] label { min-width: 0; max-width: 100%; }
form[data-public-case] fieldset { margin: 0; }
form[data-public-case] legend { max-width: 100%; overflow-wrap: anywhere; }
form[data-public-case] input, form[data-public-case] select, form[data-public-case] textarea { min-width: 0; min-height: 44px; }
form[data-public-case] label:has(input[type=checkbox]) { align-items: center; min-height: 44px; }
form[data-public-case] input[type=checkbox] { flex: none; min-height: 0; width: 20px; height: 20px; accent-color: var(--accent); }
form[data-public-case] button { margin-left: 0; }

/* Native inputs remain keyboard reachable inside the dashed picker. */
.file-field-title { display: block; margin-bottom: .4rem; color: var(--color-text-muted); }
form[data-public-case] label.file-pick { position: relative; display: flex; align-items: center; gap: 12px; min-height: 56px; padding: 8px 8px 8px 14px; border-radius: 12px; border: 1px dashed var(--color-border-strong); background: var(--color-bg); cursor: pointer; }
.file-pick > svg { flex: none; color: var(--color-text-subtle); }
.file-pick [data-file-name] { flex: 1; min-width: 0; font-size: 13px; color: var(--color-text-muted); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.file-pick .file-pick-button { flex: none; min-height: 40px; padding: 0 14px; font-size: 13px; }
form[data-public-case] .file-pick input[type=file] { position: absolute; width: 1px; height: 1px; min-height: 0; padding: 0; border: 0; overflow: hidden; clip-path: inset(50%); }
.file-pick:focus-within { outline: 2px solid var(--color-accent); outline-offset: 3px; }
.file-pick { transition: transform 120ms ease-out; }
.file-pick:active { transform: scale(.97); }
@media (hover: hover) and (pointer: fine) { .file-pick:hover { border-color: var(--color-text-subtle); } }
@media (prefers-reduced-motion: reduce) { .file-pick { transition: none; } .file-pick:active { transform: none; } }
