/**
 * EXPERDOSE — Thème de l'espace Admin (Filament 5).
 *
 * Palette du logo : bleu nuit #002C51, bleu #007DEC, bleu vif #009DFF, ciel #BFEFFF, orange #FF9600.
 * Police : Montserrat. Le tableau de bord a sa propre feuille (admin-dashboard.css).
 *
 * Filament 5 pose ses marges sur le contenu des cellules et des champs, pas sur les conteneurs :
 * ce thème règle couleurs, rayons, ombres et typographie, et ne retouche les marges qu'à la marge.
 */

:root {
  --exp-navy: #002C51;
  --exp-navy-deep: #00172E;
  --exp-navy-abyss: #000E1D;
  --exp-blue: #007DEC;
  --exp-sky: #009DFF;
  --exp-ice: #BFEFFF;
  --exp-orange: #FF9600;
  --exp-orange-deep: #E58600;

  --exp-canvas: #F3F6FA;
  --exp-card: #FFFFFF;
  --exp-ink: #0F2133;
  --exp-muted: #5B6B7D;
  --exp-faint: #8A99AA;
  --exp-line: rgba(0, 44, 81, 0.08);
  --exp-line-strong: rgba(0, 44, 81, 0.14);
  --exp-tint: #F6F9FC;

  --exp-ring: 0 0 0 4px rgba(0, 125, 236, 0.16);
  --exp-shadow: 0 1px 2px rgba(0, 23, 46, 0.04), 0 8px 24px -8px rgba(0, 23, 46, 0.10);
  --exp-shadow-pop: 0 24px 60px -18px rgba(0, 23, 46, 0.35), 0 6px 16px -6px rgba(0, 23, 46, 0.12);
  --exp-ease: cubic-bezier(.2, .8, .2, 1);

  /* Rayons de Filament, arrondis d'un cran pour tout le panneau. */
  --radius-md: 0.6rem;
  --radius-lg: 0.8rem;
  --radius-xl: 1.25rem;
}

/* ── 1. Fond et typographie ───────────────────────────────────────────── */

body.fi-body {
  background:
    radial-gradient(1200px 420px at 70% -120px, rgba(0, 157, 255, 0.07), transparent 70%),
    var(--exp-canvas) !important;
  color: var(--exp-ink);
  font-family: 'Montserrat', system-ui, -apple-system, 'Segoe UI', sans-serif;
  -webkit-font-smoothing: antialiased;
  font-feature-settings: "tnum" 1, "lnum" 1;
}

.fi-main-ctn, .fi-main, .fi-page { width: 100%; max-width: 100% !important; }
.fi-main { padding-inline: clamp(1rem, 2.4vw, 2.5rem) !important; padding-block: 1.75rem 3.5rem !important; }

::selection { background: rgba(0, 157, 255, .22); }

/* ── 2. Logo ──────────────────────────────────────────────────────────── */

.fi-logo { display: flex !important; align-items: center !important; height: 2.8rem !important; }

/* Logo officiel (texte bleu nuit, « C » bleu et ligne orange) et mention « Administration ». */
.exp-brand {
  display: flex;
  align-items: center;
  gap: .7rem;
  height: 100%;
  text-decoration: none;
}
.exp-brand__logo { display: block; height: 1.45rem; width: auto; }
.exp-brand__tag {
  padding: .22rem .55rem;
  border-radius: 999px;
  font-size: .6rem;
  font-weight: 800;
  letter-spacing: .14em;
  text-transform: uppercase;
  color: var(--exp-blue);
  background: rgba(0, 125, 236, .09);
  box-shadow: inset 0 0 0 1px rgba(0, 125, 236, .16);
}
.fi-simple-main .fi-logo { height: auto !important; margin-bottom: 1.25rem; }
.fi-simple-main .exp-brand { flex-direction: column; gap: .6rem; }
.fi-simple-main .exp-brand__logo { height: 1.9rem; }

/* ── 3. Barre latérale ────────────────────────────────────────────────── */

.fi-sidebar {
  background:
    radial-gradient(420px 320px at 0% 0%, rgba(0, 125, 236, .20), transparent 70%),
    radial-gradient(360px 300px at 100% 100%, rgba(255, 150, 0, .07), transparent 70%),
    linear-gradient(180deg, var(--exp-navy-deep) 0%, var(--exp-navy-abyss) 100%) !important;
  border-right: 1px solid rgba(255, 255, 255, .06) !important;
}
.fi-sidebar-header { background: transparent !important; box-shadow: none !important; }

.fi-sidebar-nav { padding-inline: .9rem !important; scrollbar-width: thin; scrollbar-color: rgba(255, 255, 255, .14) transparent; }
.fi-sidebar-nav::-webkit-scrollbar { width: 4px; }
.fi-sidebar-nav::-webkit-scrollbar-thumb { background: rgba(255, 255, 255, .14); border-radius: 4px; }

