@import url('https://fonts.googleapis.com/css2?family=Bricolage+Grotesque:opsz,wght@12..96,500;600;700;800&family=Figtree:wght@400;500;600;700&display=swap');

html, body {
    font-family: 'Figtree', 'Segoe UI', 'Helvetica', 'Arial', sans-serif;
    margin: 0;
    padding: 0;
    background: #F1F4F2;
    min-height: 100%;
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
}

/* ---------- Scrollbar ---------- */
::-webkit-scrollbar { width: 6px; height: 6px; }
::-webkit-scrollbar-track { background: transparent; }
::-webkit-scrollbar-thumb { background: rgba(28,33,43,0.15); border-radius: 99px; }
::-webkit-scrollbar-thumb:hover { background: rgba(28,33,43,0.28); }

/* ---------- Blazor error ---------- */
#blazor-error-ui {
    display: none !important;
}

#blazor-error-ui .dismiss {
    cursor: pointer;
    position: absolute;
    right: 0.75rem;
    top: 0.5rem;
}

.blazor-error-boundary {
    background: url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNTYiIGhlaWdodD0iNDkiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIG92ZXJmbG93PSJoaWRkZW4iPjxkZWZzPjxjbGlwUGF0aCBpZD0iY2xpcDAiPjxyZWN0IHg9IjIzNSIgeT0iNTEiIHdpZHRoPSI1NiIgaGVpZ2h0PSI0OSIvPjwvY2xpcFBhdGg+PC9kZWZzPjxnIGNsaXAtcGF0aD0idXJsKCNjbGlwMCkiIHRyYW5zZm9ybT0idHJhbnNsYXRlKC0yMzUgLTUxKSI+PHBhdGggZD0iTTI2My41MDYgNTFDMjY0LjcxNyA1MSAyNjUuODEzIDUxLjQ4MzcgMjY2LjYwNiA1Mi4yNjU4TDI2Ni42MDYgNTIuMjY1OEwyODkuMzk0IDc0LjQzMzFDMjkwLjUgNzUuNTM4NCAyOTAuNSA3Ny4yNjg2IDI4OS4zOTQgNzguMzc0NUwyODkuMzk0IDc4LjM3NDVMMjY2LjYwNiA5Ny4xMjA3QzI2NC43NTcgOTguOTI3MSAyNjEuNzE1IDk4Ljk0NSAyNTkuOTYzIDk3LjA3NjdMMjU5Ljk2MyA5Ny4wNzY3TDIzNy4xNzYgNzguMzI3OUMyMzYuMjY3IDc3LjQyODcgMjM1LjcxNSA3Ni4xODMzIDIzNS43MTUgNzQuOTUzM0wyMzUuNzE1IDc0Ljk1MzNMMjM1LjcxNSA1765a1NjCyMzUuNzE1IDUyLjg1IDIzNi42MDYgNTEuOTYxOSAyMzcuNzQ0IDUxLjk2MTlMMjM3Ljc0NCA1MS45NjE5TDI2My41MDYgNTFaIiBmaWxsPSIjRkY1NzUyIiBmaWxsLXJ1bGU9ImV2ZW5vZGQiLz48L2c+PC9zdmc+) no-repeat 1rem/1.8rem, #b32121;
    padding: 1rem 1rem 1rem 3.7rem;
    color: white;
}

.blazor-error-boundary::after {
    content: "An error has occurred."
}

/* ---------- Spinner ---------- */
.spinner {
    border: 3px solid rgba(255,255,255,0.15);
    border-top: 3px solid rgba(255,255,255,0.85);
    border-radius: 50%;
    width: 36px;
    height: 36px;
    animation: spin 0.9s linear infinite;
    margin: 20px auto;
}

@keyframes spin {
    0% { transform: rotate(0deg); }
    100% { transform: rotate(360deg); }
}

/* ---------- Animations ---------- */
@keyframes fadeInUp {
    from { opacity: 0; transform: translateY(16px); }
    to   { opacity: 1; transform: translateY(0); }
}

@keyframes fadeIn {
    from { opacity: 0; }
    to   { opacity: 1; }
}

@keyframes scaleIn {
    from { opacity: 0; transform: scale(0.95); }
    to   { opacity: 1; transform: scale(1); }
}

@keyframes slideInLeft {
    from { opacity: 0; transform: translateX(-20px); }
    to   { opacity: 1; transform: translateX(0); }
}

