/* ═══════════════════════════════════════════════════
   Dashboard Dossiers — Thème LIGHT
   ═══════════════════════════════════════════════════ */

:root {
    --dd-bg:           #ffffff;
    --dd-sidebar-bg:   #1a3a52;      /* bleu pétrole foncé — sidebar + header */
    --dd-sidebar-hover:#1e4666;
    --dd-sidebar-active:#2a5a7a;     /* onglet actif légèrement plus clair */
    --dd-sidebar-text: rgba(255,255,255,.80);
    --dd-sidebar-text-active: #ffffff;
    --dd-sidebar-w:    200px;

    --dd-header-h:     46px;

    --dd-surface:      #f4f7f9;
    --dd-surface-2:    #eaf0f5;
    --dd-border:       #ccd6de;
    --dd-border-light: #e2e8ed;

    --dd-text:         #1a2630;
    --dd-text-muted:   #5a7080;

    --dd-accent:       #1a3a52;
    --dd-accent-h:     #224b6a;

    /* Statuts */
    --dd-en-cours:          #1a6fcf;
    --dd-non-commencee:     #d97706;
    --dd-envoye-greffe:     #16a34a;
    --dd-piece-manquante:   #dc2626;
    --dd-en-enreg:          #0e7460;
    --dd-terminee:          #15803d;

    --dd-radius:    3px;
    --dd-radius-lg: 6px;
    --dd-shadow:    0 4px 20px rgba(0,0,0,.12);
    --dd-font:      'Inter', 'Segoe UI', system-ui, sans-serif;
}

/* ── Reset scoped ──────────────────────────────────── */
.dd-root *, .dd-root *::before, .dd-root *::after {
    box-sizing: border-box;
    margin: 0;
    padding: 0;
}
.dd-root {
    font-family: var(--dd-font);
    font-size: 13px;
    color: var(--dd-text);
    background: var(--dd-bg);
    border: 1px solid var(--dd-border);
    border-radius: var(--dd-radius-lg);
    overflow: hidden;
    position: relative;
    /* hauteur adaptée au contexte — peut être surchargée par le thème */
    min-height: 600px;
    display: flex;
    flex-direction: column;
}

/* ══════════════════════════════════════════════════
   HEADER
══════════════════════════════════════════════════ */
.dd-header {
    display: flex;
    align-items: stretch;
    height: var(--dd-header-h);
    background: var(--dd-sidebar-bg);
    flex-shrink: 0;
    border-bottom: 1px solid rgba(255,255,255,.08);
}

/* Titre de l'onglet actif (centre) */
.dd-header-title {
    flex: 1;
    display: flex;
    align-items: center;
    padding: 0 20px;
    font-size: 13px;
    font-weight: 700;
    letter-spacing: .10em;
    text-transform: uppercase;
    color: #fff;
}

/* Boutons contextuels (droite) */
.dd-header-actions {
    display: flex;
    align-items: center;
    gap: 6px;
    padding: 0 12px;
}
.dd-btn-icon {
    background: rgba(255,255,255,.12);
    border: 1px solid rgba(255,255,255,.20);
    color: #fff;
    border-radius: var(--dd-radius);
    padding: 5px 12px;
    font-size: 12px;
    font-weight: 600;
    cursor: pointer;
    transition: background .15s;
    white-space: nowrap;
}
.dd-btn-icon:hover { background: rgba(255,255,255,.25); }

/* ── Switcher société (bouton dans le header) ───────── */
.dd-switcher-wrap {
    position: relative;
    flex-shrink: 0;
}
.dd-btn-switcher {
    display: flex;
    align-items: center;
    gap: 8px;
    background: rgba(0,0,0,.18);
    border: none;
    border-right: 1px solid rgba(255,255,255,.10);
    color: #fff;
    padding: 0 16px;
    height: 100%;
    font-size: 12px;
    font-weight: 700;
    letter-spacing: .04em;
    text-transform: uppercase;
    cursor: pointer;
    transition: background .15s;
    white-space: nowrap;
}
.dd-btn-switcher:hover,
.dd-btn-switcher[aria-expanded="true"] { background: rgba(0,0,0,.28); }
.dd-switcher-icon { font-size: 14px; }
.dd-chevron { font-size: 9px; opacity: .6; transition: transform .2s; }
.dd-btn-switcher[aria-expanded="true"] .dd-chevron { transform: rotate(180deg); }

