/*
 * APP KAPITAL V54 · QA RESPONSIVE CLIENTES 01.2 · ACCIÓN EDITAR MÓVIL + EXCEL SOLO ADMIN
 * Alcance: solo módulo Clientes en pantallas móviles.
 * No altera impresión, cálculos, APIs ni MySQL.
 */

@media screen and (max-width: 700px) {
    /* Evitar que cualquier hijo ensanche accidentalmente la vista móvil. */
    #view-clientes,
    #view-clientes * {
        box-sizing: border-box;
    }

    #view-clientes {
        min-width: 0 !important;
        overflow-x: clip !important;
    }

    /* HERO / acciones */
    #view-clientes .client-module-hero {
        display: flex !important;
        flex-direction: column !important;
        align-items: stretch !important;
        gap: 16px !important;
        min-width: 0 !important;
    }

    #view-clientes .client-hero-copy {
        min-width: 0 !important;
        width: 100% !important;
    }

    #view-clientes .client-hero-copy p,
    #view-clientes .client-hero-copy h3 {
        max-width: 100% !important;
        overflow-wrap: anywhere !important;
    }

    #view-clientes .client-hero-actions,
    #view-clientes .client-excel-actions {
        display: grid !important;
        grid-template-columns: 1fr !important;
        gap: 10px !important;
        width: 100% !important;
        min-width: 0 !important;
    }

    /* Seguridad visual: Exportar/Importar Excel es exclusivo del Administrador.
       Esta regla debe prevalecer sobre el display:grid móvil. */
    #view-clientes .client-excel-actions.hidden {
        display: none !important;
    }

    #view-clientes .client-hero-actions > .btn,
    #view-clientes .client-excel-actions > .btn {
        width: 100% !important;
        min-height: 46px !important;
        white-space: normal !important;
    }

    /* Encabezado del listado y buscador */
    #view-clientes .client-list-heading {
        display: grid !important;
        grid-template-columns: 1fr !important;
        gap: 14px !important;
        align-items: stretch !important;
    }

    #view-clientes .client-search {
        display: grid !important;
        grid-template-columns: minmax(0, 1fr) auto !important;
        gap: 8px !important;
        width: 100% !important;
        min-width: 0 !important;
    }

    #view-clientes .client-search input {
        width: 100% !important;
        min-width: 0 !important;
        font-size: 16px !important;
    }

    #view-clientes .client-search .btn {
        min-height: 46px !important;
        padding-inline: 16px !important;
    }

    /* Resumen en una sola columna para lectura táctil. */
    #view-clientes .client-summary-strip {
        display: grid !important;
        grid-template-columns: 1fr !important;
        gap: 12px !important;
    }

    #view-clientes .client-summary-strip > div {
        min-width: 0 !important;
        width: 100% !important;
    }

    /*
     * Tabla -> tarjetas móviles.
     * En escritorio la tabla conserva su estructura original.
     */
    #view-clientes .client-table-wrap {
        width: 100% !important;
        max-width: 100% !important;
        overflow: visible !important;
    }

    #view-clientes .client-table,
    #view-clientes .client-table tbody {
        display: block !important;
        width: 100% !important;
        max-width: 100% !important;
    }

    #view-clientes .client-table thead {
        display: none !important;
    }

    #view-clientes .client-table tbody {
        display: grid !important;
        gap: 12px !important;
    }

    #view-clientes .client-table tbody tr {
        display: block !important;
        width: 100% !important;
        max-width: 100% !important;
        margin: 0 !important;
        padding: 14px 16px !important;
        border: 1px solid #e6dfe8 !important;
        border-radius: 16px !important;
        background: #fff !important;
        box-shadow: 0 5px 16px rgba(54, 38, 58, 0.06) !important;
        overflow: hidden !important;
    }

    #view-clientes .client-table tbody td {
        display: grid !important;
        grid-template-columns: 106px minmax(0, 1fr) !important;
        gap: 10px !important;
        align-items: start !important;
        width: 100% !important;
        min-width: 0 !important;
        max-width: 100% !important;
        padding: 9px 0 !important;
        border: 0 !important;
        border-bottom: 1px solid #f0ebf1 !important;
        white-space: normal !important;
        overflow: visible !important;
        text-overflow: clip !important;
        overflow-wrap: anywhere !important;
        word-break: normal !important;
    }

    #view-clientes .client-table tbody td:last-child {
        border-bottom: 0 !important;
        padding-bottom: 0 !important;
    }

    #view-clientes .client-table tbody td::before {
        color: #776f79 !important;
        font-size: 11px !important;
        line-height: 1.35 !important;
        font-weight: 800 !important;
        text-transform: uppercase !important;
        letter-spacing: .035em !important;
    }

    #view-clientes .client-table tbody td:nth-child(1)::before { content: "Cédula / RUC"; }
    #view-clientes .client-table tbody td:nth-child(2)::before { content: "Cliente"; }
    #view-clientes .client-table tbody td:nth-child(3)::before { content: "Teléfono"; }
    #view-clientes .client-table tbody td:nth-child(4)::before { content: "Ubicación"; }
    #view-clientes .client-table tbody td:nth-child(5)::before { content: "Estado"; }
    #view-clientes .client-table tbody td:nth-child(6)::before { content: "Actualizado"; }
    #view-clientes .client-table tbody td:nth-child(7)::before { content: "Acción"; }

    #view-clientes .client-table tbody td strong,
    #view-clientes .client-table tbody td small,
    #view-clientes .client-table tbody td span,
    #view-clientes .client-table tbody td button {
        min-width: 0 !important;
        max-width: 100% !important;
        overflow-wrap: anywhere !important;
        white-space: normal !important;
    }

    #view-clientes .client-table tbody td small {
        display: block !important;
        margin-top: 4px !important;
        color: #766e78 !important;
        line-height: 1.35 !important;
    }

    #view-clientes .client-table .client-status {
        justify-self: start !important;
    }

    #view-clientes .client-table .client-edit-button {
        width: 100% !important;
        min-height: 44px !important;
        padding: 10px 14px !important;
    }

    /* Estado vacío / error: no aplicar etiquetas de tarjeta. */
    #view-clientes .client-table tbody td[colspan] {
        display: block !important;
        padding: 8px 0 !important;
        border-bottom: 0 !important;
    }

    #view-clientes .client-table tbody td[colspan]::before {
        display: none !important;
        content: none !important;
    }

    /* Cabecera del editor */
    #view-clientes .client-editor-header {
        display: grid !important;
        grid-template-columns: 1fr !important;
        gap: 16px !important;
        align-items: stretch !important;
        min-width: 0 !important;
    }

    #view-clientes .client-editor-header > div,
    #view-clientes .client-editor-header h3,
    #view-clientes .client-editor-header p {
        min-width: 0 !important;
        max-width: 100% !important;
        overflow-wrap: anywhere !important;
    }

    #view-clientes #cancelClientEditButton {
        width: 100% !important;
        min-height: 46px !important;
    }

    /* Etapas: siempre dentro del ancho del teléfono. */
    #view-clientes .client-steps {
        display: grid !important;
        grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
        gap: 8px !important;
        width: 100% !important;
        min-width: 0 !important;
        overflow: visible !important;
    }

    #view-clientes .client-step {
        display: flex !important;
        min-width: 0 !important;
        min-height: 70px !important;
        padding: 10px 8px !important;
        align-items: center !important;
        justify-content: flex-start !important;
        gap: 7px !important;
        overflow: hidden !important;
    }

    #view-clientes .client-step b {
        flex: 0 0 auto !important;
    }

    #view-clientes .client-step span {
        min-width: 0 !important;
        white-space: normal !important;
        overflow-wrap: anywhere !important;
        line-height: 1.2 !important;
        text-align: left !important;
    }

    /* Formularios en una columna. */
    #view-clientes #clientForm,
    #view-clientes #clientFormPanels,
    #view-clientes .client-pane,
    #view-clientes .client-form-section {
        min-width: 0 !important;
        max-width: 100% !important;
        overflow: visible !important;
    }

    #view-clientes .client-form-section {
        padding-left: 16px !important;
        padding-right: 16px !important;
    }

    #view-clientes .client-form-grid,
    #view-clientes .verification-grid,
    #view-clientes .client-verification-grid,
    #view-clientes .client-economic-grid,
    #view-clientes .assets-grid {
        display: grid !important;
        grid-template-columns: minmax(0, 1fr) !important;
        gap: 14px !important;
        min-width: 0 !important;
        width: 100% !important;
    }

    #view-clientes .client-form-grid > *,
    #view-clientes .verification-grid > *,
    #view-clientes .client-verification-grid > *,
    #view-clientes .client-economic-grid > *,
    #view-clientes .assets-grid > *,
    #view-clientes .span-2,
    #view-clientes .span-3,
    #view-clientes .span-4 {
        grid-column: 1 / -1 !important;
        min-width: 0 !important;
        max-width: 100% !important;
    }

    #view-clientes .client-field,
    #view-clientes .client-field > span,
    #view-clientes .client-field input,
    #view-clientes .client-field select,
    #view-clientes .client-field textarea,
    #view-clientes .client-form-section input,
    #view-clientes .client-form-section select,
    #view-clientes .client-form-section textarea {
        min-width: 0 !important;
        max-width: 100% !important;
    }

    #view-clientes .client-field input,
    #view-clientes .client-field select,
    #view-clientes .client-field textarea,
    #view-clientes .client-form-section input,
    #view-clientes .client-form-section select,
    #view-clientes .client-form-section textarea {
        width: 100% !important;
        font-size: 16px !important; /* evita zoom automático en navegadores móviles */
    }

    #view-clientes .client-age-status,
    #view-clientes .spouse-disabled,
    #view-clientes .representative-linked-card,
    #view-clientes .client-representative-card,
    #view-clientes .minor-economy-box,
    #view-clientes .verification-card {
        width: 100% !important;
        min-width: 0 !important;
        max-width: 100% !important;
        overflow-wrap: anywhere !important;
    }

    /* Fotografías / verificaciones: miniaturas sin desbordar. */
    #view-clientes .verification-photo-grid,
    #view-clientes .verification-photos {
        display: grid !important;
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
        gap: 10px !important;
        width: 100% !important;
    }

    #view-clientes .verification-photo-card,
    #view-clientes .verification-photo-card img {
        max-width: 100% !important;
    }

    /*
     * CORRECCIÓN CRÍTICA: la barra Anterior/Siguiente no debe superponerse
     * a los campos del formulario en móvil.
     */
    #view-clientes .client-form-actions {
        position: static !important;
        inset: auto !important;
        left: auto !important;
        right: auto !important;
        bottom: auto !important;
        top: auto !important;
        transform: none !important;
        z-index: auto !important;
        display: grid !important;
        grid-template-columns: 1fr !important;
        gap: 10px !important;
        width: 100% !important;
        min-width: 0 !important;
        margin: 18px 0 0 !important;
        padding: 16px 0 6px !important;
        border: 0 !important;
        box-shadow: none !important;
        background: transparent !important;
        backdrop-filter: none !important;
    }

    #view-clientes .client-form-actions > div {
        display: grid !important;
        grid-template-columns: 1fr !important;
        gap: 10px !important;
        width: 100% !important;
        min-width: 0 !important;
    }

    #view-clientes .client-form-actions .btn {
        width: 100% !important;
        min-height: 48px !important;
        margin: 0 !important;
    }

    /* Dialogs de Excel también deben caber en teléfono. */
    #view-clientes .client-excel-dialog {
        width: min(94vw, 560px) !important;
        max-height: 92dvh !important;
    }

    #view-clientes .client-excel-dialog-card {
        max-height: 92dvh !important;
        overflow-y: auto !important;
        padding: 16px !important;
    }

    #view-clientes .client-excel-dialog-heading,
    #view-clientes .client-excel-dialog-actions {
        flex-wrap: wrap !important;
    }

    #view-clientes .client-excel-dialog-actions .btn {
        flex: 1 1 100% !important;
        min-height: 46px !important;
    }
}

