/* ═══════════════════════════════════════════════════════════
   CASHDRO MONITOR — Reglas mobile responsive (Fase 9)
   Se aplica a todas las paginas: visor, panel, movimientos,
   historico, login.
   ═══════════════════════════════════════════════════════════ */

/* ── Helpers visuales para tablas con scroll ─────────────── */

.tabla-card-mov,
.tabla-card,
.tabla-admin {
    position: relative;
}

/* Indicador "→" en el borde derecho cuando hay scroll horizontal */
.tabla-card-mov::after,
.tabla-card::after {
    content: "";
    position: absolute;
    top: 0;
    right: 0;
    bottom: 0;
    width: 24px;
    pointer-events: none;
    background: linear-gradient(to right, transparent, rgba(255,255,255,0.95));
    opacity: 0;
    transition: opacity 0.2s;
}

@media (max-width: 768px) {
    .tabla-card-mov::after,
    .tabla-card::after {
        opacity: 1;
    }
}

/* ═══════════════════════════════════════════════════════════
   MOVIL: max-width 768px (smartphones)
   ═══════════════════════════════════════════════════════════ */

@media (max-width: 768px) {

    /* ── CABECERA: apilada verticalmente ─────────────────── */
    .cabecera {
        flex-direction: column;
        gap: 10px;
        padding: 12px 14px;
        align-items: stretch;
    }
    .cabecera-izq {
        text-align: center;
    }
    .cabecera-izq h1 {
        font-size: 18px;
        margin: 0 0 2px 0;
    }
    .cabecera-izq .subtitulo {
        font-size: 12px;
    }
    .cabecera-der {
        flex-wrap: wrap;
        gap: 6px;
        justify-content: center;
    }

    /* ── BOTONES de cabecera mas compactos ────────────────── */
    .cabecera-der a,
    .cabecera-der button,
    .btn-secundario,
    .btn-panel,
    .btn-logout {
        padding: 7px 10px !important;
        font-size: 12px !important;
        white-space: nowrap;
    }

    /* ── INFO de usuario ──────────────────────────────────── */
    .usuario-info {
        flex-wrap: wrap;
        gap: 6px;
        justify-content: center;
        padding: 0;
    }
    .usuario-nombre,
    .usuario-nivel {
        font-size: 11px;
    }

    /* ── HORA / SUBTEXTO del visor ────────────────────────── */
    .hora-servidor,
    #ultimo-refresh {
        font-size: 11px !important;
    }

    /* ── CONTENEDOR principal con menos padding ──────────── */
    .contenedor {
        padding: 10px 8px !important;
    }

    /* ── VISOR: tarjetas apiladas, no en grid ─────────────── */
    #locales {
        grid-template-columns: 1fr !important;
        gap: 12px !important;
    }
    .tarjeta {
        padding: 14px 12px !important;
    }
    .tarjeta-cabecera {
        flex-wrap: wrap;
        gap: 8px;
    }
    .tarjeta h2 {
        font-size: 17px;
    }
    .tarjeta .meta {
        font-size: 11px;
    }
    .totales {
        grid-template-columns: 1fr 1fr !important;
        gap: 8px !important;
    }
    .bloque-info {
        padding: 8px 10px !important;
    }
    .bloque-info .etiqueta {
        font-size: 10px !important;
    }
    .bloque-info .valor {
        font-size: 14px !important;
    }

    /* ── TABLAS de denominaciones: tipografia mas chica ──── */
    .tabla-denoms {
        font-size: 12px;
    }
    .tabla-denoms th {
        font-size: 10px !important;
        padding: 6px 4px !important;
    }
    .tabla-denoms td {
        padding: 6px 4px !important;
    }

    /* ── PANEL: pestañas con scroll horizontal ────────────── */
    .tabs-panel {
        overflow-x: auto;
        flex-wrap: nowrap !important;
        -webkit-overflow-scrolling: touch;
        scrollbar-width: thin;
    }
    .tabs-panel::-webkit-scrollbar {
        height: 4px;
    }
    .tabs-panel::-webkit-scrollbar-thumb {
        background: var(--color-borde);
        border-radius: 2px;
    }
    .tab {
        flex-shrink: 0;
        font-size: 13px;
        padding: 10px 14px;
        white-space: nowrap;
    }

    /* ── PANEL: tabla con scroll horizontal y reducida ───── */
    .tabla-card {
        overflow-x: auto;
        -webkit-overflow-scrolling: touch;
    }
    .tabla-admin {
        font-size: 12px;
        min-width: 500px;
    }
    .tabla-admin th,
    .tabla-admin td {
        padding: 8px 6px !important;
        white-space: nowrap;
    }

    /* ── MODALES en movil ─────────────────────────────────── */
    .modal {
        width: 92% !important;
        max-width: 92% !important;
        padding: 18px 16px !important;
        max-height: 88vh;
        overflow-y: auto;
    }
    .modal h3 {
        font-size: 16px !important;
    }
    .modal label {
        font-size: 12px !important;
    }
    .modal input,
    .modal select {
        font-size: 14px !important;
    }
    .modal-acciones {
        flex-direction: column-reverse;
        gap: 8px;
    }
    .modal-acciones button {
        width: 100%;
    }

    /* ── BLOQUES de regla en panel/Configuracion ─────────── */
    .bloque-regla {
        padding: 14px 12px !important;
    }
    .regla-titulo {
        font-size: 14px !important;
    }
    .regla-descripcion {
        font-size: 12px !important;
    }
    .regla-control {
        flex-direction: column;
        align-items: stretch !important;
        gap: 8px !important;
    }
    .regla-control label {
        font-size: 12px;
    }
    .regla-control input[type="number"],
    .regla-control input[type="time"] {
        width: 100%;
        max-width: 100%;
    }

    /* ── MOVIMIENTOS: filtros y resumen ───────────────────── */
    .filtros-grid {
        grid-template-columns: 1fr 1fr !important;
        gap: 10px !important;
    }
    .filtros-acciones {
        flex-direction: column;
        align-items: stretch;
        gap: 6px;
    }
    .filtros-acciones button {
        width: 100%;
        font-size: 13px;
    }
    .resumen-card {
        grid-template-columns: 1fr 1fr !important;
    }
    .resumen-bloque {
        border-right: none !important;
        border-bottom: 1px solid var(--color-borde) !important;
        padding: 12px 14px !important;
    }
    .resumen-bloque:nth-last-child(-n+2) {
        border-bottom: none !important;
    }
    .resumen-etiqueta {
        font-size: 10px !important;
    }
    .resumen-valor {
        font-size: 16px !important;
    }
    .tabla-mov {
        font-size: 12px;
        min-width: 700px;
    }
    .tabla-mov th,
    .tabla-mov td {
        padding: 7px 6px !important;
    }
    .badge-tipo {
        font-size: 10px !important;
        padding: 2px 6px !important;
    }
    .paginacion-cont {
        flex-wrap: wrap;
        padding: 10px 0 18px 0;
    }
    .paginacion-cont button {
        font-size: 12px;
        padding: 6px 10px;
    }

    /* ── HISTORICO: filtros y grafica ─────────────────────── */
    .checkbox-group {
        gap: 8px;
    }
    .check-label {
        font-size: 12px !important;
    }
    #grafica-cont {
        height: 50vh !important;
        min-height: 280px !important;
    }
    .grafica-info {
        font-size: 11px !important;
    }

    /* ── LOGIN ────────────────────────────────────────────── */
    .login-card {
        padding: 20px 18px !important;
        margin: 8px;
    }

    /* ── AVISOS / TOAST ───────────────────────────────────── */
    .aviso-info {
        font-size: 12px !important;
        padding: 10px 12px !important;
    }
    .toast {
        font-size: 13px;
        max-width: 90%;
    }
}

