/* Ubicacion: frontend/css/speas-tokens.css */
/* Fase 1.1: capa final de tokens para normal/oscuro/suave. */

:root,
html[data-speas-theme="normal"],
html[data-speas-theme="claro"] {
    --speas-bg: #eef2f6;
    --speas-surface: #ffffff;
    --speas-surface-2: #f7f9fc;
    --speas-elevated: #ffffff;
    --speas-sidebar: #f8fafc;
    --speas-sidebar-2: #ffffff;
    --speas-text: #172033;
    --speas-muted: #64748b;
    --speas-border: #d9e2ef;
    --speas-border-strong: #b8c5d6;
    --speas-accent: #0f766e;
    --speas-accent-2: #2563eb;
    --speas-danger: #dc2626;
    --speas-success: #16a34a;
    --speas-warning: #d97706;
    --speas-info: #2563eb;
    --speas-radius: 8px;
    --speas-radius-sm: 6px;
    --speas-shadow: 0 10px 26px rgba(15, 23, 42, 0.08);
    --speas-shadow-sm: 0 4px 12px rgba(15, 23, 42, 0.06);
    --speas-focus-ring: 0 0 0 3px rgba(15, 118, 110, 0.16);
    --speas-table-head: #f1f5f9;
    --speas-row-hover: #f8fafc;
    --primary-color: var(--speas-accent);
    --primary-dark: #115e59;
    --dark-color: var(--speas-text);
    --text-color-main: var(--speas-text);
    --text-color-secondary: var(--speas-muted);
    --border-color: var(--speas-border);
    --card-bg: var(--speas-surface);
    --body-bg: var(--speas-bg);
}

html[data-speas-theme="oscuro"] {
    --speas-bg: #101318;
    --speas-surface: #181d24;
    --speas-surface-2: #202631;
    --speas-elevated: #1d2430;
    --speas-sidebar: #0d1015;
    --speas-sidebar-2: #151a22;
    --speas-text: #edf2f7;
    --speas-muted: #a9b4c3;
    --speas-border: #303946;
    --speas-border-strong: #465466;
    --speas-accent: #2dd4bf;
    --speas-accent-2: #60a5fa;
    --speas-table-head: #222a35;
    --speas-row-hover: #232b36;
    --speas-shadow: 0 18px 42px rgba(0, 0, 0, 0.34);
    --speas-shadow-sm: 0 8px 18px rgba(0, 0, 0, 0.24);
    --speas-focus-ring: 0 0 0 3px rgba(45, 212, 191, 0.18);
    --primary-color: var(--speas-accent);
    --primary-dark: #14b8a6;
    --dark-color: var(--speas-text);
    --text-color-main: var(--speas-text);
    --text-color-secondary: var(--speas-muted);
    --border-color: var(--speas-border);
    --card-bg: var(--speas-surface);
    --body-bg: var(--speas-bg);
}

html[data-speas-theme="suave"] {
    --speas-bg: #fff7fb;
    --speas-surface: #ffffff;
    --speas-surface-2: #fff1f7;
    --speas-elevated: #ffffff;
    --speas-sidebar: #fff9fc;
    --speas-sidebar-2: #ffffff;
    --speas-text: #433747;
    --speas-muted: #856f84;
    --speas-border: #efdce8;
    --speas-border-strong: #dfbdd2;
    --speas-accent: #b24e78;
    --speas-accent-2: #6d72bf;
    --speas-table-head: #fff0f6;
    --speas-row-hover: #fff7fb;
    --speas-shadow: 0 10px 24px rgba(178, 78, 120, 0.08);
    --speas-shadow-sm: 0 4px 12px rgba(178, 78, 120, 0.06);
    --speas-focus-ring: 0 0 0 3px rgba(178, 78, 120, 0.16);
    --primary-color: var(--speas-accent);
    --primary-dark: #943f65;
    --dark-color: var(--speas-text);
    --text-color-main: var(--speas-text);
    --text-color-secondary: var(--speas-muted);
    --border-color: var(--speas-border);
    --card-bg: var(--speas-surface);
    --body-bg: var(--speas-bg);
}

body.speas-app,
body.speas-app :is(.home, #contenedor-dinamico, #module-content, .contenedor-modulo, .module-content, .module-page, .module-shell, .main-content) {
    background: var(--speas-bg) !important;
    color: var(--speas-text) !important;
}

body.speas-app :is(.card, .panel, .table-container, .filters-card, .summary-card, .module-header, .page-header, .header-section, .kpi-card) {
    background: var(--speas-surface) !important;
    border-color: var(--speas-border) !important;
    color: var(--speas-text) !important;
}

body.speas-app :is(input, select, textarea, .form-control, .form-select, .search-input, .finance-select, .finance-date-input) {
    background: var(--speas-elevated) !important;
    border-color: var(--speas-border) !important;
    color: var(--speas-text) !important;
}

body.speas-app :is(input, select, textarea, .form-control, .form-select, .search-input, .finance-select, .finance-date-input):focus {
    border-color: var(--speas-accent) !important;
    box-shadow: var(--speas-focus-ring) !important;
    outline: none !important;
}

body.speas-app :is(.speas-theme-switch, .finance-tab-shell) {
    background: color-mix(in srgb, var(--speas-surface) 92%, var(--speas-surface-2)) !important;
    border-color: var(--speas-border) !important;
}

body.speas-app .speas-theme-btn.active,
body.speas-app [data-speas-theme-option].active {
    background: var(--speas-accent) !important;
    border-color: var(--speas-accent) !important;
    color: #ffffff !important;
}

