:root {
  --nw-accent: #28a790;
  --nw-accent-dark: #137a68;
  --nw-link: #137a68;
  --nw-link-hover: #28a790;
  --nw-btn-bg: #28a790;
  --nw-btn-text: #ffffff;
  --nw-btn-hover-bg: #137a68;
  --nw-btn-hover-text: #ffffff;
  --nw-btn-action-bg: #2f8f5c;
  --nw-btn-action-text: #ffffff;
  --nw-btn-action-hover-bg: #247048;
  --nw-btn-action-hover-text: #ffffff;
  --nw-content-text: #484848;
  --nw-title-color: #1f1d2b;
  --nw-footer-bg: #0c846e;
  --nw-footer-text: #ffffff;
  --nw-footer-link: #ffffff;
  --nw-footer-link-hover: #3edbbf;
  --nw-radius: 6px;
  --nw-container-max: 1320px;
  --nw-topbar-bg: #fafafa;
  --nw-topbar-text: #ffffff;
  --bs-border-radius: 6px;
  --bs-border-radius-sm: 4px;
  --bs-border-radius-lg: 8px;
}
body:not(.admin) { background: #faf8f5; font-family: "Poppins", system-ui, -apple-system, sans-serif; color: #484848; font-size: 14px; }
/* Variables de marque dérivées du thème (corail secondaire, couleur des montants,
   et teintes douces rgb). Posées sur body:not(.admin) — et NON :root — pour
   l'emporter sur les défauts figés du bloc « Soft UI » d'app.css (qui sont, eux,
   sur body:not(.admin)). On y aligne aussi le primaire/lien Bootstrap du front
   sur l'accent, pour que boutons outline, .btn-link (crayons) et bordures
   primaires suivent le thème. */
body:not(.admin) {
  --nw-accent-rgb: 40, 167, 144;
  --nw-accent-soft: rgba(40, 167, 144, .10);
  --nw-warm: #e07a5f;
  --nw-warm-dark: #c16952;
  --nw-warm-rgb: 224, 122, 95;
  --nw-warm-soft: rgba(224, 122, 95, .14);
  --nw-amount: #b45309;
  --bs-primary: #28a790;
  --bs-primary-rgb: 40, 167, 144;
  --bs-link-color: #137a68;
  --bs-link-color-rgb: 19, 122, 104;
  --bs-link-hover-color: #28a790;
}
body:not(.admin) h1, body:not(.admin) h2, body:not(.admin) h3, body:not(.admin) h4, body:not(.admin) h5, body:not(.admin) h6 {
  color: #1f1d2b;
  font-family: "Poppins", system-ui, -apple-system, sans-serif;
}
/* Tailles via :where() → spécificité (0,0,1) au lieu de (0,1,2). Sinon
   « body:not(.admin) h3 » écrasait la classe utilitaire « .h6 » : un
   <h3 class="h6"> (titre de carte, volontairement petit) prenait la taille
   d'un h3. Avec :where(), les classes Bootstrap .h1..h6 reprennent la main ;
   les titres NUS (contenu CMS) suivent toujours l'échelle du thème. */
:where(body:not(.admin)) h1 { font-size: 28px; }
:where(body:not(.admin)) h2 { font-size: 21px; }
:where(body:not(.admin)) h3 { font-size: 18px; }
:where(body:not(.admin)) h4 { font-size: 16px; }
:where(body:not(.admin)) h5 { font-size: 15px; }
:where(body:not(.admin)) h6 { font-size: 14px; }
@media (max-width: 767.98px) {
  body:not(.admin) { font-size: 16px; }
  :where(body:not(.admin)) h1 { font-size: 20px; }
  :where(body:not(.admin)) h2 { font-size: 20px; }
  :where(body:not(.admin)) h3 { font-size: 20px; }
  :where(body:not(.admin)) h4 { font-size: 18px; }
  :where(body:not(.admin)) h5 { font-size: 17px; }
  :where(body:not(.admin)) h6 { font-size: 16px; }
}
body:not(.admin) .container, body:not(.admin) .container-xl, body:not(.admin) .container-lg, body:not(.admin) .container-md, body:not(.admin) .container-sm { max-width: 1320px; }
body:not(.admin) a:not(.btn) { color: var(--nw-link); }
body:not(.admin) a:not(.btn):hover { color: var(--nw-link-hover); }
body:not(.admin) .btn-primary {
  --bs-btn-bg: var(--nw-btn-bg);
  --bs-btn-border-color: var(--nw-btn-bg);
  --bs-btn-color: var(--nw-btn-text);
  --bs-btn-hover-bg: var(--nw-btn-hover-bg);
  --bs-btn-hover-border-color: var(--nw-btn-hover-bg);
  --bs-btn-hover-color: var(--nw-btn-hover-text);
  --bs-btn-active-bg: var(--nw-btn-hover-bg);
  --bs-btn-active-border-color: var(--nw-btn-hover-bg);
  --bs-btn-active-color: var(--nw-btn-hover-text);
}
body:not(.admin) .btn-success, body:not(.admin) .btn-action {
  --bs-btn-bg: var(--nw-btn-action-bg);
  --bs-btn-border-color: var(--nw-btn-action-bg);
  --bs-btn-color: var(--nw-btn-action-text);
  --bs-btn-hover-bg: var(--nw-btn-action-hover-bg);
  --bs-btn-hover-border-color: var(--nw-btn-action-hover-bg);
  --bs-btn-hover-color: var(--nw-btn-action-hover-text);
  --bs-btn-active-bg: var(--nw-btn-action-hover-bg);
  --bs-btn-active-border-color: var(--nw-btn-action-hover-bg);
  --bs-btn-active-color: var(--nw-btn-action-hover-text);
}
body:not(.admin) footer { background: var(--nw-footer-bg) !important; color: var(--nw-footer-text); }
body:not(.admin) footer .text-muted, body:not(.admin) footer small { color: var(--nw-footer-text) !important; }
/* Liens du footer : !important pour battre les utilitaires Bootstrap
   (.text-body / .text-muted posent leur couleur en !important). */
body:not(.admin) footer a:not(.btn) { color: var(--nw-footer-link) !important; text-decoration: none; }
body:not(.admin) footer a:not(.btn):hover { color: var(--nw-footer-link-hover) !important; text-decoration: underline; }
.nw-topbar { background: var(--nw-topbar-bg); color: var(--nw-topbar-text); font-size: .875rem; padding: .4rem 0; }
.nw-topbar a { color: var(--nw-topbar-text); text-decoration: none; opacity: .85; }
.nw-topbar a:hover { opacity: 1; color: var(--nw-topbar-text); }
.nw-topbar .container-xl { display: flex; align-items: center; justify-content: center; gap: 1rem; flex-wrap: wrap; }
.nw-brand-tagline { display: block; font-size: .8rem; opacity: .7; font-weight: 400; margin-top: -.15rem; }
/* Surcharges thématiques pour les primitives partagées (cf. app.css) :
   variante front (claire), reprend les couleurs de lien du thème. */
body:not(.admin) .nw-mobile-nav .nav-link { color: var(--nw-link); }
body:not(.admin) .nw-mobile-nav .nav-link:hover,
body:not(.admin) .nw-mobile-nav .nav-link:active { color: var(--nw-link-hover); }
body:not(.admin) .nw-action-bar:not(.nw-action-bar-dark) .nw-action-cell { color: var(--nw-link); }
body:not(.admin) .nw-action-bar:not(.nw-action-bar-dark) .nw-action-cell:hover,
body:not(.admin) .nw-action-bar:not(.nw-action-bar-dark) .nw-action-cell:active { color: var(--nw-link-hover); }
.nw-back-to-top {
  position: fixed; bottom: 1.25rem; right: 1.25rem;
  width: 2.75rem; height: 2.75rem; border-radius: 50%;
  background: var(--nw-btn-bg); color: var(--nw-btn-text);
  border: none; box-shadow: 0 .2rem .6rem rgba(0,0,0,.18);
  display: none; align-items: center; justify-content: center;
  cursor: pointer; z-index: 1030;
  transition: opacity .2s, transform .2s, background .2s;
}
.nw-back-to-top:hover { background: var(--nw-btn-hover-bg); color: var(--nw-btn-hover-text); transform: translateY(-2px); }
.nw-back-to-top.visible { display: inline-flex; }

/* === Chat — tailles configurables (Apparence → Thèmes → Typographie) === */
.chat-card .msg { font-size: 13px; }
.chat-card .msg-head { font-size: 13px; }
/* Le badge "ARTISTE" suit la taille de l'en-tête (em → relatif au parent),
   sans toucher au badge "Back office" de la navbar qui garde sa taille. */
.chat-card .msg-head .badge-admin { font-size: .85em; }
.chat-card .chat-body-input { font-size: 14px; }
@media (max-width: 767.98px) {
  .chat-card .msg { font-size: 13px; }
  .chat-card .msg-head { font-size: 12px; }
  .chat-card .chat-body-input { font-size: 13px; }
}
