/* ============================================================
   MASA Panel — ajustes para móvil
   Este archivo SOLO se aplica en pantallas pequeñas (<= 1024 px).
   En el escritorio no cambia absolutamente nada.
   ============================================================ */

@media (max-width: 1024px) {

    /* 1. Que la página nunca haga scroll horizontal raro */
    html, body {
        overflow-x: hidden;
        max-width: 100%;
    }

    /* 2. Zona de contenido: menos padding y ancho controlado */
    main {
        padding: 12px 12px calc(24px + env(safe-area-inset-bottom)) !important;
        max-width: 100vw;
        overflow-x: hidden;
    }

    /* 3. Botones y campos: tamaño de dedo (mínimo 44 px) */
    .btn,
    button,
    input[type="submit"],
    select {
        min-height: 44px;
    }
    .input,
    textarea,
    select,
    input[type="search"],
    input[type="text"],
    input[type="date"],
    input[type="time"],
    input[type="number"] {
        font-size: 16px !important; /* evita el zoom automático en iOS */
        min-height: 44px;
    }

    /* 4. Rejillas de 2/3/4 columnas → una columna (el escritorio no se toca).
          OJO: la de 7 (calendario de fichajes) y la de 5 se respetan. */
    main div[class*="grid-cols-2"],
    main div[class*="grid-cols-3"],
    main div[class*="grid-cols-4"],
    main div[class*="grid-cols-6"] {
        grid-template-columns: 1fr !important;
    }
    main div[class*="grid-cols-7"] {
        grid-template-columns: repeat(7, minmax(0, 1fr)) !important;
        gap: 3px !important;
    }
    main div[class*="grid-cols-5"] {
        grid-template-columns: repeat(5, minmax(0, 1fr)) !important;
    }

    /* 4b. Calendario de fichajes: cuadrados compactos, no gigantes */
    main div[class*="grid-cols-7"] button {
        aspect-ratio: 1 / 1 !important;
        padding: 2px !important;
        border-radius: 8px !important;
        justify-content: flex-start;
    }
    main div[class*="grid-cols-7"] button span {
        line-height: 1.1 !important;
    }

    /* 4c. Las "bolitas" con las iniciales de cada operario DENTRO de los días:
          el panel las oculta en móvil (hidden sm:flex) → las volvemos a mostrar
          en tamaño miniatura para que se vea quién ha fichado cada día. */
    main div[class*="grid-cols-7"] .hidden.sm\:flex {
        display: flex !important;
        flex-wrap: wrap !important;
        gap: 2px !important;
        margin-top: 2px !important;
    }
    main div[class*="grid-cols-7"] .hidden.sm\:flex > span {
        width: 13px !important;
        height: 13px !important;
        min-width: 13px !important;
        font-size: 7px !important;
        line-height: 1 !important;
    }

    /* 4d. Fila superior de bolitas + nombres de usuario: siempre visible */
    #fichajes-area > div:first-child {
        display: flex !important;
        flex-wrap: wrap !important;
        gap: 6px !important;
        margin-bottom: 12px !important;
    }
    #fichajes-area > div:first-child > button {
        min-height: 40px !important;
    }

    /* 5. Tarjetas más compactas */
    .card {
        padding: 14px !important;
        border-radius: 14px;
    }

    /* 6. Títulos y subtítulos */
    .section-title,
    main h1,
    main h2 {
        font-size: 1.25rem !important;
        line-height: 1.3;
    }

    /* 7b. TABLAS EN MODO LISTA (Presupuestos, Albaranes, Clientes, Inventario…)
          El JS anyade la clase .modo-lista y aqui cada fila se convierte en tarjeta
          con el nombre de la columna como etiqueta. En escritorio no se aplica. */
    main table.modo-lista,
    main table.modo-lista tbody {
        display: block !important;
        width: 100% !important;
        height: auto !important;
        table-layout: auto !important;
        overflow: visible !important;
        white-space: normal !important;
        border-collapse: separate !important;
        border-spacing: 0 10px !important;
    }
    main table.modo-lista thead {
        display: none !important;
    }
    main table.modo-lista tr {
        display: block !important;
        position: static !important;
        float: none !important;
        box-sizing: border-box !important;
        width: 100% !important;
        background: #1f2937 !important;
        border: 1px solid #4b5563 !important;
        border-radius: 12px !important;
        padding: 10px 12px !important;
        margin: 0 0 10px !important;
        overflow: hidden !important;
    }
    /* Cada celda: etiqueta a la izquierda, valor a la derecha, en rejilla para
       que NUNCA se pisen (ni botones ni textos largos). */
    main table.modo-lista td {
        display: grid !important;
        grid-template-columns: 40% 1fr !important;
        align-items: start !important;
        gap: 8px !important;
        box-sizing: border-box !important;
        width: 100% !important;
        min-width: 0 !important;
        border: 0 !important;
        padding: 7px 0 !important;
        white-space: normal !important;
        overflow-wrap: anywhere !important;
        word-break: break-word !important;
        text-align: right !important;
        overflow: visible !important;
    }
    main table.modo-lista td::before {
        content: attr(data-label);
        color: #9ca3af;
        font-size: 11px;
        line-height: 1.3;
        text-transform: uppercase;
        letter-spacing: 0.03em;
        text-align: left;
        min-width: 0;
        overflow-wrap: anywhere;
    }
    /* Lo que haya dentro de la celda (texto, enlaces, botones) tampoco se sale */
    main table.modo-lista td > * {
        max-width: 100% !important;
        min-width: 0 !important;
        white-space: normal !important;
        overflow-wrap: anywhere !important;
    }
    main table.modo-lista td > .flex,
    main table.modo-lista td > div,
    main table.modo-lista td form {
        display: flex !important;
        flex-wrap: wrap !important;
        gap: 6px !important;
        justify-content: flex-end !important;
    }
    main table.modo-lista td[data-label=""]::before,
    main table.modo-lista td:empty {
        content: none;
        display: none !important;
    }
    main table.modo-lista td:not(:empty) {
        border-bottom: 1px solid #374151 !important;
    }
    main table.modo-lista td:last-child {
        border-bottom: 0 !important;
    }
    main table {
        display: block;
        overflow-x: auto;
        white-space: nowrap;
        -webkit-overflow-scrolling: touch;
        font-size: 13px;
    }
    main thead,
    main tbody,
    main tr {
        display: table;
        width: 100%;
        table-layout: fixed;
    }
    main th,
    main td {
        padding: 8px 10px !important;
        white-space: nowrap;
    }

    /* 8. Sidebar como cajón cómodo */
    #sidebar {
        width: min(84vw, 320px) !important;
        padding-bottom: calc(16px + env(safe-area-inset-bottom));
    }
    #sidebar a,
    #sidebar button {
        min-height: 46px;
        display: flex;
        align-items: center;
    }

    /* 9. Formularios en línea: cada campo a su propia línea */
    main form.flex-wrap > *,
    main form.flex > * {
        min-width: 0;
    }

    /* 10. Modales y paneles emergentes a ancho completo */
    main .fixed,
    main [class*="absolute"] {
        max-width: 96vw;
    }

    /* 11b. CONTRASTE: todo lo que es una "caja" se vea sin tener que pulsarlo */
    main .card,
    main .rounded-xl,
    main .border {
        border-color: #4b5563 !important;
    }
    .input,
    textarea,
    select {
        border-color: #6b7280 !important;
        background-color: #1f2937 !important;
        color: #f3f4f6 !important;
    }
    .btn,
    main button,
    main a.btn {
        border: 1px solid #4b5563 !important;
    }
    main th {
        color: #d1d5db !important;
        border-bottom-color: #4b5563 !important;
    }
    main td {
        border-bottom-color: #374151 !important;
        color: #e5e7eb !important;
    }
    /* Menú lateral: cada ítem con su caja y contraste propio */
    #sidebar nav a {
        background: #1f2937 !important;
        border: 1px solid #4b5563 !important;
        color: #e5e7eb !important;
        margin-bottom: 6px !important;
        min-height: 44px;
        display: flex;
        align-items: center;
        border-radius: 10px;
    }
    #sidebar nav a:hover {
        background: #374151 !important;
    }

    /* 11. Barras de scroll finas para no robar ancho */
    ::-webkit-scrollbar {
        height: 6px;
        width: 6px;
    }
    ::-webkit-scrollbar-thumb {
        background: #374151;
        border-radius: 3px;
    }
}