body.speas-app .finance-inbox-container :is(
    .finance-header,
    .finance-panel,
    .finance-tab-shell,
    .finance-view-heading,
    .finance-kpi,
    .finance-list-column,
    .finance-upload-card,
    .finance-report-panel,
    .finance-report-kpis div,
    .finance-ops-summary div,
    .finance-process-item,
    .finance-report-item,
    .finance-support-category-card,
    .finance-support-import-item,
    .finance-coverage-alert
) {
    background: var(--speas-surface) !important;
    border-color: var(--speas-border) !important;
    color: var(--speas-text) !important;
    box-shadow: var(--speas-shadow-sm) !important;
}

body.speas-app .finance-inbox-container .finance-tab-panel {
    background: var(--speas-surface-2) !important;
    border-color: var(--speas-border) !important;
}

body.speas-app .finance-inbox-container :is(h2, h3, h4, h5, strong, label, th, .finance-kpi strong, .finance-ops-summary strong, .finance-report-kpis strong) {
    color: var(--speas-text) !important;
}

body.speas-app .finance-inbox-container :is(p, small, span, td, .finance-panel-title span, .finance-view-heading p, .finance-table td small) {
    color: var(--speas-muted) !important;
}

body.speas-app .finance-inbox-container :is(.finance-select, .finance-date-input, input, textarea) {
    background: var(--speas-elevated) !important;
    border-color: var(--speas-border) !important;
    color: var(--speas-text) !important;
}

body.speas-app .finance-inbox-container .finance-tab {
    background: transparent !important;
    border-color: transparent !important;
    color: var(--speas-muted) !important;
}

body.speas-app .finance-inbox-container .finance-tab:is(.is-active, :hover) {
    background: color-mix(in srgb, var(--speas-accent) 12%, var(--speas-surface)) !important;
    border-color: color-mix(in srgb, var(--speas-accent) 28%, var(--speas-border)) !important;
    color: var(--speas-accent) !important;
}

body.speas-app .finance-inbox-container :is(.finance-primary-btn, .finance-mini-btn.primary) {
    background: var(--speas-accent) !important;
    border-color: var(--speas-accent) !important;
    color: #ffffff !important;
}

body.speas-app .finance-inbox-container :is(.finance-secondary-btn, .finance-icon-btn, .finance-mini-btn) {
    background: var(--speas-surface-2) !important;
    border-color: var(--speas-border) !important;
    color: var(--speas-accent) !important;
}

body.speas-app .finance-inbox-container :is(table, .finance-table) {
    background: var(--speas-surface) !important;
    color: var(--speas-text) !important;
}

body.speas-app .finance-inbox-container :is(thead, th) {
    background: var(--speas-table-head) !important;
    color: var(--speas-text) !important;
}

body.speas-app .finance-inbox-container tr:hover td {
    background: var(--speas-row-hover) !important;
}

/* Speas proveedores mobile/tablet final priority v1.1.1 */
@media (max-width: 1024px) {
    body.speas-app.module-proveedores-active .table-module-container:has(#tabla-proveedores-body) {
        max-width: min(100%, 760px) !important;
        margin-inline: auto !important;
    }

    body.speas-app.module-proveedores-active .table-module-container:has(#tabla-proveedores-body) > .table-toolbar {
        display: grid !important;
        grid-template-columns: minmax(0, 1fr) auto auto !important;
        gap: 10px !important;
        align-items: center !important;
        padding: 12px !important;
        border-radius: 16px !important;
        background: #ffffff !important;
        border: 1px solid #dbe7f5 !important;
        box-shadow: 0 14px 34px rgba(15, 23, 42, 0.05) !important;
    }

    body.speas-app.module-proveedores-active .table-module-container:has(#tabla-proveedores-body) .filter-actions {
        display: contents !important;
    }

    body.speas-app.module-proveedores-active .table-module-container:has(#tabla-proveedores-body) .btn-icon {
        width: auto !important;
        min-width: 44px !important;
        height: 44px !important;
        padding: 0 12px !important;
        display: inline-flex !important;
        align-items: center !important;
        justify-content: center !important;
        gap: 7px !important;
        border-radius: 12px !important;
        background: #f8fbff !important;
        border: 1px solid #d7e4f4 !important;
        color: #284469 !important;
        box-shadow: none !important;
    }

    body.speas-app.module-proveedores-active .table-module-container:has(#tabla-proveedores-body) .btn-icon[title="Filtros"]::after {
        content: "Filtro";
        font-size: 12px;
        font-weight: 800;
    }

    body.speas-app.module-proveedores-active .table-module-container:has(#tabla-proveedores-body) .btn-icon[title="Exportar Excel"]::after {
        content: "Excel";
        font-size: 12px;
        font-weight: 800;
    }

    body.speas-app.module-proveedores-active #modal-proveedor.modal-overlay.active .modal-content.slide-in-right,
    body.speas-app.module-proveedores-active #modal-proveedor.modal-overlay.active .modal-content {
        width: min(780px, calc(100vw - 56px)) !important;
        max-width: calc(100vw - 56px) !important;
        height: min(840px, calc(100dvh - 56px)) !important;
        max-height: calc(100dvh - 56px) !important;
        border-radius: 22px !important;
        overflow: hidden !important;
    }

    body.speas-app.module-proveedores-active #modal-proveedor .modal-body {
        padding: 20px 24px !important;
        overflow-y: auto !important;
    }

    body.speas-app.module-proveedores-active #modal-proveedor .premium-table,
    body.speas-app.module-proveedores-active #modal-proveedor .premium-table tbody {
        display: grid !important;
        width: 100% !important;
        gap: 12px !important;
        border: 0 !important;
        background: transparent !important;
    }

    body.speas-app.module-proveedores-active #modal-proveedor .premium-table tr {
        display: grid !important;
        grid-template-columns: repeat(2, minmax(0, 1fr)) auto !important;
        gap: 12px !important;
        align-items: center !important;
        padding: 14px !important;
        border-radius: 16px !important;
        border: 1px solid #dbe7f5 !important;
        background: #f8fbff !important;
        box-shadow: 0 10px 24px rgba(15, 23, 42, 0.04) !important;
    }

    body.speas-app.module-proveedores-active #modal-proveedor #lista-dir-erp tr,
    body.speas-app.module-proveedores-active #modal-proveedor #lista-banco-erp tr {
        grid-template-columns: repeat(3, minmax(0, 1fr)) auto !important;
    }

    body.speas-app.module-proveedores-active #modal-proveedor .premium-table td {
        display: block !important;
        width: 100% !important;
        min-width: 0 !important;
        padding: 0 !important;
        border: 0 !important;
        background: transparent !important;
    }

    body.speas-app.module-proveedores-active #modal-proveedor .premium-table td[style*="width:30px"],
    body.speas-app.module-proveedores-active #modal-proveedor .premium-table td[style*="width: 4%"] {
        width: auto !important;
        justify-self: end !important;
    }

    body.speas-app.module-proveedores-active #modal-proveedor .premium-table input,
    body.speas-app.module-proveedores-active #modal-proveedor .premium-table select {
        width: 100% !important;
        min-height: 42px !important;
        border: 1px solid #d2dfef !important;
        border-radius: 11px !important;
        background: #ffffff !important;
        color: #0f172a !important;
        padding: 9px 12px !important;
        box-sizing: border-box !important;
    }

    body.speas-app.module-proveedores-active #modal-proveedor .premium-table button {
        width: 38px !important;
        height: 38px !important;
        border-radius: 11px !important;
        display: inline-flex !important;
        align-items: center !important;
        justify-content: center !important;
        background: #ffe8ec !important;
        color: #ef4444 !important;
        border: 1px solid #ffd1d8 !important;
    }
}

