/* ============================================================
   LO QUE VENÍA DE css/cuentas_por_cobrar.css
   ============================================================
   Reglas responsive que vivían en la hoja del módulo, mezcladas con las del
   escritorio. Se mueven enteras y sin tocar su contenido ni sus anchos: el
   cambio es de archivo, no de comportamiento.

   Van al principio a propósito. La hoja del módulo se carga antes que esta,
   así que en un empate ganaba lo que ya había aquí. Poniéndolas encima se
   conserva ese orden y ninguna regla cambia de bando.
   ============================================================ */

@media (max-width: 900px) {
    #ccRespView.cc-cols-2 .ec-resp-apt-grid {
        grid-template-columns: 1fr;
    }
}



/* ============================================================
   EL BUSCADOR EN EL TELÉFONO
   ============================================================ */

@media screen and (max-width: 767px) {
    #modalRespMes .ec-resp-modal-dialog { width: calc(100% - 18px); max-height: 88vh; border-radius: 11px; }
    #modalRespMes .ec-resp-modal-header { padding: 13px 12px; }
    #modalRespMes .ec-resp-modal-header-icon { width: 30px; height: 30px; flex-basis: 30px; }
    #modalRespMes .ec-resp-modal-title { font-size: 13px; line-height: 1.25; }
    #modalRespMes .ec-resp-modal-subtitle { font-size: 10px; line-height: 1.35; gap: 4px; }
    #modalRespMes .ec-resp-modal-subtitle span::before { margin-right: 4px; }
    #modalRespMes .ec-resp-modal-summary { gap: 5px; padding: 9px; }
    #modalRespMes .ec-resp-summary-item { min-width: 0; padding: 9px 6px; border-left-width: 3px; }
    #modalRespMes .ec-resp-summary-item span { font-size: 9px; line-height: 1.2; }
    #modalRespMes .ec-resp-summary-item strong { margin-top: 5px; font-size: 11px; line-height: 1.25; }
    #modalRespMes .ec-resp-modal-body { padding: 10px; }
    #modalRespMes .ec-resp-modal-row { padding: 12px; }
    #modalRespMes .ec-resp-modal-montos { gap: 5px; }
    #modalRespMes .ec-resp-modal-nombre { font-size: 14px; }
    #modalRespMes .ec-resp-tipo-badge { font-size: 10px; padding: 3px 7px; }
    #modalRespMes .ec-resp-badge-final { font-size: 10px; }
    #modalRespMes .ec-resp-modal-montos small { font-size: 9px; line-height: 1.2; }
    #modalRespMes .ec-resp-modal-montos b { margin-top: 4px; font-size: 11px; line-height: 1.25; }
    #modalRespMes .ec-resp-modal-status { padding: 5px 9px; font-size: 11px; }

    /* La vista y sus tarjetas usan exactamente el ancho interior de la tarjeta
       principal. Los textos dentro de flex tienen min-width:auto por defecto y
       podían ensanchar toda la sección más allá de "Cuentas por Cobrar". */
    #moduleContainer[data-module="cuentas-por-cobrar"] #ccRespView {
        width: 100%;
        min-width: 0;
        padding: 12px 0;
        overflow-x: hidden;
        box-sizing: border-box;
    }

    #moduleContainer[data-module="cuentas-por-cobrar"] .ec-resp-edificio-header,
    #moduleContainer[data-module="cuentas-por-cobrar"] .ec-resp-apt-grid,
    #moduleContainer[data-module="cuentas-por-cobrar"] .ec-resp-apt-section,
    #moduleContainer[data-module="cuentas-por-cobrar"] .ec-resp-apt-section-hdr,
    #moduleContainer[data-module="cuentas-por-cobrar"] .ec-resp-card,
    #moduleContainer[data-module="cuentas-por-cobrar"] .ec-resp-card-title,
    #moduleContainer[data-module="cuentas-por-cobrar"] .ec-resp-titulo-linea {
        width: 100%;
        max-width: 100%;
        min-width: 0;
        box-sizing: border-box;
    }

    #moduleContainer[data-module="cuentas-por-cobrar"] .ec-resp-apt-grid {
        overflow-x: hidden;
    }

    /*
     * La cabecera pasa a dos alturas y el buscador se lleva la segunda entera.
     *
     * Antes de aquí solo había un botón de lupa de 28px, y los cuatro elementos
     * —título, lupa y los dos desplegables— cabían en una fila. El campo mide
     * 230, así que la fila se sale de la pantalla: .u-fila-12 es un flex sin
     * permiso para envolver, de modo que no baja de línea, se desborda.
     *
     * Envolviendo, el título y los desplegables se reparten la primera altura y
     * el campo ocupa la segunda de lado a lado. Se busca escribiendo palabras
     * enteras —un nombre, un edificio—, y un campo de 230px en un teléfono de
     * 360 deja ver media palabra.
     */
    #moduleContainer[data-module="cuentas-por-cobrar"] .card-header,
    #moduleContainer[data-module="cuentas-por-cobrar"] .card-header .u-fila-12 {
        flex-wrap: wrap !important;
    }

    #moduleContainer[data-module="cuentas-por-cobrar"] .cc-cabecera {
        display: grid !important;
        grid-template-columns: minmax(0, 1fr);
        gap: 12px;
        align-items: stretch !important;
        padding: 14px !important;
        border-bottom: 1px solid #c7d2fe !important;
        background: linear-gradient(145deg, #f8faff 0%, #eef2ff 100%) !important;
    }

    #moduleContainer[data-module="cuentas-por-cobrar"] .cc-cabecera-titulo {
        display: flex;
        align-items: center;
        gap: 8px;
        width: 100%;
        font-size: 15px !important;
        line-height: 1.2;
    }

    #moduleContainer[data-module="cuentas-por-cobrar"] .cc-cabecera-titulo > i {
        display: inline-flex;
        align-items: center;
        justify-content: center;
        flex: 0 0 28px;
        width: 28px;
        height: 28px;
        border-radius: 8px;
        background: #0a2463;
        color: #fff;
        font-size: 12px;
        box-shadow: 0 3px 8px rgba(10, 36, 99, 0.2);
    }

    #moduleContainer[data-module="cuentas-por-cobrar"] .cc-cabecera-controles {
        display: grid !important;
        grid-template-columns: minmax(0, 1fr) auto;
        gap: 6px !important;
        width: 100%;
    }

    #moduleContainer[data-module="cuentas-por-cobrar"] .cc-control-columnas {
        display: none !important;
    }

    #moduleContainer[data-module="cuentas-por-cobrar"] .cc-control-anio .cc-control-label {
        display: none !important;
    }

    #moduleContainer[data-module="cuentas-por-cobrar"] .cc-control {
        justify-content: space-between;
        min-width: 0;
        padding: 5px 6px 5px 9px;
        border: 1px solid #d8e0f0;
        border-radius: 9px;
        background: rgba(255, 255, 255, 0.9);
        box-shadow: 0 1px 2px rgba(15, 23, 42, 0.05);
    }

    /* Debe ir después de .cc-control: comparten especificidad y, si se declara
       antes, la caja genérica vuelve a pintar borde, fondo y relleno. */
    #moduleContainer[data-module="cuentas-por-cobrar"] .cc-control.cc-control-anio {
        display: block;
        width: 64px;
        min-width: 64px;
        padding: 0 !important;
        border: 0 !important;
        border-radius: 0;
        background: transparent !important;
        box-shadow: none !important;
    }

    #moduleContainer[data-module="cuentas-por-cobrar"] .cc-control-label {
        margin: 0 !important;
        font-size: 10px !important;
        font-weight: 700 !important;
        line-height: 1;
        text-transform: uppercase;
        letter-spacing: 0.35px;
        color: #64748b !important;
        white-space: nowrap;
    }

    #moduleContainer[data-module="cuentas-por-cobrar"] .cc-control select {
        width: auto !important;
        min-width: 50px;
        min-height: 30px !important;
        height: 30px;
        padding: 4px 25px 4px 8px !important;
        border: 1px solid #cbd5e1 !important;
        border-radius: 7px !important;
        background-color: #f8fafc !important;
        background-position: right 5px center !important;
        background-size: 14px !important;
        color: #0a2463 !important;
        font-size: 11px !important;
        font-weight: 700 !important;
        box-shadow: none !important;
    }

    #moduleContainer[data-module="cuentas-por-cobrar"] .cc-control-anio select {
        width: 64px !important;
        min-width: 64px;
        min-height: 40px !important;
        height: 40px;
        padding: 4px 20px 4px 7px !important;
        background-position: right 3px center !important;
        background-color: #fff !important;
        box-shadow: 0 2px 6px rgba(15, 23, 42, 0.06) !important;
    }

    #moduleContainer[data-module="cuentas-por-cobrar"] .cc-buscador {
        flex: 1 1 100% !important;
        order: 0 !important;
        grid-column: auto;
        min-width: 0;
    }

    #moduleContainer[data-module="cuentas-por-cobrar"] .cc-edificio-filtro {
        grid-column: 1 / -1;
        width: 100%;
    }

    #moduleContainer[data-module="cuentas-por-cobrar"] .cc-edificio-btn {
        justify-content: flex-start;
        width: 100%;
        min-height: 38px;
        padding: 7px 11px;
        border-color: #cbd5e1;
        border-radius: 9px;
        background: #fff;
    }

    #moduleContainer[data-module="cuentas-por-cobrar"] .cc-edificio-btn .cc-edificio-flecha {
        margin-left: auto;
    }

    #moduleContainer[data-module="cuentas-por-cobrar"] .cc-edificio-menu {
        width: 100%;
        box-sizing: border-box;
    }

    #moduleContainer[data-module="cuentas-por-cobrar"] .cc-buscador-campo {
        width: 100% !important;
        min-height: 40px !important;
        height: 40px;
        padding: 8px 34px !important;
        border: 1px solid #cbd5e1 !important;
        border-radius: 9px !important;
        background: #fff !important;
        font-size: 11px !important;
        box-shadow: 0 2px 6px rgba(15, 23, 42, 0.06);
    }

    #moduleContainer[data-module="cuentas-por-cobrar"] .cc-buscador-icono {
        left: 12px;
        color: #3156a3;
        font-size: 12px;
    }

    #moduleContainer[data-module="cuentas-por-cobrar"] .cc-buscador-limpiar {
        right: 10px;
        min-width: 24px !important;
        min-height: 24px !important;
        padding: 0 !important;
    }

    /*
     * El desplegable de personas se ajusta al campo en vez de a sus 300px
     * fijos, que en un teléfono estrecho se salían por la derecha y dejaban los
     * nombres cortados contra el borde.
     */
    #moduleContainer[data-module="cuentas-por-cobrar"] .cc-buscar-box {
        width: 100% !important;
    }

    /* Edificio, apartamento e historial forman una sola cabecera. El tamaño
       táctil global hacía crecer el botón hasta obligarlo a una segunda fila. */
    #moduleContainer[data-module="cuentas-por-cobrar"] .ec-resp-apt-section-hdr {
        flex-wrap: nowrap;
        gap: 6px;
        padding: 6px 8px;
    }

    #moduleContainer[data-module="cuentas-por-cobrar"] .ec-resp-apt-section-num {
        min-width: 0;
        overflow: hidden;
        font-size: 11px;
        text-overflow: ellipsis;
        white-space: nowrap;
    }

    #moduleContainer[data-module="cuentas-por-cobrar"] .ec-resp-historial-btn {
        flex: 0 0 auto;
        min-width: 0 !important;
        min-height: 28px !important;
        height: 28px;
        padding: 4px 7px !important;
        border-radius: 6px;
        font-size: 9px !important;
        line-height: 1;
        white-space: nowrap;
    }

    #moduleContainer[data-module="cuentas-por-cobrar"] .ec-historial-largo {
        display: none;
    }

    #moduleContainer[data-module="cuentas-por-cobrar"] .ec-historial-corto {
        display: inline;
    }

    #moduleContainer[data-module="cuentas-por-cobrar"] .ec-resp-card-title {
        gap: 3px;
        margin-bottom: 5px;
    }

    #moduleContainer[data-module="cuentas-por-cobrar"] .ec-resp-titulo-linea {
        column-gap: 4px;
        row-gap: 2px;
    }

    #moduleContainer[data-module="cuentas-por-cobrar"] .ec-resp-separador-responsable {
        display: none;
    }

    /* El responsable y su deuda se leen como una sola unidad. Antes la deuda
       era un bloque separado debajo y parecía no pertenecer a esa persona. */
    #moduleContainer[data-module="cuentas-por-cobrar"] .ec-resp-responsable-deuda {
        display: inline-flex;
        align-items: center;
        gap: 6px;
        flex: 1 1 100%;
        flex-wrap: nowrap;
        margin-top: 0;
        max-width: 100%;
    }

    #moduleContainer[data-module="cuentas-por-cobrar"] .ec-resp-responsable-deuda .ec-resp-responsable-line {
        flex: 1 1 auto;
        min-width: 0;
        overflow: hidden;
        font-size: 12px;
        text-overflow: ellipsis;
        white-space: nowrap;
    }

    #moduleContainer[data-module="cuentas-por-cobrar"] .ec-resp-responsable-deuda .ec-resp-card-deuda {
        padding: 2px 6px;
        font-size: 12px;
        white-space: nowrap;
    }

    #moduleContainer[data-module="cuentas-por-cobrar"] .ec-resp-responsable-deuda .ec-resp-wa-link {
        display: inline-flex;
        align-items: center;
        font-size: 16px;
        line-height: 1;
        vertical-align: middle;
    }

    /* Estado deja de gastar una columna lateral. Ocupa la primera línea; los
       doce meses usan todo el ancho debajo y sus marcas quedan en la tercera. */
    #moduleContainer[data-module="cuentas-por-cobrar"] .ec-resp-months-grid {
        grid-template-columns: repeat(12, minmax(0, 1fr));
        gap: 2px 1px;
        width: 100%;
    }

    #moduleContainer[data-module="cuentas-por-cobrar"] .ec-resp-months-grid > div:first-child {
        display: none;
    }

    #moduleContainer[data-module="cuentas-por-cobrar"] .ec-resp-month-apt-label {
        grid-column: 1 / -1;
        grid-row: 1;
        margin-bottom: 1px;
        font-size: 9px;
        font-weight: 700;
    }

    #moduleContainer[data-module="cuentas-por-cobrar"] .ec-resp-month-label {
        grid-row: 2;
        min-width: 0;
        font-size: 8px;
    }

    #moduleContainer[data-module="cuentas-por-cobrar"] .ec-resp-month-cell {
        grid-row: 3;
        min-width: 0;
        padding: 3px 0;
        font-size: 10px;
    }
}

/* Tablet angosta (600–768px): deuda a la derecha e icono más visible, sin
   alcanzar a iPhone. */
@media screen and (min-width: 600px) and (max-width: 768px) {
    #moduleContainer[data-module="cuentas-por-cobrar"] .ec-resp-responsable-deuda {
        flex: 1 1 auto;
        min-width: 220px;
    }
    #moduleContainer[data-module="cuentas-por-cobrar"] .ec-resp-responsable-deuda .ec-resp-card-deuda {
        margin-left: auto;
    }
    #moduleContainer[data-module="cuentas-por-cobrar"] .ec-resp-responsable-deuda .ec-resp-wa-link {
        font-size: 20px;
    }
}

