/* iRepairDatabase HF9.2R6-P6 — foco verde versionado; nunca reutiliza el CSS amarillo antiguo. */
:where(a,button,[tabindex]:not(input):not(select):not(textarea)):focus-visible{
  outline:2px solid var(--neon,#39ff8e)!important;outline-offset:3px!important;
  box-shadow:0 0 0 2px rgba(5,8,7,.92),0 0 0 5px rgba(57,255,142,.45)!important;
}

/*
  accessibility.js agrega .irdb-text-field solamente a campos de texto reales.
  El inset oscuro cubre la pintura amarilla/crema que algunos motores colocan
  por foco, autofill, gestor de contraseñas o apariencia nativa.
*/
.irdb-text-field{
  -webkit-appearance:none!important;-moz-appearance:none!important;appearance:none!important;
  color-scheme:dark only!important;
  background-color:var(--irdb-field-bg,var(--bg,#050807))!important;
  background-image:none!important;
  color:var(--ink,#d8e8de)!important;
  -webkit-text-fill-color:var(--ink,#d8e8de)!important;
  caret-color:var(--ink,#d8e8de)!important;
  text-shadow:none!important;
  outline:0!important;outline-style:none!important;outline-width:0!important;outline-offset:0!important;
  -webkit-tap-highlight-color:transparent!important;
}
.irdb-text-field:focus,
.irdb-text-field:focus-visible{
  forced-color-adjust:none!important;
  background-color:var(--irdb-field-bg,var(--bg,#050807))!important;
  background-image:none!important;
  border-color:var(--neon,#39ff8e)!important;
  outline:0!important;outline-style:none!important;outline-width:0!important;outline-offset:0!important;
  -webkit-box-shadow:
    inset 0 0 0 1000px var(--irdb-field-bg,var(--bg,#050807)),
    0 0 0 1px var(--neon,#39ff8e),
    0 0 8px var(--glow,rgba(57,255,142,.32))!important;
  box-shadow:
    inset 0 0 0 1000px var(--irdb-field-bg,var(--bg,#050807)),
    0 0 0 1px var(--neon,#39ff8e),
    0 0 8px var(--glow,rgba(57,255,142,.32))!important;
}
/* Firefox dibuja un anillo adicional con :-moz-focusring en ciertos temas. */
.irdb-text-field:-moz-focusring{
  forced-color-adjust:none!important;
  background-color:var(--irdb-field-bg,var(--bg,#050807))!important;
  background-image:none!important;
  outline:0!important;outline-style:none!important;outline-width:0!important;
  box-shadow:
    inset 0 0 0 1000px var(--irdb-field-bg,var(--bg,#050807)),
    0 0 0 1px var(--neon,#39ff8e),
    0 0 8px var(--glow,rgba(57,255,142,.32))!important;
}

/* Autofill estándar. */
.irdb-text-field:autofill,
.irdb-text-field:autofill:focus{
  forced-color-adjust:none!important;
  background-color:var(--irdb-field-bg,var(--bg,#050807))!important;
  background-image:none!important;
  color:var(--ink,#d8e8de)!important;
  -webkit-text-fill-color:var(--ink,#d8e8de)!important;
  caret-color:var(--ink,#d8e8de)!important;
  box-shadow:
    inset 0 0 0 1000px var(--irdb-field-bg,var(--bg,#050807)),
    0 0 0 1px var(--neon,#39ff8e),
    0 0 8px var(--glow,rgba(57,255,142,.32))!important;
  filter:none!important;
}
/* Chromium, Safari, iOS y WebView. */
.irdb-text-field:-webkit-autofill,
.irdb-text-field:-webkit-autofill:hover,
.irdb-text-field:-webkit-autofill:focus,
.irdb-text-field:-webkit-autofill:active{
  forced-color-adjust:none!important;
  background-color:var(--irdb-field-bg,var(--bg,#050807))!important;
  background-image:none!important;
  color:var(--ink,#d8e8de)!important;
  -webkit-text-fill-color:var(--ink,#d8e8de)!important;
  caret-color:var(--ink,#d8e8de)!important;
  -webkit-box-shadow:
    inset 0 0 0 1000px var(--irdb-field-bg,var(--bg,#050807)),
    0 0 0 1px var(--neon,#39ff8e),
    0 0 8px var(--glow,rgba(57,255,142,.32))!important;
  box-shadow:
    inset 0 0 0 1000px var(--irdb-field-bg,var(--bg,#050807)),
    0 0 0 1px var(--neon,#39ff8e),
    0 0 8px var(--glow,rgba(57,255,142,.32))!important;
  filter:none!important;
  transition:background-color 99999s ease-out 0s,color 99999s ease-out 0s!important;
}
/* Firefox Autofill. */
.irdb-text-field:-moz-autofill{
  forced-color-adjust:none!important;
  background-color:var(--irdb-field-bg,var(--bg,#050807))!important;
  background-image:none!important;
  color:var(--ink,#d8e8de)!important;
  caret-color:var(--ink,#d8e8de)!important;
  box-shadow:
    inset 0 0 0 1000px var(--irdb-field-bg,var(--bg,#050807)),
    0 0 0 1px var(--neon,#39ff8e),
    0 0 8px var(--glow,rgba(57,255,142,.32))!important;
  filter:none!important;
}

/* Select y textarea conservan su apariencia, pero usan foco verde coherente. */
:where(select,textarea):focus,
:where(select,textarea):focus-visible{
  outline:0!important;outline-style:none!important;outline-width:0!important;outline-offset:0!important;
  border-color:var(--neon,#39ff8e)!important;
  box-shadow:0 0 0 1px var(--neon,#39ff8e),0 0 8px var(--glow,rgba(57,255,142,.32))!important;
}
:where(input,select,textarea)[aria-invalid="true"]{
  border-color:#ff6b7d!important;box-shadow:0 0 0 2px rgba(255,107,125,.25)!important
}
[role="dialog"][aria-hidden="true"]{pointer-events:none}
body.dialog-open{overscroll-behavior:none}

/* En colores forzados se conserva el sistema para navegación general, pero los
   campos de escritura mantienen contraste oscuro y foco verde, sin cuadro amarillo. */
@media (forced-colors:active){
  :where(a,button,[tabindex]:not(input):not(select):not(textarea)):focus-visible{
    outline:3px solid Highlight!important;box-shadow:none!important
  }
  .irdb-text-field:focus,.irdb-text-field:focus-visible{
    forced-color-adjust:none!important;outline:0!important;
    border-color:#39ff8e!important;color:#d8e8de!important;-webkit-text-fill-color:#d8e8de!important;
    background:#050807!important;
    box-shadow:inset 0 0 0 1000px #050807,0 0 0 2px #39ff8e!important
  }
}
@media (prefers-reduced-motion:reduce){*,*::before,*::after{scroll-behavior:auto!important;animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}
@media (pointer:coarse){button,.btn,[role="button"]{min-height:42px}}
.sr-only{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}

/* P6: protección directa para todos los campos de escritura.
   No afecta color, range, checkbox, radio, file ni botones. */
:where(
  input:not([type]),
  input[type="text"],
  input[type="search"],
  input[type="password"],
  input[type="email"],
  input[type="url"],
  input[type="tel"],
  input[type="number"],
  textarea
){
  -webkit-appearance:none!important;
  -moz-appearance:none!important;
  appearance:none!important;
  color-scheme:dark!important;
  outline:none!important;
  outline-color:transparent!important;
  outline-style:none!important;
  outline-width:0!important;
  outline-offset:0!important;
}
:where(
  input:not([type]),
  input[type="text"],
  input[type="search"],
  input[type="password"],
  input[type="email"],
  input[type="url"],
  input[type="tel"],
  input[type="number"],
  textarea
):focus,
:where(
  input:not([type]),
  input[type="text"],
  input[type="search"],
  input[type="password"],
  input[type="email"],
  input[type="url"],
  input[type="tel"],
  input[type="number"],
  textarea
):focus-visible,
:where(
  input:not([type]),
  input[type="text"],
  input[type="search"],
  input[type="password"],
  input[type="email"],
  input[type="url"],
  input[type="tel"],
  input[type="number"],
  textarea
):-moz-focusring{
  forced-color-adjust:none!important;
  outline:none!important;
  outline-color:transparent!important;
  outline-style:none!important;
  outline-width:0!important;
  outline-offset:0!important;
  border-color:var(--neon,#39ff8e)!important;
  box-shadow:
    inset 0 0 0 1000px var(--irdb-field-bg,var(--bg,#050807)),
    0 0 0 1px var(--neon,#39ff8e),
    0 0 8px var(--glow,var(--neon-glow,rgba(57,255,142,.32)))!important;
  -webkit-box-shadow:
    inset 0 0 0 1000px var(--irdb-field-bg,var(--bg,#050807)),
    0 0 0 1px var(--neon,#39ff8e),
    0 0 8px var(--glow,var(--neon-glow,rgba(57,255,142,.32)))!important;
}