@media (max-width: 768px) {
    body.speas-app.module-proveedores-active .table-module-container:has(#tabla-proveedores-body) {
        width: min(100%, 390px) !important;
        padding: 0 10px 28px !important;
    }

    body.speas-app.module-proveedores-active .table-module-container:has(#tabla-proveedores-body) > .module-header {
        margin-top: 0 !important;
        padding: 16px !important;
        border-radius: 16px !important;
    }

    body.speas-app.module-proveedores-active .table-module-container:has(#tabla-proveedores-body) > .module-header > div:last-child {
        width: 100% !important;
        display: grid !important;
        grid-template-columns: 1fr 1fr !important;
        gap: 10px !important;
    }

    body.speas-app.module-proveedores-active .table-module-container:has(#tabla-proveedores-body) > .module-header button {
        min-height: 46px !important;
        justify-content: center !important;
        white-space: normal !important;
        text-align: center !important;
    }

    body.speas-app.module-proveedores-active .table-module-container:has(#tabla-proveedores-body) > .table-toolbar {
        grid-template-columns: 1fr 44px 44px !important;
        gap: 8px !important;
    }

    body.speas-app.module-proveedores-active .table-module-container:has(#tabla-proveedores-body) .btn-icon {
        min-width: 44px !important;
        padding: 0 !important;
    }

    body.speas-app.module-proveedores-active .table-module-container:has(#tabla-proveedores-body) .btn-icon::after {
        content: none !important;
    }

    body.speas-app.module-proveedores-active .table-module-container:has(#tabla-proveedores-body) > .table-responsive {
        overflow: visible !important;
        background: transparent !important;
        border: 0 !important;
        box-shadow: none !important;
        padding: 0 !important;
    }

    body.speas-app.module-proveedores-active .table-module-container:has(#tabla-proveedores-body) > .table-responsive > table.premium-table,
    body.speas-app.module-proveedores-active .table-module-container:has(#tabla-proveedores-body) > .table-responsive > table.premium-table tbody,
    body.speas-app.module-proveedores-active .table-module-container:has(#tabla-proveedores-body) > .table-responsive > table.premium-table tr,
    body.speas-app.module-proveedores-active .table-module-container:has(#tabla-proveedores-body) > .table-responsive > table.premium-table td {
        display: block !important;
        width: 100% !important;
        min-width: 0 !important;
        max-width: 100% !important;
    }

    body.speas-app.module-proveedores-active .table-module-container:has(#tabla-proveedores-body) > .table-responsive > table.premium-table thead {
        display: none !important;
    }

    body.speas-app.module-proveedores-active .table-module-container:has(#tabla-proveedores-body) > .table-responsive > table.premium-table tbody {
        display: grid !important;
        gap: 12px !important;
    }

    body.speas-app.module-proveedores-active .table-module-container:has(#tabla-proveedores-body) > .table-responsive > table.premium-table tr {
        padding: 14px !important;
        border-radius: 17px !important;
        background: #ffffff !important;
        color: #172033 !important;
        border: 1px solid #dbe7f5 !important;
        box-shadow: 0 16px 34px rgba(15, 23, 42, 0.07) !important;
    }

    body.speas-app.module-proveedores-active .table-module-container:has(#tabla-proveedores-body) > .table-responsive > table.premium-table td {
        display: grid !important;
        grid-template-columns: 92px minmax(0, 1fr) !important;
        align-items: center !important;
        gap: 10px !important;
        padding: 8px 0 !important;
        border: 0 !important;
        border-bottom: 1px solid #edf3fb !important;
        background: transparent !important;
        color: #172033 !important;
        font-size: 12px !important;
        line-height: 1.35 !important;
        text-align: left !important;
    }

    body.speas-app.module-proveedores-active .table-module-container:has(#tabla-proveedores-body) > .table-responsive > table.premium-table td:last-child {
        border-bottom: 0 !important;
        display: block !important;
    }

    body.speas-app.module-proveedores-active .table-module-container:has(#tabla-proveedores-body) > .table-responsive > table.premium-table td::before {
        display: block !important;
        color: #64748b !important;
        font-size: 10px !important;
        font-weight: 900 !important;
        line-height: 1.2 !important;
        text-transform: uppercase !important;
    }

    body.speas-app.module-proveedores-active .table-module-container:has(#tabla-proveedores-body) #tabla-proveedores-body td:nth-child(1)::before { content: "RUC" !important; }
    body.speas-app.module-proveedores-active .table-module-container:has(#tabla-proveedores-body) #tabla-proveedores-body td:nth-child(2)::before { content: "Razon social" !important; }
    body.speas-app.module-proveedores-active .table-module-container:has(#tabla-proveedores-body) #tabla-proveedores-body td:nth-child(3)::before { content: "Categoria" !important; }
    body.speas-app.module-proveedores-active .table-module-container:has(#tabla-proveedores-body) #tabla-proveedores-body td:nth-child(4)::before { content: "Contacto" !important; }
    body.speas-app.module-proveedores-active .table-module-container:has(#tabla-proveedores-body) #tabla-proveedores-body td:nth-child(5)::before { content: "Credito" !important; }
    body.speas-app.module-proveedores-active .table-module-container:has(#tabla-proveedores-body) #tabla-proveedores-body td:nth-child(6)::before { content: "Estado" !important; }
    body.speas-app.module-proveedores-active .table-module-container:has(#tabla-proveedores-body) #tabla-proveedores-body td:nth-child(7)::before { content: "Acciones" !important; }

    body.speas-app.module-proveedores-active .table-module-container:has(#tabla-proveedores-body) .client-contact {
        align-items: flex-start !important;
    }

    body.speas-app.module-proveedores-active .table-module-container:has(#tabla-proveedores-body) .status-badge {
        width: fit-content !important;
        max-width: 100% !important;
    }

    body.speas-app.module-proveedores-active .table-module-container:has(#tabla-proveedores-body) .action-buttons {
        display: flex !important;
        justify-content: flex-start !important;
        gap: 9px !important;
        margin-top: 4px !important;
    }

    body.speas-app.module-proveedores-active #modal-proveedor.modal-overlay.active {
        padding: 10px !important;
        align-items: center !important;
        justify-content: center !important;
    }

    body.speas-app.module-proveedores-active #modal-proveedor.modal-overlay.active .modal-content.slide-in-right,
    body.speas-app.module-proveedores-active #modal-proveedor.modal-overlay.active .modal-content {
        width: calc(100vw - 20px) !important;
        max-width: calc(100vw - 20px) !important;
        height: calc(100dvh - 20px) !important;
        max-height: calc(100dvh - 20px) !important;
        border-radius: 20px !important;
    }

    body.speas-app.module-proveedores-active #modal-proveedor .modal-header {
        min-height: 62px !important;
        padding: 16px 18px !important;
    }

    body.speas-app.module-proveedores-active #modal-proveedor .modal-header h3 {
        font-size: 15px !important;
    }

    body.speas-app.module-proveedores-active #modal-proveedor .btn-close {
        width: 36px !important;
        height: 36px !important;
        min-width: 36px !important;
        border-radius: 12px !important;
    }

    body.speas-app.module-proveedores-active #modal-proveedor .modal-body {
        padding: 16px !important;
    }

    body.speas-app.module-proveedores-active #modal-proveedor .row-grid {
        grid-template-columns: 1fr !important;
        gap: 12px !important;
    }

    body.speas-app.module-proveedores-active #modal-proveedor .form-subtitle {
        display: flex !important;
        align-items: center !important;
        gap: 6px !important;
        margin: 18px 0 12px !important;
        font-size: 13px !important;
    }

    body.speas-app.module-proveedores-active #modal-proveedor .premium-table tr,
    body.speas-app.module-proveedores-active #modal-proveedor #lista-dir-erp tr,
    body.speas-app.module-proveedores-active #modal-proveedor #lista-tel-erp tr,
    body.speas-app.module-proveedores-active #modal-proveedor #lista-correo-erp tr,
    body.speas-app.module-proveedores-active #modal-proveedor #lista-banco-erp tr {
        grid-template-columns: 1fr !important;
        gap: 10px !important;
        padding: 13px !important;
    }

    body.speas-app.module-proveedores-active #modal-proveedor .premium-table td[style*="width:30px"],
    body.speas-app.module-proveedores-active #modal-proveedor .premium-table td[style*="width: 4%"],
    body.speas-app.module-proveedores-active #modal-proveedor .premium-table td:last-child {
        position: static !important;
        justify-self: stretch !important;
        width: 100% !important;
        text-align: right !important;
    }

    body.speas-app.module-proveedores-active #modal-proveedor .premium-table td:last-child button {
        margin-left: auto !important;
    }

    body.speas-app.module-proveedores-active #modal-proveedor .modal-footer {
        grid-template-columns: 1fr !important;
        gap: 10px !important;
        padding: 12px 16px max(14px, env(safe-area-inset-bottom)) !important;
    }

    body.speas-app.module-proveedores-active #modal-proveedor .modal-footer .btn-cancel {
        order: 1 !important;
    }

    body.speas-app.module-proveedores-active #modal-proveedor .modal-footer .btn-primary {
        order: 2 !important;
    }

    html[data-speas-theme="oscuro"] body.speas-app.module-proveedores-active .table-module-container:has(#tabla-proveedores-body) > .table-responsive > table.premium-table tr {
        background: #273443 !important;
        border-color: #586b82 !important;
        box-shadow: 0 16px 34px rgba(0, 0, 0, 0.18) !important;
    }

    html[data-speas-theme="oscuro"] body.speas-app.module-proveedores-active .table-module-container:has(#tabla-proveedores-body) > .table-responsive > table.premium-table td {
        color: #f8fafc !important;
        border-bottom-color: #43546a !important;
    }

    html[data-speas-theme="oscuro"] body.speas-app.module-proveedores-active .table-module-container:has(#tabla-proveedores-body) > .table-responsive > table.premium-table td::before {
        color: #b8c6d8 !important;
    }

    html[data-speas-theme="oscuro"] body.speas-app.module-proveedores-active .table-module-container:has(#tabla-proveedores-body) > .table-toolbar,
    html[data-speas-theme="oscuro"] body.speas-app.module-proveedores-active .table-module-container:has(#tabla-proveedores-body) .btn-icon {
        background: #303b48 !important;
        border-color: #607187 !important;
        color: #f8fafc !important;
    }

    html:not([data-speas-theme="oscuro"]) body.speas-app.module-proveedores-active .table-module-container:has(#tabla-proveedores-body) > .table-responsive > table.premium-table tr,
    html[data-speas-theme="normal"] body.speas-app.module-proveedores-active .table-module-container:has(#tabla-proveedores-body) > .table-responsive > table.premium-table tr,
    html[data-speas-theme="claro"] body.speas-app.module-proveedores-active .table-module-container:has(#tabla-proveedores-body) > .table-responsive > table.premium-table tr,
    html[data-speas-theme="suave"] body.speas-app.module-proveedores-active .table-module-container:has(#tabla-proveedores-body) > .table-responsive > table.premium-table tr {
        background: #ffffff !important;
        color: #172033 !important;
        border-color: #dbe7f5 !important;
    }

    html:not([data-speas-theme="oscuro"]) body.speas-app.module-proveedores-active .table-module-container:has(#tabla-proveedores-body) > .table-responsive > table.premium-table td,
    html[data-speas-theme="normal"] body.speas-app.module-proveedores-active .table-module-container:has(#tabla-proveedores-body) > .table-responsive > table.premium-table td,
    html[data-speas-theme="claro"] body.speas-app.module-proveedores-active .table-module-container:has(#tabla-proveedores-body) > .table-responsive > table.premium-table td,
    html[data-speas-theme="suave"] body.speas-app.module-proveedores-active .table-module-container:has(#tabla-proveedores-body) > .table-responsive > table.premium-table td,
    html:not([data-speas-theme="oscuro"]) body.speas-app.module-proveedores-active .table-module-container:has(#tabla-proveedores-body) > .table-responsive > table.premium-table td *,
    html[data-speas-theme="normal"] body.speas-app.module-proveedores-active .table-module-container:has(#tabla-proveedores-body) > .table-responsive > table.premium-table td *,
    html[data-speas-theme="claro"] body.speas-app.module-proveedores-active .table-module-container:has(#tabla-proveedores-body) > .table-responsive > table.premium-table td *,
    html[data-speas-theme="suave"] body.speas-app.module-proveedores-active .table-module-container:has(#tabla-proveedores-body) > .table-responsive > table.premium-table td * {
        color: #172033 !important;
    }
}

/* Speas proveedores direct mobile overrides v1.1.2 */
@media (max-width: 768px) {
    body.speas-app.module-proveedores-active #tabla-proveedores-body {
        display: grid !important;
        gap: 12px !important;
        width: 100% !important;
    }

    body.speas-app.module-proveedores-active #tabla-proveedores-body tr {
        display: block !important;
        width: 100% !important;
        min-width: 0 !important;
        max-width: 100% !important;
        padding: 14px !important;
        border-radius: 17px !important;
        background: #ffffff !important;
        color: #172033 !important;
        border: 1px solid #dbe7f5 !important;
        box-shadow: 0 16px 34px rgba(15, 23, 42, 0.07) !important;
        box-sizing: border-box !important;
    }

    body.speas-app.module-proveedores-active #tabla-proveedores-body td {
        display: grid !important;
        width: 100% !important;
        min-width: 0 !important;
        max-width: 100% !important;
        grid-template-columns: 92px minmax(0, 1fr) !important;
        align-items: center !important;
        gap: 10px !important;
        padding: 8px 0 !important;
        border: 0 !important;
        border-bottom: 1px solid #edf3fb !important;
        background: transparent !important;
        color: #172033 !important;
        font-size: 12px !important;
        line-height: 1.35 !important;
        text-align: left !important;
        box-sizing: border-box !important;
    }

    body.speas-app.module-proveedores-active #tabla-proveedores-body td:last-child {
        display: block !important;
        border-bottom: 0 !important;
    }

    body.speas-app.module-proveedores-active #tabla-proveedores-body td::before {
        display: block !important;
        color: #64748b !important;
        font-size: 10px !important;
        font-weight: 900 !important;
        line-height: 1.2 !important;
        text-transform: uppercase !important;
    }

    body.speas-app.module-proveedores-active #tabla-proveedores-body td:nth-child(1)::before { content: "RUC" !important; }
    body.speas-app.module-proveedores-active #tabla-proveedores-body td:nth-child(2)::before { content: "Razon social" !important; }
    body.speas-app.module-proveedores-active #tabla-proveedores-body td:nth-child(3)::before { content: "Categoria" !important; }
    body.speas-app.module-proveedores-active #tabla-proveedores-body td:nth-child(4)::before { content: "Contacto" !important; }
    body.speas-app.module-proveedores-active #tabla-proveedores-body td:nth-child(5)::before { content: "Credito" !important; }
    body.speas-app.module-proveedores-active #tabla-proveedores-body td:nth-child(6)::before { content: "Estado" !important; }
    body.speas-app.module-proveedores-active #tabla-proveedores-body td:nth-child(7)::before { content: "Acciones" !important; }

    body.speas-app.module-proveedores-active #tabla-proveedores-body td,
    body.speas-app.module-proveedores-active #tabla-proveedores-body td * {
        color: #172033 !important;
    }

    body.speas-app.module-proveedores-active #tabla-proveedores-body td:nth-child(3) .status-badge,
    body.speas-app.module-proveedores-active #tabla-proveedores-body td:nth-child(6) .status-badge {
        color: #1d4ed8 !important;
    }

    body.speas-app.module-proveedores-active #tabla-proveedores-body .action-buttons {
        display: flex !important;
        flex-wrap: wrap !important;
        justify-content: flex-start !important;
        gap: 9px !important;
        margin-top: 4px !important;
    }

    body.speas-app.module-proveedores-active #modal-proveedor tbody#lista-dir-erp tr,
    body.speas-app.module-proveedores-active #modal-proveedor tbody#lista-tel-erp tr,
    body.speas-app.module-proveedores-active #modal-proveedor tbody#lista-correo-erp tr,
    body.speas-app.module-proveedores-active #modal-proveedor tbody#lista-banco-erp tr {
        display: grid !important;
        grid-template-columns: 1fr !important;
        gap: 10px !important;
        padding: 13px !important;
    }

    body.speas-app.module-proveedores-active #modal-proveedor tbody#lista-dir-erp td,
    body.speas-app.module-proveedores-active #modal-proveedor tbody#lista-tel-erp td,
    body.speas-app.module-proveedores-active #modal-proveedor tbody#lista-correo-erp td,
    body.speas-app.module-proveedores-active #modal-proveedor tbody#lista-banco-erp td {
        display: block !important;
        width: 100% !important;
        min-width: 0 !important;
        max-width: 100% !important;
        padding: 0 !important;
        border: 0 !important;
    }

    html[data-speas-theme="oscuro"] body.speas-app.module-proveedores-active #tabla-proveedores-body tr {
        background: #273443 !important;
        color: #f8fafc !important;
        border-color: #586b82 !important;
        box-shadow: 0 16px 34px rgba(0, 0, 0, 0.18) !important;
    }

    html[data-speas-theme="oscuro"] body.speas-app.module-proveedores-active #tabla-proveedores-body td,
    html[data-speas-theme="oscuro"] body.speas-app.module-proveedores-active #tabla-proveedores-body td * {
        color: #f8fafc !important;
        border-bottom-color: #43546a !important;
    }

    html[data-speas-theme="oscuro"] body.speas-app.module-proveedores-active #tabla-proveedores-body td::before {
        color: #b8c6d8 !important;
    }
}

