/* ================================================================
   Axeane UI — Déclaration Mensuelle (DM)
   CSS dédié à la rubrique « Déclaration mensuelle »
   ----------------------------------------------------------------
   RÈGLES :
   - Toutes les règles sont scopées sous `.dm-root` (écrans) ou
     `md-dialog.dm-dialog` (popups ouvertes sur document.body).
   - AUCUNE classe globale `ax-*` n'est redéfinie sans scope.
   - Les tokens proviennent de axeane-design-system.css (var(--ax-*)).
   - Remplace les blocs <style> inline (non scopés) des anciennes vues :
     md-checkbox / table / td / th globaux, .has-error-form, etc.
   ================================================================ */

/* ═══════════════════════════════════════════════════════════════
   1. RACINE ÉCRAN
   ═══════════════════════════════════════════════════════════════ */
.dm-root {
    display: flex;
    flex-direction: column;
    height: 100%;
    min-height: 0;
    font-family: var(--ax-font);
}

.dm-root > .ax-container {
    flex: 1;
    min-height: 0;
}

/* Un ng-include rendu inline casse la chaîne flex : on le force en colonne */
.dm-root .dm-flex-include,
.dm-root ng-include.dm-flex-include {
    display: flex;
    flex-direction: column;
    flex: 1;
    min-height: 0;
}

/* Toolbar : plusieurs boutons conditionnels → espacement régulier */
.dm-root .ax-toolbar-right,
.dm-root .ax-toolbar-left {
    display: flex;
    align-items: center;
    gap: 8px;
}

/* Message d'alerte inline dans la toolbar (ex. rubriques paie à mettre à jour) */
.dm-root .dm-toolbar-warn {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 4px 10px;
    border-radius: var(--ax-radius-pill);
    background: var(--ax-danger-light);
    border: 1px solid var(--ax-danger-border);
    color: var(--ax-danger-text);
    font-size: 12px;
    font-weight: 600;
    max-width: 380px;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}
.dm-root .dm-toolbar-warn:empty { display: none; }

/* Table wrapper qui occupe tout l'espace disponible (ng-show / ng-if) */
.dm-root .ax-table-wrapper.dm-fill,
.dm-root .ax-fiche-wrapper.dm-fill {
    flex: 1;
    min-height: 0;
    display: flex;
    flex-direction: column;
    overflow: hidden;
}

/* Zone de contenu libre (config TVA, duplication, etc.) dans un wrapper */
.dm-root .dm-body {
    flex: 1;
    min-height: 0;
    overflow-y: auto;
    overflow-x: hidden;
    padding: 18px 24px;
    background: #FBF8F8;
}

/* Compteur d'en-tête aligné à droite (ex. mois / statut) */
.dm-root .dm-header-meta {
    display: flex;
    align-items: center;
    gap: 10px;
    font-size: 12.5px;
    color: var(--ax-text-sec);
}
.dm-root .dm-header-meta strong { color: var(--ax-text-strong); }

/* Switch « Filtres » dans la toolbar (patron Balance PDF / Bilan : md-switch.md-primary) */
.dm-root .ax-toolbar md-switch.dm-switch {
    margin: 0 0 0 4px;
    height: 30px;
    min-height: 30px;
    line-height: 30px;
    display: inline-flex;
    align-items: center;
}
.dm-root .ax-toolbar md-switch.dm-switch .md-container { margin-right: 8px; }
.dm-root .ax-toolbar md-switch.dm-switch .md-label {
    color: var(--ax-primary, rgb(63, 81, 181)) !important;
    font-weight: 600 !important;
    font-size: 13px;
    white-space: nowrap;
}

/* ═══════════════════════════════════════════════════════════════
   2. ONGLETS FAMILLES + SOUS-ONGLETS SECTIONS
   ═══════════════════════════════════════════════════════════════ */
.dm-root .ax-tabs-bar.dm-tabs {
    padding: 8px 20px;
    gap: 6px;
    flex-wrap: nowrap;
}

.dm-root .dm-tabs .ax-tab-item {
    padding: 6px 14px;
    font-size: 12.5px;
}

.dm-root .dm-tab-add {
    margin-left: auto;
    flex-shrink: 0;
}

.dm-root .dm-subtabs {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 6px;
    padding: 8px 20px;
    background: #fff;
    border-bottom: 1px solid var(--ax-border);
    flex-shrink: 0;
}