@media screen and (max-width: 390px) {
    #view-clientes .client-search {
        grid-template-columns: 1fr !important;
    }

    #view-clientes .client-search .btn {
        width: 100% !important;
    }

    #view-clientes .client-step {
        min-height: 74px !important;
        padding: 9px 6px !important;
        gap: 5px !important;
    }

    #view-clientes .client-step span {
        font-size: 12px !important;
    }

    #view-clientes .client-table tbody td {
        grid-template-columns: 92px minmax(0, 1fr) !important;
    }

    #view-clientes .verification-photo-grid,
    #view-clientes .verification-photos {
        grid-template-columns: 1fr !important;
    }
}


/* QA 01.2 · Corrección de la acción Editar en tarjetas móviles.
   El botón debe ocupar únicamente la columna de valor y nunca extenderse
   fuera de la tarjeta. */
@media screen and (max-width: 700px) {
    #view-clientes .client-table tbody td:last-child {
        align-items: center !important;
        overflow: visible !important;
    }

    #view-clientes .client-table .client-edit-button {
        grid-column: 2 !important;
        justify-self: stretch !important;
        align-self: center !important;
        width: auto !important;
        min-width: 0 !important;
        max-width: 100% !important;
        min-height: 46px !important;
        margin: 0 !important;
        padding: 10px 14px !important;
        display: inline-flex !important;
        align-items: center !important;
        justify-content: center !important;
        color: #812990 !important;
        background: #f5eaf7 !important;
        border: 1px solid rgba(129,41,144,.22) !important;
        border-radius: 10px !important;
        font-weight: 800 !important;
        line-height: 1.2 !important;
        white-space: normal !important;
        visibility: visible !important;
        opacity: 1 !important;
        overflow: hidden !important;
        text-overflow: clip !important;
        cursor: pointer !important;
        touch-action: manipulation !important;
    }

    #view-clientes .client-table tbody td:nth-child(2) {
        overflow-wrap: anywhere !important;
        word-break: break-word !important;
    }
}