/* Speas proveedores table layout breaker v1.1.3 */
@media (max-width: 768px) {
    html body.speas-app.module-proveedores-active .table-module-container:has(#tabla-proveedores-body) table.premium-table,
    html body.speas-app.module-proveedores-active .table-module-container:has(#tabla-proveedores-body) table.premium-table tbody#tabla-proveedores-body {
        display: block !important;
        width: 100% !important;
        min-width: 0 !important;
        max-width: 100% !important;
        border-collapse: separate !important;
        border-spacing: 0 !important;
        background: transparent !important;
    }

    html body.speas-app.module-proveedores-active .table-module-container:has(#tabla-proveedores-body) table.premium-table thead {
        display: none !important;
    }

    html body.speas-app.module-proveedores-active .table-module-container:has(#tabla-proveedores-body) table.premium-table tbody#tabla-proveedores-body {
        display: grid !important;
        gap: 12px !important;
    }

    html body.speas-app.module-proveedores-active .table-module-container:has(#tabla-proveedores-body) table.premium-table tbody#tabla-proveedores-body > tr {
        display: grid !important;
        grid-template-columns: 1fr !important;
        width: 100% !important;
        min-width: 0 !important;
        max-width: 100% !important;
        padding: 14px !important;
        border-radius: 17px !important;
        background: #ffffff !important;
        color: #172033 !important;
        border: 1px solid #dbe7f5 !important;
        box-shadow: 0 16px 34px rgba(15, 23, 42, 0.07) !important;
        box-sizing: border-box !important;
    }

    html body.speas-app.module-proveedores-active .table-module-container:has(#tabla-proveedores-body) table.premium-table tbody#tabla-proveedores-body > tr > td {
        display: grid !important;
        width: 100% !important;
        min-width: 0 !important;
        max-width: 100% !important;
        grid-template-columns: 92px minmax(0, 1fr) !important;
        align-items: center !important;
        gap: 10px !important;
        padding: 8px 0 !important;
        border: 0 !important;
        border-bottom: 1px solid #edf3fb !important;
        background: transparent !important;
        color: #172033 !important;
        font-size: 12px !important;
        line-height: 1.35 !important;
        text-align: left !important;
        box-sizing: border-box !important;
    }

    html body.speas-app.module-proveedores-active .table-module-container:has(#tabla-proveedores-body) table.premium-table tbody#tabla-proveedores-body > tr > td:last-child {
        display: block !important;
        border-bottom: 0 !important;
    }

    html body.speas-app.module-proveedores-active .table-module-container:has(#tabla-proveedores-body) table.premium-table tbody#tabla-proveedores-body > tr > td::before {
        display: block !important;
        color: #64748b !important;
        font-size: 10px !important;
        font-weight: 900 !important;
        line-height: 1.2 !important;
        text-transform: uppercase !important;
    }

    html[data-speas-theme="oscuro"] body.speas-app.module-proveedores-active .table-module-container:has(#tabla-proveedores-body) table.premium-table tbody#tabla-proveedores-body > tr {
        background: #273443 !important;
        color: #f8fafc !important;
        border-color: #586b82 !important;
        box-shadow: 0 16px 34px rgba(0, 0, 0, 0.18) !important;
    }

    html[data-speas-theme="oscuro"] body.speas-app.module-proveedores-active .table-module-container:has(#tabla-proveedores-body) table.premium-table tbody#tabla-proveedores-body > tr > td,
    html[data-speas-theme="oscuro"] body.speas-app.module-proveedores-active .table-module-container:has(#tabla-proveedores-body) table.premium-table tbody#tabla-proveedores-body > tr > td * {
        color: #f8fafc !important;
        border-bottom-color: #43546a !important;
    }

    html[data-speas-theme="oscuro"] body.speas-app.module-proveedores-active .table-module-container:has(#tabla-proveedores-body) table.premium-table tbody#tabla-proveedores-body > tr > td::before {
        color: #b8c6d8 !important;
    }
}

/* Speas proveedores mobile cards and modal fields v1.1.4 */
@media (max-width: 768px) {
    html body.speas-app.module-proveedores-active #module-content .table-module-container {
        width: min(100%, 390px) !important;
        margin-inline: auto !important;
        padding-inline: 10px !important;
    }

    html body.speas-app.module-proveedores-active #module-content .table-module-container > .table-toolbar {
        grid-template-columns: minmax(0, 1fr) 44px 44px !important;
        align-items: center !important;
        gap: 8px !important;
        padding: 10px !important;
    }

    html body.speas-app.module-proveedores-active #module-content .table-module-container .search-box {
        min-width: 0 !important;
        width: 100% !important;
    }

    html body.speas-app.module-proveedores-active #module-content .table-module-container .search-box input {
        min-width: 0 !important;
        width: 100% !important;
        text-overflow: ellipsis !important;
    }

    html body.speas-app.module-proveedores-active .table-module-container:has(#tabla-proveedores-body) table.premium-table tbody#tabla-proveedores-body {
        gap: 14px !important;
    }

    html body.speas-app.module-proveedores-active .table-module-container:has(#tabla-proveedores-body) table.premium-table tbody#tabla-proveedores-body > tr {
        padding: 14px 12px !important;
        border-radius: 18px !important;
    }

    html body.speas-app.module-proveedores-active .table-module-container:has(#tabla-proveedores-body) table.premium-table tbody#tabla-proveedores-body > tr > td {
        grid-template-columns: 92px minmax(0, 1fr) !important;
        gap: 8px !important;
        min-height: 32px !important;
        overflow: hidden !important;
    }

    html body.speas-app.module-proveedores-active .table-module-container:has(#tabla-proveedores-body) table.premium-table tbody#tabla-proveedores-body > tr > td,
    html body.speas-app.module-proveedores-active .table-module-container:has(#tabla-proveedores-body) table.premium-table tbody#tabla-proveedores-body > tr > td > * {
        overflow-wrap: anywhere !important;
        word-break: break-word !important;
        white-space: normal !important;
    }

    html body.speas-app.module-proveedores-active #tabla-proveedores-body .status-badge {
        display: inline-flex !important;
        width: fit-content !important;
        max-width: 100% !important;
        min-height: 26px !important;
        align-items: center !important;
        justify-content: center !important;
        padding: 5px 10px !important;
        line-height: 1.15 !important;
        overflow-wrap: normal !important;
        word-break: normal !important;
    }

    html body.speas-app.module-proveedores-active #tabla-proveedores-body .client-contact {
        min-width: 0 !important;
        max-width: 100% !important;
        gap: 4px !important;
    }

    html body.speas-app.module-proveedores-active #tabla-proveedores-body .client-contact span {
        display: inline-flex !important;
        min-width: 0 !important;
        max-width: 100% !important;
        align-items: center !important;
        gap: 4px !important;
        overflow-wrap: anywhere !important;
        word-break: break-word !important;
    }

    html body.speas-app.module-proveedores-active #modal-proveedor .modal-body {
        padding: 16px 14px !important;
    }

    html body.speas-app.module-proveedores-active #modal-proveedor tbody#lista-tel-erp tr,
    html body.speas-app.module-proveedores-active #modal-proveedor tbody#lista-correo-erp tr {
        display: grid !important;
        grid-template-columns: 1fr 44px !important;
        gap: 10px !important;
        align-items: start !important;
        padding: 12px !important;
        border-radius: 16px !important;
        background: #f8fbff !important;
        border: 1px solid #dbe7f5 !important;
    }

    html body.speas-app.module-proveedores-active #modal-proveedor tbody#lista-tel-erp tr > td,
    html body.speas-app.module-proveedores-active #modal-proveedor tbody#lista-correo-erp tr > td {
        display: block !important;
        width: 100% !important;
        min-width: 0 !important;
        max-width: 100% !important;
        padding: 0 !important;
        border: 0 !important;
        background: transparent !important;
    }

    html body.speas-app.module-proveedores-active #modal-proveedor tbody#lista-tel-erp tr > td:last-child,
    html body.speas-app.module-proveedores-active #modal-proveedor tbody#lista-correo-erp tr > td:last-child {
        grid-column: 2 !important;
        grid-row: 1 !important;
        align-self: start !important;
        justify-self: end !important;
    }

    html body.speas-app.module-proveedores-active #modal-proveedor tbody#lista-tel-erp .erp-principal-cell,
    html body.speas-app.module-proveedores-active #modal-proveedor tbody#lista-correo-erp .erp-principal-cell {
        grid-column: 1 / -1 !important;
        width: 100% !important;
    }

    html body.speas-app.module-proveedores-active #modal-proveedor .erp-principal-check {
        display: flex !important;
        align-items: center !important;
        justify-content: space-between !important;
        gap: 12px !important;
        width: 100% !important;
        min-height: 42px !important;
        padding: 9px 12px !important;
        border-radius: 12px !important;
        border: 1px solid #d2dfef !important;
        background: #ffffff !important;
        color: #334155 !important;
        font-size: 12px !important;
        font-weight: 800 !important;
        text-align: left !important;
        cursor: pointer !important;
    }

    html body.speas-app.module-proveedores-active #modal-proveedor .erp-principal-check input[type="checkbox"] {
        order: 2 !important;
        width: 20px !important;
        height: 20px !important;
        margin: 0 !important;
        accent-color: #2563eb !important;
    }

    html body.speas-app.module-proveedores-active #modal-proveedor .premium-table input,
    html body.speas-app.module-proveedores-active #modal-proveedor .premium-table select {
        min-height: 42px !important;
        border-radius: 12px !important;
        padding-inline: 12px !important;
    }

    html[data-speas-theme="oscuro"] body.speas-app.module-proveedores-active #modal-proveedor tbody#lista-tel-erp tr,
    html[data-speas-theme="oscuro"] body.speas-app.module-proveedores-active #modal-proveedor tbody#lista-correo-erp tr {
        background: #303b48 !important;
        border-color: #607187 !important;
    }

    html[data-speas-theme="oscuro"] body.speas-app.module-proveedores-active #modal-proveedor .erp-principal-check {
        background: #273443 !important;
        border-color: #607187 !important;
        color: #f8fafc !important;
    }
}