/* ═══════════════════════════════════════════════════════════
   MOVIL pequeño: max-width 480px (smartphones estrechos)
   ═══════════════════════════════════════════════════════════ */

@media (max-width: 480px) {
    .cabecera-izq h1 {
        font-size: 16px;
    }
    .cabecera-der a,
    .cabecera-der button {
        padding: 6px 8px !important;
        font-size: 11px !important;
    }
    .totales {
        grid-template-columns: 1fr !important;
    }
    .filtros-grid {
        grid-template-columns: 1fr !important;
    }
    .resumen-card {
        grid-template-columns: 1fr !important;
    }
    .resumen-bloque {
        border-bottom: 1px solid var(--color-borde) !important;
    }
    .resumen-bloque:last-child {
        border-bottom: none !important;
    }

    /* Tabla denoms: ocultar columna casete si esta a 0 (no, mejor mantener) */
    .tabla-denoms {
        font-size: 11px;
    }
    .tabla-denoms th {
        font-size: 9px !important;
    }
}

/* ???????????????????????????????????????????????????????????
   CABECERA COMPACTA MOVIL (Fase 9.2)
   ??????????????????????????????????????????????????????????? */

@media (max-width: 768px) {

    /* Cabecera en horizontal compacta (no apilada) */
    .cabecera {
        flex-direction: row !important;
        flex-wrap: wrap !important;
        align-items: center !important;
        gap: 8px !important;
        padding: 10px 12px !important;
    }
    .cabecera-izq {
        flex: 1 1 auto;
        text-align: left !important;
    }
    .cabecera-izq h1 {
        font-size: 16px !important;
        margin: 0 !important;
    }
    /* Ocultar subtitulo "Grupo Sertac" en movil */
    .cabecera-izq .subtitulo {
        display: none !important;
    }
    .cabecera-der {
        flex: 0 0 auto;
        flex-wrap: wrap !important;
        justify-content: flex-end !important;
        gap: 6px !important;
    }

    /* "Servidor: ..." muy peque?o y en su sitio */
    .hora-servidor,
    #ultimo-refresh {
        font-size: 10px !important;
        opacity: 0.7;
    }

    /* Boton "Actualizar" como icono peque?o ?? */
    #btn-refrescar {
        font-size: 0 !important;          /* oculta texto */
        padding: 6px 8px !important;
        min-width: 32px;
        line-height: 1;
    }
    #btn-refrescar::before {
        content: "??";
        font-size: 14px;
    }

    /* Botones de navegacion compactos: icono + texto corto */
    .btn-movimientos,
    .btn-historico,
    .btn-panel {
        padding: 6px 10px !important;
        font-size: 12px !important;
    }

    /* Info de usuario: solo nombre + icono salir, sin badge */
    .usuario-info {
        gap: 4px !important;
    }
    .usuario-nivel {
        display: none !important;     /* ocultar badge ADMIN/OFICINA/etc */
    }
    .usuario-nombre {
        font-size: 12px !important;
        font-weight: 600;
    }

    /* Boton "Salir" como icono puerta ?? */
    .btn-logout {
        font-size: 0 !important;
        padding: 6px 8px !important;
        min-width: 32px;
        line-height: 1;
        border: 1px solid #cf222e !important;
    }
    .btn-logout::before {
        content: "??";
        font-size: 14px;
    }

    /* "Volver al visor" en otras paginas: tambien compacto */
    .cabecera-der > a.btn-secundario {
        padding: 6px 10px !important;
        font-size: 12px !important;
    }
}

