/**
 * TOUCH TARGETS ENFORCEMENT - Sistema ERP
 *
 * Este archivo fuerza los touch targets mínimos de 44-48px
 * en TODOS los elementos interactivos del sistema.
 *
 * CARGAR DESPUÉS de todos los demás CSS para máxima prioridad.
 * Apple HIG: 44px mínimo | Material Design: 48px recomendado
 */

/* ============================================================
   BOTONES - Touch Target Mínimo 44px
   ============================================================ */

button:not([class*="close"]):not(.modal-close),
.btn,
[class*="btn-"],
input[type="button"],
input[type="submit"],
input[type="reset"],
a.btn,
a[class*="btn-"] {
    min-height: 44px !important;
    min-width: 44px !important;
}

/* Dispositivos táctiles: 48px */
@media (pointer: coarse) {
    button:not([class*="close"]):not(.modal-close),
    .btn,
    [class*="btn-"],
    input[type="button"],
    input[type="submit"],
    input[type="reset"],
    a.btn,
    a[class*="btn-"] {
        min-height: 48px !important;
    }
}

/* Botones pequeños explícitos mantienen 36px mínimo */
.btn-sm,
.btn-xs,
.btn-mini,
[class*="btn-sm"],
[class*="btn-xs"] {
    min-height: 36px !important;
    min-width: 36px !important;
}

@media (pointer: coarse) {
    .btn-sm,
    .btn-xs,
    .btn-mini,
    [class*="btn-sm"],
    [class*="btn-xs"] {
        min-height: 44px !important;
        min-width: 44px !important;
    }
}

/* ============================================================
   ICON BUTTONS / ACTION BUTTONS
   ============================================================ */

.btn-icon,
.icon-btn,
.btn-action,
.action-btn,
[class*="btn-icon"],
[class*="icon-btn"],
button[title]:not(.btn):empty,
button:has(> i:only-child),
button:has(> svg:only-child),
button:has(> .bi:only-child),
button:has(> .fa:only-child),
button:has(> .icon:only-child) {
    min-height: 44px !important;
    min-width: 44px !important;
    padding: 8px !important;
}

@media (pointer: coarse) {
    .btn-icon,
    .icon-btn,
    .btn-action,
    .action-btn,
    [class*="btn-icon"],
    [class*="icon-btn"] {
        min-height: 48px !important;
        min-width: 48px !important;
    }
}

/* ============================================================
   INPUTS Y FORM CONTROLS
   ============================================================ */

input:not([type="checkbox"]):not([type="radio"]):not([type="hidden"]),
select,
textarea {
    min-height: 44px !important;
}

@media (pointer: coarse) {
    input:not([type="checkbox"]):not([type="radio"]):not([type="hidden"]),
    select,
    textarea {
        min-height: 48px !important;
    }
}

/* Checkboxes y radios - área táctil expandida */
input[type="checkbox"],
input[type="radio"] {
    min-width: 20px !important;
    min-height: 20px !important;
}

/* Labels de checkbox/radio clickeables */
label:has(input[type="checkbox"]),
label:has(input[type="radio"]),
.checkbox-label,
.radio-label {
    min-height: 44px !important;
    display: inline-flex !important;
    align-items: center !important;
    gap: 8px !important;
    cursor: pointer !important;
}

/* ============================================================
   NAVIGATION ITEMS
   ============================================================ */

.nav-link,
.nav-item > a,
.menu-item,
.dropdown-item,
.sidebar-link,
.sidebar-item,
[class*="nav-"] > a,
nav a,
.navigation a {
    min-height: 44px !important;
    display: flex !important;
    align-items: center !important;
}

@media (pointer: coarse) {
    .nav-link,
    .nav-item > a,
    .menu-item,
    .dropdown-item,
    .sidebar-link,
    .sidebar-item,
    [class*="nav-"] > a,
    nav a,
    .navigation a {
        min-height: 48px !important;
    }
}

/* ============================================================
   TABS
   ============================================================ */

.tab,
.tab-btn,
.tab-item,
.nav-tab,
[role="tab"],
[class*="tab-"] {
    min-height: 44px !important;
    padding-inline: 16px !important;
}

@media (pointer: coarse) {
    .tab,
    .tab-btn,
    .tab-item,
    .nav-tab,
    [role="tab"],
    [class*="tab-"] {
        min-height: 48px !important;
    }
}

/* ============================================================
   TABLE ACTION BUTTONS
   ============================================================ */

