/* ==========================================================================
   Foncière — thème « sidebar unique » (d'après la maquette Pilotage UI)
   Feuille non compilée : elle surcharge les classes fi-* de Filament.
   ========================================================================== */

:root {
    --fp-ink: #111827;
    --fp-ink-2: #374151;
    --fp-muted: #5B6474;
    --fp-muted-2: #4B5565;
    --fp-line: #E2E5EA;
    --fp-line-soft: #EEF0F3;
    --fp-bg: #EEF0F3;
    --fp-card: #FFFFFF;
    --fp-head: #F7F8FA;
    --fp-blue: #2457D6;
    --fp-blue-dark: #173C9E;
    --fp-blue-soft: #E8F0FF;
    --fp-track: #E6EAF2;
    --fp-orange: #F5B27A;
    --fp-orange-mid: #E07A3A;
    --fp-rust: #C2410C;
    --fp-rust-dark: #9A3412;
    --fp-warn-bg: #FFF4E5;
    --fp-warn-ink: #8A3A07;
    --fp-warn-line: #F3C9A6;
    --fp-bad-bg: #FDE8DD;
    --fp-side: #10141C;
    --fp-side-2: #161B25;
    --fp-side-3: #171C27;
    --fp-side-line: #222A38;
    --fp-side-line-2: #2A3242;
    --fp-side-ink: #C9CED8;
    --fp-side-muted: #8F98A8;
    --fp-radius: 14px;
}

body.fi-body { background: var(--fp-bg); color: var(--fp-ink); }
.num, .fi-ta-text.num, .fp-num { font-family: var(--mono-font-family, 'Geist Mono'), ui-monospace, monospace; font-variant-numeric: tabular-nums; letter-spacing: -0.02em; }

/* --------------------------------------------------------------------------
   Sidebar
   -------------------------------------------------------------------------- */