/* Movil peque?o: textos aun mas reducidos */
@media (max-width: 480px) {
    .cabecera-izq h1 {
        font-size: 15px !important;
    }
    .btn-movimientos,
    .btn-historico,
    .btn-panel {
        font-size: 11px !important;
        padding: 5px 8px !important;
    }
    .hora-servidor,
    #ultimo-refresh {
        font-size: 9px !important;
    }
}


/* ???????????????????????????????????????????????????????????
   CABECERA COMPACTA MOVIL (Fase 9.2 v2)
   ??????????????????????????????????????????????????????????? */

@media (max-width: 768px) {

    /* Cabecera flex con wrap */
    .cabecera {
        display: flex !important;
        flex-direction: row !important;
        flex-wrap: wrap !important;
        align-items: center !important;
        gap: 6px !important;
        padding: 8px 10px !important;
        width: 100%;
        box-sizing: border-box;
    }

    /* Lado izquierdo: titulo */
    .cabecera-izq {
        flex: 1 1 auto;
        min-width: 0;
        text-align: left !important;
    }
    .cabecera-izq h1 {
        font-size: 16px !important;
        margin: 0 !important;
        white-space: nowrap;
        overflow: hidden;
        text-overflow: ellipsis;
    }
    .cabecera-izq .subtitulo {
        display: none !important;
    }

    /* Lado derecho: cluster con todos los botones */
    .cabecera-der {
        flex: 1 1 100%;
        display: flex !important;
        flex-wrap: wrap !important;
        justify-content: flex-start !important;
        align-items: center !important;
        gap: 5px !important;
    }

    /* Hora discreta */
    .hora-servidor,
    #ultimo-refresh {
        font-size: 10px !important;
        opacity: 0.6;
        order: 99;
        flex: 1 1 100%;
        text-align: left;
        margin-top: 2px;
    }

    /* Boton Actualizar como icono pequeno (texto plano, no emoji) */
    #btn-refrescar {
        font-size: 0 !important;
        padding: 6px 10px !important;
        min-width: 32px;
        line-height: 1;
        order: 1;
    }
    #btn-refrescar::before {
        content: "\21BB";  /* simbolo flecha circular ? */
        font-size: 16px;
        font-weight: bold;
    }

    /* Botones de navegacion compactos */
    .btn-movimientos,
    .btn-historico,
    .btn-panel {
        padding: 6px 9px !important;
        font-size: 12px !important;
        order: 2;
    }

    /* Info usuario: solo nombre, sin badge ADMIN */
    .usuario-info {
        gap: 4px !important;
        order: 3;
        margin-left: auto;
    }
    .usuario-nivel {
        display: none !important;
    }
    .usuario-nombre {
        font-size: 12px !important;
        font-weight: 600;
    }

    /* Boton Salir como icono (texto plano) */
    .btn-logout {
        font-size: 0 !important;
        padding: 6px 9px !important;
        min-width: 32px;
        line-height: 1;
        border: 1px solid #cf222e !important;
        color: #cf222e !important;
    }
    .btn-logout::before {
        content: "\2715";  /* simbolo X ? */
        font-size: 14px;
        font-weight: bold;
    }

    /* Boton "Volver al visor" en otras paginas */
    .cabecera-der > a.btn-secundario {
        padding: 6px 10px !important;
        font-size: 12px !important;
        order: 0;
    }
}