.animate-fade-up { animation: fadeInUp 0.4s ease-out both; }
.animate-fade-in { animation: fadeIn 0.35s ease-out both; }
.animate-scale-in { animation: scaleIn 0.3s ease-out both; }

/* Staggered delays */
.delay-1 { animation-delay: 0.06s; }
.delay-2 { animation-delay: 0.12s; }
.delay-3 { animation-delay: 0.18s; }
.delay-4 { animation-delay: 0.24s; }

/* ---------- Global enhancements ---------- */
.mud-table-container { border-radius: 12px; }

.mud-table .mud-table-head .mud-table-cell {
    font-weight: 600;
    font-size: 0.75rem;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    color: #5f6b7a;
    background: #f8f9fb;
    border-bottom: 2px solid rgba(28,33,43,0.06);
}

.mud-table .mud-table-body .mud-table-row:hover {
    background: rgba(14,107,107,0.04) !important;
}

.mud-table .mud-table-body .mud-table-cell {
    border-bottom: 1px solid rgba(28,33,43,0.04);
}

.mud-chip { font-weight: 500; letter-spacing: 0.02em; }

/* ---------- Utility classes ---------- */
.muted { color: #5f6b7a; }
.text-gradient {
    background: linear-gradient(135deg, #0E6B6B 0%, #062A2E 100%);
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    background-clip: text;
}

/* ---------- Page hero (reusable) ---------- */
.page-hero {
    position: relative;
    border-radius: 20px;
    overflow: hidden;
    background: linear-gradient(135deg, #F1F4F2 0%, #ffffff 50%, #eef2f8 100%);
    border: 1px solid rgba(28,33,43,0.06);
    box-shadow: 0 8px 32px rgba(18,24,32,0.06);
    padding: 24px;
}

.page-hero::before {
    content: "";
    position: absolute;
    right: -60px;
    top: -80px;
    width: 200px;
    height: 200px;
    border-radius: 999px;
    background: radial-gradient(circle at 40% 40%, rgba(14,107,107,0.10), transparent 65%);
    pointer-events: none;
}

.page-hero::after {
    content: "";
    position: absolute;
    left: -40px;
    bottom: -60px;
    width: 140px;
    height: 140px;
    border-radius: 999px;
    background: radial-gradient(circle, rgba(59,156,154,0.07), transparent 65%);
    pointer-events: none;
}

/* ---------- Page card (reusable for filters/tables) ---------- */
.page-card {
    border-radius: 16px;
    border: 1px solid rgba(28,33,43,0.06);
    background: #ffffff;
    box-shadow: 0 4px 20px rgba(18,24,32,0.04);
}

/* ---------- Stat card (reusable) ---------- */
.stat-mini {
    border-radius: 14px;
    border: 1px solid rgba(28,33,43,0.06);
    background: #ffffff;
    box-shadow: 0 2px 12px rgba(18,24,32,0.04);
    padding: 16px;
    text-align: center;
    transition: transform 0.2s ease, box-shadow 0.2s ease;
}

.stat-mini:hover {
    transform: translateY(-2px);
    box-shadow: 0 6px 20px rgba(18,24,32,0.08);
}

/* ---------- Dialog overrides ---------- */
.mud-dialog {
    border-radius: 20px !important;
    overflow: hidden;
    box-shadow: 0 24px 64px rgba(0,0,0,0.18), 0 0 0 1px rgba(28,33,43,0.04) !important;
}

.mud-dialog .mud-dialog-title {
    padding: 0 !important;
}

.mud-dialog .mud-dialog-content {
    padding: 24px 28px 8px !important;
}

.mud-dialog .mud-dialog-actions {
    padding: 16px 28px 24px !important;
    gap: 8px;
}

.dialog-header {
    display: flex;
    align-items: center;
    gap: 14px;
    padding: 24px 28px 20px;
    background: linear-gradient(135deg, #F1F4F2 0%, #ffffff 100%);
    border-bottom: 1px solid rgba(28,33,43,0.06);
}

.dialog-header-icon {
    width: 42px;
    height: 42px;
    border-radius: 12px;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
}

.dialog-header-icon.dhi-primary {
    background: rgba(14,107,107,0.1);
    color: #0E6B6B;
}

.dialog-header-icon.dhi-info {
    background: rgba(2,136,209,0.1);
    color: #0288d1;
}

.dialog-header-icon.dhi-warning {
    background: rgba(237,108,2,0.1);
    color: #ed6c02;
}

.dialog-header-icon.dhi-error {
    background: rgba(211,47,47,0.1);
    color: #d32f2f;
}

.dialog-title {
    font-weight: 600;
    color: #1c212b;
    font-size: 1.125rem;
    line-height: 1.3;
}

.dialog-subtitle {
    font-size: 0.8125rem;
    color: #5f6b7a;
    margin-top: 2px;
}

.dialog-section-label {
    font-size: 0.6875rem;
    font-weight: 600;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: #8d95a0;
    margin-bottom: 8px;
    margin-top: 16px;
}

.dialog-btn-cancel {
    text-transform: none !important;
    font-weight: 500 !important;
    border-radius: 10px !important;
    color: #5f6b7a !important;
}

.dialog-btn-submit {
    text-transform: none !important;
    font-weight: 600 !important;
    border-radius: 10px !important;
    padding: 8px 24px !important;
    box-shadow: 0 2px 8px rgba(14,107,107,0.25) !important;
}

.dialog-btn-submit:hover {
    box-shadow: 0 4px 14px rgba(14,107,107,0.35) !important;
}

/* ═══════════════════════════════════════════════════════════════
   DARK MODE OVERRIDES  (.dark-layout on MudLayout root)
═══════════════════════════════════════════════════════════════ */

/* Scrollbar */
.dark-layout ::-webkit-scrollbar-thumb { background: rgba(255,255,255,0.10); }
.dark-layout ::-webkit-scrollbar-thumb:hover { background: rgba(255,255,255,0.20); }

/* ── Page hero ─────────────────────────────────────────────── */
.dark-layout .page-hero {
    background: linear-gradient(135deg, #161b27 0%, #1c2236 55%, #161b27 100%);
    border-color: rgba(255,255,255,0.06);
    box-shadow: 0 8px 32px rgba(0,0,0,0.35), inset 0 1px 0 rgba(255,255,255,0.04);
}
.dark-layout .page-hero::before {
    background: radial-gradient(circle at 40% 40%, rgba(77,158,246,0.14), transparent 65%);
}
.dark-layout .page-hero::after {
    background: radial-gradient(circle, rgba(129,140,248,0.08), transparent 65%);
}

/* Hero text — overrides inline style="" */
.dark-layout .page-hero .mud-typography-h1,
.dark-layout .page-hero .mud-typography-h2,
.dark-layout .page-hero .mud-typography-h3,
.dark-layout .page-hero .mud-typography-h4,
.dark-layout .page-hero .mud-typography-h5,
.dark-layout .page-hero .mud-typography-h6 {
    color: var(--mud-palette-text-primary) !important;
}
.dark-layout .page-hero .mud-typography-overline {
    color: var(--mud-palette-primary) !important;
}
.dark-layout .page-hero .mud-typography-body1,
.dark-layout .page-hero .mud-typography-body2,
.dark-layout .page-hero .mud-typography-subtitle1,
.dark-layout .page-hero .mud-typography-caption {
    color: var(--mud-palette-text-secondary) !important;
}

/* ── Page card ─────────────────────────────────────────────── */
.dark-layout .page-card {
    background: #161b27 !important;
    border-color: rgba(255,255,255,0.06) !important;
    box-shadow: 0 4px 24px rgba(0,0,0,0.28) !important;
}

/* ── Stat mini ─────────────────────────────────────────────── */
.dark-layout .stat-mini {
    background: #161b27 !important;
    border-color: rgba(255,255,255,0.06) !important;
    box-shadow: 0 2px 12px rgba(0,0,0,0.22) !important;
}
.dark-layout .stat-mini:hover {
    box-shadow: 0 6px 22px rgba(0,0,0,0.35) !important;
}

/* ── Utility ───────────────────────────────────────────────── */
.dark-layout .muted { color: #64748b; }
.dark-layout .text-gradient {
    background: linear-gradient(135deg, #4FC3BE 0%, #E9A21B 100%);
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    background-clip: text;
}

/* ── Tables ────────────────────────────────────────────────── */
.dark-layout .mud-table .mud-table-head .mud-table-cell {
    color: #475569;
    background: rgba(11,14,22,0.7);
    border-bottom: 2px solid rgba(255,255,255,0.06);
}
.dark-layout .mud-table .mud-table-body .mud-table-row:hover {
    background: rgba(77,158,246,0.06) !important;
}
.dark-layout .mud-table .mud-table-body .mud-table-cell {
    border-bottom: 1px solid rgba(255,255,255,0.04);
}

/* ── Dialogs ───────────────────────────────────────────────── */
.dark-layout .mud-dialog {
    box-shadow: 0 24px 64px rgba(0,0,0,0.55), 0 0 0 1px rgba(255,255,255,0.06) !important;
}
.dark-layout .dialog-header {
    background: linear-gradient(135deg, #161b27 0%, #1c2236 100%);
    border-bottom-color: rgba(255,255,255,0.07);
}
.dark-layout .dialog-title   { color: #f1f5f9; }
.dark-layout .dialog-subtitle { color: #64748b; }
.dark-layout .dialog-section-label { color: #475569; }
.dark-layout .dialog-btn-cancel { color: #64748b !important; }
.dark-layout .dialog-btn-submit {
    box-shadow: 0 2px 8px rgba(77,158,246,0.3) !important;
}
.dark-layout .dialog-btn-submit:hover {
    box-shadow: 0 4px 16px rgba(77,158,246,0.45) !important;
}

/* ── Chip ──────────────────────────────────────────────────── */
.dark-layout .mud-chip { border-color: rgba(255,255,255,0.08) !important; }

/* ── Projet détail ─────────────────────────────────────────── */
.dark-layout .inner-card {
    background: rgba(11,14,22,0.6) !important;
    border-color: rgba(255,255,255,0.06) !important;
}
.dark-layout .phase-card {
    background: #1c2236 !important;
    border-color: rgba(255,255,255,0.06) !important;
}
.dark-layout .member-card {
    background: #1c2236 !important;
    border-color: rgba(255,255,255,0.06) !important;
}
.dark-layout .member-card:hover {
    box-shadow: 0 4px 18px rgba(0,0,0,0.35) !important;
}

/* KPI pastel → version sombre saturée */
.dark-layout .kpi-blue   { background: linear-gradient(135deg, rgba(37,99,235,0.20) 0%, rgba(59,130,246,0.14) 100%); }
.dark-layout .kpi-green  { background: linear-gradient(135deg, rgba(22,163,74,0.20) 0%, rgba(34,197,94,0.14) 100%); }
.dark-layout .kpi-orange { background: linear-gradient(135deg, rgba(234,88,12,0.22) 0%, rgba(249,115,22,0.15) 100%); }
.dark-layout .kpi-red    { background: linear-gradient(135deg, rgba(220,38,38,0.22) 0%, rgba(248,113,113,0.14) 100%); }
.dark-layout .kpi-slate  { background: linear-gradient(135deg, rgba(71,85,105,0.25) 0%, rgba(100,116,139,0.18) 100%); }

/* Inline style overrides : titres colorés dans page-hero */
.dark-layout .page-hero .mud-button-root[style*="color:#5f6b7a"] {
    color: #64748b !important;
}
/* Tables avec border inline style (border:1px solid rgba(28,33,43,…)) */
.dark-layout [style*="border:1px solid rgba(28,33,43"] {
    border-color: rgba(255,255,255,0.07) !important;
}
/* Textes budgets colorés inline (#e65100, #2e7d32, #b71c1c) — on utilise filter */
.dark-layout .mud-typography[style*="color:#e65100"],
.dark-layout .mud-typography[style*="color:#2e7d32"],
.dark-layout .mud-typography[style*="color:#b71c1c"] {
    filter: brightness(1.4) saturate(0.85);
}

/* ── Tabs — light & dark ───────────────────────────────────── */
.mud-tabs .mud-tab-panel { background: transparent; }
.mud-tabs-toolbar {
    background: #f8fafd !important;
    border-bottom: 1px solid rgba(28,33,43,0.07);
}
.mud-tab {
    color: #8d95a0 !important;
    font-weight: 500;
    text-transform: none !important;
    letter-spacing: 0.01em;
}
.mud-tab.mud-tab-active {
    color: #0A3F44 !important;
    font-weight: 600;
}
.mud-tab-slider {
    background: #0E6B6B !important;
    height: 2px !important;
}

/* Dark overrides */
.dark-layout .mud-tabs-toolbar {
    background: rgba(11,14,22,0.5) !important;
    border-bottom-color: rgba(255,255,255,0.06);
}
.dark-layout .mud-tab {
    color: #64748b !important;
}
.dark-layout .mud-tab.mud-tab-active {
    color: #f1f5f9 !important;
}
.dark-layout .mud-tab-slider {
    background: #4FC3BE !important;
}

/* ── Projets page ──────────────────────────────────────────── */
.dark-layout .project-card {
    background: #161b27 !important;
    border-color: rgba(255,255,255,0.06) !important;
    box-shadow: 0 4px 20px rgba(0,0,0,0.28) !important;
}
.dark-layout .project-card:hover {
    box-shadow: 0 8px 32px rgba(0,0,0,0.40) !important;
}
.dark-layout .project-card .mud-divider {
    border-color: rgba(255,255,255,0.06) !important;
}

/* ── BienDetail ────────────────────────────────────────────── */
.dark-layout .info-section {
    background: rgba(11,14,22,0.5) !important;
    border-color: rgba(255,255,255,0.06) !important;
}
.dark-layout .section-title {
    color: #4FC3BE !important;
}
.dark-layout .travaux-card {
    border-color: rgba(255,255,255,0.06) !important;
}
.dark-layout .travaux-card-header {
    background: rgba(11,14,22,0.5) !important;
    border-bottom-color: rgba(255,255,255,0.06) !important;
}

/* Chips status bien */
.dark-layout .status-chip-disponible { background:rgba(34,197,94,0.16)  !important; color:#4ade80 !important; }
.dark-layout .status-chip-occupe     { background:rgba(77,158,246,0.18) !important; color:#8ADBD6 !important; }
.dark-layout .status-chip-travaux    { background:rgba(251,146,60,0.18) !important; color:#fdba74 !important; }
.dark-layout .status-chip-reserve    { background:rgba(192,132,252,0.18)!important; color:#d8b4fe !important; }
.dark-layout .status-chip-suspendu   { background:rgba(148,163,184,0.14)!important; color:#94a3b8 !important; }

/* Chips contrat */
.dark-layout .contrat-actif   { background:rgba(34,197,94,0.16)  !important; color:#4ade80 !important; }
.dark-layout .contrat-expire  { background:rgba(148,163,184,0.14) !important; color:#94a3b8 !important; }
.dark-layout .contrat-resilie { background:rgba(248,113,113,0.18) !important; color:#fca5a5 !important; }
.dark-layout .contrat-suspendu{ background:rgba(251,146,60,0.18)  !important; color:#fdba74 !important; }

/* Chips paiement */
.dark-layout .paiement-paye    { background:rgba(34,197,94,0.16)  !important; color:#4ade80 !important; }
.dark-layout .paiement-retard  { background:rgba(248,113,113,0.18) !important; color:#fca5a5 !important; }
.dark-layout .paiement-attente { background:rgba(148,163,184,0.14) !important; color:#94a3b8 !important; }
.dark-layout .paiement-partiel { background:rgba(251,146,60,0.18)  !important; color:#fdba74 !important; }
.dark-layout .paiement-annule  { background:rgba(148,163,184,0.10) !important; color:#64748b !important; }

/* Chips priorité */
.dark-layout .priorite-urgente { background:rgba(248,113,113,0.18) !important; color:#fca5a5 !important; }
.dark-layout .priorite-haute   { background:rgba(251,146,60,0.18)  !important; color:#fdba74 !important; }
.dark-layout .priorite-normale { background:rgba(77,158,246,0.18)  !important; color:#8ADBD6 !important; }
.dark-layout .priorite-faible  { background:rgba(148,163,184,0.14) !important; color:#94a3b8 !important; }

/* Chips incident */
.dark-layout .incident-ouvert   { background:rgba(248,113,113,0.18) !important; color:#fca5a5 !important; }
.dark-layout .incident-en_cours { background:rgba(251,146,60,0.18)  !important; color:#fdba74 !important; }
.dark-layout .incident-resolu   { background:rgba(34,197,94,0.16)   !important; color:#4ade80 !important; }
.dark-layout .incident-clos     { background:rgba(148,163,184,0.14) !important; color:#94a3b8 !important; }
.dark-layout .incident-annule   { background:rgba(148,163,184,0.10) !important; color:#64748b !important; }

/* Chips travaux */
.dark-layout .tw-planifie         { background:rgba(77,158,246,0.18)  !important; color:#8ADBD6 !important; }
.dark-layout .tw-en_attente_devis { background:rgba(103,232,249,0.16) !important; color:#67e8f9 !important; }
.dark-layout .tw-devis_accepte    { background:rgba(192,132,252,0.18) !important; color:#d8b4fe !important; }
.dark-layout .tw-en_cours         { background:rgba(251,146,60,0.18)  !important; color:#fdba74 !important; }
.dark-layout .tw-suspendu         { background:rgba(148,163,184,0.14) !important; color:#94a3b8 !important; }
.dark-layout .tw-termine          { background:rgba(34,197,94,0.16)   !important; color:#4ade80 !important; }
.dark-layout .tw-annule           { background:rgba(148,163,184,0.10) !important; color:#64748b !important; }

/* Chips devis */
.dark-layout .devis-en_attente { background:rgba(148,163,184,0.14) !important; color:#94a3b8 !important; }
.dark-layout .devis-accepte    { background:rgba(34,197,94,0.16)   !important; color:#4ade80 !important; }
.dark-layout .devis-refuse     { background:rgba(248,113,113,0.18) !important; color:#fca5a5 !important; }

/* Chips EDL */
.dark-layout .edl-chip-entrant { background:rgba(77,158,246,0.18)  !important; color:#8ADBD6 !important; }
.dark-layout .edl-chip-sortant { background:rgba(192,132,252,0.18) !important; color:#d8b4fe !important; }
.dark-layout .edl-brouillon    { background:rgba(148,163,184,0.14) !important; color:#94a3b8 !important; }
.dark-layout .edl-signe        { background:rgba(34,197,94,0.16)   !important; color:#4ade80 !important; }
.dark-layout .edl-archive      { background:rgba(148,163,184,0.10) !important; color:#64748b !important; }

/* ── Parc page ─────────────────────────────────────────────── */
.dark-layout .stat-card {
    background: #161b27 !important;
    border-color: rgba(255,255,255,0.06) !important;
    box-shadow: 0 2px 8px rgba(0,0,0,0.22) !important;
}
/* Brighten dark stat numbers so they're visible on dark bg */
.dark-layout .stat-card .mud-typography-h4 {
    filter: brightness(1.55) saturate(0.9);
}

.dark-layout .bien-card {
    background: #161b27 !important;
    border-color: rgba(255,255,255,0.06) !important;
    box-shadow: 0 4px 20px rgba(0,0,0,0.28) !important;
}
.dark-layout .bien-card:hover {
    box-shadow: 0 8px 32px rgba(0,0,0,0.40) !important;
}
/* Divider inside bien-card */
.dark-layout .bien-card .mud-divider {
    border-color: rgba(255,255,255,0.06) !important;
}

/* ── Home page ─────────────────────────────────────────────── */
.dark-layout .page-header {
    border-bottom-color: rgba(255,255,255,0.06);
}
.dark-layout .page-header-title {
    color: #e2e8f0;
}
.dark-layout .section-title {
    color: #64748b;
}
.dark-layout .section-header-icon {
    background: rgba(77,158,246,0.12) !important;
    filter: brightness(1.1);
}
.dark-layout .tile:hover {
    filter: brightness(1.08);
}

/* ── NavMenu sidebar ───────────────────────────────────────── */
.dark-layout .nav-brand:hover {
    background: rgba(77,158,246,0.08) !important;
}
.dark-layout .nav-brand-text {
    color: #e2e8f0 !important;
}
.dark-layout .nav-section {
    color: #475569 !important;
}
.dark-layout .side-nav .mud-nav-link {
    color: #94a3b8 !important;
}
.dark-layout .side-nav .mud-nav-link .mud-nav-link-icon {
    color: #475569 !important;
}
.dark-layout .side-nav .mud-nav-link.active {
    background: linear-gradient(135deg, rgba(77,158,246,0.14) 0%, rgba(77,158,246,0.08) 100%) !important;
    color: #f1f5f9 !important;
}
.dark-layout .side-nav .mud-nav-link.active .mud-nav-link-icon {
    color: #4FC3BE !important;
}
.dark-layout .side-nav .mud-nav-link:hover:not(.active) {
    background: rgba(255,255,255,0.05) !important;
    color: #e2e8f0 !important;
}
.dark-layout .side-nav .mud-nav-link:hover:not(.active) .mud-nav-link-icon {
    color: #94a3b8 !important;
}

/* ---------- Responsive ---------- */
@media (max-width: 600px) {
    .page-hero { padding: 20px; border-radius: 16px; }
    .page-hero::before { display: none; }
    .page-hero::after { display: none; }

    /* Dialogs full-screen sur mobile */
    .mud-dialog-container {
        align-items: flex-end !important;
        padding: 0 !important;
    }

    .mud-dialog {
        width: 100vw !important;
        max-width: 100vw !important;
        max-height: 92dvh !important;
        height: 92dvh !important;
        border-radius: 20px 20px 0 0 !important;
        margin: 0 !important;
        display: flex !important;
        flex-direction: column !important;
        overflow: hidden !important;
    }

    .mud-dialog .mud-dialog-title {
        flex-shrink: 0 !important;
    }

    .mud-dialog .mud-dialog-content {
        padding: 16px 16px 8px !important;
        overflow-y: auto !important;
        flex: 1 1 auto !important;
        min-height: 0 !important;
    }

    .mud-dialog .mud-dialog-actions {
        padding: 12px 16px env(safe-area-inset-bottom, 20px) !important;
        gap: 8px;
        flex-shrink: 0 !important;
        background: var(--mud-palette-surface);
        border-top: 1px solid var(--mud-palette-divider);
    }

    .dialog-header {
        padding: 16px 16px 14px;
        flex-shrink: 0 !important;
    }

    .dialog-btn-cancel,
    .dialog-btn-submit {
        flex: 1 !important;
    }
}

/* ═══════════════════════════════════════════════════════════════
   Identité SAYTUKO — titres, accessibilité, mobile
   ═══════════════════════════════════════════════════════════════ */
h1, h2, h3, h4, .mud-typography-h1, .mud-typography-h2, .mud-typography-h3,
.mud-typography-h4, .mud-typography-h5, .mud-typography-h6 {
    font-family: 'Bricolage Grotesque', 'Figtree', 'Segoe UI', sans-serif;
    letter-spacing: -0.01em;
}

/* Focus clavier visible partout */
a:focus-visible, button:focus-visible, .mud-nav-link:focus-visible,
.mud-button-root:focus-visible, .mud-icon-button:focus-visible, input:focus-visible {
    outline: 2px solid #E9A21B;
    outline-offset: 2px;
}

/* Texte secondaire : contraste suffisant */
.muted { color: #4d5866; }

/* Zones tactiles confortables sur écran tactile */
@media (pointer: coarse) {
    .mud-icon-button { min-width: 44px; min-height: 44px; }
    .mud-nav-link { min-height: 46px; }
    .mud-button-root { min-height: 40px; }
    .mud-input-control > .mud-input-control-input-container > .mud-input > input { min-height: 28px; }
}

/* Tableaux : empilés en cartes sur téléphone */
@media (max-width: 599px) {
    .mud-table-root .mud-table-body .mud-table-row {
        border: 1px solid rgba(28,33,43,0.08);
        border-radius: 12px;
        margin-bottom: 10px;
        padding: 6px 4px;
        background: #fff;
    }
    .mud-table-root .mud-table-body .mud-table-cell { border-bottom: none; padding: 6px 12px; }
    .dark-layout .mud-table-root .mud-table-body .mud-table-row { background: #161b27; border-color: rgba(255,255,255,0.08); }
    .mud-table-pagination-toolbar { flex-wrap: wrap; justify-content: center; }
}

/* En-têtes de page compacts, boutons d'action pleine largeur sur mobile */
@media (max-width: 599px) {
    .page-hero { padding: 16px !important; border-radius: 14px !important; }
    .page-hero .mud-typography-h4 { font-size: 1.35rem; }
    .page-hero .mud-stack-row { flex-wrap: wrap; }
    .page-hero .action-btn { width: 100%; }
    .mud-dialog { margin: 12px !important; width: calc(100vw - 24px) !important; max-width: none !important; max-height: calc(100dvh - 24px); }
    .mud-dialog .mud-dialog-content { max-height: calc(100dvh - 190px); overflow-y: auto; }
}

/* États vides : une invitation à agir */
.empty-state {
    display: flex; flex-direction: column; align-items: center; text-align: center;
    gap: 10px; padding: 36px 16px; color: #4d5866;
}
.empty-state .mud-icon-root { font-size: 2.6rem; color: #3B9C9A; }
.empty-state-title { font-family: 'Bricolage Grotesque', 'Figtree', sans-serif; font-weight: 700; font-size: 1.15rem; color: #0A3F44; }
.dark-layout .empty-state { color: #94a3b8; }
.dark-layout .empty-state-title { color: #e8f3f2; }

@media (prefers-reduced-motion: reduce) {
    *, *::before, *::after { animation-duration: 0.01ms !important; animation-iteration-count: 1 !important; transition-duration: 0.01ms !important; }
}

/* ═══════════════════════════════════════════════════════════════
   Boîtes de confirmation (ShowMessageBox) — formulaires exclus
   (les dialogues avec .dialog-header gardent leur propre en-tête)
   ═══════════════════════════════════════════════════════════════ */
.mud-overlay-dialog .mud-overlay-scrim {
    background: rgba(6, 42, 46, 0.52) !important;
    backdrop-filter: blur(3px);
}

.mud-dialog .mud-dialog-title > .mud-typography-h6 {
    padding: 26px 28px 2px;
    font-family: 'Bricolage Grotesque', 'Figtree', 'Segoe UI', sans-serif;
    font-size: 1.3rem;
    font-weight: 700;
    letter-spacing: -0.01em;
    color: #0A3F44;
}

.mud-dialog:not(:has(.dialog-header)) .mud-dialog-content {
    padding: 10px 28px 20px !important;
    color: #3d4654;
    line-height: 1.6;
}

.mud-dialog:not(:has(.dialog-header)) .mud-dialog-actions {
    padding: 14px 20px !important;
    gap: 10px;
    justify-content: flex-end;
    background: rgba(28, 33, 43, 0.03);
    border-top: 1px solid rgba(28, 33, 43, 0.07);
}

.mud-dialog:not(:has(.dialog-header)) .mud-dialog-actions .mud-button-root {
    min-height: 42px;
    padding: 8px 20px;
    border-radius: 10px;
    text-transform: none;
    font-weight: 600;
    font-size: 0.9rem;
    letter-spacing: 0;
    color: #4d5866;
}

.mud-dialog:not(:has(.dialog-header)) .mud-dialog-actions .mud-button-root:hover {
    background: rgba(28, 33, 43, 0.07);
}

/* Le dernier bouton est l'action de confirmation */
.mud-dialog:not(:has(.dialog-header)) .mud-dialog-actions .mud-button-root:last-child {
    background: #0E6B6B;
    color: #fff;
    box-shadow: 0 2px 8px rgba(14, 107, 107, 0.28);
}

.mud-dialog:not(:has(.dialog-header)) .mud-dialog-actions .mud-button-root:last-child:hover {
    background: #0A5555;
}

.mud-dialog:not(:has(.dialog-header)) .mud-dialog-actions .mud-button-root:focus-visible {
    outline: 2px solid #E9A21B;
    outline-offset: 2px;
}

/* Mode sombre */
.dark-layout .mud-dialog .mud-dialog-title > .mud-typography-h6 { color: #e8f3f2; }
.dark-layout .mud-dialog:not(:has(.dialog-header)) .mud-dialog-content { color: #b6c2cf; }
.dark-layout .mud-dialog:not(:has(.dialog-header)) .mud-dialog-actions {
    background: rgba(255, 255, 255, 0.03);
    border-top-color: rgba(255, 255, 255, 0.08);
}
.dark-layout .mud-dialog:not(:has(.dialog-header)) .mud-dialog-actions .mud-button-root { color: #b6c2cf; }
.dark-layout .mud-dialog:not(:has(.dialog-header)) .mud-dialog-actions .mud-button-root:hover { background: rgba(255, 255, 255, 0.08); }
.dark-layout .mud-dialog:not(:has(.dialog-header)) .mud-dialog-actions .mud-button-root:last-child {
    background: #4FC3BE;
    color: #062A2E;
}
.dark-layout .mud-dialog:not(:has(.dialog-header)) .mud-dialog-actions .mud-button-root:last-child:hover { background: #8ADBD6; }

@media (max-width: 599px) {
    .mud-dialog:not(:has(.dialog-header)) .mud-dialog-actions { flex-direction: column-reverse; }
    .mud-dialog:not(:has(.dialog-header)) .mud-dialog-actions .mud-button-root { width: 100%; }
}
