/* ============================================================
   WEDORIA LISTES — Refonte back office · Phase 2 (2026-08)
   Restyle du composant .board (Clients, Événements, Devis,
   Factures, Produits, Prestataires…) + cartes Galeries.
   Chargé après shell.css. Les templates ne changent que pour
   les statuts : background:{{ hex }} → --st:{{ hex }}.
   ============================================================ */

/* ── Conteneur ── */
.board {
    border: 1px solid var(--wd-hairline);
    border-radius: var(--wd-r-card);
    box-shadow: var(--wd-shadow-soft);
}

/* ── En-têtes : eyebrows, plus de grille ── */
.board-header { border-bottom: 1px solid var(--wd-hairline-2); }
.board-header-cell {
    border-right: none;
    font-size: 0.64rem;
    font-weight: 700;
    letter-spacing: 0.14em;
    text-transform: uppercase;
    color: var(--ep-text-muted);
    padding: 12px 12px 10px;
}

/* ── Lignes : hairlines seules, hover calme ── */
.board-row {
    border-bottom: 1px solid var(--wd-hairline);
    transition: background 180ms var(--wd-ease);
}
.board-row:hover { background: #F8F6F0; }
.board-row:hover .cell-name,
.board-row:hover .board-cell.bulk-checkbox-cell { background: #F8F6F0; }
.board-cell {
    border-right: none;
    font-size: 0.85rem;
    height: 44px; min-height: 44px; max-height: 44px;
    color: var(--ep-text-secondary);
}
.board-cell.cell-name { font-weight: 600; }
.board-cell.cell-name a { transition: color 180ms var(--wd-ease); }
.board-cell.cell-name a:hover { color: var(--wd-or-profond); }

/* ── Statuts : point coloré + texte (la couleur arrive par --st) ── */
.cell-status {
    background: transparent !important; /* neutralise les aplats hérités */
    padding: 8px 12px !important;
    justify-content: flex-start;
}
.cell-status .chip {
    width: auto; height: auto;
    border-radius: 999px;
    display: inline-flex; align-items: center; gap: 7px;
    color: var(--ep-text-secondary);
    font-size: 0.78rem; font-weight: 600;
    padding: 3px 8px 3px 5px;
    transition: background 180ms var(--wd-ease), color 180ms var(--wd-ease);
}
.cell-status .chip::before {
    content: '';
    width: 7px; height: 7px; border-radius: 50%;
    background: var(--st, #9b968f);
    flex: none;
}
.cell-status .chip.chip-clickable:hover {
    background: rgba(26, 26, 31, 0.05);
    color: var(--wd-onyx);
}

/* ── Actions : fantômes, révélées au survol ── */
.cell-actions .btn,
.cell-actions .btn-icon {
    border: none !important;
    background: transparent;
    color: var(--ep-text-muted);
    width: 28px; height: 28px; padding: 0;
    display: inline-flex; align-items: center; justify-content: center;
    border-radius: 8px;
    transition: background 180ms var(--wd-ease), color 180ms var(--wd-ease);
}
.cell-actions .btn:hover {
    background: rgba(26, 26, 31, 0.06);
    color: var(--wd-onyx);
}
.cell-actions .btn.btn-outline-danger:hover {
    background: rgba(178, 90, 74, 0.09);
    color: var(--ep-danger);
}
@media (hover: hover) {
    .board-row .cell-actions { opacity: 0; transition: opacity 200ms var(--wd-ease); }
    .board-row:hover .cell-actions,
    .board-row:focus-within .cell-actions,
    .board-row .cell-actions:has(.dropdown-menu.show) { opacity: 1; }
}

/* ── Menu ⋯ de ligne (remplace crayon + poubelle) ── */
.wd-row-menu-btn {
    width: 28px; height: 28px;
    border: none; border-radius: 8px;
    background: transparent;
    color: var(--ep-text-muted);
    display: inline-flex; align-items: center; justify-content: center;
    padding: 0;
    transition: background 180ms var(--wd-ease), color 180ms var(--wd-ease);
}
.wd-row-menu-btn:hover { background: rgba(26, 26, 31, 0.06); color: var(--wd-onyx); }
.wd-row-menu-btn:focus-visible,
.wd-row-menu-btn:focus {
    outline: none;
    box-shadow: 0 0 0 3px rgba(184, 154, 94, 0.25);
}
.wd-row-menu .dropdown-menu {
    border: 1px solid var(--wd-hairline);
    box-shadow: var(--wd-shadow-lift);
    padding: 0.35rem;
    min-width: 170px;
    font-size: 0.82rem;
}
.wd-row-menu .dropdown-item {
    display: flex; align-items: center; gap: 0.55rem;
    border-radius: 8px;
    padding: 0.42rem 0.6rem;
    font-weight: 500;
    color: var(--ep-text-secondary);
}
.wd-row-menu .dropdown-item i { font-size: 0.85rem; opacity: 0.75; width: 16px; text-align: center; }
.wd-row-menu .dropdown-item:hover { background: rgba(26, 26, 31, 0.045); color: var(--wd-onyx); }
.wd-row-menu .dropdown-item.wd-menu-danger { color: var(--ep-danger); }
.wd-row-menu .dropdown-item.wd-menu-danger:hover { background: rgba(178, 90, 74, 0.07); color: var(--ep-danger); }
.wd-row-menu .dropdown-divider { border-color: var(--wd-hairline); margin: 0.3rem 0.4rem; opacity: 1; }

/* ── Ligne de résumé : fine, discrète ── */
.board-summary {
    background: transparent;
    border-top: 1px solid var(--wd-hairline-2);
}
.board-summary .board-cell {
    border-right: none;
    font-size: 0.72rem;
    color: var(--ep-text-muted);
    font-weight: 600;
}
.board-summary-bar {
    position: absolute; top: 50%; transform: translateY(-50%);
    left: 12px; right: 12px; width: auto; height: 4px;
    border-radius: 99px; overflow: hidden; gap: 0;
}

/* ── Ajout en pied + toolbar ── */
.board-add-row { border-top: 1px solid var(--wd-hairline); }
.board-toolbar-add {
    background: var(--wd-onyx);
    color: var(--wd-ivoire);
    border-radius: 999px;
    padding: 7px 16px;
    font-size: 0.8rem; font-weight: 600;
    box-shadow: var(--wd-shadow-soft);
    transition: transform 250ms var(--wd-ease), box-shadow 250ms var(--wd-ease);
}
.board-toolbar-add:hover {
    background: var(--wd-onyx);
    color: var(--wd-ivoire);
    transform: translateY(-1px);
    box-shadow: var(--wd-shadow-lift);
}
.board-toolbar-add:active { transform: scale(0.98); }
.board-toolbar-add i { color: var(--wd-or); }

/* ── Mobile : 3 zones (nom / statut en point / actions) ── */
@media (max-width: 767.98px) {
    .board-header { display: none; }
    .board-cell:not(.cell-name):not(.cell-status):not(.cell-actions):not(.bulk-checkbox-cell) {
        display: none !important;
    }
    .board-cell { min-width: 0 !important; height: 48px; min-height: 48px; max-height: 48px; }
    .board-cell.cell-name {
        flex: 1 1 auto !important;
        width: auto !important;
        position: static;
        border-left: none;
    }
    .board-cell.cell-status { width: auto !important; flex: none !important; }
    .cell-status .chip { font-size: 0; gap: 0; padding: 6px; }
    .cell-status .chip::before { width: 8px; height: 8px; }
    .cell-actions { width: auto !important; opacity: 1; }
    .board-summary { display: none; }
    .board-toolbar-item, .board-toolbar-more, .board-toolbar-separator { display: none !important; }
}

/* ============================================================
   Cartes Galeries — cover 3:2, titre en overlay, menu ⋯
   ============================================================ */
.wd-gcards {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
    gap: 1.2rem;
}
.wd-gcard {
    position: relative;
    aspect-ratio: 3 / 2;
    border-radius: var(--wd-r-card);
    overflow: hidden;
    background: linear-gradient(160deg, #23222A, var(--wd-onyx));
    box-shadow: var(--wd-shadow-soft);
    transition: transform 300ms var(--wd-ease), box-shadow 300ms var(--wd-ease);
}
.wd-gcard:hover { transform: translateY(-3px); box-shadow: var(--wd-shadow-lift); }
.wd-gcard-cover {
    position: absolute; inset: 0;
    width: 100%; height: 100%;
    object-fit: cover;
    transition: transform 700ms var(--wd-ease);
}
.wd-gcard:hover .wd-gcard-cover { transform: scale(1.04); }
.wd-gcard-veil {
    position: absolute; inset: 0;
    background: linear-gradient(180deg, rgba(26, 26, 31, 0.05) 35%, rgba(26, 26, 31, 0.74) 100%);
}
.wd-gcard-blank {
    position: absolute; inset: 0;
    display: flex; align-items: center; justify-content: center;
    color: rgba(250, 247, 242, 0.28);
    font-size: 2.2rem;
}
.wd-gcard-link { position: absolute; inset: 0; z-index: 1; }
.wd-gcard-body {
    position: absolute; left: 0; right: 0; bottom: 0; z-index: 2;
    padding: 0.95rem 1.05rem;
    color: #fff;
    pointer-events: none;
}
.wd-gcard-title { font-size: 1rem; font-weight: 600; letter-spacing: -0.01em; }
.wd-gcard-meta {
    display: flex; align-items: center; gap: 0.85rem;
    margin-top: 3px;
    font-size: 0.73rem; font-weight: 500;
    color: rgba(255, 255, 255, 0.78);
    overflow: hidden;
}
.wd-gcard-meta span { white-space: nowrap; }
.wd-gcard-meta i { font-size: 0.78rem; }
.wd-gcard-status {
    position: absolute; top: 0.8rem; left: 0.9rem; z-index: 2;
    display: inline-flex; align-items: center; gap: 6px;
    background: rgba(250, 247, 242, 0.92);
    -webkit-backdrop-filter: blur(6px); backdrop-filter: blur(6px);
    border-radius: 999px;
    padding: 3px 10px 3px 8px;
    font-size: 0.7rem; font-weight: 700;
    color: var(--wd-onyx);
}
.wd-gcard-status::before {
    content: '';
    width: 6px; height: 6px; border-radius: 50%;
    background: var(--st, #9b968f);
}
.wd-gcard-menu { position: absolute; top: 0.65rem; right: 0.65rem; z-index: 3; }
.wd-gcard-menu > button {
    width: 30px; height: 30px;
    border: none; border-radius: 50%;
    background: rgba(26, 26, 31, 0.42);
    -webkit-backdrop-filter: blur(6px); backdrop-filter: blur(6px);
    color: #fff;
    display: flex; align-items: center; justify-content: center;
    transition: background 200ms var(--wd-ease);
}
.wd-gcard-menu > button:hover { background: rgba(26, 26, 31, 0.62); }
.wd-gcard-menu .dropdown-menu {
    border: 1px solid var(--wd-hairline);
    border-radius: var(--wd-r-panel);
    box-shadow: var(--wd-shadow-lift);
    padding: 0.35rem;
    min-width: 170px;
    font-size: 0.82rem;
}
.wd-gcard-menu .dropdown-item {
    display: flex; align-items: center; gap: 0.55rem;
    border-radius: 8px;
    padding: 0.42rem 0.6rem;
    font-weight: 500;
    color: var(--ep-text-secondary);
}
.wd-gcard-menu .dropdown-item:hover { background: rgba(26, 26, 31, 0.045); color: var(--wd-onyx); }
.wd-gcard-menu .dropdown-item.wd-menu-danger { color: var(--ep-danger); }
.wd-gcard-menu .dropdown-item.wd-menu-danger:hover { background: rgba(178, 90, 74, 0.07); color: var(--ep-danger); }

@media (max-width: 767.98px) {
    .wd-gcards { grid-template-columns: 1fr 1fr; gap: 0.8rem; }
}
@media (max-width: 480px) {
    .wd-gcards { grid-template-columns: 1fr; }
}
