/* Responsividad global — iframe (módulos) y login */

/* ── Tablet y móvil ── */
@media (max-width: 767px) {
    :root {
        --panel-margin: 0.45rem;
        --panel-padding: 0.6rem 0.7rem 0.8rem;
        --contenedor-max: 100%;
    }

    html:has(body.con-panel-ayuda),
    html:has(body:not(.login-page)) {
        overflow-x: hidden;
    }

    body.con-panel-ayuda,
    body:not(.login-page) {
        overflow-x: hidden;
    }

    .cuadro-page,
    .panel-vidrio,
    .form-card,
    .docs-panel {
        width: 100%;
        max-width: 100%;
        box-sizing: border-box;
    }

    .modulo-nav {
        flex-wrap: wrap;
        gap: 0.35rem;
    }

    .modulo-filtros-panel__grid,
    .modulo-filtros-panel__grid3 {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .modulo-filtros-panel__acciones {
        grid-column: 1 / -1;
        flex-direction: column;
    }

    .modulo-filtros-panel__btn {
        min-height: 2.35rem;
    }

    .modulo-filtros input[type="search"],
    .modulo-filtros input[type="text"],
    .usuarios-buscar {
        width: 100%;
        max-width: 100%;
        box-sizing: border-box;
    }

    .modulo-filtros {
        display: flex;
        flex-wrap: wrap;
        gap: 0.5rem;
        align-items: stretch;
    }

    .tesoreria-index-hero,
    .tesoreria-page-hero,
    .cuadro-hero,
    .biblioteca-index-hero {
        flex-direction: column;
        align-items: stretch;
    }

    .tesoreria-index-hero__stats,
    .tesoreria-page-hero__stats,
    .cuadro-hero__stats {
        width: 100%;
        justify-content: flex-start;
        gap: 0.75rem;
    }

    .tesoreria-index-stat,
    .tesoreria-page-stat,
    .cuadro-hero-stat {
        align-items: flex-start;
        min-width: 0;
    }

    .tesoreria-index-stat__lbl,
    .tesoreria-page-stat__lbl {
        text-align: left;
    }

    .tesoreria-index-grid,
    .tesoreria-index-section__head {
        grid-template-columns: 1fr;
    }

    .tesoreria-index-section__head {
        flex-direction: column;
        align-items: flex-start;
    }

    .tesoreria-form,
    .tesoreria-form--ancho {
        max-width: 100%;
    }

    .biblioteca-form__grid {
        grid-template-columns: 1fr;
    }

    .comisiones-nav {
        flex: 1 1 100%;
        width: 100%;
    }

    .comisiones-panel {
        flex: 1 1 100%;
    }

    .traz-mod__lista {
        flex: 1 1 100%;
        width: 100%;
    }

    .traz-mod__editor {
        flex: 1 1 100%;
    }

    .traz-arch__grid {
        grid-template-columns: repeat(5, minmax(0, 1fr));
    }

    .ten-hab__grid {
        grid-template-columns: 1fr;
    }

    .ten-hab__fila {
        grid-template-columns: 4.5rem 1.25rem 1fr;
    }

    .ten-hab__nota {
        max-width: 100%;
    }

    .modulo-galeria {
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    }

    .filtros-auditoria {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .filtros-acciones {
        flex-wrap: wrap;
    }

    .tabla-usuarios,
    .tabla-auditoria,
    .comisiones-tabla,
    .asist-registro__tabla {
        font-size: 0.78rem;
    }

    .ficha-tabla {
        font-size: 0.82rem;
    }

    .ficha-tabla th {
        width: 38%;
    }

    .ficha-titulo {
        font-size: 1.25rem;
    }

    .trabajo-ver {
        max-width: 100%;
        padding: 0 0.25rem;
    }

    .config-editor__search {
        flex-wrap: wrap;
    }

    .cartelera-hero__bar {
        flex-direction: column;
        align-items: flex-start;
        gap: 0.25rem;
    }

    /* Cartelera: hero compacto (no apilar bloques en móvil) */
    .cartelera-page .form-card.cartelera-hero {
        flex-direction: row;
        flex-wrap: wrap;
        align-items: center;
        padding: 0.4rem 0.6rem;
        gap: 0.35rem 0.55rem;
    }

    .cartelera-hero__main {
        flex: 1 1 8rem;
    }

    .cartelera-hero__titular {
        gap: 0.25rem 0.45rem;
    }

    .cartelera-hero__title {
        font-size: 1rem;
    }

    .cartelera-hero__emblema {
        font-size: 0.55rem;
        letter-spacing: 0.05em;
        white-space: nowrap;
        overflow: hidden;
        text-overflow: ellipsis;
        max-width: 100%;
    }

    .cartelera-hero__desc {
        margin-top: 0.1rem;
        font-size: 0.65rem;
    }

    .cartelera-hero__stats {
        flex: 0 0 auto;
        width: auto;
        gap: 0.45rem 0.65rem;
    }

    .cartelera-hero-stat__val {
        font-size: 0.9rem;
    }

    .cartelera-hero-stat__lbl {
        font-size: 0.55rem;
    }

    .cartelera-hero::after {
        width: 3.5rem;
        height: 3.5rem;
        opacity: 0.05;
    }

    .cartelera-tablero {
        padding: 0.5rem 0.6rem 0.7rem;
    }

    .cartelera-tablero > .cartelera-toolbar {
        margin-bottom: 0.4rem;
        padding-bottom: 0.3rem;
    }

    .cartelera-leyenda {
        gap: 0.25rem 0.5rem;
        font-size: 0.62rem;
    }

    .cartelera-toolbar .tesoreria-btn {
        min-height: 0;
        padding: 0.18rem 0.42rem !important;
        font-size: 0.68rem !important;
    }

    .docs-panel__cabecera {
        flex-direction: column;
        align-items: flex-start;
    }

    .docs-buscar {
        width: 100%;
    }

    .docs-buscar input[type="search"] {
        flex: 1 1 100%;
        min-width: 0;
    }

    button,
    .tesoreria-btn,
    .btn-volver,
    input[type="submit"],
    input[type="button"] {
        min-height: 2.35rem;
    }
}

/* ── Móvil estrecho ── */
@media (max-width: 480px) {
    :root {
        --panel-margin: 0.35rem;
        --panel-padding: 0.5rem 0.55rem 0.7rem;
        --ui-font-size: 14px;
    }

    .modulo-filtros-panel__grid,
    .modulo-filtros-panel__grid3 {
        grid-template-columns: 1fr;
    }

    .modulo-galeria {
        grid-template-columns: 1fr !important;
    }

    .traz-arch__grid {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }

    .filtros-auditoria {
        grid-template-columns: 1fr;
    }

    .cuadro-muro {
        grid-template-columns: 1fr;
    }

    .seguridad-opciones {
        flex-direction: column;
        gap: 0.65rem;
    }

    .asist-registro__pie {
        flex-direction: column;
        align-items: stretch;
    }

    .cartelera-card__botones {
        flex-wrap: wrap;
    }
}

/* Tablas anchas: scroll horizontal táctil */
@media (max-width: 767px) {
    .modulo-tabla-wrap,
    .docs-table-wrap,
    .tabla-usuarios-scroll,
    .cuadro-page.matriz-tabla-page .modulo-tabla-wrap {
        overflow-x: auto;
        -webkit-overflow-scrolling: touch;
        margin-left: calc(-1 * var(--panel-padding, 0.7rem));
        margin-right: calc(-1 * var(--panel-padding, 0.7rem));
        padding-left: var(--panel-padding, 0.7rem);
        padding-right: var(--panel-padding, 0.7rem);
    }
}

/* Catálogo biblioteca — siempre 2 columnas */
.biblioteca-page .biblioteca-catalogo-main .biblioteca-grilla {
    display: grid !important;
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
}

/* ── PC con poca altura (ej. 1360×768): formularios de alta/edición compactos ── */
@media (min-width: 768px) and (max-height: 820px) {
    :root {
        --panel-margin: 0.4rem;
        --panel-padding: 0.42rem 0.7rem 0.55rem;
        --ui-block-gap: 0.4rem;
        --ui-label-margin: 0.2rem 0 0.1rem;
    }

    .tesoreria-index-page .tesoreria-index-wrap,
    .tesoreria-page .tesoreria-wrap,
    .cuadro-modulo-page .cuadro-wrap,
    .biblioteca-page .biblioteca-wrap,
    .biblioteca-page .cuadro-page .panel-vidrio {
        gap: 0.45rem;
    }

    .modulo-nav {
        margin-bottom: 0.3rem;
    }

    .tesoreria-page .form-card.tesoreria-page-hero,
    .cuadro-modulo-page .form-card.cuadro-hero,
    .biblioteca-page .form-card.biblioteca-page-hero,
    .biblioteca-index-page .form-card.biblioteca-index-hero,
    .tesoreria-index-page .form-card.tesoreria-index-hero {
        gap: 0.4rem;
    }

    .tesoreria-page-hero__title,
    .cuadro-hero__title,
    .tesoreria-index-hero__title {
        font-size: 0.95rem;
        margin-bottom: 0.15rem;
    }

    .tesoreria-page-hero__desc,
    .cuadro-hero__desc,
    .tesoreria-index-hero__desc,
    .tesoreria-page-hero__head-aside {
        font-size: 0.72rem;
        line-height: 1.3;
    }

    .tesoreria-page-hero__stats,
    .cuadro-hero__stats,
    .tesoreria-index-hero__stats {
        gap: 0.5rem;
    }

    .tesoreria-page-stat__val,
    .cuadro-hero-stat__val,
    .tesoreria-index-stat__val {
        font-size: 0.95rem;
    }

    .tesoreria-page-stat__lbl,
    .cuadro-hero-stat__lbl,
    .tesoreria-index-stat__lbl {
        font-size: 0.58rem;
    }

    .tesoreria-card__head {
        margin-bottom: 0.3rem;
        padding-bottom: 0.25rem;
    }

    .tesoreria-card__title {
        font-size: 0.88rem;
    }

    .tesoreria-card__desc {
        font-size: 0.72rem;
    }

    /* Cuerpo del formulario: tope 630px con scroll interno solo si hace falta */
    .tesoreria-card:has(.biblioteca-form--grid) .tesoreria-card__body,
    .tesoreria-card:has(.biblioteca-obra-form) .tesoreria-card__body,
    .tesoreria-card:has(> .tesoreria-card__body > .tesoreria-form:not(#tes-form-deuda)) .tesoreria-card__body {
        max-height: 630px;
        overflow-y: auto;
        overflow-x: hidden;
        scrollbar-gutter: stable;
    }

    .tesoreria-form .tesoreria-field {
        display: grid;
        grid-template-columns: minmax(5.5rem, 8.25rem) minmax(0, 1fr);
        gap: 0 0.45rem;
        align-items: center;
        margin-bottom: 0.28rem;
    }

    .tesoreria-form .tesoreria-field:has(textarea) {
        align-items: start;
    }

    .tesoreria-form .tesoreria-field > span {
        margin-bottom: 0;
        font-size: 0.65rem;
        line-height: 1.2;
    }

    .tesoreria-form textarea {
        min-height: 2rem;
        max-height: 3.25rem;
    }

    .tesoreria-form input[type="text"],
    .tesoreria-form input[type="number"],
    .tesoreria-form input[type="date"],
    .tesoreria-form input[type="search"],
    .tesoreria-form input[type="email"],
    .tesoreria-form select {
        padding: 0.14rem 0.35rem;
        font-size: 0.78rem;
        min-height: 1.45rem;
    }

    .tesoreria-btn {
        padding: 0.22rem 0.55rem;
        font-size: 0.74rem;
        margin-top: 0.15rem;
    }

    .tesoreria-flash {
        padding: 0.3rem 0.5rem;
        font-size: 0.75rem;
    }

    .cartelera-form-fila {
        gap: 0.45rem 0.55rem;
    }

    .cuadro-page .modulo-titulo {
        font-size: 1rem;
        margin-bottom: 0.35rem;
    }

    .cuadro-page .modulo-subtitulo {
        font-size: 0.78rem;
        margin-bottom: 0.35rem;
    }

    /* Alta de hermanos y formularios tabla (no ficha de edición completa) */
    body:not(.cuadro-ficha-page) .ficha-form h3 {
        font-size: 0.82rem;
        margin: 0.35rem 0 0.12rem;
    }

    body:not(.cuadro-ficha-page) .ficha-tabla th,
    body:not(.cuadro-ficha-page) .ficha-tabla td {
        padding: 0.1rem 0.22rem;
        font-size: 0.78rem;
    }

    body:not(.cuadro-ficha-page) .ficha-tabla-edit input,
    body:not(.cuadro-ficha-page) .ficha-tabla-edit select {
        padding: 0.12rem 0.3rem;
        font-size: 0.76rem;
        min-height: 1.4rem;
    }

    .ficha-acciones {
        margin-top: 0.35rem;
    }
}