table button,
table .btn,
table [class*="btn-"],
.data-table button,
.data-table .btn,
td button,
td .btn,
td a.btn {
    min-height: 36px !important;
    min-width: 36px !important;
}

@media (pointer: coarse) {
    table button,
    table .btn,
    table [class*="btn-"],
    .data-table button,
    .data-table .btn,
    td button,
    td .btn,
    td a.btn {
        min-height: 44px !important;
        min-width: 44px !important;
    }
}

/* ============================================================
   CLICKABLE CARDS / LIST ITEMS
   ============================================================ */

.card-clickable,
.card[onclick],
.card[role="button"],
.list-item-clickable,
[class*="clickable"],
[class*="selectable"] {
    min-height: 44px !important;
    cursor: pointer !important;
}

/* ============================================================
   PAGINATION
   ============================================================ */

.pagination a,
.pagination button,
.pagination .page-link,
.page-item a,
.page-item button,
[class*="pagination"] a,
[class*="pagination"] button {
    min-height: 44px !important;
    min-width: 44px !important;
}

/* ============================================================
   CLOSE BUTTONS (modales, alerts, etc.)
   ============================================================ */

.close,
.btn-close,
.modal-close,
[class*="close"],
button[aria-label="Close"],
button[aria-label="Cerrar"] {
    min-height: 44px !important;
    min-width: 44px !important;
}

/* ============================================================
   CHIPS / TAGS INTERACTIVOS
   ============================================================ */

.chip,
.tag,
.badge-clickable,
[class*="chip"]:not(.chip-static),
[class*="tag"]:not(.tag-static) {
    min-height: 32px;
}

@media (pointer: coarse) {
    .chip,
    .tag,
    .badge-clickable,
    [class*="chip"]:not(.chip-static),
    [class*="tag"]:not(.tag-static) {
        min-height: 44px !important;
        padding: 8px 16px !important;
    }
}

/* ============================================================
   TOGGLE / SWITCH
   ============================================================ */

.toggle,
.switch,
[class*="toggle"],
[class*="switch"],
input[type="checkbox"][role="switch"] {
    min-height: 44px !important;
    min-width: 44px !important;
}

/* ============================================================
   ACCORDION HEADERS
   ============================================================ */

.accordion-header,
.accordion-button,
.collapse-header,
[class*="accordion"] > button,
[class*="accordion"] > [class*="header"],
details > summary {
    min-height: 44px !important;
}

@media (pointer: coarse) {
    .accordion-header,
    .accordion-button,
    .collapse-header,
    details > summary {
        min-height: 48px !important;
    }
}

/* ============================================================
   FLOATING ACTION BUTTON (FAB)
   ============================================================ */

.fab,
.floating-btn,
[class*="fab"],
[class*="floating-action"] {
    min-height: 56px !important;
    min-width: 56px !important;
}

/* ============================================================
   BREADCRUMB LINKS
   ============================================================ */

.breadcrumb a,
.breadcrumb-item a,
[class*="breadcrumb"] a {
    min-height: 44px !important;
    display: inline-flex !important;
    align-items: center !important;
}

/* ============================================================
   STEPPER / WIZARD STEPS
   ============================================================ */

.step,
.stepper-item,
.wizard-step,
[class*="step"]:not(.step-content) {
    min-height: 44px !important;
}

/* ============================================================
   DROPDOWN TRIGGERS
   ============================================================ */

.dropdown-toggle,
[data-toggle="dropdown"],
[data-bs-toggle="dropdown"],
button[aria-haspopup="true"] {
    min-height: 44px !important;
}

/* ============================================================
   FOOTER LINKS
   ============================================================ */

footer a,
.footer a,
.footer-links a,
[class*="footer"] a {
    min-height: 44px !important;
    display: inline-flex !important;
    align-items: center !important;
    padding: 8px 0 !important;
}

@media (pointer: coarse) {
    footer a,
    .footer a,
    .footer-links a,
    [class*="footer"] a {
        min-height: 48px !important;
    }
}

/* ============================================================
   SOCIAL MEDIA ICONS
   ============================================================ */

.social-link,
.social-icon,
[class*="social"] a,
a[href*="facebook"],
a[href*="twitter"],
a[href*="instagram"],
a[href*="linkedin"] {
    min-height: 44px !important;
    min-width: 44px !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
}

/* ============================================================
   UTILITIES - Forzar touch target en cualquier elemento
   ============================================================ */

.touch-target {
    min-height: 44px !important;
    min-width: 44px !important;
}

.touch-target-comfortable {
    min-height: 48px !important;
    min-width: 48px !important;
}
