/* EVOrbit form-control standard — applies to every product workspace.
   Direction: professional / dense (owner decision, 2026-09-04). Crisp 1px borders at full contrast
   (--cp-border-strong, not the near-invisible --cp-border-subtle a pale admin tool would use), a
   compact 36px control height, tight padding, no soft glow on focus — a clean 2px ring instead. */
:root{
  --ev-field-height:36px;
  --ev-field-radius:var(--cp-radius-sm)
}
body:not(.abp-account-layout) input:not([type=checkbox]):not([type=radio]):not([type=hidden]):not([type=button]):not([type=submit]):not([type=reset]):not([type=file]):not([type=color]):not([type=range]),body:not(.abp-account-layout) select,body:not(.abp-account-layout) textarea,body:not(.abp-account-layout) .form-control,body:not(.abp-account-layout) .form-select{
  /* A field only fills its container automatically when it IS the flex/grid item — e.g. the
     password input, nested one level down inside the show/hide wrapper, is not, and rendered at
     the ~180px browser-default width next to a full-width username field above it. Universal, not
     page-local: any field wrapped in a positioning div anywhere in the app has the same latent bug. */
  width:100%!important;
  min-height:var(--ev-field-height)!important;
  padding:7px 10px!important;
  border:1px solid var(--cp-border-strong)!important;
  border-radius:var(--ev-field-radius)!important;
  /* Raised, not page: form fields sit ON cards/panels, so they must be lighter than their
     container, not the same off-white as the page behind it (which read as muddy, low-contrast). */
  background:var(--cp-surface-raised)!important;
  color:var(--cp-text-primary)!important;
  font:500 .82rem/1.35 var(--cp-font-sans)!important;
  box-shadow:none!important;
  transition:border-color var(--cp-transition-fast),box-shadow var(--cp-transition-fast)!important
}
body:not(.abp-account-layout) textarea,body:not(.abp-account-layout) textarea.form-control{
  min-height:96px!important;
  padding:10px 11px!important;
  resize:vertical
}
body:not(.abp-account-layout) input::placeholder,body:not(.abp-account-layout) textarea::placeholder{
  color:var(--cp-text-muted)!important;
  opacity:1
}
body:not(.abp-account-layout) input:not([type=checkbox]):not([type=radio]):not([type=hidden]):not([type=button]):not([type=submit]):not([type=reset]):not([type=file]):not([type=color]):not([type=range]):focus,body:not(.abp-account-layout) select:focus,body:not(.abp-account-layout) textarea:focus,body:not(.abp-account-layout) .form-control:focus,body:not(.abp-account-layout) .form-select:focus{
  border-color:var(--cp-accent)!important;
  background:var(--cp-surface-raised)!important;
  box-shadow:var(--cp-focus-ring)!important;
  outline:0!important
}
body:not(.abp-account-layout) input:disabled,body:not(.abp-account-layout) select:disabled,body:not(.abp-account-layout) textarea:disabled,body:not(.abp-account-layout) .form-control:disabled,body:not(.abp-account-layout) .form-select:disabled{
  border-color:var(--cp-control-disabled-border)!important;
  background:var(--cp-control-disabled-surface)!important;
  color:var(--cp-control-disabled-text)!important;
  cursor:not-allowed;
  opacity:1!important
}
body:not(.abp-account-layout) .is-invalid,body:not(.abp-account-layout) .was-validated .form-control:invalid,body:not(.abp-account-layout) .was-validated .form-select:invalid{
  border-color:var(--cp-danger)!important;
  background:var(--cp-danger-soft)!important;
  box-shadow:none!important
}
body:not(.abp-account-layout) .is-invalid:focus,body:not(.abp-account-layout) .was-validated .form-control:invalid:focus,body:not(.abp-account-layout) .was-validated .form-select:invalid:focus{
  box-shadow:var(--cp-focus-ring)!important
}
.invalid-feedback{
  color:var(--cp-danger)!important;
  font-size:.7rem!important;
  font-weight:650!important
}
body:not(.abp-account-layout) input[type=checkbox],body:not(.abp-account-layout) input[type=radio]{
  width:15px!important;
  height:15px!important;
  min-height:0!important;
  margin:0!important;
  accent-color:var(--cp-accent)
}
body:not(.abp-account-layout) .input-group>:not(:first-child){
  border-top-left-radius:0!important;
  border-bottom-left-radius:0!important
}
body:not(.abp-account-layout) .input-group>:not(:last-child){
  border-top-right-radius:0!important;
  border-bottom-right-radius:0!important
}
