/* =========================================================
   MON INVOICE — AFFICHAGE TÉLÉPHONE (design adaptatif)
   Fichier : mobile-adaptatif.css   (chargé EN DERNIER)

   Toutes les règles sont dans @media (max-width: 768px) :
   sur ordinateur, rien ne change.

   1. Cadre : menu en tiroir, barre du haut, page pleine largeur
   2. Fenêtres (dialog / modales) en cartes souples
   3. Tableaux → cartes (classe ma-cartes ajoutée par mobile-adaptatif.js)
   4. Formulaire de facture / estimation / commande / achat en cartes
   5. Fenêtre de consultation
   6. Petits réglages (bandeau d'essai, champs, onglets)
   ========================================================= */

@media (max-width: 768px) {

    /* ---------- 1. CADRE ---------- */

    :root {
        --sidebar-width: min(84vw, 300px);
    }

    html,
    body {
        overflow-x: clip;
    }

    img,
    video,
    canvas,
    iframe {
        max-width: 100%;
    }

    /* La page prend toujours toute la largeur (le menu passe par-dessus) */
    #main-content,
    body.sidebar-collapsed #main-content {
        width: 100% !important;
        min-width: 0;
        margin-left: 0 !important;
        padding: 12px 12px 90px !important;
    }

    /* Menu latéral = tiroir */
    #sidebar {
        z-index: 2100;
        width: var(--sidebar-width) !important;
        padding: 16px 10px 40px !important;
        box-shadow: 8px 0 30px rgba(15, 23, 42, .25);
    }

    body.sidebar-collapsed #sidebar {
        box-shadow: none;
    }

    #sidebar .menu-title {
        min-height: 44px;
        font-size: 15px;
    }

    #sidebar .submenu a {
        padding: 10px 10px;
        font-size: 14.5px;
    }

    .ma-voile {
        position: fixed;
        inset: 0;
        z-index: 2050;
        background: rgba(15, 23, 42, .45);
    }

    .ma-voile[hidden] {
        display: none;
    }

    /* Bouton ☰ : toujours en haut à gauche */
    #sidebar-toggle {
        z-index: 2150;
        top: 6px !important;
        width: 44px;
        height: 44px;
        font-size: 21px;
    }

    body.sidebar-collapsed #sidebar-toggle {
        left: 10px !important;
    }

    /* Barre du haut : reste visible, défile à l'horizontale */
    .topbar {
        position: sticky;
        top: 0;
        z-index: 900;
        justify-content: flex-start !important;
        min-height: 56px;
        margin: -12px -12px 14px !important;
        padding: 6px 12px 6px 64px;
        overflow-x: auto;
        background: var(--fond, #f4f6fa);
        scrollbar-width: none;
    }

    .topbar::-webkit-scrollbar {
        display: none;
    }

    .topbar-actions {
        flex-wrap: nowrap !important;
        gap: 6px !important;
    }

    .topbar-actions > * {
        flex: none;
        white-space: nowrap;
    }

    /* Titres de page plus raisonnables */
    #main-content h1 {
        font-size: clamp(22px, 6.5vw, 28px);
        line-height: 1.2;
        overflow-wrap: anywhere;
    }

    /* Champs : 16 px pour éviter le zoom automatique sur iPhone */
    #main-content input:not([type="checkbox"]):not([type="radio"]):not([type="range"]),
    #main-content select,
    #main-content textarea,
    dialog input:not([type="checkbox"]):not([type="radio"]):not([type="range"]),
    dialog select,
    dialog textarea {
        max-width: 100%;
        font-size: max(16px, 1em);
    }

    /* ---------- 2. FENÊTRES EN CARTES ---------- */

    dialog[open] {
        width: auto !important;
        max-width: calc(100vw - 16px) !important;
        max-height: calc(100dvh - 16px) !important;
        margin: auto;
        overflow: auto;
        box-sizing: border-box;
    }

    /* Onglets des réglages : défilent à l'horizontale */
    .invoice-settings-nav {
        display: flex !important;
        flex-wrap: nowrap !important;
        overflow-x: auto;
        scrollbar-width: none;
    }

    .invoice-settings-nav::-webkit-scrollbar {
        display: none;
    }

    .invoice-settings-nav-button {
        flex: none;
        white-space: nowrap;
    }

    /* ---------- 3. TABLEAUX → CARTES ---------- */

    table.ma-cartes,
    table.ma-cartes > tbody,
    table.ma-cartes > tfoot {
        display: block;
        width: 100% !important;
        min-width: 0 !important;
        border: 0 !important;
        background: transparent !important;
    }

    table.ma-cartes > thead {
        display: none !important;
    }

    table.ma-cartes > tbody > tr,
    table.ma-cartes > tfoot > tr {
        display: block;
        margin: 0 0 10px;
        padding: 6px 12px;
        border: 1px solid #dfe7f3;
        border-radius: 12px;
        background: #ffffff;
        box-shadow: 0 1px 3px rgba(15, 23, 42, .05);
    }

    table.ma-cartes > tbody > tr > td,
    table.ma-cartes > tfoot > tr > td,
    table.ma-cartes > tbody > tr > th {
        display: flex;
        flex-wrap: wrap;
        align-items: center;
        justify-content: flex-end;
        gap: 4px 8px;
        width: auto !important;
        min-width: 0 !important;
        max-width: none !important;
        padding: 7px 0 !important;
        border: 0 !important;
        border-bottom: 1px solid #eef2f8 !important;
        background: transparent !important;
        text-align: right !important;
        white-space: normal !important;
        overflow-wrap: anywhere;
    }

    table.ma-cartes > tbody > tr > td:last-child,
    table.ma-cartes > tfoot > tr > td:last-child {
        border-bottom: 0 !important;
    }

    table.ma-cartes > tbody > tr > td[data-ma-label]::before,
    table.ma-cartes > tfoot > tr > td[data-ma-label]::before {
        content: attr(data-ma-label);
        flex: none;
        margin-right: auto;
        max-width: 45%;
        color: #5b6b86;
        font-size: 12.5px;
        font-weight: 600;
        text-align: left;
    }

    /* Ligne seule (« Aucun résultat… ») : centrée */
    table.ma-cartes > tbody > tr > td[colspan]:only-child {
        justify-content: center;
        text-align: center !important;
    }

    table.ma-cartes > tbody > tr > td:empty {
        display: none;
    }

    /* ---------- 4. FORMULAIRE DE FACTURE (et estimation, commande, achat…) ---------- */

    /* Le formulaire d'abord, les paramètres (remise, taxes) en dessous */
    #invoice-view:not([hidden]) {
        grid-template-columns: minmax(0, 1fr) !important;
        gap: 14px !important;
    }

    #invoice-view > .invoice-content {
        grid-column: 1 !important;
        grid-row: 1 !important;
        padding: 14px 12px !important;
        border-radius: 14px !important;
    }

    #invoice-side-panel {
        grid-column: 1 !important;
        grid-row: 2 !important;
    }

    /* Chaque ligne d'article devient une carte */
    #invoice-view table.table-articles,
    #invoice-view table.table-articles > tbody {
        display: block;
        width: 100% !important;
        border: 0 !important;
        background: transparent !important;
    }

    #invoice-view table.table-articles > thead {
        display: none;
    }

    #invoice-view .table-articles tr.ligne-facture-item {
        position: relative;
        display: grid;
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 10px;
        margin: 0 0 12px;
        padding: 12px 12px 14px;
        border: 1px solid #d6e2f5;
        border-left: 4px solid #2c6bd1;
        border-radius: 12px;
        background: #ffffff;
        box-shadow: 0 1px 4px rgba(23, 58, 122, .06);
    }

    #invoice-view .table-articles tr.ligne-facture-item > td {
        display: flex;
        flex-direction: column;
        gap: 4px;
        width: auto !important;
        min-width: 0;
        padding: 0 !important;
        border: 0 !important;
        background: transparent !important;
    }

    #invoice-view .table-articles tr.ligne-facture-item > td::before {
        color: #3b5b93;
        font-size: 12px;
        font-weight: 700;
    }

    #invoice-view .table-articles td.cell-article {
        grid-column: 1 / -1;
        order: -1;
        padding-right: 40px !important;
    }

    #invoice-view .table-articles td.cell-article::before { content: "Article"; }

    #invoice-view .table-articles td.cell-qte {
        grid-column: 1 / -1;
        display: grid !important;
        grid-template-columns: minmax(0, 1fr) minmax(0, 1.4fr);
        column-gap: 10px;
    }

    #invoice-view .table-articles td.cell-qte::before {
        content: "Quantité · TVA";
        grid-column: 1 / -1;
    }

    #invoice-view .table-articles td.cell-prix::before { content: "Prix unitaire"; }
    #invoice-view .table-articles td.cell-montant::before { content: "Montant"; }

    #invoice-view .table-articles tr.ligne-facture-item input,
    #invoice-view .table-articles tr.ligne-facture-item select {
        width: 100% !important;
        min-height: 44px;
        padding: 8px 10px !important;
        border: 1px solid #cfdbee !important;
        border-radius: 10px !important;
        background: #ffffff;
        box-sizing: border-box;
    }

    #invoice-view .table-articles tr.ligne-facture-item select {
        font-size: 15px !important;
    }

    #invoice-view .table-articles .cell-montant input {
        background: #f3f7fe !important;
        font-weight: 700;
    }

    #invoice-view .table-articles td.cell-action {
        position: absolute;
        top: 8px;
        right: 8px;
        width: 36px !important;
    }

    #invoice-view .table-articles .btn-supprimer-ligne {
        width: 36px;
        height: 36px;
        border-radius: 10px;
        background: #fef2f2 !important;
        font-size: 20px;
        line-height: 1;
    }

    /* En-tête du formulaire */
    #invoice-view .invoice-header-main {
        grid-template-columns: minmax(0, 1fr) !important;
    }

    #invoice-view .invoice-content h1 {
        font-size: clamp(20px, 6vw, 26px) !important;
    }

    /* ---------- 5. CONSULTATION ---------- */

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

    .consultation-document .consultation-document-information {
        padding: 12px 14px !important;
    }

    /* ---------- 6. PETITS RÉGLAGES ---------- */

    /* Bandeau d'essai : discret, en une ligne */
    .ab-bandeau {
        gap: 8px !important;
        padding: 6px 10px !important;
        font-size: 12px !important;
        line-height: 1.3;
    }

    .ab-bandeau button {
        min-height: 30px !important;
        font-size: 12.5px !important;
    }

    /* Grilles de formulaires : une seule colonne */
    #main-content form [class*="grid"]:not(table):not(.ma-garder-grille) {
        grid-template-columns: minmax(0, 1fr);
    }
}

/* Très petits écrans */
@media (max-width: 380px) {
    #invoice-view .table-articles tr.ligne-facture-item {
        grid-template-columns: minmax(0, 1fr);
    }

    .consultation-document .consultation-document-informations {
        grid-template-columns: minmax(0, 1fr) !important;
    }
}