@media (min-width: 769px) and (max-width: 1180px) {
    html body.speas-app.module-proveedores-active #modal-proveedor tbody#lista-tel-erp tr,
    html body.speas-app.module-proveedores-active #modal-proveedor tbody#lista-correo-erp tr {
        display: grid !important;
        grid-template-columns: repeat(3, minmax(0, 1fr)) 130px 42px !important;
        gap: 12px !important;
        align-items: center !important;
    }

    html body.speas-app.module-proveedores-active #modal-proveedor tbody#lista-correo-erp tr {
        grid-template-columns: minmax(0, 1.2fr) minmax(0, 0.8fr) 130px 42px !important;
    }

    html body.speas-app.module-proveedores-active #modal-proveedor .erp-principal-check {
        display: inline-flex !important;
        align-items: center !important;
        justify-content: center !important;
        gap: 8px !important;
        width: 100% !important;
        min-height: 40px !important;
        padding: 8px 10px !important;
        border-radius: 12px !important;
        border: 1px solid #d2dfef !important;
        background: #ffffff !important;
        color: #334155 !important;
        font-size: 12px !important;
        font-weight: 800 !important;
        cursor: pointer !important;
    }

    html body.speas-app.module-proveedores-active #modal-proveedor .erp-principal-check input[type="checkbox"] {
        width: 18px !important;
        height: 18px !important;
        margin: 0 !important;
        accent-color: #2563eb !important;
    }
}

