/* Couleurs : aucune définie ici (chantier multi-thème, docs/v4/
   CHANTIER_REFONTE_DESIGN.md, 2026-08-03) — tout pointe vers les variables de
   public/css/theme.css (var(--text), var(--primary), var(--app-bg),
   var(--surface-border), var(--text-muted), var(--primary-hover)), seule
   source de vérité pour les 2 thèmes (apex/google) x 2 modes
   (clair/sombre). var(--story-bg)/var(--story-bg-2) : quelques panneaux
   décoratifs volontairement "toujours sombres" (bandeau hero, panneau gauche
   des pages Auth) qui suivent la marque active mais pas le bascule
   clair/sombre — voir le commentaire équivalent dans theme.css. */
* { box-sizing:border-box; }
.company-sitebar { position:fixed; z-index:1000; top:0; left:0; right:0; height:82px; display:flex; align-items:center; justify-content:space-between; gap:28px; padding:0 5vw; color:#fff; background:rgba(var(--story-bg-rgb),.86); border-bottom:1px solid rgba(255,255,255,.12); backdrop-filter:blur(16px); }
.company-sitebar[hidden] { display:none !important; }
.company-brand { display:flex; align-items:center; gap:10px; padding:0; color:inherit; background:none; border:0; font-weight:800; letter-spacing:.12em; text-align:left; }
.company-brand-mark { width:35px; height:35px; object-fit:contain; letter-spacing:0; }
.company-brand small { display:block; margin-top:3px; color:rgba(255,255,255,.7); font-size:8px; font-weight:700; letter-spacing:.13em; }
.company-nav-links { display:flex; align-items:center; gap:28px; }
.company-nav-links button { padding:8px 0; color:rgba(255,255,255,.85); border:0; border-bottom:2px solid transparent; background:transparent; font-size:13px; font-weight:700; transition:.2s; }
.company-nav-links button:hover { color:var(--primary); border-color:var(--primary); }
.company-nav-links button.is-current { color:var(--primary); border-color:var(--primary); }
.company-nav-toggle { display:none; align-items:center; justify-content:center; width:38px; height:38px; padding:0; border:1px solid rgba(255,255,255,.22); border-radius:999px; color:#fff; background:rgba(255,255,255,.06); cursor:pointer; transition:transform .2s,background .2s,color .2s,border-color .2s; }
.company-nav-toggle:hover { transform:rotate(12deg) scale(1.04); border-color:var(--primary); color:var(--primary); background:rgba(var(--primary-rgb),.12); }
.company-nav-cta { padding:12px 17px; border:1px solid var(--primary); border-radius:999px; color:#fff; background:var(--primary); font-size:12px; font-weight:800; transition:.2s; }
.company-nav-cta:hover { color:#fff; background:transparent; }
/* .company-nav-links button fixe déjà padding/couleur/fond pour les liens simples ;
   ces règles, plus spécifiques (deux classes), restaurent l'aspect pastille des CTA
   (Espace client/Formation, Tableau de bord) une fois qu'ils sont devenus des enfants
   du même <nav> pour pouvoir se replier avec le reste du menu sur mobile. */
.company-nav-links .company-nav-cta { padding:12px 17px; border:1px solid var(--primary); border-radius:999px; color:#fff; background:var(--primary); }
.company-nav-links .company-nav-cta:hover { color:#fff; background:transparent; }
/* Liens rapides toujours visibles à côté du logo, y compris sous 767px où
   #company-nav-links disparaît entièrement dans le hamburger (chantier
   navigation 2026-08-08). Masqué par défaut : au-dessus de 767px les mêmes
   liens existent déjà dans #company-nav-links, pas besoin de les répéter. */
.company-nav-quick { display:none; align-items:center; gap:16px; }
.company-nav-quick button { padding:6px 0; color:rgba(255,255,255,.85); border:0; background:transparent; font-size:12px; font-weight:700; }
.company-nav-quick button:hover { color:var(--primary); }
/* Bascule clair/sombre publique : un <button> de plus dans #company-nav-links
   (hérite déjà couleur/hover/repli mobile de la règle générique ci-dessus),
   juste avec une icône + un libellé alignés au lieu d'un simple texte. */
.company-nav-theme-toggle { display:inline-flex; align-items:center; gap:8px; }
.company-nav-theme-toggle-icon { display:inline-flex; height:18px; width:18px; align-items:center; justify-content:center; }
.company-page { background:var(--app-bg); color:var(--text); }
#company-view .hero { position:relative; min-height:720px; display:flex; flex-direction:column; justify-content:center; overflow:hidden; color:#fff; background:var(--story-bg) url('https://images.unsplash.com/photo-1518770660439-4636190af475?auto=format&fit=crop&w=2200&q=85') center/cover no-repeat; }
#company-view .overlay { position:absolute; inset:0; background:linear-gradient(100deg,rgba(var(--story-bg-rgb),.96) 0%,rgba(var(--story-bg-rgb),.84) 47%,rgba(var(--story-bg-rgb),.42) 100%); }
#company-view .hero-grid { position:absolute; inset:0; opacity:.24; background-image:linear-gradient(rgba(var(--primary-rgb),.35) 1px,transparent 1px),linear-gradient(90deg,rgba(var(--primary-rgb),.35) 1px,transparent 1px); background-size:74px 74px; mask-image:linear-gradient(90deg,#000,transparent); }
#company-view .hero-content { position:relative; z-index:1; width:min(880px,90vw); margin:82px 0 0 10vw; padding:70px 0 130px; }
.eyebrow { margin:0 0 18px; color:var(--primary); font-size:11px; font-weight:800; letter-spacing:.22em; }
.eyebrow.dark { color:var(--primary-hover); }
#company-view .hero h1 { max-width:760px; margin:0; font-size:clamp(42px,6vw,78px); line-height:.98; letter-spacing:-.055em; }
#company-view .description { max-width:620px; margin:28px 0 0; color:rgba(255,255,255,.82); font-size:18px; line-height:1.65; }
.hero-actions { display:flex; flex-wrap:wrap; gap:13px; margin-top:34px; }
.cta-btn { display:inline-flex; align-items:center; gap:16px; padding:15px 22px; border:1px solid var(--primary); border-radius:999px; color:#fff; background:var(--primary); font-size:13px; font-weight:800; transition:transform .2s,background .2s,color .2s; }
.cta-btn:hover { transform:translateY(-3px); color:#fff; background:transparent; }
.cta-btn.secondary { color:#fff; border-color:rgba(255,255,255,.48); background:transparent; }.cta-btn.secondary:hover{border-color:var(--primary);background:var(--primary);color:#fff}
.hero-metrics { position:absolute; z-index:1; right:5vw; bottom:38px; left:10vw; display:grid; align-items:start; grid-template-columns:repeat(4,1fr); border-top:1px solid rgba(255,255,255,.25); }
.hero-metrics div { padding:17px 18px 0 0; }.hero-metrics strong { display:block; font-size:23px; }.hero-metrics span { display:block; margin-top:5px; color:rgba(255,255,255,.75); font-size:10px; font-weight:700; letter-spacing:.12em; text-transform:uppercase; }
.carousel-btn { position:absolute; z-index:2; right:5vw; bottom:140px; padding:8px 0; color:rgba(255,255,255,.85); border:0; border-bottom:1px solid rgba(255,255,255,.5); background:transparent; font-size:11px; font-weight:700; }
.company-section { padding:110px 10vw; }.company-intro { display:grid; grid-template-columns:1.35fr .65fr; gap:8vw; align-items:end; background:#fff; }.company-intro h2,.section-heading h2,.impact-panel h2,.company-cta h2 { margin:0; font-size:clamp(31px,4vw,55px); line-height:1.08; letter-spacing:-.045em; }.company-intro>p,.section-heading>p { margin:0; color:var(--text-muted); font-size:16px; line-height:1.75; }
.solution-band { background:var(--surface-muted); }.section-heading { display:grid; grid-template-columns:1fr 1fr; gap:36px; align-items:end; max-width:1050px; }.section-heading .eyebrow { grid-column:1/-1; margin-bottom:-10px; }
.solution-grid { display:grid; align-items:start; grid-template-columns:repeat(2,minmax(0,1fr)); gap:1px; margin-top:56px; background:var(--surface-border-strong); border:1px solid var(--surface-border-strong); }.solution-card { min-height:300px; display:flex; gap:26px; padding:38px; background:var(--surface-muted); }.solution-card.featured { color:#fff; background:var(--story-bg); }.card-number { color:var(--text-muted); font-size:13px; font-weight:800; }.featured .card-number{color:var(--primary)}.card-kicker{margin:0 0 13px;color:var(--primary-hover);font-size:10px;font-weight:800;letter-spacing:.16em}.featured .card-kicker{color:var(--primary)}.solution-card h3{margin:0;font-size:29px;letter-spacing:-.04em}.solution-card p:not(.card-kicker){color:var(--text-muted);line-height:1.65}.featured p:not(.card-kicker){color:rgba(255,255,255,.75)}.text-link{padding:0;color:inherit;border:0;border-bottom:1px solid currentColor;background:transparent;font-size:12px;font-weight:800}.text-link span{margin-left:9px;color:var(--primary)}
.impact-section { display:grid; grid-template-columns:1fr 1fr; padding-right:0; background:var(--story-bg); color:#fff; }.impact-panel { padding-right:8vw; }.impact-panel h2{margin-bottom:32px}.module-list{border-left:1px solid rgba(255,255,255,.2)}.module-list article{display:flex;gap:28px;padding:26px 8vw 26px 42px;border-bottom:1px solid rgba(255,255,255,.16)}.module-list span{color:var(--primary);font-size:12px;font-weight:800}.module-list h3{margin:0;font-size:19px}.module-list p{margin:7px 0 0;color:rgba(255,255,255,.75);font-size:14px;line-height:1.5}
.process-section{background:#fff}.process-list{display:grid;align-items:start;grid-template-columns:repeat(4,1fr);gap:30px;margin:56px 0 0;padding:0;list-style:none}.process-list li{padding-top:18px;border-top:2px solid var(--text)}.process-list span{color:var(--primary-hover);font-size:12px;font-weight:800}.process-list h3{margin:28px 0 12px;font-size:21px}.process-list p{color:var(--text-muted);font-size:14px;line-height:1.65}
.company-cta{text-align:center;color:#fff;background:linear-gradient(115deg,var(--story-bg),var(--story-bg-2))}.company-cta h2{max-width:720px;margin-inline:auto}.company-cta>p:not(.eyebrow){max-width:570px;margin:22px auto 32px;color:rgba(255,255,255,.8);line-height:1.7}.company-cta .cta-btn:hover{background:#fff;color:var(--story-bg)}
body.is-app-view #app { background:var(--app-bg); } body.is-app-view main { width:min(1440px,100%); margin:auto; padding:40px max(5vw,24px) 70px; } #navbar { position:sticky;z-index:50;top:0;border-color:var(--surface-border) !important;background:rgba(255,255,255,.94) !important;backdrop-filter:blur(13px); } #navbar .bg-emerald-600{background:var(--story-bg)!important} #navbar .text-emerald-600,#navbar .text-emerald-700{color:var(--primary-hover)!important}
.workspace-brand{display:flex;align-items:center;gap:10px;padding:0;border:0;background:transparent;color:var(--text);text-align:left}.workspace-brand-mark{width:36px;height:36px;object-fit:contain}.workspace-brand-copy{font-size:13px;font-weight:800;letter-spacing:.12em}.workspace-brand-copy small{display:block;margin-top:3px;color:var(--text-muted);font-size:8px;font-weight:800;letter-spacing:.12em}.workspace-nav-link{padding:10px 13px;border:0;border-radius:999px!important;color:var(--text);background:transparent;font-size:12px;font-weight:800;transition:background .18s,color .18s}.workspace-nav-link:hover{color:var(--primary-hover);background:rgba(var(--primary-rgb),.08)}.workspace-nav-link-active{color:var(--primary-hover)!important;background:rgba(var(--primary-rgb),.14)!important}#nav-quick-links .workspace-nav-link{display:none}#nav-quick-links .workspace-nav-link.workspace-nav-link-active{display:inline-flex}.workspace-user-role{padding:8px 12px;border:1px solid var(--surface-border);border-radius:999px;color:var(--text);background:var(--surface-muted);font-size:11px;font-weight:700}#navbar #logout-btn{background:var(--story-bg)!important;color:#fff!important}#navbar #logout-btn:hover{background:var(--primary-hover)!important}
#dashboard-chart{min-height:320px}#dashboard-chart:after{position:absolute;right:22px;bottom:18px;z-index:1;padding:6px 9px;border:1px solid var(--surface-border);border-radius:999px;color:var(--text-muted);background:rgba(255,255,255,.76);font-size:10px;font-weight:800;letter-spacing:.06em;content:"DONNÉES EN TEMPS RÉEL";backdrop-filter:blur(8px)}
html:not([data-theme="dark"]) body.is-app-view main,html:not([data-theme="dark"]) body.is-app-view main .text-slate-900,html:not([data-theme="dark"]) body.is-app-view main .text-slate-800,html:not([data-theme="dark"]) body.is-app-view main h2,html:not([data-theme="dark"]) body.is-app-view main h3{color:var(--text)!important}html:not([data-theme="dark"]) body.is-app-view main .text-slate-700,html:not([data-theme="dark"]) body.is-app-view main .text-slate-600{color:var(--text)!important}
html:not([data-theme="dark"]) .finance-workspace> .space-y-8> :not(:first-child),html:not([data-theme="dark"]) .finance-workspace> .space-y-8> :not(:first-child) p,html:not([data-theme="dark"]) .finance-workspace> .space-y-8> :not(:first-child) label,html:not([data-theme="dark"]) .finance-workspace> .space-y-8> :not(:first-child) span{color:var(--text)}html:not([data-theme="dark"]) .finance-workspace> .space-y-8> :not(:first-child) .text-slate-500{color:var(--text-muted)!important}
html:not([data-theme="dark"]) .finance-workspace>.space-y-8>div:first-child{border-color:var(--surface-border)!important;background:linear-gradient(135deg,#fff,var(--surface-muted))!important;box-shadow:0 12px 32px rgba(var(--text-rgb),.06)!important}html:not([data-theme="dark"]) .finance-workspace>.space-y-8>div:first-child:after{border-color:rgba(var(--primary-rgb),.16);box-shadow:0 0 0 42px rgba(var(--primary-rgb),.06),0 0 0 84px rgba(var(--primary-rgb),.03)}html:not([data-theme="dark"]) .finance-workspace>.space-y-8>div:first-child .text-slate-900,html:not([data-theme="dark"]) .finance-workspace>.space-y-8>div:first-child .text-slate-500{color:var(--text)!important}html:not([data-theme="dark"]) .finance-workspace>.space-y-8>div:first-child .text-emerald-600,html:not([data-theme="dark"]) .finance-workspace>.space-y-8>div:first-child .text-emerald-700{color:var(--primary-hover)!important}html:not([data-theme="dark"]) .finance-workspace>.space-y-8>div:first-child .bg-slate-50{border-color:var(--surface-border);background:#fff!important}
#theme-toggle [data-theme-toggle-icon]{border-radius:999px;color:var(--primary-hover)!important;transition:transform .2s,background .2s,color .2s!important}#theme-toggle:hover [data-theme-toggle-icon]{transform:rotate(12deg) scale(1.04);background:var(--surface-elevated)!important}html[data-theme="dark"] #theme-toggle [data-theme-toggle-icon]{color:var(--primary)!important}html[data-theme="dark"] #theme-toggle:hover [data-theme-toggle-icon]{background:var(--surface-elevated)!important}
body.is-public-view main { display:none !important; }
body.is-app-view .rounded-\[32px\].border.border-slate-200.bg-white { border-radius:24px !important; border-color:var(--surface-border) !important; box-shadow:0 8px 30px rgba(var(--text-rgb),.05) !important; } body.is-app-view .rounded-\[28px\].border.border-slate-200.bg-white { border-radius:20px !important; border-color:var(--surface-border) !important; box-shadow:0 8px 30px rgba(var(--text-rgb),.05) !important; } body.is-app-view .rounded-3xl { border-radius:18px !important; } body.is-app-view .rounded-full,body.is-app-view button { border-radius:999px !important; } body.is-app-view input,body.is-app-view select,body.is-app-view textarea { border-radius:14px !important; } body.is-app-view .bg-emerald-600,body.is-app-view .bg-emerald-500 { background-color:var(--primary-hover)!important; } body.is-app-view .text-emerald-600,body.is-app-view .text-emerald-700 { color:var(--primary-hover)!important; }
/* Système visuel commun : tableaux de bord, finance, secrétariat et administration. */
body.is-app-view main{background:radial-gradient(circle at 90% 0,rgba(var(--primary-rgb),.08) 0,transparent 27%),var(--app-bg)}body.is-app-view main>.view{animation:workspace-enter .28s ease-out}body.is-app-view main article{transition:transform .2s ease,box-shadow .2s ease}body.is-app-view main article:hover{transform:translateY(-2px);box-shadow:0 14px 32px rgba(var(--text-rgb),.07)!important}body.is-app-view main i[data-lucide]{display:grid;place-items:center;width:42px!important;height:42px!important;padding:10px;border-radius:50%;background:var(--surface-muted);color:var(--primary-hover)!important}body.is-app-view .bg-slate-50{background:var(--surface-muted)!important}body.is-app-view .bg-white{background:#fff!important}body.is-app-view main table thead{background:var(--surface-muted)!important;color:var(--text-muted)!important}body.is-app-view main table th{font-size:11px;letter-spacing:.08em;text-transform:uppercase}body.is-app-view main table tbody tr{transition:background .15s}body.is-app-view main table tbody tr:hover{background:var(--surface-muted)}#dashboard-chart{padding:14px;border-color:var(--surface-border)!important;background:linear-gradient(180deg,#fff,var(--surface-muted))!important}#dashboard-chart canvas{max-width:100%}@keyframes workspace-enter{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}
#app-footer { background:var(--story-bg) !important; } #app-footer .bg-emerald-500 { background:var(--primary) !important; } #app-footer .text-emerald-400 { color:var(--primary) !important; }
/* Footer institutionnel : même contenu partout (coordonnées, liens), mais
   habillage volontairement différent site public vs espace connecté
   (exigence explicite du porteur du projet, chantier 2026-08-02, docs/v4/
   CHANTIER_REFONTE_DESIGN.md) — bandeau sombre et dense sur le site public
   (assorti aux autres bandeaux sombres de la vitrine, ci-dessus), traitement
   minimal et clair dans l'app, assorti aux surfaces calmes du reste de
   l'espace de travail plutôt qu'un pavé sombre plein écran façon site
   vitrine à l'intérieur d'un outil de travail. */
body.is-app-view #app-footer {
  background:var(--app-bg) !important;
  border-top:1px solid var(--surface-border);
}
body.is-app-view #app-footer > div:first-child {
  padding-top:2.75rem !important;
  padding-bottom:2.75rem !important;
}
body.is-app-view #app-footer h2 {
  color:var(--text) !important;
  font-size:1.05rem !important;
  font-weight:700 !important;
}
body.is-app-view #app-footer h3 {
  color:var(--primary-hover) !important;
}
body.is-app-view #app-footer p,
body.is-app-view #app-footer a,
body.is-app-view #app-footer button:not([data-company-nav]),
body.is-app-view #app-footer .text-slate-400,
body.is-app-view #app-footer .text-slate-500 {
  color:var(--text-muted) !important;
}
body.is-app-view #app-footer button[data-company-nav]:not([data-company-nav="company-contact-view"]) {
  color:var(--text-muted) !important;
}
body.is-app-view #app-footer button[data-company-nav]:hover {
  color:var(--primary) !important;
}
body.is-app-view #app-footer a:hover {
  color:var(--primary) !important;
}
body.is-app-view #app-footer button[data-company-nav="company-contact-view"] {
  background:transparent !important;
  border:1px solid var(--surface-border) !important;
  color:var(--text) !important;
  box-shadow:none !important;
}
body.is-app-view #app-footer button[data-company-nav="company-contact-view"]:hover {
  border-color:var(--primary) !important;
  color:var(--primary-hover) !important;
}
body.is-app-view #app-footer .border-t {
  border-color:var(--surface-border) !important;
}
html[data-theme="dark"] body.is-app-view #app-footer {
  background:var(--surface-muted) !important;
  border-top-color:var(--surface-border) !important;
}
html[data-theme="dark"] body.is-app-view #app-footer h2 {
  color:var(--text) !important;
}
html[data-theme="dark"] body.is-app-view #app-footer h3 {
  color:var(--primary) !important;
}
html[data-theme="dark"] body.is-app-view #app-footer p,
html[data-theme="dark"] body.is-app-view #app-footer button[data-company-nav]:not([data-company-nav="company-contact-view"]),
html[data-theme="dark"] body.is-app-view #app-footer .text-slate-400,
html[data-theme="dark"] body.is-app-view #app-footer .text-slate-500 {
  color:var(--text-muted) !important;
}
html[data-theme="dark"] body.is-app-view #app-footer button[data-company-nav]:hover,
html[data-theme="dark"] body.is-app-view #app-footer a:hover {
  color:var(--primary) !important;
}
html[data-theme="dark"] body.is-app-view #app-footer button[data-company-nav="company-contact-view"] {
  border-color:var(--surface-border) !important;
  color:var(--text) !important;
}
html[data-theme="dark"] body.is-app-view #app-footer button[data-company-nav="company-contact-view"]:hover {
  border-color:var(--primary) !important;
  color:var(--primary) !important;
}
.company-detail-page { padding-top:82px; }.detail-hero { padding:105px 10vw 95px; color:#fff; background:linear-gradient(120deg,var(--story-bg),var(--story-bg-2)); }.detail-hero h1{max-width:910px;margin:0;font-size:clamp(40px,5vw,70px);line-height:1.02;letter-spacing:-.055em}.detail-hero>p:last-child{max-width:650px;margin:25px 0 0;color:rgba(255,255,255,.82);font-size:17px;line-height:1.7}.detail-grid{display:grid;grid-template-columns:1fr 1fr;gap:10vw;background:#fff}.detail-grid h2,.contact-layout h2{margin:0;font-size:clamp(34px,4vw,52px);line-height:1.1;letter-spacing:-.05em}.detail-grid>div:last-child p{margin:0 0 17px;color:var(--text-muted);font-size:16px;line-height:1.8}.values-section{background:var(--surface-muted)}.values-grid{display:grid;align-items:start;grid-template-columns:repeat(4,1fr);gap:1px;margin-top:32px;background:var(--surface-border-strong)}.values-grid article{padding:30px;background:var(--surface-muted)}.values-grid span{color:var(--primary-hover);font-size:12px;font-weight:800}.values-grid h3{margin:32px 0 10px;font-size:21px}.values-grid p{margin:0;color:var(--text-muted);font-size:14px;line-height:1.6}.timeline-section{color:#fff;background:var(--story-bg)}.timeline-section h2{max-width:760px;margin:0;font-size:clamp(32px,4vw,52px);line-height:1.1;letter-spacing:-.045em}.timeline{display:grid;align-items:start;grid-template-columns:repeat(4,1fr);gap:1px;margin-top:52px;background:rgba(255,255,255,.18)}.timeline article{padding:25px;background:var(--story-bg)}.timeline b{color:var(--primary);font-size:15px}.timeline p{color:rgba(255,255,255,.75);font-size:14px;line-height:1.6}.service-catalog{padding-top:0;padding-bottom:0;background:#fff}.service-catalog article{display:grid;grid-template-columns:120px 1fr;gap:35px;max-width:1040px;margin:auto;padding:68px 0;border-bottom:1px solid var(--surface-border)}.service-catalog article>span{color:var(--primary-hover);font-size:13px;font-weight:800}.service-catalog h2{margin:0;font-size:clamp(29px,3vw,42px);letter-spacing:-.045em}.service-catalog p:not(.eyebrow){max-width:680px;color:var(--text-muted);line-height:1.75}.service-catalog ul{display:flex;flex-wrap:wrap;gap:9px;margin:25px 0 0;padding:0;list-style:none}.service-catalog li{padding:8px 10px;border:1px solid var(--surface-border);color:var(--primary-hover);font-size:12px;font-weight:700}
/* Page publique « Notre équipe » (chantier navigation 2026-08-08). Toutes les
   couleurs viennent de theme.css (var(--*)) : contrairement à .service-catalog
   ci-dessus (écrit avant le passage au multi-thème, corrigé après coup par des
   overrides html[data-theme="dark"] !important plus bas), ce bloc n'a besoin
   d'aucun override dédié, il suit déjà le thème actif dans les deux modes. */
.team-catalog{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:28px;max-width:1040px;margin:0 auto;padding:70px 10vw 110px;background:var(--surface)}
.team-catalog-empty{grid-column:1/-1;padding:40px 0;color:var(--text-muted);text-align:center}
.team-member-card{padding:28px;border:1px solid var(--surface-border);border-radius:20px;background:var(--surface-elevated);text-align:center}
.team-member-photo{width:96px;height:96px;margin:0 auto 18px;border-radius:999px;object-fit:cover;display:block}
.team-member-photo-fallback{display:flex;align-items:center;justify-content:center;background:var(--primary-container);color:var(--primary-text);font-size:32px;font-weight:800}
.team-member-card h2{margin:0;color:var(--text);font-size:19px;letter-spacing:-.02em}
.team-member-role{margin:6px 0 0;color:var(--primary-hover);font-size:13px;font-weight:700}
.team-member-bio{margin:14px 0 0;color:var(--text-muted);font-size:14px;line-height:1.6}
/* Rendu Markdown de la description d'un service (moteur partagé shared/markdown.js,
   identique aux articles) : scopé sous .service-markdown-content pour ne pas hériter
   des règles .service-catalog ul/li ci-dessus, pensées pour les chips "points clés". */
.service-markdown-content{max-width:680px;color:var(--text-muted);font-size:15px;line-height:1.75}
.service-markdown-content p{margin:0 0 16px}
.service-markdown-content p:last-child{margin-bottom:0}
.service-markdown-content h1,.service-markdown-content h2,.service-markdown-content h3,.service-markdown-content h4{margin:20px 0 10px;letter-spacing:-.03em;color:var(--text)}
.service-markdown-content ul,.service-markdown-content ol{margin:0 0 16px;padding-left:20px;list-style:disc}
.service-markdown-content ol{list-style:decimal}
.service-markdown-content li{padding:0;border:0;color:inherit;font-size:inherit;font-weight:400;margin-bottom:6px}
.service-markdown-content a{color:var(--primary-hover);text-decoration:underline}
.service-markdown-content strong{color:var(--text)}
.service-markdown-content code{padding:2px 6px;border-radius:4px;background:var(--surface-muted);font-size:.9em}
.service-markdown-content pre{margin:0 0 16px;padding:14px 16px;overflow-x:auto;border-radius:10px;background:var(--app-bg)}
.service-markdown-content pre code{padding:0;border-radius:0;background:transparent;color:var(--text)}
.service-markdown-content blockquote{margin:0 0 16px;padding:4px 16px;border-left:3px solid var(--primary);color:var(--text-muted);font-style:italic}
.service-markdown-content table{width:100%;margin:0 0 16px;border-collapse:collapse;font-size:14px}
.service-markdown-content th,.service-markdown-content td{padding:8px 12px;border:1px solid var(--surface-border);text-align:left}
.service-markdown-content th{background:var(--surface-muted);font-weight:700}
.service-markdown-content img{max-width:100%;height:auto;margin:8px 0 16px;border-radius:8px}
.service-markdown-content-admin{max-width:none;color:var(--text-muted);font-size:.875rem;line-height:1.6}
.contact-layout{display:grid;grid-template-columns:.85fr 1.15fr;gap:9vw;background:#fff}.contact-layout h2{margin-bottom:38px}.contact-points{display:grid;gap:22px}.contact-points p{display:grid;gap:5px;margin:0;color:var(--text-muted);font-size:14px}.contact-points b{color:var(--primary-hover);font-size:11px;letter-spacing:.12em;text-transform:uppercase}.contact-points a{color:var(--text);text-decoration:none}.appointment-form{display:grid;gap:20px;padding:38px;background:var(--surface-muted)}.appointment-form label{display:grid;gap:8px;color:var(--text);font-size:12px;font-weight:800}.appointment-form input,.appointment-form textarea{width:100%;padding:13px;border:1px solid var(--surface-border);border-radius:0;background:#fff}.appointment-form textarea{resize:vertical}.appointment-form .cta-btn{justify-self:start;margin-top:8px}
.auth-view{max-width:1240px;margin:0 auto}.auth-shell{display:grid;grid-template-columns:1.1fr .9fr;min-height:clamp(480px,82dvh,700px);border:1px solid var(--surface-border);background:#fff}.auth-story{position:relative;display:flex;flex-direction:column;padding:38px;overflow:hidden;color:rgba(255,255,255,.92);background:var(--story-bg)}.auth-story:after{position:absolute;inset:0;pointer-events:none;content:"";opacity:.25;background-image:linear-gradient(rgba(var(--primary-rgb),.38) 1px,transparent 1px),linear-gradient(90deg,rgba(var(--primary-rgb),.38) 1px,transparent 1px);background-size:45px 45px;mask-image:linear-gradient(160deg,#000,transparent 70%)}.auth-story>*{position:relative;z-index:1}.auth-story-top{display:flex;align-items:center;gap:10px}.auth-symbol{display:block;width:38px;height:38px;object-fit:contain;border-radius:10px}.auth-name{font-size:13px;font-weight:800;letter-spacing:.12em}.auth-name small{display:block;margin-top:3px;color:rgba(255,255,255,.65);font-size:8px;letter-spacing:.12em}.auth-story-copy{max-width:540px;margin:auto 0 35px}.auth-kicker{margin:0 0 15px;color:var(--primary-hover);font-size:10px;font-weight:800;letter-spacing:.17em}.auth-story .auth-kicker{color:var(--primary)}.auth-story h1{margin:0;font-size:clamp(38px,4.1vw,59px);line-height:1.01;letter-spacing:-.055em}.auth-story-copy>p:last-child{max-width:470px;margin:21px 0 0;color:rgba(255,255,255,.8);line-height:1.7}.auth-data-card{max-width:510px;padding:18px 20px;background:rgba(255,255,255,.08);border:1px solid rgba(var(--primary-rgb),.23);backdrop-filter:blur(7px)}.auth-data-header,.auth-data-footer{display:flex;justify-content:space-between;color:rgba(255,255,255,.75);font-size:11px;font-weight:700}.auth-live{color:var(--primary)}.auth-live i{display:inline-block;width:6px;height:6px;margin-right:5px;border-radius:50%;background:var(--primary)}.auth-chart{display:flex;align-items:end;gap:9px;height:104px;margin:18px 0;border-bottom:1px solid rgba(255,255,255,.2)}.auth-chart span{flex:1;background:linear-gradient(var(--primary),var(--primary-hover))}.auth-data-footer{color:rgba(255,255,255,.65);font-size:9px}.auth-proof{display:flex;gap:23px;margin-top:25px;color:rgba(255,255,255,.75);font-size:11px}.auth-proof b{display:block;color:#fff;font-size:17px}.auth-panel{align-self:center;width:min(100%,465px);margin:auto;padding:50px}.auth-panel-head h2{margin:0;color:var(--text);font-size:43px;letter-spacing:-.055em}.auth-panel-head>p:last-child{margin:11px 0 0;color:var(--text-muted);font-size:14px;line-height:1.6}.auth-tabs{display:grid;grid-auto-flow:column;grid-auto-columns:1fr;margin-top:35px;border-bottom:1px solid var(--surface-border)}.auth-tabs button{padding:13px 5px;color:var(--text-muted);border:0;border-bottom:2px solid transparent;background:transparent;font-size:13px;font-weight:800}.auth-form{display:grid;gap:20px;margin-top:29px}.auth-form label{display:grid;gap:8px;color:var(--text);font-size:12px;font-weight:800}.auth-form input{width:100%;padding:13px 0;border:0;border-bottom:1px solid var(--surface-border-strong);border-radius:0;background:transparent;color:var(--text);font-size:14px}.auth-form input:focus{border-color:var(--primary-hover);box-shadow:none}.auth-form-grid{display:grid;grid-template-columns:1fr 1fr;gap:17px}.auth-form-actions{display:flex;align-items:center;justify-content:space-between;gap:15px;margin-top:7px}.auth-submit{display:inline-flex;justify-content:center;gap:19px;padding:14px 17px;color:#fff;border:1px solid var(--story-bg);background:var(--story-bg);font-size:13px;font-weight:800;transition:.2s}.auth-submit:hover{color:#fff;background:var(--primary);border-color:var(--primary)}.auth-link{padding:4px;color:var(--primary-hover);border:0;border-bottom:1px solid currentColor;background:transparent;font-size:12px;font-weight:800}.auth-note,.auth-security{color:var(--text-muted);font-size:11px;line-height:1.6}.auth-security{margin:31px 0 0;padding-top:18px;border-top:1px solid var(--surface-border)}
/* Espace Formation (#training-auth-view) : la carte "aperçu chiffré" (.auth-data-card)
   que le reste des vues .auth-story empilent entre .auth-story-copy et .auth-proof
   n'existe pas ici — sans elle, la marge "auto" de .auth-story-copy grandit de façon
   imprévisible selon la hauteur de l'écran. On fixe donc un espace constant. */
#training-auth-view .auth-story-copy{margin:48px 0 35px}
.auth-tabs button.is-active{color:var(--text)!important;border-color:var(--text)}
.auth-submit{padding:14px 20px;border-radius:999px}
.auth-form.hidden{display:none!important}
body.is-app-view .space-y-8>div:first-child>div>div>p:first-child{letter-spacing:.16em}
body.is-app-view canvas{font-family:"Plus Jakarta Sans",system-ui,sans-serif}
/* Langage visuel commun aux modules internes : surfaces calmes, informations nettes,
   contrôles arrondis et icônes utilitaires, quel que soit le métier affiché. */
body.is-app-view{background:var(--app-bg)}body.is-app-view #app{background:linear-gradient(180deg,#fff 0,var(--app-bg) 340px)}
body.is-app-view main{max-width:1440px!important;padding-top:32px!important}
body.is-app-view .workspace-hero{position:relative;overflow:hidden;background:linear-gradient(120deg,var(--story-bg),var(--story-bg-2))!important;color:rgba(255,255,255,.95);border-color:var(--story-bg)!important;box-shadow:0 18px 44px rgba(var(--text-rgb),.16)!important}body.is-app-view .workspace-hero:after{position:absolute;top:-120px;right:-80px;width:360px;height:360px;border-radius:50%;background:rgba(var(--primary-rgb),.16);content:""}body.is-app-view .workspace-hero>*{position:relative;z-index:1}body.is-app-view .workspace-hero h2{color:#fff!important;font-size:clamp(30px,3vw,42px)!important}body.is-app-view .workspace-hero .text-slate-600,body.is-app-view .workspace-hero .text-slate-900{color:rgba(255,255,255,.85)!important}body.is-app-view .workspace-hero .text-emerald-600,body.is-app-view .workspace-hero .text-emerald-700{color:var(--primary-hover)!important}body.is-app-view .workspace-hero .bg-slate-50{background:rgba(255,255,255,.09)!important;color:#fff!important;border:1px solid rgba(255,255,255,.13)}
body.is-app-view .space-y-8{gap:22px!important}
body.is-app-view .rounded-\[32px\].border.border-slate-200.bg-white,body.is-app-view .rounded-\[28px\].border.border-slate-200.bg-white{background:#fff!important;border-color:var(--surface-border)!important}
body.is-app-view .rounded-\[28px\].border.border-slate-200.bg-white:hover{border-color:var(--surface-border-strong)!important;box-shadow:0 12px 36px rgba(var(--text-rgb),.08)!important;transform:translateY(-2px)}
body.is-app-view article{transition:transform .18s ease,box-shadow .18s ease,border-color .18s ease}
body.is-app-view h2,body.is-app-view h3{letter-spacing:-.035em!important}body.is-app-view .text-slate-500{color:var(--text-muted)!important}
body.is-app-view .rounded-\[28px\] i[data-lucide],body.is-app-view .rounded-\[32px\] i[data-lucide]{box-sizing:content-box;padding:10px;border:1px solid var(--surface-border);border-radius:999px;background:var(--surface-muted);color:var(--primary-hover)!important}
body.is-app-view .bg-slate-100{background:var(--surface-muted)!important}
body.is-app-view .bg-emerald-600,body.is-app-view .bg-emerald-500,body.is-app-view .bg-slate-950{background:var(--story-bg)!important}body.is-app-view .hover\:bg-emerald-700:hover,body.is-app-view .hover\:bg-slate-800:hover{background:var(--primary-hover)!important}
body.is-app-view button:focus-visible,body.is-app-view input:focus-visible,body.is-app-view select:focus-visible,body.is-app-view textarea:focus-visible{outline:3px solid rgba(var(--primary-rgb),.25);outline-offset:3px}
body.is-app-view #dashboard-chart{position:relative;overflow:hidden;border:1px solid var(--surface-border)!important;border-radius:20px!important;background:linear-gradient(145deg,#fff,var(--surface-muted))!important}body.is-app-view #dashboard-chart:before{position:absolute;z-index:0;top:-100px;right:-80px;width:260px;height:260px;border-radius:50%;background:rgba(var(--primary-rgb),.08);content:""}body.is-app-view #dashboard-chart canvas,body.is-app-view #dashboard-chart svg{position:relative;z-index:1}
body.is-app-view table{border-collapse:separate;border-spacing:0 7px}body.is-app-view thead{color:var(--text-muted);font-size:11px;letter-spacing:.08em;text-transform:uppercase}body.is-app-view tbody tr{background:#fff;box-shadow:0 1px 0 var(--surface-border)}body.is-app-view tbody td:first-child{border-radius:12px 0 0 12px}body.is-app-view tbody td:last-child{border-radius:0 12px 12px 0}
/* Finance : un espace décisionnel dense et calme, avec le même langage produit. */
.finance-workspace>.space-y-8>div:first-child{position:relative;overflow:hidden;border-color:var(--surface-border-strong)!important;background:linear-gradient(135deg,var(--story-bg),var(--story-bg-2))!important;box-shadow:none!important}.finance-workspace>.space-y-8>div:first-child:after{position:absolute;right:-95px;bottom:-135px;width:340px;height:340px;border:1px solid rgba(var(--primary-rgb),.2);border-radius:50%;box-shadow:0 0 0 42px rgba(var(--primary-rgb),.04),0 0 0 84px rgba(var(--primary-rgb),.025);content:""}.finance-workspace>.space-y-8>div:first-child>*{position:relative;z-index:1}.finance-workspace>.space-y-8>div:first-child .text-slate-900,.finance-workspace>.space-y-8>div:first-child .text-slate-500{color:#fff!important}.finance-workspace>.space-y-8>div:first-child .text-emerald-600,.finance-workspace>.space-y-8>div:first-child .text-emerald-700{color:var(--primary)!important}.finance-workspace>.space-y-8>div:first-child .bg-slate-50{border:1px solid rgba(255,255,255,.12);background:rgba(255,255,255,.08)!important}.finance-workspace>.space-y-8>div:first-child .text-slate-900{font-weight:700}.finance-workspace article{border-color:var(--surface-border)!important}.finance-workspace article h3{font-size:14px!important;letter-spacing:-.01em!important}.finance-workspace form label>span{display:block;margin-bottom:7px;color:var(--text-muted)!important;font-size:11px!important;letter-spacing:.08em;text-transform:uppercase}.finance-workspace form input,.finance-workspace form select,.finance-workspace form textarea{min-height:48px;border-color:var(--surface-border)!important;background:var(--surface)!important}.finance-workspace form input:focus,.finance-workspace form select:focus,.finance-workspace form textarea:focus{border-color:var(--primary-hover)!important;box-shadow:0 0 0 4px rgba(var(--primary-rgb),.1)!important}.finance-workspace button[type="submit"]{padding-inline:22px!important;background:var(--story-bg)!important}.finance-workspace button[type="submit"]:hover{background:var(--primary-hover)!important}.finance-workspace [id$="preview"],.finance-workspace [id$="result"]{border:1px solid var(--surface-border);border-radius:16px;background:var(--surface-muted)}
html[data-theme="dark"] body.is-app-view,html[data-theme="dark"] body.is-app-view #app,html[data-theme="dark"] body.is-app-view main{background:var(--app-bg)!important}html[data-theme="dark"] body.is-app-view .rounded-\[32px\].border.border-slate-200.bg-white,html[data-theme="dark"] body.is-app-view .rounded-\[28px\].border.border-slate-200.bg-white,html[data-theme="dark"] body.is-app-view .bg-white{background:var(--surface)!important;border-color:var(--surface-border)!important;box-shadow:none!important}html[data-theme="dark"] body.is-app-view .bg-slate-50,html[data-theme="dark"] body.is-app-view .bg-slate-100{background:var(--surface-elevated)!important}html[data-theme="dark"] body.is-app-view .text-slate-900{color:var(--text)!important}html[data-theme="dark"] body.is-app-view .text-slate-700,html[data-theme="dark"] body.is-app-view .text-slate-600,html[data-theme="dark"] body.is-app-view .text-slate-500{color:var(--text-muted)!important}html[data-theme="dark"] .finance-workspace article{border-color:var(--surface-border)!important}html[data-theme="dark"] .finance-workspace form input,html[data-theme="dark"] .finance-workspace form select,html[data-theme="dark"] .finance-workspace form textarea{color:var(--text)!important;border-color:var(--surface-border-strong)!important;background:var(--surface-muted)!important}html[data-theme="dark"] .finance-workspace [id$="preview"],html[data-theme="dark"] .finance-workspace [id$="result"]{color:var(--text);background:var(--surface-muted)!important;border-color:var(--surface-border-strong)!important}html[data-theme="dark"] #dashboard-chart{border-color:var(--surface-border-strong)!important;background:linear-gradient(145deg,var(--surface),var(--surface-muted))!important}html[data-theme="dark"] body.is-app-view table tbody tr{background:var(--surface);box-shadow:0 1px 0 var(--surface-border)}html[data-theme="dark"] body.is-app-view main table thead{background:var(--surface-elevated)!important;color:var(--text-muted)!important}
html[data-theme="dark"] #navbar{border-color:var(--surface-border)!important;background:rgba(var(--app-bg-rgb),.94)!important}html[data-theme="dark"] .workspace-brand,html[data-theme="dark"] .workspace-nav-link,html[data-theme="dark"] .workspace-user-role{color:var(--text)}.workspace-brand-copy small{color:var(--text-muted)}html[data-theme="dark"] .workspace-nav-link:hover{color:var(--primary);background:var(--surface-elevated)}html[data-theme="dark"] .workspace-user-role{border-color:var(--surface-border-strong);background:var(--surface-elevated)}
html[data-theme="dark"] #navbar #nav-menu,html[data-theme="dark"] #navbar #nav-menu.bg-slate-50{background:var(--app-bg)!important;border-color:var(--surface-border)!important}html[data-theme="dark"] #navbar #nav-menu .workspace-nav-link{color:var(--text)!important}html[data-theme="dark"] #navbar #nav-menu .workspace-nav-link:hover{color:var(--primary)!important;background:var(--surface-elevated)!important}
html[data-theme="dark"] #dashboard-chart:after{border-color:var(--surface-border-strong);color:var(--text-muted);background:rgba(var(--app-bg-rgb),.72)}
/* Badges de statut (succès/erreur/attente) générés dynamiquement en JS dans
   13 modules (utilisateurs en attente, factures, formations, emprunts…) :
   ils utilisent les couleurs Tailwind brutes (bg-rose-50, text-emerald-700…),
   jamais habillées en mode sombre jusqu'ici — restaient des "îlots clairs"
   lisibles mais visuellement incohérents dans une interface sombre (chantier
   front-end pré-V4, étape 4). text-emerald-600/700 est aussi corrigé ici :
   la règle générale (ligne ~54, non genrée par thème) le fige en var(--primary-hover),
   illisible sur les fonds sombres de cette page — on le réaligne sur l'accent
   sarcelle var(--primary) déjà utilisé partout ailleurs dans ce fichier en sombre.
   bg-amber-50/text-amber-600/bg-slate-200/text-red-600 ajoutés en Étape C du
   chantier de suite (section 6, CHANTIERS_FRONTEND_PRE_V4.md) : nuances
   utilisées par du code écrit après l'étape 4 ci-dessus, jamais couvertes. */
html[data-theme="dark"] body.is-app-view .text-emerald-600,
html[data-theme="dark"] body.is-app-view .text-emerald-700 {
  color:var(--primary) !important;
}
html[data-theme="dark"] body.is-app-view .hover\:bg-emerald-700:hover {
  background:var(--primary-hover) !important;
}
html[data-theme="dark"] body.is-app-view .bg-rose-50,
html[data-theme="dark"] body.is-app-view .bg-rose-100,
html[data-theme="dark"] body.is-app-view .bg-red-50 {
  background-color:rgba(var(--danger-rgb),.14) !important;
}
html[data-theme="dark"] body.is-app-view .hover\:bg-rose-100:hover,
html[data-theme="dark"] body.is-app-view .hover\:bg-red-100:hover {
  background-color:rgba(var(--danger-rgb),.22) !important;
}
html[data-theme="dark"] body.is-app-view .border-rose-200,
html[data-theme="dark"] body.is-app-view .border-red-200 {
  border-color:rgba(var(--danger-rgb),.35) !important;
}
html[data-theme="dark"] body.is-app-view .text-rose-700,
html[data-theme="dark"] body.is-app-view .text-red-700,
html[data-theme="dark"] body.is-app-view .text-red-600,
html[data-theme="dark"] body.is-app-view .text-rose-600,
html[data-theme="dark"] body.is-app-view .text-rose-500,
html[data-theme="dark"] body.is-app-view .hover\:text-rose-700:hover {
  color:var(--danger) !important;
}
html[data-theme="dark"] body.is-app-view .bg-amber-50,
html[data-theme="dark"] body.is-app-view .bg-amber-100 {
  background-color:rgba(var(--warning-rgb),.16) !important;
}
html[data-theme="dark"] body.is-app-view .text-amber-700,
html[data-theme="dark"] body.is-app-view .text-amber-600 {
  color:var(--warning) !important;
}
html[data-theme="dark"] body.is-app-view .bg-emerald-50,
html[data-theme="dark"] body.is-app-view .bg-emerald-100 {
  background-color:rgba(var(--primary-rgb),.14) !important;
}
html[data-theme="dark"] body.is-app-view .border-emerald-200 {
  border-color:rgba(var(--primary-rgb),.3) !important;
}
html[data-theme="dark"] body.is-app-view .bg-slate-200 {
  background-color:var(--surface-elevated) !important;
}
@media(max-width:767px){.company-sitebar{height:66px;padding:0 20px}.company-brand small,.company-nav-links{display:none}.company-nav-links.is-open{position:absolute;top:100%;left:0;right:0;z-index:999;display:flex;flex-direction:column;gap:2px;padding:14px 20px;background:rgba(var(--story-bg-rgb),.97);backdrop-filter:blur(16px);border-top:1px solid rgba(255,255,255,.12)}.company-nav-links.is-open button{padding:14px 4px;border-bottom:1px solid rgba(255,255,255,.1)!important}.company-nav-toggle{display:flex}.company-nav-quick{display:flex}.company-nav-links.is-open .company-nav-cta{width:100%;padding:14px 4px;border:0;border-bottom:1px solid rgba(255,255,255,.1)!important;border-radius:0;color:var(--primary);background:transparent;text-align:left}.company-nav-links.is-open .company-nav-cta:hover{color:#fff;background:transparent}.company-brand{font-size:13px}.company-brand-mark{width:31px;height:31px}#company-view .hero{min-height:680px}#company-view .hero-content{width:auto;margin:66px 25px 0;padding:65px 0 40px}.hero-metrics{position:static;margin:0 25px;grid-template-columns:repeat(2,1fr);gap:13px 20px}.hero-metrics div{padding:14px 0 0}.carousel-btn{display:none}.company-section{padding:75px 25px}.company-intro,.impact-section,.section-heading,.detail-grid,.contact-layout{grid-template-columns:1fr}.company-intro{gap:24px}.solution-grid,.process-list,.values-grid,.timeline{grid-template-columns:1fr}.solution-card{min-height:0;padding:28px}.impact-section{padding-right:25px}.impact-panel{padding:0 0 55px}.module-list{border-left:0;border-top:1px solid rgba(255,255,255,.2)}.module-list article{padding:24px 0}.section-heading .eyebrow{margin-bottom:0}.company-intro h2,.section-heading h2{font-size:34px}.company-detail-page{padding-top:66px}.detail-hero{padding:76px 25px}.service-catalog article{grid-template-columns:1fr;gap:17px;padding:48px 0}.auth-shell{grid-template-columns:1fr;min-height:0}.auth-story{min-height:clamp(320px,52dvh,540px);padding:26px}.auth-story h1{font-size:39px}.auth-panel{padding:35px 25px}.auth-form-grid{grid-template-columns:1fr}.auth-proof{gap:12px}.auth-form-actions{align-items:flex-start;flex-direction:column}body.is-app-view main{padding:24px 16px 50px}}
@media(max-width:1023px){#navbar{position:sticky}.workspace-navbar-row{position:relative}.workspace-navbar-row #nav-menu.is-open{position:absolute;top:100%;right:0;left:0;z-index:70;display:block!important;box-shadow:0 16px 30px rgba(var(--text-rgb),.15)}.workspace-navbar-row #nav-menu.is-open #nav-links{display:flex}.workspace-navbar-row #nav-menu.is-open #nav-links .workspace-nav-link{width:100%;text-align:left}.workspace-navbar-row #nav-menu.is-open .workspace-user-role{display:inline-flex;align-self:flex-start}}
/* Sous-titre de la marque masqué sur très petit écran : même convention que
   .company-brand small ci-dessus, pour libérer de la place à côté des 4
   icônes de la topbar (thème/notifications/avatar/burger) et éviter que la
   rangée déborde. */
@media(max-width:479px){.workspace-brand-copy small{display:none}}

/* Thème sombre du site public (vitrine + connexion). Le reste de ce fichier
   partage les variables --ink/--ocean/--cyan/--paper/--line/--muted avec
   l'espace de travail interne (body.is-app-view, déjà pris en charge par
   css/theme.css) : on évite de redéfinir ces variables ici pour ne pas
   modifier le thème sombre de l'espace interne, déjà correct. On cible donc
   directement les sélecteurs du site public avec des couleurs sombres
   explicites plutôt que de changer la palette partagée. */
html[data-theme="dark"] .company-page { background:var(--app-bg); color:var(--text); }
html[data-theme="dark"] .company-intro,
html[data-theme="dark"] .process-section,
html[data-theme="dark"] .detail-grid,
html[data-theme="dark"] .service-catalog,
html[data-theme="dark"] .contact-layout,
html[data-theme="dark"] .auth-shell {
  background:var(--app-bg) !important;
}
html[data-theme="dark"] .solution-band,
html[data-theme="dark"] .values-section {
  background:var(--surface-muted) !important;
}
html[data-theme="dark"] .solution-grid,
html[data-theme="dark"] .values-grid {
  background:var(--surface-border-strong) !important;
}
html[data-theme="dark"] .solution-card,
html[data-theme="dark"] .values-grid article {
  background:var(--surface) !important;
}
html[data-theme="dark"] .appointment-form {
  background:var(--surface) !important;
}
html[data-theme="dark"] .appointment-form input,
html[data-theme="dark"] .appointment-form textarea {
  background:var(--app-bg) !important;
  border-color:var(--surface-border) !important;
  color:var(--text) !important;
}
html[data-theme="dark"] .appointment-form label,
html[data-theme="dark"] .auth-panel-head h2,
html[data-theme="dark"] .auth-form label,
html[data-theme="dark"] .auth-form input,
html[data-theme="dark"] .auth-tabs button.is-active,
html[data-theme="dark"] .contact-points a,
html[data-theme="dark"] .detail-grid h2,
html[data-theme="dark"] .contact-layout h2,
html[data-theme="dark"] .solution-card h3,
html[data-theme="dark"] .company-intro h2,
html[data-theme="dark"] .section-heading h2,
html[data-theme="dark"] .values-grid h3 {
  color:var(--text) !important;
}
html[data-theme="dark"] .company-intro>p,
html[data-theme="dark"] .section-heading>p,
html[data-theme="dark"] .solution-card p:not(.card-kicker),
html[data-theme="dark"] .detail-grid>div:last-child p,
html[data-theme="dark"] .values-grid p,
html[data-theme="dark"] .service-catalog p:not(.eyebrow),
html[data-theme="dark"] .contact-points p,
html[data-theme="dark"] .auth-panel-head>p:last-child,
html[data-theme="dark"] .auth-note,
html[data-theme="dark"] .auth-security,
html[data-theme="dark"] .process-list p {
  color:var(--text-muted) !important;
}
html[data-theme="dark"] .card-kicker,
html[data-theme="dark"] .process-list span,
html[data-theme="dark"] .values-grid span,
html[data-theme="dark"] .service-catalog article>span,
html[data-theme="dark"] .service-catalog li,
html[data-theme="dark"] .contact-points b,
html[data-theme="dark"] .auth-kicker,
html[data-theme="dark"] .auth-link,
html[data-theme="dark"] .eyebrow.dark {
  color:var(--primary) !important;
}
html[data-theme="dark"] .auth-form input {
  border-bottom-color:var(--surface-border-strong) !important;
}
html[data-theme="dark"] .service-catalog article,
html[data-theme="dark"] .service-catalog li,
html[data-theme="dark"] .auth-security {
  border-color:var(--surface-border-strong) !important;
}
html[data-theme="dark"] .service-markdown-content {
  color:var(--text-muted) !important;
}
html[data-theme="dark"] .service-markdown-content h1,
html[data-theme="dark"] .service-markdown-content h2,
html[data-theme="dark"] .service-markdown-content h3,
html[data-theme="dark"] .service-markdown-content h4,
html[data-theme="dark"] .service-markdown-content strong {
  color:var(--text) !important;
}
html[data-theme="dark"] .service-markdown-content a {
  color:var(--primary) !important;
}
html[data-theme="dark"] .service-markdown-content code,
html[data-theme="dark"] .service-markdown-content th {
  background:var(--surface-elevated) !important;
  color:var(--text) !important;
}
html[data-theme="dark"] .service-markdown-content th,
html[data-theme="dark"] .service-markdown-content td {
  border-color:var(--surface-border) !important;
}
/* .auth-tabs : la ligne de fond du bandeau d'onglets (border-bottom du
   conteneur, toujours visible sous tous les onglets) utilisait la même
   teinte sombre (var(--surface-border-strong)) que l'indicateur d'onglet actif (var(--text), très
   proche du fond du panneau var(--app-bg) en thème sombre — donc quasi invisible).
   Résultat : le trait "actif" se fondait dans le fond pendant que la ligne
   de fond du bandeau restait, seule visible, sous les deux onglets — d'où
   l'impression d'un soulignement qui ne bouge pas / qui se dédouble au clic.
   On assombrit donc la ligne de fond (quasi invisible) et on éclaircit
   nettement l'indicateur actif pour qu'un seul trait, net, marque l'onglet
   sélectionné. */
html[data-theme="dark"] .auth-tabs {
  border-color:rgba(var(--text-rgb),.08) !important;
}
html[data-theme="dark"] .auth-tabs button.is-active {
  border-bottom-color:var(--primary) !important;
}
html[data-theme="dark"] .company-cta .cta-btn:hover {
  background:#fff !important;
  color:var(--story-bg) !important;
}