/* ============================================================
   QA 01.3 · ACCIÓN EDITAR VISIBLE Y TÁCTIL EN MÓVIL
   Diagnóstico: en algunos navegadores Android el botón conservaba
   el fondo pero el texto quedaba fuera/no se pintaba correctamente
   dentro de la celda convertida a grid.
   Solución: la fila ACCIÓN deja de usar grid y el botón se renderiza
   como bloque real al 100% con color/text-fill explícitos.
   ============================================================ */
@media screen and (max-width: 700px) {
    #view-clientes .client-table tbody td:nth-child(7) {
        display: block !important;
        width: 100% !important;
        min-width: 0 !important;
        max-width: 100% !important;
        padding: 10px 0 0 !important;
        overflow: visible !important;
    }

    #view-clientes .client-table tbody td:nth-child(7)::before {
        content: "Acción" !important;
        display: block !important;
        width: 100% !important;
        margin: 0 0 8px !important;
        color: #776f79 !important;
        font-size: 11px !important;
        line-height: 1.35 !important;
        font-weight: 800 !important;
        text-transform: uppercase !important;
        letter-spacing: .035em !important;
    }

    #view-clientes .client-table tbody td:nth-child(7) > .client-edit-button,
    #view-clientes .client-table tbody td:nth-child(7) > button[data-client-cedula] {
        position: static !important;
        inset: auto !important;
        transform: none !important;
        display: flex !important;
        align-items: center !important;
        justify-content: center !important;
        width: 100% !important;
        min-width: 0 !important;
        max-width: none !important;
        min-height: 48px !important;
        margin: 0 !important;
        padding: 12px 16px !important;
        border: 1px solid rgba(129,41,144,.28) !important;
        border-radius: 12px !important;
        background: #f3e8f5 !important;
        color: #812990 !important;
        -webkit-text-fill-color: #812990 !important;
        font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif !important;
        font-size: 16px !important;
        font-weight: 800 !important;
        line-height: 1.2 !important;
        letter-spacing: normal !important;
        text-indent: 0 !important;
        text-align: center !important;
        white-space: normal !important;
        visibility: visible !important;
        opacity: 1 !important;
        overflow: visible !important;
        appearance: none !important;
        -webkit-appearance: none !important;
        cursor: pointer !important;
        touch-action: manipulation !important;
    }
}


