/* Entreprises : langage commun à l'annuaire, à « Mes entreprises » et à la gestion.
   Mêmes principes que le hub RolePlay : grands arrondis, dégradés d'icône, aucune rotation. */

.en-hero { display: flex; align-items: flex-end; justify-content: space-between; gap: 2rem; flex-wrap: wrap; margin-bottom: clamp(1.4rem, 3vw, 2.2rem); }
.en-kicker { font-size: 0.85rem; font-weight: 600; color: var(--primary-color); }
.en-hero h1 { font-size: clamp(2.2rem, 4.6vw, 3.8rem); font-weight: 700; letter-spacing: -0.045em; line-height: 1.04; margin: 0.3rem 0 0.5rem; }
.en-hero p { color: var(--text-secondary); font-size: 1.05rem; max-width: 52ch; margin: 0; }
.en-stats { display: flex; gap: 0.7rem; flex-wrap: wrap; }
.en-stat { padding: 0.85rem 1.2rem; border-radius: 24px; background: var(--background-secondary); min-width: 128px; }
.en-stat b { display: block; font-size: 1.45rem; font-weight: 700; letter-spacing: -0.03em; }
.en-stat i { font-style: normal; font-size: 0.8rem; color: var(--text-secondary); }

/* Barre d'outils */
body .toolbar { display: flex; gap: 0.7rem; flex-wrap: wrap; align-items: center; }
body .toolbar .search-box { flex: 1 1 280px; border-radius: 999px; }
.en-select, .en-puce {
    height: 44px; padding: 0 1.1rem; border-radius: 999px; border: 0; font: inherit; font-weight: 600; font-size: 0.9rem;
    background: var(--background-secondary); color: var(--text-primary); cursor: pointer;
    box-shadow: inset 0 0 0 1px var(--border-color); transition: background 0.3s, box-shadow 0.3s, color 0.3s;
}
.en-puce { display: inline-flex; align-items: center; gap: 0.45rem; }
.en-puce .material-symbols-outlined { font-size: 1.15rem; }
.en-puce.on { background: var(--primary-color); color: #fff; box-shadow: none; }

/* Étagère « Ça recrute » */
.en-etagere { margin: 0 0 1.6rem; }
.en-etagere:empty { display: none; }
.en-etagere h2 { font-size: 1.15rem; font-weight: 700; letter-spacing: -0.025em; margin: 0 0 0.7rem 0.2rem; }
.en-rail { display: flex; gap: 0.8rem; overflow-x: auto; padding-bottom: 0.6rem; scroll-snap-type: x proximity; scrollbar-width: thin; }
.en-offre {
    flex: 0 0 min(300px, 80vw); scroll-snap-align: start; display: flex; flex-direction: column; gap: 0.5rem;
    padding: 1.1rem 1.2rem; border-radius: 28px; text-align: left; border: 0; cursor: pointer; color: inherit; font: inherit;
    background: linear-gradient(150deg, rgba(48, 209, 88, 0.2), var(--background-secondary) 70%);
    transition: background 0.3s;
}
.en-offre:hover { background: linear-gradient(150deg, rgba(48, 209, 88, 0.32), var(--background-secondary) 75%); }
.en-offre b { font-size: 1.05rem; letter-spacing: -0.02em; }
.en-offre span { color: var(--text-secondary); font-size: 0.86rem; }
.en-offre em { font-style: normal; font-weight: 700; color: #30d158; }

/* Cartes de l'annuaire */
body .ann-grille { grid-template-columns: repeat(auto-fill, minmax(300px, 1fr)); gap: 1rem; }
body .ann-carte { border: 0; border-radius: 30px; background: var(--background-secondary); }
body .ann-carte:hover, body .ann-carte:focus-visible { box-shadow: 0 24px 50px -28px rgba(0,0,0,0.8); background: var(--background-card-hover, var(--background-card)); }
body .ann-boussole, body .ann-carte:hover .ann-boussole { transform: none; }
body .ann-visuel { aspect-ratio: 16 / 10; }
body .ann-nom { letter-spacing: -0.025em; font-weight: 700; }
.en-fav {
    position: absolute; top: 0.7rem; left: 0.7rem; z-index: 3; width: 38px; height: 38px; border-radius: 50%; border: 0; cursor: pointer;
    display: grid; place-items: center; background: rgba(0,0,0,0.5); color: #fff;
    -webkit-backdrop-filter: blur(8px); backdrop-filter: blur(8px); transition: background 0.3s, color 0.3s;
}
.en-fav .material-symbols-outlined { font-size: 1.25rem; }
.en-fav.on { background: #f1c40f; color: #3b2500; }
.en-fav.on .material-symbols-outlined { font-variation-settings: 'FILL' 1; }

/* La barre d'outils reste sur une ligne, quel que soit le gabarit hérité. */
body main .toolbar { display: flex !important; flex-direction: row !important; flex-wrap: wrap; align-items: center; margin-bottom: 1rem; }
body main .toolbar .search-box { flex: 1 1 260px; max-width: none; width: auto; }
body main .toolbar .ann-vues { margin-left: auto; }
body main .toolbar[style*="display:none"], body main .toolbar[style*="display: none"] { display: none !important; }

/* ── Gestion d'entreprise ── */
body .ent-hero { margin-top: 0; border-radius: 40px; overflow: hidden; }
body .ent-hero-banner { border-radius: 40px; }
body .stat-strip { max-width: none; padding: 0; margin-top: 1rem; }
body .stat-tile { border: 0; border-radius: 26px; background: var(--background-secondary); }
body .dashboard { max-width: none; padding: 0; margin-top: 1rem; gap: 1rem; }
body .side-nav { border: 0; border-radius: 30px; background: var(--background-secondary); padding: 0.5rem; }
body .side-tab { border-radius: 20px; font-weight: 600; }
body .side-tab.active { background: var(--primary-color); color: #fff; }
body .panel-card { border: 0; border-radius: 30px; background: var(--background-secondary); }
body .content-panel .tab-panel.active { animation: gv2Entree 0.5s var(--ease-out, cubic-bezier(0.22, 1, 0.36, 1)) both; }
@keyframes gv2Entree { from { opacity: 0; transform: translateY(12px); } to { opacity: 1; transform: none; } }

.gv2-actions { display: flex; gap: 0.5rem; flex-wrap: wrap; margin-top: 1rem; }
.gv2-actions button {
    display: inline-flex; align-items: center; gap: 0.5rem; height: 44px; padding: 0 1.1rem; border: 0; border-radius: 999px;
    background: var(--background-secondary); color: var(--text-primary); font: inherit; font-weight: 600; cursor: pointer;
    box-shadow: inset 0 0 0 1px var(--border-color); transition: background 0.3s, color 0.3s;
}
.gv2-actions button:hover { background: var(--primary-color); color: #fff; box-shadow: none; }
.gv2-actions .material-symbols-outlined { font-size: 1.2rem; }
.gv2-barres { display: flex; align-items: flex-end; gap: 6px; height: 120px; padding: 0.4rem 0 0.2rem; }
.gv2-barres span { flex: 1; border-radius: 8px 8px 4px 4px; min-height: 8px; }
.gv2-barres .pos { background: linear-gradient(180deg, #30d158, rgba(48, 209, 88, 0.35)); }
.gv2-barres .neg { background: linear-gradient(180deg, #ff6b61, rgba(255, 107, 97, 0.35)); }
.gv2-bilan { display: flex; justify-content: space-between; gap: 1rem; margin-top: 0.6rem; font-size: 0.9rem; color: var(--text-secondary); }
.gv2-switch { height: 32px; border-radius: 999px; border: 0; padding: 0 0.9rem; font: inherit; font-weight: 600; background: rgba(255,255,255,0.12); color: inherit; cursor: pointer; }
@media (max-width: 860px) { body .dashboard { grid-template-columns: 1fr; } body .side-nav { display: flex; overflow-x: auto; } }

/* ── Chargement : squelette ── */
.sk-carte { pointer-events: none; cursor: default; }
.sk-visuel, .sk-corps i, .sk-ligne {
    background: linear-gradient(90deg, rgba(255,255,255,0.05) 25%, rgba(255,255,255,0.11) 37%, rgba(255,255,255,0.05) 63%);
    background-size: 400% 100%; animation: skShimmer 1.4s ease infinite;
}
@keyframes skShimmer { 0% { background-position: 100% 50%; } 100% { background-position: 0 50%; } }
.sk-visuel { aspect-ratio: 16 / 10; }
.sk-corps { padding: 1rem 1.1rem 1.2rem; display: flex; flex-direction: column; gap: 0.65rem; }
.sk-corps i { display: block; height: 0.9rem; border-radius: 8px; width: 80%; }
.sk-corps i.m { width: 60%; } .sk-corps i.c { width: 40%; }
.sk-ligne { height: 110px; border-radius: 28px; }

/* ── Étagère : tout est affiché, sans barre de défilement ── */
.en-rail { flex-wrap: wrap; overflow: visible; padding-bottom: 0; }
.en-offre { flex: 1 1 240px; max-width: 360px; }

/* ── Entrée des cartes à chaque changement de filtre ── */
.ann-grille.entree .ann-carte { animation: annEntree 0.55s cubic-bezier(0.22, 1, 0.36, 1) both; animation-delay: calc(var(--i, 0) * 35ms); }
@keyframes annEntree { from { opacity: 0; transform: translateY(18px) scale(0.97); } to { opacity: 1; transform: none; } }
.ann-grille.en-transition .ann-carte { animation: none; }
@media (prefers-reduced-motion: reduce) { .ann-grille.entree .ann-carte { animation: none; } }

.en-vide { text-align: center; padding: 3.5rem 1rem; color: var(--text-secondary); display: flex; flex-direction: column; align-items: center; gap: 0.5rem; }
.en-vide .material-symbols-outlined { font-size: 3rem; opacity: 0.5; }
.en-vide b { color: var(--text-primary); font-size: 1.15rem; letter-spacing: -0.02em; }
.en-vide p { margin: 0 0 0.6rem; max-width: 40ch; }

/* ── Fiche entreprise : tiroir latéral ── */
body .ent-modal-overlay { justify-content: flex-end !important; align-items: stretch !important; padding: 0.75rem !important; overflow: hidden !important; }
body #entModal {
    max-width: 640px; width: 100%; height: 100%; margin: 0 !important; border: 0; border-radius: 36px; overflow-y: auto;
    background: var(--background-primary, #0b0b0f); box-shadow: 0 40px 100px rgba(0,0,0,0.6);
    transform: translateX(60px) !important; opacity: 0; transition: transform 0.6s cubic-bezier(0.22, 1, 0.36, 1), opacity 0.35s !important;
    scrollbar-width: thin;
}
body .ent-modal-overlay.show #entModal { transform: none !important; opacity: 1; }
.ed-tete { position: relative; }
.ed-banniere { height: 190px; background: linear-gradient(140deg, #1d3f7a, #0e1530); overflow: hidden; }
.ed-banniere img { width: 100%; height: 100%; object-fit: cover; display: block; }
.ed-fermer { position: absolute; top: 1rem; right: 1rem; width: 42px; height: 42px; border-radius: 50%; border: 0; cursor: pointer; color: #fff;
    background: rgba(0,0,0,0.5); -webkit-backdrop-filter: blur(10px); backdrop-filter: blur(10px); display: grid; place-items: center; }
.ed-logo { position: absolute; left: 1.6rem; bottom: -44px; width: 96px; height: 96px; border-radius: 28px; object-fit: cover;
    background: var(--background-secondary); box-shadow: 0 0 0 5px var(--background-primary, #0b0b0f), 0 18px 36px -12px rgba(0,0,0,0.7); }
.ed-logo-vide { display: grid; place-items: center; font-size: 1.8rem; font-weight: 700; }
.ed-corps { padding: 3.4rem 1.6rem 2rem; display: flex; flex-direction: column; gap: 0.9rem; }
.ed-badges { display: flex; gap: 0.4rem; flex-wrap: wrap; min-height: 0; }
.ed-badges:empty { display: none; }
.ed-nom { font-size: clamp(1.7rem, 3.4vw, 2.3rem); font-weight: 700; letter-spacing: -0.04em; line-height: 1.1; margin: 0; }
.ed-patron { display: flex; align-items: center; gap: 0.4rem; margin: 0; color: var(--text-secondary); font-size: 0.92rem; }
.ed-patron .material-symbols-outlined { font-size: 1.1rem; }
.ed-desc { margin: 0; color: var(--text-secondary); line-height: 1.6; white-space: pre-line; }
.ed-actions { display: flex; gap: 0.5rem; flex-wrap: wrap; }
.ed-actions:empty { display: none; }
.ed-btn { display: inline-flex; align-items: center; gap: 0.5rem; height: 44px; padding: 0 1.2rem; border-radius: 999px; font-weight: 700; font-size: 0.92rem;
    text-decoration: none; background: var(--background-secondary); color: var(--text-primary); box-shadow: inset 0 0 0 1px var(--border-color); }
.ed-btn.plein { background: var(--primary-color); color: #fff; box-shadow: none; }
.ed-chiffres { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 0.6rem; }
.ed-chiffre { padding: 0.9rem; border-radius: 22px; background: var(--background-secondary); display: flex; flex-direction: column; gap: 0.15rem; }
.ed-chiffre .material-symbols-outlined { font-size: 1.2rem; color: var(--primary-color); margin-bottom: 0.3rem; }
.ed-chiffre b { font-size: 1.05rem; letter-spacing: -0.02em; }
.ed-chiffre i { font-style: normal; font-size: 0.75rem; color: var(--text-secondary); }
.ed-section h3 { font-size: 1.05rem; font-weight: 700; letter-spacing: -0.02em; margin: 0.6rem 0 0.7rem; }
.ed-section h3 span { color: var(--text-secondary); font-weight: 600; margin-left: 0.3rem; }
.ed-postes { display: flex; flex-direction: column; gap: 0.6rem; }
.ed-poste { padding: 1rem 1.1rem; border-radius: 24px; background: linear-gradient(150deg, rgba(48,209,88,0.16), var(--background-secondary) 70%); }
.ed-poste-t { display: flex; justify-content: space-between; gap: 1rem; align-items: baseline; }
.ed-poste-t b { letter-spacing: -0.02em; } .ed-poste-t em { font-style: normal; font-weight: 700; color: #30d158; white-space: nowrap; }
.ed-poste p { margin: 0.4rem 0 0; color: var(--text-secondary); font-size: 0.9rem; line-height: 1.5; white-space: pre-line; }
.ed-poste-img { display: flex; gap: 0.4rem; flex-wrap: wrap; margin-top: 0.7rem; }
.ed-poste-img img { height: 70px; border-radius: 12px; }
.ed-equipe { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 0.4rem; }
.ed-equipe li { display: flex; align-items: center; gap: 0.8rem; padding: 0.6rem 0.8rem; border-radius: 20px; background: var(--background-secondary); }
.ed-av { width: 38px; height: 38px; border-radius: 14px; display: grid; place-items: center; background: rgba(76,141,255,0.2); color: var(--primary-color); font-weight: 700; flex: none; }
.ed-eq-t { flex: 1; min-width: 0; display: flex; flex-direction: column; }
.ed-eq-t b { font-size: 0.95rem; } .ed-eq-t i { font-style: normal; font-size: 0.8rem; color: var(--text-secondary); }
.ed-eq-s { font-weight: 700; font-size: 0.88rem; color: #30d158; }
.ed-masse { margin: 0.6rem 0 0; font-size: 0.85rem; color: var(--text-secondary); }
.ed-vide { color: var(--text-secondary); margin: 0; }
.ed-liens { display: flex; flex-wrap: wrap; gap: 0.5rem; }
.ed-lien { display: inline-flex; align-items: center; gap: 0.5rem; padding: 0.55rem 1rem; border-radius: 999px; background: var(--background-secondary); color: inherit; text-decoration: none; font-weight: 600; font-size: 0.9rem; box-shadow: inset 0 0 0 1px var(--m, var(--border-color)); }
.ed-lien svg { width: 18px; height: 18px; }
@media (max-width: 560px) { .ed-chiffres { grid-template-columns: repeat(2, 1fr); } body .ent-modal-overlay { padding: 0 !important; } body #entModal { border-radius: 28px 28px 0 0; } }

/* ── Tableau de bord ── */
.db-grille { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); gap: 1rem; }
.db-carte { grid-column: span 12; padding: 1.3rem 1.4rem; border-radius: 32px; background: var(--background-secondary); min-width: 0;
    animation: dbEntree 0.6s cubic-bezier(0.22, 1, 0.36, 1) both; }
.db-carte:nth-child(2) { animation-delay: .05s } .db-carte:nth-child(3) { animation-delay: .1s } .db-carte:nth-child(4) { animation-delay: .15s }
.db-carte:nth-child(5) { animation-delay: .2s } .db-carte:nth-child(6) { animation-delay: .25s } .db-carte:nth-child(7) { animation-delay: .3s }
@keyframes dbEntree { from { opacity: 0; transform: translateY(18px); } to { opacity: 1; transform: none; } }
@media (min-width: 1000px) {
    .db-l4 { grid-column: span 4; } .db-l5 { grid-column: span 5; } .db-l6 { grid-column: span 6; }
    .db-l7 { grid-column: span 7; } .db-l8 { grid-column: span 8; } .db-l12 { grid-column: span 12; }
}
.db-carte h3 { display: flex; align-items: center; gap: 0.5rem; font-size: 1rem; font-weight: 700; letter-spacing: -0.02em; margin: 0 0 1rem; }
.db-carte h3 .material-symbols-outlined { font-size: 1.25rem; color: var(--primary-color); }
.db-tete { display: flex; align-items: center; justify-content: space-between; gap: 1rem; flex-wrap: wrap; margin-bottom: 0.4rem; }
.db-tete h3 { margin: 0; }
.db-lbl { font-size: 0.78rem; font-weight: 600; color: var(--text-secondary); text-transform: uppercase; letter-spacing: 0.06em; }
.db-gros { display: block; font-size: clamp(1.8rem, 3.4vw, 2.6rem); font-weight: 700; letter-spacing: -0.04em; }
.db-graph-tete { display: flex; align-items: flex-end; justify-content: space-between; gap: 1rem; flex-wrap: wrap; }
.db-delta { display: inline-flex; align-items: center; gap: 0.4rem; padding: 0.35rem 0.8rem; border-radius: 999px; font-size: 0.82rem; font-weight: 700; }
.db-delta.up { background: rgba(48,209,88,0.16); color: #30d158; } .db-delta.down { background: rgba(255,107,97,0.16); color: #ff6b61; }
.db-delta .material-symbols-outlined { font-size: 1.1rem; }
.db-graph { position: relative; margin-top: 0.8rem; height: 230px; touch-action: none; }
.db-graph svg { width: 100%; height: 100%; display: block; overflow: visible; }
.db-trait { stroke-dasharray: 1400; stroke-dashoffset: 1400; animation: dbTrace 1.4s 0.2s cubic-bezier(0.22, 1, 0.36, 1) forwards; }
@keyframes dbTrace { to { stroke-dashoffset: 0; } }
.db-guide { stroke: rgba(255,255,255,0.25); stroke-width: 1; stroke-dasharray: 4 4; opacity: 0; vector-effect: non-scaling-stroke; transition: opacity 0.2s; }
.db-point { position: absolute; left: -6px; top: -6px; width: 12px; height: 12px; border-radius: 50%; background: #fff; box-shadow: 0 0 0 4px rgba(76,141,255,0.45); opacity: 0; pointer-events: none; transition: opacity 0.2s; }
.db-bulle { position: absolute; left: 0; top: 0; width: 160px; padding: 0.55rem 0.7rem; border-radius: 16px; background: var(--background-primary, #0b0b0f);
    box-shadow: 0 14px 30px -10px rgba(0,0,0,0.7), inset 0 0 0 1px var(--border-color); pointer-events: none; font-size: 0.78rem; }
.db-bulle b { display: block; font-size: 0.95rem; } .db-bulle span { color: var(--text-secondary); }
.db-axe { display: flex; justify-content: space-between; font-size: 0.76rem; color: var(--text-secondary); margin-top: 0.4rem; }
.db-jauge { position: relative; width: 150px; height: 150px; margin: 0 auto; }
.db-jauge svg { width: 100%; height: 100%; }
.db-jauge .fond { fill: none; stroke: var(--background-card); stroke-width: 12; }
.db-jauge .val { fill: none; stroke-width: 12; stroke-linecap: round; transition: stroke-dashoffset 1.2s cubic-bezier(0.22, 1, 0.36, 1); }
.db-jauge.ok .val { stroke: #30d158; } .db-jauge.alerte .val { stroke: #ffb340; } .db-jauge.danger .val { stroke: #ff6b61; } .db-jauge.neutre .val { stroke: var(--border-strong); }
.db-jauge-txt { position: absolute; inset: 0; display: flex; flex-direction: column; align-items: center; justify-content: center; }
.db-jauge-txt b { font-size: 1.9rem; letter-spacing: -0.04em; } .db-jauge-txt span { font-size: 0.78rem; color: var(--text-secondary); }
.db-conseil { text-align: center; color: var(--text-secondary); font-size: 0.88rem; line-height: 1.5; margin: 0.9rem 0 0; }
.db-alertes { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); gap: 0.6rem; }
.db-alertes li { display: flex; align-items: center; gap: 0.9rem; padding: 0.8rem 1rem; border-radius: 22px; background: var(--background-card); }
.db-al-ic { width: 42px; height: 42px; border-radius: 15px; display: grid; place-items: center; flex: none; }
.db-alertes .danger .db-al-ic { background: rgba(255,107,97,0.18); color: #ff6b61; }
.db-alertes .alerte .db-al-ic { background: rgba(255,179,64,0.18); color: #ffb340; }
.db-alertes .info .db-al-ic, .db-alertes .tip .db-al-ic { background: rgba(76,141,255,0.18); color: var(--primary-color); }
.db-alertes .ok .db-al-ic { background: rgba(48,209,88,0.18); color: #30d158; }
.db-al-t { flex: 1; min-width: 0; display: flex; flex-direction: column; } .db-al-t b { font-size: 0.95rem; } .db-al-t i { font-style: normal; font-size: 0.82rem; color: var(--text-secondary); }
.db-alertes button, .db-btn { border: 0; border-radius: 999px; padding: 0.5rem 0.9rem; font: inherit; font-weight: 700; font-size: 0.82rem; cursor: pointer; background: var(--primary-color); color: #fff; flex: none; }
.db-flux-barre { display: flex; height: 14px; border-radius: 999px; overflow: hidden; background: var(--background-card); gap: 3px; }
.db-flux-barre span { transition: width 1s cubic-bezier(0.22, 1, 0.36, 1); } .db-flux-barre .in, .db-flux-l i.in { background: #30d158; } .db-flux-barre .out, .db-flux-l i.out { background: #ff6b61; }
.db-flux-l { display: flex; justify-content: space-between; gap: 1rem; margin-top: 0.7rem; font-size: 0.88rem; color: var(--text-secondary); flex-wrap: wrap; }
.db-flux-l i { display: inline-block; width: 10px; height: 10px; border-radius: 50%; margin-right: 0.4rem; } .db-flux-l b { color: var(--text-primary); margin-left: 0.3rem; }
.db-types { list-style: none; padding: 0; margin: 1.1rem 0 0; display: flex; flex-direction: column; gap: 0.6rem; }
.db-types li { display: grid; grid-template-columns: 120px 1fr auto; gap: 0.8rem; align-items: center; font-size: 0.88rem; }
.db-types-n em { font-style: normal; color: var(--text-secondary); margin-left: 0.4rem; font-size: 0.78rem; }
.db-types-b { height: 8px; border-radius: 999px; background: var(--background-card); overflow: hidden; } .db-types-b i { display: block; height: 100%; border-radius: 999px; }
.db-equipe { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 0.7rem; }
.db-equipe li { display: flex; align-items: center; gap: 0.8rem; }
.db-av { width: 40px; height: 40px; border-radius: 14px; background: rgba(76,141,255,0.2); color: var(--primary-color); display: grid; place-items: center; font-weight: 700; flex: none; }
.db-eq-t { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: 2px; } .db-eq-t i { font-style: normal; font-size: 0.78rem; color: var(--text-secondary); }
.db-eq-b { height: 6px; border-radius: 999px; background: var(--background-card); overflow: hidden; margin-top: 3px; } .db-eq-b u { display: block; height: 100%; border-radius: 999px; background: linear-gradient(90deg, #4c8dff, #5ac8fa); }
.db-eq-s { font-weight: 700; font-size: 0.9rem; }
.db-lien { margin-top: 0.9rem; border: 0; background: none; color: var(--primary-color); font: inherit; font-weight: 700; cursor: pointer; padding: 0; }
.db-filtres { display: inline-flex; gap: 2px; padding: 3px; border-radius: 999px; background: var(--background-card); }
.db-filtres button { border: 0; border-radius: 999px; padding: 0.35rem 0.85rem; background: transparent; color: var(--text-secondary); font: inherit; font-size: 0.8rem; font-weight: 700; cursor: pointer; }
.db-filtres button.on { background: var(--primary-color); color: #fff; }
#dbTx { transition: opacity 0.14s; }
.db-tx { list-style: none; margin: 0.6rem 0 0; padding: 0; display: flex; flex-direction: column; }
.db-tx li { display: flex; align-items: center; gap: 0.8rem; padding: 0.65rem 0; border-bottom: 1px solid var(--border-color); } .db-tx li:last-child { border: 0; }
.db-tx-ic { width: 36px; height: 36px; border-radius: 13px; display: grid; place-items: center; flex: none; } .db-tx-ic .material-symbols-outlined { font-size: 1.15rem; }
.db-tx-ic.in { background: rgba(48,209,88,0.16); color: #30d158; } .db-tx-ic.out { background: rgba(255,107,97,0.16); color: #ff6b61; }
.db-tx-t { flex: 1; min-width: 0; display: flex; flex-direction: column; } .db-tx-t b { font-size: 0.92rem; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.db-tx-t i { font-style: normal; font-size: 0.78rem; color: var(--text-secondary); }
.db-tx-m { font-weight: 700; white-space: nowrap; } .db-tx-m.pos { color: #30d158; } .db-tx-m.neg { color: #ff6b61; }
.db-fact { display: grid; grid-template-columns: 1fr 1fr; gap: 0.6rem; }
.db-fact-b { padding: 1rem; border-radius: 22px; display: flex; flex-direction: column; gap: 2px; background: var(--background-card); }
.db-fact-b span { font-size: 0.78rem; color: var(--text-secondary); font-weight: 600; } .db-fact-b b { font-size: 1.3rem; letter-spacing: -0.03em; } .db-fact-b i { font-style: normal; font-size: 0.78rem; color: var(--text-secondary); }
.db-fact-b.in b { color: #30d158; } .db-fact-b.out b { color: #ff9f0a; }
.db-vide { text-align: center; padding: 1.4rem 0.6rem; color: var(--text-secondary); display: flex; flex-direction: column; align-items: center; gap: 0.3rem; }
.db-vide .material-symbols-outlined { font-size: 2.2rem; opacity: 0.5; } .db-vide b { color: var(--text-primary); } .db-vide p { margin: 0 0 0.4rem; font-size: 0.88rem; }
.db-vide.petit { padding: 0.8rem; }
@media (prefers-reduced-motion: reduce) { .db-carte { animation: none; } .db-graph svg { animation: none; clip-path: none; } }

/* Sélecteur d'entreprise : une pastille, jamais un champ pleine largeur. */
.gv2-switch { width: auto !important; min-width: 0; max-width: 240px; display: inline-block !important; flex: none; }
.ent-hero-meta { flex-wrap: wrap; align-items: center; }
body .stat-strip { overflow: visible; }
body .stat-tile { min-width: 0; }

/* ── Gestion : nouvelle coque ── */
body .side-nav { display: none !important; }
body .dashboard { display: block !important; }
body .content-panel { width: 100%; }
body .ent-hero-banner { height: 120px !important; }
body .ent-hero { margin-bottom: 0; }
.gv-nav { margin: 1rem 0 0; display: flex; flex-direction: column; gap: 0.6rem; position: sticky; top: calc(var(--nav-height, 70px) + 0.5rem); z-index: 20; }
.gv-secs { display: flex; gap: 0.4rem; flex-wrap: wrap; padding: 0.4rem; border-radius: 999px; background: var(--background-secondary);
    box-shadow: 0 16px 40px -24px rgba(0,0,0,0.8), inset 0 0 0 1px var(--border-color); }
.gv-sec { display: inline-flex; align-items: center; gap: 0.5rem; height: 42px; padding: 0 1.1rem; border: 0; border-radius: 999px; background: transparent;
    color: var(--text-secondary); font: inherit; font-weight: 600; font-size: 0.92rem; cursor: pointer; transition: background 0.35s, color 0.35s; }
.gv-sec .material-symbols-outlined { font-size: 1.2rem; }
.gv-sec:hover { color: var(--text-primary); background: var(--background-card); }
.gv-sec.actif { background: var(--primary-color); color: #fff; }
.gv-cmd { margin-left: auto; display: inline-flex; align-items: center; gap: 0.5rem; height: 42px; padding: 0 0.9rem; border: 0; border-radius: 999px; background: var(--background-card); color: var(--text-secondary); font: inherit; font-size: 0.88rem; font-weight: 600; cursor: pointer; }
.gv-cmd kbd { font: inherit; font-size: 0.72rem; padding: 0.1rem 0.45rem; border-radius: 6px; background: rgba(255,255,255,0.08); }
.gv-sous { display: flex; gap: 0.4rem; flex-wrap: wrap; padding-left: 0.4rem; }
.gv-sous button { border: 0; border-radius: 999px; padding: 0.45rem 1rem; font: inherit; font-size: 0.86rem; font-weight: 600; cursor: pointer; background: var(--background-secondary); color: var(--text-secondary); box-shadow: inset 0 0 0 1px var(--border-color); }
.gv-sous button.actif { color: var(--text-primary); box-shadow: inset 0 0 0 2px var(--primary-color); }
@media (max-width: 760px) { .gv-sec { padding: 0 0.8rem; } .gv-sec span:not(.material-symbols-outlined) { display: none; } .gv-cmd { display: none; } }

.gv-palette { position: fixed; inset: 0; z-index: 5000; display: flex; justify-content: center; align-items: flex-start; padding-top: 16vh;
    background: rgba(5,5,12,0.6); -webkit-backdrop-filter: blur(8px); backdrop-filter: blur(8px); animation: gvPal 0.25s ease both; }
@keyframes gvPal { from { opacity: 0; } }
.gv-pal-boite { width: min(560px, calc(100vw - 2rem)); border-radius: 28px; background: var(--background-secondary); box-shadow: 0 40px 100px rgba(0,0,0,0.7), inset 0 0 0 1px var(--border-strong, var(--border-color)); overflow: hidden; }
.gv-pal-boite input { width: 100%; box-sizing: border-box; border: 0; outline: 0; background: transparent; color: var(--text-primary); font: inherit; font-size: 1.1rem; padding: 1.1rem 1.3rem; border-bottom: 1px solid var(--border-color); }
.gv-pal-boite ul { list-style: none; margin: 0; padding: 0.5rem; max-height: 50vh; overflow-y: auto; }
.gv-pal-boite li { display: flex; align-items: center; gap: 0.8rem; padding: 0.7rem 0.9rem; border-radius: 16px; cursor: pointer; }
.gv-pal-boite li.on { background: var(--primary-color); color: #fff; }
.gv-pal-boite li.vide { color: var(--text-secondary); cursor: default; }
.db-notes { width: 100%; box-sizing: border-box; border: 0; border-radius: 20px; padding: 1rem 1.1rem; font: inherit; resize: vertical; min-height: 110px;
    background: var(--background-card); color: var(--text-primary); }
.gv2-switch { height: 36px !important; }
body .stat-strip { grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)) !important; }

/* ── Onglets de gestion repensés (og-*) ── */
.og-entete { display: flex; align-items: flex-end; justify-content: space-between; gap: 1rem; flex-wrap: wrap; margin: 0.4rem 0 1.1rem; }
.og-entete h2 { font-size: clamp(1.5rem, 2.6vw, 2rem); font-weight: 700; letter-spacing: -0.04em; margin: 0; }
.og-entete p { margin: 0.2rem 0 0; color: var(--text-secondary); }
.og-actions { display: inline-flex; gap: 0.5rem; flex-wrap: wrap; }
.og-btn { display: inline-flex; align-items: center; gap: 0.5rem; height: 44px; padding: 0 1.2rem; border: 0; border-radius: 999px; background: var(--primary-color); color: #fff;
    font: inherit; font-weight: 700; font-size: 0.92rem; cursor: pointer; transition: filter 0.3s; }
.og-btn:hover:not(:disabled) { filter: brightness(1.1); } .og-btn:disabled { opacity: 0.45; cursor: not-allowed; }
.og-btn.discret { background: var(--background-card); color: var(--text-primary); } .og-btn.petit { height: 34px; padding: 0 0.9rem; font-size: 0.82rem; }
.og-btn .material-symbols-outlined { font-size: 1.2rem; }
.og-liste { list-style: none; margin: 0.8rem 0 0; padding: 0; display: flex; flex-direction: column; gap: 0.5rem; }
.og-ligne { display: flex; align-items: center; gap: 0.9rem; padding: 0.75rem 1rem; border-radius: 24px; background: var(--background-secondary); animation: gv2Entree 0.45s cubic-bezier(0.22, 1, 0.36, 1) both; }
.og-av { width: 44px; height: 44px; border-radius: 16px; flex: none; display: grid; place-items: center; font-weight: 700; background: rgba(76,141,255,0.18); color: var(--primary-color); }
.og-av.dir { background: rgba(241,196,15,0.18); color: #f1c40f; }
.og-t { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: 2px; }
.og-t b { font-size: 0.98rem; letter-spacing: -0.015em; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.og-t i { font-style: normal; font-size: 0.82rem; color: var(--text-secondary); }
.og-col { flex: 0 0 180px; } .og-faible { color: var(--text-secondary); font-size: 0.85rem; }
.og-puce { display: inline-block; padding: 0.3rem 0.75rem; border-radius: 999px; background: var(--background-card); font-size: 0.82rem; font-weight: 600; }
.og-val { font-weight: 700; white-space: nowrap; } .og-val em { font-style: normal; color: var(--text-secondary); font-weight: 500; font-size: 0.78rem; margin-left: 0.25rem; }
.og-val.pos { color: #30d158; } .og-val.neg { color: #ff9f0a; }
.og-champ { height: 40px; border: 0; border-radius: 14px; padding: 0 0.8rem; background: var(--background-card); color: var(--text-primary); font: inherit; font-size: 0.9rem; width: 100%; box-sizing: border-box; }
.og-champ.num { width: 110px; text-align: right; }
.og-icone { width: 40px; height: 40px; border: 0; border-radius: 50%; display: grid; place-items: center; cursor: pointer; background: var(--background-card); color: var(--text-primary); flex: none; transition: background 0.3s, color 0.3s; }
.og-icone:hover { background: var(--primary-color); color: #fff; } .og-icone.danger:hover { background: #ff453a; }
.og-edit { display: inline-flex; align-items: center; gap: 0.4rem; }
.og-barre { display: block; height: 5px; border-radius: 999px; background: var(--background-card); margin-top: 5px; overflow: hidden; }
.og-barre u { display: block; height: 100%; border-radius: 999px; background: linear-gradient(90deg, #4c8dff, #5ac8fa); }
.og-recherche { display: flex; align-items: center; gap: 0.6rem; height: 46px; padding: 0 1.1rem; border-radius: 999px; background: var(--background-secondary); box-shadow: inset 0 0 0 1px var(--border-color); }
.og-recherche input { flex: 1; border: 0; outline: 0; background: transparent; color: var(--text-primary); font: inherit; }
.og-kpis { display: grid; grid-template-columns: repeat(auto-fit, minmax(170px, 1fr)); gap: 0.6rem; margin-bottom: 0.9rem; }
.og-kpis > div { padding: 0.9rem 1.1rem; border-radius: 24px; background: var(--background-secondary); display: flex; flex-direction: column; gap: 2px; }
.og-kpis i { font-style: normal; font-size: 0.76rem; font-weight: 600; text-transform: uppercase; letter-spacing: 0.06em; color: var(--text-secondary); }
.og-kpis b { font-size: 1.45rem; letter-spacing: -0.035em; }
.og-kpis .bien b { color: #30d158; } .og-kpis .moyen b { color: #ffb340; } .og-kpis .mal b { color: #ff6b61; }
.og-alerte, .og-verrou { display: flex; align-items: center; gap: 0.7rem; padding: 0.8rem 1.1rem; border-radius: 20px; margin-bottom: 0.8rem; }
.og-alerte { background: rgba(255,179,64,0.14); color: #ffb340; } .og-verrou { background: var(--background-secondary); color: var(--text-secondary); font-size: 0.9rem; }
.og-masse { display: flex; align-items: center; gap: 0.7rem; flex-wrap: wrap; padding: 0.7rem 1rem; border-radius: 24px; background: var(--background-secondary); margin-bottom: 0.8rem; }
.og-masse > span { display: inline-flex; align-items: center; gap: 0.5rem; font-weight: 600; margin-right: auto; } .og-masse em { font-style: normal; color: var(--text-secondary); }
.og-vide { text-align: center; padding: 2.4rem 1rem; color: var(--text-secondary); display: flex; flex-direction: column; align-items: center; gap: 0.3rem; border-radius: 28px; background: var(--background-secondary); margin-top: 0.8rem; }
.og-vide .material-symbols-outlined { font-size: 2.6rem; opacity: 0.5; } .og-vide b { color: var(--text-primary); font-size: 1.05rem; } .og-vide p { margin: 0; max-width: 40ch; }
.og-roles { display: grid; grid-template-columns: repeat(auto-fill, minmax(340px, 1fr)); gap: 0.8rem; margin-top: 0.8rem; }
.og-role { padding: 1.1rem; border-radius: 28px; background: var(--background-secondary); }
.og-role header { display: flex; align-items: center; gap: 0.8rem; margin-bottom: 0.9rem; }
.og-perms { display: flex; flex-wrap: wrap; gap: 0.4rem; }
.og-perm { display: inline-flex; align-items: center; gap: 0.4rem; padding: 0.4rem 0.8rem; border: 0; border-radius: 999px; background: var(--background-card); color: var(--text-secondary);
    font: inherit; font-size: 0.8rem; font-weight: 600; cursor: pointer; transition: background 0.3s, color 0.3s; }
.og-perm.on { background: rgba(76,141,255,0.22); color: var(--primary-color); } .og-perm:disabled { cursor: default; }
.og-barre-outils { display: flex; align-items: center; justify-content: space-between; gap: 0.8rem; flex-wrap: wrap; }
.og-seg, .og-chips { display: inline-flex; gap: 3px; padding: 3px; border-radius: 999px; background: var(--background-secondary); }
.og-seg button, .og-chips button { display: inline-flex; align-items: center; gap: 0.4rem; border: 0; border-radius: 999px; padding: 0.45rem 0.95rem; background: transparent; color: var(--text-secondary); font: inherit; font-size: 0.85rem; font-weight: 600; cursor: pointer; }
.og-seg button.on, .og-chips button.on { background: var(--primary-color); color: #fff; }
.og-seg em { font-style: normal; opacity: 0.7; font-size: 0.75rem; } .og-seg .material-symbols-outlined { font-size: 1.1rem; }
.og-etat { padding: 0.3rem 0.75rem; border-radius: 999px; font-size: 0.78rem; font-weight: 700; background: var(--background-card); }
.og-etat.ok { background: rgba(48,209,88,0.16); color: #30d158; } .og-etat.attente { background: rgba(255,179,64,0.16); color: #ffb340; } .og-etat.mal { background: rgba(255,107,97,0.16); color: #ff6b61; }
.og-deux { display: grid; grid-template-columns: minmax(0, 1.2fr) minmax(0, 1fr); gap: 1rem; align-items: start; }
.og-form { display: flex; flex-direction: column; gap: 0.8rem; padding: 1.2rem; border-radius: 28px; background: var(--background-secondary); }
.og-form label { display: flex; flex-direction: column; gap: 0.35rem; font-size: 0.82rem; font-weight: 600; color: var(--text-secondary); }
.og-form input, .og-form textarea { border: 0; border-radius: 16px; padding: 0.75rem 0.9rem; background: var(--background-card); color: var(--text-primary); font: inherit; resize: vertical; }
.og-apercu { position: sticky; top: calc(var(--nav-height, 70px) + 6rem); }
.og-apercu-l { display: block; font-size: 0.78rem; font-weight: 600; text-transform: uppercase; letter-spacing: 0.06em; color: var(--text-secondary); margin: 0 0 0.5rem 0.4rem; }
.og-apercu-c { position: relative; border-radius: 28px; overflow: hidden; background: var(--background-secondary); }
.og-apercu-b { height: 120px; background: linear-gradient(140deg, #1d3f7a, #0e1530) center / cover; }
.og-apercu-lg { position: absolute; left: 1rem; top: 82px; width: 70px; height: 70px; border-radius: 22px; background: var(--background-card) center / cover; box-shadow: 0 0 0 4px var(--background-secondary); }
.og-apercu-t { padding: 2.8rem 1.1rem 1.1rem; } .og-apercu-t b { font-size: 1.15rem; letter-spacing: -0.02em; }
.og-apercu-t span { display: block; font-size: 0.8rem; color: var(--primary-color); font-weight: 700; margin-top: 2px; }
.og-apercu-t p { margin: 0.5rem 0 0; color: var(--text-secondary); font-size: 0.88rem; line-height: 1.5; display: -webkit-box; -webkit-line-clamp: 4; -webkit-box-orient: vertical; overflow: hidden; }
@media (max-width: 860px) { .og-deux { grid-template-columns: 1fr; } .og-col { flex-basis: 140px; } .og-ligne { flex-wrap: wrap; } }

img.og-av.img, img.db-av.img, img.ed-av.img { object-fit: cover; background: var(--background-card); }
.ed-patron img { width: 26px; height: 26px; border-radius: 50%; object-fit: cover; }
.ed-contact { display: inline-flex; align-items: center; gap: 0.4rem; margin-top: 0.6rem; padding: 0.45rem 0.9rem; border-radius: 999px; background: var(--primary-color); color: #fff;
    font-weight: 700; font-size: 0.84rem; text-decoration: none; }
.ed-contact .material-symbols-outlined { font-size: 1.1rem; }
.db-notes-etat { display: block; min-height: 1.1em; margin-top: 0.4rem; font-size: 0.8rem; color: var(--text-secondary); }
/* Mes entreprises : squelette */
.me-sk { display: grid; grid-template-columns: repeat(auto-fill, minmax(300px, 1fr)); gap: 1rem; }
.me-sk i { display: block; height: 230px; border-radius: 32px;
    background: linear-gradient(90deg, rgba(255,255,255,0.05) 25%, rgba(255,255,255,0.11) 37%, rgba(255,255,255,0.05) 63%); background-size: 400% 100%; animation: skShimmer 1.4s ease infinite; }

.og-offres { display: grid; grid-template-columns: repeat(auto-fill, minmax(320px, 1fr)); gap: 0.8rem; margin-top: 0.8rem; }
.og-offre { display: flex; flex-direction: column; gap: 0.6rem; padding: 1.1rem; border-radius: 28px; background: linear-gradient(150deg, rgba(48,209,88,0.14), var(--background-secondary) 65%); }
.og-offre.close { background: var(--background-secondary); opacity: 0.7; }
.og-offre header, .og-offre footer { display: flex; align-items: center; justify-content: space-between; gap: 0.6rem; }
.og-offre h3 { margin: 0; font-size: 1.15rem; letter-spacing: -0.025em; } .og-offre p { margin: 0; color: var(--text-secondary); font-size: 0.9rem; line-height: 1.5; white-space: pre-line; }
.og-offre-img { display: flex; gap: 0.4rem; flex-wrap: wrap; } .og-offre-img img { height: 64px; border-radius: 12px; }
#offreForm .offre-form { padding: 1.1rem; border-radius: 28px; background: var(--background-secondary); display: flex; flex-direction: column; gap: 0.7rem; margin-top: 0.8rem; }
.og-docs { display: grid; grid-template-columns: repeat(auto-fill, minmax(320px, 1fr)); gap: 0.8rem; margin-top: 0.8rem; }
.og-doc { padding: 1rem; border-radius: 28px; background: var(--background-secondary); }
.og-doc header { display: flex; align-items: center; gap: 0.8rem; margin-bottom: 0.6rem; }
.og-doc ul { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 0.4rem; }
.og-doc li { display: flex; align-items: center; gap: 0.5rem; }
.og-doc li a { flex: 1; min-width: 0; display: flex; align-items: center; gap: 0.7rem; padding: 0.6rem 0.8rem; border-radius: 18px; background: var(--background-card); color: inherit; text-decoration: none; }
.og-doc li a span { display: flex; flex-direction: column; min-width: 0; } .og-doc li a b { font-size: 0.9rem; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.og-doc li a i { font-style: normal; font-size: 0.76rem; color: var(--text-secondary); }