.fi-sidebar-group-btn { padding-inline: .7rem !important; }
.fi-sidebar-group-label {
  color: rgba(191, 239, 255, .45) !important;
  font-size: .64rem !important;
  font-weight: 800 !important;
  letter-spacing: .16em !important;
  text-transform: uppercase;
}
.fi-sidebar-group-collapse-btn { color: rgba(191, 239, 255, .35) !important; }
.fi-sidebar-group-collapse-btn:hover { color: #fff !important; background: transparent !important; }

.fi-sidebar-item-btn {
  position: relative;
  padding: .55rem .7rem !important;
  border-radius: 12px !important;
  background: transparent !important;
  transition: background .2s, transform .2s var(--exp-ease) !important;
}
.fi-sidebar-item-icon, .fi-sidebar-item-btn > .fi-icon { color: rgba(191, 239, 255, .5) !important; transition: color .2s; }
.fi-sidebar-item-label { color: rgba(226, 240, 255, .78) !important; font-size: .86rem !important; font-weight: 500 !important; }
.fi-sidebar-item-btn:hover { background: rgba(255, 255, 255, .055) !important; }
.fi-sidebar-item-btn:hover .fi-sidebar-item-label { color: #fff !important; }
.fi-sidebar-item-btn:hover .fi-sidebar-item-icon { color: var(--exp-ice) !important; }

.fi-sidebar-item.fi-active > .fi-sidebar-item-btn {
  background: linear-gradient(90deg, rgba(0, 157, 255, .20), rgba(0, 125, 236, .06)) !important;
  box-shadow: inset 0 0 0 1px rgba(0, 157, 255, .18), 0 10px 24px -14px rgba(0, 157, 255, .6) !important;
}
.fi-sidebar-item.fi-active > .fi-sidebar-item-btn::before {
  content: "";
  position: absolute;
  left: -.9rem;
  top: 22%;
  bottom: 22%;
  width: 4px;
  border-radius: 0 4px 4px 0;
  background: linear-gradient(180deg, #FFB547, var(--exp-orange));
  box-shadow: 0 0 12px rgba(255, 150, 0, .7);
}
.fi-sidebar-item.fi-active .fi-sidebar-item-label { color: #fff !important; font-weight: 700 !important; }
.fi-sidebar-item.fi-active .fi-sidebar-item-icon { color: var(--exp-orange) !important; }

.fi-sidebar-item-badge-ctn .fi-badge {
  min-width: 1.6rem;
  border-radius: 999px !important;
  background: linear-gradient(180deg, #FFB547, var(--exp-orange)) !important;
  color: var(--exp-navy-deep) !important;
  font-weight: 800 !important;
  box-shadow: 0 4px 10px -4px rgba(255, 150, 0, .8) !important;
  --tw-ring-color: transparent !important;
}

/* ── 4. Barre du haut ─────────────────────────────────────────────────── */

.fi-topbar {
  background: rgba(255, 255, 255, .82) !important;
  -webkit-backdrop-filter: saturate(1.6) blur(14px);
  backdrop-filter: saturate(1.6) blur(14px);
  box-shadow: 0 1px 0 var(--exp-line), 0 8px 24px -18px rgba(0, 23, 46, .25) !important;
  --tw-ring-color: transparent !important;
}

.fi-global-search-field .fi-input-wrp { border-radius: 999px !important; background: var(--exp-tint) !important; min-width: 15rem; }
.fi-global-search-results-ctn { border-radius: 18px !important; box-shadow: var(--exp-shadow-pop) !important; overflow: hidden; }

.fi-user-avatar, .fi-avatar.fi-user-avatar {
  box-shadow: 0 0 0 2px #fff, 0 0 0 4px rgba(0, 125, 236, .35);
}

/* ── 5. En-tête de page ───────────────────────────────────────────────── */

.fi-header { gap: 1rem; margin-bottom: .5rem; }
.fi-header-heading {
  color: var(--exp-navy) !important;
  font-size: clamp(1.55rem, 2.2vw, 2rem) !important;
  font-weight: 800 !important;
  letter-spacing: -0.03em !important;
}
.fi-header-subheading { color: var(--exp-muted) !important; }

.fi-breadcrumbs-item-label { font-size: .78rem; font-weight: 600; color: var(--exp-faint) !important; }
.fi-breadcrumbs-item:last-child .fi-breadcrumbs-item-label { color: var(--exp-blue) !important; font-weight: 700; }

/* ── 6. Boutons ───────────────────────────────────────────────────────── */

.fi-btn {
  border-radius: 12px !important;
  font-weight: 700 !important;
  letter-spacing: .005em;
  transition: transform .2s var(--exp-ease), box-shadow .2s, background .2s, color .2s !important;
}
.fi-btn:not(.fi-disabled):hover { transform: translateY(-1px); }
.fi-btn:not(.fi-disabled):active { transform: translateY(0); }

/* Principal : orange du logo, texte bleu nuit (comme sur le site public). */
.fi-btn.fi-color-primary:not(.fi-outlined) {
  background: linear-gradient(180deg, #FFAA2E, var(--exp-orange)) !important;
  color: var(--exp-navy-deep) !important;
  box-shadow: 0 8px 18px -8px rgba(255, 150, 0, .75), inset 0 1px 0 rgba(255, 255, 255, .35) !important;
  --tw-ring-color: transparent !important;
}
.fi-btn.fi-color-primary:not(.fi-outlined) .fi-icon { color: var(--exp-navy-deep) !important; }
.fi-btn.fi-color-primary:not(.fi-outlined):hover { box-shadow: 0 14px 26px -10px rgba(255, 150, 0, .85), inset 0 1px 0 rgba(255, 255, 255, .35) !important; }

/* Secondaire : blanc à filet bleu nuit. */
.fi-btn.fi-color-gray:not(.fi-outlined) {
  background: #fff !important;
  color: var(--exp-navy) !important;
  box-shadow: inset 0 0 0 1px var(--exp-line-strong), 0 1px 2px rgba(0, 23, 46, .05) !important;
}
.fi-btn.fi-color-gray:not(.fi-outlined):hover { background: var(--exp-tint) !important; box-shadow: inset 0 0 0 1px rgba(0, 125, 236, .35), 0 6px 14px -8px rgba(0, 23, 46, .2) !important; }

.fi-btn.fi-color-danger:not(.fi-outlined) {
  background: linear-gradient(180deg, #EF4444, #DC2626) !important;
  color: #fff !important;
  box-shadow: 0 8px 18px -10px rgba(220, 38, 38, .8) !important;
}
.fi-btn.fi-color-info:not(.fi-outlined) { background: var(--exp-navy) !important; color: #fff !important; }
.fi-btn.fi-color-success:not(.fi-outlined) { background: linear-gradient(180deg, #10B981, #059669) !important; color: #fff !important; }

.fi-icon-btn { border-radius: 10px !important; transition: background .2s, color .2s; }
.fi-icon-btn:hover { background: rgba(0, 125, 236, .08) !important; color: var(--exp-blue) !important; }
.fi-icon-btn.fi-color-danger:hover { background: rgba(220, 38, 38, .08) !important; color: #DC2626 !important; }

.fi-link { font-weight: 700 !important; }
.fi-link.fi-color-primary { color: var(--exp-orange-deep) !important; }

/* ── 7. Tableaux ──────────────────────────────────────────────────────── */

.fi-ta-ctn {
  border-radius: 22px !important;
  background: var(--exp-card) !important;
  box-shadow: var(--exp-shadow) !important;
  --tw-ring-color: var(--exp-line) !important;
}
/* Pas d'« overflow: hidden » ici : il couperait les menus des filtres et des actions. */
.fi-ta-ctn > :first-child { border-top-left-radius: 22px; border-top-right-radius: 22px; }
.fi-ta-ctn > :last-child { border-bottom-left-radius: 22px; border-bottom-right-radius: 22px; }

.fi-ta-header { padding: 1.2rem 1.5rem .3rem !important; }
.fi-ta-header-heading { color: var(--exp-navy) !important; font-weight: 800 !important; font-size: 1.05rem !important; }
.fi-ta-header-description { color: var(--exp-muted) !important; }

.fi-ta-header-toolbar {
  padding: .85rem 1.25rem !important;
  border-color: var(--exp-line) !important;
  background: linear-gradient(180deg, #fff, #FBFCFE);
}
/* Actions groupées : rien ne s'affiche tant qu'aucune ligne n'est cochée, la place n'est pas réservée. */
.fi-ta-header-toolbar > .fi-ta-actions:not(:has(> :not([style*="display: none"]))) { display: none !important; }
.fi-ta-header-toolbar > :last-child { margin-inline-start: auto; }
.fi-ta-search-field .fi-input-wrp { border-radius: 999px !important; background: var(--exp-tint) !important; min-width: 16rem; }
/* Filament affiche « 0 » quand aucun filtre n'est actif ; les filtres actifs restent visibles en pastilles. */
.fi-ta-filters-dropdown .fi-icon-btn-badge-ctn, .fi-ta-filters-trigger-action-ctn .fi-icon-btn-badge-ctn { display: none !important; }

.fi-ta-filter-indicators {
  padding: .6rem 1.25rem !important;
  background: rgba(0, 125, 236, .04) !important;
  border-color: var(--exp-line) !important;
}
.fi-ta-filter-indicators-label { color: var(--exp-blue) !important; font-weight: 700 !important; }

.fi-ta-table { border-collapse: separate; border-spacing: 0; }
.fi-ta-table > thead > tr { background: #F7FAFD !important; }
.fi-ta-header-cell, .fi-ta-empty-header-cell, .fi-ta-header-cell-sort-btn {
  font-size: .68rem !important;
  font-weight: 800 !important;
  letter-spacing: .09em !important;
  text-transform: uppercase;
  color: var(--exp-muted) !important;
}
.fi-ta-header-cell { padding-block: .8rem !important; border-bottom: 1px solid var(--exp-line) !important; }
.fi-ta-header-cell-sorted, .fi-ta-header-cell-sorted .fi-ta-header-cell-sort-btn { color: var(--exp-blue) !important; }
.fi-ta-table > tbody { --tw-divide-opacity: 1; }
.fi-ta-table > tbody > tr + tr > td { border-top: 1px solid var(--exp-line); }
.fi-ta-table > :not(caption) > * + * { border-color: var(--exp-line) !important; }

.fi-ta-row { transition: background .15s; }
.fi-ta-row:hover { background: #F7FAFD !important; }
.fi-ta-row.fi-selected { background: rgba(0, 157, 255, .06) !important; }
.fi-ta-row.fi-selected > td:first-child { box-shadow: inset 3px 0 0 var(--exp-sky); }

/* La colonne d'actions reste visible à droite quand le tableau défile horizontalement
   (grand écran seulement : sur téléphone, elle masquerait le reste de la ligne). */
@media (min-width: 1024px) {
  .fi-ta-row > td:has(> .fi-ta-actions), .fi-ta-row > td:last-child:has(.fi-ta-actions),
  .fi-ta-table > thead > tr > th:last-child:empty, .fi-ta-actions-header-cell {
    position: sticky;
    right: 0;
    z-index: 1;
    background: #fff;
  }
}
.fi-ta-table > thead > tr > th.fi-ta-actions-header-cell, .fi-ta-table > thead > tr > th:last-child:empty { background: #F7FAFD; }
.fi-ta-row:hover > td:last-child:has(.fi-ta-actions) { background: #F7FAFD; }
.fi-ta-row.fi-selected > td:last-child:has(.fi-ta-actions) { background: #F0F8FF; }
/* Menu d'actions ouvert : sa cellule passe devant celles des lignes suivantes. */
.fi-ta-row > td:last-child:has(.fi-dropdown-panel[style*="display: block"]),
.fi-ta-row > td:last-child:has(.fi-ta-actions):focus-within { z-index: 30; }
.fi-ta-actions { padding-inline: .9rem !important; gap: .25rem !important; }
.fi-ta-actions .fi-link, .fi-ta-actions .fi-ac-link-action {
  padding: .35rem .6rem;
  border-radius: 10px;
  font-size: .8rem !important;
  transition: background .2s;
}
.fi-ta-actions .fi-link:hover { background: rgba(255, 150, 0, .1); text-decoration: none !important; }

/* Cellules : la marge vient du contenu (.fi-ta-text…), on la resserre un peu. */
.fi-ta-text, .fi-ta-icon, .fi-ta-image, .fi-ta-color { padding-block: .8rem !important; }
.fi-ta-text-item { font-size: .86rem; color: var(--exp-ink); }
.fi-ta-cell-name .fi-ta-text-item, .fi-ta-cell-title .fi-ta-text-item { font-weight: 700; color: var(--exp-navy); }
.fi-ta-text-description { font-size: .76rem !important; color: var(--exp-faint) !important; }
.fi-ta-selection-cell { padding-block: .8rem !important; }

.fi-checkbox-input {
  border-radius: 6px !important;
  --tw-ring-color: var(--exp-line-strong) !important;
}
.fi-checkbox-input:checked { background-color: var(--exp-blue) !important; --tw-ring-color: var(--exp-blue) !important; }
.fi-checkbox-input:focus-visible { box-shadow: var(--exp-ring) !important; }

/* Pied de tableau et pagination */
.fi-ta-ctn > .fi-pagination, .fi-ta-ctn .fi-pagination {
  padding: .8rem 1.25rem !important;
  border-top: 1px solid var(--exp-line);
  background: #FBFCFE;
}
.fi-pagination-overview { font-size: .78rem; color: var(--exp-muted) !important; }
.fi-pagination-items {
  border-radius: 12px !important;
  overflow: hidden;
  --tw-ring-color: var(--exp-line-strong) !important;
  box-shadow: 0 1px 2px rgba(0, 23, 46, .05) !important;
}
.fi-pagination-item-btn { font-weight: 700 !important; color: var(--exp-navy) !important; }
.fi-pagination-item-btn:hover { background: var(--exp-tint) !important; }
.fi-pagination-item.fi-active .fi-pagination-item-btn {
  background: var(--exp-navy) !important;
  color: #fff !important;
}
.fi-pagination-item.fi-active .fi-pagination-item-label { color: #fff !important; }
.fi-pagination-records-per-page-select .fi-input-wrp { border-radius: 12px !important; }

/* Tableau vide */
.fi-ta-empty-state { padding-block: 3.5rem !important; }
.fi-ta-empty-state-icon-bg, .fi-empty-state-icon-bg {
  width: 4rem !important;
  height: 4rem !important;
  border-radius: 20px !important;
  background: linear-gradient(140deg, rgba(0, 157, 255, .14), rgba(0, 125, 236, .06)) !important;
  box-shadow: inset 0 0 0 1px rgba(0, 125, 236, .14);
}
.fi-ta-empty-state-icon-bg .fi-icon, .fi-empty-state-icon-bg .fi-icon { color: var(--exp-blue) !important; }
.fi-ta-empty-state-heading, .fi-empty-state-heading { color: var(--exp-navy) !important; font-weight: 800 !important; }
.fi-ta-empty-state-description, .fi-empty-state-description { color: var(--exp-muted) !important; }

/* Regroupements */
.fi-ta-group-header { background: var(--exp-tint) !important; }
.fi-ta-group-heading { color: var(--exp-navy) !important; font-weight: 800 !important; }

/* ── 8. Pastilles (badges) ────────────────────────────────────────────── */

.fi-badge {
  border-radius: 999px !important;
  padding-inline: .6rem !important;
  font-weight: 700 !important;
  font-size: .72rem !important;
  --tw-ring-color: transparent !important;
}
.fi-badge.fi-color-primary { background: #FFF3E0 !important; color: #9A5700 !important; }
.fi-badge.fi-color-warning { background: #FFF3E0 !important; color: #9A5700 !important; }
.fi-badge.fi-color-info { background: #E6F2FD !important; color: #005BB0 !important; }
.fi-badge.fi-color-success { background: #E7F8F0 !important; color: #047857 !important; }
.fi-badge.fi-color-danger { background: #FDECEC !important; color: #B42318 !important; }
.fi-badge.fi-color-gray, .fi-badge:not([class*="fi-color-"]) { background: #EEF2F6 !important; color: #475569 !important; }
.fi-ta-text-has-badges .fi-badge::before {
  content: "";
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: currentColor;
  opacity: .8;
}

/* ── 9. Menus déroulants ──────────────────────────────────────────────── */

.fi-dropdown-panel {
  border-radius: 18px !important;
  box-shadow: var(--exp-shadow-pop) !important;
  --tw-ring-color: var(--exp-line) !important;
  overflow: hidden;
  animation: exp-pop .18s var(--exp-ease);
}
.fi-dropdown-header { padding: .9rem 1rem !important; background: var(--exp-tint) !important; }
.fi-dropdown-list { padding: .35rem !important; }
.fi-dropdown-list-item { border-radius: 10px !important; font-weight: 600 !important; }
.fi-dropdown-list-item:hover { background: rgba(0, 125, 236, .07) !important; }
.fi-dropdown-list-item:hover .fi-dropdown-list-item-label, .fi-dropdown-list-item:hover .fi-icon { color: var(--exp-blue) !important; }
.fi-dropdown-list-item.fi-color-danger:hover { background: rgba(220, 38, 38, .07) !important; }
.fi-dropdown-list-item.fi-color-danger:hover .fi-dropdown-list-item-label, .fi-dropdown-list-item.fi-color-danger:hover .fi-icon { color: #DC2626 !important; }

/* Panneaux du tableau : filtres et colonnes */
.fi-ta-filters-dropdown .fi-dropdown-panel, .fi-ta-col-manager-dropdown .fi-dropdown-panel { padding: 0 !important; }
.fi-ta-filters, .fi-ta-col-manager { padding: 1.1rem 1.2rem !important; }
.fi-ta-filters-header, .fi-ta-col-manager-header { padding-bottom: .8rem; margin-bottom: .4rem; border-bottom: 1px solid var(--exp-line); }
.fi-ta-filters-heading, .fi-ta-col-manager-heading { color: var(--exp-navy) !important; font-weight: 800 !important; }

@keyframes exp-pop { from { opacity: 0; transform: translateY(-4px) scale(.98); } }

/* ── 10. Formulaires ──────────────────────────────────────────────────── */

/* Sections : des cartes, comme sur le tableau de bord */
.fi-section:not(.fi-section-not-contained) {
  border-radius: 22px !important;
  background: var(--exp-card) !important;
  box-shadow: var(--exp-shadow) !important;
  --tw-ring-color: var(--exp-line) !important;
}
.fi-section-header { padding: 1.1rem 1.5rem !important; }
.fi-section:not(.fi-section-not-contained) > .fi-section-header { border-bottom: 1px solid var(--exp-line); }
.fi-section-header-heading { color: var(--exp-navy) !important; font-weight: 800 !important; font-size: 1rem !important; letter-spacing: -0.01em; }
.fi-section-header-description { color: var(--exp-muted) !important; }
.fi-section-content { padding: 1.4rem 1.5rem !important; }
.fi-section-footer { border-color: var(--exp-line) !important; background: var(--exp-tint); }

/* Blocs bilingues Français / English : un encart teinté avec son titre en étiquette. */
.fi-fieldset {
  border-radius: 18px !important;
  border: 1px solid var(--exp-line) !important;
  background: linear-gradient(180deg, #FAFCFE, #F5F8FC) !important;
  padding: 1.25rem 1.25rem 1.35rem !important;
}
.fi-fieldset > legend {
  padding: .25rem .7rem !important;
  border-radius: 999px;
  background: #fff;
  box-shadow: inset 0 0 0 1px var(--exp-line-strong), 0 2px 6px -3px rgba(0, 23, 46, .15);
  font-size: .78rem !important;
  font-weight: 800 !important;
  color: var(--exp-navy) !important;
}

.fi-fo-field-label-content {
  font-size: .82rem !important;
  font-weight: 700 !important;
  color: var(--exp-navy) !important;
}
.fi-fo-field-label-required-mark, .fi-fieldset-label-required-mark { color: var(--exp-orange) !important; }
.fi-fo-field-wrp-hint, .fi-sc-text, .fi-fo-field-wrp-helper-text { color: var(--exp-faint) !important; }
.fi-fo-field-wrp-error-message { color: #B42318 !important; font-weight: 600; }

/* Champs */
.fi-input-wrp {
  border-radius: 12px !important;
  background: #fff !important;
  box-shadow: inset 0 0 0 1px var(--exp-line-strong), 0 1px 2px rgba(0, 23, 46, .04) !important;
  transition: box-shadow .2s, background .2s;
}
.fi-input-wrp:hover:not(:focus-within) { box-shadow: inset 0 0 0 1px rgba(0, 44, 81, .24), 0 1px 2px rgba(0, 23, 46, .04) !important; }
.fi-input-wrp:focus-within {
  box-shadow: inset 0 0 0 1.5px var(--exp-blue), var(--exp-ring) !important;
}
.fi-input-wrp.fi-invalid { box-shadow: inset 0 0 0 1.5px #DC2626, 0 0 0 4px rgba(220, 38, 38, .12) !important; }
.fi-input-wrp.fi-disabled { background: var(--exp-tint) !important; }
.fi-input, .fi-select-input, .fi-input-wrp textarea { color: var(--exp-ink) !important; }
.fi-input::placeholder, .fi-input-wrp textarea::placeholder { color: #A5B2C0 !important; }
.fi-input-wrp-prefix, .fi-input-wrp-suffix { color: var(--exp-faint); }
.fi-input-wrp-label { color: var(--exp-muted) !important; font-weight: 600; }

/* Listes de choix */
.fi-select-input-options-ctn, .fi-select-input .fi-dropdown-panel { border-radius: 14px !important; box-shadow: var(--exp-shadow-pop) !important; }
.fi-select-input-option { border-radius: 9px; }
.fi-select-input-option:hover, .fi-select-input-option.fi-selected { background: rgba(0, 125, 236, .07) !important; color: var(--exp-blue) !important; }

/* Interrupteurs : bleu du logo quand activé */
.fi-toggle { --tw-ring-color: transparent !important; }
.fi-toggle.fi-toggle-on, .fi-toggle[aria-checked="true"] { background: linear-gradient(90deg, var(--exp-sky), var(--exp-blue)) !important; box-shadow: 0 4px 12px -6px var(--exp-blue); }

/* Onglets : une barre segmentée */
.fi-tabs {
  gap: .25rem !important;
  padding: .35rem !important;
  border-radius: 16px !important;
  background: #EAF0F6 !important;
  box-shadow: inset 0 1px 2px rgba(0, 23, 46, .06) !important;
  --tw-ring-color: transparent !important;
}
.fi-sc-tabs, .fi-sc-tabs.fi-contained {
  border-radius: 22px !important;
  background: var(--exp-card) !important;
  box-shadow: var(--exp-shadow) !important;
  --tw-ring-color: var(--exp-line) !important;
}
.fi-sc-tabs > .fi-tabs { margin: 1rem 1rem 0; }
.fi-tabs-item {
  border-radius: 12px !important;
  padding: .5rem .95rem !important;
  font-weight: 600 !important;
  color: var(--exp-muted) !important;
  transition: background .2s, color .2s, box-shadow .2s;
}
.fi-tabs-item:hover { color: var(--exp-navy) !important; background: rgba(255, 255, 255, .6) !important; }
.fi-tabs-item.fi-active {
  background: #fff !important;
  color: var(--exp-navy) !important;
  font-weight: 800 !important;
  box-shadow: 0 1px 2px rgba(0, 23, 46, .08), 0 6px 14px -8px rgba(0, 23, 46, .25);
}
.fi-tabs-item.fi-active .fi-tabs-item-label, .fi-tabs-item.fi-active .fi-icon { color: var(--exp-navy) !important; }
.fi-tabs-item .fi-badge { background: var(--exp-orange) !important; color: var(--exp-navy-deep) !important; }

/* Listes répétées (étapes, lignes, pièces…) */
.fi-fo-repeater-item {
  border-radius: 16px !important;
  background: #fff !important;
  box-shadow: inset 0 0 0 1px var(--exp-line), 0 2px 8px -6px rgba(0, 23, 46, .2) !important;
  --tw-ring-color: transparent !important;
}
.fi-fo-repeater-item-header { border-radius: 16px 16px 0 0; background: var(--exp-tint); border-bottom: 1px solid var(--exp-line); padding: .7rem 1rem !important; }
.fi-fo-repeater-item-header-label { color: var(--exp-navy) !important; font-weight: 700 !important; }
.fi-fo-repeater-add .fi-btn, .fi-fo-key-value-add-action-ctn .fi-btn {
  border-radius: 999px !important;
  border: 1.5px dashed rgba(0, 125, 236, .35) !important;
  background: rgba(0, 125, 236, .04) !important;
  color: var(--exp-blue) !important;
  box-shadow: none !important;
}

/* Tableau clé / valeur */
.fi-fo-key-value-table-ctn { border-radius: 14px !important; overflow: hidden; --tw-ring-color: var(--exp-line-strong) !important; }
.fi-fo-key-value-table thead { background: var(--exp-tint); }
.fi-fo-key-value-table th { font-size: .7rem; font-weight: 800; letter-spacing: .06em; text-transform: uppercase; color: var(--exp-muted) !important; }

/* Éditeurs de texte */
.fi-fo-rich-editor, .fi-fo-markdown-editor { border-radius: 14px !important; }
.fi-fo-rich-editor-toolbar, .fi-fo-markdown-editor .editor-toolbar { border-radius: 14px 14px 0 0; }
.fi-fo-rich-editor-toolbar, .fi-fo-markdown-editor .editor-toolbar {
  background: var(--exp-tint) !important;
  border-color: var(--exp-line) !important;
}
.fi-fo-rich-editor-tool { border-radius: 8px !important; }
.fi-fo-rich-editor-tool:hover, .fi-fo-rich-editor-tool.fi-active { background: rgba(0, 125, 236, .1) !important; color: var(--exp-blue) !important; }
.fi-fo-markdown-editor .CodeMirror, .fi-fo-markdown-editor .EasyMDEContainer .CodeMirror { font-family: 'Montserrat', system-ui, sans-serif !important; font-size: .88rem; line-height: 1.65; color: var(--exp-ink); }
.fi-fo-markdown-editor .editor-toolbar button { border-radius: 8px !important; }
.fi-fo-markdown-editor .editor-toolbar button:hover, .fi-fo-markdown-editor .editor-toolbar button.active { background: rgba(0, 125, 236, .1) !important; border-color: transparent !important; }

/* Téléversement de fichiers */
.fi-fo-file-upload .filepond--root { font-family: inherit; margin-bottom: 0; }
.fi-fo-file-upload .filepond--panel-root {
  border-radius: 16px !important;
  background: linear-gradient(180deg, #F8FBFE, #F1F6FB) !important;
  border: 1.5px dashed rgba(0, 125, 236, .28) !important;
}
.fi-fo-file-upload .filepond--drop-label { color: var(--exp-muted) !important; font-weight: 600; }
.fi-fo-file-upload .filepond--drop-label label { cursor: pointer; }
.fi-fo-file-upload .filepond--label-action { color: var(--exp-blue) !important; text-decoration-color: rgba(0, 125, 236, .4) !important; }
.fi-fo-file-upload .filepond--item-panel { border-radius: 12px !important; background: var(--exp-navy) !important; }
.fi-fo-file-upload [data-filepond-item-state*="error"] .filepond--item-panel { background: #DC2626 !important; }
.fi-fo-file-upload [data-filepond-item-state="processing-complete"] .filepond--item-panel { background: #059669 !important; }
.fi-fo-file-upload .filepond--image-preview { background: var(--exp-navy-deep) !important; }

/* Boutons à choix (toggle buttons) */
.fi-fo-toggle-buttons-input:checked + .fi-btn, .fi-fo-toggle-buttons-input:checked + label.fi-btn {
  background: var(--exp-navy) !important;
  color: #fff !important;
}

/* Barre d'actions du formulaire */
.fi-form-actions, .fi-sc-actions { gap: .6rem !important; }

/* Encadrés d'information */
.fi-callout {
  border-radius: 18px !important;
  background: linear-gradient(180deg, #F4F9FF, #EEF5FD) !important;
  box-shadow: inset 0 0 0 1px rgba(0, 125, 236, .14) !important;
}
.fi-callout-heading { color: var(--exp-navy) !important; font-weight: 800 !important; }
.fi-callout-icon { color: var(--exp-blue) !important; }

/* Fiches en lecture (infolists) */
.fi-in-entry-label { font-size: .74rem !important; font-weight: 700 !important; letter-spacing: .04em; text-transform: uppercase; color: var(--exp-faint) !important; }
.fi-in-text-item { color: var(--exp-ink); }

/* ── 11. Fenêtres modales ─────────────────────────────────────────────── */

.fi-modal-close-overlay {
  background: radial-gradient(circle at 50% 20%, rgba(0, 44, 81, .45), rgba(0, 14, 29, .72)) !important;
  -webkit-backdrop-filter: blur(6px);
  backdrop-filter: blur(6px);
}

.fi-modal-window {
  border-radius: 26px !important;
  background: var(--exp-card) !important;
  box-shadow: 0 40px 90px -30px rgba(0, 14, 29, .7), 0 0 0 1px rgba(255, 255, 255, .6) inset !important;
  --tw-ring-color: transparent !important;
}
.fi-modal-slide-over .fi-modal-window { border-radius: 26px 0 0 26px !important; }
.fi-modal-slide-over-from-start .fi-modal-window { border-radius: 0 26px 26px 0 !important; }

/* Un filet aux couleurs du logo en tête de chaque fenêtre. */
.fi-modal-window::before {
  content: "";
  position: absolute;
  inset: 0 0 auto;
  height: 4px;
  z-index: 2;
  border-radius: 26px 26px 0 0;
  background: linear-gradient(90deg, var(--exp-navy), var(--exp-blue) 45%, var(--exp-sky) 70%, var(--exp-orange));
}
.fi-modal-header { border-radius: 26px 26px 0 0; }
.fi-modal-footer { border-radius: 0 0 26px 26px; }

.fi-modal-header {
  padding: 1.5rem 1.75rem 1.1rem !important;
  border-bottom: 1px solid var(--exp-line);
  background:
    radial-gradient(400px 140px at 100% 0%, rgba(0, 157, 255, .08), transparent 70%),
    linear-gradient(180deg, #FBFCFE, #fff) !important;
}
.fi-modal-heading { color: var(--exp-navy) !important; font-size: 1.2rem !important; font-weight: 800 !important; letter-spacing: -0.02em; }
.fi-modal-description { color: var(--exp-muted) !important; }
.fi-modal-close-btn { border-radius: 12px !important; }
.fi-modal-close-btn:hover { background: var(--exp-tint) !important; }

.fi-modal-icon-bg {
  border-radius: 18px !important;
  background: rgba(0, 125, 236, .1) !important;
}
.fi-modal-icon-bg.fi-color-danger { background: rgba(220, 38, 38, .1) !important; }
.fi-modal-icon-bg.fi-color-warning { background: rgba(255, 150, 0, .14) !important; }

.fi-modal-content { padding: 1.4rem 1.75rem !important; }
.fi-modal-footer {
  padding: 1rem 1.75rem !important;
  border-top: 1px solid var(--exp-line);
  background: var(--exp-tint) !important;
}
.fi-modal-has-sticky-footer .fi-modal-footer { box-shadow: 0 -10px 24px -18px rgba(0, 23, 46, .35); }

.fi-modal-window { animation: exp-modal .28s var(--exp-ease); }
@keyframes exp-modal { from { opacity: 0; transform: translateY(12px) scale(.985); } }

/* ── 12. Notifications ────────────────────────────────────────────────── */

.fi-no-notification {
  position: relative;
  overflow: hidden;
  border-radius: 18px !important;
  background: rgba(255, 255, 255, .96) !important;
  -webkit-backdrop-filter: blur(10px);
  backdrop-filter: blur(10px);
  box-shadow: var(--exp-shadow-pop) !important;
  --tw-ring-color: var(--exp-line) !important;
}
.fi-no-notification::before {
  content: "";
  position: absolute;
  inset: 0 auto 0 0;
  width: 4px;
  background: var(--exp-blue);
}
.fi-no-notification.fi-status-success::before { background: #10B981; }
.fi-no-notification.fi-status-warning::before { background: var(--exp-orange); }
.fi-no-notification.fi-status-danger::before { background: #DC2626; }
.fi-no-notification-title { color: var(--exp-navy) !important; font-weight: 800 !important; }
.fi-no-notification-body { color: var(--exp-muted) !important; }

/* ── 13. Pages « simples » : connexion, double authentification ───────── */

.fi-simple-layout {
  background:
    radial-gradient(700px 420px at 12% 10%, rgba(0, 157, 255, .16), transparent 70%),
    radial-gradient(600px 380px at 92% 92%, rgba(255, 150, 0, .12), transparent 70%),
    linear-gradient(160deg, #F5F9FD, #EAF1F8) !important;
}
.fi-simple-main {
  position: relative;
  border-radius: 28px !important;
  background: rgba(255, 255, 255, .92) !important;
  -webkit-backdrop-filter: blur(16px);
  backdrop-filter: blur(16px);
  box-shadow: 0 40px 80px -36px rgba(0, 23, 46, .45), 0 0 0 1px rgba(0, 44, 81, .06) !important;
  --tw-ring-color: transparent !important;
  overflow: hidden;
}
.fi-simple-main::before {
  content: "";
  position: absolute;
  inset: 0 0 auto;
  height: 4px;
  background: linear-gradient(90deg, var(--exp-navy), var(--exp-blue) 45%, var(--exp-sky) 70%, var(--exp-orange));
}
.fi-simple-header-heading { color: var(--exp-navy) !important; font-weight: 800 !important; letter-spacing: -0.02em; }
.fi-simple-header-subheading { color: var(--exp-muted) !important; }

/* ── 14. Divers ───────────────────────────────────────────────────────── */

.fi-loading-indicator { color: var(--exp-blue) !important; }
:focus-visible { outline-color: var(--exp-blue); }

@media (prefers-reduced-motion: reduce) {
  .fi-dropdown-panel, .fi-modal-window { animation: none !important; }
  .fi-btn, .fi-sidebar-item-btn { transition: none !important; }
}

/* ── 15. Page Profil Administrateur (/admin/profile) ───────────────────── */

.exp-profile-hero {
  border-radius: 22px !important;
  background: var(--exp-card) !important;
  box-shadow: var(--exp-shadow) !important;
  border: 1px solid var(--exp-line) !important;
  padding: 1.5rem 1.75rem !important;
  margin-bottom: 1.5rem !important;
  display: flex !important;
  align-items: center !important;
  justify-content: space-between !important;
  gap: 1.5rem !important;
  flex-wrap: wrap !important;
  box-sizing: border-box !important;
}

.exp-profile-hero__left {
  display: flex !important;
  align-items: center !important;
  gap: 1.25rem !important;
  flex: 1 1 auto !important;
  min-width: 280px !important;
}

.exp-profile-avatar {
  position: relative !important;
  width: 4.5rem !important;
  height: 4.5rem !important;
  min-width: 4.5rem !important;
  max-width: 4.5rem !important;
  border-radius: 18px !important;
  background: linear-gradient(135deg, var(--exp-navy), var(--exp-blue) 55%, var(--exp-orange)) !important;
  color: #fff !important;
  font-weight: 800 !important;
  font-size: 1.5rem !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  letter-spacing: 0.05em !important;
  box-shadow: 0 8px 20px -6px rgba(0, 44, 81, 0.25) !important;
  flex-shrink: 0 !important;
}

.exp-profile-avatar__badge {
  position: absolute !important;
  bottom: -4px !important;
  right: -4px !important;
  width: 1.4rem !important;
  height: 1.4rem !important;
  min-width: 1.4rem !important;
  max-width: 1.4rem !important;
  border-radius: 50% !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  color: #fff !important;
  border: 2px solid #fff !important;
  box-shadow: 0 2px 6px rgba(0, 0, 0, 0.15) !important;
  box-sizing: border-box !important;
}
.exp-profile-avatar__badge--ok { background: #10B981 !important; }
.exp-profile-avatar__badge--warn { background: #F59E0B !important; }

.exp-profile-avatar__badge svg {
  width: 0.8rem !important;
  height: 0.8rem !important;
  min-width: 0.8rem !important;
  max-width: 0.8rem !important;
  display: block !important;
}

.exp-profile-info {
  display: flex !important;
  flex-direction: column !important;
  gap: 0.35rem !important;
}

.exp-profile-name-row {
  display: flex !important;
  align-items: center !important;
  gap: 0.65rem !important;
  flex-wrap: wrap !important;
}

.exp-profile-name {
  font-size: 1.25rem !important;
  font-weight: 800 !important;
  color: var(--exp-navy) !important;
  margin: 0 !important;
  line-height: 1.2 !important;
}

.exp-profile-pill {
  display: inline-flex !important;
  align-items: center !important;
  gap: 0.35rem !important;
  font-size: 0.75rem !important;
  font-weight: 700 !important;
  padding: 0.2rem 0.65rem !important;
  border-radius: 9999px !important;
  line-height: 1.3 !important;
}
.exp-profile-pill--role {
  background: rgba(255, 150, 0, 0.14) !important;
  color: #B86200 !important;
  border: 1px solid rgba(255, 150, 0, 0.3) !important;
}
.exp-profile-pill--verified {
  background: rgba(16, 185, 129, 0.1) !important;
  color: #065F46 !important;
  border: 1px solid rgba(16, 185, 129, 0.25) !important;
}
.exp-profile-pill svg {
  width: 0.85rem !important;
  height: 0.85rem !important;
  min-width: 0.85rem !important;
  max-width: 0.85rem !important;
  display: inline-block !important;
}

.exp-profile-meta {
  display: flex !important;
  align-items: center !important;
  gap: 1.25rem !important;
  flex-wrap: wrap !important;
  font-size: 0.85rem !important;
  color: var(--exp-muted) !important;
}
.exp-profile-meta-item {
  display: inline-flex !important;
  align-items: center !important;
  gap: 0.4rem !important;
}
.exp-profile-meta-item svg {
  width: 0.95rem !important;
  height: 0.95rem !important;
  min-width: 0.95rem !important;
  max-width: 0.95rem !important;
  color: var(--exp-faint) !important;
  display: inline-block !important;
}

.exp-profile-hero__right {
  display: flex !important;
  align-items: center !important;
  gap: 0.75rem !important;
}

.exp-profile-status-box {
  display: flex !important;
  align-items: center !important;
  gap: 0.75rem !important;
  padding: 0.6rem 1rem !important;
  border-radius: 14px !important;
  border: 1px solid transparent !important;
  box-sizing: border-box !important;
}
.exp-profile-status-box--ok {
  background: rgba(16, 185, 129, 0.08) !important;
  border-color: rgba(16, 185, 129, 0.25) !important;
  color: #065F46 !important;
}
.exp-profile-status-box--warn {
  background: rgba(245, 158, 11, 0.08) !important;
  border-color: rgba(245, 158, 11, 0.25) !important;
  color: #92400E !important;
}
.exp-profile-status-box svg {
  width: 1.25rem !important;
  height: 1.25rem !important;
  min-width: 1.25rem !important;
  max-width: 1.25rem !important;
  flex-shrink: 0 !important;
  display: block !important;
}
.exp-profile-status-box__title {
  font-size: 0.8rem !important;
  font-weight: 700 !important;
  line-height: 1.2 !important;
}
.exp-profile-status-box__desc {
  font-size: 0.7rem !important;
  opacity: 0.85 !important;
}

/* Grille de session */
.exp-profile-session-grid {
  display: grid !important;
  grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)) !important;
  gap: 1rem !important;
  width: 100% !important;
  box-sizing: border-box !important;
}
.exp-profile-session-card {
  background: var(--exp-tint) !important;
  border: 1px solid var(--exp-line) !important;
  border-radius: 14px !important;
  padding: 1rem 1.15rem !important;
  display: flex !important;
  flex-direction: column !important;
  gap: 0.35rem !important;
  box-sizing: border-box !important;
}
.exp-profile-session-card__head {
  display: flex !important;
  align-items: center !important;
  gap: 0.45rem !important;
  font-size: 0.72rem !important;
  font-weight: 700 !important;
  text-transform: uppercase !important;
  letter-spacing: 0.06em !important;
  color: var(--exp-muted) !important;
}
.exp-profile-session-card__head svg {
  width: 0.95rem !important;
  height: 0.95rem !important;
  min-width: 0.95rem !important;
  max-width: 0.95rem !important;
  color: var(--exp-blue) !important;
  display: inline-block !important;
}
.exp-profile-session-card__value {
  font-size: 0.88rem !important;
  font-weight: 700 !important;
  color: var(--exp-ink) !important;
  line-height: 1.3 !important;
  word-break: break-all !important;
}
.exp-profile-session-card__desc {
  font-size: 0.72rem !important;
  color: var(--exp-faint) !important;
  line-height: 1.4 !important;
}