/* ============================================================
   QA 01.4 · TEXTO "EDITAR" GARANTIZADO EN ANDROID
   Estado previo confirmado en QA: el área rosada era táctil y abría
   correctamente el expediente, pero el texto del botón no se pintaba.
   Esta capa NO cambia el evento ni la lógica; solo garantiza el rótulo
   visible mediante un pseudo-elemento independiente del texto nativo.
   ============================================================ */
@media screen and (max-width: 700px) {
    #view-clientes .client-table tbody td:last-child .client-edit-button {
        position: relative !important;
        display: flex !important;
        align-items: center !important;
        justify-content: center !important;
        width: 100% !important;
        min-height: 50px !important;
        margin: 0 !important;
        padding: 12px 16px !important;
        background: #f3e8f5 !important;
        border: 1px solid rgba(129,41,144,.28) !important;
        border-radius: 12px !important;
        color: transparent !important;
        -webkit-text-fill-color: transparent !important;
        font-size: 0 !important;
        line-height: 1 !important;
        text-indent: 0 !important;
        overflow: hidden !important;
        visibility: visible !important;
        opacity: 1 !important;
        cursor: pointer !important;
        touch-action: manipulation !important;
    }

    #view-clientes .client-table tbody td:last-child .client-edit-button::after {
        content: "Editar" !important;
        display: inline-block !important;
        position: static !important;
        color: #812990 !important;
        -webkit-text-fill-color: #812990 !important;
        font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif !important;
        font-size: 16px !important;
        font-weight: 850 !important;
        line-height: 1.2 !important;
        letter-spacing: normal !important;
        text-transform: none !important;
        text-align: center !important;
        white-space: nowrap !important;
        visibility: visible !important;
        opacity: 1 !important;
        pointer-events: none !important;
    }
}

