/* PÍDELO 1.87.0 · E86 · Accesibilidad y UX asistida
   Capa transversal, separada del diseño funcional para evitar regresiones. */
:root{
  --a11y-action:#c94f00;
  --a11y-action-dark:#ad4000;
  --a11y-focus:#0b4edb;
  --a11y-focus-on-dark:#ffd1ad;
  --a11y-muted:#53657a;
  --a11y-line:#aebed0;
}
html{-webkit-text-size-adjust:100%;text-size-adjust:100%}
body{color:#142033}
/* Mantener el naranja de marca como acento, pero usar una variante oscura cuando porta texto blanco. */
.btn-primary{background:linear-gradient(135deg,var(--a11y-action),var(--a11y-action-dark));color:#fff}
.help-cta-card>span,.policy-card-premium>span{color:#a23d00}
.desc,.section-head p,.kpi small,.fact small,.field-help,.support-upload small,.ticket-row small,.policy-card-premium small,.faq-answer small{color:var(--a11y-muted)}

/* Foco visible consistente. WCAG 2.2: indicador grande, distinguible y no oculto. */
:where(a,button,input,select,textarea,summary,[tabindex]):focus{outline:none}
:where(a,button,input,select,textarea,summary,[tabindex]):focus-visible{
  outline:3px solid var(--a11y-focus);
  outline-offset:3px;
  box-shadow:0 0 0 2px #fff,0 0 0 5px rgba(11,78,219,.28);
}
.topbar :where(a,button):focus-visible,.admin-sidebar :where(a,button):focus-visible,.footer :where(a,button):focus-visible,.support-hero :where(a,button):focus-visible,.policy-hub-hero :where(a,button):focus-visible,.help-hero-premium :where(a,button):focus-visible{
  outline-color:var(--a11y-focus-on-dark);
  box-shadow:0 0 0 2px #071a33,0 0 0 5px rgba(255,209,173,.45);
}
.skip-link{top:-90px;left:14px;min-height:44px;display:flex;align-items:center}
.skip-link:focus-visible{top:14px}

/* Targets cómodos para puntero/táctil. */
.btn,.nav a,.nav-toggle,.footer-links a,.tabs a,.ticket-row,.admin-nav-link{min-height:44px}
button,input,select,textarea{line-height:1.35}
.field input,.field select,.field textarea,.toolbar input,.toolbar select,.help-search-form input,.support-form input,.support-form select,.support-form textarea{min-height:46px;border-color:var(--a11y-line)}
input::placeholder,textarea::placeholder{color:#64788e;opacity:1}
label{color:#263c55}
fieldset{min-inline-size:0}
legend{max-width:100%}

/* Errores de formulario visibles, anunciables y no dependientes sólo del color. */
.a11y-error-summary{margin:0 0 18px;padding:16px 18px;border:2px solid #b42318;border-radius:14px;background:#fff4f2;color:#7a271a}
.a11y-error-summary:focus{outline:3px solid var(--a11y-focus);outline-offset:3px}
.a11y-error-summary strong{display:block;margin-bottom:6px;color:#7a271a}
.a11y-error-summary ul{margin:8px 0 0;padding-left:22px}
.a11y-error-summary a{text-decoration:underline;font-weight:800}
.field-error{display:block;margin-top:3px;color:#912018;font-size:.82rem;font-weight:750}
[aria-invalid="true"]{border-color:#b42318!important;box-shadow:0 0 0 2px rgba(180,35,24,.12)!important}
.required-marker{margin-left:4px;color:#912018;font-weight:950}.required-note{color:var(--a11y-muted);font-size:.82rem}

/* Status/feedback no quedan ocultos bajo la cabecera sticky al recibir foco. */
.alert{scroll-margin-top:96px}.alert.error{color:#912018}.alert.success{color:#0c6b45}.alert.info{color:#1248a3}

/* Tablas y contenido ancho: scroll por teclado con indicador claro. */
.table-wrap[tabindex="0"]{border-radius:12px;scrollbar-gutter:stable}
.table-wrap[tabindex="0"]:focus-visible{outline:3px solid var(--a11y-focus);outline-offset:2px}
.table th{color:#53657a}

/* Navegación móvil accesible. */
.nav-mobile-account{display:none}.nav-toggle{display:none;align-items:center;justify-content:center;gap:8px;border:1px solid rgba(255,255,255,.34);border-radius:11px;background:transparent;color:#fff;padding:9px 12px;font-weight:850;cursor:pointer}
.nav-toggle-icon{font-size:1.25rem;line-height:1}

/* Centro de accesibilidad */
.accessibility-hero{margin:34px 0 20px;padding:40px;border-radius:28px;background:linear-gradient(135deg,#071a33,#0b356e);color:#fff;box-shadow:0 25px 70px rgba(7,26,51,.16)}
.accessibility-hero h1{margin:9px 0 14px;color:#fff;font-size:clamp(2.3rem,4.5vw,4.2rem);line-height:1.02;max-width:900px}.accessibility-hero p{max-width:900px;color:#d5e3f5;font-size:1.04rem;line-height:1.68}.accessibility-hero .eyebrow{color:#ffd1ad}
.accessibility-grid{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(320px,.9fr);gap:18px;margin-bottom:20px}.accessibility-panel{padding:28px}.a11y-control-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.a11y-control{display:flex;align-items:flex-start;gap:12px;padding:16px;border:1px solid #cfdbe8;border-radius:16px;background:#fff;cursor:pointer;text-align:left}.a11y-control:hover{border-color:#8daed8}.a11y-control[aria-pressed="true"]{background:#edf4ff;border-color:#0b4edb}.a11y-control b,.a11y-control small{display:block}.a11y-control small{margin-top:4px;color:#53657a}.a11y-control-mark{flex:0 0 28px;width:28px;height:28px;border-radius:50%;display:grid;place-items:center;background:#eef3f8;color:#0b4edb;font-weight:950}.a11y-control[aria-pressed="true"] .a11y-control-mark{background:#0b4edb;color:#fff}.accessibility-checklist{display:grid;gap:10px}.accessibility-checklist article{padding:15px 16px;border-radius:14px;background:#f7faff;border:1px solid #dce6f0}.accessibility-checklist strong{color:#0b1f3a}.accessibility-checklist p{margin:5px 0 0;color:#53657a}.accessibility-note{margin:18px 0 50px;padding:20px;border-radius:16px;border:1px solid #d8e4f0;background:#fff}.accessibility-note p{color:#415873;line-height:1.65}

/* Preferencias locales del usuario: no requieren cuenta ni envían datos al servidor. */
html.a11y-text-large{font-size:112.5%}
html.a11y-contrast body{background:#fff;color:#071a33}
html.a11y-contrast .panel,html.a11y-contrast .channel,html.a11y-contrast .auth-card,html.a11y-contrast .faq-premium-card,html.a11y-contrast .help-cta-card,html.a11y-contrast .policy-card-premium{border-color:#7d91aa;box-shadow:none}
html.a11y-contrast .desc,html.a11y-contrast .section-head p,html.a11y-contrast .field-help{color:#344b66}
html.a11y-links main a:not(.btn):not(.ticket-row):not(.policy-card-premium):not(.register-profile-card){text-decoration:underline;text-decoration-thickness:2px;text-underline-offset:3px}
html.a11y-reduce-motion{scroll-behavior:auto}
html.a11y-reduce-motion *,html.a11y-reduce-motion *::before,html.a11y-reduce-motion *::after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important;scroll-behavior:auto!important}

/* Preferencias del sistema. */
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important;scroll-behavior:auto!important}.btn:hover,.nav a:hover,.policy-card-premium:hover{transform:none!important}}
@media(prefers-contrast:more){:root{--a11y-line:#7589a0}.panel,.channel,.auth-card,.faq-premium-card,.help-cta-card,.policy-card-premium{border-color:#8ca0b6}.desc,.section-head p,.field-help{color:#344b66}}
@media(forced-colors:active){.btn,.status,.badge,.panel,.channel,.auth-card,.ticket-row,.policy-card-premium,.faq-premium-card{forced-color-adjust:auto}.btn{border:1px solid ButtonText}.nav a.active{outline:2px solid Highlight}.a11y-control[aria-pressed="true"]{outline:2px solid Highlight}}

@media(max-width:900px){
  .topbar-inner{flex-wrap:wrap;gap:10px;position:relative}.brand{min-width:0;flex:1}.nav-toggle{display:inline-flex;order:2}.nav-right{order:3}.nav{display:none;order:4;flex:0 0 100%;width:100%;padding:8px 0 4px;border-top:1px solid rgba(255,255,255,.12);flex-direction:column;align-items:stretch}.nav.is-open{display:flex}.nav a{width:100%;padding:12px 14px}.nav .nav-mobile-account{display:flex}.topbar-inner{min-height:72px}
  .accessibility-grid{grid-template-columns:1fr}
}
@media(min-width:901px){.nav{display:flex!important}}
@media(max-width:640px){
  body{font-size:1rem}.container{padding-left:16px;padding-right:16px}.topbar-inner{padding-left:14px;padding-right:14px}.brand small{display:none}.nav-right .user-chip{display:none}.nav-right .btn{padding-left:10px;padding-right:10px}.nav-right .btn-primary,.nav-right .btn-admin-entry{display:none}.a11y-control-grid{grid-template-columns:1fr}.accessibility-hero{padding:26px;border-radius:20px}.accessibility-panel{padding:20px}
  input,select,textarea{font-size:16px!important}.btn{min-height:46px}.footer-premium-grid{gap:20px}
}