/* Speas proveedores dark card final priority v1.1.5 */
@media (max-width: 768px) {
    html[data-speas-theme="oscuro"] body.speas-app.module-proveedores-active .table-module-container:has(#tabla-proveedores-body) table.premium-table tbody#tabla-proveedores-body > tr,
    html[data-speas-theme="oscuro"] body.speas-app.module-proveedores-active #tabla-proveedores-body > tr {
        background: #273443 !important;
        color: #f8fafc !important;
        border-color: #586b82 !important;
        box-shadow: 0 16px 34px rgba(0, 0, 0, 0.18) !important;
    }

    html[data-speas-theme="oscuro"] body.speas-app.module-proveedores-active .table-module-container:has(#tabla-proveedores-body) table.premium-table tbody#tabla-proveedores-body > tr > td,
    html[data-speas-theme="oscuro"] body.speas-app.module-proveedores-active .table-module-container:has(#tabla-proveedores-body) table.premium-table tbody#tabla-proveedores-body > tr > td *,
    html[data-speas-theme="oscuro"] body.speas-app.module-proveedores-active #tabla-proveedores-body > tr > td,
    html[data-speas-theme="oscuro"] body.speas-app.module-proveedores-active #tabla-proveedores-body > tr > td * {
        color: #f8fafc !important;
        border-bottom-color: #43546a !important;
    }

    html[data-speas-theme="oscuro"] body.speas-app.module-proveedores-active #tabla-proveedores-body .status-badge {
        background: rgba(96, 165, 250, 0.14) !important;
        color: #dbeafe !important;
        border-color: rgba(147, 197, 253, 0.35) !important;
    }

    html[data-speas-theme="oscuro"] body.speas-app.module-proveedores-active #tabla-proveedores-body .status-badge.status-active {
        background: rgba(45, 212, 191, 0.14) !important;
        color: #ccfbf1 !important;
        border-color: rgba(94, 234, 212, 0.35) !important;
    }
}
