/* Site text fields consume the actual shared Studio field tokens. */
:root{--studio-ui-field-surface:#303030;--studio-ui-field-surface-focus:#3d3d3d;}
/* Native text controls keep their fonts, sizes, padding, height and border
   widths. Retire only the painted frame, inset shadow and translucent blur.
   No button, resize grip, date grid, checkbox, radio or file input is a field. */
html body .quote-dialog .quote-fields :is(input:not([type]),input[type=text],input[type=email],input[type=tel],textarea),
html body .client-access-dialog :is(input[type=email],input[autocomplete=one-time-code]){
 border-color:var(--studio-site-field-frame,transparent)!important;
 background-color:var(--studio-site-field-paint,var(--studio-ui-field-surface))!important;
 box-shadow:none!important;outline:none!important;-webkit-backdrop-filter:none!important;backdrop-filter:none!important;
}
html body .quote-dialog .quote-fields :is(input:not([type]),input[type=text],input[type=email],input[type=tel],textarea)::placeholder,
html body .client-access-dialog input[type=email]::placeholder{
 color:var(--studio-ui-muted,#a0a0a0)!important;opacity:1!important;
}
html body .quote-dialog .quote-fields :is(input:not([type]),input[type=text],input[type=email],input[type=tel],textarea):focus,
html body .client-access-dialog :is(input[type=email],input[autocomplete=one-time-code]):focus{
 --studio-site-field-paint:var(--studio-ui-field-surface-focus);
}

/* Compound controls have one owner for their material. The textarea retains
   its own native one-pixel reserve; its wrapper gets no new border or padding.
   Authentication email keeps its existing outer border and zero-border input. */
html body .quote-dialog .quote-resizable-field,
html body .client-access-dialog .client-access-email-control{
 border-color:var(--studio-site-field-frame,transparent)!important;
 background-color:var(--studio-site-field-paint,var(--studio-ui-field-surface))!important;
 box-shadow:none!important;outline:none!important;-webkit-backdrop-filter:none!important;backdrop-filter:none!important;
}
html body .quote-dialog .quote-resizable-field{border-radius:var(--ui-card-radius)}
html body .quote-dialog .quote-resizable-field:focus-within,
html body .client-access-dialog .client-access-email-control:focus-within{
 --studio-site-field-paint:var(--studio-ui-field-surface-focus);
}
html body .quote-dialog .quote-fields .quote-resizable-field>textarea,
html body .client-access-dialog .client-access-email-control>input[type=email]{
 --studio-site-field-paint:transparent;
 background-color:transparent!important;
}

/* The six visual OTP cells are the field surface. The original oversize input
   stays transparent and borderless, retaining the leading zero, glyph spacing,
   native autofill and the existing soft-step controller. */
html body .client-access-dialog .client-access-code-field .studio-code-boxes>span{
 border-color:var(--studio-site-field-frame,transparent)!important;
 background-color:var(--studio-site-field-paint,var(--studio-ui-field-surface))!important;
 box-shadow:none!important;
}
html body .client-access-dialog .client-access-code-field:focus-within .studio-code-boxes>span{
 --studio-site-field-paint:var(--studio-ui-field-surface-focus);
}
html body .client-access-dialog .client-access-code-field input[autocomplete=one-time-code]{
 --studio-site-field-paint:transparent;
 background-color:transparent!important;
}

/* Invalid state uses only the already-reserved border. Native validity,
   validation bubbles, semantic messages and aria-invalid are not rewritten. */
html body .quote-dialog .quote-fields :is(input:not([type]),input[type=text],input[type=email],input[type=tel],textarea):is([aria-invalid=true],.is-invalid,:user-invalid),
html body .client-access-dialog :is(input[type=email],input[autocomplete=one-time-code]):is([aria-invalid=true],.is-invalid,:user-invalid),
html body .client-access-dialog .client-access-email-control:has(input:is([aria-invalid=true],.is-invalid,:user-invalid)),
html body .client-access-dialog .client-access-code-field:has(input:is([aria-invalid=true],.is-invalid,:user-invalid)) .studio-code-boxes>span{
 --studio-site-field-frame:var(--studio-ui-danger);
}

/* Explicit accessibility exception: keep system field contrast and a visible
   keyboard focus in forced-colour mode instead of forcing the dark palette. */
@media(forced-colors:active){
 html body .quote-dialog .quote-fields :is(input:not([type]),input[type=text],input[type=email],input[type=tel],textarea),
 html body .client-access-dialog :is(input[type=email],input[autocomplete=one-time-code]),
 html body .quote-dialog .quote-resizable-field,
 html body .client-access-dialog .client-access-email-control,
 html body .client-access-dialog .client-access-code-field .studio-code-boxes>span{
  --studio-site-field-frame:FieldText;--studio-site-field-paint:Field;
  border-color:FieldText!important;background-color:Field!important;color:FieldText!important;
 }
 html body .quote-dialog .quote-fields :is(input:not([type]),input[type=text],input[type=email],input[type=tel]):focus-visible,
 html body .client-access-dialog>form>label input[type=email]:focus-visible,
 html body .quote-dialog .quote-resizable-field:focus-within,
 html body .client-access-dialog .client-access-email-control:focus-within,
 html body .client-access-dialog .client-access-code-field:focus-within{
  outline:2px solid Highlight!important;outline-offset:2px;
 }
 html body .quote-dialog .quote-fields .quote-resizable-field>textarea,
 html body .client-access-dialog .client-access-email-control>input[type=email],
 html body .client-access-dialog .client-access-code-field input[autocomplete=one-time-code]{
  --studio-site-field-paint:transparent;background-color:transparent!important;
 }
 html body .client-access-dialog .client-access-code-field:focus-within .studio-code-boxes>span{
  border-color:Highlight!important;
 }
}
