/* ==========================================================================
   Espaces root et membre (Filament) : mÃªme prÃ©sentation que /espace-client
   â menu latÃ©ral violet foncÃ©, Ã©lÃ©ment actif marquÃ© d'une barre rouge,
   barre du haut blanche avec nom + rÃ´le, bandeau d'en-tÃªte en dÃ©gradÃ© violet,
   cartes arrondies.
   ========================================================================== */
:root {
    --lp-violet: #3f2a7d;
    --lp-violet-fonce: #2a1b57;
    --lp-violet-clair: #ebe4fb;
    --lp-rouge: #d7191f;
    --lp-cyan: #3fc6dc;
}

.fi-body { background: #f7f6fb; }

/* ---------- Menu latÃ©ral ---------- */
.fi-sidebar { background: var(--lp-violet-fonce) !important; }
.fi-sidebar-header {
    background: var(--lp-violet-fonce) !important;
    box-shadow: none !important;
    --tw-ring-shadow: 0 0 #0000 !important;
    height: auto !important;
    min-height: 4rem;
    padding: 1.25rem 1.25rem .75rem !important;
}
.fi-sidebar-header .fi-logo { height: auto !important; width: 100%; }
.lp-fi-marque {
    display: flex; align-items: center; gap: .75rem; width: 100%; box-sizing: border-box;
    padding: .5rem .75rem; background: #fff; border-radius: 4px;
}
.lp-fi-marque img { height: 38px; width: auto; display: block; }
.lp-fi-marque span { font-size: .95rem; font-weight: 700; line-height: 1.2; color: var(--lp-violet); white-space: nowrap; }

.fi-sidebar-nav { padding: 1rem 1.25rem 1.25rem !important; row-gap: 1rem !important; }
.fi-sidebar-nav-groups { row-gap: 1rem !important; }

/* IntitulÃ©s de groupe : petites capitales, comme Â« SUR LE SITE Â» */
.fi-sidebar-group-label {
    font-size: .7rem !important; font-weight: 700 !important; letter-spacing: .08em;
    text-transform: uppercase; color: rgba(255, 255, 255, .45) !important;
}
.fi-sidebar-group-button { padding-left: .9rem !important; padding-right: .5rem !important; }
.fi-sidebar-group-button::before { content: none !important; display: none !important; background-image: none !important; }
.fi-sidebar-group-icon { color: rgba(255, 255, 255, .7) !important; }
.fi-sidebar-group-collapse-button, .fi-sidebar-group-collapse-button svg,
.fi-sidebar-group-button .fi-icon-btn { color: rgba(255, 255, 255, .45) !important; }
.fi-sidebar-group-collapse-button:hover svg { color: #fff !important; }
.fi-sidebar-group-items { row-gap: .15rem !important; }

/* Liens */
.fi-sidebar-item-button {
    gap: .75rem !important; padding: .6rem .9rem !important; border-radius: 4px !important;
    border-left: 3px solid transparent; background: transparent !important;
}
.fi-sidebar-item-label { color: rgba(255, 255, 255, .78) !important; font-weight: 600 !important; font-size: .92rem !important; }
.fi-sidebar-item-icon { color: rgba(255, 255, 255, .7) !important; width: 18px !important; height: 18px !important; stroke-width: 1.5 !important; }
.fi-sidebar-item-button:hover { background: rgba(255, 255, 255, .08) !important; }
.fi-sidebar-item-button:hover .fi-sidebar-item-label,
.fi-sidebar-item-button:hover .fi-sidebar-item-icon { color: #fff !important; }
.fi-sidebar-item-active .fi-sidebar-item-button {
    background: rgba(255, 255, 255, .12) !important; border-left-color: var(--lp-rouge);
}
.fi-sidebar-item-active .fi-sidebar-item-label,
.fi-sidebar-item-active .fi-sidebar-item-icon { color: #fff !important; }
/* Points de groupe (Ã©lÃ©ments sans icÃ´ne) */
.fi-sidebar-item-grouped-border div { background: rgba(255, 255, 255, .25) !important; }
.fi-sidebar-item-active .fi-sidebar-item-grouped-border div { background: var(--lp-rouge) !important; }

/* Badges (commandes en attenteâ¦) : rouge plein, texte blanc */
.fi-sidebar .fi-badge {
    background: var(--lp-rouge) !important; color: #fff !important;
    --tw-ring-color: transparent !important; min-width: 22px; justify-content: center; border-radius: 999px !important;
}
.fi-sidebar .fi-badge * { color: #fff !important; }

/* Bas du menu : retour au site + dÃ©connexion */
.lp-fi-pied { margin: 0 1.25rem; padding: 1.1rem 0 1.25rem; border-top: 1px solid rgba(255, 255, 255, .12); }
.lp-fi-retour { display: block; padding: 0 .9rem; margin-bottom: .9rem; font-size: .85rem; color: rgba(255, 255, 255, .65); text-decoration: none; }
.lp-fi-retour:hover { color: #fff; }
.lp-fi-pied form { padding: 0 .9rem; margin: 0; }
.lp-fi-deconnexion {
    width: 100%; padding: .45rem 1rem; font: inherit; font-size: .85rem; font-weight: 700; cursor: pointer;
    color: var(--lp-violet); background: #fff; border: 2px solid #fff; border-radius: 4px; transition: background .2s, color .2s;
}
.lp-fi-deconnexion:hover { background: transparent; color: #fff; }

/* ---------- Barre du haut ---------- */
.fi-topbar > nav {
    background: #fff !important; box-shadow: none !important;
    border-bottom: 1px solid #eceaf3; --tw-ring-shadow: 0 0 #0000 !important;
    padding-top: 0.85rem !important; padding-bottom: 0.85rem !important;
}
.lp-fi-identite { display: flex; align-items: center; gap: .6rem; margin-right: .25rem; }
.lp-fi-identite strong { font-size: .95rem; font-weight: 700; color: #333; }
.lp-fi-role {
    padding: .2rem .65rem; border-radius: 999px; background: var(--lp-violet-clair); color: var(--lp-violet);
    font-size: .7rem; font-weight: 700; letter-spacing: .06em; text-transform: uppercase;
}
.fi-topbar .fi-avatar { box-shadow: 0 0 0 2px var(--lp-violet-clair); }
@media (max-width: 640px) { .lp-fi-identite strong { display: none; } }

/* ---------- Bandeau d'en-tÃªte de page (comme Â« Bonjour â¦ Â» de l'espace client) ---------- */
.fi-header {
    position: relative; overflow: hidden; padding: 1.75rem 2rem; border-radius: 16px; color: #fff;
    background: radial-gradient(circle at 90% 20%, rgba(63, 198, 220, .3), transparent 45%),
                linear-gradient(135deg, var(--lp-violet-fonce) 0%, var(--lp-violet) 100%);
    box-shadow: 0 10px 30px rgba(42, 27, 87, .25);
}
.fi-header-heading { color: #fff !important; }
.fi-header-subheading { color: rgba(255, 255, 255, .85) !important; }
.fi-header .fi-breadcrumbs a, .fi-header .fi-breadcrumbs span { color: rgba(255, 255, 255, .75) !important; }
.fi-header .fi-breadcrumbs svg { color: rgba(255, 255, 255, .5) !important; }
/* Boutons d'action dans le bandeau : blancs, texte violet */
.fi-header .fi-btn { background: #fff !important; color: var(--lp-violet) !important; --tw-ring-color: transparent !important; }
.fi-header .fi-btn .fi-btn-label, .fi-header .fi-btn svg { color: var(--lp-violet) !important; }
.fi-header .fi-btn:hover { background: var(--lp-violet-clair) !important; }

/* ---------- Cartes : tableaux, sections, indicateurs ---------- */
.fi-ta-ctn, .fi-section, .fi-wi-stats-overview-stat, .fi-fo-tabs, .fi-in-entry-wrp {
    border-radius: 12px !important;
    --tw-ring-color: #e5e7eb !important;
    box-shadow: 0 4px 16px rgba(17, 24, 39, .05) !important;
}
.fi-ta-row.inscription-en-attente > .fi-ta-cell { background-color: #fff1f2 !important; }
.fi-wi-stats-overview-stat { border-top: 3px solid var(--lp-violet); }
.fi-wi-stats-overview-stat:nth-child(2) { border-top-color: var(--lp-rouge); }
.fi-wi-stats-overview-stat:nth-child(3) { border-top-color: var(--lp-cyan); }
.fi-wi-stats-overview-stat-value { color: var(--lp-violet-fonce) !important; }
.fi-ta-header-cell-label { color: #333 !important; font-weight: 700 !important; }

/* Boutons principaux : rectangles comme sur le site */
.fi-btn { border-radius: 4px !important; }

/* LibellÃ©s longs sur deux lignes plutÃ´t que tronquÃ©s ; intitulÃ©s alignÃ©s sur les icÃ´nes ; logo pleine largeur */
.fi-sidebar-item-label { white-space: normal !important; overflow: visible !important; text-overflow: clip !important; line-height: 1.3; }
.fi-sidebar-group-label { margin-left: .7rem; }
.fi-sidebar-header .fi-logo, .fi-sidebar-header > div, .fi-sidebar-header a { display: block; width: 100%; }

/* ---------- IcÃ´nes en fond des cartes du tableau de bord ---------- */
.fi-wi-stats-overview-stat { overflow: hidden; }
.fi-wi-stats-overview-stat-icon {
    position: absolute; right: -12px; bottom: -16px; z-index: 0;
    width: 112px !important; height: 112px !important;
    color: var(--lp-violet) !important; opacity: .25; pointer-events: none;
    transform: rotate(-8deg); transition: transform .3s, opacity .3s;
}
.fi-wi-stats-overview-stat:nth-child(2) .fi-wi-stats-overview-stat-icon { color: var(--lp-rouge) !important; }
.fi-wi-stats-overview-stat:nth-child(3) .fi-wi-stats-overview-stat-icon { color: var(--lp-cyan) !important; opacity: .16; }
.fi-wi-stats-overview-stat:hover .fi-wi-stats-overview-stat-icon { transform: rotate(0) scale(1.06); opacity: .16; }
.fi-wi-stats-overview-stat-label, .fi-wi-stats-overview-stat-value,
.fi-wi-stats-overview-stat-description { position: relative; z-index: 1; }

/* Bandeau d'en-tÃªte : cÅur-pouls en filigrane Ã  droite */
.fi-header::after {
    content: ''; position: absolute; right: 1.5rem; top: 50%; width: 150px; height: 150px; transform: translateY(-50%);
    pointer-events: none; opacity: .25;
    background: no-repeat center / contain url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='1.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12,20 C5,15 3,11.5 3,8.5 C3,6 5,4 7.5,4 C9.5,4 11,5.2 12,6.8 C13,5.2 14.5,4 16.5,4 C19,4 21,6 21,8.5 C21,11.5 19,15 12,20 Z'/%3E%3Cpolyline points='7,11 10,11 11.2,9 12.8,13.5 14,11 17,11'/%3E%3C/svg%3E");
}
.fi-header > * { position: relative; z-index: 1; }
.fi-header:has(.fi-header-actions-ctn, .fi-ac)::after { right: 10rem; }

/* IntitulÃ©s de groupe avec icÃ´ne (admin.css, comme FyZ) : texte alignÃ© aprÃ¨s l'icÃ´ne */
.fi-sidebar-group-label { margin-left: 0 !important; line-height: 1.35 !important; }
.fi-sidebar-group-button { padding-left: .9rem !important; }

/* ---------- Menu resserrÃ©, police lÃ©gÃ¨rement rÃ©duite ---------- */
.fi-sidebar-nav { padding-top: .75rem !important; row-gap: .5rem !important; }
.fi-sidebar-nav-groups { row-gap: .35rem !important; }
.fi-sidebar-group-items { row-gap: 0 !important; }
.fi-sidebar-item-button { padding: .38rem .9rem !important; gap: .65rem !important; }
.fi-sidebar-item-label { font-size: .8rem !important; line-height: 1.25; }
.fi-sidebar-item-icon { width: 18px !important; height: 18px !important; stroke-width: 1.5 !important; }
.fi-sidebar-group-button { padding-top: .2rem !important; padding-bottom: .2rem !important; }
.fi-sidebar-group-label { font-size: .875rem !important; }
.fi-sidebar-group > .fi-sidebar-group-items { margin-top: .15rem; }

/* ---------- Bilan des opÃ©rations : icÃ´nes en fond des blocs ---------- */
.lp-bilan-bloc { position: relative; overflow: hidden; }
.lp-bilan-fond {
    position: absolute; right: -14px; bottom: -18px; z-index: 0; pointer-events: none;
    width: 120px !important; height: 120px !important; opacity: .22;
    color: var(--lp-violet); transform: rotate(-8deg); transition: transform .3s, opacity .3s;
}
.lp-bilan-bloc:hover .lp-bilan-fond { transform: rotate(0) scale(1.06); opacity: .28; }
.lp-bilan-bloc .fi-section-header, .lp-bilan-bloc .fi-section-content-ctn { position: relative; z-index: 1; }
/* Tableaux de dÃ©tail : icÃ´ne plus grande, en haut Ã  droite */
.lp-bilan-bloc:has(table) .lp-bilan-fond { width: 170px !important; height: 170px !important; top: -20px; bottom: auto; right: -20px; opacity: .15; }
.lp-teinte-cyan .lp-bilan-fond { color: var(--lp-cyan); opacity: .28; }
.lp-teinte-vert .lp-bilan-fond { color: #16a34a; }
.lp-teinte-orange .lp-bilan-fond { color: #ea580c; }
.lp-teinte-rouge .lp-bilan-fond { color: var(--lp-rouge); }
/* Bloc Â« PÃ©riode Â» (formulaire) : calendrier en fond */
.fi-page form .fi-section:has(input[type="date"], .fi-fo-date-time-picker) { position: relative; overflow: hidden; }
.fi-page form .fi-section:has(input[type="date"], .fi-fo-date-time-picker)::after {
    content: ''; position: absolute; right: -10px; bottom: -22px; width: 120px; height: 120px; opacity: .22; pointer-events: none;
    transform: rotate(-8deg);
    background: no-repeat center / contain url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 24 24' stroke-width='1.5' stroke='%233f2a7d'%3E%3Cpath stroke-linecap='round' stroke-linejoin='round' d='M6.75 3v2.25M17.25 3v2.25M3 18.75V7.5a2.25 2.25 0 0 1 2.25-2.25h13.5A2.25 2.25 0 0 1 21 7.5v11.25m-18 0A2.25 2.25 0 0 0 5.25 21h13.5A2.25 2.25 0 0 0 21 18.75m-18 0v-7.5A2.25 2.25 0 0 1 5.25 9h13.5A2.25 2.25 0 0 1 21 11.25v7.5'/%3E%3C/svg%3E");
}

.fi-sidebar-item-label, .fi-sidebar-group-label { text-transform: capitalize; }


/* Arrière-plan de la santé sur tout l'espace (body) */
body.fi-body {
    background-image: url('../images/bg-sante.jpg');
    background-size: cover;
    background-position: center center;
    background-attachment: fixed;
    position: relative;
    background-color: transparent !important;
}
body.fi-body::before {
    content: '';
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background: rgba(250, 250, 250, 0.68); /* Voile à 68% permettant d'afficher l'arrière-plan avec une opacité et visibilité nettement plus fortes */
    z-index: -10;
}
/* Rendre le fond principal transparent pour voir l'arrière-plan */
.fi-layout, .fi-main {
    background-color: transparent !important;
}

/* Masquer uniquement les widgets de bas de page et les footers, sans impacter le formulaire ni ses éléments */
.fi-page-footer-widgets,
.fi-footer,
.site-footer {
    display: none !important;
}

/* Annuler tout fond blanc sur la page englobante pour éviter d'impacter les div adjacentes */
.fi-page-content {
    background-color: transparent !important;
    border: none !important;
    box-shadow: none !important;
    padding: 0 !important;
}

/* Le fond blanc n'est plus appliqué que sur les formulaires génériques hors Create/Edit */
.fi-page > form:not(.fi-resource-form) {
    background-color: transparent !important;
}

/* Empêcher les formulaires et conteneurs internes imbriqués de dupliquer le bloc blanc */
.fi-page-content form form,
.fi-page > form form {
    background: transparent !important;
    border: none !important;
    box-shadow: none !important;
    padding: 0 !important;
    margin-top: 0 !important;
}

/* Aucun fond blanc sur les div, sections, cartes et blocs en dessous de la div principale encadrant le formulaire */
.fi-page-content div,
.fi-page-content section,
.fi-page-content fieldset,
.fi-page-content .fi-section,
.fi-page-content .fi-fo-tabs,
.fi-page-content .fi-fo-tabs-tab,
.fi-page-content .fi-fo-repeater-item,
.fi-page-content .fi-fieldset,
.fi-page-content .fi-fo-component-ctn,
.fi-page-content .fi-section-header,
.fi-page-content .fi-section-content-ctn,
.fi-page > form div,
.fi-page > form section,
.fi-page > form fieldset,
.fi-page > form .fi-section,
.fi-page > form .fi-fo-tabs,
.fi-page > form .fi-fo-tabs-tab,
.fi-page > form .fi-fo-repeater-item,
.fi-page > form .fi-fieldset,
.fi-page > form .fi-fo-component-ctn,
.fi-resource-form div,
.fi-resource-form section,
.fi-resource-form fieldset,
.fi-resource-form .fi-section {
    background-color: transparent !important;
    background: transparent !important;
    box-shadow: none !important;
    --tw-ring-color: transparent !important;
    --tw-shadow: 0 0 #0000 !important;
}

/* Conserver un fond blanc uniquement sur les champs de saisie (inputs, selects, textareas) */
.fi-page-content .fi-input-wrp,
.fi-page > form .fi-input-wrp,
.fi-resource-form .fi-input-wrp,
.fi-page-content select,
.fi-page-content input,
.fi-page-content textarea {
    background-color: #ffffff !important;
}

/* Supprimer les coins arrondis sur tous les champs de formulaires (bords droits / carrés) */
.fi-input-wrp,
.fi-input,
.fi-select-input,
.fi-fo-field-wrp,
.fi-fo-rich-editor,
.fi-fo-rich-editor-toolbar,
.fi-fo-markdown-editor,
.fi-fo-file-upload,
.fi-fo-tags-input,
.fi-fo-key-value,
.fi-checkbox-input,
.fi-radio-input,
.fi-btn,
.filepond--root,
.filepond--panel-root,
.fi-page form input,
.fi-page form select,
.fi-page form textarea,
.fi-resource-form input,
.fi-resource-form select,
.fi-resource-form textarea {
    border-radius: 0 !important;
}
.fi-page form textarea,
.fi-resource-form input,
.fi-resource-form select,
.fi-resource-form textarea {
    border-radius: 0 !important;
}
