/* Text-entry focus only. Keep error states and non-text control focus intact.
   Loaded last on dashboard and sign-in routes, including nested forms/dialogs. */
:is(body.apex-app,body[data-page=login],body[data-page=owner-login]) :is(input:not([type]),input[type=text],input[type=search],input[type=email],input[type=password],input[type=tel],input[type=url],input[type=number],input[type=date],input[type=time],input[type=datetime-local],input[type=month],input[type=week],textarea):not(:disabled):not([aria-invalid=true]):not(:user-invalid) {
  box-shadow:none!important;
  outline:none!important;
}
:is(body.apex-app,body[data-page=login],body[data-page=owner-login]) :is(input:not([type]),input[type=text],input[type=search],input[type=email],input[type=password],input[type=tel],input[type=url],input[type=number],input[type=date],input[type=time],input[type=datetime-local],input[type=month],input[type=week],textarea):not(:disabled):not([aria-invalid=true]):not(:user-invalid):is(:focus,:focus-visible) {
  border-color:#b8b8b8!important;
}
/* These wrappers intentionally have no layout border. An inset one-pixel
   neutral outline supplies its visual equivalent without shifting the input. */
body.apex-app :is(.search-pill,.app-search):not([aria-invalid=true]):not(:has([aria-invalid=true],:user-invalid)) {
  box-shadow:none!important;
  outline:1px solid #dedede!important;
  outline-offset:-1px;
}
body.apex-app :is(.search-pill,.app-search):not([aria-invalid=true]):not(:has([aria-invalid=true],:user-invalid)):focus-within {
  outline-color:#b8b8b8!important;
}