@media (max-width: 480px) {
    .cabecera-izq h1 {
        font-size: 14px !important;
    }
    .btn-movimientos,
    .btn-historico,
    .btn-panel {
        font-size: 11px !important;
        padding: 5px 7px !important;
    }
    .usuario-nombre {
        font-size: 11px !important;
    }
}


/* ???????????????????????????????????????????????????????????
   CABECERA COMPACTA MOVIL (Fase 9.2 v3 - estructura real)
   ??????????????????????????????????????????????????????????? */

@media (max-width: 768px) {

    /* Cabecera contenedor flex */
    .cabecera {
        display: flex !important;
        flex-direction: column !important;
        align-items: stretch !important;
        gap: 6px !important;
        padding: 8px 10px !important;
    }

    /* LINEA 1: titulo */
    .cabecera-izq {
        text-align: left !important;
    }
    .cabecera-izq h1 {
        font-size: 16px !important;
        margin: 0 !important;
    }
    .cabecera-izq .subtitulo {
        display: none !important;
    }

    /* LINEA 2: contenedor de la derecha (todos los botones) */
    .cabecera-der {
        display: flex !important;
        flex-direction: row !important;
        flex-wrap: wrap !important;
        align-items: center !important;
        justify-content: flex-start !important;
        gap: 5px !important;
    }

    /* Hora servidor: queda al final, en linea aparte */
    .cabecera-der > #hora-servidor {
        order: 99;
        flex: 1 1 100%;
        font-size: 10px !important;
        opacity: 0.55;
        text-align: left;
        margin-top: 2px;
    }

    /* Boton ACTUALIZAR como icono pequeno */
    #btn-refrescar {
        order: 1;
        padding: 0 !important;
        width: 32px;
        height: 32px;
        min-width: 32px;
        line-height: 32px;
        text-indent: 32px;        /* esconde "Actualizar" empujandolo fuera */
        white-space: nowrap;
        overflow: hidden;
        position: relative;
    }
    #btn-refrescar::before {
        content: "\21BB";        /* simbolo flecha circular */
        position: absolute;
        top: 0; left: 0;
        width: 100%;
        text-indent: 0;
        text-align: center;
        font-size: 16px;
        font-weight: bold;
        line-height: 32px;
    }

    /* Bloque usuario-info: comportarse como flex normal */
    .usuario-info {
        order: 2;
        display: flex !important;
        flex-direction: row !important;
        flex-wrap: wrap !important;
        align-items: center !important;
        gap: 5px !important;
        padding: 0 !important;
        flex: 1 1 auto;
    }

    /* Ocultar badge nivel (ADMIN/OFICINA/etc) */
    .usuario-info .usuario-nivel {
        display: none !important;
    }

    /* Nombre usuario: pequeno */
    .usuario-info .usuario-nombre {
        font-size: 12px !important;
        font-weight: 600;
        order: 90;
        margin-left: auto;
    }

    /* Botones de navegacion compactos */
    .usuario-info .btn-panel,
    .usuario-info .btn-movimientos,
    .usuario-info .btn-historico {
        padding: 6px 9px !important;
        font-size: 12px !important;
        order: 1;
    }

    /* Boton SALIR como icono pequeno (texto fuera de pantalla) */
    .usuario-info .btn-logout {
        order: 91;
        padding: 0 !important;
        width: 32px;
        height: 32px;
        min-width: 32px;
        line-height: 32px;
        text-indent: 32px;
        white-space: nowrap;
        overflow: hidden;
        position: relative;
        border: 1px solid #cf222e !important;
        color: #cf222e !important;
    }
    .usuario-info .btn-logout::before {
        content: "\2715";        /* simbolo X */
        position: absolute;
        top: 0; left: 0;
        width: 100%;
        text-indent: 0;
        text-align: center;
        font-size: 14px;
        font-weight: bold;
        line-height: 32px;
    }

    /* Para otras paginas: "Volver al visor" */
    .cabecera-der > a.btn-secundario {
        order: 0;
        padding: 6px 10px !important;
        font-size: 12px !important;
    }
}

@media (max-width: 480px) {
    .cabecera-izq h1 {
        font-size: 14px !important;
    }
    .usuario-info .btn-panel,
    .usuario-info .btn-movimientos,
    .usuario-info .btn-historico {
        font-size: 11px !important;
        padding: 5px 7px !important;
    }
    .usuario-info .usuario-nombre {
        font-size: 11px !important;
    }
}