/* ============================================================
   QA 01.5 · FILA ACCIÓN CON RÓTULO EDITAR VISIBLE
   Objetivo: conservar "ACCIÓN" a la izquierda y mostrar un botón
   compacto "Editar" dentro del área rosada, a su derecha.
   La lógica de apertura del expediente no se modifica.
   ============================================================ */
@media screen and (max-width: 700px) {
    #view-clientes .client-table tbody td:last-child {
        display: grid !important;
        grid-template-columns: 106px minmax(0, 1fr) !important;
        gap: 10px !important;
        align-items: center !important;
        width: 100% !important;
        padding: 10px 0 0 !important;
        overflow: visible !important;
    }

    #view-clientes .client-table tbody td:last-child::before {
        content: "Acción" !important;
        display: block !important;
        grid-column: 1 !important;
        margin: 0 !important;
    }

    #view-clientes .client-table tbody td:last-child .client-edit-button,
    #view-clientes .client-table tbody td:last-child button[data-client-cedula] {
        grid-column: 2 !important;
        justify-self: start !important;
        width: 150px !important;
        max-width: 100% !important;
        min-height: 46px !important;
        margin: 0 !important;
        padding: 10px 16px !important;
        display: inline-flex !important;
        align-items: center !important;
        justify-content: center !important;
        background: #f3e8f5 !important;
        border: 1px solid rgba(129,41,144,.28) !important;
        border-radius: 12px !important;
        color: #812990 !important;
        -webkit-text-fill-color: #812990 !important;
        font-size: 16px !important;
        font-weight: 800 !important;
        line-height: 1.2 !important;
        text-align: center !important;
        text-indent: 0 !important;
        white-space: nowrap !important;
        overflow: visible !important;
        visibility: visible !important;
        opacity: 1 !important;
    }

    #view-clientes .client-table tbody td:last-child .client-edit-button::after {
        content: none !important;
        display: none !important;
    }

    #view-clientes .client-table tbody td:last-child .client-edit-label {
        display: inline-block !important;
        color: #812990 !important;
        -webkit-text-fill-color: #812990 !important;
        font-size: 16px !important;
        font-weight: 800 !important;
        line-height: 1.2 !important;
        text-align: center !important;
        white-space: nowrap !important;
        visibility: visible !important;
        opacity: 1 !important;
        pointer-events: none !important;
    }
}

@media screen and (max-width: 430px) {
    #view-clientes .client-table tbody td:last-child {
        grid-template-columns: 92px minmax(0, 1fr) !important;
    }

    #view-clientes .client-table tbody td:last-child .client-edit-button,
    #view-clientes .client-table tbody td:last-child button[data-client-cedula] {
        width: 138px !important;
    }
}
