﻿/* ================================================================
   ACCESSIBILITY.CSS — Digit Soft
   Widgets visuales manejados en floating_widgets_unified.html
   Este archivo solo mantiene los estados globales del body
   ================================================================ */

/* Neutralizar clases del widget viejo para evitar duplicados */
.accessibility-widget,
.accessibility-toggle,
.accessibility-panel,
.accessibility-panel.hidden,
.accessibility-panel:not(.hidden),
.accessibility-btn,
.reset-btn,
.accessibility-header,
.accessibility-content,
.accessibility-close { all: unset; }

/* ── ESTADOS GLOBALES ── */
body { transition: background-color 0.3s ease, color 0.3s ease; }

/* Tamaño de fuente */
body.font-large  { font-size: 18px; }
body.font-xlarge { font-size: 22px; }

/* Alto contraste */
body.high-contrast { filter: contrast(1.5) brightness(1.1); }
body.high-contrast button, body.high-contrast .btn { border: 3px solid currentColor !important; font-weight:700 !important; }
body.high-contrast a { text-decoration: underline !important; font-weight:600 !important; }

/* Modo oscuro */
body.dark-mode { background-color:#1a1a1a !important; color:#ffffff !important; }
body.dark-mode .card, body.dark-mode .modal-content, body.dark-mode .dropdown-menu { background-color:#2d2d2d !important; color:#ffffff !important; border-color:#404040 !important; }
body.dark-mode input, body.dark-mode textarea, body.dark-mode select { background-color:#2d2d2d !important; color:#ffffff !important; border-color:#404040 !important; }
body.dark-mode .table { color:#ffffff !important; }

/* Escala de grises */
body.grayscale-mode { filter: grayscale(100%); }

/* Resaltar enlaces */
body.highlight-links a { background-color:yellow !important; color:#000 !important; text-decoration:underline !important; padding:2px 4px; border-radius:3px; font-weight:600; }

/* Espaciado aumentado */
body.increased-spacing { line-height:2 !important; letter-spacing:0.05em !important; }
body.increased-spacing p, body.increased-spacing li, body.increased-spacing td { margin-bottom:1rem !important; }

/* Focus navegación teclado */
*:focus-visible { outline: 3px solid #4CAF50 !important; outline-offset: 2px !important; }

/* Skip to content */
.skip-to-content { position:absolute; top:-40px; left:0; background:#4CAF50; color:white; padding:8px 16px; text-decoration:none; border-radius:0 0 4px 0; z-index:100000; font-weight:600; }
.skip-to-content:focus { top:0; }

/* Reducir movimiento */
@media (prefers-reduced-motion: reduce) {
    *, *::before, *::after { animation-duration:0.01ms !important; animation-iteration-count:1 !important; transition-duration:0.01ms !important; }
}