.dd-switcher-dropdown {
    position: absolute;
    top: calc(100% + 3px);
    left: 0;
    background: #fff;
    border: 1px solid var(--dd-border);
    border-radius: var(--dd-radius-lg);
    box-shadow: var(--dd-shadow);
    min-width: 220px;
    z-index: 9999;
    overflow: hidden;
}
.dd-societe-item {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 9px 14px;
    cursor: pointer;
    font-size: 13px;
    color: var(--dd-text);
    transition: background .1s;
}
.dd-societe-item:hover  { background: var(--dd-surface); }
.dd-societe-item.active { background: #dce8f0; font-weight: 600; }
.dd-societe-dot {
    width: 10px; height: 10px;
    border-radius: 50%;
    flex-shrink: 0;
}
.dd-switcher-sep {
    height: 1px;
    background: var(--dd-border-light);
    margin: 3px 0;
}
.dd-btn-add-societe {
    display: block;
    width: 100%;
    padding: 9px 14px;
    background: transparent;
    border: none;
    color: var(--dd-accent-h);
    font-size: 13px;
    font-weight: 600;
    cursor: pointer;
    text-align: left;
    transition: background .1s;
}
.dd-btn-add-societe:hover { background: var(--dd-surface); }

/* ══════════════════════════════════════════════════
   LAYOUT : sidebar | contenu
══════════════════════════════════════════════════ */
.dd-layout {
    display: flex;
    flex: 1;
    overflow: hidden;
}

/* ── SIDEBAR ──────────────────────────────────────── */
.dd-sidebar {
    width: var(--dd-sidebar-w);
    background: var(--dd-sidebar-bg);
    flex-shrink: 0;
    display: flex;
    flex-direction: column;
    border-right: 1px solid rgba(255,255,255,.06);
    overflow-y: auto;
}

.dd-nav-item {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 13px 16px;
    cursor: pointer;
    color: var(--dd-sidebar-text);
    font-size: 12px;
    font-weight: 600;
    letter-spacing: .04em;
    text-transform: uppercase;
    border: none;
    background: transparent;
    width: 100%;
    text-align: left;
    transition: background .12s, color .12s;
    border-left: 3px solid transparent;
    line-height: 1.3;
}
.dd-nav-item:hover {
    background: var(--dd-sidebar-hover);
    color: #fff;
}
.dd-nav-item.active {
    background: var(--dd-sidebar-active);
    color: var(--dd-sidebar-text-active);
    border-left-color: #7ec8e3;   /* liseré clair sur l'onglet actif */
}
.dd-nav-icon {
    font-size: 14px;
    flex-shrink: 0;
    opacity: .85;
}

/* ── CONTENU ──────────────────────────────────────── */
.dd-content {
    flex: 1;
    overflow: auto;
    background: var(--dd-bg);
    display: flex;
    flex-direction: column;
}

/* Panneaux */
.dd-panel { flex: 1; display: flex; flex-direction: column; }
.dd-panel-hidden { display: none; }

/* ── Placeholder modules en construction ──────────── */
.dd-placeholder {
    flex: 1;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 12px;
    padding: 60px 20px;
    color: var(--dd-text-muted);
}
.dd-placeholder-icon  { font-size: 40px; opacity: .5; }
.dd-placeholder-title { font-size: 16px; font-weight: 700; color: var(--dd-text); }
.dd-placeholder-text  { font-size: 13px; }

/* ══════════════════════════════════════════════════
   TABLEAU DOSSIERS
══════════════════════════════════════════════════ */
.dd-table-wrap {
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
    flex: 1;
}
.dd-table {
    width: 100%;
    border-collapse: collapse;
    table-layout: auto;
}

/* En-têtes */
.dd-thead-row { background: var(--dd-sidebar-bg); }
.dd-th {
    padding: 9px 12px;
    font-size: 11px;
    font-weight: 700;
    letter-spacing: .07em;
    text-transform: uppercase;
    color: rgba(255,255,255,.75);
    border-bottom: 2px solid rgba(255,255,255,.10);
    white-space: nowrap;
    text-align: left;
}
.dd-th-section { color: #fff; }

/* Lignes section-groupe */
.dd-section-row td {
    background: #cdd8e2;
    padding: 6px 12px;
    font-weight: 700;
    font-size: 11px;
    letter-spacing: .07em;
    text-transform: uppercase;
    color: var(--dd-accent);
    border-top: 1px solid #b8c8d4;
    border-bottom: 1px solid #b8c8d4;
}
.dd-section-name {
    display: flex;
    align-items: center;
    gap: 8px;
}
.dd-section-name::before {
    content: '';
    width: 3px; height: 13px;
    background: var(--dd-accent);
    border-radius: 2px;
    flex-shrink: 0;
}

/* Lignes dossier */
/* Alternance blanc / gris — style Excel */
.dd-dossier-row,
.dd-row { background: #ffffff; transition: background .08s; }

.dd-dossier-row:nth-child(even),
.dd-row:nth-child(even) { background: #f0f3f5; }

.dd-dossier-row:hover,
.dd-row:hover { background: #dce8f0 !important; }

.dd-td {
    padding: 7px 12px;
    border-bottom: 1px solid var(--dd-border-light);
    vertical-align: middle;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    color: var(--dd-text);
    max-width: 180px;
}
.dd-td-obs {
    white-space: normal;
    font-size: 12px;
    color: var(--dd-text-muted);
    line-height: 1.4;
    max-width: 220px;
}
.dd-td-actions { text-align: center; white-space: nowrap; width: 70px; }

/* Ligne vide */
.dd-empty-row td {
    text-align: center;
    padding: 12px;
    color: var(--dd-text-muted);
    font-style: italic;
    font-size: 12px;
    border-bottom: 1px solid var(--dd-border-light);
    background: #fafcfe;
}
.dd-btn-add-inline {
    margin-left: 10px;
    background: transparent;
    border: 1px dashed var(--dd-accent-h);
    color: var(--dd-accent-h);
    border-radius: var(--dd-radius);
    padding: 3px 10px;
    font-size: 12px;
    cursor: pointer;
    transition: all .15s;
}
.dd-btn-add-inline:hover { background: var(--dd-accent); color: #fff; border-style: solid; }

/* ── Badges statuts ───────────────────────────────── */
.dd-badge {
    display: inline-block;
    padding: 3px 9px;
    border-radius: 3px;
    font-size: 11px;
    font-weight: 700;
    letter-spacing: .03em;
    white-space: nowrap;
    text-transform: uppercase;
}
.dd-badge-en_cours          { background: var(--dd-en-cours);        color: #fff; }
.dd-badge-non_commencee     { background: var(--dd-non-commencee);   color: #fff; }
.dd-badge-envoye_greffe     { background: var(--dd-envoye-greffe);   color: #fff; }
.dd-badge-piece_manquante   { background: var(--dd-piece-manquante); color: #fff; }
.dd-badge-en_enregistrement { background: var(--dd-en-enreg);        color: #fff; }
.dd-badge-terminee          { background: var(--dd-terminee);        color: #fff; }

/* ── Boutons ligne ────────────────────────────────── */
.dd-row-btn {
    background: transparent;
    border: none;
    padding: 3px 5px;
    cursor: pointer;
    border-radius: var(--dd-radius);
    font-size: 13px;
    line-height: 1;
    transition: background .1s;
    color: var(--dd-text-muted);
}
.dd-row-btn:hover     { background: #e8eef3; color: var(--dd-text); }
.dd-row-btn-del:hover { background: #fde8e8; color: #dc2626; }

/* ── Chargement ───────────────────────────────────── */
.dd-loading {
    text-align: center;
    padding: 40px;
    color: var(--dd-text-muted);
    font-style: italic;
}

/* ══════════════════════════════════════════════════
   MODALS
══════════════════════════════════════════════════ */
.dd-overlay {
    position: fixed;
    inset: 0;
    background: rgba(0,0,0,.45);
    z-index: 9990;
}
.dd-modal {
    position: fixed;
    inset: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    z-index: 9995;
    pointer-events: none;
}
.dd-modal:not([hidden]) { pointer-events: all; }

.dd-modal-box {
    background: #fff;
    border: 1px solid var(--dd-border);
    border-radius: var(--dd-radius-lg);
    box-shadow: var(--dd-shadow);
    padding: 26px 30px 22px;
    width: 600px;
    max-width: 95vw;
    max-height: 90vh;
    overflow-y: auto;
    position: relative;
}
.dd-modal-box-sm { width: 360px; }

.dd-modal-title {
    font-size: 16px;
    font-weight: 700;
    margin-bottom: 20px;
    color: var(--dd-accent);
    border-bottom: 2px solid var(--dd-surface-2);
    padding-bottom: 10px;
}
.dd-modal-close {
    position: absolute;
    top: 14px; right: 14px;
    background: transparent;
    border: none;
    color: var(--dd-text-muted);
    font-size: 17px;
    cursor: pointer;
    line-height: 1;
    transition: color .1s;
}
.dd-modal-close:hover { color: var(--dd-text); }

.dd-form-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 13px 18px;
}
.dd-form-full { grid-column: 1 / -1; }
.dd-form-grid label {
    display: flex;
    flex-direction: column;
    gap: 4px;
    font-size: 11px;
    font-weight: 700;
    color: var(--dd-text-muted);
    text-transform: uppercase;
    letter-spacing: .06em;
}
.dd-form-grid input,
.dd-form-grid select,
.dd-form-grid textarea {
    background: #fff;
    border: 1px solid var(--dd-border);
    color: var(--dd-text);
    border-radius: var(--dd-radius);
    padding: 7px 10px;
    font-size: 13px;
    font-family: var(--dd-font);
    transition: border-color .15s;
    width: 100%;
}
.dd-form-grid input[type="color"] { padding: 2px; height: 34px; cursor: pointer; }
.dd-form-grid input:focus,
.dd-form-grid select:focus,
.dd-form-grid textarea:focus {
    outline: none;
    border-color: var(--dd-accent-h);
    box-shadow: 0 0 0 2px rgba(26,58,82,.10);
}
.dd-form-grid textarea { resize: vertical; }

.dd-modal-footer {
    display: flex;
    justify-content: flex-end;
    gap: 10px;
    margin-top: 20px;
    padding-top: 14px;
    border-top: 1px solid var(--dd-border-light);
}
.dd-btn-cancel {
    background: #fff;
    border: 1px solid var(--dd-border);
    color: var(--dd-text-muted);
    border-radius: var(--dd-radius);
    padding: 7px 18px;
    font-size: 13px;
    cursor: pointer;
    transition: all .15s;
}
.dd-btn-cancel:hover { border-color: var(--dd-text-muted); color: var(--dd-text); }
.dd-btn-save {
    background: var(--dd-accent);
    border: 1px solid var(--dd-accent-h);
    color: #fff;
    border-radius: var(--dd-radius);
    padding: 7px 22px;
    font-size: 13px;
    font-weight: 700;
    cursor: pointer;
    transition: background .15s;
}
.dd-btn-save:hover    { background: var(--dd-accent-h); }
.dd-btn-save:disabled { opacity: .5; cursor: not-allowed; }

/* ══════════════════════════════════════════════════
   TOAST
══════════════════════════════════════════════════ */
.dd-toast-container {
    position: fixed;
    bottom: 22px; right: 22px;
    z-index: 10000;
    display: flex;
    flex-direction: column;
    gap: 8px;
    pointer-events: none;
}
.dd-toast {
    background: #fff;
    border: 1px solid var(--dd-border);
    border-left: 4px solid var(--dd-accent);
    color: var(--dd-text);
    padding: 10px 16px;
    border-radius: var(--dd-radius);
    font-size: 13px;
    box-shadow: var(--dd-shadow);
    animation: dd-slide-in .2s ease;
    max-width: 300px;
}
.dd-toast-error   { border-left-color: #dc2626; }
.dd-toast-success { border-left-color: #16a34a; }
@keyframes dd-slide-in {
    from { opacity: 0; transform: translateX(14px); }
    to   { opacity: 1; transform: translateX(0); }
}

/* ── Responsive ───────────────────────────────────── */
@media (max-width: 640px) {
    :root { --dd-sidebar-w: 160px; }
    .dd-th, .dd-td { padding: 6px 8px; font-size: 12px; }
    .dd-form-grid  { grid-template-columns: 1fr; }
    .dd-form-full  { grid-column: auto; }
}

/* Reset conflits thème WordPress */
.dd-root table  { border-spacing: 0; }
.dd-root button { font-family: var(--dd-font); }

/* ══════════════════════════════════════════════════
   ÉDITION INLINE
══════════════════════════════════════════════════ */

/* Cellules éditables */
.dd-editable {
    cursor: text;
    position: relative;
}
.dd-editable:hover { background: #f0f6fa !important; }
.dd-editable.dd-editing { padding: 0 !important; background: #fff !important; }

.dd-cell-input {
    width: 100%;
    height: 100%;
    min-height: 32px;
    padding: 6px 10px;
    border: 2px solid #1a3a52;
    border-radius: 0;
    background: #fff;
    color: #1a2630;
    font-size: 13px;
    font-family: var(--dd-font);
    outline: none;
    box-shadow: 0 0 0 3px rgba(26,58,82,.12);
}
.dd-cell-date { cursor: pointer; }

/* Cellule statut — cliquable */
.dd-td-etat { cursor: pointer; }
.dd-td-etat:hover .dd-badge { filter: brightness(.9); }

/* Bouton supprimer ligne */
.dd-td-del  { width: 36px; text-align: center; }
.dd-row-btn-del {
    opacity: 0;
    background: transparent;
    border: none;
    cursor: pointer;
    font-size: 14px;
    padding: 2px 4px;
    border-radius: 3px;
    transition: opacity .15s, background .15s;
    color: #888;
}
.dd-row:hover .dd-row-btn-del { opacity: 1; }
.dd-row-btn-del:hover { background: #fde8e8; color: #dc2626; }

/* Message vide */
.dd-empty-hint {
    text-align: center;
    padding: 30px;
    color: var(--dd-text-muted);
    font-size: 13px;
}
.dd-empty-hint strong { color: var(--dd-accent); }

/* ══════════════════════════════════════════════════
   PICKER STATUT (dropdown inline)
══════════════════════════════════════════════════ */
.dd-etat-picker {
    position: fixed;
    background: #fff;
    border: 1px solid var(--dd-border);
    border-radius: var(--dd-radius-lg);
    box-shadow: var(--dd-shadow);
    z-index: 9998;
    overflow: hidden;
    min-width: 180px;
}
.dd-etat-option {
    padding: 8px 14px;
    cursor: pointer;
    font-size: 12px;
    font-weight: 600;
    color: var(--dd-text);
    transition: background .1s;
    display: flex;
    align-items: center;
    gap: 8px;
}
.dd-etat-option::before {
    content: '';
    width: 10px; height: 10px;
    border-radius: 2px;
    flex-shrink: 0;
}
.dd-etat-option[data-val="en_cours"]::before          { background: var(--dd-en-cours); }
.dd-etat-option[data-val="non_commencee"]::before     { background: var(--dd-non-commencee); }
.dd-etat-option[data-val="envoye_greffe"]::before     { background: var(--dd-envoye-greffe); }
.dd-etat-option[data-val="piece_manquante"]::before   { background: var(--dd-piece-manquante); }
.dd-etat-option[data-val="en_enregistrement"]::before { background: var(--dd-en-enreg); }
.dd-etat-option[data-val="terminee"]::before          { background: var(--dd-terminee); }
.dd-etat-option:hover   { background: var(--dd-surface); }
.dd-etat-option.current { background: #eaf0f5; font-weight: 700; }

/* ══════════════════════════════════════════════════
   RÈGLEMENT — badge + picker
══════════════════════════════════════════════════ */

/* Cellule règlement cliquable */
.dd-td-reglement {
    cursor: pointer;
    min-width: 130px;
}
.dd-td-reglement:hover .dd-reglement-badge { filter: brightness(.92); }
.dd-td-reglement:empty::after,
.dd-td-reglement:not(:has(.dd-reglement-badge))::after {
    content: '— sélectionner';
    font-size: 11px;
    color: #aab8c2;
    font-style: italic;
}

/* Badges règlement */
.dd-reglement-badge {
    display: inline-block;
    padding: 3px 9px;
    border-radius: 3px;
    font-size: 11px;
    font-weight: 700;
    letter-spacing: .03em;
    white-space: nowrap;
    text-transform: uppercase;
}
.dd-reglement-vert   { background: #16a34a; color: #fff; }
.dd-reglement-orange { background: #d97706; color: #fff; }
.dd-reglement-rouge  { background: #dc2626; color: #fff; }

/* Picker règlement */
.dd-reglement-picker {
    position: fixed;
    background: #fff;
    border: 1px solid var(--dd-border);
    border-radius: var(--dd-radius-lg);
    box-shadow: var(--dd-shadow);
    z-index: 9998;
    overflow: hidden;
    min-width: 170px;
}
.dd-reglement-option {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 8px 14px;
    cursor: pointer;
    font-size: 12px;
    font-weight: 600;
    color: var(--dd-text);
    transition: background .1s;
}
.dd-reglement-option::before {
    content: '';
    width: 10px; height: 10px;
    border-radius: 2px;
    flex-shrink: 0;
}
/* Oui (virement/CB/chèque) = vert */
.dd-reglement-option[data-val="virement"]::before,
.dd-reglement-option[data-val="cb"]::before,
.dd-reglement-option[data-val="cheque"]::before { background: #16a34a; }
/* Partiel = orange */
.dd-reglement-option[data-val="partiel"]::before { background: #d97706; }
/* Non = rouge */
.dd-reglement-option[data-val="non"]::before     { background: #dc2626; }

.dd-reglement-option:hover   { background: var(--dd-surface); }
.dd-reglement-option.current { background: #eaf0f5; font-weight: 700; }

/* Séparateur visuel entre Oui et Partiel/Non */
.dd-reglement-option[data-val="partiel"] {
    border-top: 1px solid var(--dd-border-light);
}
