/* Campos compartilhados pelas páginas e pelos modais. */
html { touch-action:manipulation; }
:root :is(input:where(:not([type="checkbox"]):not([type="radio"]):not([type="range"]):not([type="color"]):not([type="file"]):not([type="hidden"])), textarea, select),
:root .field :is(input:where(:not([type="checkbox"]):not([type="radio"]):not([type="range"]):not([type="color"]):not([type="file"]):not([type="hidden"])), textarea, select) {
    box-sizing:border-box; width:100%; min-width:0; min-height:56px;
    padding:14px 16px; border:1.5px solid var(--h-border);
    border-color:color-mix(in srgb,var(--h-accent) 45%,var(--h-border));
    border-radius:16px; background:var(--h-bg); color:var(--h-text);
    font:400 16px/1.5 var(--font-inter); outline:none;
    appearance:none; -webkit-appearance:none; transition:border-color .15s,box-shadow .15s;
}
:root textarea,:root .field textarea { height:auto; min-height:128px; resize:vertical; }
:root textarea[rows="2"],:root .field textarea[rows="2"] { min-height:96px; }
:root select,:root .field select { padding-right:44px; background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='none'%3E%3Cpath d='m4 6 4 4 4-4' stroke='%239b8397' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E"); background-position:right 16px center; background-size:16px; background-repeat:no-repeat; }
:root :is(input,textarea)::placeholder { color:var(--h-muted); opacity:.8; }
:root :is(input,textarea,select):focus-visible { border-color:var(--h-accent); box-shadow:0 0 0 3px var(--h-soft); outline:none; }
:root .field { display:flex; flex-direction:column; gap:8px; margin-bottom:16px; }
:root .field > label { color:var(--h-muted); font-size:11px; font-weight:600; line-height:1.5; letter-spacing:1px; }
:root .field .input { box-sizing:border-box; min-height:56px; padding:0 16px; border-radius:16px; border:1.5px solid var(--h-border); border-color:color-mix(in srgb,var(--h-accent) 45%,var(--h-border)); background:var(--h-bg); }
:root .field .input input { height:54px; min-height:54px; padding:0; border:0; border-radius:0; background:transparent; box-shadow:none; }
:root .field .input:focus-within { border-color:var(--h-accent); box-shadow:0 0 0 3px var(--h-soft); }
:root .field .form-select { height:56px; min-height:56px; border-radius:16px; border-width:1.5px; border-color:color-mix(in srgb,var(--h-accent) 45%,var(--h-border)); }
:root .feature-card > :is(input,textarea,select) { margin:8px 0 16px; }
:root input[type="date"]::-webkit-date-and-time-value,:root input[type="time"]::-webkit-date-and-time-value { text-align:left; min-height:1.5em; }
:root input[type="date"]::-webkit-datetime-edit,:root input[type="time"]::-webkit-datetime-edit { padding:0; }
:root :is(input,textarea,select):disabled { opacity:.55; cursor:not-allowed; }
:root :is(input,textarea,select)[aria-invalid="true"],:root .field .input:has([aria-invalid="true"]) { border-color:var(--h-danger); box-shadow:0 0 0 2px color-mix(in srgb,var(--h-danger) 15%,transparent); }
:root .field .input input[aria-invalid="true"] { box-shadow:none; }
:root .field:has([required]) > label::after { content:" *"; color:var(--h-accent); }
:root .field[data-form-error]::after { content:attr(data-form-error); color:var(--h-danger); font-size:13px; line-height:1.5; }
@media (prefers-reduced-motion:reduce) { :root :is(input,textarea,select) { transition:none; } }
