:root {
    --ngt-primary: #F8B205;
    --ngt-primary-dark: #E89801;
    --ngt-primary-soft: #FFF6D6;
    --ngt-primary-strong: #8C5A00;
    --ngt-gold-light: #FFF06F;
    --ngt-gold-gradient: linear-gradient(135deg, #FFF06F 0%, #F8B205 50%, #E89801 100%);
    --ngt-ink: #0C0A08;
    --ngt-ink-2: #1A1712;
    --ngt-text: #1f2937;
    --ngt-muted: #6b7280;
    --ngt-line: #e7e9ee;
    --ngt-bg: #f5f6f8;
    --ngt-radius: 14px;
    --ngt-radius-sm: 10px;
    --ngt-shadow: 0 1px 2px rgba(16, 24, 40, .05), 0 1px 3px rgba(16, 24, 40, .06);
    --ngt-tabbar: 64px;
    --ngt-police: system-ui, -apple-system, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, 'Noto Sans', sans-serif;
}

html body {
    background: var(--ngt-bg) !important;
    color: var(--ngt-text);
    font-family: var(--ngt-police) !important;
    font-size: 15px;
}
html body .font-monospace { font-family: inherit !important; font-variant-numeric: tabular-nums; letter-spacing: 0; }
html body .text-ngt-gold, html body .text-ngt-orange, html body .text-orange { color: var(--ngt-primary) !important; }

html body .main-content h3.fw-bold { font-size: 1.4rem !important; font-weight: 700 !important; letter-spacing: -.02em; }
html body .main-content .text-muted-pro, html body .main-content p.text-muted { color: var(--ngt-muted) !important; }

html body .main-content .card {
    background: #fff;
    border: 1px solid var(--ngt-line) !important;
    border-radius: var(--ngt-radius) !important;
    box-shadow: var(--ngt-shadow) !important;
}
html body .main-content .card:hover { transform: none; }
html body .main-content .card-header { border-radius: var(--ngt-radius) var(--ngt-radius) 0 0 !important; }

html body .btn { border-radius: var(--ngt-radius-sm) !important; font-weight: 600; text-transform: none !important; letter-spacing: 0 !important; box-shadow: none !important; transition: background-color .15s, border-color .15s, color .15s; }
html body .btn:hover { transform: none !important; }
html body .btn-ngt, html body .btn-ngt-gold, html body .btn-ngt-orange, html body .btn-warning-custom, html body .btn-save {
    background: var(--ngt-primary) !important; border: 1px solid var(--ngt-primary) !important; color: #0C0A08 !important;
}
html body .btn-ngt:hover, html body .btn-ngt-gold:hover, html body .btn-ngt-orange:hover, html body .btn-warning-custom:hover, html body .btn-save:hover {
    background: var(--ngt-primary-dark) !important; border-color: var(--ngt-primary-dark) !important;
}
html body .btn-dark, html body .btn-main { background: var(--ngt-ink) !important; border: 1px solid var(--ngt-ink) !important; color: #fff !important; }
html body .btn-dark:hover, html body .btn-main:hover { background: var(--ngt-ink-2) !important; }
html body .btn-outline-dark, html body .btn-action-back, html body .btn-cancel { background: #fff !important; border: 1px solid #d5d8df !important; color: var(--ngt-ink) !important; }
html body .btn-outline-dark:hover, html body .btn-action-back:hover, html body .btn-cancel:hover { background: #f3f4f6 !important; color: var(--ngt-ink) !important; }
html body .btn:disabled { opacity: .55; }

html body .form-control, html body .form-select { border-radius: var(--ngt-radius-sm); min-height: 42px; font-size: .94rem; }
html body .form-control:not(.border-0), html body .form-select:not(.border-0) { border-color: #d5d8df; }
html body .form-control[readonly] { background-color: #f9fafb; }
html body .main-content .form-label, html body .form-label-pro { font-size: .8rem !important; font-weight: 600 !important; color: #374151 !important; text-transform: none !important; letter-spacing: 0 !important; }
html body .input-group > .form-control, html body .input-group > .form-select { min-height: 0; }

html body .main-content .table { --bs-table-bg: transparent; --bs-table-striped-bg: transparent; margin-bottom: 0; }
html body .main-content .table thead, html body .main-content .table thead tr { background: transparent !important; }
html body .main-content .table thead th {
    background: #f9fafb !important;
    color: var(--ngt-muted) !important;
    font-size: .72rem !important;
    font-weight: 600 !important;
    letter-spacing: .03em !important;
    text-transform: uppercase;
    border-bottom: 1px solid var(--ngt-line) !important;
    white-space: nowrap;
}
html body .main-content .table tbody td { border-color: #f1f2f5 !important; }
html body .main-content .table-hover tbody tr:hover > * { --bs-table-bg-state: #fafbfc; }

html body .main-content .badge { border-radius: 7px; font-weight: 600; }
html body .main-content .product-badge { border-radius: 8px !important; box-shadow: none !important; gap: 6px; }

html body .modal-content { border: 0 !important; border-radius: 18px !important; box-shadow: 0 24px 60px rgba(16, 24, 40, .25) !important; overflow: hidden; }
html body .modal-header {
    background: #fff !important; color: var(--ngt-ink) !important;
    border-bottom: 1px solid var(--ngt-line) !important; padding: 16px 20px !important;
}
html body .modal-header .modal-title, html body .modal-header .text-white, html body .modal-header h5, html body .modal-header h6 { color: var(--ngt-ink) !important; font-size: 1.02rem !important; font-weight: 700 !important; }
html body .modal-header .btn-close { filter: none !important; }
html body .modal-footer { border-top: 1px solid var(--ngt-line) !important; }

html body .sidebar { background: var(--ngt-ink) !important; }
html body .sidebar .brand { padding: 20px 20px 14px; text-align: left; }
.ngt-brand { display: flex; align-items: center; gap: 10px; color: #fff; text-decoration: none; font-weight: 700; font-size: 1.08rem; letter-spacing: -.01em; }
.ngt-brand img { width: 34px; height: 34px; }
.ngt-brand span span { color: var(--ngt-primary); }
html body .nav-link { font-size: .9rem; padding: 9px 12px; margin: 2px 6px; }
html body .nav-link:hover { background: rgba(255, 255, 255, .07); box-shadow: none; }
html body .nav-link.active, html body .nav-link.active:hover { background: var(--ngt-primary); box-shadow: none; }
html body .user-card { background: var(--ngt-ink-2) !important; }
html body .offcanvas.bg-dark { background: var(--ngt-ink) !important; }

html body .mobile-top-nav { background: var(--ngt-ink) !important; padding: calc(10px + env(safe-area-inset-top)) 16px 10px !important; box-shadow: none !important; }
.ngt-top-title { color: #fff; font-weight: 600; font-size: .98rem; margin: 0; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.ngt-top-logo { width: 30px; height: 30px; flex-shrink: 0; }

.ngt-tabbar { display: none; }

@media (min-width: 992px) {
    .table-action-fixe th:last-child, .table-action-fixe td:last-child {
        position: sticky; right: 0; z-index: 1;
        box-shadow: -6px 0 8px -6px rgba(15, 23, 42, .15);
    }
    .table-action-fixe td:last-child { background: #fff; }
}

@media (max-width: 991.98px) {
    .ngt-tabbar {
        position: fixed; z-index: 1030; left: 0; right: 0; bottom: 0;
        display: flex; background: #fff; border-top: 1px solid var(--ngt-line);
        padding-bottom: env(safe-area-inset-bottom);
        box-shadow: 0 -2px 12px rgba(16, 24, 40, .05);
    }
    .ngt-tab {
        flex: 1; height: var(--ngt-tabbar); display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 3px;
        color: var(--ngt-muted); font-size: .68rem; font-weight: 600; text-decoration: none; background: none; border: 0; padding: 0;
    }
    .ngt-tab i { display: flex; align-items: center; justify-content: center; height: 30px; font-size: 1.12rem; }
    .ngt-tab.active { color: var(--ngt-primary); }
    .ngt-tab-vente i {
        width: 44px;
        background: var(--ngt-primary); color: #0C0A08; border-radius: 12px; font-size: 1rem;
    }
    .ngt-tab-vente { color: var(--ngt-ink); }
    html body { padding-bottom: calc(var(--ngt-tabbar) + env(safe-area-inset-bottom)) !important; }
    html body .toast-zone { bottom: calc(var(--ngt-tabbar) + 12px + env(safe-area-inset-bottom)) !important; }
    html body .ngt-pwa-banniere { bottom: calc(var(--ngt-tabbar) + 10px + env(safe-area-inset-bottom)); }

    html body .table-responsive:has(#listeStock) { max-height: 300px !important; }

    html body .main-content .text-center.text-md-start, html body .main-content .text-center.text-xl-start { text-align: left !important; }
    html body .main-content .justify-content-center.justify-content-md-start { justify-content: flex-start !important; }
}

@media (max-width: 767.98px) {
    html body .main-content { padding: 12px !important; }
    html body .main-content > .container-fluid > .container-fluid, html body .main-content .container-fluid.py-3, html body .main-content .container-fluid.py-4 { padding: 0 !important; }


    html body .modal { padding: 0 !important; }
    html body .modal-dialog, html body .modal-dialog.modal-dialog-centered, html body .modal-dialog.modal-lg {
        margin: 0 !important; padding: 0 !important; max-width: none !important; width: 100% !important;
        min-height: 100%; display: flex; align-items: flex-end;
    }
    html body .modal-dialog > form { width: 100%; }
    html body .modal-content {
        width: 100%; border-radius: 20px 20px 0 0 !important;
        max-height: 92vh; overflow-y: auto;
        padding-bottom: env(safe-area-inset-bottom);
    }
}

@media print {
    .ngt-tabbar { display: none !important; }
    html body { padding-bottom: 0 !important; background: #fff !important; }
}

html body.ngt-public {
    min-height: 100vh; margin: 0; display: flex; align-items: center; justify-content: center;
    padding: calc(24px + env(safe-area-inset-top)) 20px calc(24px + env(safe-area-inset-bottom));
    background: var(--ngt-ink) !important; box-sizing: border-box;
}
.ngt-public-card { width: 100%; max-width: 400px; background: #fff; border-radius: 22px; padding: 32px 28px; box-shadow: 0 24px 60px rgba(0, 0, 0, .35); }
.ngt-public-tete { text-align: center; margin-bottom: 26px; }
.ngt-public-tete img { display: block; width: 84px; height: 84px; margin: 0 auto 12px; }
.ngt-public-tete h1 { margin: 0; font-size: 1.5rem; font-weight: 800; letter-spacing: -.02em; color: var(--ngt-ink); }
.ngt-public-tete h1 span { color: var(--ngt-primary); }
.ngt-public-tete p { margin: 4px 0 0; color: var(--ngt-muted); font-size: .9rem; }
.ngt-champ { margin-bottom: 16px; }
.ngt-champ label { display: block; margin-bottom: 6px; font-size: .84rem; font-weight: 600; color: #374151; }
.ngt-saisie { position: relative; }
.ngt-saisie input {
    width: 100%; height: 48px; box-sizing: border-box; padding: 0 14px; font-size: 16px; color: var(--ngt-ink);
    background: #fff; border: 1px solid #d5d8df; border-radius: 12px; outline: none;
}
.ngt-saisie input:focus { border-color: var(--ngt-primary); box-shadow: 0 0 0 3px rgba(248, 178, 5, .18); }
.ngt-saisie input[type=password], .ngt-saisie input.avec-oeil { padding-right: 48px; }
.ngt-oeil { position: absolute; right: 4px; top: 4px; width: 40px; height: 40px; border: 0; background: none; color: var(--ngt-muted); cursor: pointer; border-radius: 8px; }
.ngt-erreur { margin: 6px 0 0; padding: 0; list-style: none; color: #dc2626; font-size: .84rem; }
.ngt-rester { display: flex; align-items: center; gap: 8px; margin: 2px 0 20px; font-size: .88rem; color: #374151; cursor: pointer; }
.ngt-rester input { width: 18px; height: 18px; accent-color: var(--ngt-primary); }
.ngt-principal {
    display: block; width: 100%; height: 50px; line-height: 50px; padding: 0; text-align: center; text-decoration: none;
    background: var(--ngt-primary); color: #0C0A08; border: 0; border-radius: 12px; font-size: 1rem; font-weight: 700; cursor: pointer;
}
.ngt-principal:hover { background: var(--ngt-primary-dark); color: #fff; }
.ngt-principal:disabled { opacity: .7; }
.ngt-pied { margin: 20px 0 0; text-align: center; color: var(--ngt-muted); font-size: .76rem; }

.ngt-recherche { position: relative; }
.ngt-recherche i { position: absolute; left: 14px; top: 50%; transform: translateY(-50%); color: var(--ngt-muted); font-size: .85rem; }
html body .ngt-recherche .form-control { padding-left: 38px; background: #fff; border: 1px solid var(--ngt-line); min-height: 44px; }

@media (max-width: 991.98px) {
    html body .main-content .card:has(table.ngt-cartes):not(:has(#panierTable)) { background: transparent; border: 0 !important; box-shadow: none !important; overflow: visible !important; }
    html body .main-content .card:has(table.ngt-cartes):not(:has(#panierTable)) > .card-header { background: transparent !important; border: 0; padding-left: 0; }
    html body .main-content .card:has(table.ngt-cartes):not(:has(#panierTable)) .card-body,
    html body .main-content .table-responsive:has(> table.ngt-cartes),
    html body .main-content .table-responsive-adaptive:has(> table.ngt-cartes) { padding: 0; overflow: visible; }
    html body .main-content table.ngt-cartes { min-width: 0 !important; width: 100%; background: transparent; }
    table.ngt-cartes > thead { display: none; }
    table.ngt-cartes { display: block; }
    table.ngt-cartes > tbody { display: grid; grid-template-columns: 1fr; gap: 10px; }
    table.ngt-cartes > tbody > tr {
        display: block; padding: 6px 14px; background: #fff;
        border: 1px solid var(--ngt-line); border-radius: 12px; box-shadow: var(--ngt-shadow);
    }
    table.ngt-cartes > tbody > tr > td {
        display: flex; align-items: center; justify-content: flex-end; gap: 8px; flex-wrap: wrap;
        width: auto !important; max-width: none !important; padding: 7px 0 !important;
        white-space: normal !important; text-align: right !important; background: transparent !important;
        border: 0 !important; border-top: 1px solid #f1f2f5 !important;
    }
    table.ngt-cartes > tbody > tr > td::before {
        content: attr(data-libelle); flex-shrink: 0; text-align: left; margin-right: auto;
        color: var(--ngt-muted); font-size: .76rem; font-weight: 600;
    }
    table.ngt-cartes > tbody > tr > td:first-child { display: block; border-top: 0 !important; text-align: left !important; }
    table.ngt-cartes > tbody > tr > td:first-child::before { content: none; }
    table.ngt-cartes > tbody > tr > td[data-libelle^="Action"] { justify-content: flex-end; }
    table.ngt-cartes > tbody > tr > td[data-libelle^="Action"]::before { content: none; }
    table.ngt-cartes > tbody > tr > td[data-libelle^="Action"] .btn { min-width: 40px; min-height: 40px; }
    table.ngt-cartes > tbody > tr > td[colspan] { display: block; text-align: center !important; }
    table.ngt-cartes > tbody > tr:has(> td[colspan]) { background: transparent; border: 0; box-shadow: none; grid-column: 1 / -1; }

    table.table-custom.ngt-cartes > tbody > tr { position: relative; display: grid; grid-template-columns: 1fr 1fr; column-gap: 14px; padding: 10px 14px; }
    table.table-custom.ngt-cartes > tbody > tr > td { grid-column: 1 / -1; }
    table.table-custom.ngt-cartes > tbody > tr > td:first-child { padding: 0 96px 8px 0 !important; }
    table.table-custom.ngt-cartes > tbody > tr > td:first-child > * { display: inline-block; margin-right: 6px; }
    table.table-custom.ngt-cartes > tbody > tr > td:first-child > .d-flex { display: inline-flex !important; }
    table.table-custom.ngt-cartes .rounded-circle { display: none !important; }
    table.table-custom.ngt-cartes > tbody > tr > td[data-libelle="Total"],
    table.table-custom.ngt-cartes > tbody > tr > td[data-libelle="Encaissé"],
    table.table-custom.ngt-cartes > tbody > tr > td[data-libelle="Reste dû"],
    table.table-custom.ngt-cartes > tbody > tr > td[data-libelle="Statut"] {
        grid-column: auto; flex-direction: column; align-items: flex-start !important; justify-content: flex-start; gap: 3px; text-align: left !important;
    }
    table.table-custom.ngt-cartes > tbody > tr > td[data-libelle="Total"]::before,
    table.table-custom.ngt-cartes > tbody > tr > td[data-libelle="Encaissé"]::before,
    table.table-custom.ngt-cartes > tbody > tr > td[data-libelle="Reste dû"]::before,
    table.table-custom.ngt-cartes > tbody > tr > td[data-libelle="Statut"]::before { margin: 0; }
    table.table-custom.ngt-cartes > tbody > tr > td[data-libelle^="Action"] {
        position: absolute; top: 6px; right: 10px; width: auto !important; padding: 0 !important; border: 0 !important; gap: 6px; flex-wrap: nowrap;
    }
    table.table-custom.ngt-cartes > tbody > tr > td[data-libelle^="Action"] .btn { min-width: 36px !important; min-height: 36px !important; width: 36px; padding: 0 !important; display: inline-flex; align-items: center; justify-content: center; margin: 0 !important; }

    html body .mobile-cards-view { gap: 10px; }
}
@media (min-width: 576px) and (max-width: 991.98px) {
    table.ngt-cartes > tbody { grid-template-columns: repeat(2, 1fr); }
    html body .main-content table#panierTable > tbody { grid-template-columns: 1fr; }
}

@media (max-width: 767.98px) {
    html body .main-content h3.fw-bold { font-size: 1.22rem !important; margin-bottom: 0 !important; }
    html body .main-content .row.mb-4, html body .main-content .mb-4.g-3 { margin-bottom: .75rem !important; }
    html body .main-content .row.g-3 { --bs-gutter-y: .6rem; }
    html body .main-content .card-stat .rounded-circle { display: none; }
    html body .main-content .card-stat h3 { font-size: 1.25rem !important; }
    html body .main-content .card-ventes-detail { padding: 1rem !important; }
    html body .ngt-actions-compactes { flex-wrap: nowrap; }
    html body .ngt-actions-compactes .btn {
        flex: 1 1 0; justify-content: center; white-space: nowrap;
        height: 42px !important; padding: 0 6px !important; font-size: .84rem !important;
        display: inline-flex; align-items: center;
    }
    html body .ngt-actions-compactes > a { min-width: 0; }
    html body .ngt-actions-compactes i { margin-right: 5px !important; }
    html body .main-content .row.ngt-actions-compactes { --bs-gutter-x: .5rem; }
}

html body .main-content .table-custom td:first-child .badge { white-space: nowrap !important; }

.ngt-etape {
    display: inline-flex; align-items: center; justify-content: center; flex-shrink: 0;
    width: 24px; height: 24px; border-radius: 50%;
    background: var(--ngt-primary); color: #0C0A08; font-size: .78rem; font-weight: 700;
}
html body .ngt-vente-panier { max-height: 280px; overflow-y: auto; }
.ngt-vente-barre {
    position: sticky; bottom: 10px; z-index: 5; margin-top: 14px;
    border-radius: 12px; box-shadow: 0 6px 18px rgba(16, 24, 40, .16);
}
html body #btnValiderVente.ngt-a-credit { background: var(--ngt-ink) !important; border-color: var(--ngt-ink) !important; }
html body #vente_article::placeholder { font-weight: 400; }
html body .produit-row:hover > td { background: var(--ngt-primary-soft); }
@media (min-width: 992px) {
    .ngt-vente-produits > .card { position: sticky; top: 16px; }
    html body .ngt-vente-liste { max-height: calc(100vh - 190px); overflow-y: auto; }
}
@media (max-width: 991.98px) {
    html body .ngt-vente-liste { max-height: 300px; overflow-y: auto; }
    .ngt-vente-barre { bottom: calc(var(--ngt-tabbar) + 8px + env(safe-area-inset-bottom)); }
}

html body #panierTable th, html body #panierTable td { white-space: nowrap; }
html body #panierTable td:first-child { white-space: normal; min-width: 90px; }
html body #montant_paye { min-width: 120px; }

.ngt-periode { color: var(--ngt-muted); font-weight: 600; font-size: .88rem; margin: 0 0 10px; }
.ngt-tuiles { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; margin-bottom: 12px; }
.ngt-tuile {
    display: flex; flex-direction: column; gap: 4px; min-width: 0; padding: 14px;
    background: #fff; border: 1px solid var(--ngt-line); border-radius: var(--ngt-radius);
    box-shadow: var(--ngt-shadow); color: inherit; text-decoration: none;
}
.ngt-tuile-lien:hover { border-color: #c9ccd4; color: inherit; }
.ngt-tuile-libelle { color: var(--ngt-muted); font-size: .78rem; font-weight: 600; }
.ngt-tuile-valeur { color: var(--ngt-ink); font-size: 1.28rem; font-weight: 700; letter-spacing: -.02em; line-height: 1.2; font-variant-numeric: tabular-nums; }
.ngt-tuile-une .ngt-tuile-valeur { font-size: 1.75rem; }
.ngt-delta { color: var(--ngt-muted); font-size: .75rem; font-weight: 500; }
.ngt-delta.hausse { color: #15803d; font-weight: 600; }
.ngt-delta.baisse { color: #b91c1c; font-weight: 600; }
.ngt-delta span { color: var(--ngt-muted); font-weight: 500; }
.ngt-jauge { height: 6px; background: #e7e9ee; border-radius: 3px; overflow: hidden; margin-top: 3px; }
.ngt-jauge span { display: block; height: 100%; background: #1baf7a; border-radius: 3px; }

html body .main-content h2.ngt-carte-titre { font-size: .98rem; font-weight: 700; color: var(--ngt-ink); margin: 0 0 14px; }
.ngt-vide { color: var(--ngt-muted); text-align: center; padding: 30px 8px; margin: 0; font-size: .9rem; }
.ngt-lien { color: var(--ngt-ink); font-size: .84rem; font-weight: 600; text-decoration: underline; text-underline-offset: 2px; }

.ngt-courbe { position: relative; height: 240px; outline-offset: 4px; }
.ngt-courbe svg { display: block; width: 100%; height: 100%; overflow: visible; }
.ngt-donnees { margin-top: 8px; font-size: .84rem; }
.ngt-donnees summary { cursor: pointer; color: var(--ngt-muted); font-weight: 600; }
.ngt-donnees-liste { max-height: 220px; overflow-y: auto; margin-top: 8px; }
.ngt-donnees-liste div { display: flex; justify-content: space-between; gap: 12px; padding: 5px 2px; border-bottom: 1px solid #f1f2f5; }

.ngt-segments { display: flex; gap: 2px; height: 28px; margin-bottom: 14px; }
.ngt-segments span { display: flex; align-items: center; min-width: 3px; padding-left: 8px; border-radius: 4px; color: #fff; font-size: .76rem; font-weight: 700; white-space: nowrap; overflow: hidden; cursor: default; }
.ngt-legende { list-style: none; margin: 0; padding: 0; }
.ngt-legende li { display: flex; align-items: center; gap: 8px; padding: 7px 0; border-top: 1px solid #f1f2f5; font-size: .86rem; }
.ngt-legende i { width: 10px; height: 10px; border-radius: 3px; flex-shrink: 0; }
.ngt-legende span { flex: 1; min-width: 0; }
.ngt-legende small { width: 44px; text-align: right; color: var(--ngt-muted); }

.ngt-barre { display: grid; grid-template-columns: minmax(0, 34%) minmax(0, 1fr) auto; align-items: center; gap: 10px; padding: 7px 4px; border-radius: 8px; color: inherit; text-decoration: none; font-size: .86rem; }
.ngt-barre:hover { background: #f7f8fa; color: inherit; }
.ngt-barre.active { background: var(--ngt-primary-soft); }
.ngt-barre-nom { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; color: var(--ngt-text); }
.ngt-barre-piste { display: block; height: 10px; }
.ngt-barre-piste i[style="width: 0%"] { display: none; }
.ngt-barre-piste i { display: block; height: 100%; min-width: 2px; background: var(--ngt-primary); border-radius: 0 4px 4px 0; }
.ngt-barre strong { font-variant-numeric: tabular-nums; color: var(--ngt-ink); white-space: nowrap; }

.ngt-ligne { display: flex; justify-content: space-between; align-items: center; gap: 12px; padding: 9px 4px; border-top: 1px solid #f1f2f5; color: inherit; text-decoration: none; }
.ngt-lignes > .ngt-ligne:first-child { border-top: 0; }
a.ngt-ligne:hover { background: #f7f8fa; color: inherit; }
.ngt-ligne-texte { min-width: 0; display: flex; flex-direction: column; }
.ngt-ligne-texte strong, .ngt-ligne-montant strong { font-size: .88rem; color: var(--ngt-ink); }
.ngt-ligne-texte strong, .ngt-ligne-texte small { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.ngt-ligne small { color: var(--ngt-muted); font-size: .76rem; }
.ngt-ligne-montant { display: flex; flex-direction: column; align-items: flex-end; flex-shrink: 0; font-variant-numeric: tabular-nums; }
.ngt-etat { flex-shrink: 0; font-size: .78rem; font-weight: 600; white-space: nowrap; }
.ngt-etat.critique { color: #b91c1c; }
.ngt-etat.attention { color: #92400e; }

.ngt-infobulle {
    position: fixed; z-index: 1080; pointer-events: none; max-width: 260px; padding: 7px 10px;
    background: var(--ngt-ink); color: #fff; border-radius: 8px; font-size: .8rem; line-height: 1.35;
    box-shadow: 0 8px 20px rgba(16, 24, 40, .25);
}
.ngt-infobulle strong { display: block; font-size: .92rem; }
.ngt-infobulle span { color: #c9ccd4; }

@media (max-width: 767.98px) {
    .ngt-tuiles { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
    .ngt-tuile { padding: 12px; }
    .ngt-tuile-une, .ngt-tuile:last-child { grid-column: span 2; }
    .ngt-tuile-une .ngt-tuile-valeur { font-size: 1.6rem; }
    .ngt-tuile-valeur { font-size: 1.1rem; }
    .ngt-courbe { height: 200px; }
    .ngt-barre { grid-template-columns: minmax(0, 1fr) auto; }
    .ngt-barre-piste { grid-column: 1 / -1; grid-row: 2; }
}

html body .btn-action-layout { display: inline-flex; align-items: center; justify-content: center; height: 40px; font-size: .86rem; }
html body .btn-action-layout.d-none { display: none !important; }
@media (min-width: 768px) { html body .btn-action-layout.d-md-inline-flex { display: inline-flex !important; } }

html body #creanceTableDesktop td:nth-child(4) .badge { min-width: 118px; }
html body .modal .form-label { color: #374151 !important; font-size: .82rem !important; }
html body .modal .btn.py-3 { padding-top: .7rem !important; padding-bottom: .7rem !important; }

.ngt-filtre-charge { opacity: .55; pointer-events: none; transition: opacity .15s; }
html body .ngt-filtre-actions .btn { white-space: nowrap; font-size: .84rem; padding: .5rem .6rem; min-height: 42px; }

html body .sidebar .brand { padding: 16px 20px 8px; }
html body .sidebar .menu { padding: 0 6px 8px; }
html body .nav-section { padding: 12px 16px 3px !important; font-size: .66rem !important; }
html body .nav-link { padding: 7px 12px !important; margin: 1px 4px !important; border-radius: 9px !important; font-size: .89rem !important; }
html body .nav-link i { width: 24px; font-size: .98rem; text-align: center; }
html body .user-card {
    display: flex; align-items: center; gap: 10px;
    padding: 12px 12px calc(12px + env(safe-area-inset-bottom)) 14px !important;
}
html body .user-card .avatar { width: 34px; height: 34px; font-size: .82rem; }
.user-card-texte { flex: 1; min-width: 0; }
.user-card-nom { color: #fff; font-weight: 600; font-size: .86rem; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.user-card-role { color: rgba(255, 255, 255, .5); font-size: .72rem; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.user-card-action {
    flex-shrink: 0; width: 34px; height: 34px; display: flex; align-items: center; justify-content: center;
    border-radius: 9px; border: 1px solid rgba(255, 255, 255, .14); background: transparent;
    color: rgba(255, 255, 255, .8); font-size: .9rem; text-decoration: none; cursor: pointer;
}
.user-card-action:hover, .user-card-action.active { background: rgba(255, 255, 255, .1); color: #fff; }
.user-card-action.quitter { color: #fca5a5; border-color: rgba(248, 113, 113, .35); }
.user-card-action.quitter:hover { background: rgba(220, 38, 38, .18); color: #fff; }
@media (max-height: 700px) {
    html body .nav-section { padding-top: 8px !important; }
    html body .nav-link { padding-top: 6px !important; padding-bottom: 6px !important; }
}
@media (max-height: 580px) {
    html body .sidebar .brand { padding-top: 10px; padding-bottom: 4px; }
    html body .nav-section { padding: 6px 16px 2px !important; }
    html body .nav-link { padding-top: 5px !important; padding-bottom: 5px !important; }
}

.ngt-entete { display: flex; align-items: center; justify-content: space-between; gap: 16px; flex-wrap: wrap; margin-bottom: 14px; }
.ngt-entete-titre { display: flex; align-items: center; gap: 14px; min-width: 0; }
.ngt-entete-icone, .ngt-entete-retour {
    flex-shrink: 0; width: 42px; height: 42px; border-radius: 12px;
    display: flex; align-items: center; justify-content: center; font-size: 1.05rem;
}
.ngt-entete-icone { background: var(--ngt-primary-soft); color: var(--ngt-primary); }
.ngt-entete-retour { background: #fff; border: 1px solid var(--ngt-line); color: var(--ngt-ink); text-decoration: none; }
.ngt-entete-retour:hover { background: #f3f4f6; color: var(--ngt-ink); }
.ngt-entete-texte { min-width: 0; }
html body .main-content .ngt-entete h1 { font-size: 1.4rem; font-weight: 800; letter-spacing: -.02em; color: var(--ngt-ink); margin: 0; line-height: 1.25; overflow-wrap: anywhere; }
.ngt-entete-texte p { color: var(--ngt-muted); font-size: .9rem; margin: 3px 0 0; }
.ngt-entete-actions { display: flex; gap: 8px; flex-wrap: wrap; }
html body .ngt-entete-actions .btn { display: inline-flex; align-items: center; justify-content: center; min-height: 42px; padding: 0 16px; font-size: .9rem; white-space: nowrap; }

.ngt-resume { display: flex; gap: 10px; flex-wrap: wrap; margin-bottom: 16px; }
.ngt-resume-item {
    display: flex; flex-direction: column; gap: 2px; min-width: 150px; padding: 10px 14px;
    background: #fff; border: 1px solid var(--ngt-line); border-radius: 12px; box-shadow: var(--ngt-shadow);
}
.ngt-resume-item span { color: var(--ngt-muted); font-size: .76rem; font-weight: 600; }
.ngt-resume-item strong { color: var(--ngt-ink); font-size: 1.12rem; font-weight: 700; font-variant-numeric: tabular-nums; }
.ngt-resume-item.alerte strong { color: #b91c1c; }
.ngt-resume-item.attention strong { color: #92400e; }

.ngt-outils { display: flex; gap: 8px; align-items: center; margin-bottom: 16px; }
html body .ngt-outils .btn { min-height: 44px; white-space: nowrap; }

@media (max-width: 767.98px) {
    .ngt-entete { gap: 12px; margin-bottom: 12px; }
    html body .main-content .ngt-entete h1 { font-size: 1.2rem; }
    .ngt-entete-texte p { font-size: .84rem; }
    .ngt-entete-icone, .ngt-entete-retour { width: 38px; height: 38px; }
    .ngt-entete-actions { width: 100%; }
    html body .ngt-entete-actions .btn { flex: 1 1 0; padding: 0 8px; font-size: .84rem; }
    .ngt-resume { gap: 8px; }
    .ngt-resume-item { flex: 1 1 calc(50% - 8px); min-width: 0; padding: 9px 12px; }
    .ngt-outils { flex-wrap: wrap; }
    .ngt-outils .ngt-recherche { flex-basis: 100%; }
    html body .ngt-outils .btn { flex: 1 1 0; }
}

html body .main-content table.ngt-ventes { min-width: 0 !important; }
html body .main-content table.ngt-ventes td { white-space: normal !important; padding-top: .8rem !important; padding-bottom: .8rem !important; vertical-align: middle; }
.ngt-v-principal { color: var(--ngt-ink); font-weight: 600; font-size: .9rem; }
.ngt-v-discret { color: var(--ngt-muted); font-size: .78rem; font-weight: 500; }
.ngt-v-ref { color: var(--ngt-muted); font-size: .76rem; font-variant-numeric: tabular-nums; letter-spacing: .01em; margin-top: 2px; }
.ngt-v-articles { display: flex; flex-direction: column; gap: 2px; font-size: .86rem; color: var(--ngt-text); }
.ngt-v-articles b { color: var(--ngt-muted); font-weight: 600; margin-left: 2px; }
.ngt-v-montant { color: var(--ngt-ink); font-weight: 700; font-size: .98rem; font-variant-numeric: tabular-nums; }
.ngt-v-reste { color: #b91c1c; font-weight: 700; font-size: .8rem; margin-top: 4px; }
.ngt-v-actions { display: inline-flex; gap: 6px; }
html body .ngt-v-actions .btn { width: 36px; height: 36px; padding: 0 !important; display: inline-flex; align-items: center; justify-content: center; }
tr.ngt-vente-annulee td { opacity: .6; }
tr.ngt-vente-annulee td:last-child { opacity: 1; }

@media (max-width: 991.98px) {
    table.table-custom.ngt-cartes > tbody > tr > td[data-libelle="Montant"],
    table.table-custom.ngt-cartes > tbody > tr > td[data-libelle="Statut"] {
        grid-column: auto; flex-direction: column; align-items: flex-start !important; justify-content: flex-start; gap: 3px; text-align: left !important;
    }
    table.table-custom.ngt-cartes > tbody > tr > td[data-libelle="Montant"]::before,
    table.table-custom.ngt-cartes > tbody > tr > td[data-libelle="Statut"]::before { margin: 0; }
    table.ngt-ventes.ngt-cartes > tbody > tr > td[data-libelle="Articles"],
    table.ngt-ventes.ngt-cartes > tbody > tr > td[data-libelle="Client"] { flex-direction: column; align-items: flex-end; }
    table.ngt-ventes.ngt-cartes > tbody > tr > td[data-libelle="Articles"]::before,
    table.ngt-ventes.ngt-cartes > tbody > tr > td[data-libelle="Client"]::before { align-self: flex-start; margin: 0 0 2px; }
    .ngt-v-articles { align-items: flex-end; }
}
@media (max-width: 1199.98px) {
    html body table.ngt-ventes .ngt-v-discret.text-nowrap { white-space: normal !important; }
    html body .main-content table.ngt-ventes td { padding-left: .6rem !important; padding-right: .6rem !important; }
}
html body table.ngt-ventes .ngt-v-articles span, html body table.ngt-ventes .ngt-v-ref { white-space: nowrap; }
html body table.ngt-ventes th:nth-child(3), html body table.ngt-ventes td:nth-child(3) { min-width: 150px; }

html body .main-content table.ngt-creances { min-width: 0 !important; }
html body .main-content table.ngt-creances > tbody > tr > td { white-space: normal !important; padding-top: .85rem !important; padding-bottom: .85rem !important; vertical-align: middle; }
html body table.ngt-creances .ngt-v-articles span, html body table.ngt-creances .ngt-v-ref { white-space: nowrap; }
.ngt-reste-du { color: #b91c1c; font-weight: 800; font-size: 1.05rem; font-variant-numeric: tabular-nums; }
.ngt-cumul { display: inline-block; margin-top: 4px; padding: 2px 8px; border-radius: 6px; background: #fef2f2; color: #b91c1c; font-size: .74rem; font-weight: 600; }
.ngt-c-actions { display: inline-flex; flex-direction: column; gap: 6px; min-width: 112px; }
html body .ngt-c-actions .btn { min-height: 36px; font-size: .84rem !important; padding: 0 12px !important; display: inline-flex; align-items: center; justify-content: center; }
html body table.ngt-creances tr.tranche-row > td { background: #f9fafb !important; padding: 8px 16px 10px 40px !important; }
@media (max-width: 1199.98px) {
    html body .main-content table.ngt-creances > tbody > tr > td { padding-left: .6rem !important; padding-right: .6rem !important; }
}

html body .main-content table.ngt-liste { min-width: 0 !important; }
html body .main-content table.ngt-liste > tbody > tr > td { padding-top: .75rem !important; padding-bottom: .75rem !important; white-space: normal !important; vertical-align: middle; }
.ngt-lieu { display: inline-flex; align-items: center; gap: 7px; color: var(--ngt-text); font-size: .88rem; font-weight: 500; }
.ngt-lieu i { color: var(--ngt-muted); font-size: .85rem; }
.ngt-qte { color: var(--ngt-ink); font-weight: 700; font-size: 1rem; font-variant-numeric: tabular-nums; }
.ngt-etat-pastille { display: inline-flex; align-items: center; gap: 6px; padding: 4px 10px; border-radius: 999px; font-size: .78rem; font-weight: 600; white-space: nowrap; }
.ngt-etat-pastille.critique { background: #fef2f2; color: #b91c1c; }
.ngt-etat-pastille.faible { background: #fffbeb; color: #92400e; }
.ngt-etat-pastille.bon { background: #f0fdf4; color: #15803d; }
.ngt-etat-pastille.neutre { background: #f3f4f6; color: #4b5563; }
html body .ngt-icone-btn { width: 36px; height: 36px; padding: 0 !important; display: inline-flex !important; align-items: center; justify-content: center; }
.ngt-produit-icone { flex-shrink: 0; width: 34px; height: 34px; border-radius: 9px; display: flex; align-items: center; justify-content: center; background: var(--ngt-primary-soft); color: var(--ngt-primary); font-size: .9rem; }
.min-w-0 { min-width: 0; }

.ngt-segment { display: flex; gap: 6px; }
.ngt-segment button {
    flex: 1; min-height: 42px; padding: 4px 8px; border: 1px solid var(--ngt-border, #dee2e6); border-radius: 8px;
    background: #fff; color: var(--ngt-text); font-weight: 600; font-size: .88rem; line-height: 1.15;
    display: flex; flex-direction: column; align-items: center; justify-content: center;
}
.ngt-segment button small { font-weight: 500; font-size: .72rem; color: var(--ngt-muted); }
.ngt-segment button.active { border-color: var(--ngt-primary); background: var(--ngt-primary-soft); color: var(--ngt-ink); box-shadow: inset 0 0 0 1px var(--ngt-primary); }
html body .ngt-panier-qte { width: 112px; flex-wrap: nowrap; }
html body .ngt-panier-qte .form-control { min-width: 0; padding-left: 4px; padding-right: 4px; }
html body #searchProduit::-webkit-search-cancel-button { cursor: pointer; }

.ngt-mvt .modal-dialog { max-width: 480px; }
.ngt-mvt-titre { display: flex; align-items: center; gap: 12px; min-width: 0; }
.ngt-mvt-titre p { margin: 2px 0 0; color: var(--ngt-muted); font-size: .82rem; }
.ngt-mvt-icone { flex-shrink: 0; width: 40px; height: 40px; border-radius: 11px; display: flex; align-items: center; justify-content: center; background: var(--ngt-primary-soft); color: var(--ngt-primary); }
html body .ngt-mvt .modal-body { padding: 18px 20px 6px !important; }
html body .ngt-mvt .modal-footer { padding: 12px 20px 16px !important; gap: 8px; flex-wrap: nowrap; }
html body .ngt-mvt .modal-footer > * { margin: 0; }
html body .ngt-mvt .modal-footer .btn { min-height: 46px; font-weight: 600; }
html body .ngt-mvt .modal-footer .btn-light { flex: 0 0 auto; padding: 0 18px; border: 1px solid var(--ngt-line); }
html body .ngt-mvt .modal-footer [data-valider] { flex: 1; }
html body .ngt-mvt .form-select, html body .ngt-mvt .form-control { min-height: 46px; font-size: .95rem; }
html body .ngt-mvt .input-group-text { min-width: 54px; justify-content: center; color: var(--ngt-muted); background: #f9fafb; }
.ngt-mvt-trajet { display: flex; align-items: center; gap: 8px; margin-bottom: 16px; padding: 10px 12px; border-radius: 12px; background: #f9fafb; border: 1px solid var(--ngt-line); font-size: .84rem; font-weight: 600; color: var(--ngt-text); }
.ngt-mvt-trajet > span { display: inline-flex; align-items: center; gap: 6px; min-width: 0; }
.ngt-mvt-trajet > span i { color: var(--ngt-muted); }
.ngt-mvt-trajet > span.cible { color: var(--ngt-ink); }
.ngt-mvt-trajet > span.cible i { color: var(--ngt-primary); }
.ngt-mvt-fleche { color: var(--ngt-primary); font-size: .8rem; }
.ngt-mvt-tout { border: 0; background: none; padding: 0; color: var(--ngt-primary); font-size: .8rem; font-weight: 600; text-decoration: underline; text-underline-offset: 2px; }
.ngt-mvt-apres { margin-top: 14px; padding: 10px 12px; border-radius: 12px; background: var(--ngt-primary-soft); font-size: .85rem; }
.ngt-mvt-apres p { margin: 0 0 4px; font-size: .74rem; font-weight: 700; text-transform: uppercase; letter-spacing: .04em; color: var(--ngt-muted); }
.ngt-mvt-apres > div { display: flex; justify-content: space-between; gap: 10px; padding: 2px 0; }
.ngt-mvt-apres strong { font-weight: 600; white-space: nowrap; font-variant-numeric: tabular-nums; }
.ngt-mvt-apres b.plus { color: #15803d; }
.ngt-mvt-apres b.moins { color: #b45309; }
.ngt-mvt .form-control:invalid:not(:placeholder-shown) { border-color: #dc2626; }

html body .ngt-vente-carte { display: flex; flex-direction: column; }
.ngt-caisse-haut { order: 1; }
.ngt-vente-saisie { order: 2; margin: 12px 16px 0; padding: 12px; border: 1px solid var(--ngt-line); border-left: 4px solid var(--ngt-primary); border-radius: 12px; background: #fff; }
.ngt-caisse-bas { order: 3; }
.ngt-vente-saisie .form-control, .ngt-vente-saisie .ngt-segment button { min-height: 42px; }
html body .ngt-ajouter { min-height: 42px; display: inline-flex; align-items: center; justify-content: center; gap: 4px; white-space: nowrap; }
.ngt-ajouter-total { font-family: ui-monospace, SFMono-Regular, Menlo, monospace; opacity: .85; font-weight: 600; }
.ngt-ajouter:disabled .ngt-ajouter-total { display: none; }
.ngt-modes { display: grid; grid-template-columns: repeat(4, 1fr); gap: 6px; }
html body .ngt-modes .payment-card { display: flex; align-items: center; justify-content: center; gap: 6px; min-height: 42px; padding: 4px 6px; border: 1px solid var(--ngt-line); border-radius: 9px; background: #fff; font-size: .82rem; font-weight: 600; color: var(--ngt-ink); }
.ngt-modes .payment-card img { height: 20px; width: auto; object-fit: contain; }
.ngt-total-bloc #affichageTotal { font-size: 1.7rem; line-height: 1.15; letter-spacing: -.5px; white-space: nowrap; }
@media (min-width: 1200px) { .ngt-total-bloc { text-align: right; } }
.ngt-feuille-fermer { flex-shrink: 0; width: 34px; height: 34px; border: 0; border-radius: 50%; background: rgba(127, 127, 127, .16); color: inherit; display: inline-flex; align-items: center; justify-content: center; }
@media (min-width: 992px) {
    .ngt-caisse { display: contents; }
    html body .ngt-vente-panier { max-height: 220px; }
}
@media (max-width: 991.98px) {
    html body .ngt-vente-liste { max-height: none; overflow: visible; }
    html body .ngt-vente-produits { padding-bottom: 78px; }
    .ngt-vente-droite { position: static; }
    html body .ngt-vente-carte { background: transparent; border: 0 !important; box-shadow: none !important; }
    .ngt-caisse, .ngt-vente-saisie {
        position: fixed; left: 0; right: 0; bottom: 0; z-index: 1045; margin: 0;
        background: #fff; border: 0; border-radius: 18px 18px 0 0; box-shadow: 0 -10px 40px rgba(16, 24, 40, .22);
        max-height: 92vh; max-height: 92dvh; overflow-y: auto; overscroll-behavior: contain;
        padding-bottom: env(safe-area-inset-bottom);
        transform: translateY(105%); visibility: hidden; transition: transform .22s ease, visibility 0s linear .22s;
    }
    .ngt-vente-saisie { padding: 16px 16px calc(16px + env(safe-area-inset-bottom)); }
    .ngt-caisse { display: flex; flex-direction: column; }
    .ngt-caisse .card-header { border-radius: 18px 18px 0 0 !important; position: sticky; top: 0; z-index: 2; }
    .ngt-caisse.ouvert, .ngt-vente-saisie.ouvert { transform: none; visibility: visible; transition: transform .22s ease; }
    html body .ngt-caisse .ngt-vente-panier { max-height: none; overflow: visible; }
    .ngt-caisse .ngt-vente-barre { position: sticky; bottom: 0; margin: 12px -16px -16px; padding: 10px 16px calc(10px + env(safe-area-inset-bottom)); background: #fff; border-radius: 0; box-shadow: 0 -6px 16px rgba(16, 24, 40, .08); }
    .ngt-feuille-fond { position: fixed; inset: 0; z-index: 1044; background: rgba(15, 17, 21, .5); }
    body.ngt-feuille-active { overflow: hidden; }
    .ngt-panier-barre {
        position: fixed; left: 10px; right: 10px; z-index: 1035;
        bottom: calc(var(--ngt-tabbar) + 8px + env(safe-area-inset-bottom));
        display: flex; align-items: center; justify-content: space-between; gap: 12px;
        padding: 8px 8px 8px 16px; border-radius: 14px; background: var(--ngt-ink, #0C0A08); color: #fff;
        box-shadow: 0 10px 28px rgba(16, 24, 40, .3);
    }
    .ngt-panier-barre-info { display: flex; flex-direction: column; line-height: 1.2; min-width: 0; }
    .ngt-panier-barre-info span { font-size: .78rem; opacity: .75; }
    .ngt-panier-barre-info strong { font-size: 1.1rem; font-variant-numeric: tabular-nums; white-space: nowrap; }
    .ngt-panier-barre .btn { min-height: 44px; padding: 0 18px; border-radius: 10px; }
    .ngt-panier-barre .btn:disabled { opacity: .45; }
    .ngt-panier-barre.ngt-pulse { animation: ngtPulse .5s ease; }
}
@keyframes ngtPulse { 0% { transform: scale(1); } 40% { transform: scale(1.04); } 100% { transform: scale(1); } }
@media (prefers-reduced-motion: reduce) { .ngt-caisse, .ngt-vente-saisie { transition: none !important; } .ngt-panier-barre.ngt-pulse { animation: none; } }

@media (min-width: 576px) { .ngt-total-bloc { text-align: right; } }
@media (min-width: 992px) {
    .ngt-titre-caisse { display: none !important; }
    html body .ngt-vente-carte { position: sticky; top: 12px; max-height: calc(100vh - 24px); max-height: calc(100dvh - 24px); overflow: hidden; }
    .ngt-caisse-bas { flex: 1 1 auto; min-height: 0; display: flex; flex-direction: column; padding-top: 12px; }
    html body .ngt-caisse-bas .ngt-vente-panier { flex: 1 1 auto; min-height: 92px; max-height: none; overflow-y: auto; margin-bottom: 10px !important; }
    .ngt-caisse-bas .ngt-encaisser, .ngt-caisse-bas .ngt-vente-barre { flex-shrink: 0; }
    html body .ngt-caisse-bas .ngt-encaisser { padding: 10px 12px !important; }
    .ngt-caisse-bas .ngt-vente-barre { position: static; margin-top: 10px; box-shadow: none; }
    html body .ngt-caisse-bas #btnValiderVente { padding-top: .8rem !important; padding-bottom: .8rem !important; }
    .ngt-total-bloc #affichageTotal { font-size: 1.5rem; }
    .ngt-vente-saisie { margin-top: 10px; padding: 10px 12px; }
    html body #panierTable thead th { position: sticky; top: 0; z-index: 1; }
}
@media (min-width: 992px) {
    html body .main-content:has(.ngt-vente-carte) { padding-top: 14px !important; padding-bottom: 14px !important; }
    html body .main-content .container-fluid.py-3:has(.ngt-vente-carte) { padding-top: 0 !important; padding-bottom: 0 !important; }
    html body .ngt-vente-carte { top: 14px; max-height: calc(100vh - 28px); max-height: calc(100dvh - 28px); }
    .ngt-vente-produits > .card { top: 14px; max-height: calc(100vh - 28px); max-height: calc(100dvh - 28px); }
    html body .ngt-vente-liste { max-height: calc(100vh - 150px); max-height: calc(100dvh - 150px); }
}
@media (min-width: 992px) {
    html body .main-content .row:has(> .ngt-vente-droite) { --bs-gutter-y: 0; }
    html body .ngt-vente-carte, html body .ngt-vente-produits > .card { margin-bottom: 0 !important; }
}
@media (min-width: 992px) and (max-height: 780px) {
    html body .ngt-vente-carte .card-header { padding-top: .45rem !important; padding-bottom: .45rem !important; }
    html body .ngt-vente-carte .ngt-caisse-haut > .bg-light { padding-top: .4rem !important; padding-bottom: .4rem !important; }
    .ngt-vente-saisie { margin-top: 8px; padding: 8px 12px; }
    .ngt-vente-saisie .ngt-etape, #titreSaisie { display: none; }
    .ngt-vente-saisie > .d-flex:first-of-type { margin-bottom: 6px !important; min-height: 0; }
    .ngt-vente-saisie .form-label { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
    .ngt-vente-saisie .form-control, .ngt-vente-saisie .ngt-segment button, html body .ngt-ajouter { min-height: 38px; }
    .ngt-caisse-bas { padding-top: 8px; }
    html body .ngt-caisse-bas .ngt-vente-panier { min-height: 70px; margin-bottom: 8px !important; }
    html body .ngt-modes .payment-card { min-height: 36px; }
    html body .ngt-caisse-bas .ngt-encaisser { padding: 8px 10px !important; }
    html body .ngt-caisse-bas .ngt-encaisser .form-label { margin-bottom: 2px !important; }
    html body #montant_paye { height: 40px !important; }
    .ngt-total-bloc #affichageTotal { font-size: 1.3rem; }
    .ngt-caisse-bas .ngt-vente-barre { margin-top: 8px; }
    html body .ngt-caisse-bas #btnValiderVente { padding-top: .6rem !important; padding-bottom: .6rem !important; }
}

.ngt-tarif { display: inline-block; margin-left: 4px; padding: 1px 7px; border-radius: 6px; background: #f3f4f6; color: #4b5563; font-size: .7rem; font-weight: 600; vertical-align: 1px; white-space: nowrap; }
.ngt-tarif.gros { background: #eff6ff; color: #1d4ed8; }
html body #panierTable td { font-variant-numeric: tabular-nums; font-size: .84rem; }
html body #panierTable td.ngt-lp-nom { white-space: normal; min-width: 0; line-height: 1.3; }
html body #panierTable .ngt-panier-qte { width: 104px; }
html body .ngt-ajouter-total { font-family: inherit; font-variant-numeric: tabular-nums; }
@media (max-width: 991.98px) {
    html body .ngt-caisse table#panierTable.ngt-cartes > tbody { gap: 8px; }
    html body .ngt-caisse table#panierTable.ngt-cartes > tbody > tr.ngt-ligne-panier {
        display: grid; grid-template-columns: auto 1fr auto auto; grid-template-areas: "nom nom nom suppr" "prix qte total total";
        align-items: center; column-gap: 10px; row-gap: 6px; padding: 10px 12px; box-shadow: none;
    }
    html body .ngt-caisse table#panierTable.ngt-cartes > tbody > tr.ngt-ligne-panier > td { display: block; padding: 0 !important; border: 0 !important; text-align: left !important; }
    html body .ngt-caisse table#panierTable.ngt-cartes > tbody > tr.ngt-ligne-panier > td::before { content: none; }
    html body .ngt-caisse table#panierTable tr.ngt-ligne-panier > .ngt-lp-nom { grid-area: nom; font-size: .92rem; }
    html body .ngt-caisse table#panierTable tr.ngt-ligne-panier > .ngt-lp-prix { grid-area: prix; color: var(--ngt-muted); white-space: nowrap; }
    html body .ngt-caisse table#panierTable tr.ngt-ligne-panier > .ngt-lp-prix::after { content: " ×"; }
    html body .ngt-caisse table#panierTable tr.ngt-ligne-panier > .ngt-lp-qte { grid-area: qte; }
    html body .ngt-caisse table#panierTable tr.ngt-ligne-panier > .ngt-lp-qte .ngt-panier-qte { margin: 0 !important; width: 116px; }
    html body .ngt-caisse table#panierTable tr.ngt-ligne-panier > .ngt-lp-total { grid-area: total; text-align: right !important; font-size: .95rem; white-space: nowrap; }
    html body .ngt-caisse table#panierTable tr.ngt-ligne-panier > .ngt-lp-suppr { grid-area: suppr; justify-self: end; }
    html body .ngt-caisse table#panierTable tr.ngt-ligne-panier > .ngt-lp-suppr .btn { width: 36px; height: 36px; display: inline-flex; align-items: center; justify-content: center; }
    .ngt-vente-saisie .ngt-etape { display: none; }
}
.ngt-lp-pu { display: none; }
@media (min-width: 992px) and (max-width: 1199.98px) {
    html body #panierTable .ngt-th-prix, html body #panierTable td.ngt-lp-prix { display: none; }
    .ngt-lp-pu { display: block; color: var(--ngt-muted); font-size: .76rem; }
    html body #panierTable .ngt-panier-qte { width: 92px; }
}

html body .btn-ngt, html body .btn-ngt-gold, html body .btn-ngt-orange, html body .btn-warning-custom, html body .btn-save,
html body .btn-ngt *, html body .btn-ngt-gold *, html body .btn-ngt-orange *, html body .btn-warning-custom *, html body .btn-save * { color: var(--ngt-ink) !important; }
html body .btn-ngt:focus-visible, html body .btn-ngt-orange:focus-visible, html body .btn-ngt-gold:focus-visible { box-shadow: 0 0 0 3px rgba(248, 178, 5, .35) !important; }
html body .btn-ngt:disabled, html body .btn-ngt-orange:disabled { opacity: .55; }
html body .bg-ngt-orange, html body .bg-ngt-gold, html body .badge-ngt { background: var(--ngt-primary) !important; color: var(--ngt-ink) !important; }
html body .bg-ngt-orange.text-white, html body .bg-ngt-orange .text-white, html body .badge-ngt * { color: var(--ngt-ink) !important; }

html body .text-ngt-gold, html body .text-ngt-orange, html body .text-orange { color: var(--ngt-primary-strong) !important; }
.ngt-entete-icone, .ngt-produit-icone, .ngt-mvt-icone { color: var(--ngt-primary-strong) !important; }
.ngt-mvt-fleche, .ngt-mvt-trajet > span.cible i, .ngt-mvt-tout { color: var(--ngt-primary-strong) !important; }

html body .sidebar .text-ngt-gold, html body .sidebar .text-ngt-orange, html body .bg-dark .text-ngt-gold, html body .bg-dark .text-ngt-orange,
html body .card-header.bg-dark .text-ngt-gold, html body .mobile-top-nav .text-ngt-orange, html body .ngt-panier-barre .text-ngt-orange { color: var(--ngt-primary) !important; }

html body .nav-link.active, html body .nav-link.active:hover, html body .nav-link.active i, html body .nav-link.active span { color: var(--ngt-ink) !important; }
html body .nav-link.active { background: var(--ngt-primary) !important; font-weight: 600; }
html body .sidebar .nav-link:not(.active):hover i { color: var(--ngt-primary); }

.ngt-tab.active { color: var(--ngt-primary-strong) !important; }
.ngt-tab-vente i { background: var(--ngt-primary) !important; color: var(--ngt-ink) !important; }

.ngt-etape { background: var(--ngt-primary) !important; color: var(--ngt-ink) !important; }
.ngt-principal, .ngt-principal:hover { color: var(--ngt-ink) !important; }
html body .form-control:focus, html body .form-select:focus { border-color: var(--ngt-primary) !important; box-shadow: 0 0 0 3px rgba(248, 178, 5, .22) !important; }
html body .form-check-input:checked { background-color: var(--ngt-primary-strong) !important; border-color: var(--ngt-primary-strong) !important; }
html body .page-item.active .page-link { background: var(--ngt-ink) !important; border-color: var(--ngt-ink) !important; color: #fff !important; }
.ngt-segment button.active { border-color: var(--ngt-primary) !important; background: var(--ngt-primary-soft) !important; box-shadow: inset 0 0 0 1px var(--ngt-primary) !important; }
html body .payment-card.active { border-color: var(--ngt-primary) !important; background: var(--ngt-primary-soft) !important; box-shadow: 0 0 0 1px var(--ngt-primary) !important; }
html body .table-active-ngt, html body .table-active-ngt > td { background: var(--ngt-primary-soft) !important; }
html body .table-active-ngt { border-left-color: var(--ngt-primary) !important; }
html body .produit-row .badge.bg-soft-orange { background: var(--ngt-primary-soft) !important; color: var(--ngt-primary-strong) !important; }
html body .text-ngt-orange.font-monospace, html body #affichageTotal, html body .ngt-lp-total { color: var(--ngt-primary-strong) !important; }
html body .ngt-panier-barre .btn-ngt-orange { color: var(--ngt-ink) !important; }

html body .swal2-popup .swal2-confirm[style*="248, 178, 5"], html body .swal2-popup .swal2-confirm[style*="F8B205" i] { color: var(--ngt-ink) !important; }
html body .swal2-popup .swal2-icon.swal2-warning { border-color: var(--ngt-primary) !important; color: var(--ngt-primary-dark) !important; }
html body .user-card .avatar { background: var(--ngt-gold-gradient) !important; color: var(--ngt-ink) !important; font-weight: 700; }
.accueil .acc-entete .ngt-brand span span { color: var(--ngt-primary-strong); }
html body .ngt-top-title .text-ngt-gold, html body .ngt-top-title span, html body .mobile-top-nav .text-ngt-gold,
html body .navbar-dark .text-ngt-orange, html body .navbar-dark .text-ngt-gold, html body .offcanvas .text-ngt-gold,
html body .bg-dark .text-ngt-gold, html body .bg-dark .text-ngt-orange, html body .sidebar span span { color: var(--ngt-primary) !important; }
@media (max-width: 991.98px) {
    html body .ngt-panier-barre .btn:disabled { background: #2a2620 !important; border-color: #2a2620 !important; color: #8f877a !important; opacity: 1; }
}
@media (max-width: 991.98px) {
    html body .ngt-vente-carte { display: contents !important; }
}

:root {
    --ngt-vert: #15803d;  --ngt-vert-pale: #ecfdf3;
    --ngt-rouge: #b91c1c; --ngt-rouge-pale: #fef2f2;
    --ngt-ambre: #92400e; --ngt-ambre-pale: #fffbeb;
    --ngt-bleu: #1d4ed8;  --ngt-bleu-pale: #eff6ff;
}

.ngt-tdb-contexte { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; margin: 4px 0 0; color: var(--ngt-muted); font-size: .86rem; }
.ngt-tdb-contexte i { margin-right: 4px; }
.ngt-role { display: inline-block; padding: 2px 9px; border-radius: 999px; background: #f3f4f6; color: #374151; font-size: .72rem; font-weight: 700; letter-spacing: .02em; }
.ngt-role.admin { background: var(--ngt-primary-soft); color: var(--ngt-primary-strong); }
html body .ngt-btn-pdf i { color: var(--ngt-rouge); }

.ngt-tuile-tete { display: flex; align-items: center; justify-content: space-between; gap: 8px; }
.ngt-tuile-icone { flex-shrink: 0; width: 34px; height: 34px; border-radius: 10px; display: inline-flex; align-items: center; justify-content: center; font-size: .9rem; }
.ngt-tuile-icone.ton-or { background: var(--ngt-primary-soft); color: var(--ngt-primary-strong); }
.ngt-tuile-icone.ton-vert { background: var(--ngt-vert-pale); color: var(--ngt-vert); }
.ngt-tuile-icone.ton-rouge { background: var(--ngt-rouge-pale); color: var(--ngt-rouge); }
.ngt-tuile-icone.ton-ambre { background: var(--ngt-ambre-pale); color: var(--ngt-ambre); }
.ngt-tuile-icone.ton-bleu { background: var(--ngt-bleu-pale); color: var(--ngt-bleu); }
.ngt-tuile-icone.ton-encre { background: #f3f4f6; color: var(--ngt-ink); }
.ngt-tuile-icone.ton-neutre { background: #f3f4f6; color: #6b7280; }
html body .ngt-tuile-une { border-left: 4px solid var(--ngt-primary) !important; }
.ngt-valeur-verte { color: var(--ngt-vert) !important; }
.ngt-valeur-rouge { color: var(--ngt-rouge) !important; }
.ngt-jauge span { background: var(--ngt-vert) !important; }

html body .main-content h2.ngt-carte-titre { display: flex; align-items: center; gap: 8px; }
html body .main-content h2.ngt-carte-titre > i { width: 28px; height: 28px; border-radius: 8px; display: inline-flex; align-items: center; justify-content: center; background: var(--ngt-primary-soft); color: var(--ngt-primary-strong); font-size: .8rem; }

.ngt-legende img { width: 22px; height: 22px; object-fit: contain; border-radius: 5px; }
.ngt-segments span { border-radius: 6px; }

.ngt-barre-piste { background: #f1f2f5; border-radius: 5px; overflow: hidden; }
.ngt-barre-piste i { border-radius: 5px; background: #f6c94f !important; }
.ngt-barres > .ngt-barre:first-child .ngt-barre-piste i { background: var(--ngt-primary) !important; }
.ngt-barre.active { box-shadow: inset 3px 0 0 var(--ngt-primary); }

.ngt-etat { padding: 3px 10px; border-radius: 999px; }
.ngt-etat.critique { background: var(--ngt-rouge-pale); color: var(--ngt-rouge); }
.ngt-etat.attention { background: var(--ngt-ambre-pale); color: var(--ngt-ambre); }
.ngt-ligne-montant .ngt-etat-pastille { margin-top: 3px; padding: 2px 8px; font-size: .72rem; }

.ngt-stock-badge { display: inline-block; padding: 4px 9px; border-radius: 8px; font-size: .8rem; font-weight: 700; white-space: nowrap; font-variant-numeric: tabular-nums; }
.ngt-stock-badge.bon { background: var(--ngt-vert-pale); color: var(--ngt-vert); }
.ngt-stock-badge.faible { background: var(--ngt-ambre-pale); color: var(--ngt-ambre); }
.ngt-stock-badge.critique { background: var(--ngt-rouge-pale); color: var(--ngt-rouge); }
html body #panierTable td.ngt-lp-total, html body .ngt-lp-total { color: var(--ngt-ink) !important; }
html body #btnAddArticle:disabled { background: #e5e7eb !important; border-color: #e5e7eb !important; color: #6b7280 !important; opacity: 1; }
html body #affichageReste .text-danger { color: var(--ngt-rouge) !important; }
html body #affichageReste .text-success { color: var(--ngt-vert) !important; }
html body .ngt-vente-carte > .ngt-caisse .card-header, html body .ngt-caisse-haut .card-header { background: var(--ngt-ink) !important; }

html body .ngt-prix-fixe .form-control[readonly] { background: #f3f4f6 !important; color: var(--ngt-ink); cursor: not-allowed; box-shadow: none !important; border-color: #e5e7eb !important; }
html body .ngt-prix-fixe .form-control[readonly]:focus { border-color: #e5e7eb !important; }
.ngt-prix-cadenas { color: var(--ngt-muted); font-size: .72rem; }
.ngt-segment button:disabled { background: #f9fafb; color: #9ca3af; border-style: dashed; cursor: not-allowed; }
.ngt-segment button:disabled small { color: #9ca3af; }
.ngt-prix-affiche { display: flex; align-items: baseline; justify-content: space-between; gap: 8px; min-height: 42px; padding: 0 12px; border: 1px dashed #d5d8df; border-radius: var(--ngt-radius-sm); background: #f9fafb; user-select: none; }
.ngt-prix-affiche strong { align-self: center; color: var(--ngt-ink); font-size: 1rem; font-variant-numeric: tabular-nums; white-space: nowrap; }
.ngt-prix-affiche small { align-self: center; padding: 1px 8px; border-radius: 6px; background: var(--ngt-primary-soft); color: var(--ngt-primary-strong); font-size: .72rem; font-weight: 700; }
.ngt-prix-affiche small:empty { display: none; }
@media (min-width: 992px) and (max-height: 780px) { .ngt-vente-saisie .ngt-prix-affiche { min-height: 38px; } }

.ngt-recap-vente { text-align: left; border: 1px solid var(--ngt-line); border-radius: 12px; overflow: hidden; margin: 4px 0 0; }
.ngt-recap-vente > div { display: flex; justify-content: space-between; align-items: center; gap: 12px; padding: 10px 14px; border-top: 1px solid var(--ngt-line); font-size: .95rem; }
.ngt-recap-vente > div:first-child { border-top: 0; }
.ngt-recap-vente span { color: var(--ngt-muted); }
.ngt-recap-vente strong { color: var(--ngt-ink); font-variant-numeric: tabular-nums; white-space: nowrap; }
.ngt-recap-vente .total { background: var(--ngt-primary-soft); }
.ngt-recap-vente .total strong { font-size: 1.3rem; }
.ngt-recap-vente .rendu strong { color: var(--ngt-vert); font-size: 1.1rem; }
.ngt-recap-vente .reste strong { color: var(--ngt-rouge); font-size: 1.1rem; }
html body .swal2-popup .swal2-actions .swal2-cancel { background: #fff !important; color: var(--ngt-ink) !important; border: 1px solid #d5d8df !important; }