.dm-root .dm-subtabs-label {
    font-size: 12px;
    font-weight: 700;
    color: var(--ax-text-sec);
    margin-right: 4px;
    display: inline-flex;
    align-items: center;
    gap: 5px;
}
.dm-root .dm-subtabs-label i { color: var(--ax-primary); }
/* Onglet « Configuration » (Maroc) */
.dm-root .dm-body.dm-config-body { padding: 16px 20px; background: #FBF8F8; }
.dm-root .dm-config-body .dm-notice { margin-bottom: 12px; }
.dm-root .dm-config-body .dm-hint { margin: 2px 0 10px; }
.dm-root .dm-config-body select.form-control { padding: 0 10px; }
.dm-root .dm-subtab {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 4px 12px 4px 4px;
    border-radius: var(--ax-radius-pill);
    border: 1px solid var(--ax-border);
    background: #fff;
    color: var(--ax-text-body);
    font-size: 12.5px;
    font-weight: 600;
    cursor: pointer;
    user-select: none;
    max-width: 320px;
    transition: var(--ax-tr-fast);
}
.dm-root .dm-subtab-key {
    width: 24px; height: 24px; border-radius: 50%; flex-shrink: 0;
    display: inline-flex; align-items: center; justify-content: center;
    background: var(--ax-primary-50, #eef2ff); color: var(--ax-primary-dark);
    font-size: 12px; font-weight: 800;
    transition: var(--ax-tr-fast);
}
.dm-root .dm-subtab-text { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.dm-root .dm-subtab:hover {
    border-color: var(--ax-primary-light);
    color: var(--ax-primary-dark);
    background: var(--ax-primary-50);
}
.dm-root .dm-subtab.active {
    background: var(--ax-primary);
    border-color: var(--ax-primary);
    color: #fff;
    box-shadow: 0 2px 8px rgba(63, 81, 181, .28);
}
.dm-root .dm-subtab.active .dm-subtab-key { background: #fff; color: var(--ax-primary); }

/* Ligne « Inclure cette famille » */
.dm-root .dm-include-row {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 8px 20px;
    background: #fff;
    border-bottom: 1px solid var(--ax-border);
    font-size: 13px;
    font-weight: 600;
    color: var(--ax-text-body);
    flex-shrink: 0;
}
.dm-root .dm-include-row md-checkbox {
    margin: 0;
    min-height: 20px;
}
.dm-root .dm-include-row md-checkbox .md-label {
    margin-left: 26px;
    font-size: 13px;
    font-weight: 600;
    color: var(--ax-text-body);
}

/* ═══════════════════════════════════════════════════════════════
   3. TABLES (compléments scopés au design system)
   ═══════════════════════════════════════════════════════════════ */
/* Le body scroll doit remplir la zone même si le tableau est court */
.dm-root .ax-table-body-scroll {
    flex: 1;
    min-height: 0;
}

/* Filtre date dans l'entête : input + bouton calendrier contenus dans la colonne */
.dm-root .ax-table-head thead th .input-group {
    display: flex;
    width: 100%;
    margin-top: 6px;
}
.dm-root .ax-table-head thead th .input-group .form-control {
    flex: 1 1 auto;
    width: 1%;
    min-width: 0;
    margin-top: 0;
    /* neutralise le global .input-group .form-control {height:auto !important; min-height:34px} */
    height: 28px !important;
    min-height: 28px !important;
    max-height: 28px;
    padding: 4px 8px;
    font-size: 12px;
}
.dm-root .ax-table-head thead th .input-group .input-group-btn {
    display: flex;
    width: auto;
    flex-shrink: 0;
}
.dm-root .ax-table-head thead th .input-group .input-group-btn .btn {
    height: 28px !important;
    min-height: 28px;
    padding: 0 8px !important;
    border-radius: 0 6px 6px 0 !important;
    font-size: 12px;
    line-height: 1;
    display: inline-flex;
    align-items: center;
}

/* Tri : lien de colonne */
.dm-root .ax-table-head thead th a.dm-sort {
    color: inherit;
    text-decoration: none;
    cursor: pointer;
    display: inline-flex;
    align-items: center;
    gap: 4px;
}
.dm-root .ax-table-head thead th a.dm-sort:hover { color: var(--ax-primary); }
.dm-root .ax-table-head thead th a.dm-sort i { font-size: 12px; }

/* Cellules montant */
.dm-root .ax-table tbody td.dm-num {
    text-align: right;
    font-variant-numeric: tabular-nums;
}
.dm-root .ax-table-head thead th.dm-num { text-align: right; }

/* Ligne « non configurée » (rubrique incomplète) */
.dm-root .ax-table tbody tr.dm-row-ko td { color: var(--ax-danger); }
.dm-root .ax-table tbody tr.dm-row-ko td:nth-child(2) { color: var(--ax-danger); }

/* Neutralise le gras automatique de la 2e colonne quand non souhaité */
.dm-root .ax-table.dm-table-plain tbody td:nth-child(2) {
    font-weight: 400;
    color: var(--ax-text-body);
}

/* Cellule éditable : inputs compacts dans le tableau */
.dm-root .ax-table tbody td .form-control,
.dm-root .dm-table-edit tbody td .form-control {
    height: 30px;
    padding: 4px 10px;
    font-size: 13px;
    border-radius: var(--ax-radius-xs);
    border: 1px solid var(--ax-border-input);
    box-shadow: none;
    background: #fff;
    text-align: right;
    font-variant-numeric: tabular-nums;
}
.dm-root .ax-table tbody td .form-control:focus,
.dm-root .dm-table-edit tbody td .form-control:focus {
    border-color: var(--ax-border-focus);
    box-shadow: 0 0 0 2px rgba(37, 99, 235, 0.15);
    outline: none;
}
.dm-root .ax-table tbody td .form-control[disabled],
.dm-root .dm-table-edit tbody td .form-control[disabled] {
    background: #f8f9fa;
    color: #000;
    -webkit-text-fill-color: #000;
    opacity: 1;
    cursor: not-allowed;
}
.dm-root .ax-table tbody td .input-group { display: flex; align-items: stretch; }
.dm-root .ax-table tbody td .input-group .form-control {
    border-radius: var(--ax-radius-xs) 0 0 var(--ax-radius-xs);
    /* neutralise le global .input-group .form-control {height:auto !important; min-height:34px} */
    height: 30px !important;
    min-height: 30px !important;
    flex: 1 1 auto;
    width: 1%;
    min-width: 0;
    border-right: none;
}
.dm-root .ax-table tbody td .input-group .input-group-addon {
    height: 30px;
    padding: 0 10px;
    display: flex;
    align-items: center;
    font-size: 12px;
    font-weight: 700;
    color: var(--ax-text-sec);
    background: #f8fafc;
    border: 1px solid var(--ax-border-input);
    border-left: none;
    border-radius: 0 var(--ax-radius-xs) var(--ax-radius-xs) 0;
}

/* Table éditable (lignes d'écriture du modèle) : dropdowns non clippés */
.dm-root .dm-table-edit {
    width: 100%;
    border-collapse: separate;
    border-spacing: 0;
    table-layout: fixed;
    font-size: 14px;
}
.dm-root .dm-table-edit thead th {
    padding: 9px 11px;
    font-size: 12.5px;
    font-weight: 700;
    color: #475569;
    text-transform: uppercase;
    letter-spacing: 0.6px;
    background: #f9fafc;
    border-bottom: 2px solid var(--ax-border);
    text-align: left;
    white-space: nowrap;
}
.dm-root .dm-table-edit thead th:last-child { text-align: right; }
.dm-root .dm-table-edit tbody td {
    padding: 5px 11px;
    vertical-align: middle;
    color: var(--ax-text-body);
    border-bottom: 1px solid #dfe3ee;
    overflow: visible;
    white-space: normal;
}
.dm-root .dm-table-edit tbody td:last-child { text-align: right; }
.dm-root .dm-table-edit tbody tr:nth-child(even) { background: var(--ax-row-even); }
.dm-root .dm-table-edit tbody tr:hover { background: var(--ax-row-hover); }
.dm-root .dm-table-edit tbody td .form-control { text-align: left; }
.dm-root .dm-table-edit tbody td .dm-line-fixed {
    font-weight: 700;
    color: var(--ax-primary-dark);
}

/* nya-bs-select dans les tableaux/formulaires DM : hauteur alignée aux inputs */
.dm-root .dm-table-edit ol.nya-bs-select,
.dm-root .ax-table ol.nya-bs-select {
    width: 100%;
    margin: 0;
    padding: 0;
    height: auto;
}
.dm-root .dm-table-edit ol.nya-bs-select > button.dropdown-toggle,
.dm-root .ax-table ol.nya-bs-select > button.dropdown-toggle {
    height: 30px;
    padding: 3px 24px 3px 10px;
    font-size: 13px;
    border-radius: var(--ax-radius-xs);
    border: 1px solid var(--ax-border-input);
    background: #fff;
    box-shadow: none;
}
.dm-root .dm-table-edit .dropdown-menu { z-index: 1050; }

/* Badges statut (classes retournées par le contrôleur : label-*) */
.dm-root .dm-badge {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    padding: 3px 10px;
    border-radius: 12px;
    font-size: 11.5px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.3px;
    white-space: nowrap;
    line-height: 1.5;
    background: #f3f4f6;
    color: #6b7280;
}
.dm-root .dm-badge::before {
    content: '';
    width: 6px;
    height: 6px;
    border-radius: 50%;
    background: currentColor;
    opacity: 0.8;
}
.dm-root .dm-badge.label-success { background: var(--ax-success-light); color: var(--ax-success-text); }
.dm-root .dm-badge.label-success.depose-fonce {
    /* DÉPOSÉ : vert plein (fond sombre + texte blanc) pour se distinguer nettement de CLOTURE (vert clair) */
    background: #1a9d52;
    color: #fff;
    box-shadow: 0 1px 2px rgba(26, 157, 82, .35);
}
.dm-root .dm-badge.label-success.depose-fonce::before { background: #fff; opacity: 1; }
/* Statut du mois (liste Calcul DM) : icône par état à la place du point, contraste renforcé */
.dm-root .dm-badge.dm-badge-status { padding: 3px 10px 3px 8px; border: 1px solid transparent; }
.dm-root .dm-badge.dm-badge-status::before {
    width: auto; height: auto; border-radius: 0; background: none; opacity: 1;
    font-family: FontAwesome; font-size: 11px; line-height: 1;
}
.dm-root .dm-badge.dm-badge-status.label-warning { background: #fff1c2; color: #7a4b00; border-color: #f2c14e; }
.dm-root .dm-badge.dm-badge-status.label-warning::before { content: "\f017"; }   /* horloge : non clôturé */
.dm-root .dm-badge.dm-badge-status.label-danger  { border-color: #fecaca; }
.dm-root .dm-badge.dm-badge-status.label-danger::before  { content: "\f071"; }   /* alerte : non saisie */
.dm-root .dm-badge.dm-badge-status.label-success { border-color: #bbf7d0; }
.dm-root .dm-badge.dm-badge-status.label-success::before { content: "\f023"; }   /* cadenas : clôturé */
.dm-root .dm-badge.dm-badge-status.label-success.depose-fonce { border-color: #15803d; }
.dm-root .dm-badge.dm-badge-status.label-success.depose-fonce::before { content: "\f00c"; background: none; } /* check : déposé */
.dm-root .dm-badge.dm-badge-status.label-default { border-color: #e5e7eb; }
.dm-root .dm-badge.dm-badge-status.label-default::before { content: "\f05e"; }   /* ignoré */

.dm-root .dm-badge.label-warning { background: var(--ax-warning-light); color: var(--ax-warning-text); }
.dm-root .dm-badge.label-danger  { background: #fee2e2; color: #991b1b; }
.dm-root .dm-badge.label-default { background: #f3f4f6; color: #6b7280; }
.dm-root .dm-badge.label-info    { background: var(--ax-info-light); color: var(--ax-info-text); }
.dm-root .dm-badge.label-primary { background: var(--ax-primary-50); color: var(--ax-primary-dark); }

/* Date pièce hors du mois sélectionné (getBadge → 'label label-success') */
.dm-root .dm-date.label {
    display: inline-block;
    padding: 2px 8px;
    border-radius: 10px;
    font-size: 12px;
    font-weight: 600;
    line-height: 1.5;
    background: var(--ax-success-light);
    color: var(--ax-success-text);
}

/* Pill neutre (code, taux, journal…) */
.dm-root .dm-pill {
    display: inline-block;
    padding: 2px 8px;
    border-radius: 10px;
    font-size: 11.5px;
    font-weight: 600;
    white-space: nowrap;
    line-height: 1.5;
    vertical-align: middle;
    background: var(--ax-primary-50);
    color: var(--ax-primary-dark);
}
.dm-root .dm-pill.dm-pill-green { background: var(--ax-success-light); color: var(--ax-success-text); }
.dm-root .dm-pill.dm-pill-amber { background: #fef3c7; color: #92400e; }
.dm-root .dm-pill.dm-pill-grey  { background: #f3f4f6; color: #6b7280; }
.dm-root .dm-pill.dm-pill-blue  { background: #dbeafe; color: #1e40af; }
.dm-root .dm-pill + .dm-pill { margin-left: 3px; }
/* Cellule « codes rubriques » : tout afficher, retour à la ligne automatique (pas d'ellipsis « … ») */
.dm-root .ax-table tbody td.dm-wrap,
.dm-root .dm-table-plain tbody td.dm-wrap {
    white-space: normal !important;
    overflow: visible !important;
    text-overflow: clip !important;
    word-break: break-word;
    line-height: 1.4;
}
.dm-root td.dm-pills-wrap { display: table-cell; }
.dm-root td.dm-pills-wrap .dm-pill { margin: 2px 3px 2px 0; }
.dm-root td.dm-pills-wrap .dm-pill + .dm-pill { margin-left: 0; }

/* Code rapport avec info-bulle */
.dm-root .dm-code-rapport {
    cursor: help;
    border-bottom: 1px dashed var(--ax-text-light);
    position: relative;
    display: inline-flex;
    align-items: center;
    gap: 4px;
}
.dm-root .dm-code-rapport i { font-size: 10px; color: var(--ax-primary); }

/* Lien désactivé */
.dm-root a.disabled {
    pointer-events: none;
    cursor: default;
    color: var(--ax-text-muted) !important;
}

/* Colonne « Actions » : checkbox de sélection + boutons alignés à droite */
.dm-root .dm-actions-inline {
    display: inline-flex;
    align-items: center;
    justify-content: flex-end;
    gap: 6px;
    width: 100%;
}
.dm-root .dm-actions-inline md-checkbox {
    margin: 0;
    min-height: 20px;
    min-width: 20px;
}

/* Boutons texte compacts dans une ligne de tableau (Intégrer / Retirer) */
.dm-root .dm-row-btn,
md-dialog.dm-dialog .dm-row-btn {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    height: 26px;
    padding: 0 10px;
    border-radius: var(--ax-radius-xs);
    border: 1px solid transparent;
    font-size: 12px;
    font-weight: 700;
    cursor: pointer;
    transition: var(--ax-tr-fast);
    white-space: nowrap;
    line-height: 1;
}
.dm-root .dm-row-btn.dm-row-btn-success,
md-dialog.dm-dialog .dm-row-btn.dm-row-btn-success {
    background: var(--ax-success-light);
    color: var(--ax-success-text);
    border-color: var(--ax-success-border);
}
.dm-root .dm-row-btn.dm-row-btn-success:hover,
md-dialog.dm-dialog .dm-row-btn.dm-row-btn-success:hover { background: var(--ax-success-border); }
.dm-root .dm-row-btn.dm-row-btn-warning,
md-dialog.dm-dialog .dm-row-btn.dm-row-btn-warning {
    background: var(--ax-warning-light);
    color: var(--ax-warning-text);
    border-color: var(--ax-warning-border);
}
.dm-root .dm-row-btn.dm-row-btn-warning:hover,
md-dialog.dm-dialog .dm-row-btn.dm-row-btn-warning:hover { background: var(--ax-warning-border); }

/* ── Infobulles DM (uib-tooltip + tooltip-class="dm-tip", rendues dans <body>) ──
   CAUSE RACINE du clignotement des icônes : une infobulle centrée sur le dernier bouton
   d'une ligne est proche du bord droit ; en position absolue sa largeur « shrink-to-fit »
   est limitée par l'espace restant → le texte passe sur 2 lignes → la bulle s'allonge vers
   le bas et recouvre le bouton → mouseleave/mouseenter en boucle (clignotement, curseur qui
   alterne, clic impossible sur l'icône). Correctif : jamais de retour à la ligne, et la
   bulle ne capte jamais la souris. Scope : uniquement les bulles portant .dm-tip. */
.tooltip.dm-tip { pointer-events: none; white-space: nowrap; }
.tooltip.dm-tip .tooltip-inner { white-space: nowrap; max-width: none; padding: 5px 10px; font-size: 11.5px; border-radius: 6px; }

/* Variante pour infobulles à texte long (descriptions, libellés) : on garde
   pointer-events:none (anti-scintillement) mais on autorise le retour à la ligne
   avec une largeur max pour ne pas déborder de l'écran. */
.tooltip.dm-tip-desc { pointer-events: none; }
.tooltip.dm-tip-desc .tooltip-inner { white-space: normal; max-width: 280px; text-align: left; padding: 6px 10px; font-size: 11.5px; line-height: 1.35; border-radius: 6px; }

/* Boutons d'action : aucun déplacement au survol (évite la boucle survol/quitter
   → clignotement avec le tooltip, cf. correctif Liste Entreprises) */
.dm-root .ax-btn-group > .abtn,
md-dialog.dm-dialog .ax-btn-group > .abtn { transition: background .18s ease, color .18s ease, box-shadow .18s ease; }
.dm-root .ax-btn-group > .abtn:hover,
md-dialog.dm-dialog .ax-btn-group > .abtn:hover { transform: none !important; }
.dm-root .ax-btn-group > .abtn i,
md-dialog.dm-dialog .ax-btn-group > .abtn i { pointer-events: none; }
/* :active → scale(0.93) rétrécit le bouton sous le curseur : le mouseup tombe hors du
   bouton sur les bords → clic perdu / icône « difficile à sélectionner ». Aucun transform. */
.dm-root .ax-btn-group > .abtn:active,
md-dialog.dm-dialog .ax-btn-group > .abtn:active { transform: none !important; }
/* Groupe d'actions : hauteur stable (les boutons ng-show ne modifient pas la ligne) */
.dm-root .ax-actions-cell .ax-btn-group,
md-dialog.dm-dialog .ax-actions-cell .ax-btn-group { min-height: 28px; overflow: visible; }

/* Boutons d'action désactivés (ng-disabled) : retour visuel grisé */
.dm-root .abtn:disabled,
.dm-root .abtn[disabled],
md-dialog.dm-dialog .abtn:disabled,
md-dialog.dm-dialog .abtn[disabled] {
    opacity: 0.4;
    cursor: not-allowed;
    pointer-events: none;
    filter: grayscale(40%);
}

/* Bouton d'entête « retirer filtres » compact */
.dm-root .dm-head-tools {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: 6px;
    margin-top: 6px;
}
.dm-root .dm-head-tools md-checkbox { margin: 0; min-height: 20px; min-width: 20px; }

/* ═══════════════════════════════════════════════════════════════
   4. KPI (totaux en pied de tableau, non fixés)
   ═══════════════════════════════════════════════════════════════ */
.dm-root .ax-kpi-row.dm-kpi {
    position: static;
    flex-shrink: 0;
    border-top: 1px solid var(--ax-border);
    border-radius: 0 0 var(--ax-radius) var(--ax-radius);
    padding: 6px 16px;
    gap: 8px;
    flex-wrap: wrap;
}
.dm-root .dm-kpi .ax-badge-kpi { flex: 0 1 auto; min-width: 0; padding: 3px 14px; min-height: 28px; gap: 6px; transition: box-shadow .2s ease, border-color .2s ease; }
.dm-root .dm-kpi .ax-badge-kpi:hover { box-shadow: 0 4px 12px rgba(15, 23, 42, .10); border-color: rgba(63, 81, 181, .3); }
.dm-root .dm-kpi .ax-badge-kpi-label { white-space: nowrap; font-size: 12.5px; font-weight: 600; }
.dm-root .dm-kpi .ax-badge-kpi-value { font-size: 13.5px; font-weight: 700; }
.dm-root .dm-kpi .ax-badge-kpi-icon { width: 22px; height: 22px; font-size: 11px; border-radius: 5px; }

/* ═══════════════════════════════════════════════════════════════
   5. FORMULAIRES (fiche rubrique, modèles, familles)
   ═══════════════════════════════════════════════════════════════ */

/* ── Section filtres (ax-filter-section) : règles z-index design.md
      (dropdowns nya-bs-select jamais rognés) — scopées .dm-root ── */
.dm-root .ax-filter-section.open { overflow: visible !important; }
.dm-root .ax-filter-section .row,
.dm-root .ax-filter-section .form-group,
.dm-root .ax-filter-section [class*="col-md-"] { overflow: visible !important; }
.dm-root .ax-filter-section .nya-bs-select.open { z-index: 1040 !important; position: relative; overflow: visible !important; }
.dm-root .ax-filter-section .nya-bs-select > .dropdown-menu { z-index: 1050 !important; }
.dm-root .ax-filter-section .nya-bs-select.open > .dropdown-menu {
    position: absolute !important; z-index: 1050 !important;
    top: 100% !important; left: 0 !important; bottom: auto !important;
    min-width: 100%; width: max-content; max-width: 420px;
    padding: 4px; border-radius: 8px; border: 1px solid #dfe3ee;
    box-shadow: 0 8px 24px rgba(15, 23, 42, .12);
}
/* ⚠️ la liste interne (ul.dropdown-menu.inner) doit rester en flux : ne jamais la positionner */
.dm-root .nya-bs-select .dropdown-menu.inner {
    position: static !important; top: auto !important; left: auto !important;
    border: 0; box-shadow: none; padding: 0; margin: 0;
    /* sans attribut size, nya-bs-select ne pose jamais overflow-y:auto → la liste débordait du menu */
    max-height: 300px;
    overflow-y: auto !important;
    overflow-x: hidden;
}
.dm-root .nya-bs-select > .dropdown-menu > li > a,
.dm-root .nya-bs-select .dropdown-menu.inner > li > a {
    padding: 6px 10px; border-radius: 6px; font-size: 13px; line-height: 1.35;
    white-space: normal; word-break: break-word;
}
.dm-root .nya-bs-select .dropdown-menu li.selected > a,
.dm-root .nya-bs-select .dropdown-menu li > a:hover { background: #eef2ff; color: #3949ab; }
.dm-root .nya-bs-select .dropdown-menu .bs-searchbox { padding: 2px 2px 6px; }
.dm-root .nya-bs-select .dropdown-menu .bs-searchbox input.form-control {
    height: 30px !important; font-size: 13px !important; border: 1.5px solid #cbd5e1; border-radius: 6px !important;
}
.dm-root .nya-bs-select .dropdown-menu .bs-actionsbox .btn-group { display: flex; width: 100%; }
.dm-root .nya-bs-select .dropdown-menu .bs-actionsbox .btn-group > button {
    flex: 1 1 0; min-width: 0; font-size: 12px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
}
.dm-root .ax-filter-section .form-group { margin-bottom: 4px; }
.dm-root .ax-filter-section .dm-filter-row {
    margin: 0;
    display: flex;
    flex-wrap: wrap;
    align-items: flex-end;
    gap: 4px 0;
}
.dm-root .ax-filter-section .dm-filter-hint {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    height: 30px;
    font-size: 12.5px;
    font-weight: 600;
    color: var(--ax-text-sec);
    white-space: nowrap;
}
.dm-root .ax-filter-section .dm-filter-hint i { color: var(--ax-info); }
.dm-root .ax-filter-section .dm-segment { height: 30px; }
.dm-root .ax-filter-section .dm-segment label { height: 28px; }

/* ── Formulaires « grille Bootstrap » (row / col-md-* / form-group),
      même patron que Plan Comptable — harmonisation hauteur / bordure /
      typographie uniquement, la grille responsive reste native. ── */
.dm-root .dm-form .form-group { margin-bottom: 14px; position: relative; }
.dm-root .dm-form .form-group > label,
.dm-root .dm-form .form-group .control-label {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 4px;
    min-height: 20px;
    margin: 0 0 4px;
    font-size: 13.5px;
    font-weight: 700;
    color: #111827;
    line-height: 1.25;
}
.dm-root .dm-form .form-group > label > strong { font-weight: 700; }
.dm-root .dm-form .form-group > label > .dm-icon-btn { width: 20px; height: 20px; font-size: 10px; margin-left: 4px; }
.dm-root .dm-form .form-control {
    height: 34px;
    font-size: 13px;
    box-sizing: border-box;
    border: 1.5px solid var(--ax-border-input, #cbd5e1);
    border-radius: var(--ax-radius-sm, 8px);
    box-shadow: none;
    transition: border-color .15s ease, box-shadow .15s ease;
}
.dm-root .dm-form textarea.form-control { height: auto; min-height: 60px; }
.dm-root .dm-form .form-control:focus {
    border-color: var(--ax-border-focus, #2563eb);
    box-shadow: 0 0 0 2px rgba(37, 99, 235, .15);
    outline: none;
}
.dm-root .dm-form ol.nya-bs-select.form-control {
    height: 34px;
    padding: 0;
    width: 100%;
    margin: 0;
}
.dm-root .dm-form ol.nya-bs-select.form-control > .dropdown-toggle {
    height: 31px;
    line-height: 31px;
    padding: 0 26px 0 10px;
    font-size: 13px;
    border: none;
    background: transparent;
    box-shadow: none;
}
.dm-root .dm-form ol.nya-bs-select.form-control .filter-option {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}
.dm-root .dm-form ol.nya-bs-select > .dropdown-menu {
    z-index: 1050; min-width: 100%; width: max-content; max-width: 560px;
    padding: 4px; border-radius: 8px; border: 1px solid #dfe3ee;
    box-shadow: 0 8px 24px rgba(15, 23, 42, .12);
}
.dm-root .dm-form ol.nya-bs-select > .dropdown-menu > .dropdown-menu.inner { max-height: 300px !important; overflow-y: auto !important; }
.dm-root .dm-form ol.nya-bs-select.open { position: relative; z-index: 1040; }
.dm-root .dm-form .row, .dm-root .dm-form .form-group, .dm-root .dm-card, .dm-root .dm-card-body, .dm-root .dm-card-table { overflow: visible; }
.dm-root .dm-table-edit ol.nya-bs-select > .dropdown-menu > .dropdown-menu.inner { max-height: 300px !important; overflow-y: auto !important; }
.dm-root .dm-table-edit ol.nya-bs-select.open { position: relative; z-index: 1040; }
.dm-root .dm-form .input-group { display: flex; width: 100%; }
.dm-root .dm-form .input-group .form-control {
    flex: 1 1 auto;
    width: 1%;
    min-width: 0;
    border-right: none;
    border-radius: var(--ax-radius-sm, 8px) 0 0 var(--ax-radius-sm, 8px);
}
.dm-root .dm-form .input-group .input-group-addon,
.dm-root .dm-form .input-group .input-group-btn > .btn {
    height: 34px;
    display: inline-flex;
    align-items: center;
    padding: 0 10px;
    font-size: 12.5px;
    font-weight: 600;
    color: var(--ax-text-sec, #64748b);
    background: #f1f5f9;
    border: 1.5px solid var(--ax-border-input, #cbd5e1);
    border-left: none;
    border-radius: 0 var(--ax-radius-sm, 8px) var(--ax-radius-sm, 8px) 0;
    box-shadow: none;
    line-height: 1;
}
.dm-root .dm-form .input-group .input-group-btn { display: flex; width: auto; float: none; }
.dm-root .dm-form .input-group .input-group-btn > .btn { background: #fff; color: var(--ax-primary); cursor: pointer; }
.dm-root .dm-form .input-group .input-group-btn > .btn:hover { background: #f1f5f9; }
.dm-root .dm-form .input-group .input-group-btn > .btn[disabled] { opacity: .6; cursor: not-allowed; }
.dm-root .dm-form .form-group .help-block,
.dm-root .dm-form .form-group .dm-error {
    margin: 4px 0 0;
    font-size: 12px;
    font-weight: 500;
    color: var(--ax-danger, #dc2626);
    line-height: 1.3;
}
.dm-root .dm-form .form-group .text-danger { font-size: 12px; margin: 4px 0 0; }
.dm-root .dm-form .form-control[disabled],
.dm-root .dm-form .form-control[readonly] { background: #f8fafc; }
.dm-root .dm-form .row { margin-left: -8px; margin-right: -8px; }
.dm-root .dm-form .row > [class*="col-"] { padding-left: 8px; padding-right: 8px; }
.dm-root .dm-form .dm-form-inline-btn { margin-top: 22px; }
.dm-root .dm-form .dm-static-value {
    display: inline-flex;
    align-items: center;
    height: 34px;
}

.dm-root .ax-fiche-body-scroll form { display: block; }

/* Groupe large (comptes sélectionnés) */
.dm-root .ax-form-group-flex.dm-group-wide {
    flex: 2 1 420px;
    max-width: 720px;
}
.dm-root .ax-form-group-flex.dm-group-sm {
    flex: 0 1 200px;
    min-width: 160px;
}

/* Label avec action à droite (ex. bouton refresh comptes) */
.dm-root .dm-label-row {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 8px;
    margin-bottom: 6px;
}
.dm-root .dm-label-row label,
.dm-root .dm-form .form-group .dm-label-row label { margin: 0 !important; font-size: 13.5px; font-weight: 700; color: #111827; }

/* Messages de validation (remplace les <p style="color:#ed5466">) */
.dm-root .dm-error,
md-dialog.dm-dialog .dm-error {
    font-size: 12px;
    color: var(--ax-danger);
    font-weight: 500;
    margin: 4px 0 0;
    line-height: 1.3;
}
.dm-root .ax-form-group-flex > .dm-error {
    position: absolute;
    bottom: 0;
    left: 0;
    margin: 0;
}

/* État erreur (classes utilisées par ng-class dans les vues) */
.dm-root .has-error-form,
.dm-root .form-control.has-error-form,
.dm-root .ax-form-group-flex .form-control.has-error-form {
    border-color: var(--ax-danger) !important;
    box-shadow: 0 0 0 2px rgba(245, 39, 56, 0.12) !important;
}
.dm-root ol.nya-bs-select.form-controlPersonalized > button.dropdown-toggle {
    border-color: var(--ax-danger) !important;
    box-shadow: 0 0 0 2px rgba(245, 39, 56, 0.12) !important;
}
.dm-root .dm-picker.has-error-form {
    border-color: var(--ax-danger) !important;
}

/* nya-bs-select dans un formulaire fiche */
.dm-root .ax-form-group-flex ol.nya-bs-select,
.dm-root .ax-form-group-flex ol.nya-bs-select.form-control {
    width: 100%;
    height: auto;
    padding: 0;
    margin: 0;
    border: none;
    box-shadow: none;
    background: transparent;
}
.dm-root .ax-form-group-flex ol.nya-bs-select > button.dropdown-toggle {
    height: 34px;
    padding: 4px 30px 4px 12px;
    font-size: 13.5px;
    border-radius: var(--ax-radius-sm);
    border: 1.5px solid #cbd5e1;
    background: #fff;
    box-shadow: var(--ax-shadow-xs);
    transition: var(--ax-tr-fast);
}
.dm-root .ax-form-group-flex ol.nya-bs-select > button.dropdown-toggle:focus,
.dm-root .ax-form-group-flex ol.nya-bs-select.open > button.dropdown-toggle {
    border-color: var(--ax-border-focus);
    box-shadow: 0 0 0 2px rgba(37, 99, 235, 0.15);
    outline: none;
}
.dm-root .ax-form-group-flex ol.nya-bs-select .dropdown-menu { z-index: 1050; }

/* Bouton « sélecteur » ouvrant une popup (code rapport, comptes) */
.dm-root .dm-picker {
    width: 100%;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 8px;
    height: 34px;
    padding: 0 12px;
    border-radius: var(--ax-radius-sm);
    border: 1.5px solid #cbd5e1;
    background: #fff;
    color: var(--ax-text);
    font-size: 13.5px;
    text-align: left;
    cursor: pointer;
    box-shadow: var(--ax-shadow-xs);
    transition: var(--ax-tr-fast);
}
.dm-root .dm-picker:hover {
    border-color: var(--ax-primary);
    background: #fafbff;
}
.dm-root .dm-picker .dm-picker-placeholder { color: var(--ax-text-light); }
.dm-root .dm-picker .dm-picker-value { color: var(--ax-text); }
.dm-root .dm-picker .dm-picker-value strong { color: var(--ax-primary-dark); }
.dm-root .dm-picker > i.fa-external-link { color: var(--ax-primary); font-size: 12px; }
.dm-root .dm-picker .fa-check-circle { color: var(--ax-success); }

/* Sélecteur + bouton associé sur la même ligne (Code rapport + Imprimé, Comptes + Actualiser) */
.dm-root .dm-picker-row { display: flex; align-items: stretch; gap: 6px; }
.dm-root .dm-picker-row .dm-picker { flex: 1 1 auto; min-width: 0; }
.dm-root .dm-picker-row .ax-btn { height: 34px; flex-shrink: 0; white-space: nowrap; }

/* Panel des comptes sélectionnés (tags) */
.dm-root .dm-panel-comptes {
    margin-top: 8px;
    border: 1px solid var(--ax-border);
    border-radius: var(--ax-radius-sm);
    background: #fff;
    overflow: hidden;
}
.dm-root .dm-panel-comptes-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 5px 10px;
    background: var(--ax-primary-50);
    border-bottom: 1px solid var(--ax-primary-light);
    font-size: 11.5px;
    font-weight: 700;
    color: var(--ax-primary-dark);
}
.dm-root .dm-panel-comptes-header button {
    background: none;
    border: none;
    color: var(--ax-danger);
    font-size: 11px;
    font-weight: 600;
    cursor: pointer;
    padding: 2px 8px;
    border-radius: var(--ax-radius-xs);
    transition: var(--ax-tr-fast);
}
.dm-root .dm-panel-comptes-header button:hover { background: #fee2e2; }
.dm-root .dm-panel-comptes-body {
    max-height: 120px;
    overflow-y: auto;
    padding: 6px 8px;
    display: flex;
    flex-wrap: wrap;
    gap: 4px;
}
.dm-root .dm-compte-tag {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    background: #fff;
    border: 1px solid var(--ax-border-input);
    border-radius: var(--ax-radius-xs);
    padding: 2px 8px;
    font-size: 11.5px;
    transition: var(--ax-tr-fast);
    max-width: 100%;
}
.dm-root .dm-compte-tag:hover { border-color: var(--ax-primary); }
.dm-root .dm-compte-tag strong { color: var(--ax-primary-dark); }
.dm-root .dm-compte-tag small {
    color: var(--ax-text-sec);
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    max-width: 220px;
}
.dm-root .dm-compte-tag .dm-remove-btn {
    cursor: pointer;
    color: var(--ax-danger);
    font-size: 10px;
    margin-left: 2px;
}
.dm-root .dm-compte-tag .dm-remove-btn:hover { color: #b71c1c; }

/* Bouton icône rond à côté d'un label (refresh comptes) */
.dm-root .dm-icon-btn {
    width: 24px;
    height: 24px;
    border-radius: 50%;
    border: 1px solid var(--ax-success-border);
    background: var(--ax-success-light);
    color: var(--ax-success-text);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-size: 11px;
    cursor: pointer;
    padding: 0;
    transition: var(--ax-tr-fast);
}
.dm-root .dm-icon-btn:hover { background: var(--ax-success-border); }

/* Carte (bloc) de formulaire : entête + contenu */
.dm-root .dm-card {
    background: #fff;
    border: 1px solid var(--ax-border);
    border-radius: var(--ax-radius-sm);
    box-shadow: var(--ax-shadow-xs);
    margin-bottom: 16px;
    overflow: visible;
}
/* Cartes « écriture » (Comptabiliser) : séparation nette entre écritures */
.dm-root .dm-card.dm-card-ecriture {
    margin-top: 22px;
    margin-bottom: 22px;
    border-left: 4px solid var(--ax-primary);
    box-shadow: 0 2px 8px rgba(15, 23, 42, .06);
}
.dm-root .dm-card.dm-card-ecriture:first-of-type { margin-top: 0; }
.dm-root .dm-card.dm-card-ecriture-1 { border-left-color: #00897b; }
.dm-root .dm-card.dm-card-ecriture-2 { border-left-color: #e67e22; }
.dm-root .dm-card.dm-card-ecriture-3 { border-left-color: #9c27b0; }
.dm-root .dm-card.dm-card-ecriture .dm-card-header { background: #eef2ff; border-bottom: 1px solid #c7d2fe; padding: 11px 16px; }
.dm-root .dm-card.dm-card-ecriture-1 .dm-card-header { background: #e0f2f1; border-bottom-color: #b2dfdb; }
.dm-root .dm-card.dm-card-ecriture-2 .dm-card-header { background: #fff3e6; border-bottom-color: #fed7aa; }
.dm-root .dm-card.dm-card-ecriture-3 .dm-card-header { background: #f3e5f5; border-bottom-color: #e1bee7; }
.dm-root .dm-card-num {
    width: 22px; height: 22px; border-radius: 50%;
    background: var(--ax-primary); color: #fff;
    font-size: 12px; font-weight: 700;
    display: inline-flex; align-items: center; justify-content: center;
    margin-right: 4px; flex-shrink: 0;
}
.dm-root .dm-card-ecriture-1 .dm-card-num { background: #00897b; }
.dm-root .dm-card-ecriture-2 .dm-card-num { background: #e67e22; }
.dm-root .dm-card-ecriture-3 .dm-card-num { background: #9c27b0; }
.dm-root .dm-card-code {
    margin-left: 8px; padding: 2px 8px; border-radius: 10px;
    background: rgba(255, 255, 255, .8); border: 1px solid rgba(15, 23, 42, .1);
    font-size: 11px; font-weight: 600; color: var(--ax-text-sec); letter-spacing: .2px;
}
.dm-root .dm-card-meta { font-size: 12px; font-weight: 600; color: var(--ax-text-sec); white-space: nowrap; display: inline-flex; align-items: center; gap: 10px; }
/* Résumé des totaux dans l'entête quand l'écriture est repliée */
.dm-root .dm-card-sum { display: inline-flex; gap: 6px; margin-right: 6px; }
.dm-root .dm-card-sum > span { padding: 2px 8px; border-radius: 10px; font-size: 11.5px; font-weight: 700; font-variant-numeric: tabular-nums; background: #fff; border: 1px solid rgba(15, 23, 42, .1); }
.dm-root .dm-card-sum-d { color: #1a9d52; }
.dm-root .dm-card-sum-c { color: #d63031; }
.dm-root .dm-card-sum-s { color: #7b1fa2; }
/* Accordéon générique : ouverture / fermeture fluide sans connaître la hauteur (grid 1fr → 0fr) */
.dm-root .dm-acc-body {
    display: grid;
    grid-template-rows: 1fr;
    transition: grid-template-rows .32s cubic-bezier(.4, 0, .2, 1), opacity .25s ease;
    opacity: 1;
}
.dm-root .dm-acc-body > .dm-acc-inner { min-height: 0; overflow: hidden; }
.dm-root .dm-acc-closed > .dm-acc-body { grid-template-rows: 0fr; opacity: 0; }
.dm-root .dm-acc-closed > .dm-acc-body > .dm-acc-inner { overflow: hidden; }
.dm-root .dm-card-chevron,
.dm-root .dm-tva-chevron { transition: transform .3s cubic-bezier(.4, 0, .2, 1); }
.dm-root .dm-acc-closed .dm-card-chevron,
.dm-root .dm-acc-closed .dm-tva-chevron { transform: rotate(-180deg); }
/* Entête cliquable = accordéon (replier / déplier l'écriture) */
.dm-root .dm-card-header.dm-card-header-toggle { cursor: pointer; user-select: none; }
.dm-root .dm-card-header.dm-card-header-toggle:hover { filter: brightness(.98); }
.dm-root .dm-card-chevron {
    width: 22px; height: 22px; border-radius: 50%;
    display: inline-flex; align-items: center; justify-content: center;
    background: #fff; border: 1px solid rgba(15, 23, 42, .12);
    color: var(--ax-text-sec); font-size: 10px;
}
.dm-root .dm-card.dm-card-ecriture .dm-card-footer .ax-kpi-row { border-top: none; }
.dm-root .dm-card-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    padding: 10px 16px;
    border-bottom: 1px solid var(--ax-border);
    background: #f9fafc;
    border-radius: var(--ax-radius-sm) var(--ax-radius-sm) 0 0;
}
.dm-root .dm-card-title {
    display: flex;
    align-items: center;
    gap: 8px;
    font-size: 13.5px;
    font-weight: 700;
    color: var(--ax-text-strong);
}
.dm-root .dm-card-title i { color: var(--ax-primary); }
.dm-root .dm-card-body { padding: 16px 16px 4px; }
/* Carte compacte sans entête (ex. date d'opération) : gain de place vertical */
.dm-root .dm-card.dm-card-compact { margin-bottom: 12px; background: #f9fafc; }
.dm-root .dm-card-body.dm-card-body-compact { padding: 10px 16px 0; }
.dm-root .dm-card-body.dm-card-body-compact .form-group { margin-bottom: 10px; }
.dm-root .dm-card-body.dm-card-body-compact .form-group { display: flex; align-items: center; flex-wrap: wrap; gap: 4px 12px; width: auto; float: none; }
.dm-root .dm-card-body.dm-card-body-compact .form-group > label { margin: 0; min-height: 0; }
.dm-root .dm-card-body.dm-card-body-compact .form-group > .input-group { width: 220px !important; flex: 0 0 220px; }
.dm-root .dm-card-body.dm-card-body-compact .form-group > .help-block { width: 100%; margin: 0; }
.dm-root .dm-card-body .ax-form-row-flex { margin-bottom: 8px; }
.dm-root .dm-card-table { padding: 0; }
.dm-root .dm-card-footer {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 8px 16px;
    border-top: 1px solid var(--ax-border);
    background: #f9fafc;
    border-radius: 0 0 var(--ax-radius-sm) var(--ax-radius-sm);
}
.dm-root .dm-card-footer .ax-kpi-row {
    padding: 0;
    border: none;
    background: transparent;
    min-height: 0;
    width: 100%;
    gap: 8px;
}
.dm-root .dm-card-actions { display: flex; align-items: center; gap: 6px; }

/* Lignes vides dans une carte */
.dm-root .dm-check-empty {
    padding: 14px 16px;
    color: var(--ax-text-sec);
    font-size: 13px;
    font-style: italic;
}

/* Options nya-bs-select (rubriques spéciales hardcodées, ex. Report du mois précédent) */
.dm-root .wrap-text {
    display: block;
    white-space: normal;
    word-wrap: break-word;
}
.dm-root .rubrique-speciale { font-weight: 700; }
.dm-root .rubrique-speciale-selected .dropdown-toggle .filter-option,
.dm-root .rubrique-speciale-selected .filter-option { font-weight: 700; }

/* Ligne d'aide */
.dm-root .dm-hint {
    font-size: 12px;
    color: var(--ax-text-sec);
    display: flex;
    align-items: center;
    gap: 6px;
}
.dm-root .dm-hint i { color: var(--ax-info); }

/* Bandeau d'information (exercice clôturé, aucun résultat…) */
.dm-root .dm-notice {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 9px 14px;
    border-radius: var(--ax-radius-sm);
    font-size: 13px;
    font-weight: 500;
    margin-bottom: 14px;
}
.dm-root .dm-notice-warning { background: var(--ax-warning-light); border: 1px solid var(--ax-warning-border); color: var(--ax-warning-text); }
.dm-root .dm-notice-info    { background: var(--ax-info-light);    border: 1px solid var(--ax-info-border);    color: var(--ax-info-text); }
.dm-root .dm-notice-danger  { background: #fee2e2;                 border: 1px solid var(--ax-danger-border);  color: #991b1b; }

/* Inputs date : même hauteur que les inputs (34px) */
.dm-root .ax-form-group-flex .input-group .input-group-btn .btn {
    height: 34px;
}

/* ── md-checkbox — style V2 du design system (carré 18px, dégradé indigo),
      scopé DM : écrans + popups ── */
.dm-root md-checkbox,
md-dialog.dm-dialog md-checkbox {
    margin: 0;
    min-height: 22px;
    min-width: 22px;
    cursor: pointer;
    display: inline-flex;
    align-items: center;
}
.dm-root md-checkbox .md-container, .dm-root md-checkbox ._md-container,
md-dialog.dm-dialog md-checkbox .md-container, md-dialog.dm-dialog md-checkbox ._md-container {
    width: 18px; height: 18px; top: 50%; transform: translateY(-50%); position: absolute; left: 0;
}
.dm-root md-checkbox .md-icon, .dm-root md-checkbox ._md-icon,
md-dialog.dm-dialog md-checkbox .md-icon, md-dialog.dm-dialog md-checkbox ._md-icon {
    width: 18px; height: 18px; border-radius: 5px;
    border: 1.5px solid #CBD5E1; background: #fff;
    transition: all .2s cubic-bezier(.4, 0, .2, 1);
    box-shadow: 0 1px 2px rgba(0,0,0,.04);
}
.dm-root md-checkbox:not([disabled]):hover .md-icon, .dm-root md-checkbox:not([disabled]):hover ._md-icon,
md-dialog.dm-dialog md-checkbox:not([disabled]):hover .md-icon, md-dialog.dm-dialog md-checkbox:not([disabled]):hover ._md-icon {
    border-color: var(--ax-primary); box-shadow: 0 0 0 3px rgba(63, 81, 181, .10); transform: none;
}
.dm-root md-checkbox.md-checked .md-icon, .dm-root md-checkbox.md-checked ._md-icon,
md-dialog.dm-dialog md-checkbox.md-checked .md-icon, md-dialog.dm-dialog md-checkbox.md-checked ._md-icon {
    background: linear-gradient(135deg, var(--ax-primary) 0%, var(--ax-primary-dark) 100%);
    border-color: var(--ax-primary);
    box-shadow: 0 1px 3px rgba(63, 81, 181, .25);
    animation: ax-check-pop .22s cubic-bezier(.4, 0, .2, 1);
}
.dm-root md-checkbox.md-checked .md-icon:after, .dm-root md-checkbox.md-checked ._md-icon:after,
md-dialog.dm-dialog md-checkbox.md-checked .md-icon:after, md-dialog.dm-dialog md-checkbox.md-checked ._md-icon:after {
    position: absolute; left: 50%; top: 45%; width: 5px; height: 10px; margin: 0;
    border-color: #fff; border-width: 0 2px 2px 0; border-style: solid;
    transform: translate(-50%, -55%) rotate(45deg);
}
.dm-root md-checkbox .md-label, .dm-root md-checkbox ._md-label,
md-dialog.dm-dialog md-checkbox .md-label, md-dialog.dm-dialog md-checkbox ._md-label {
    margin-left: 26px; font-size: 13px; font-weight: 600; color: var(--ax-text-body);
}
.dm-root md-checkbox .md-ripple-container, md-dialog.dm-dialog md-checkbox .md-ripple-container { display: none !important; }
.dm-root md-checkbox[disabled] .md-icon, md-dialog.dm-dialog md-checkbox[disabled] .md-icon { background: #f1f5f9; border-color: #e2e8f0; }

/* Cases à cocher natives (popups) : même gabarit */
md-dialog.dm-dialog input[type="checkbox"] {
    width: 18px; height: 18px; accent-color: var(--ax-primary); cursor: pointer; margin: 0;
}

/* Bouton PDF « imprimé » (icône seule, rouge) collé au picker Code Rapport */
.dm-root .dm-pdf-btn {
    flex-shrink: 0;
    width: 38px;
    height: 34px;
    padding: 0;
    border: 1px solid #c62828;
    border-radius: var(--ax-radius-sm, 8px);
    background: #e53935;
    color: #fff;
    font-size: 15px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    box-shadow: 0 1px 2px rgba(198, 40, 40, .25);
    transition: background .15s ease, box-shadow .15s ease;
}
.dm-root .dm-pdf-btn:hover { background: #c62828; box-shadow: 0 2px 6px rgba(198, 40, 40, .35); }
.dm-root .dm-pdf-btn:focus { outline: none; box-shadow: 0 0 0 3px rgba(229, 57, 53, .25); }
.dm-root .dm-pdf-btn i { pointer-events: none; }

/* Alignement des groupes en haut (le design system aligne en bas, ce qui
   décale les champs quand un groupe contient un panel de comptes) */
.dm-root .ax-form-row-flex { align-items: flex-start; }

/* Header de fiche : actions poussées à droite */
.dm-root .ax-fiche-header .ax-header-right { margin-left: auto; }
.dm-root .ax-fiche-header .ax-fiche-title .ax-btn { margin-right: 6px; }

/* ═══════════════════════════════════════════════════════════════
   6. DUPLICATION DM (copie config) — progression
   ═══════════════════════════════════════════════════════════════ */
.dm-root .dm-dupl-intro {
    font-size: 13.5px;
    color: var(--ax-text-body);
    margin-bottom: 16px;
}
.dm-root .dm-dupl-intro strong { color: var(--ax-primary-dark); }
.dm-root .dm-dupl-arrow {
    padding-top: 28px;
    text-align: center;
    color: var(--ax-text-light);
    font-size: 20px;
}
.dm-root .dm-dupl-form ol.nya-bs-select { width: 100%; }
.dm-root .dm-dupl-form ol.nya-bs-select > button.dropdown-toggle {
    height: 34px;
    padding: 4px 30px 4px 12px;
    font-size: 13.5px;
    border-radius: var(--ax-radius-sm);
    border: 1.5px solid #cbd5e1;
    background: #fff;
}
.dm-root .dm-dupl-error {
    color: var(--ax-danger);
    font-weight: 700;
    font-size: 13px;
    margin: 6px 0 12px;
}
.dm-root .dm-dupl-error:empty { display: none; }

.dm-root .dm-progress-card {
    border: 1px solid var(--ax-border);
    border-radius: var(--ax-radius-sm);
    padding: 14px 16px;
    background: #fff;
    box-shadow: var(--ax-shadow-xs);
    transition: var(--ax-tr);
    max-width: 900px;
}
.dm-root .dm-progress-card.dm-clickable { cursor: pointer; }
.dm-root .dm-progress-card.dm-clickable:hover {
    box-shadow: var(--ax-shadow-md);
    border-color: var(--ax-primary);
}
.dm-root .dm-progress-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    margin-bottom: 8px;
    flex-wrap: wrap;
}
.dm-root .dm-progress-title {
    display: flex;
    align-items: center;
    gap: 8px;
    font-size: 14px;
    font-weight: 700;
    color: var(--ax-text-strong);
}
.dm-root .dm-progress-title i { color: var(--ax-primary); }
.dm-root .dm-progress-stats {
    font-size: 12.5px;
    color: var(--ax-text-sec);
    display: flex;
    align-items: center;
    gap: 10px;
    flex-wrap: wrap;
}
.dm-root .dm-progress-stats .dm-ok { color: var(--ax-success-text); font-weight: 600; }
.dm-root .dm-progress-stats .dm-ko { color: #c62828; font-weight: 600; }
.dm-root .dm-progress-link {
    color: var(--ax-primary);
    font-weight: 600;
    cursor: pointer;
    text-decoration: underline;
}
.dm-root .dm-progress-bar {
    height: 8px;
    background: #eceff1;
    border-radius: 4px;
    overflow: hidden;
}
.dm-root .dm-progress-bar > div {
    height: 100%;
    background: linear-gradient(90deg, var(--ax-primary), #6366f1);
    transition: width 0.4s;
}
.dm-root .dm-progress-foot {
    margin-top: 6px;
    font-size: 11.5px;
    color: var(--ax-text-light);
}

/* ═══════════════════════════════════════════════════════════════
   7. ÉTATS — PDF, RÉCAP, TVA MAROC
   ═══════════════════════════════════════════════════════════════ */
.dm-root .dm-pdf-zone {
    flex: 1;
    min-height: 0;
    display: flex;
    flex-direction: column;
    background: #FBF8F8;
    padding: 6px;
}
/* Section filtres compacte (États / Récap) : le PDF garde toute la place */
.dm-root .ax-filter-section.dm-filter-compact { padding: 8px 22px; }
.dm-root .ax-filter-section.dm-filter-compact .dm-filter-row { align-items: center; }
.dm-root .ax-filter-section.dm-filter-compact .form-group {
    margin-bottom: 0;
    display: flex;
    align-items: center;
    gap: 8px;
}
.dm-root .ax-filter-section.dm-filter-compact .form-group > .ax-label { margin: 0; white-space: nowrap; }
.dm-root .ax-filter-section.dm-filter-compact .form-group > ol.nya-bs-select { flex: 1; }
/* le segment ne s'étire pas (sinon une « 3e case » vide apparaît) : ses boutons se partagent sa largeur */
.dm-root .ax-filter-section.dm-filter-compact .form-group > .dm-segment { flex: 0 0 auto; }
.dm-root .dm-pdf-zone iframe {
    flex: 1;
    width: 100%;
    border: none;
    border-radius: 12px;
    background: #fff;
    box-shadow: 0 6px 16px rgba(0, 0, 0, 0.06);
}

/* Segmented control (Principale / Rectificatif) */
.dm-root .dm-segment {
    display: inline-flex;
    border: 1px solid var(--ax-border-input);
    border-radius: var(--ax-radius-xs);
    overflow: hidden;
    background: #fff;
}
.dm-root .dm-segment label,
.dm-root .dm-segment .dm-segment-item {
    margin: 0;
    padding: 0 14px;
    height: 30px;
    flex: 1 1 auto;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    white-space: nowrap;
    font-size: 12.5px;
    font-weight: 600;
    color: var(--ax-text-sec);
    cursor: pointer;
    border-right: 1px solid var(--ax-border-input);
    transition: var(--ax-tr-fast);
    user-select: none;
}
.dm-root .dm-segment label:last-child,
.dm-root .dm-segment .dm-segment-item:last-child { border-right: none; }
.dm-root .dm-segment label:hover { background: #f8fafc; color: var(--ax-primary-dark); }
.dm-root .dm-segment label.active {
    background: var(--ax-primary);
    color: #fff;
}
.dm-root .dm-segment input[type="radio"] {
    position: absolute;
    opacity: 0;
    width: 0;
    height: 0;
    margin: 0;
}

/* Récap DM (tableau bilingue) */
.dm-root .dm-recap-scroll {
    flex: 1;
    min-height: 0;
    overflow-y: auto;
    background: #FBF8F8;
    padding: 10px 14px;
}
.dm-root .dm-kpi.dm-kpi-total .ax-badge-kpi { min-width: 240px; padding: 4px 18px; }
.dm-root .dm-kpi.dm-kpi-total .ax-badge-kpi-label { font-size: 13px; }
.dm-root .dm-kpi.dm-kpi-total .ax-badge-kpi-value { font-size: 14.5px; }
.dm-root .dm-recap-table {
    width: 100%;
    border-collapse: separate;
    border-spacing: 0;
    background: #fff;
    border: 1px solid var(--ax-border);
    border-radius: var(--ax-radius-sm);
    overflow: hidden;
    font-size: 15px;
}
.dm-root .dm-recap-table thead th {
    padding: 11px 14px;
    font-size: 12.5px;
    font-weight: 700;
    color: #475569;
    text-transform: uppercase;
    letter-spacing: 0.6px;
    background: #f9fafc;
    border-bottom: 2px solid var(--ax-border);
    text-align: left;
}
.dm-root .dm-recap-table thead th.dm-num { text-align: right; }
.dm-root .dm-recap-table thead th.dm-ar { text-align: right; text-transform: none; letter-spacing: 0; font-size: 14px; }
.dm-root .dm-recap-table tbody td {
    padding: 0 16px;
    height: 42px;
    border-bottom: 1px solid #dfe3ee;
    color: var(--ax-text-body);
    vertical-align: middle;
}
.dm-root .dm-recap-table tbody tr:nth-child(even) td { background: var(--ax-row-even); }
.dm-root .dm-recap-table tbody tr:hover td { background: var(--ax-row-hover); }
.dm-root .dm-recap-table tbody td.dm-num { text-align: right; font-variant-numeric: tabular-nums; font-weight: 600; }
.dm-root .dm-recap-table tbody td.dm-ar { text-align: right; direction: rtl; }
.dm-root .dm-recap-table tbody td.dm-sub { padding-left: 34px; color: var(--ax-text-sec); }
.dm-root .dm-recap-table tbody td.dm-sub-ar { padding-right: 34px; }
.dm-root .dm-recap-total {
    display: flex;
    justify-content: center;
    padding: 12px 0 4px;
}
.dm-root .dm-recap-empty {
    flex: 1;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 15px;
    font-weight: 600;
    color: var(--ax-text-sec);
    padding: 40px;
}

/* État TVA Maroc */
.dm-root .dm-tva-scroll {
    flex: 1;
    min-height: 0;
    overflow-y: auto;
    overflow-x: hidden;
    background: #FBF8F8;
    padding: 14px 20px;
}
.dm-root .dm-tva-synthese {
    display: flex;
    gap: 10px;
    flex-wrap: wrap;
    margin-bottom: 16px;
    padding: 4px 4px 6px;
}
.dm-root .dm-tva-carte {
    flex: 1 1 170px;
    border: 1px solid var(--ax-border);
    border-radius: var(--ax-radius-sm);
    padding: 10px 14px;
    background: #fff;
    box-shadow: var(--ax-shadow-xs);
    cursor: default;
    transform: scale(1);
    transition: transform .22s cubic-bezier(.4, 0, .2, 1), box-shadow .22s ease, border-color .22s ease;
    will-change: transform;
}
/* Survol : léger zoom + élévation (interface vive) ; scale ≤ 1.03 et padding latéral sur la rangée
   pour ne jamais créer de scroll horizontal parasite dans .dm-tva-scroll */
.dm-root .dm-tva-carte:hover {
    transform: scale(1.03);
    box-shadow: 0 8px 22px rgba(15, 23, 42, .12);
    border-color: rgba(63, 81, 181, .35);
    z-index: 1;
}
.dm-root .dm-tva-carte.due:hover    { border-color: #f04438; box-shadow: 0 8px 22px rgba(240, 68, 56, .18); }
.dm-root .dm-tva-carte.credit:hover { border-color: #12b76a; box-shadow: 0 8px 22px rgba(18, 183, 106, .18); }
.dm-root .dm-tva-carte-valeur { transition: transform .22s cubic-bezier(.4, 0, .2, 1); transform-origin: left center; }
.dm-root .dm-tva-carte:hover .dm-tva-carte-valeur { transform: scale(1.04); }
.dm-root .dm-tva-carte-libelle {
    font-size: 11px;
    text-transform: uppercase;
    letter-spacing: 0.4px;
    color: var(--ax-text-sec);
    margin-bottom: 4px;
    font-weight: 600;
}
.dm-root .dm-tva-carte-valeur {
    font-size: 19px;
    font-weight: 700;
    color: var(--ax-text-strong);
    white-space: nowrap;
    font-variant-numeric: tabular-nums;
}
.dm-root .dm-tva-carte.due   { background: #fef3f2; border-color: #fda29b; }
.dm-root .dm-tva-carte.due .dm-tva-carte-valeur { color: #b42318; }
.dm-root .dm-tva-carte.credit { background: #ecfdf3; border-color: #6ce9a6; }
.dm-root .dm-tva-carte.credit .dm-tva-carte-valeur { color: #05603a; }

.dm-root .dm-tva-section {
    margin-bottom: 16px;
    background: #fff;
    border: 1px solid var(--ax-border);
    border-radius: var(--ax-radius-sm);
    overflow: hidden;
    box-shadow: var(--ax-shadow-xs);
}
.dm-root .dm-tva-section-titre {
    display: flex;
    align-items: center;
    gap: 8px;
    background: #f9fafc;
    border-left: 3px solid var(--ax-primary);
    padding: 8px 12px;
    font-weight: 700;
    color: var(--ax-text-strong);
    font-size: 13.5px;
}
.dm-root .dm-tva-lettre {
    display: inline-block;
    min-width: 22px;
    text-align: center;
    background: var(--ax-primary);
    color: #fff;
    border-radius: 4px;
    font-size: 11px;
    padding: 1px 6px;
}
.dm-root .dm-tva-section-titre.dm-tva-toggle { cursor: pointer; user-select: none; }
.dm-root .dm-tva-section-titre.dm-tva-toggle:hover { background: #eef2ff; }
.dm-root .dm-tva-chevron {
    width: 22px; height: 22px; border-radius: 50%; flex-shrink: 0;
    display: inline-flex; align-items: center; justify-content: center;
    background: #fff; border: 1px solid rgba(15, 23, 42, .12);
    color: var(--ax-text-sec); font-size: 10px; margin-left: 10px;
}
.dm-root .dm-tva-section.dm-acc-closed { box-shadow: none; }
.dm-root .dm-tva-section.dm-acc-closed .dm-tva-section-titre { border-bottom: none; }
.dm-root .dm-tva-sum { display: inline-flex; gap: 6px; margin-left: 10px; }
.dm-root .dm-tva-sum > span { padding: 1px 8px; border-radius: 10px; font-size: 11px; font-weight: 700; background: #fff; border: 1px solid rgba(15, 23, 42, .1); color: var(--ax-text-body); font-variant-numeric: tabular-nums; }
.dm-root .dm-tva-compteur {
    margin-left: auto;
    font-weight: 500;
    font-size: 12px;
    color: var(--ax-text-sec);
}
.dm-root .dm-tva-sous-titre {
    padding: 5px 12px;
    font-size: 12px;
    font-weight: 700;
    color: var(--ax-text-sec);
    background: #fbfbfd;
    border-top: 1px solid var(--ax-border);
    border-bottom: 1px solid var(--ax-border);
}
.dm-root .dm-tva-table { width: 100%; border-collapse: collapse; }
.dm-root .dm-tva-table th {
    font-size: 11.5px;
    text-transform: uppercase;
    letter-spacing: 0.4px;
    color: #475569;
    font-weight: 700;
    padding: 6px 12px;
    border-bottom: 1px solid var(--ax-border);
    text-align: right;
    background: #f9fafc;
}
.dm-root .dm-tva-table th.g, .dm-root .dm-tva-table td.g { text-align: left; }
.dm-root .dm-tva-table td {
    padding: 6px 12px;
    border-bottom: 1px solid #eef0f6;
    text-align: right;
    font-size: 13.5px;
    color: var(--ax-text-body);
    font-variant-numeric: tabular-nums;
}
.dm-root .dm-tva-table tr:hover td { background: var(--ax-row-hover); }
.dm-root .dm-tva-code {
    display: inline-block;
    min-width: 30px;
    font-weight: 700;
    color: var(--ax-primary-dark);
}
.dm-root .dm-tva-vide td { color: var(--ax-text-light); }
.dm-root .dm-tva-total td {
    font-weight: 700;
    background: #f9fafc;
    border-top: 1px solid var(--ax-border);
}
/* Select natif compact dans la section filtres (ex. période TVA Maroc) */
.dm-root .ax-filter-section select.form-control.dm-select-compact {
    height: 30px !important;
    min-height: 30px;
    padding: 0 28px 0 10px;
    font-size: 12.5px;
    font-weight: 600;
    border-radius: 6px;
    border: 1px solid var(--ax-border-input);
    background: #fff;
    color: var(--ax-text);
    min-width: 200px;
}
.dm-root .dm-tva-carte-libelle i { color: var(--ax-primary); margin-right: 4px; }
.dm-root .dm-tva-carte.due .dm-tva-carte-libelle i { color: #b42318; }
.dm-root .dm-tva-carte.credit .dm-tva-carte-libelle i { color: #05603a; }
.dm-root .dm-tva-compteur i { color: var(--ax-success); margin-right: 2px; }
.dm-root .dm-header-meta .dm-badge { margin-left: 4px; }
.dm-root .dm-tva-toolbar md-checkbox { margin: 0; min-height: 20px; }
.dm-root .dm-tva-toolbar md-checkbox .md-label {
    font-size: 12.5px;
    font-weight: 600;
    color: var(--ax-text-body);
    margin-left: 26px;
}

/* ═══════════════════════════════════════════════════════════════
   8. MAPPING TÉLÉDÉCLARATION
   ═══════════════════════════════════════════════════════════════ */
.dm-root .dm-mapping-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(340px, 1fr));
    gap: 16px;
    max-width: 1100px;
}
.dm-root .dm-info-list { display: flex; flex-direction: column; gap: 8px; }
.dm-root .dm-info-row {
    display: flex;
    align-items: center;
    gap: 10px;
    font-size: 13px;
}
.dm-root .dm-info-label {
    font-weight: 700;
    color: var(--ax-text-sec);
    min-width: 170px;
}
.dm-root .dm-info-value {
    color: var(--ax-text);
    word-break: break-all;
}
.dm-root .dm-upload-zone {
    border: 2px dashed var(--ax-border-input);
    border-radius: var(--ax-radius-sm);
    padding: 24px;
    text-align: center;
    background: #f9fafc;
    transition: var(--ax-tr-fast);
    margin-bottom: 12px;
}
.dm-root .dm-upload-zone:hover { border-color: var(--ax-primary); background: #fafbff; }
.dm-root .dm-upload-zone > i.fa-cloud-upload {
    font-size: 38px;
    color: var(--ax-text-light);
    margin-bottom: 8px;
    display: block;
}
.dm-root .dm-upload-zone p { margin: 0 0 12px; color: var(--ax-text-sec); font-size: 13px; }
.dm-root .dm-upload-zone label.ax-btn { margin: 0; }
.dm-root .dm-file-name {
    margin-top: 10px;
    font-size: 12.5px;
    color: var(--ax-text-body);
    font-weight: 600;
}
.dm-root .dm-file-name i { color: var(--ax-success-text); }
.dm-root .dm-loading {
    text-align: center;
    padding: 40px;
    color: var(--ax-text-sec);
}
.dm-root .dm-loading i { color: var(--ax-primary); margin-bottom: 8px; }

/* ═══════════════════════════════════════════════════════════════
   9. DIALOGS (md-dialog ouverts sur body → scope md-dialog.dm-dialog)
   ═══════════════════════════════════════════════════════════════ */
md-dialog.dm-dialog {
    max-height: unset !important;
    max-width: unset !important;
    font-family: var(--ax-font, 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif);
    display: flex;
    flex-direction: column;
    border-radius: 14px;
    overflow: hidden;
    box-shadow: 0 25px 60px rgba(0, 0, 0, 0.18), 0 0 0 1px rgba(0, 0, 0, 0.05);
    background: #fff;
}
md-dialog.dm-dialog *:not(i):not([class*="glyphicon"]):not(.material-icons) {
    font-family: var(--ax-font, 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif);
}
md-dialog.dm-dialog > form { display: flex; flex-direction: column; flex: 1; min-height: 0; }

/* Header dégradé (même vocabulaire que fdDialog-header / duplDm-header) */
md-dialog.dm-dialog .dm-dialog-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    padding: 12px 20px;
    background: linear-gradient(135deg, #3949AB 0%, #5C6BC0 50%, #7986CB 100%);
    color: #fff;
    flex-shrink: 0;
    position: relative;
    overflow: hidden;
}
md-dialog.dm-dialog .dm-dialog-header::before {
    content: '';
    position: absolute;
    top: -50%;
    right: -20%;
    width: 300px;
    height: 300px;
    background: radial-gradient(circle, rgba(255,255,255,0.08) 0%, transparent 70%);
    pointer-events: none;
}
md-dialog.dm-dialog .dm-dialog-header.dm-dialog-header-success {
    background: linear-gradient(135deg, #1b5e20 0%, #2e7d32 60%, #43a047 100%);
}
md-dialog.dm-dialog .dm-dialog-header.dm-dialog-header-warning {
    background: linear-gradient(135deg, #b45309 0%, #d97706 60%, #f59e0b 100%);
}
md-dialog.dm-dialog .dm-dialog-header.dm-dialog-header-danger {
    background: linear-gradient(135deg, #991b1b 0%, #c62828 60%, #e53935 100%);
}
md-dialog.dm-dialog .dm-dialog-header-left {
    display: flex;
    align-items: center;
    gap: 14px;
    z-index: 1;
    min-width: 0;
}
md-dialog.dm-dialog .dm-dialog-header-icon {
    width: 34px;
    height: 34px;
    border-radius: 10px;
    background: rgba(255, 255, 255, 0.18);
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 16px;
    color: #fff;
    flex-shrink: 0;
}
md-dialog.dm-dialog .dm-dialog-title {
    font-size: 15px;
    font-weight: 700;
    letter-spacing: -0.01em;
    line-height: 1.2;
    color: #fff;
    margin: 0;
}
md-dialog.dm-dialog .dm-dialog-subtitle {
    font-size: 11.5px;
    font-weight: 400;
    opacity: 0.8;
    margin-top: 2px;
    color: #fff;
}
md-dialog.dm-dialog .dm-dialog-header-actions {
    display: flex;
    align-items: center;
    gap: 8px;
    z-index: 1;
    flex-shrink: 0;
}
md-dialog.dm-dialog .dm-dialog-close,
md-dialog.dm-dialog .dm-dialog-header-btn {
    height: 34px;
    min-width: 34px;
    padding: 0 12px;
    border-radius: 10px;
    border: 1px solid rgba(255, 255, 255, 0.25);
    background: rgba(255, 255, 255, 0.12);
    color: #fff;
    cursor: pointer;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 6px;
    font-size: 12.5px;
    font-weight: 600;
    transition: all 0.2s cubic-bezier(.4, 0, .2, 1);
    white-space: nowrap;
}
md-dialog.dm-dialog .dm-dialog-close { padding: 0; width: 34px; font-size: 15px; }
md-dialog.dm-dialog .dm-dialog-close:hover,
md-dialog.dm-dialog .dm-dialog-header-btn:hover { background: rgba(255, 255, 255, 0.25); }
md-dialog.dm-dialog .dm-dialog-close:hover { transform: rotate(90deg); }
md-dialog.dm-dialog .dm-dialog-header-btn.dm-btn-danger-soft {
    background: rgba(255, 255, 255, 0.92);
    color: #b91c1c;
    border-color: transparent;
}
md-dialog.dm-dialog .dm-dialog-header-btn.dm-btn-danger-soft:hover { background: #fff; }
/* Variante accent (ex. « Historique » dans la popup rectificatif) : bien visible sur l'entête bleue */
md-dialog.dm-dialog .dm-dialog-header-btn.dm-btn-accent-solid {
    background: var(--ax-accent, #ec781d);
    border-color: rgba(255, 255, 255, 0.35);
    color: #fff;
    box-shadow: 0 1px 3px rgba(0, 0, 0, .18);
}
md-dialog.dm-dialog .dm-dialog-header-btn.dm-btn-accent-solid:hover { background: #d9690f; }
md-dialog.dm-dialog .dm-dialog-header-btn.dm-btn-success-solid {
    background: #1a9d52;
    border-color: rgba(255, 255, 255, 0.35);
    color: #fff;
    box-shadow: 0 1px 3px rgba(0, 0, 0, .18);
}
md-dialog.dm-dialog .dm-dialog-header-btn.dm-btn-success-solid:hover { background: #15803d; }
md-dialog.dm-dialog .dm-dialog-header-btn:disabled {
    opacity: 0.45;
    cursor: not-allowed;
    pointer-events: none;
}

/* Corps */
md-dialog.dm-dialog .dm-dialog-body {
    flex: 1;
    min-height: 0;
    display: flex;
    flex-direction: column;
    overflow: hidden;
    background: #FBF8F8;
}
md-dialog.dm-dialog .dm-dialog-body.dm-dialog-body-pad { padding: 16px 20px; overflow-y: auto; }
md-dialog.dm-dialog md-dialog-content.dm-dialog-body { padding: 0; }

/* Barre d'info (sous le header) */
md-dialog.dm-dialog .dm-dialog-info {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    padding: 8px 20px;
    background: var(--ax-primary-50);
    border-bottom: 1px solid var(--ax-primary-light);
    font-size: 12.5px;
    color: var(--ax-text-body);
    flex-shrink: 0;
    flex-wrap: wrap;
}
md-dialog.dm-dialog .dm-dialog-info .dm-muted { color: var(--ax-text-light); font-style: italic; }
md-dialog.dm-dialog .dm-dialog-warn {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 8px 20px;
    background: var(--ax-warning-light);
    border-bottom: 1px solid var(--ax-warning-border);
    color: var(--ax-warning-text);
    font-size: 12.5px;
    font-weight: 500;
    flex-shrink: 0;
}
md-dialog.dm-dialog .dm-dialog-warn i { color: var(--ax-warning); font-size: 15px; }

/* Recherche */
md-dialog.dm-dialog .dm-dialog-search {
    padding: 10px 20px;
    background: #fff;
    border-bottom: 1px solid var(--ax-border);
    flex-shrink: 0;
}
md-dialog.dm-dialog .dm-search-wrap {
    position: relative;
    display: flex;
    align-items: center;
}
md-dialog.dm-dialog .dm-search-wrap > i.fa-search {
    position: absolute;
    left: 12px;
    color: var(--ax-text-light);
    font-size: 13px;
    pointer-events: none;
}
md-dialog.dm-dialog .dm-search-wrap input {
    width: 100%;
    height: 36px;
    padding: 0 34px 0 34px;
    border: 1.5px solid var(--ax-border-input);
    border-radius: var(--ax-radius-sm);
    font-size: 13.5px;
    color: var(--ax-text);
    background: #fff;
    outline: none;
    transition: var(--ax-tr-fast);
}
md-dialog.dm-dialog .dm-search-wrap input:focus {
    border-color: var(--ax-border-focus);
    box-shadow: 0 0 0 2px rgba(37, 99, 235, 0.15);
}
md-dialog.dm-dialog .dm-search-wrap input::placeholder { color: var(--ax-text-light); }
md-dialog.dm-dialog .dm-search-clear {
    position: absolute;
    right: 8px;
    background: none;
    border: none;
    cursor: pointer;
    color: var(--ax-text-light);
    font-size: 15px;
    padding: 2px 6px;
    line-height: 1;
}
md-dialog.dm-dialog .dm-search-clear:hover { color: var(--ax-text-sec); }

/* Actions rapides (tout cocher, etc.) */
md-dialog.dm-dialog .dm-dialog-quick {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 6px 20px;
    background: #fff;
    border-bottom: 1px solid var(--ax-border);
    flex-shrink: 0;
    flex-wrap: wrap;
}
md-dialog.dm-dialog .dm-dialog-quick .dm-quick-spacer { flex: 1; }

/* Filtres segmentés dans la popup (Tous / Succès / Erreurs) */
md-dialog.dm-dialog .dm-seg {
    display: inline-flex;
    border: 1px solid var(--ax-border-input);
    border-radius: var(--ax-radius-xs);
    overflow: hidden;
    background: #fff;
}
md-dialog.dm-dialog .dm-seg button {
    border: none;
    border-right: 1px solid var(--ax-border-input);
    background: #fff;
    height: 30px;
    padding: 0 12px;
    font-size: 12.5px;
    font-weight: 600;
    color: var(--ax-text-sec);
    cursor: pointer;
    transition: var(--ax-tr-fast);
}
md-dialog.dm-dialog .dm-seg button:last-child { border-right: none; }
md-dialog.dm-dialog .dm-seg button:hover { background: #f8fafc; color: var(--ax-primary-dark); }
md-dialog.dm-dialog .dm-seg button.active { background: var(--ax-primary); color: #fff; }
md-dialog.dm-dialog .dm-seg button.active.dm-seg-ok { background: var(--ax-success); }
md-dialog.dm-dialog .dm-seg button.active.dm-seg-ko { background: #c62828; }

/* Tableau simple dans la popup */
md-dialog.dm-dialog .dm-dialog-table-scroll {
    flex: 1;
    min-height: 0;
    overflow-y: auto;
    background: #fff;
}
md-dialog.dm-dialog .dm-dialog-table {
    width: 100%;
    border-collapse: separate;
    border-spacing: 0;
    font-size: 13.5px;
}
md-dialog.dm-dialog .dm-dialog-table thead th {
    position: sticky;
    top: 0;
    z-index: 2;
    padding: 10px 14px;
    font-size: 12px;
    font-weight: 700;
    color: #475569;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    background: #f9fafc;
    border-bottom: 2px solid var(--ax-border);
    text-align: left;
    white-space: nowrap;
}
md-dialog.dm-dialog .dm-dialog-table tbody td {
    padding: 0 14px;
    height: 36px;
    border-bottom: 1px solid #dfe3ee;
    color: var(--ax-text-body);
    vertical-align: middle;
}
md-dialog.dm-dialog .dm-dialog-table tbody tr:nth-child(even) td { background: var(--ax-row-even); }
md-dialog.dm-dialog .dm-dialog-table tbody tr:hover td { background: var(--ax-row-hover); }
md-dialog.dm-dialog .dm-dialog-table tbody tr.dm-selectable { cursor: pointer; }
md-dialog.dm-dialog .dm-dialog-table tbody tr.dm-selected td {
    background: var(--ax-primary-50) !important;
}
md-dialog.dm-dialog .dm-dialog-table tbody tr.dm-selected td:first-child {
    box-shadow: inset 3px 0 0 var(--ax-primary);
}
md-dialog.dm-dialog .dm-dialog-table.dm-rtl { direction: rtl; }
md-dialog.dm-dialog .dm-dialog-table.dm-rtl thead th,
md-dialog.dm-dialog .dm-dialog-table.dm-rtl tbody td { text-align: right; }
md-dialog.dm-dialog .dm-dialog-table.dm-rtl tbody td.dm-code-cell {
    direction: ltr;
    text-align: center;
    font-weight: 700;
    color: var(--ax-primary-dark);
    font-size: 14px;
}
md-dialog.dm-dialog .dm-dialog-table.dm-rtl tbody td.dm-desc-cell {
    line-height: 1.5;
    white-space: normal;
    padding: 8px 14px;
    height: auto;
}
md-dialog.dm-dialog .dm-dialog-table tbody td.dm-wrap { white-space: normal; word-break: break-word; height: auto; padding: 8px 14px; }
md-dialog.dm-dialog .dm-dialog-empty {
    text-align: center;
    padding: 40px 20px;
    color: var(--ax-text-sec);
    font-size: 13.5px;
    font-weight: 500;
}
md-dialog.dm-dialog .dm-dialog-empty i {
    font-size: 30px;
    display: block;
    margin-bottom: 8px;
    color: var(--ax-text-disabled);
}
md-dialog.dm-dialog .dm-dialog-empty i.fa-exclamation-triangle { color: var(--ax-warning); }
md-dialog.dm-dialog .dm-dialog-empty i.fa-spinner { color: var(--ax-primary); }

/* Liste de comptes (checkbox) */
md-dialog.dm-dialog .dm-list {
    flex: 1;
    min-height: 0;
    overflow-y: auto;
    margin: 0;
    padding: 0;
    list-style: none;
    background: #fff;
}
md-dialog.dm-dialog .dm-list li.dm-list-item {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 7px 20px;
    border-bottom: 1px solid #eef0f6;
    cursor: pointer;
    transition: background 0.15s;
    font-size: 13.5px;
}
md-dialog.dm-dialog .dm-list li.dm-list-item:hover { background: var(--ax-row-hover); }
md-dialog.dm-dialog .dm-list li.dm-list-item.selected { background: var(--ax-primary-50); }
md-dialog.dm-dialog .dm-list .dm-list-check {
    width: 17px;
    height: 17px;
    accent-color: var(--ax-primary);
    cursor: pointer;
    margin: 0;
    flex-shrink: 0;
}
md-dialog.dm-dialog .dm-list .dm-list-code {
    display: inline-block;
    padding: 2px 8px;
    border-radius: 4px;
    font-size: 12.5px;
    font-weight: 700;
    background: var(--ax-primary-50);
    color: var(--ax-primary-dark);
    min-width: 70px;
    text-align: center;
    flex-shrink: 0;
    white-space: nowrap;
}
md-dialog.dm-dialog .dm-list .dm-list-label {
    color: var(--ax-text-body);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

/* Badge (compteur) */
md-dialog.dm-dialog .dm-count-badge {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    background: var(--ax-primary);
    color: #fff;
    border-radius: 12px;
    padding: 2px 12px;
    font-weight: 700;
    font-size: 12px;
    white-space: nowrap;
}
md-dialog.dm-dialog .dm-status-pill {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    padding: 2px 10px;
    border-radius: 12px;
    font-size: 11.5px;
    font-weight: 700;
    white-space: nowrap;
}
md-dialog.dm-dialog .dm-status-pill.ok { background: var(--ax-success-light); color: var(--ax-success-text); }
md-dialog.dm-dialog .dm-status-pill.ko { background: #fee2e2; color: #991b1b; }
md-dialog.dm-dialog .dm-text-ok { color: var(--ax-success-text); }
md-dialog.dm-dialog .dm-text-ko { color: #c62828; }
md-dialog.dm-dialog .dm-text-muted { color: var(--ax-text-light); }

/* Résumé (source / total / succès / échecs) */
md-dialog.dm-dialog .dm-summary {
    display: flex;
    align-items: center;
    gap: 14px;
    flex-wrap: wrap;
    font-size: 13px;
    color: var(--ax-text-body);
}
md-dialog.dm-dialog .dm-summary strong { color: var(--ax-text-strong); }
md-dialog.dm-dialog .dm-summary-note {
    margin-top: 8px;
    font-size: 12.5px;
    color: var(--ax-warning-text);
    display: flex;
    align-items: flex-start;
    gap: 6px;
}
md-dialog.dm-dialog .dm-summary-note i { margin-top: 2px; }

/* Footer */
md-dialog.dm-dialog .dm-dialog-footer {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: 8px;
    padding: 12px 20px;
    border-top: 1px solid var(--ax-border);
    background: #fff;
    flex-shrink: 0;
}
md-dialog.dm-dialog .dm-dialog-footer .dm-footer-left { margin-right: auto; display: flex; align-items: center; gap: 8px; }
md-dialog.dm-dialog .dm-dialog-footer .dm-footer-feedback {
    font-size: 12.5px;
    color: var(--ax-success-text);
    font-weight: 600;
}

/* Cartes de choix (télédéclaration initiale / rectificative, déposer / plus tard) */
md-dialog.dm-dialog.dm-dialog-choice { max-width: 540px; width: 540px; }
md-dialog.dm-dialog .dm-choice-header {
    padding: 26px 32px 18px;
    text-align: center;
    color: #fff;
    background: linear-gradient(135deg, #1a237e 0%, #3949ab 100%);
}
md-dialog.dm-dialog .dm-choice-header.dm-choice-header-success {
    background: linear-gradient(135deg, #1b5e20 0%, #2e7d32 100%);
}
md-dialog.dm-dialog .dm-choice-header > i.fa {
    font-size: 36px;
    margin-bottom: 8px;
    display: block;
    opacity: 0.9;
}
md-dialog.dm-dialog .dm-choice-header h3 {
    margin: 0 0 4px;
    font-size: 19px;
    font-weight: 700;
    color: #fff;
}
md-dialog.dm-dialog .dm-choice-header p { margin: 0; font-size: 13px; opacity: 0.85; color: #fff; }
md-dialog.dm-dialog .dm-choice-body { padding: 24px 32px 10px; background: #fff; }
md-dialog.dm-dialog .dm-choice-cards {
    display: flex;
    gap: 16px;
    justify-content: center;
}
md-dialog.dm-dialog .dm-choice-card {
    flex: 1;
    max-width: 220px;
    border: 2px solid var(--ax-border);
    border-radius: 14px;
    padding: 24px 16px 20px;
    text-align: center;
    cursor: pointer;
    transition: all 0.25s cubic-bezier(.4, 0, .2, 1);
    background: #fafbfc;
}
md-dialog.dm-dialog .dm-choice-card:hover {
    background: #fff;
    box-shadow: 0 8px 24px rgba(0, 0, 0, 0.10);
    border-color: var(--ax-primary);
}
md-dialog.dm-dialog .dm-choice-card:active { box-shadow: 0 2px 8px rgba(0, 0, 0, 0.08); }
md-dialog.dm-dialog .dm-choice-card-icon {
    width: 54px;
    height: 54px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    margin: 0 auto 12px;
    font-size: 22px;
    color: #fff;
    background: linear-gradient(135deg, #1565c0 0%, #42a5f5 100%);
}
md-dialog.dm-dialog .dm-choice-card.dm-choice-orange .dm-choice-card-icon { background: linear-gradient(135deg, #e65100 0%, #ff9800 100%); }
md-dialog.dm-dialog .dm-choice-card.dm-choice-green  .dm-choice-card-icon { background: linear-gradient(135deg, #2e7d32 0%, #66bb6a 100%); }
md-dialog.dm-dialog .dm-choice-card.dm-choice-grey   .dm-choice-card-icon { background: linear-gradient(135deg, #546e7a 0%, #90a4ae 100%); }
md-dialog.dm-dialog .dm-choice-card.dm-choice-green:hover { border-color: #2e7d32; }
md-dialog.dm-dialog .dm-choice-card.dm-choice-grey:hover  { border-color: #546e7a; }
md-dialog.dm-dialog .dm-choice-card.dm-choice-orange:hover { border-color: #e65100; }
md-dialog.dm-dialog .dm-choice-card h4 {
    margin: 0 0 6px;
    font-size: 15.5px;
    font-weight: 700;
    color: var(--ax-text-strong);
}
md-dialog.dm-dialog .dm-choice-card p {
    margin: 0;
    font-size: 12px;
    color: var(--ax-text-sec);
    line-height: 1.4;
}
md-dialog.dm-dialog .dm-choice-banner {
    display: flex;
    align-items: center;
    gap: 12px;
    margin: 0 32px 6px;
    padding: 10px 14px;
    border-radius: 10px;
    background: var(--ax-primary-50);
    border: 1px solid var(--ax-primary-light);
}
md-dialog.dm-dialog .dm-choice-banner-icon {
    width: 36px;
    height: 36px;
    min-width: 36px;
    border-radius: 50%;
    background: linear-gradient(135deg, #1a237e 0%, #3949ab 100%);
    color: #fff;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 15px;
}
md-dialog.dm-dialog .dm-choice-banner-text {
    flex: 1;
    font-size: 12px;
    color: var(--ax-text-body);
    line-height: 1.35;
}
md-dialog.dm-dialog .dm-choice-banner-text strong { font-size: 12.5px; color: var(--ax-primary-dark); }
md-dialog.dm-dialog .dm-choice-footer {
    padding: 8px 32px 18px;
    text-align: center;
    background: #fff;
}
md-dialog.dm-dialog .dm-choice-cancel {
    border: none;
    background: transparent;
    color: var(--ax-text-light);
    font-size: 13px;
    cursor: pointer;
    padding: 8px 22px;
    border-radius: 20px;
    transition: var(--ax-tr-fast);
}
md-dialog.dm-dialog .dm-choice-cancel:hover { background: #f5f5f5; color: var(--ax-text-sec); }
md-dialog.dm-dialog.dm-dialog-choice md-dialog-content { padding: 0; }

/* PDF dans une popup */
md-dialog.dm-dialog .dm-dialog-pdf {
    flex: 1;
    min-height: 0;
    padding: 14px 4% 18px;
    background: #FBF8F8;
    display: flex;
}
md-dialog.dm-dialog .dm-dialog-pdf embed,
md-dialog.dm-dialog .dm-dialog-pdf iframe {
    flex: 1;
    width: 100%;
    height: 100%;
    border: none;
    border-radius: 12px;
    background: #fff;
    box-shadow: 0 6px 16px rgba(0, 0, 0, 0.06);
}

/* Tableau avec filtres (détail calcul) : table flex scrollable */
md-dialog.dm-dialog .dm-dialog-grid {
    flex: 1;
    min-height: 0;
    display: flex;
    flex-direction: column;
    background: #fff;
}
md-dialog.dm-dialog .dm-grid-head {
    display: flex;
    flex-shrink: 0;
    background: #f9fafc;
    border-bottom: 2px solid var(--ax-border);
}
md-dialog.dm-dialog .dm-grid-head > div {
    padding: 8px 8px 6px;
    font-size: 12px;
    font-weight: 700;
    color: #475569;
    text-transform: uppercase;
    letter-spacing: 0.4px;
    min-width: 0;
}
md-dialog.dm-dialog .dm-grid-head a.dm-sort {
    color: inherit;
    text-decoration: none;
    display: inline-flex;
    align-items: center;
    gap: 4px;
    cursor: pointer;
    white-space: nowrap;
}
md-dialog.dm-dialog .dm-grid-head a.dm-sort:hover { color: var(--ax-primary); }
md-dialog.dm-dialog .dm-grid-head .form-control {
    height: 28px;
    margin-top: 5px;
    padding: 3px 8px;
    font-size: 12px;
    border-radius: 6px;
    border: 1px solid var(--ax-border-input);
    box-shadow: none;
    background: #fff;
    width: 100%;
}
md-dialog.dm-dialog .dm-grid-head .form-control::placeholder {
    color: var(--ax-primary);
    font-weight: 700;
    opacity: 0.65;
    font-size: 12px;
}
md-dialog.dm-dialog .dm-grid-head .form-control:focus {
    border-color: var(--ax-border-focus);
    box-shadow: 0 0 0 2px rgba(37, 99, 235, 0.15);
    outline: none;
}
md-dialog.dm-dialog .dm-grid-head .input-group { display: flex; margin-top: 5px; }
md-dialog.dm-dialog .dm-grid-head .input-group .form-control { margin-top: 0; border-radius: 6px 0 0 6px; border-right: none; }
md-dialog.dm-dialog .dm-grid-head .input-group .input-group-btn .btn {
    height: 28px;
    padding: 0 8px;
    border-radius: 0 6px 6px 0;
    border: 1px solid var(--ax-border-input);
    background: #fff;
    color: var(--ax-primary);
    font-size: 12px;
    line-height: 1;
}
md-dialog.dm-dialog .dm-grid-head ol.nya-bs-select { margin-top: 5px; width: 100%; }
md-dialog.dm-dialog .dm-grid-head ol.nya-bs-select > button.dropdown-toggle {
    height: 28px;
    padding: 3px 22px 3px 8px;
    font-size: 12px;
    border-radius: 6px;
    border: 1px solid var(--ax-border-input);
    background: #fff;
}
md-dialog.dm-dialog .dm-grid-body {
    flex: 1;
    min-height: 0;
    overflow-y: auto;
    overflow-x: hidden;
}
md-dialog.dm-dialog .dm-grid-row {
    display: flex;
    border-bottom: 1px solid #dfe3ee;
    transition: background 0.15s ease;
}
md-dialog.dm-dialog .dm-grid-row:nth-child(even) { background: var(--ax-row-even); }
md-dialog.dm-dialog .dm-grid-row:hover { background: var(--ax-row-hover); }
md-dialog.dm-dialog .dm-grid-row > div {
    padding: 0 8px;
    height: 36px;
    line-height: 36px;
    font-size: 13.5px;
    color: var(--ax-text-body);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    min-width: 0;
}
md-dialog.dm-dialog .dm-grid-row > div.dm-num,
md-dialog.dm-dialog .dm-grid-head > div.dm-num { text-align: right; font-variant-numeric: tabular-nums; }
md-dialog.dm-dialog .dm-grid-row > div.dm-grid-actions {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: 6px;
    overflow: visible;
}
md-dialog.dm-dialog .dm-grid-actions md-checkbox { margin: 0; min-height: 20px; min-width: 20px; }
md-dialog.dm-dialog .dm-grid-head .dm-head-tools {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: 6px;
    margin-top: 5px;
}
md-dialog.dm-dialog .dm-grid-head .dm-head-tools md-checkbox { margin: 0; min-height: 20px; min-width: 20px; }
md-dialog.dm-dialog .dm-grid-head .dm-head-tools .ax-btn { height: 28px; padding: 0 8px; }

/* Largeurs de colonnes (grille détail calcul) */
md-dialog.dm-dialog .dm-c-1 { flex: 0 0 8%; }
md-dialog.dm-dialog .dm-c-2 { flex: 0 0 16%; }
md-dialog.dm-dialog .dm-c-1b { flex: 0 0 9%; }
md-dialog.dm-dialog .dm-c-act { flex: 1 1 0; }

/* Pagination compacte dans la popup */
md-dialog.dm-dialog .dm-dialog-pagination {
    flex-shrink: 0;
    display: flex;
    justify-content: flex-end;
    padding: 6px 12px;
    border-top: 1px solid var(--ax-border);
    background: #fafbfc;
}
md-dialog.dm-dialog .dm-dialog-pagination .pagination { margin: 0; }

/* KPI en pied de popup (réutilise ax-badge-kpi) */
md-dialog.dm-dialog .dm-dialog-kpi {
    display: flex;
    gap: 8px;
    padding: 8px 12px;
    border-top: 1px solid var(--ax-border);
    background: #f8fafc;
    flex-shrink: 0;
    flex-wrap: wrap;
}
md-dialog.dm-dialog .dm-dialog-kpi .ax-badge-kpi { flex: 0 1 auto; min-width: 0; padding: 2px 12px; min-height: 26px; gap: 6px; }
md-dialog.dm-dialog .dm-dialog-kpi .ax-badge-kpi-label { font-size: 12px; font-weight: 600; }
md-dialog.dm-dialog .dm-dialog-kpi .ax-badge-kpi-value { font-size: 13px; font-weight: 700; }
md-dialog.dm-dialog .dm-dialog-kpi .ax-badge-kpi-icon { width: 20px; height: 20px; font-size: 10px; border-radius: 5px; }

/* Liste de familles (checkbox) dans popup rectificatif */
md-dialog.dm-dialog .dm-check-list {
    flex: 1;
    min-height: 0;
    overflow-y: auto;
    background: #fff;
}
md-dialog.dm-dialog .dm-check-row {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 0 20px;
    height: 38px;
    margin: 0;
    border-bottom: 1px solid #dfe3ee;
    font-size: 13.5px;
    font-weight: 500;
    color: var(--ax-text-body);
    transition: background 0.15s;
}
/* La ligne entière est un <label> : cliquer sur le libellé coche la case */
md-dialog.dm-dialog label.dm-check-row,
md-dialog.dm-dialog label.dm-check-head { cursor: pointer; user-select: none; }
md-dialog.dm-dialog label.dm-check-row .dm-check-label { flex: 1; }
md-dialog.dm-dialog .dm-check-row.dm-check-row-on { background: var(--ax-primary-50, #eef2ff); color: var(--ax-primary-dark); }
md-dialog.dm-dialog .dm-check-row:nth-child(even) { background: var(--ax-row-even); }
md-dialog.dm-dialog .dm-check-row:hover { background: var(--ax-row-hover); }
md-dialog.dm-dialog .dm-check-row input[type="checkbox"] {
    width: 16px;
    height: 16px;
    margin: 0;
    accent-color: var(--ax-primary);
    cursor: pointer;
}
md-dialog.dm-dialog .dm-check-row .dm-check-label { flex: 1; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
md-dialog.dm-dialog .dm-check-row .dm-check-actions { display: flex; align-items: center; gap: 6px; }
md-dialog.dm-dialog .dm-check-head {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 0 20px;
    height: 36px;
    margin: 0;
    background: #f9fafc;
    border-bottom: 2px solid var(--ax-border);
    font-size: 12px;
    font-weight: 700;
    color: #475569;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    flex-shrink: 0;
}
md-dialog.dm-dialog .dm-check-head small { text-transform: none; letter-spacing: 0; font-weight: 500; font-size: 11.5px; margin-left: 4px; }
md-dialog.dm-dialog .dm-check-head input[type="checkbox"] {
    width: 16px;
    height: 16px;
    margin: 0;
    accent-color: var(--ax-primary);
    cursor: pointer;
}
md-dialog.dm-dialog .dm-check-head .dm-check-label { flex: 1; }
md-dialog.dm-dialog .dm-check-empty {
    padding: 18px 20px;
    color: var(--ax-text-sec);
    font-size: 13px;
    font-style: italic;
}
md-dialog.dm-dialog .dm-pill-ok {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    margin-left: 8px;
    padding: 2px 10px;
    border-radius: 10px;
    font-size: 11px;
    font-weight: 700;
    background: var(--ax-success-light);
    color: var(--ax-success-text);
}

/* Boutons d'action groupés (abtn act-*) dans les popups : même rendu que les tables */
md-dialog.dm-dialog .ax-btn-group { display: inline-flex; }

/* nya-bs-select (Duplication modèles) */
md-dialog.dm-dialog .dm-dialog-body ol.nya-bs-select { width: 100%; margin: 0; }
md-dialog.dm-dialog .dm-dialog-body ol.nya-bs-select > button.dropdown-toggle {
    height: 38px;
    padding: 6px 30px 6px 12px;
    font-size: 13.5px;
    border-radius: var(--ax-radius-sm);
    border: 1.5px solid #cbd5e1;
    background: #fff;
    box-shadow: var(--ax-shadow-xs);
}
md-dialog.dm-dialog .dm-dialog-body .dm-select-count {
    margin-top: 8px;
    font-size: 12.5px;
    color: var(--ax-text-sec);
    font-weight: 600;
}
md-dialog.dm-dialog .dm-field-label {
    display: block;
    font-size: 14px;
    font-weight: 700;
    color: #111827;
    margin-bottom: 6px;
}
md-dialog.dm-dialog .duplDm-select a {
    position: relative;
    white-space: normal;
    word-wrap: break-word;
    display: block;
    padding: 8px 28px 8px 10px;
    font-size: 12px;
    font-weight: 600;
}
md-dialog.dm-dialog .duplDm-select a .check-mark {
    right: 8px;
    top: 8px;
    font-size: 12px;
    opacity: 0.95;
}

/* nya-bs-select dans les popups : liste jamais plus étroite que le champ, libellés lisibles */
md-dialog.dm-dialog .nya-bs-select { width: 100%; }
md-dialog.dm-dialog .nya-bs-select.open { position: relative; z-index: 1040; }
md-dialog.dm-dialog .nya-bs-select > .dropdown-menu {
    z-index: 1050 !important;
    min-width: 100%;
    width: max-content;
    max-width: 480px;
    padding: 4px;
    border-radius: 8px;
    border: 1px solid #dfe3ee;
    box-shadow: 0 8px 24px rgba(15, 23, 42, .12);
}
/* liste interne : en flux, scroll interne (nya ne pose overflow-y:auto qu'avec l'attribut size) */
md-dialog.dm-dialog .nya-bs-select .dropdown-menu.inner {
    position: static !important; top: auto !important; left: auto !important;
    border: 0; box-shadow: none; padding: 0; margin: 0;
    max-height: 300px;
    overflow-y: auto !important;
    overflow-x: hidden;
}
md-dialog.dm-dialog .nya-bs-select .dropdown-menu > li > a {
    white-space: normal;
    word-break: break-word;
    padding: 6px 10px;
    border-radius: 6px;
    font-size: 13px;
    line-height: 1.35;
}
md-dialog.dm-dialog .nya-bs-select .dropdown-menu > li.selected > a,
md-dialog.dm-dialog .nya-bs-select .dropdown-menu > li > a:hover { background: #eef2ff; color: #3949ab; }
md-dialog.dm-dialog .nya-bs-select .dropdown-menu .bs-searchbox input.form-control {
    height: 30px; font-size: 13px; border: 1.5px solid #cbd5e1; border-radius: 6px;
}
md-dialog.dm-dialog .nya-bs-select .dropdown-menu .bs-actionsbox .btn-group { display: flex; width: 100%; }
md-dialog.dm-dialog .nya-bs-select .dropdown-menu .bs-actionsbox .btn-group > button {
    flex: 1 1 0; min-width: 0; font-size: 12px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
}

/* Fiche dans un onglet (patron Plan Comptable) : wrapper à plat */
.dm-root .ax-fiche-wrapper.dm-fiche-flat {
    margin: 0;
    border-radius: 0;
    border: none;
    box-shadow: none;
    flex: 1;
    display: flex;
    flex-direction: column;
    min-height: 0;
}
.dm-root .dm-fiche-flat .ax-fiche-header { border-radius: 0; }

/* ── Popups avec table design system (Détails du calcul) : mêmes compléments que .dm-root ── */
md-dialog.dm-dialog .ax-table-body-scroll {
    flex: 1;
    min-height: 0;
}
md-dialog.dm-dialog .ax-table-head thead th .input-group {
    display: flex;
    width: 100%;
    margin-top: 6px;
}
md-dialog.dm-dialog .ax-table-head thead th .input-group .form-control {
    flex: 1 1 auto;
    width: 1%;
    min-width: 0;
    margin-top: 0;
    /* neutralise le global .input-group .form-control {height:auto !important; min-height:34px} */
    height: 28px !important;
    min-height: 28px !important;
    max-height: 28px;
    padding: 4px 8px;
    font-size: 12px;
}
md-dialog.dm-dialog .ax-table-head thead th .input-group .input-group-btn {
    display: flex;
    width: auto;
    flex-shrink: 0;
}
md-dialog.dm-dialog .ax-table-head thead th .input-group .input-group-btn .btn {
    height: 28px !important;
    min-height: 28px;
    padding: 0 8px !important;
    border-radius: 0 6px 6px 0 !important;
    font-size: 12px;
    line-height: 1;
    display: inline-flex;
    align-items: center;
}
md-dialog.dm-dialog .ax-table-head thead th a.dm-sort {
    color: inherit;
    text-decoration: none;
    cursor: pointer;
    display: inline-flex;
    align-items: center;
    gap: 4px;
}
md-dialog.dm-dialog .ax-table-head thead th a.dm-sort:hover { color: var(--ax-primary); }
md-dialog.dm-dialog .ax-table-head thead th a.dm-sort i { font-size: 12px; }
md-dialog.dm-dialog .ax-table tbody td.dm-num {
    text-align: right;
    font-variant-numeric: tabular-nums;
}
md-dialog.dm-dialog .ax-table-head thead th.dm-num { text-align: right; }
md-dialog.dm-dialog .ax-table.dm-table-plain tbody td:nth-child(2) {
    font-weight: 400;
    color: var(--ax-text-body);
}
md-dialog.dm-dialog .dm-pill {
    display: inline-block;
    padding: 2px 8px;
    border-radius: 10px;
    font-size: 11.5px;
    font-weight: 600;
    white-space: nowrap;
    line-height: 1.5;
    vertical-align: middle;
    background: var(--ax-primary-50);
    color: var(--ax-primary-dark);
}
md-dialog.dm-dialog .dm-pill.dm-pill-green { background: var(--ax-success-light); color: var(--ax-success-text); }
md-dialog.dm-dialog .dm-pill.dm-pill-amber { background: #fef3c7; color: #92400e; }
md-dialog.dm-dialog .dm-pill.dm-pill-grey  { background: #f3f4f6; color: #6b7280; }
md-dialog.dm-dialog .dm-pill.dm-pill-blue  { background: #dbeafe; color: #1e40af; }
md-dialog.dm-dialog .dm-actions-inline {
    display: inline-flex;
    align-items: center;
    justify-content: flex-end;
    gap: 6px;
    width: 100%;
}
md-dialog.dm-dialog .dm-actions-inline md-checkbox {
    margin: 0;
    min-height: 20px;
    min-width: 20px;
}
md-dialog.dm-dialog .dm-head-tools {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: 6px;
    margin-top: 6px;
}
md-dialog.dm-dialog .dm-head-tools md-checkbox { margin: 0; min-height: 20px; min-width: 20px; }
md-dialog.dm-dialog .dm-dialog-body > .ax-table-zone { flex: 1; min-height: 0; }
md-dialog.dm-dialog .dm-dialog-body > .ax-pagination { flex-shrink: 0; }
md-dialog.dm-dialog .dm-dialog-kpi.ax-kpi-row { position: static; justify-content: center; padding: 5px 16px; min-height: 0; gap: 6px; }

/* Responsive */
@media (max-width: 1024px) {
    .dm-root .dm-mapping-grid { grid-template-columns: 1fr; }
    md-dialog.dm-dialog.dm-dialog-choice { width: 94vw; }
    md-dialog.dm-dialog .dm-choice-cards { flex-direction: column; align-items: center; }
    md-dialog.dm-dialog .dm-choice-card { max-width: none; width: 100%; }
}

/* ============================================================================
   Tables d'état DM (classe .dm-table — écran État RAS Tiers, etc.)
   Rendu « pro » : fond BLANC, bordures nettes, en-têtes sobres.
   Portée : uniquement les tables .dm-table sous .dm-root (aucun autre écran).
   ========================================================================== */
.dm-root .dm-table {
    background: #fff;
    border: 1px solid #e5e7eb;
    border-radius: 8px;
    overflow: hidden;
}
.dm-root .dm-table > thead > tr > th {
    background: #fff;
    color: var(--ax-text-sec);
    font-weight: 600;
    font-size: 12px;
    letter-spacing: .2px;
    border-bottom: 1px solid #e5e7eb;
    padding: 10px 14px;
}
.dm-root .dm-table > tbody > tr > td {
    background: #fff;
    padding: 10px 14px;
}
.dm-root .dm-table > tbody > tr + tr > td { border-top: 1px solid #f0f1f3; }
.dm-root .dm-table > tbody > tr:hover > td { background: #fafbfc; }

/* ============================================================================
   Badges de statut de déclaration dans la liste des périodes (État TVA / RAS).
   Alimentés par le statut par mois (1 requête native), synchronisés avec Calcul DM.
   ========================================================================== */
.dm-root .dm-statut-badge {
    display: inline-block;
    margin-left: 8px;
    padding: 1px 8px;
    border-radius: 10px;
    font-size: 10.5px;
    font-weight: 600;
    line-height: 1.6;
    vertical-align: middle;
}
.dm-root .dm-statut-CLOTURE     { background: #ecfdf5; color: #059669; }  /* Clôturé — vert */
.dm-root .dm-statut-NON_CLOTURE { background: #fffbeb; color: #b45309; }  /* Non clôturé — ambre */
.dm-root .dm-statut-IGNORE      { background: #f3f4f6; color: #6b7280; }  /* Ignoré — gris */
.dm-root .dm-statut-NON_SAISIE  { background: #f3f4f6; color: #9ca3af; }  /* Non saisi — gris clair */

/* ── Détails du calcul, régime de l'encaissement : factures encaissées puis leurs paiements ── */
md-dialog.dm-dialog .dm-seg.dm-seg-fp { margin-right: 8px; }
md-dialog.dm-dialog .dm-seg.dm-seg-fp button { font-size: 13px; }
md-dialog.dm-dialog .dm-fp-zone > .ax-table-border { flex: 1; min-height: 0; }
md-dialog.dm-dialog .dm-fp-toolbar {
    flex-shrink: 0;
    display: flex;
    align-items: center;
    gap: 16px;
    padding: 8px 12px;
}
md-dialog.dm-dialog .dm-fp-toolbar .dm-fp-recherche { width: 320px; height: 32px; font-size: 14px; }
md-dialog.dm-dialog .dm-fp-toolbar .dm-fp-synthese { font-size: 13.5px; color: var(--ax-text-sec); }
md-dialog.dm-dialog .dm-fp-toolbar .dm-fp-synthese strong { color: var(--ax-text-body); }
md-dialog.dm-dialog .dm-fp-toolbar .dm-fp-alerte {
    margin-left: auto;
    padding: 3px 10px;
    border-radius: 12px;
    font-size: 13px;
    font-weight: 600;
    background: #ffedd5;
    color: #9a3412;
    white-space: nowrap;
}
md-dialog.dm-dialog .ax-table.dm-fp-table tbody tr.dm-fp-facture { background: #eef0f8; }
md-dialog.dm-dialog .ax-table.dm-fp-table tbody tr.dm-fp-facture td {
    font-weight: 700;
    border-top: 2px solid #dfe3ee;
}
md-dialog.dm-dialog .ax-table.dm-fp-table tbody tr.dm-fp-paiement { background: #fff; }
md-dialog.dm-dialog .ax-table.dm-fp-table tbody tr.dm-fp-paiement td:first-child { padding-left: 28px; }
md-dialog.dm-dialog .ax-table.dm-fp-table tbody tr.dm-fp-paiement.dm-fp-inactif td { color: var(--ax-text-sec); }
md-dialog.dm-dialog .ax-table.dm-fp-table tbody tr.dm-fp-paiement.dm-fp-inactif td.dm-num { font-style: italic; }
md-dialog.dm-dialog .dm-fp-journal {
    display: inline-block;
    padding: 1px 7px;
    border-radius: 10px;
    font-size: 13px;
    font-weight: 600;
    background: var(--ax-primary-50);
    color: var(--ax-primary-dark);
}
md-dialog.dm-dialog .dm-fp-statut {
    display: inline-block;
    max-width: 100%;
    padding: 1px 8px;
    border-radius: 10px;
    font-size: 13px;
    font-weight: 600;
    line-height: 1.6;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    vertical-align: middle;
    background: #f3f4f6;
    color: #6b7280;
}
md-dialog.dm-dialog .dm-fp-statut.dm-fp-statut-INTEGRE { background: var(--ax-success-light); color: var(--ax-success-text); }
md-dialog.dm-dialog .dm-fp-statut.dm-fp-statut-A_CALCULER { background: #ffedd5; color: #9a3412; }
md-dialog.dm-dialog .dm-fp-statut.dm-fp-statut-RETIRE { background: #fef3c7; color: #92400e; }
md-dialog.dm-dialog .dm-fp-statut.dm-fp-statut-DECLARE,
md-dialog.dm-dialog .dm-fp-statut.dm-fp-statut-PERIODE_SUIVANTE { background: #dbeafe; color: #1e40af; }
md-dialog.dm-dialog .dm-fp-statut.dm-fp-statut-HORS_CALCUL { background: #fee2e2; color: #991b1b; }
