/* 3.9 unified form-control system */
:root{--control-height:48px;--control-border:#cfdad3;--control-border-hover:#aebfb5;--control-radius:11px;--control-bg:#fff;--control-disabled:#f1f4f2;--control-focus:0 0 0 3px rgba(20,108,67,.12);--control-invalid:#b85445;--control-invalid-ring:0 0 0 3px rgba(184,84,69,.11)}
:where(input:not([type="checkbox"]):not([type="radio"]):not([type="hidden"]):not([type="button"]):not([type="submit"]):not([type="reset"]),select,textarea){width:100%;max-width:100%;min-width:0;border:1px solid var(--control-border);border-radius:var(--control-radius);background:var(--control-bg);color:var(--ink);font:inherit;font-size:16px;line-height:1.35;transition:border-color .15s ease,box-shadow .15s ease,background-color .15s ease}
:where(input:not([type="checkbox"]):not([type="radio"]):not([type="hidden"]):not([type="button"]):not([type="submit"]):not([type="reset"]),select){min-height:var(--control-height);padding:10px 12px}
:where(textarea){min-height:88px;padding:11px 12px;resize:vertical}
:where(select){padding-right:12px;background-color:var(--control-bg)}
:where(input:not([type="checkbox"]):not([type="radio"]):not([type="hidden"]),select,textarea):hover:not(:disabled):not([readonly]){border-color:var(--control-border-hover)}
:where(input:not([type="checkbox"]):not([type="radio"]):not([type="hidden"]),select,textarea):focus{outline:0;border-color:var(--accent);box-shadow:var(--control-focus)}
:where(input,select,textarea):focus-visible{outline:0;border-color:var(--accent);box-shadow:var(--control-focus)}
:where(input,textarea)::placeholder{color:#84938b;opacity:1}
:where(input,select,textarea):disabled{cursor:not-allowed;background:var(--control-disabled);color:#77867e;opacity:1}
:where(input,textarea)[readonly]{background:#f7faf8;color:#526159}
:where(input,select,textarea)[aria-invalid="true"],:where(input,select,textarea):user-invalid{border-color:var(--control-invalid);box-shadow:var(--control-invalid-ring)}
:where(input[type="search"]){appearance:none;-webkit-appearance:none}
:where(input[type="checkbox"],input[type="radio"]){accent-color:var(--accent)}
:where(label)>:where(span:first-child,strong:first-child){line-height:1.35}
.form-help,.field-help{display:block;margin-top:5px;color:var(--muted);font-size:.84rem;font-weight:500;line-height:1.45}
.form-error,.field-error{display:block;min-height:1.2em;margin-top:4px;color:#8f3428;font-size:.82rem;font-weight:650;line-height:1.35}
/* Existing compound controls own their border/padding; keep only inherited typography. */
.input-unit :where(input){min-height:0;border:0;border-radius:0;background:transparent;box-shadow:none;padding:12px 13px}
.input-unit :where(input):hover,.input-unit :where(input):focus,.input-unit :where(input):focus-visible{border:0;box-shadow:none}
/* Printable sheets intentionally switch to paper-like underline controls. */
@media print{.printable-sheet :where(input,select,textarea){min-height:26px;border:0;border-bottom:1px solid #bbb;border-radius:0;background:transparent;color:#000;padding:3px;box-shadow:none}}
