/* D-082 · Shared S05/S12/S16 form contract. Loaded after appearance and shell.
   Geometry uses canonical tokens; rem type preserves the selected Manrope metrics. */
.field{min-inline-size:0;margin:0}
.field+.field{margin-block-start:var(--klaar-space-24)}
.field>label:not(.checkbox-row),.field>legend{display:block;margin:0 0 var(--klaar-space-8);padding:0;font-size:.875rem;line-height:1.25rem;font-weight:var(--klaar-weight-label);color:var(--klaar-color-textPrimary);overflow-wrap:anywhere}
.field input:not([type=checkbox]):not([type=radio]):not([type=hidden]),.field select{inline-size:100%;min-inline-size:0;min-block-size:var(--klaar-size-inputMinHeight);padding:15px var(--klaar-layout-inputPaddingInline);border:1px solid var(--klaar-color-borderStrong);border-radius:var(--klaar-radius-field);background:var(--klaar-color-surface);color:var(--klaar-color-textPrimary);font:500 1rem/1.5rem Manrope,Inter,system-ui,sans-serif}
.field input[aria-invalid=true],.field select[aria-invalid=true]{border-color:var(--klaar-color-danger);box-shadow:inset 0 0 0 1px var(--klaar-color-danger)}
.field .field-help,.field>.helper,.field>.field-error{margin-block-start:var(--klaar-space-8);margin-block-end:0;font-size:.875rem;line-height:1.375rem;color:var(--klaar-color-textSecondary)}
.field>.field-error,.field .combobox-status{color:var(--klaar-color-danger)}
.field-help p,.dialog-body .field-help p{margin:0;font:inherit}
.field-context{margin:0 0 var(--klaar-space-12);font-size:.875rem;line-height:1.5rem;color:var(--klaar-color-textSecondary)}
.field-context p{margin:0;font:inherit}.field-context ul{margin:8px 0 0;padding-inline-start:20px}.field-context li+li{margin-block-start:8px}
.form-stack,[data-household-fields],.record-fields{display:grid;grid-template-columns:minmax(0,1fr);gap:var(--klaar-space-24);min-inline-size:0}
.form-stack>.field,.form-stack>fieldset,.form-stack>.dialog-actions,.form-stack>.actions,[data-household-fields]>.field,.record-fields>.field{margin:0}
.dialog-body>p{margin:0 0 var(--klaar-space-24)}
.dialog-body>p:empty{margin:0}
[data-household-fields]:empty{display:none}
fieldset{min-inline-size:0;border:0;padding:0;margin:0}
fieldset>legend{font-size:.875rem;line-height:1.25rem;font-weight:var(--klaar-weight-label);margin-block-end:8px;overflow-wrap:anywhere}
.choice-options{display:grid;gap:var(--klaar-space-12)}
.choice-options--short{grid-template-columns:repeat(2,minmax(0,1fr))}
.checkbox-row,.radio-row{display:flex;align-items:flex-start;gap:var(--klaar-space-12);min-inline-size:0;min-block-size:var(--klaar-size-optionMinHeight);padding:18px;border:1px solid var(--klaar-color-borderStrong);border-radius:var(--klaar-radius-field);background:var(--klaar-color-surface);font-size:1rem;line-height:1.5rem;font-weight:400;color:var(--klaar-color-textPrimary);cursor:pointer;overflow-wrap:anywhere}
.checkbox-row>span,.radio-row>span{min-inline-size:0;flex:1}
.checkbox-row+.checkbox-row{margin-block-start:var(--klaar-space-12)}
.fact-checklist{display:grid;gap:var(--klaar-space-12);margin:0;padding:0}
.fact-checklist>.checkbox-row+.checkbox-row{margin-block-start:0}
.checkbox-row:has(input[aria-invalid=true]),.radio-row:has(input[aria-invalid=true]){border-color:var(--klaar-color-danger)}
.checkbox-row:has(input:checked),.radio-row:has(input:checked){background:var(--klaar-color-accentSubtle)}
.checkbox-row:has(input:focus-visible),.radio-row:has(input:focus-visible){outline:2px solid var(--klaar-color-focus);outline-offset:2px}
.checkbox-row input:focus-visible,.radio-row input:focus-visible{outline:none}
input[type=checkbox],input[type=radio]{appearance:none;display:inline-grid;place-content:center;flex:none;inline-size:var(--klaar-size-selectionIndicator);block-size:var(--klaar-size-selectionIndicator);min-block-size:0;padding:0;margin:2px 0 0;border:1px solid var(--klaar-color-borderStrong);border-radius:4px;background:var(--klaar-color-surface);vertical-align:middle;color:var(--klaar-color-surface)}
input[type=radio]{border-radius:50%}
input[type=checkbox]:checked{background:var(--klaar-color-accent);border-color:var(--klaar-color-accent)}
input[type=checkbox]:checked::before{content:'';inline-size:18px;block-size:18px;background:currentColor;mask:url('./assets/brand-icons/check.svg') center/contain no-repeat}
input[type=radio]:checked{border-color:var(--klaar-color-accent)}
input[type=radio]:checked::before{content:'';inline-size:10px;block-size:10px;border-radius:50%;background:var(--klaar-color-accent)}
.clear-choice{margin-block-start:8px;min-block-size:44px}
.clear-choice[hidden],.native-select-fallback[hidden]{display:none!important}
.select-control{position:relative;min-inline-size:0}
.field .select-control>select{appearance:none;padding-inline-end:48px}
.select-chevron{position:absolute;inset-inline-end:16px;inset-block-start:18px;inline-size:20px;block-size:20px;pointer-events:none;color:var(--klaar-color-accent)}
.select-control>input[role=combobox]{padding-inline-end:48px}
.combobox-list{position:fixed;inset:auto;margin:0;max-block-size:320px;padding:8px;border:1px solid var(--klaar-color-borderSubtle);border-radius:16px;background:var(--klaar-color-surface);color:var(--klaar-color-textPrimary);box-shadow:var(--klaar-shadow-overlay);overflow-y:auto;overscroll-behavior:contain;scrollbar-width:thin;font:400 1rem/1.5rem Manrope,Inter,system-ui,sans-serif}
.combobox-list [role=option]{min-block-size:44px;padding:10px 12px;border-radius:8px;overflow-wrap:anywhere;cursor:pointer}
.combobox-list [role=option][aria-selected=true]{background:var(--klaar-color-accentSubtle);font-weight:600}
.combobox-list [role=option][data-active=true]{outline:2px solid var(--klaar-color-focus);outline-offset:-2px;background:var(--klaar-color-surfaceSubtle)}
.combobox-empty{padding:12px;margin:0;line-height:1.5}
.combobox-status:empty{display:none}
/* One field column at every modal width; short related fields may opt in later. */
dialog:not(.cookie-banner){inline-size:min(480px,calc(100% - 40px));max-inline-size:560px;padding:var(--klaar-layout-dialogPaddingDesktop);border-radius:28px}
dialog.wide-dialog{inline-size:min(960px,calc(100% - 40px));max-inline-size:960px}
dialog.help-dialog{inline-size:min(420px,calc(100% - 40px));max-inline-size:420px}
dialog#inspection-dialog{inline-size:min(480px,calc(100% - 40px));max-inline-size:560px}
dialog>.dialog-heading{display:grid;grid-template-columns:minmax(0,1fr) 44px;align-items:start;gap:16px;margin:0 0 24px;padding:0;border:0}
.dialog-heading h2{margin:0;padding-block-start:4px;font-size:1.5rem;line-height:2rem}
dialog>.dialog-heading>.icon-button{inline-size:44px;min-inline-size:44px;block-size:44px;min-block-size:44px;padding:10px;border:0;border-radius:50%;background:transparent;color:var(--klaar-color-accent);box-shadow:none}
.dialog-body>.form-stack{margin:0}
.dialog-actions{gap:16px;margin-block-start:24px}
.dialog-actions>.button:not(.text-button){min-block-size:52px}
.dialog-actions>.text-button{min-block-size:44px}
.review-confirmations>.checkbox-row{margin:12px 0 0}
.review-confirmations>h2{margin-block-end:24px}
.account-dialog .checkbox-row{margin:12px 0 0}
@media(hover:hover) and (pointer:fine){.checkbox-row:hover,.radio-row:hover{background:var(--klaar-color-surfaceSubtle)}.combobox-list [role=option]:hover{background:var(--klaar-color-surfaceSubtle)}.dialog-heading>.icon-button:hover{background:var(--klaar-color-surfaceSubtle)}}
@media(max-width:767px){
 .checkbox-row,.radio-row{padding:16px}
 dialog:not(.cookie-banner),dialog#inspection-dialog{padding:var(--klaar-layout-dialogPaddingMobile);border-radius:24px;inline-size:calc(100% - 40px);max-block-size:calc(100dvh - 40px)}
 dialog.help-dialog{inline-size:100%;max-inline-size:100%;max-block-size:calc(100dvh - 24px);border-radius:24px 24px 0 0}
 .dialog-heading h2{font-size:1.375rem;line-height:1.875rem}
 .dialog-actions{gap:8px}
}
@media(forced-colors:active){
 input[type=checkbox],input[type=radio]{appearance:auto;color:CanvasText;background:Canvas;border-color:ButtonText}
 input[type=checkbox]::before,input[type=radio]::before{content:none!important}
 .checkbox-row,.radio-row,.combobox-list{border-color:ButtonText}
 .combobox-list [role=option][aria-selected=true]{outline:1px solid Highlight}
 .field input[aria-invalid=true]{border:2px solid Mark;box-shadow:none}
}

.account-dialog{text-align:left}

/* Ring/rail clearance extends into the dialog padding; field alignment stays exact. */
dialog>.dialog-body{margin-inline:-4px -12px;padding-inline:4px 12px}