.fi-sidebar.fi-main-sidebar { background: var(--fp-side); color: var(--fp-side-ink); border: 0; }
.fi-sidebar.fi-main-sidebar .fi-sidebar-header-ctn,
.fi-sidebar.fi-main-sidebar .fi-sidebar-header { background: var(--fp-side); border: 0; box-shadow: none; }
.fi-sidebar.fi-main-sidebar .fi-sidebar-header { padding: 20px 14px 4px; height: auto; }
.fi-sidebar .fi-icon-btn { color: var(--fp-side-muted); }
.fi-sidebar .fi-icon-btn:hover { color: #FFFFFF; background: #1C2230; }

.fp-marque { display: flex; align-items: center; gap: 10px; text-decoration: none; }
.fp-marque-icone { width: 34px; height: 34px; flex: none; border-radius: 9px; background: var(--fp-blue); display: flex; align-items: center; justify-content: center; }
.fp-marque-texte { display: flex; flex-direction: column; gap: 2px; line-height: 1.1; }
.fp-marque-nom { font-size: 15px; font-weight: 700; color: #FFFFFF; }
.fp-marque-sous { font-size: 12px; color: var(--fp-side-muted); font-weight: 400; }
.fi-logo { height: auto !important; }

/* Recherche ⌘K */
.fi-sidebar .fi-sidebar-header-controls { padding: 14px 14px 0; border: 0; }
.fi-sidebar .fi-global-search-field .fi-input-wrp { background: var(--fp-side-3); border: 1px solid var(--fp-side-line-2); border-radius: 8px; box-shadow: none; --tw-ring-shadow: 0 0 #0000; min-height: 40px; }
.fi-sidebar .fi-global-search-field .fi-input-wrp input { color: #F1F3F6; font-size: 14px; }
.fi-sidebar .fi-global-search-field .fi-input-wrp input::placeholder { color: var(--fp-side-muted); }
.fi-sidebar .fi-global-search-field .fi-input-wrp .fi-icon { color: var(--fp-side-muted); }
.fi-sidebar .fi-global-search-field .fi-input-wrp-suffix { color: var(--fp-side-muted); font-family: 'Geist Mono', monospace; font-size: 11px; border: 0; }
.fi-sidebar .fi-global-search-field .fi-input-wrp-suffix span,
.fi-sidebar .fi-global-search-field .fi-input-wrp-label { border: 1px solid var(--fp-side-line-2); border-radius: 4px; padding: 2px 5px; color: var(--fp-side-muted); font-size: 11px; }

/* Carte « Périmètre » */
.fp-perimetre { margin: 16px 14px 8px; padding: 14px; border-radius: 12px; background: var(--fp-side-2); border: 1px solid var(--fp-side-line); display: flex; flex-direction: column; gap: 10px; }
.fp-perimetre-titre { font-size: 11px; font-weight: 600; letter-spacing: .08em; text-transform: uppercase; color: var(--fp-side-muted); }
.fp-perimetre-champ { display: flex; flex-direction: column; gap: 6px; font-size: 12px; color: #A9B1BF; }
.fp-select { width: 100%; min-height: 40px; box-sizing: border-box; padding: 0 30px 0 10px; border-radius: 8px; border: 1px solid var(--fp-side-line-2); background-color: var(--fp-side-3); color: #F1F3F6; font: 500 14px Geist, sans-serif; appearance: none;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%238F98A8' stroke-width='2.5'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");
    background-repeat: no-repeat; background-position: right 10px center; }
.fp-select:focus { outline: 2px solid var(--fp-blue); outline-offset: 1px; }
.fp-select option { color: var(--fp-ink); background: #fff; }
.fp-segment { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 4px; padding: 4px; border-radius: 8px; background: var(--fp-side); }
.fp-segment-btn { min-height: 32px; border: 0; border-radius: 6px; cursor: pointer; font: 600 12px Geist, sans-serif; background: none; color: #A9B1BF; }
.fp-segment-btn:hover { color: #fff; }
.fp-segment-btn.fp-on { background: var(--fp-blue); color: #FFFFFF; }

/* Navigation */
.fi-sidebar-nav { padding: 6px 14px 16px; gap: 2px; }
.fi-sidebar-nav-groups { gap: 6px; }
.fi-sidebar-group-btn { padding: 0 10px; min-height: 30px; }
.fi-sidebar-group-label { font: 600 11px Geist, sans-serif; letter-spacing: .08em; text-transform: uppercase; color: var(--fp-side-muted); }
.fi-sidebar-group-btn .fi-icon-btn { color: var(--fp-side-muted); }
.fi-sidebar-group-items { gap: 2px; }
.fi-sidebar-item-btn { min-height: 36px; padding: 0 10px; border-radius: 8px; gap: 10px; }
.fi-sidebar-item-btn:hover, .fi-sidebar-item-btn:focus-visible { background: #1C2230; }
.fi-sidebar-item-label { color: var(--fp-side-ink); font-size: 14px; font-weight: 500; }
.fi-sidebar-item-icon { color: #5B6578; width: 18px; height: 18px; }
.fi-sidebar-item-btn:hover .fi-sidebar-item-label { color: #FFFFFF; }
.fi-sidebar-item.fi-active > .fi-sidebar-item-btn { background: var(--fp-blue); }
.fi-sidebar-item.fi-active > .fi-sidebar-item-btn .fi-sidebar-item-label { color: #FFFFFF; font-weight: 600; }
.fi-sidebar-item.fi-active > .fi-sidebar-item-btn .fi-sidebar-item-icon { color: #FFFFFF; }
.fi-sidebar-item-badge-ctn .fi-badge { font-family: 'Geist Mono', monospace; font-size: 11px; font-weight: 600; border-radius: 999px; padding: 1px 7px; min-width: 0; box-shadow: none; --tw-ring-shadow: 0 0 #0000; }
.fi-sidebar-item-badge-ctn .fi-badge.fi-color-warning { background: var(--fp-orange); color: #3B1704; }
.fi-sidebar-item-badge-ctn .fi-badge:not(.fi-color-warning) { background: var(--fp-side-line-2); color: #E5E9F0; }
.fi-sidebar-item.fi-active .fi-sidebar-item-badge-ctn .fi-badge:not(.fi-color-warning) { background: rgba(255,255,255,.2); color: #fff; }

/* Pied : notifications + utilisateur */
.fi-sidebar-footer { border-top: 1px solid var(--fp-side-line); margin: 0 14px; padding: 12px 0 16px; gap: 4px; background: var(--fp-side); }
.fi-sidebar-database-notifications-btn { color: var(--fp-side-ink); border-radius: 8px; min-height: 36px; padding: 0 10px; }
.fi-sidebar-database-notifications-btn:hover { background: #1C2230; color: #fff; }
.fi-sidebar-database-notifications-btn .fi-icon { color: #5B6578; }
.fi-sidebar-database-notifications-btn .fi-badge { background: var(--fp-orange); color: #3B1704; }
.fi-user-menu-trigger { border-radius: 8px; padding: 6px 8px; color: #FFFFFF; }
.fi-user-menu-trigger:hover { background: #1C2230; }
.fi-user-menu-trigger-text { color: #FFFFFF; font-weight: 600; font-size: 13px; }
.fi-user-menu-trigger .fi-icon { color: var(--fp-side-muted); }

/* Bouton d'ouverture de la sidebar (mobile / repliée) */
.fi-layout-sidebar-toggle-btn { background: var(--fp-side); color: #fff; border-radius: 10px; }

/* --------------------------------------------------------------------------
   Contenu
   -------------------------------------------------------------------------- */
.fi-main { padding: 32px clamp(16px, 3vw, 40px) 48px; }
.fi-page-header-main-ctn { gap: 24px; }
.fi-header { align-items: flex-end; }
.fi-header > div:first-child { display: flex; flex-direction: column; gap: 6px; }
.fp-surtitre { display: block; font-size: 13px; color: var(--fp-muted); margin-bottom: 6px; font-weight: 400; }
.fi-header-heading { font-size: 30px; font-weight: 700; letter-spacing: -0.02em; color: var(--fp-ink); line-height: 1.15; }
.fi-header-subheading { font-size: 14px; color: var(--fp-muted-2); }

/* Boutons */
.fi-btn { border-radius: 10px; font-weight: 600; min-height: 40px; }
.fi-btn.fi-color-gray, .fi-btn.fi-outlined { background: #FFFFFF; color: var(--fp-ink); box-shadow: none; border: 1px solid #D5DAE2; --tw-ring-shadow: 0 0 #0000; }
.fi-btn.fi-color-gray:hover { background: var(--fp-head); }

/* Cartes / sections / tableaux */
.fi-section, .fi-ta-ctn, .fi-wi-stats-overview-stat, .fi-wi-chart .fi-section, .fi-in-repeatable-item, .fi-fo-repeater-item {
    background: var(--fp-card); border: 1px solid var(--fp-line); border-radius: var(--fp-radius); box-shadow: none; --tw-ring-shadow: 0 0 #0000; }
.fi-section-header { padding: 18px 22px; }
.fi-section-header-heading { font-size: 16px; font-weight: 600; }
.fi-section-content { padding: 18px 22px; }
.fi-ta-ctn { overflow: hidden; }
.fi-ta-header-ctn { border-bottom: 1px solid var(--fp-line); }
.fi-ta-header-cell { background: var(--fp-head); font-size: 12px; font-weight: 600; color: var(--fp-muted); padding: 12px 16px; white-space: nowrap; }
.fi-ta-header-cell .fi-ta-header-cell-label { font-size: 12px; font-weight: 600; color: var(--fp-muted); }
.fi-ta-row { border-color: var(--fp-line-soft); }
.fi-ta-row:hover { background: #FAFBFC; }
.fi-ta-cell { font-size: 14px; }
.fi-ta-text-item-label { font-size: 14px; }
.fi-ta-text-description { font-size: 12px; color: var(--fp-muted); }
.fi-ta-summary-row, .fi-ta-summary-header-row { background: var(--fp-head); }
.fi-ta-row.fp-ligne-attenuee { background: #FAFAFB; }
.fi-ta-row.fp-ligne-attenuee .fi-ta-text-item-label { color: var(--fp-muted); }
.fi-tabs { background: #fff; border: 1px solid var(--fp-line); border-radius: 12px; box-shadow: none; padding: 6px; gap: 6px; }
.fi-tabs-item { border-radius: 8px; min-height: 40px; font-weight: 600; font-size: 13px; }
.fi-tabs-item.fi-active { background: var(--fp-ink); }
.fi-tabs-item.fi-active .fi-tabs-item-label, .fi-tabs-item.fi-active .fi-icon { color: #fff; }
.fi-tabs-item .fi-badge { background: transparent; box-shadow: none; color: inherit; opacity: .7; font-family: 'Geist Mono', monospace; }

/* Chips (badges Filament) aux couleurs de la maquette */
.fi-badge { border-radius: 999px; font-weight: 600; font-size: 12px; box-shadow: none; --tw-ring-shadow: 0 0 #0000; padding: 3px 10px; }
.fi-badge.fi-color-success, .fi-badge.fi-color-primary { background: var(--fp-blue-soft); color: var(--fp-blue-dark); }
.fi-badge.fi-color-warning { background: var(--fp-warn-bg); color: var(--fp-warn-ink); }
.fi-badge.fi-color-danger { background: var(--fp-bad-bg); color: var(--fp-rust-dark); }
.fi-badge.fi-color-gray, .fi-badge.fi-color-info { background: #F1F3F6; color: var(--fp-ink-2); }

/* Statistiques natives (fiches) */
.fi-wi-stats-overview-stat-value { font-family: 'Geist Mono', monospace; letter-spacing: -0.02em; font-weight: 600; }

/* Modales */
.fi-modal-window { border-radius: 16px; }

/* --------------------------------------------------------------------------
   Composants de la maquette (bandeaux, KPI, barres)
   -------------------------------------------------------------------------- */
.fp-pile { display: flex; flex-direction: column; gap: 24px; }
.fp-grille { display: grid; gap: 16px; }
.fp-g4 { grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); }
.fp-g4s { grid-template-columns: repeat(auto-fit, minmax(170px, 1fr)); gap: 12px; }
.fp-g3 { grid-template-columns: repeat(auto-fit, minmax(min(100%, 340px), 1fr)); }
.fp-g2 { grid-template-columns: repeat(auto-fit, minmax(min(100%, 420px), 1fr)); }

.fp-carte { background: var(--fp-card); border: 1px solid var(--fp-line); border-radius: var(--fp-radius); padding: 20px; display: flex; flex-direction: column; gap: 12px; min-width: 0; }
.fp-carte.fp-petite { padding: 16px; gap: 4px; }
.fp-carte.fp-alerte { border-color: var(--fp-warn-line); }
.fp-carte.fp-sombre { background: var(--fp-side); border-color: var(--fp-side); color: #fff; }
.fp-carte-titre { font-size: 13px; color: var(--fp-muted); font-weight: 500; }
.fp-alerte .fp-carte-titre { color: var(--fp-warn-ink); font-weight: 600; }
.fp-sombre .fp-carte-titre { color: #A9B1BF; }
.fp-valeur { font-family: 'Geist Mono', monospace; font-variant-numeric: tabular-nums; letter-spacing: -0.02em; font-weight: 600; font-size: 38px; line-height: 1.1; color: var(--fp-ink); }
.fp-petite .fp-valeur { font-size: 26px; }
.fp-alerte .fp-valeur { color: var(--fp-rust-dark); }
.fp-sombre .fp-valeur { color: #fff; }
.fp-ligne-valeur { display: flex; align-items: baseline; gap: 8px; flex-wrap: wrap; }
.fp-note { font-size: 13px; color: var(--fp-muted-2); }
.fp-petite .fp-note { font-size: 12px; }
.fp-sombre .fp-note { color: #C9CED8; }
.fp-note strong, .fp-fort { color: var(--fp-ink); font-weight: 600; }
.fp-rouge { color: var(--fp-rust-dark) !important; }
.fp-bleu { color: var(--fp-blue-dark) !important; }

.fp-barre { height: 8px; border-radius: 99px; background: var(--fp-track); overflow: hidden; position: relative; }
.fp-barre.fp-epaisse { height: 10px; overflow: visible; }
.fp-barre > i { display: block; height: 100%; border-radius: 99px; background: var(--fp-blue); }
.fp-barre > i.fp-noir { background: var(--fp-ink); }
.fp-barre > i.fp-rouille { background: var(--fp-rust); }
.fp-repere { position: absolute; top: -3px; width: 2px; height: 16px; background: var(--fp-ink); }
.fp-pile-barre { display: flex; height: 8px; border-radius: 99px; overflow: hidden; gap: 2px; background: var(--fp-track); }
.fp-pile-barre > i { display: block; height: 100%; }

.fp-chip { display: inline-flex; align-items: center; gap: 6px; padding: 4px 10px; border-radius: 999px; font-size: 12px; font-weight: 600; white-space: nowrap; background: #F1F3F6; color: var(--fp-ink-2); }
.fp-chip.fp-ok { background: var(--fp-blue-soft); color: var(--fp-blue-dark); }
.fp-chip.fp-warn { background: var(--fp-warn-bg); color: var(--fp-warn-ink); }
.fp-chip.fp-bad { background: var(--fp-bad-bg); color: var(--fp-rust-dark); }
.fp-chip.fp-plein { background: var(--fp-blue); color: #fff; }

.fp-bloc { background: var(--fp-card); border: 1px solid var(--fp-line); border-radius: var(--fp-radius); padding: 22px; display: flex; flex-direction: column; gap: 16px; min-width: 0; }
.fp-bloc-tete { display: flex; justify-content: space-between; align-items: baseline; gap: 12px; flex-wrap: wrap; }
.fp-bloc h2 { margin: 0; font-size: 17px; font-weight: 600; color: var(--fp-ink); }
.fp-bloc .fp-sous { font-size: 13px; color: var(--fp-muted); }
.fp-lien { font-size: 13px; color: var(--fp-blue); text-decoration: none; font-weight: 500; }
.fp-lien:hover { color: var(--fp-blue-dark); text-decoration: underline; }

.fp-bandeau { background: var(--fp-side); color: #E5E9F0; border-radius: var(--fp-radius); padding: 22px; display: flex; flex-wrap: wrap; gap: 24px; align-items: center; justify-content: space-between; }
.fp-bandeau-chiffres { display: flex; flex-wrap: wrap; gap: 32px; align-items: flex-end; }
.fp-bandeau-chiffre { display: flex; flex-direction: column; gap: 4px; }
.fp-bandeau-chiffre .fp-l { font-size: 13px; color: #A9B1BF; }
.fp-bandeau-chiffre .fp-v { font-family: 'Geist Mono', monospace; font-size: 30px; font-weight: 600; color: #fff; letter-spacing: -0.02em; }
.fp-bandeau-chiffre .fp-v.fp-orange { color: var(--fp-orange); }
.fp-bandeau-chiffre .fp-n { font-size: 13px; color: #C9CED8; }
.fp-bandeau-texte { font-size: 12px; color: #A9B1BF; }
.fp-btn-blanc { display: inline-flex; align-items: center; min-height: 44px; padding: 0 18px; border-radius: 10px; background: #FFFFFF; color: var(--fp-side); font-weight: 600; font-size: 14px; text-decoration: none; border: 0; cursor: pointer; }
.fp-btn-blanc:hover { background: #E8F0FF; }

/* Graphique en barres (appelé / encaissé) */
.fp-histo { overflow-x: auto; }
.fp-histo-zone { display: grid; grid-template-columns: repeat(var(--n, 12), minmax(36px, 1fr)); gap: 10px; align-items: end; height: 200px; min-width: 560px; border-bottom: 1px solid var(--fp-line); }
.fp-histo-col { display: flex; flex-direction: column; align-items: center; gap: 6px; height: 100%; justify-content: flex-end; }
.fp-histo-taux { font-family: 'Geist Mono', monospace; font-size: 11px; color: var(--fp-muted-2); }
.fp-histo-paire { display: flex; gap: 3px; align-items: flex-end; width: 100%; justify-content: center; }
.fp-histo-paire > i { width: 40%; max-width: 14px; border-radius: 4px 4px 0 0; display: block; }
.fp-histo-paire > i.fp-a { background: #C9D3E3; }
.fp-histo-paire > i.fp-e { background: var(--fp-blue); }
.fp-histo-mois { display: grid; grid-template-columns: repeat(var(--n, 12), minmax(36px, 1fr)); gap: 10px; min-width: 560px; padding-top: 8px; }
.fp-histo-mois span { text-align: center; font-size: 12px; color: var(--fp-muted); }
.fp-legende { display: flex; gap: 16px; font-size: 13px; color: var(--fp-ink-2); }
.fp-legende span { display: flex; align-items: center; gap: 6px; }
.fp-legende i { width: 10px; height: 10px; border-radius: 3px; display: inline-block; }

/* Listes */
.fp-occ { display: flex; flex-direction: column; gap: 6px; }
.fp-occ-tete { display: flex; justify-content: space-between; font-size: 14px; }
.fp-occ-tete span:first-child { font-weight: 500; }
.fp-occ-detail { font-size: 12px; color: var(--fp-muted); }
.fp-ech { display: flex; align-items: center; gap: 12px; padding: 10px 0; border-bottom: 1px solid var(--fp-line-soft); }
.fp-ech:last-child { border-bottom: 0; }
.fp-ech-date { width: 48px; flex: none; display: flex; flex-direction: column; align-items: center; padding: 6px 0; border-radius: 10px; background: #F4F6F9; }
.fp-ech-date b { font-family: 'Geist Mono', monospace; font-size: 17px; font-weight: 600; }
.fp-ech-date small { font-size: 11px; color: var(--fp-muted); text-transform: uppercase; }
.fp-ech-corps { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: 3px; }
.fp-ech-corps b { font-size: 14px; font-weight: 500; }
.fp-ech-corps small { font-size: 12px; color: var(--fp-muted); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.fp-kv { display: flex; justify-content: space-between; gap: 12px; padding: 10px 0; border-bottom: 1px solid var(--fp-line-soft); font-size: 14px; }
.fp-kv:last-child { border-bottom: 0; }
.fp-kv span:first-child { color: var(--fp-muted); }
.fp-kv span:last-child { text-align: right; }

/* Tableau simple (compte locataire, aperçus) */
.fp-tbl { width: 100%; border-collapse: collapse; font-size: 14px; }
.fp-tbl th { text-align: left; font-size: 12px; font-weight: 600; color: var(--fp-muted); padding: 12px 16px; border-bottom: 1px solid var(--fp-line); background: var(--fp-head); white-space: nowrap; }
.fp-tbl td { padding: 12px 16px; border-bottom: 1px solid var(--fp-line-soft); white-space: nowrap; }
.fp-tbl .fp-d { text-align: right; }
.fp-bloc.fp-sans-marge { padding: 0; overflow: hidden; gap: 0; }
.fp-bloc.fp-sans-marge .fp-bloc-tete { padding: 16px 18px; border-bottom: 1px solid var(--fp-line); align-items: center; }

/* Trajectoire du loyer */
.fp-traj { display: grid; gap: 4px; min-height: 64px; }
.fp-traj > div { padding: 10px; display: flex; flex-direction: column; justify-content: center; gap: 2px; font-size: 12px; min-width: 0; }
.fp-traj > div:first-child { border-radius: 8px 0 0 8px; }
.fp-traj > div:last-child { border-radius: 0 8px 8px 0; }
.fp-traj b { font-weight: 600; }
.fp-traj .fp-franchise { background: repeating-linear-gradient(135deg, #FFF4E5 0 6px, #FDE7CC 6px 12px); color: var(--fp-warn-ink); }
.fp-traj .fp-p1 { background: #C9D3E3; }
.fp-traj .fp-p2 { background: #7F9BE0; color: #0B1A44; }
.fp-traj .fp-idx { background: var(--fp-blue); color: #fff; }
.fp-traj-dates { display: grid; gap: 4px; font-size: 12px; color: var(--fp-muted); font-family: 'Geist Mono', monospace; }

/* Étapes (régularisation) */
.fp-etapes { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fit, minmax(160px, 1fr)); gap: 8px; }
.fp-etape { min-height: 52px; display: flex; align-items: center; gap: 10px; padding: 0 14px; border-radius: 12px; font: 600 14px Geist, sans-serif; background: #fff; border: 1px solid var(--fp-line); color: var(--fp-muted); }
.fp-etape.fp-faite { color: var(--fp-ink); }
.fp-etape.fp-courante { border: 2px solid var(--fp-blue); color: var(--fp-ink); }
.fp-etape i { width: 26px; height: 26px; flex: none; border-radius: 999px; display: flex; align-items: center; justify-content: center; font-size: 12px; font-style: normal; background: var(--fp-line-soft); color: var(--fp-muted); font-family: 'Geist Mono', monospace; }
.fp-etape.fp-faite i, .fp-etape.fp-courante i { background: var(--fp-blue); color: #fff; }

/* Anneau d'occupation (bâtiments) */
.fp-anneau { --p: 0; width: 64px; height: 64px; border-radius: 50%; flex: none; display: grid; place-items: center;
    background: conic-gradient(var(--c, var(--fp-ink)) calc(var(--p) * 1%), var(--fp-track) 0); }
.fp-anneau span { width: 48px; height: 48px; border-radius: 50%; background: #fff; display: grid; place-items: center; font: 600 13px 'Geist Mono', monospace; }

/* Pastille initiales */
.fp-ini { width: 32px; height: 32px; border-radius: 8px; background: #EEF2FA; color: var(--fp-blue-dark); display: inline-flex; align-items: center; justify-content: center; font-size: 12px; font-weight: 700; flex: none; }

/* Arbre des lots divisés */
.fp-branche { color: var(--fp-side-muted); font-family: 'Geist Mono', monospace; margin-right: 4px; }

/* Grille de cartes (stock commercial) */
.fp-carte-lot .fp-ref { font-family: 'Geist Mono', monospace; font-size: 13px; color: var(--fp-muted); }
.fp-carte-lot h3 { margin: 0; font-size: 17px; font-weight: 600; }
.fp-carte-lot .fp-pied { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; padding-top: 12px; border-top: 1px solid var(--fp-line-soft); }
.fp-carte-lot .fp-pied small { display: block; font-size: 12px; color: var(--fp-muted); }
.fp-carte-lot .fp-pied b { font-family: 'Geist Mono', monospace; font-weight: 600; }

/* Droits par rôle */
.fp-droit { display: inline-flex; width: 26px; height: 26px; align-items: center; justify-content: center; border-radius: 7px; font-weight: 700; font-size: 12px; }
.fp-droit.fp-ecr { background: var(--fp-blue); color: #fff; }
.fp-droit.fp-lec { background: var(--fp-blue-soft); color: var(--fp-blue-dark); }
.fp-droit.fp-non { background: #F1F3F6; color: #9AA2B1; }

/* Les widgets maison ne veulent pas du cadre Filament */
.fi-wi-widget.fp-nu > .fi-section { background: transparent; border: 0; padding: 0; }

@media (max-width: 1023px) {
    .fi-main { padding-top: 64px; }
}

/* Boutons et liens primaires : bleu exact de la maquette */
.fi-btn.fi-color-primary:not(.fi-outlined), .fi-btn.fi-color.fi-color-primary:not(.fi-outlined) { background: var(--fp-blue); color: #fff; border: 0; }
.fi-btn.fi-color-primary:not(.fi-outlined):hover { background: var(--fp-blue-dark); }
.fi-btn.fi-color-primary:not(.fi-outlined) .fi-icon { color: #fff; }
.fi-link.fi-color-primary, .fi-ac-link-action.fi-color-primary { color: var(--fp-blue); }
.fi-btn.fi-color-success:not(.fi-outlined) { background: var(--fp-blue); color: #fff; }
.fi-btn.fi-color-warning:not(.fi-outlined) { background: var(--fp-warn-bg); color: var(--fp-warn-ink); border: 1px solid var(--fp-warn-line); }
.fi-btn.fi-color-warning:not(.fi-outlined) .fi-icon { color: var(--fp-warn-ink); }
.fi-checkbox-input:checked { background-color: var(--fp-blue); }
.fi-sidebar-nav { scroll-padding-top: 260px; }
.num .fi-ta-text-description { font-family: var(--font-family, Geist), system-ui, sans-serif; letter-spacing: 0; }
.fi-ta-text-item-label.fi-font-semibold, .fi-ta-text .fi-font-semibold { font-weight: 600; }
.fi-btn.fp-btn-blanc, .fi-btn.fi-color-primary.fp-btn-blanc { background: #FFFFFF; color: var(--fp-side); min-height: 48px; padding: 0 22px; font-size: 15px; }
.fi-btn.fp-btn-blanc:hover { background: #E8F0FF; }
.fi-btn.fp-btn-blanc .fi-icon { color: var(--fp-side); }
.fi-btn.fi-color-primary.fp-btn-blanc:not(.fi-outlined), .fi-btn.fp-btn-blanc:not(.fi-outlined) { background: #FFFFFF; color: var(--fp-side); }
.fi-btn.fi-color-primary.fp-btn-blanc:not(.fi-outlined):hover { background: #E8F0FF; }

/* Tableaux : le texte peut passer à la ligne, les montants et dates jamais */
.fi-ta-cell .fi-ta-text, .fi-ta-cell .fi-ta-text-item, .fi-ta-cell .fi-ta-text-item-label { white-space: normal; }
.fi-ta-cell.num .fi-ta-text, .fi-ta-cell .num, .fi-ta-cell .fi-ta-text.num, .fi-ta-cell .fi-badge { white-space: nowrap; }
.fi-ta-header-cell { padding-inline: 12px; }
.fi-sidebar-database-notifications-btn-label { color: var(--fp-side-ink); font-size: 14px; font-weight: 500; }
