@import url("https://fonts.googleapis.com/css2?family=Bebas+Neue&family=Bodoni+Moda:ital,opsz,wght@0,6..72,400;0,6..72,500;0,6..72,600;0,6..72,700;0,6..72,800;1,6..72,400;1,6..72,500;1,6..72,600&family=Fraunces:ital,opsz,wght@0,9..144,600;0,9..144,700;0,9..144,800;1,9..144,500;1,9..144,600&family=Great+Vibes&family=Fredoka+One&family=Fredoka:wght@400;500;600;700&family=Archivo+Narrow:ital,wght@0,500;0,600;0,700;1,500&family=Manrope:wght@500;600;700;800&display=swap");

:root {
  color-scheme: light;
  /* DA minimaliste : noir / blanc + accent pêche */
  --cherry: #efb899;
  --cherry-dark: #dd9f7b;
  --burgundy-ink: #0f0f10;
  --cream: #ffffff;
  --cream-deep: #f4f4f4;
  --cream-paper: #ffffff;
  --text-on-cream: #101010;
  --text-muted: #565656;
  --font-editorial: "Manrope", "Archivo Narrow", system-ui, sans-serif;
  --font-display: "Manrope", "Archivo Narrow", system-ui, sans-serif;
  --font-condensed: "Manrope", "Archivo Narrow", system-ui, sans-serif;
  --font-ui: "Manrope", "Archivo Narrow", system-ui, sans-serif;
  --surface-white: #ffffff;
  --surface-cream: #fafafa;
  --line-soft: rgba(0, 0, 0, 0.12);
  --line-strong: rgba(0, 0, 0, 0.28);
  --shadow-soft: 0 4px 14px rgba(0, 0, 0, 0.04);
  --shadow-elevated: 0 10px 24px rgba(0, 0, 0, 0.08);
  /* Largeur max du contenu : un peu plus large que l’ancien 960px pour la nav + en-tête sans scroll horizontal */
  --site-layout-max: 1180px;
  --site-layout-pad: 94%;
}

/* Paywall : masque le contenu jusqu’à la vérification session + abonnement (js/site-access-guard.js) */
html.crfpa-site-guard-pending body {
  visibility: hidden;
}

* {
  box-sizing: border-box;
}

body {
  margin: 0;
  min-height: 100vh;
  display: flex;
  flex-direction: column;
  overflow-x: hidden;
  font-family: var(--font-ui);
  font-size: 1rem;
  color: var(--text-on-cream);
  background-color: var(--cream-paper);
  background-image: none;
}

/* ===== DA globale (sans modifier le fond du site) ===== */
a {
  color: #161616;
}

a:hover {
  color: var(--cherry);
}

::selection {
  color: #fff;
  background: var(--cherry);
}

/* ===== Refresh minimal global (noir/blanc + touches rouges) ===== */
.site-header {
  background-color: rgba(255, 255, 255, 0.96);
  border-bottom: 1px solid var(--line-soft);
  box-shadow: none;
}

.site-header__brand,
.site-header__link {
  color: #111;
}

.site-header__link {
  background-color: #fff;
  border: 1px solid rgba(0, 0, 0, 0.2);
  box-shadow: none;
}

.site-header__link:hover {
  background-color: rgba(239, 184, 153, 0.16);
  border-color: var(--cherry);
}

.site-header__link--current {
  color: #fff;
  background-color: #111;
  border-color: #111;
  box-shadow: none;
}

.site-header__link--auth-accent {
  background-color: rgba(239, 184, 153, 0.2);
  border-color: rgba(239, 184, 153, 0.54);
}

.page-shell,
.subject-page-placeholder,
.account-profile-section,
.forum-room-card,
.forum-fil-chat,
.admin-section,
.admin-report-card,
.admin-veille-card,
.admin-hub-card__link,
.crfpa-ai-dock__panel {
  background: #fff !important;
  border-color: var(--line-soft) !important;
  box-shadow: none !important;
}

button,
.forum-room__submit,
.subject-page-placeholder__cta,
.admin-report-card__btn,
.account-access-btn {
  border-radius: 10px;
  box-shadow: none;
}

.forum-room__submit,
.subject-page-placeholder__cta,
.admin-report-card__btn,
.account-access-btn--primary {
  background: #111 !important;
  border-color: #111 !important;
  color: #fff !important;
}

.forum-room__submit:hover,
.subject-page-placeholder__cta:hover,
.admin-report-card__btn:hover,
.account-access-btn--primary:hover {
  background: var(--cherry) !important;
  border-color: var(--cherry) !important;
}

body > main {
  flex: 1 0 auto;
}

/* ——— Barre type « magazine » : fond crème, liens outline bordeaux ——— */
.site-header {
  position: sticky;
  top: 0;
  z-index: 50;
  background-color: rgba(250, 244, 235, 0.95);
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
  border-bottom: 1px solid var(--line-soft);
  box-shadow: 0 1px 0 rgba(255, 255, 255, 0.75);
}

/* Pendant un drag-and-drop du planner on désactive les effets coûteux
   (backdrop-filter notamment) qui re-rasterisent à chaque frame et causent
   le manque de fluidité du glissé-déposé. Le header reste lisible grâce
   à son background opaque (rgba 0.95). */
body.planner-is-dragging .site-header {
  backdrop-filter: none !important;
  -webkit-backdrop-filter: none !important;
}
body.planner-is-dragging {
  cursor: grabbing;
}

/* Bandeau d'aide affiché en bas d'écran pendant le mode « pick » du planner
   (clic pour soulever une tâche, clic ailleurs pour la déposer). */
.planner-pick-hint {
  position: fixed;
  bottom: 1.25rem;
  left: 50%;
  transform: translateX(-50%);
  z-index: 10000;
  pointer-events: none;
  background: rgba(16, 16, 16, 0.92);
  color: #fff;
  padding: 0.6rem 1.1rem;
  border-radius: 999px;
  font-family: var(--font-ui);
  font-size: 0.85rem;
  font-weight: 600;
  letter-spacing: 0.01em;
  box-shadow: 0 10px 28px rgba(0, 0, 0, 0.24);
  animation: planner-pick-hint-in 160ms ease-out;
}
@keyframes planner-pick-hint-in {
  from { opacity: 0; transform: translate(-50%, 8px); }
  to { opacity: 1; transform: translate(-50%, 0); }
}

.site-header__inner {
  display: flex;
  flex-wrap: nowrap;
  align-items: center;
  justify-content: space-between;
  gap: 0.65rem 1rem;
  width: min(var(--site-layout-max), var(--site-layout-pad));
  margin: 0 auto;
  padding: 0.55rem 0;
  min-height: 3rem;
}

.site-header__brand {
  position: relative;
  flex-shrink: 0;
  display: inline-flex;
  align-items: center;
  font-family: var(--font-editorial);
  font-size: 1.05rem;
  font-weight: 700;
  letter-spacing: -0.02em;
  color: var(--burgundy-ink);
  text-decoration: none;
  text-transform: uppercase;
  line-height: 1;
}

.site-header__brand:hover {
  color: var(--cherry);
}

.site-header__logo-img {
  display: block;
  height: 1.4rem;
  width: auto;
  max-width: 100%;
  object-fit: contain;
  user-select: none;
  -webkit-user-drag: none;
  transition: opacity 0.2s ease;
}

/* Overlay « peach » qui apparaît au survol du logo : on masque la couleur
   var(--cherry) avec le PNG du logo pour obtenir un changement de teinte exact
   sans toucher au markup HTML. */
.site-header__brand::after {
  content: "";
  position: absolute;
  inset: 0;
  background-color: var(--cherry);
  -webkit-mask: url("./assets/lavocatier-logo.png") no-repeat left center / contain;
  mask: url("./assets/lavocatier-logo.png") no-repeat left center / contain;
  opacity: 0;
  transition: opacity 0.2s ease;
  pointer-events: none;
}

.site-header__brand:hover::after,
.site-header__brand:focus-visible::after {
  opacity: 1;
}

@media (max-width: 720px) {
  .site-header__logo-img {
    height: 1.1rem;
  }
}

.site-header__nav {
  display: flex;
  flex-wrap: nowrap;
  align-items: center;
  justify-content: flex-end;
  gap: 0.4rem;
  flex: 1;
  min-width: 0;
  overflow-x: auto;
  overscroll-behavior-x: contain;
  scrollbar-width: none;
  -webkit-overflow-scrolling: touch;
  padding: 0.1rem 0;
}

.site-header__nav::-webkit-scrollbar {
  display: none;
}

.site-header__link {
  flex-shrink: 0;
  padding: 0.42rem 0.85rem;
  font-family: var(--font-ui);
  font-size: 0.7rem;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: 0.2em;
  color: var(--burgundy-ink);
  background-color: rgba(255, 255, 255, 0.5);
  text-decoration: none;
  border-radius: 999px;
  border: 1.5px solid var(--line-strong);
  transition:
    transform 0.15s ease,
    background 0.15s ease,
    color 0.15s ease,
    border-color 0.15s ease;
}

.site-header__link:hover {
  background-color: rgba(178, 31, 18, 0.09);
  border-color: var(--cherry);
  color: var(--cherry);
}

.site-header__link:active {
  transform: scale(0.98);
}

.site-header__link:focus-visible {
  outline: 2px solid var(--cherry);
  outline-offset: 3px;
}

.site-header__link--current {
  background-color: var(--cherry);
  color: #fffaf3;
  border-color: var(--cherry);
  box-shadow: 0 8px 16px rgba(130, 18, 9, 0.24);
}

/* ——— Zone compte header (Déconnexion si session ; rempli par js/auth-header.js) ——— */
.site-header__auth {
  flex-shrink: 0;
  display: inline-flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: flex-end;
  gap: 0.35rem;
  max-width: 13.5rem;
}

.site-header__auth:empty {
  display: none;
}

.site-header__link--auth {
  padding: 0.35rem 0.65rem;
  font-size: 0.62rem;
  letter-spacing: 0.14em;
}

.site-header__link--auth-accent {
  background-color: rgba(178, 31, 18, 0.12);
  border-color: rgba(178, 31, 18, 0.45);
}

button.site-header__link--auth {
  cursor: pointer;
  font: inherit;
}

/* Compte Supabase : pas de lien « Connexion » dans le pied quand déjà connecté */
body.crfpa-auth-signed-in .site-footer__nav a.site-footer__link[href="./connexion.html"] {
  display: none;
}

/* Profil : prototype local « Accès utilisateur » masqué si session Supabase active */
body.crfpa-auth-signed-in .profil-local-only {
  display: none !important;
}

/* Profil : réinitialisation mot de passe (Supabase) — visible seulement connecté */
.profil-supabase-password {
  display: none;
}

body.crfpa-auth-signed-in .profil-supabase-password {
  display: block;
}

.profil-supabase-password__msg {
  margin: 0.5rem 0 0;
  font-size: 0.86rem;
  color: var(--text-muted);
}

.page-shell--profil .profil-supabase-password {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0.7rem;
  text-align: center;
}

.page-shell--profil .profil-supabase-password .subject-page-placeholder {
  margin-bottom: 0.1rem;
}

.page-shell--profil .profil-supabase-password .forum-room__submit {
  min-width: 17rem;
}

.page-shell--profil .profil-supabase-password .profil-supabase-password__msg {
  min-height: 1.25rem;
  margin-top: -0.1rem;
}

.page-shell--profil .profil-supabase-password__logout {
  margin-top: 0.2rem;
  min-width: 12.5rem;
  border-width: 1.5px;
}

@media (max-width: 520px) {
  .page-shell--profil .profil-supabase-password .forum-room__submit,
  .page-shell--profil .profil-supabase-password__logout {
    width: 100%;
    min-width: 0;
  }
}

/* ——— Accès Profil (icône personnage) ——— */
.site-header__profile {
  flex-shrink: 0;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 2.55rem;
  height: 2.55rem;
  margin-left: 0.35rem;
  overflow: hidden;
  border-radius: 50%;
  color: var(--burgundy-ink);
  background: linear-gradient(145deg, rgba(255, 255, 255, 0.98), rgba(247, 236, 224, 0.9));
  border: 2px solid rgba(130, 52, 41, 0.34);
  box-shadow: 0 6px 14px rgba(42, 24, 24, 0.08);
  text-decoration: none;
  transition:
    transform 0.16s ease,
    border-color 0.16s ease,
    color 0.16s ease,
    box-shadow 0.16s ease;
}

.site-header__profile:hover {
  color: var(--cherry);
  border-color: rgba(178, 31, 18, 0.56);
  transform: scale(1.06);
  box-shadow: 0 4px 12px rgba(42, 24, 24, 0.1);
}

.site-header__profile:focus-visible {
  outline: 2px solid var(--cherry);
  outline-offset: 3px;
}

.site-header__profile--current {
  border-color: var(--cherry);
  background: linear-gradient(145deg, var(--cherry), var(--cherry-dark));
  color: #fff;
  box-shadow: 0 0 0 3px rgba(239, 184, 153, 0.22);
}

.site-header__profile--current:hover {
  color: var(--cream-paper);
  border-color: var(--cherry-dark);
}

.site-header__profile-icon {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  height: 100%;
  pointer-events: none;
}

.site-header__profile-icon svg {
  display: block;
  width: 72%;
  height: 72%;
}

.site-header__profile-svg {
  flex-shrink: 0;
}

.site-header__profile-svg .site-header__profile-cap-fill {
  fill: currentColor;
  fill-opacity: 0.14;
  stroke: none;
}

.site-header__profile--current .site-header__profile-svg .site-header__profile-cap-fill {
  fill-opacity: 0.22;
}

/* ——— Marque seule (menu burger / paramètres retirés) ——— */
.site-header__brand-slot {
  display: flex;
  align-items: center;
  flex-shrink: 0;
}

/* ——— Contenu accueil ——— */
.landing {
  width: min(var(--site-layout-max), var(--site-layout-pad));
  margin: 2rem auto 3rem;
}

.hero-intro {
  margin-bottom: 2.9rem;
}

.landing-title {
  margin: 0;
  color: #0d0d0d;
}

.landing-title--editorial {
  width: min(100%, 40rem);
  margin: 0 auto;
  text-align: center;
  line-height: 0.88;
}

.landing-title__line {
  display: block;
  color: #0e0e10;
  white-space: nowrap;
}

.landing-title__line--one {
  font-family: "Fraunces", Georgia, "Times New Roman", serif;
  font-size: clamp(3.2rem, 9.4vw, 6.05rem);
  font-weight: 700;
  line-height: 1;
  letter-spacing: -0.03em;
}

.landing-title__line--two {
  margin-top: -0.02em;
  font-family: "Fraunces", Georgia, "Times New Roman", serif;
  font-size: clamp(3.8rem, 11.2vw, 7rem);
  font-weight: 700;
  line-height: 0.94;
  letter-spacing: -0.035em;
}

.landing-title__line--three {
  margin-top: 0.03em;
  font-family: "Fraunces", Georgia, "Times New Roman", serif;
  font-size: clamp(3.5rem, 10.2vw, 6.4rem);
  font-style: italic;
  font-weight: 600;
  line-height: 0.95;
  letter-spacing: -0.04em;
}

@media (max-width: 700px) {
  .landing-title--editorial {
    width: min(100%, 26rem);
  }
}

.landing-lead {
  margin: 0;
  max-width: 42rem;
  font-family: var(--font-ui);
  font-size: clamp(0.95rem, 2.1vw, 1.08rem);
  font-weight: 500;
  line-height: 1.6;
  color: var(--text-muted);
}

.motivation-quote {
  position: relative;
  margin: 0;
  max-width: 40rem;
  padding: 1rem 1.25rem 1rem 1.15rem;
  border-left: 3px solid var(--cherry);
  border-radius: 0 20px 20px 0;
  background: linear-gradient(90deg, rgba(16, 16, 16, 0.05) 0%, transparent 60%);
}

.motivation-quote::before {
  content: "✶";
  position: absolute;
  top: 0.35rem;
  right: 0.65rem;
  font-size: 0.75rem;
  color: var(--cherry);
  opacity: 0.45;
  pointer-events: none;
}

.motivation-quote__eyebrow {
  display: block;
  margin-bottom: 0.45rem;
  font-family: var(--font-ui);
  font-size: 0.65rem;
  font-weight: 700;
  font-style: normal;
  text-transform: uppercase;
  letter-spacing: 0.26em;
  color: var(--text-muted);
}

.motivation-quote__text {
  font-family: var(--font-editorial);
  font-size: clamp(1.12rem, 2.4vw, 1.38rem);
  font-style: italic;
  font-weight: 500;
  line-height: 1.55;
  color: var(--burgundy-ink);
}

.motivation-quote__inner {
  font-style: italic;
}

.countdown-section {
  margin-bottom: 3.8rem;
}

/* ——— Graphique notes (accueil) ——— */
.grades-evolution {
  margin: 0 0 3.8rem;
  padding: 1.6rem 1.5rem 1.65rem;
  background-color: #fff;
  border-radius: 28px;
  border: none;
  box-shadow: 0 10px 22px rgba(0, 0, 0, 0.06);
  text-align: center;
}

.grades-evolution__title {
  position: relative;
  margin: 0 0 0.35rem;
  font-family: var(--font-editorial);
  font-size: clamp(2.5rem, 7.2vw, 5rem);
  font-weight: 800;
  line-height: 1.12;
  letter-spacing: -0.02em;
  color: #151515;
  text-align: center;
}

.grades-evolution__title--fashion {
  display: inline-flex;
  align-items: baseline;
  justify-content: center;
  gap: 0;
  margin: 0 auto 0.85rem;
  transform: none;
  line-height: 1;
  color: #111;
  width: fit-content;
}

.grades-evolution__fashion-lead {
  font-family: "Fraunces", Georgia, "Times New Roman", serif;
  font-size: clamp(4.4rem, 11.5vw, 8rem);
  font-weight: 700;
  letter-spacing: -0.05em;
  line-height: 0.85;
  transform: translateY(0.18em);
  margin-right: -0.05em;
}

.grades-evolution__fashion-stack {
  display: inline-flex;
  flex-direction: row;
  align-items: baseline;
}

.grades-evolution__fashion-top,
.grades-evolution__fashion-bottom {
  font-family: "Fraunces", Georgia, "Times New Roman", serif;
  font-weight: 700;
  letter-spacing: -0.05em;
  line-height: 0.85;
  font-size: clamp(2.55rem, 6.5vw, 4.55rem);
}

.grades-evolution__fashion-bottom {
  margin-left: 0;
}

@media (max-width: 640px) {
  .grades-evolution__title--fashion {
    transform: scale(0.96);
    transform-origin: center top;
  }

  .grades-evolution__fashion-lead {
    transform: translateY(0.14em);
  }
}

.grades-evolution__title::after {
  content: none;
}

.grades-evolution__title--fashion::after {
  content: "";
  position: absolute;
  left: 50%;
  bottom: -0.55rem;
  transform: translateX(-50%);
  width: 9.5rem;
  height: 1.5px;
  border-radius: 1px;
  background: rgba(239, 184, 153, 0.95);
}

.grades-evolution__intro-block {
  margin: 0.85rem auto 1.95rem;
  max-width: 52rem;
}

.grades-evolution__intro {
  margin: 0;
  text-align: center;
  font-family: "Fraunces", Georgia, "Times New Roman", serif;
  font-size: clamp(1.1rem, 2.45vw, 1.7rem);
  line-height: 1.22;
  font-style: italic;
  font-weight: 500;
  letter-spacing: -0.015em;
  color: #171717;
}

.grades-evolution__chart-wrap {
  position: relative;
  width: 100%;
  overflow-x: auto;
  overscroll-behavior-x: contain;
  margin-bottom: 0.85rem;
  border-radius: 20px;
  background: #fff;
  border: none;
}

.grades-evolution__chart-floating-ui {
  position: absolute;
  top: 0.55rem;
  right: 0.55rem;
  z-index: 2;
  max-width: calc(100% - 0.8rem);
}

.grades-evolution__chart-filter-field {
  display: inline-flex;
  flex-direction: row;
  align-items: center;
  flex-wrap: wrap;
  gap: 0.32rem 0.45rem;
  margin: 0;
  padding: 0.24rem 0.52rem 0.26rem 0.58rem;
  border-radius: 999px;
  background: #fff;
  border: 1px solid rgba(16, 16, 16, 0.14);
  box-shadow: none;
  backdrop-filter: blur(6px);
}

.grades-evolution__chart-filter-label {
  font-family: var(--font-condensed);
  font-size: 0.52rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.14em;
  color: #656565;
  opacity: 0.85;
}

.grades-evolution__chart-filter-select {
  font-family: var(--font-ui);
  font-size: 0.72rem;
  font-weight: 600;
  color: #171717;
  background: transparent;
  border: none;
  border-radius: 0;
  padding: 0.1rem 0.15rem 0.1rem 0;
  margin: 0;
  min-height: 0;
  max-width: 9.5rem;
  cursor: pointer;
  -webkit-appearance: none;
  appearance: none;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6' viewBox='0 0 10 6'%3E%3Cpath fill='%23222222' d='M0 0h10L5 6z'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: right 0.1rem center;
  padding-right: 0.85rem;
}

.grades-evolution__chart-filter-select:focus {
  outline: none;
}

.grades-evolution__chart-filter-field:focus-within {
  outline: 2px solid rgba(239, 184, 153, 0.55);
  outline-offset: 1px;
}

.grades-evolution__chart {
  display: block;
  width: 100%;
  min-width: 280px;
  height: auto;
  min-height: 200px;
}

/* L'animation de tracé de la courbe + apparition des points est pilotée
   en JS via la Web Animations API dans renderGradesChart() — beaucoup plus
   fiable que de la CSS quand renderGradesChart() est appelée plusieurs fois
   au chargement (sync puis async après syncPlannerOwnerIdFromSession).
   Cette règle prévient juste tout flash au cas où la JS serait désactivée. */
@media (prefers-reduced-motion: reduce) {
  .grades-evolution__chart path,
  .grades-evolution__chart circle {
    stroke-dashoffset: 0 !important;
    opacity: 1 !important;
  }
}

.grades-evolution__legend {
  display: flex;
  flex-wrap: wrap;
  gap: 0.45rem 1.15rem;
  margin: 0 0 1rem;
  padding: 0;
  list-style: none;
}

.grades-evolution__add-panel {
  margin-top: 0.15rem;
  padding: 1.15rem 1.2rem 1.2rem;
  border-radius: 18px;
  background: #fff;
  border: none;
}

.grades-panel-tabs {
  display: flex;
  flex-wrap: wrap;
  gap: 0.4rem;
  margin: 0 0 1rem;
  padding: 0;
}

.grades-panel-tab {
  font-family: var(--font-ui);
  font-size: 0.68rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.12em;
  color: #525252;
  background: #fff;
  border: 1px solid rgba(16, 16, 16, 0.2);
  border-radius: 999px;
  padding: 0.48rem 0.95rem;
  cursor: pointer;
  transition:
    background 0.15s ease,
    color 0.15s ease,
    border-color 0.15s ease;
}

.grades-panel-tab:hover {
  color: #141414;
  border-color: rgba(16, 16, 16, 0.4);
}

.grades-panel-tab[aria-selected="true"] {
  color: #fff;
  background: #111;
  border-color: #111;
}

.grades-panel-tab:focus-visible {
  outline: 2px solid rgba(239, 184, 153, 0.55);
  outline-offset: 2px;
}

.grades-panel--list[hidden] {
  display: none !important;
}

.grades-notes-empty {
  margin: 0;
  font-family: var(--font-ui);
  font-size: 0.9rem;
  line-height: 1.5;
  color: var(--text-muted);
}

.grades-notes-empty[hidden] {
  display: none;
}

.grades-notes-list {
  margin: 0.5rem 0 0;
  padding: 0;
  list-style: none;
  display: flex;
  flex-direction: column;
  gap: 0.65rem;
}

.grades-note-row {
  border-radius: 14px;
  background: #fff;
  border: 1px solid rgba(16, 16, 16, 0.1);
  overflow: hidden;
}

.grades-note-row__view {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 0.65rem 1rem;
  padding: 0.75rem 0.9rem;
}

.grades-note-row__meta {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  gap: 0.45rem 0.85rem;
  min-width: 0;
}

.grades-note-row__subject {
  font-family: var(--font-editorial);
  font-size: 1rem;
  font-weight: 700;
  color: #171717;
}

.grades-note-row__date {
  font-family: var(--font-ui);
  font-size: 0.78rem;
  font-weight: 600;
  color: var(--text-muted);
  text-transform: capitalize;
}

.grades-note-row__grade {
  font-family: var(--font-ui);
  font-size: 0.88rem;
  font-weight: 700;
  color: var(--burgundy-ink);
}

.grades-note-row__actions {
  display: flex;
  flex-wrap: wrap;
  gap: 0.4rem;
}

.grades-note-row__btn {
  font-family: var(--font-ui);
  font-size: 0.65rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  border-radius: 999px;
  padding: 0.38rem 0.7rem;
  cursor: pointer;
  border: 1px solid rgba(16, 16, 16, 0.25);
  background: transparent;
  color: var(--text-muted);
}

.grades-note-row__btn:hover {
  color: #111;
  border-color: rgba(16, 16, 16, 0.5);
}

.grades-note-row__btn--del:hover {
  color: var(--cream-paper);
  background: var(--cherry-dark);
  border-color: var(--cherry-dark);
}

.grades-note-row__edit {
  padding: 0.85rem 0.9rem 1rem;
  border-top: 1px solid rgba(16, 16, 16, 0.08);
  background: rgba(239, 184, 153, 0.12);
}

.grades-note-row__edit[hidden] {
  display: none !important;
}

.grades-note-row__edit-row {
  display: flex;
  flex-wrap: wrap;
  align-items: flex-end;
  gap: 0.65rem 0.85rem;
}

.grades-note-row__edit-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 0.45rem;
  margin-top: 0.75rem;
}

.grades-note-row__save {
  font-family: var(--font-ui);
  font-size: 0.68rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  color: var(--cream);
  background: var(--cherry);
  border: none;
  border-radius: 999px;
  padding: 0.5rem 1rem;
  cursor: pointer;
}

.grades-note-row__save:hover {
  background: var(--cherry-dark);
}

.grades-note-row__cancel {
  font-family: var(--font-ui);
  font-size: 0.68rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  color: var(--text-muted);
  background: transparent;
  border: 1px solid rgba(16, 16, 16, 0.22);
  border-radius: 999px;
  padding: 0.5rem 0.85rem;
  cursor: pointer;
}

.grades-evolution__legend-item {
  display: inline-flex;
  align-items: center;
  gap: 0.45rem;
  font-family: var(--font-condensed);
  font-size: 0.69rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.12em;
  color: #4f4f4f;
  opacity: 1;
}

.grades-evolution__legend-swatch {
  width: 0.62rem;
  height: 0.62rem;
  border-radius: 999px;
  flex-shrink: 0;
}

.grades-evolution__form {
  margin-top: 0;
}

.grades-evolution__form-row {
  display: flex;
  flex-wrap: wrap;
  align-items: flex-end;
  gap: 0.75rem 1rem;
}

.grades-evolution__field {
  display: flex;
  flex-direction: column;
  gap: 0.35rem;
  min-width: 0;
}

.grades-evolution__label {
  font-family: var(--font-condensed);
  font-size: 0.62rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.16em;
  color: #4b4b4b;
}

.grades-evolution__select,
.grades-evolution__input {
  font-family: "Manrope", "Archivo Narrow", system-ui, sans-serif;
  font-size: 0.96rem;
  font-weight: 600;
  color: #131313;
  background: #fff;
  border: 1px solid rgba(16, 16, 16, 0.2);
  border-radius: 12px;
  padding: 0.55rem 0.65rem;
  min-height: 2.45rem;
}

.grades-evolution__select {
  font-family: "Fraunces", Georgia, "Times New Roman", serif;
  font-size: 1.06rem;
  font-weight: 600;
  letter-spacing: -0.01em;
}

.grades-evolution__select option {
  font-family: "Fraunces", Georgia, "Times New Roman", serif;
  font-size: 1rem;
}

.grades-evolution__select:focus,
.grades-evolution__input:focus {
  outline: none;
  border-color: rgba(16, 16, 16, 0.45);
  box-shadow: 0 0 0 3px rgba(239, 184, 153, 0.2);
}

.grades-evolution__input--narrow {
  width: 5.5rem;
}

.grades-evolution__submit {
  font-family: var(--font-ui);
  font-size: 0.72rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.16em;
  color: #fff;
  background: #111;
  border: 1px solid #111;
  border-radius: 999px;
  padding: 0.65rem 1.25rem;
  cursor: pointer;
  transition:
    background 0.15s ease,
    transform 0.15s ease;
}

.grades-evolution__submit:hover {
  background: var(--cherry-dark);
  border-color: var(--cherry-dark);
}

.grades-evolution__submit:active {
  transform: scale(0.98);
}

@media (max-width: 520px) {
  .grades-evolution__submit {
    width: 100%;
  }
}

/* ——— Veille juridique (liens centralisés) ——— */
.documents-section {
  margin-top: 1.75rem;
}

.documents-section__intro {
  margin: 0 0 1.25rem;
  font-family: var(--font-ui);
  font-size: 0.95rem;
  line-height: 1.55;
  color: var(--text-muted);
  max-width: 40rem;
}

.documents-add {
  margin-bottom: 1.75rem;
  padding: 1.25rem 1.35rem;
  border-radius: 22px;
  background: var(--cream-deep);
  border: 1px solid rgba(16, 16, 16, 0.12);
}

.documents-add__title {
  margin: 0 0 0.85rem;
  font-family: var(--font-editorial);
  font-size: 1.15rem;
  font-weight: 700;
  color: var(--cherry);
}

.documents-add__grid {
  display: grid;
  gap: 0.85rem 1rem;
  grid-template-columns: 1fr;
}

@media (min-width: 640px) {
  .documents-add__grid {
    grid-template-columns: 1fr 1fr;
  }
}

.documents-add__field {
  display: flex;
  flex-direction: column;
  gap: 0.35rem;
}

.documents-add__field--wide {
  grid-column: 1 / -1;
}

.documents-add__source {
  margin: 0;
  border: 1px solid rgba(16, 16, 16, 0.18);
  border-radius: 14px;
  padding: 0.8rem;
  background: rgba(255, 255, 255, 0.48);
}

.documents-add__source-option {
  display: inline-flex;
  align-items: center;
  gap: 0.45rem;
  margin-right: 1rem;
  font-family: var(--font-ui);
  font-size: 0.88rem;
  color: var(--text-on-cream);
}

.documents-add__label {
  font-family: var(--font-ui);
  font-size: 0.65rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.14em;
  color: var(--text-muted);
}

.documents-add__label-hint {
  font-weight: 500;
  text-transform: none;
  letter-spacing: 0.02em;
  color: var(--text-muted);
  opacity: 0.75;
  margin-left: 0.3rem;
  font-size: 0.7em;
}

.documents-add__input,
.documents-add__textarea {
  font-family: var(--font-ui);
  font-size: 0.95rem;
  font-weight: 600;
  color: var(--text-on-cream);
  background: var(--cream-paper);
  border: 1.5px solid rgba(16, 16, 16, 0.22);
  border-radius: 12px;
  padding: 0.55rem 0.65rem;
}

.documents-add__textarea {
  min-height: 4.5rem;
  resize: vertical;
}

.documents-add__input:focus,
.documents-add__textarea:focus {
  outline: none;
  border-color: var(--cherry);
  box-shadow: 0 0 0 3px rgba(16, 16, 16, 0.1);
}

.documents-add__actions {
  display: flex;
  flex-wrap: wrap;
  gap: 0.65rem;
  align-items: center;
}

.documents-add__submit {
  font-family: var(--font-ui);
  font-size: 0.72rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.14em;
  color: var(--cream);
  background: var(--cherry);
  border: none;
  border-radius: 999px;
  padding: 0.6rem 1.2rem;
  cursor: pointer;
}

.documents-add__submit:hover {
  background: var(--cherry-dark);
}

.documents-add__submit--ghost {
  background: transparent;
  color: var(--text-muted);
  border: 1px solid rgba(16, 16, 16, 0.25);
}

.documents-add__submit--ghost:hover {
  color: var(--cherry);
  border-color: var(--cherry);
  background: rgba(16, 16, 16, 0.04);
}

.documents-filter {
  margin: 0 0 1.15rem;
  padding: 0.95rem 1rem;
  border-radius: 14px;
  border: 1px solid rgba(16, 16, 16, 0.14);
  background: rgba(255, 255, 255, 0.55);
}

.documents-filter__heading {
  margin-bottom: 0.55rem;
}

.documents-filter__mode {
  display: flex;
  flex-wrap: wrap;
  gap: 0.65rem 0.95rem;
}

.documents-filter__mode-option {
  display: inline-flex;
  align-items: center;
  gap: 0.45rem;
  font-family: var(--font-ui);
  font-size: 0.88rem;
  color: var(--text-on-cream);
}

.documents-filter__subjects {
  margin-top: 0.8rem;
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
}

.documents-filter__chip {
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
  padding: 0.35rem 0.65rem;
  border-radius: 999px;
  border: 1px solid rgba(16, 16, 16, 0.2);
  background: var(--cream-paper);
  font-family: var(--font-ui);
  font-size: 0.8rem;
  color: var(--text-on-cream);
}

.documents-list {
  margin: 0;
  padding: 0;
  list-style: none;
  display: flex;
  flex-direction: column;
  gap: 0.75rem;
}

/* ——— Veille juridique : fil type appli presse (onglets + liste plate) ——— */
.page-shell--veille .documents-section {
  max-width: 26.5rem;
  margin-left: auto;
  margin-right: auto;
}

.veille-page-head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 0.65rem;
}

.veille-page-head__actions {
  display: inline-flex;
  flex-wrap: wrap;
  justify-content: flex-end;
  gap: 0.45rem;
}

.veille-page-head .page-shell__title {
  margin-bottom: 0.35rem;
}

.veille-propose-btn {
  margin-top: 0.2rem;
  flex: 0 0 auto;
  font-family: var(--font-ui);
  font-size: 0.66rem;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  color: var(--cream);
  background: var(--cherry);
  border: none;
  border-radius: 999px;
  padding: 0.52rem 0.78rem;
  cursor: pointer;
}

.veille-propose-btn:hover {
  background: var(--cherry-dark);
}

.veille-propose-btn--ghost {
  color: var(--cherry);
  background: rgba(255, 255, 255, 0.9);
  border: 1px solid rgba(16, 16, 16, 0.28);
}

.veille-propose-btn--ghost:hover {
  background: rgba(255, 255, 255, 1);
  border-color: var(--cherry);
}

.veille-propose-btn--ghost.is-active {
  color: var(--cream);
  background: var(--cherry);
  border-color: var(--cherry);
}

.veille-proposal-dialog {
  width: min(38rem, calc(100vw - 1.5rem));
  border: none;
  border-radius: 16px;
  padding: 0;
  background: transparent;
}

.veille-proposal-dialog::backdrop {
  background: rgba(20, 12, 12, 0.44);
  backdrop-filter: blur(2px);
}

.veille-proposal-dialog__inner {
  background: linear-gradient(180deg, #f8f2ea 0%, #f5efe6 100%);
  border: 1px solid rgba(16, 16, 16, 0.12);
  border-radius: 18px;
  overflow: hidden;
  box-shadow: 0 22px 46px rgba(30, 16, 16, 0.26);
}

.veille-proposal-dialog__head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 0.82rem 1rem;
  border-bottom: 1px solid rgba(16, 16, 16, 0.14);
  background: #efe5d6;
}

.veille-proposal-dialog__title {
  margin: 0;
  font-family: var(--font-editorial);
  font-size: 1.02rem;
  font-weight: 700;
  color: var(--cherry);
}

.veille-proposal-dialog__intro {
  margin: 0;
  padding: 0.78rem 1rem 0.2rem;
  font-family: var(--font-ui);
  font-size: 0.92rem;
  line-height: 1.45;
  color: #2c2323;
}

.veille-proposal-dialog__signature {
  margin: 0;
  padding: 0.35rem 1rem 0.15rem;
  font-family: var(--font-ui);
  font-size: 0.86rem;
  line-height: 1.45;
  color: #2c2323;
}

.veille-proposal-dialog__signature-prefix {
  margin-right: 0.25rem;
}

.veille-proposal-dialog__signature-strong {
  color: var(--cherry);
  font-weight: 800;
}

.veille-proposal-dialog__signature-missing {
  margin: 0;
  padding: 0.35rem 1rem 0.15rem;
  font-family: var(--font-ui);
  font-size: 0.84rem;
  line-height: 1.4;
  color: var(--text-muted);
}

.veille-proposal-dialog__signature-link {
  color: var(--cherry);
  font-weight: 700;
}

.veille-proposal-dialog__close {
  border: none;
  background: transparent;
  color: var(--text-muted);
  font-size: 1.45rem;
  line-height: 1;
  cursor: pointer;
}

.veille-proposal-dialog .documents-add {
  margin: 0;
  border: none;
  border-radius: 0;
  box-shadow: none;
  background: transparent;
  padding-top: 0.75rem;
}

.veille-proposal-dialog .documents-add__title {
  margin-bottom: 0.75rem;
}

.veille-proposal-dialog .documents-add__input,
.veille-proposal-dialog .documents-add__textarea {
  background: #fbf7f1;
  border-color: rgba(16, 16, 16, 0.19);
}

.veille-proposal-feedback {
  margin: 0.4rem 0 0;
  font-family: var(--font-ui);
  font-size: 0.84rem;
  line-height: 1.35;
  color: var(--cherry-dark);
}

#veille-submit-notice {
  margin: 0.6rem 0 0.9rem;
  padding: 0.65rem 0.8rem;
  border-radius: 0.65rem;
  border: 1px solid rgba(15, 103, 63, 0.35);
  background: #e9f8ef;
  color: #145434;
  font-size: 0.92rem;
  font-weight: 700;
  line-height: 1.45;
  box-shadow: 0 6px 16px rgba(20, 84, 52, 0.08);
}

.veille-preview {
  margin-top: 0.75rem;
}

.veille-preview__title {
  margin: 0 0 0.45rem;
  font-family: var(--font-ui);
  font-size: 0.72rem;
  font-weight: 800;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--text-muted);
}

#veille-proposal-preview-card.document-card--veille-feed {
  list-style: none;
}

.veille-filter-strip {
  margin: 0 0 0.35rem;
  padding: 0;
}

.veille-filter-strip__label {
  margin: 0 0 0.35rem;
  font-family: var(--font-ui);
  font-size: 0.68rem;
  font-weight: 700;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--text-muted);
}

.veille-tabs {
  display: flex;
  flex-wrap: nowrap;
  gap: 0;
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
  scrollbar-width: none;
  border-bottom: 1px solid #d9d9d9;
  margin: 0 -0.25rem 0.75rem;
  padding: 0 0.25rem;
}

.veille-tabs::-webkit-scrollbar {
  display: none;
}

.veille-tab {
  flex: 0 0 auto;
  margin: 0;
  padding: 0.55rem 0.75rem 0.65rem;
  font-family: var(--font-ui);
  font-size: 0.82rem;
  font-weight: 600;
  color: #333;
  background: transparent;
  border: none;
  border-bottom: 3px solid transparent;
  cursor: pointer;
  white-space: nowrap;
}

.veille-tab:hover {
  color: #111;
}

.veille-tab--current {
  color: var(--cherry-dark);
  border-bottom-color: var(--cherry-dark);
  font-weight: 800;
}

.documents-section__intro--veille-feed {
  margin-top: 0.5rem;
}

.documents-list--veille-feed {
  gap: 0;
  background: #fff;
  border: 1px solid #ddd;
  border-radius: 0;
}

.document-card--veille-feed {
  padding: 0.85rem 0.9rem 0.75rem;
  border-radius: 0;
  background: #fff;
  border: none;
  border-bottom: 1px solid #e6e6e6;
  box-shadow: none;
}

.document-card--veille-feed:last-child {
  border-bottom: none;
}

.document-card--veille-feed .document-card__row {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: 0.65rem;
  align-items: start;
}

.document-card--veille-feed .document-card__title-row {
  display: flex;
  align-items: flex-start;
  gap: 0.35rem;
  min-width: 0;
}

.document-card--veille-feed .document-card__title-link {
  flex: 1 1 auto;
  min-width: 0;
  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
  font-size: 0.94rem;
  line-height: 1.28;
  font-weight: 400;
  color: #1a1a1a;
  text-decoration: none;
}

.document-card--veille-feed .document-card__category {
  font-weight: 800;
  color: var(--cherry-dark);
}

.document-card--veille-feed .document-card__title-text {
  font-weight: 400;
  color: #1a1a1a;
}

.document-card--veille-feed .document-card__decision {
  margin: 0.28rem 0 0;
  font-size: 0.72rem;
  line-height: 1.35;
  font-weight: 400;
  color: #666;
}

.document-card--veille-feed .document-card__image {
  width: 100%;
  height: 5.1rem;
  object-fit: cover;
  border-radius: 2px;
  border: 1px solid #ddd;
}

.document-card__image--veille-photo {
  filter: saturate(1.22) contrast(1.08) brightness(1.03);
}

.document-card__thumb-link {
  display: block;
  line-height: 0;
  border-radius: 2px;
  overflow: hidden;
  align-self: start;
}

.document-card__thumb-link:focus-visible {
  outline: 2px solid var(--cherry);
  outline-offset: 2px;
}

.document-card__thumb-link--static {
  pointer-events: none;
  cursor: default;
}

.document-card__title-link--static {
  cursor: default;
  text-decoration: none;
}

.page-shell--veille-article {
  max-width: 38rem;
  margin-left: auto;
  margin-right: auto;
}

.veille-article__back {
  margin: 0 0 1rem;
  font-family: var(--font-ui);
  font-size: 0.88rem;
}

.veille-article__back a {
  color: var(--cherry);
  font-weight: 700;
  text-decoration: none;
}

.veille-article__back a:hover {
  text-decoration: underline;
}

.veille-article__cover {
  display: block;
  width: 100%;
  max-height: 17rem;
  object-fit: cover;
  border-radius: 16px;
  border: 1px solid rgba(16, 16, 16, 0.14);
  box-shadow: 0 14px 36px rgba(30, 16, 16, 0.18);
  margin-bottom: 1.1rem;
  filter: saturate(1.18) contrast(1.06) brightness(1.02);
}

.veille-article__title {
  margin-bottom: 0.35rem;
}

.veille-article__meta {
  margin: 0 0 0.75rem;
  font-family: var(--font-ui);
  font-size: 0.82rem;
  color: var(--text-muted);
}

.veille-article__decision {
  margin: 0 0 1rem;
  font-family: var(--font-ui);
  font-size: 0.9rem;
  line-height: 1.45;
  color: var(--text-on-cream);
}

.veille-article__section-title {
  margin: 1.25rem 0 0.45rem;
  font-family: var(--font-editorial);
  font-size: 1.05rem;
  font-weight: 700;
  color: var(--cherry);
}

.veille-article__summary {
  margin: 0;
  padding: 0.85rem 1rem;
  border-radius: 14px;
  background: var(--cream-paper);
  border: 1px solid rgba(16, 16, 16, 0.12);
  font-family: var(--font-ui);
  font-size: 0.95rem;
  line-height: 1.55;
  color: var(--text-on-cream);
  white-space: pre-wrap;
}

.veille-article__sources {
  margin: 0;
  padding: 0.65rem 0.85rem;
  border-radius: 12px;
  background: rgba(255, 255, 255, 0.55);
  border: 1px dashed rgba(16, 16, 16, 0.22);
  word-break: break-all;
}

.veille-article__sources a {
  font-family: var(--font-ui);
  font-size: 0.82rem;
  font-weight: 600;
  color: var(--cherry);
}

.veille-article__toolbar {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.65rem;
  margin: 1.15rem 0 0.25rem;
}

.veille-article__like {
  min-height: 2.25rem;
}

.veille-article__save {
  min-height: 2.25rem;
}

.veille-article__report-btn {
  font-family: var(--font-ui);
  font-size: 0.72rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  color: var(--text-muted);
  background: transparent;
  border: 1px solid rgba(16, 16, 16, 0.28);
  border-radius: 999px;
  padding: 0.45rem 0.85rem;
  cursor: pointer;
}

.veille-article__report-btn:hover {
  color: var(--cherry);
  border-color: var(--cherry);
}

.veille-article__comments-empty,
.veille-article__hint {
  margin: 0.5rem 0 0;
  font-family: var(--font-ui);
  font-size: 0.86rem;
  color: var(--text-muted);
}

.veille-article__comments {
  margin: 0.5rem 0 0;
  padding: 0;
  list-style: none;
}

.veille-article__comment {
  margin: 0 0 0.65rem;
  padding: 0.65rem 0.75rem;
  border-radius: 12px;
  border: 1px solid rgba(16, 16, 16, 0.12);
  background: #fff;
}

.veille-article__comment-who {
  margin: 0 0 0.35rem;
  font-family: var(--font-ui);
  font-size: 0.72rem;
  font-weight: 700;
  color: var(--text-muted);
}

.veille-article__comment-text {
  margin: 0;
  font-family: var(--font-ui);
  font-size: 0.9rem;
  line-height: 1.45;
  color: var(--text-on-cream);
}

.veille-article__comment-votes {
  display: flex;
  align-items: center;
  gap: 0.4rem;
  margin-top: 0.45rem;
  flex-wrap: wrap;
}

.veille-article__comment-vote {
  display: inline-flex;
  align-items: center;
  gap: 0.22rem;
  padding: 0.12rem 0.32rem;
  border-radius: 999px;
  border: 1px solid rgba(16, 16, 16, 0.15);
  background: rgba(255, 255, 255, 0.85);
  color: var(--text-muted);
  cursor: pointer;
  line-height: 1;
  font-family: var(--font-ui);
  font-size: 0.68rem;
  font-weight: 700;
}

.veille-article__comment-vote:hover {
  color: var(--text-on-cream);
  border-color: rgba(16, 16, 16, 0.28);
}

.veille-article__comment-vote--on {
  color: var(--cherry);
  border-color: rgba(195, 21, 29, 0.45);
  background: rgba(195, 21, 29, 0.08);
}

.veille-article__comment-vote-icon {
  font-size: 0.75rem;
  line-height: 1;
}

.veille-article__comment-vote-count {
  min-width: 1ch;
  font-variant-numeric: tabular-nums;
}

.veille-article__comment-form {
  margin-top: 0.75rem;
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
}

.veille-article__comment-input {
  min-height: 5rem;
  resize: vertical;
  border-radius: 12px;
  border: 1.5px solid rgba(16, 16, 16, 0.22);
  padding: 0.55rem 0.65rem;
  font-family: var(--font-ui);
  font-size: 0.92rem;
}

.veille-article__comment-enter-hint {
  margin: 0;
  font-family: var(--font-ui);
  font-size: 0.72rem;
  color: var(--text-muted);
}

.veille-article__comment-submit {
  align-self: flex-start;
  font-family: var(--font-ui);
  font-size: 0.72rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  color: var(--cream);
  background: var(--cherry);
  border: none;
  border-radius: 999px;
  padding: 0.55rem 1rem;
  cursor: pointer;
}

.veille-article__proposer {
  margin-top: 1.75rem;
  padding-top: 1rem;
  border-top: 1px solid rgba(16, 16, 16, 0.15);
  font-family: var(--font-ui);
  font-size: 0.88rem;
  color: var(--text-muted);
}

.veille-article__proposer-label {
  font-weight: 700;
  color: var(--text-on-cream);
}

.veille-article__proposer-name {
  color: var(--cherry);
  font-weight: 800;
}

.veille-article__empty {
  margin: 0 0 0.75rem;
  font-family: var(--font-ui);
  font-size: 0.95rem;
  color: var(--text-on-cream);
}

.veille-article-dialog {
  width: min(28rem, calc(100vw - 1.5rem));
  border: none;
  border-radius: 14px;
  padding: 0;
}

.veille-article-dialog::backdrop {
  background: rgba(20, 12, 12, 0.44);
  backdrop-filter: blur(2px);
}

.veille-article-dialog__inner {
  padding: 1rem 1.1rem 1.1rem;
  background: #fff;
  border: 1px solid rgba(16, 16, 16, 0.14);
  border-radius: 14px;
}

.veille-article-dialog__title {
  margin: 0 0 0.35rem;
  font-family: var(--font-editorial);
  font-size: 1.05rem;
  font-weight: 700;
  color: var(--cherry);
}

.veille-article-dialog__hint {
  margin: 0 0 0.55rem;
  font-family: var(--font-ui);
  font-size: 0.84rem;
  color: var(--text-muted);
  line-height: 1.4;
}

.veille-article-dialog__textarea {
  width: 100%;
  box-sizing: border-box;
  border-radius: 10px;
  border: 1.5px solid rgba(16, 16, 16, 0.2);
  padding: 0.5rem 0.6rem;
  font-family: var(--font-ui);
  font-size: 0.9rem;
  min-height: 5.5rem;
}

.veille-article-dialog__actions {
  margin-top: 0.65rem;
  display: flex;
  justify-content: flex-end;
  gap: 0.5rem;
}

.veille-article-dialog__btn {
  font-family: var(--font-ui);
  font-size: 0.72rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  border-radius: 999px;
  padding: 0.45rem 0.9rem;
  cursor: pointer;
  border: none;
}

.veille-article-dialog__btn--ghost {
  background: transparent;
  color: var(--text-muted);
  border: 1px solid rgba(16, 16, 16, 0.25);
}

.veille-article-dialog__btn--primary {
  background: var(--cherry);
  color: var(--cream);
}

.document-card__meta-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.5rem;
  margin-top: 0.55rem;
  padding-top: 0.15rem;
}

.document-card__date-line {
  margin: 0;
  flex: 1 1 auto;
  min-width: 0;
  font-family: var(--font-ui);
  font-size: 0.76rem;
  color: #888;
}

.document-card__meta-actions {
  display: flex;
  align-items: center;
  gap: 0.45rem;
  flex-shrink: 0;
}

.document-card__like {
  display: inline-flex;
  align-items: center;
  gap: 0.28rem;
  justify-content: center;
  padding: 0.14rem 0.34rem;
  border-radius: 999px;
  border: 1px solid #d2d2d2;
  background: transparent;
  color: #666;
  cursor: pointer;
  line-height: 1;
  font-family: var(--font-ui);
  font-size: 0.73rem;
  font-weight: 700;
}

.document-card__like:hover {
  color: #333;
  border-color: #a8a8a8;
}

.document-card__like--on {
  color: var(--cherry-dark);
  border-color: rgba(221, 159, 123, 0.55);
  background: rgba(239, 184, 153, 0.16);
}

.document-card__like-icon {
  font-size: 0.79rem;
  line-height: 1;
}

.document-card__like-count {
  min-width: 1ch;
}

.document-card__comments {
  display: inline-flex;
  align-items: center;
  gap: 0.28rem;
  justify-content: center;
  min-height: 1.6rem;
  padding: 0.16rem 0.38rem;
  border-radius: 999px;
  border: 1px solid rgba(221, 159, 123, 0.28);
  background: #fdf3ea;
  color: #6f5a56;
  text-decoration: none;
  font-family: var(--font-ui);
  font-size: 0.73rem;
  font-weight: 700;
}

.document-card__comments:hover {
  color: var(--cherry-dark);
  border-color: rgba(221, 159, 123, 0.5);
  background: #fbe9d8;
}

.document-card__comments-icon {
  font-size: 0.79rem;
  line-height: 1;
}

.document-card__comments-count {
  min-width: 1ch;
}

.document-card__save {
  display: inline-flex;
  align-items: center;
  gap: 0.28rem;
  justify-content: center;
  padding: 0.14rem 0.52rem;
  border-radius: 999px;
  border: 1px solid #d2d2d2;
  background: transparent;
  color: #666;
  cursor: pointer;
  line-height: 1;
  font-family: var(--font-ui);
  font-size: 0.71rem;
  font-weight: 700;
}

.document-card__save:hover {
  color: #333;
  border-color: #a8a8a8;
}

.document-card__save--on {
  color: var(--cherry-dark);
  border-color: rgba(221, 159, 123, 0.55);
  background: rgba(239, 184, 153, 0.16);
}

.document-card__save-icon {
  font-size: 0.78rem;
  line-height: 1;
}

.document-card__report {
  font-family: var(--font-ui);
  font-size: 0.64rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  padding: 0.2rem 0.45rem;
  border: 1px solid rgba(221, 159, 123, 0.32);
  border-radius: 999px;
  background: transparent;
  color: #777;
  cursor: pointer;
}

.document-card__report:hover {
  color: var(--cherry);
  border-color: var(--cherry);
}

.document-card__remove--inline {
  font-size: 0.65rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  padding: 0.2rem 0.45rem;
  border: none;
  border-radius: 0;
  background: transparent;
  color: #999;
  cursor: pointer;
  text-decoration: underline;
  text-underline-offset: 0.12em;
}

.document-card__remove--inline:hover {
  color: var(--cherry-dark);
}

.veille-feed-badge {
  flex: 0 0 auto;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 1.35rem;
  height: 1.35rem;
  margin-top: 0.1rem;
  font-family: var(--font-ui);
  font-size: 0.52rem;
  font-weight: 900;
  letter-spacing: -0.02em;
  color: #1a1a1a;
  background: #ffd400;
  line-height: 1;
}

.documents-empty {
  margin: 0;
  padding: 1rem 1.1rem;
  border-radius: 16px;
  background: rgba(239, 184, 153, 0.08);
  border: 1px dashed rgba(221, 159, 123, 0.28);
  font-family: var(--font-ui);
  font-size: 0.92rem;
  line-height: 1.45;
  color: var(--text-muted);
}

.document-card {
  padding: 0.95rem 0.95rem 0.9rem;
  border-radius: 14px;
  background: #ffffff;
  border: 1px solid rgba(34, 34, 34, 0.14);
  box-shadow: 0 4px 12px rgba(25, 16, 16, 0.05);
}

.document-card__row {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 118px;
  gap: 0.7rem;
  align-items: start;
}

@media (max-width: 520px) {
  .document-card__row {
    grid-template-columns: minmax(0, 1fr) 104px;
    gap: 0.55rem;
  }
}

.document-card__image {
  width: 100%;
  height: 86px;
  object-fit: cover;
  border-radius: 2px;
  border: 1px solid rgba(34, 34, 34, 0.12);
}

.document-card__text-col {
  min-width: 0;
}

.document-card__title-link {
  font-family: var(--font-editorial);
  font-size: 1.01rem;
  font-weight: 700;
  color: #222;
  text-decoration: none;
  line-height: 1.23;
}

.document-card__title-link:hover {
  text-decoration: underline;
  text-underline-offset: 0.12em;
}

.document-card__category {
  color: var(--cherry-dark);
}

.document-card__title-text {
  color: #222;
}

.document-card__head {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 0.5rem 0.75rem;
}

.document-card__remove {
  font-family: var(--font-ui);
  font-size: 0.67rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  color: var(--text-muted);
  background: transparent;
  border: 1px solid rgba(16, 16, 16, 0.25);
  border-radius: 999px;
  padding: 0.4rem 0.75rem;
  cursor: pointer;
}

.document-card__remove:hover {
  color: var(--cherry);
  border-color: var(--cherry);
}

.document-card__decision {
  margin: 0.32rem 0 0;
  font-family: var(--font-ui);
  font-size: 0.79rem;
  font-weight: 500;
  color: #3d3d3d;
  line-height: 1.33;
}

.document-card__date {
  margin: 0.46rem 0 0;
  font-family: var(--font-ui);
  font-size: 0.77rem;
  color: #666;
}

.document-card__url {
  display: inline-block;
  margin: 0;
  font-family: var(--font-ui);
  font-size: 0.76rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  text-decoration: none;
  color: var(--text-muted);
}

.document-card__note {
  margin: 0.58rem 0 0;
  font-family: var(--font-ui);
  font-size: 0.83rem;
  line-height: 1.4;
  color: #2e2e2e;
}

.document-card__source {
  margin: 0.52rem 0 0;
  font-family: var(--font-ui);
  font-size: 0.73rem;
  font-weight: 700;
  color: var(--cherry);
}

.document-card__actions {
  margin-top: 0.62rem;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.65rem;
}

/* ——— Forum (salles locales par fil) ——— */
.forum-charter {
  margin-top: 1.75rem;
  padding: 1.25rem 1.35rem 1.35rem;
  border-radius: 22px;
  background: linear-gradient(145deg, rgba(255, 255, 255, 0.65) 0%, rgba(247, 241, 235, 0.95) 100%);
  border: 1px solid rgba(16, 16, 16, 0.14);
  box-shadow: 0 8px 24px rgba(42, 24, 24, 0.05);
}

.forum-charter__title {
  margin: 0 0 0.75rem;
  font-family: var(--font-editorial);
  font-size: 1.2rem;
  font-weight: 700;
  color: var(--cherry);
  letter-spacing: -0.01em;
}

.forum-charter__body {
  margin: 0;
  font-family: var(--font-ui);
  font-size: 0.95rem;
  line-height: 1.6;
  color: var(--text-on-cream);
}

.forum-charter__body p {
  margin: 0 0 0.65rem;
}

.forum-charter__body p:last-child {
  margin-bottom: 0;
}

.forum-charter__section {
  margin: 0 0 1rem;
}

.forum-charter__section:last-of-type {
  margin-bottom: 0;
}

.forum-charter__heading {
  margin: 0 0 0.45rem;
  font-family: var(--font-ui);
  font-size: 0.82rem;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  color: var(--cherry);
}

.forum-charter__list {
  margin: 0.35rem 0 0;
  padding-left: 1.15rem;
  font-size: 0.92rem;
  line-height: 1.55;
}

.forum-charter__list li {
  margin-bottom: 0.4rem;
}

.forum-charter__list li:last-child {
  margin-bottom: 0;
}

.forum-charter__actions {
  margin-top: 1.25rem;
  padding-top: 1.1rem;
  border-top: 1px solid rgba(16, 16, 16, 0.12);
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 0.85rem 1rem;
}

.forum-charter__remember {
  display: inline-flex;
  align-items: center;
  gap: 0.45rem;
  font-family: var(--font-ui);
  font-size: 0.88rem;
  font-weight: 600;
  color: var(--text-on-cream);
  cursor: pointer;
}

.forum-charter__remember input {
  width: 1rem;
  height: 1rem;
  accent-color: var(--cherry);
}

.forum-charter__accept {
  font-family: var(--font-ui);
  font-size: 0.72rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.12em;
  color: var(--cream-paper);
  background: var(--cherry);
  border: none;
  border-radius: 999px;
  padding: 0.65rem 1.35rem;
  cursor: pointer;
  transition: background 0.15s ease;
}

.forum-charter__accept:hover {
  background: var(--cherry-dark);
}

.forum-section {
  margin-top: 2rem;
}

.forum-section--salon {
  position: relative;
  text-align: center;
  margin-top: 2.25rem;
  padding: 2rem 1.35rem 2.35rem;
  border-radius: 28px;
  background:
    linear-gradient(165deg, rgba(255, 255, 255, 0.55) 0%, rgba(255, 248, 242, 0.92) 38%, rgba(241, 228, 218, 0.88) 100%);
  border: 1px solid rgba(16, 16, 16, 0.14);
  box-shadow:
    inset 0 1px 0 rgba(255, 255, 255, 0.85),
    0 10px 36px rgba(74, 21, 24, 0.07),
    0 1px 0 rgba(255, 255, 255, 0.5);
  overflow: hidden;
}

.forum-section--salon::before {
  content: "";
  position: absolute;
  inset: -40% -20% auto -20%;
  height: 70%;
  background: radial-gradient(ellipse 70% 55% at 50% 0%, rgba(16, 16, 16, 0.09), transparent 65%);
  pointer-events: none;
}

.forum-section--salon > * {
  position: relative;
  z-index: 1;
}

.forum-section__heading {
  margin: 0 0 0.4rem;
  font-family: var(--font-ui);
  font-size: 0.72rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.16em;
  color: var(--text-muted);
}

.forum-section__heading--salon {
  margin: 0 0 1.35rem;
  font-family: var(--font-editorial);
  font-size: clamp(1.55rem, 4.2vw, 2rem);
  font-weight: 800;
  text-transform: none;
  letter-spacing: -0.035em;
  line-height: 1.12;
  color: var(--cherry);
  text-shadow:
    0 1px 0 rgba(255, 255, 255, 0.55),
    0 2px 0 rgba(16, 16, 16, 0.08),
    0 6px 28px rgba(16, 16, 16, 0.2),
    0 12px 40px rgba(74, 21, 24, 0.1);
}

.forum-salon-toolbar {
  margin: 0 auto 1.5rem;
  max-width: 52rem;
  text-align: left;
}

.forum-salon-toolbar__intro {
  margin: 0 0 1rem;
  font-family: var(--font-ui);
  font-size: 0.88rem;
  line-height: 1.55;
  color: var(--text-muted);
}

.forum-salon-toolbar__intro code {
  font-size: 0.82em;
  padding: 0.1em 0.35em;
  border-radius: 6px;
  background: rgba(16, 16, 16, 0.06);
}

.forum-salon-filters {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem 0.65rem;
  margin-bottom: 1rem;
}

.forum-salon-filter {
  display: inline-flex;
  align-items: center;
  gap: 0.45rem;
  padding: 0.42rem 0.75rem 0.42rem 0.55rem;
  border-radius: 999px;
  border: 1px solid rgba(16, 16, 16, 0.18);
  background: rgba(255, 255, 255, 0.65);
  cursor: pointer;
  font-family: var(--font-ui);
  font-size: 0.78rem;
  font-weight: 600;
  color: var(--text-body);
  transition:
    border-color 0.15s ease,
    background 0.15s ease,
    box-shadow 0.15s ease;
}

.forum-salon-filter:hover {
  border-color: rgba(16, 16, 16, 0.32);
  box-shadow: 0 2px 10px rgba(74, 21, 24, 0.06);
}

.forum-salon-filter:focus-within {
  outline: 2px solid var(--cherry);
  outline-offset: 2px;
}

.forum-salon-filter input {
  width: 1rem;
  height: 1rem;
  accent-color: var(--cherry);
  flex-shrink: 0;
}

.forum-salon-filter__text {
  line-height: 1.2;
}

.forum-salon-toolbar__actions {
  display: flex;
  flex-wrap: wrap;
  gap: 0.6rem;
  align-items: center;
}

.forum-salon-toolbar__save {
  font-family: var(--font-ui);
  font-size: 0.82rem;
  font-weight: 700;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: var(--cream-paper);
  background: var(--cherry);
  border: none;
  border-radius: 999px;
  padding: 0.55rem 1.1rem;
  cursor: pointer;
  transition: background 0.15s ease;
}

.forum-salon-toolbar__save:hover {
  background: var(--cherry-dark);
}

.forum-salon-toolbar__reset {
  font-family: var(--font-ui);
  font-size: 0.82rem;
  font-weight: 600;
  color: var(--cherry);
  background: transparent;
  border: 1px solid rgba(16, 16, 16, 0.35);
  border-radius: 999px;
  padding: 0.5rem 1rem;
  cursor: pointer;
  transition:
    border-color 0.15s ease,
    background 0.15s ease;
}

.forum-salon-toolbar__reset:hover {
  background: rgba(16, 16, 16, 0.06);
  border-color: rgba(16, 16, 16, 0.5);
}

.forum-salon-search {
  margin-top: 0.95rem;
  padding: 0.9rem 0.95rem;
  border-radius: 14px;
  border: 1px solid rgba(16, 16, 16, 0.14);
  background: rgba(255, 255, 255, 0.62);
}

.forum-salon-search__label {
  display: block;
  margin: 0 0 0.36rem;
  font-family: var(--font-ui);
  font-size: 0.8rem;
  font-weight: 700;
  letter-spacing: 0.02em;
  color: var(--cherry);
}

.forum-salon-search__input {
  width: 100%;
  border-radius: 10px;
  border: 1px solid rgba(16, 16, 16, 0.24);
  background: rgba(255, 255, 255, 0.95);
  padding: 0.56rem 0.68rem;
  font-family: var(--font-ui);
  font-size: 0.9rem;
  color: var(--text-body);
}

.forum-salon-search__input:focus {
  outline: 2px solid rgba(16, 16, 16, 0.25);
  border-color: var(--cherry);
}

.forum-salon-search__hint {
  margin: 0.5rem 0 0;
  font-family: var(--font-ui);
  font-size: 0.78rem;
  line-height: 1.45;
  color: var(--text-muted);
}

.forum-salon-search-results {
  margin-top: 0.65rem;
  display: grid;
  gap: 0.5rem;
  max-height: min(22rem, 52vh);
  overflow-y: auto;
  padding-right: 0.2rem;
  scrollbar-gutter: stable;
}

.forum-salon-search-results__summary {
  margin: 0 0 0.15rem;
}

.forum-salon-search-result {
  display: block;
  text-decoration: none;
  border: 1px solid rgba(16, 16, 16, 0.12);
  border-radius: 12px;
  background: rgba(255, 255, 255, 0.82);
  padding: 0.62rem 0.75rem;
  transition:
    border-color 0.15s ease,
    background 0.15s ease,
    box-shadow 0.15s ease;
}

.forum-salon-search-result:hover {
  border-color: rgba(16, 16, 16, 0.28);
  background: #fff;
}

.forum-salon-search-result:focus-visible {
  outline: 2px solid rgba(16, 16, 16, 0.45);
  outline-offset: 2px;
}

.forum-salon-search-result--selected {
  border-color: rgba(16, 16, 16, 0.42);
  background: #fff;
  box-shadow: 0 0 0 2px rgba(16, 16, 16, 0.1);
}

.forum-salon-search-result__room {
  display: block;
  font-family: var(--font-ui);
  font-size: 0.68rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  color: var(--cherry);
  margin-bottom: 0.12rem;
}

.forum-salon-search-result__excerpt {
  display: block;
  margin-top: 0.28rem;
  font-family: var(--font-ui);
  font-size: 0.82rem;
  line-height: 1.42;
  color: var(--text-on-cream);
}

.forum-salon-search-result__meta {
  display: block;
  margin-top: 0.08rem;
  font-family: var(--font-ui);
  font-size: 0.7rem;
  line-height: 1.35;
  color: var(--text-muted);
}

.forum-salon-search-result__mark {
  background: rgba(16, 16, 16, 0.14);
  color: inherit;
  border-radius: 4px;
  padding: 0 0.08rem;
}

.forum-salon-search-more {
  justify-self: start;
  border: 1px solid rgba(16, 16, 16, 0.2);
  background: #fff;
  color: var(--cherry);
  border-radius: 999px;
  padding: 0.42rem 0.85rem;
  font-family: var(--font-ui);
  font-size: 0.72rem;
  font-weight: 700;
  cursor: pointer;
  transition:
    border-color 0.15s ease,
    background 0.15s ease;
}

.forum-salon-search-more:hover {
  border-color: var(--cherry);
  background: rgba(16, 16, 16, 0.08);
}

.forum-salon-search-more:focus-visible {
  outline: 2px solid rgba(16, 16, 16, 0.35);
  outline-offset: 2px;
}

.forum-wa-row--target .forum-wa-bubble {
  box-shadow: 0 0 0 2px rgba(16, 16, 16, 0.22);
  animation: forumTargetPulse 1.5s ease;
}

@keyframes forumTargetPulse {
  0% {
    box-shadow: 0 0 0 0 rgba(16, 16, 16, 0.35);
  }
  100% {
    box-shadow: 0 0 0 2px rgba(16, 16, 16, 0.22);
  }
}

.forum-wa-actions {
  position: relative;
}

.forum-wa-actions__toggle {
  flex-shrink: 0;
  width: 1.65rem;
  height: 1.65rem;
  margin: 0;
  padding: 0;
  border: 1px solid rgba(16, 16, 16, 0.18);
  border-radius: 999px;
  font-family: var(--font-ui);
  font-size: 1rem;
  line-height: 1;
  font-weight: 700;
  letter-spacing: 0;
  color: rgba(16, 16, 16, 0.85);
  background: rgba(255, 255, 255, 0.95);
  cursor: pointer;
  transition:
    border-color 0.15s ease,
    background 0.15s ease,
    color 0.15s ease;
}

.forum-wa-actions__toggle:hover {
  border-color: var(--cherry);
  background: rgba(16, 16, 16, 0.08);
  color: var(--cherry);
}

.forum-wa-actions__toggle:focus-visible {
  outline: 2px solid rgba(16, 16, 16, 0.35);
  outline-offset: 2px;
}

.forum-wa-actions__menu {
  position: absolute;
  right: 0;
  bottom: calc(100% + 0.35rem);
  display: grid;
  gap: 0.2rem;
  width: max-content;
  max-width: min(13rem, 92vw);
  background: #fff;
  border: 1px solid rgba(16, 16, 16, 0.14);
  border-radius: 10px;
  padding: 0.3rem;
  min-width: 8.5rem;
  box-shadow: 0 10px 28px rgba(42, 24, 24, 0.1);
  z-index: 20;
}

/* `display:grid` gagne sur l’attribut `hidden` (même spécificité) : sans ceci le menu reste dans le flux, énorme. */
.forum-wa-actions__menu[hidden] {
  display: none !important;
}

.forum-wa-actions__item {
  border: none;
  background: rgba(16, 16, 16, 0.04);
  color: rgba(16, 16, 16, 0.92);
  border-radius: 7px;
  padding: 0.38rem 0.5rem;
  font-family: var(--font-ui);
  font-size: 0.7rem;
  font-weight: 700;
  text-align: left;
  cursor: pointer;
  transition: background 0.15s ease;
}

.forum-wa-actions__item:hover {
  background: rgba(16, 16, 16, 0.12);
}

.forum-wa-actions__item:focus-visible {
  outline: 2px solid rgba(16, 16, 16, 0.3);
  outline-offset: 1px;
}

.forum-section__intro {
  margin: 0 0 1.25rem;
  font-family: var(--font-ui);
  font-size: 0.92rem;
  line-height: 1.5;
  color: var(--text-muted);
  max-width: 38rem;
}

.forum-rooms {
  display: flex;
  flex-direction: column;
  gap: 0.65rem;
}

.forum-room {
  border-radius: 18px;
  background: var(--cream-paper);
  border: 1px solid rgba(16, 16, 16, 0.12);
  overflow: hidden;
  box-shadow: 0 4px 16px rgba(42, 24, 24, 0.04);
}

.forum-room[open] {
  border-color: rgba(16, 16, 16, 0.22);
  box-shadow: 0 8px 28px rgba(42, 24, 24, 0.07);
}

.forum-room__summary {
  list-style: none;
  cursor: pointer;
  padding: 1rem 1.15rem;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 0.25rem;
  font-family: var(--font-ui);
  transition: background 0.15s ease;
}

.forum-room__summary::-webkit-details-marker {
  display: none;
}

.forum-room__summary::after {
  content: "Ouvrir le fil";
  font-size: 0.62rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.14em;
  color: var(--cherry);
  margin-top: 0.35rem;
}

.forum-room[open] .forum-room__summary::after {
  content: "Fermer le fil";
}

.forum-room__summary:hover {
  background: rgba(16, 16, 16, 0.04);
}

.forum-room__name {
  font-family: var(--font-editorial);
  font-size: 1.15rem;
  font-weight: 700;
  color: var(--cherry);
  letter-spacing: -0.02em;
}

.forum-room__hint {
  font-size: 0.82rem;
  font-weight: 500;
  color: var(--text-muted);
  line-height: 1.35;
}

.forum-room__panel {
  padding: 0 1.15rem 1.15rem;
  border-top: 1px solid rgba(16, 16, 16, 0.08);
}

.forum-room__messages {
  margin: 0;
  padding: 0.85rem 0 0;
  list-style: none;
  display: flex;
  flex-direction: column;
  gap: 0.65rem;
  max-height: min(320px, 50vh);
  overflow-y: auto;
}

.forum-room__empty {
  margin: 0;
  padding: 0.75rem 0.85rem;
  border-radius: 12px;
  background: rgba(16, 16, 16, 0.04);
  border: 1px dashed rgba(16, 16, 16, 0.2);
  font-size: 0.88rem;
  line-height: 1.45;
  color: var(--text-muted);
  width: 100%;
  list-style: none;
}

.forum-msg {
  padding: 0.75rem 0.85rem;
  border-radius: 14px;
  background: var(--cream-deep);
  border: 1px solid rgba(16, 16, 16, 0.08);
}

.forum-msg__meta {
  margin: 0 0 0.35rem;
  font-size: 0.68rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  color: var(--text-muted);
}

.forum-msg__text {
  margin: 0;
  font-size: 0.92rem;
  line-height: 1.5;
  color: var(--text-on-cream);
  white-space: pre-wrap;
  word-break: break-word;
}

.forum-room__form {
  margin-top: 1rem;
  display: grid;
  gap: 0.75rem;
  grid-template-columns: 1fr;
}

@media (min-width: 560px) {
  .forum-room__form {
    grid-template-columns: minmax(8rem, 12rem) 1fr;
    align-items: start;
  }

  .forum-room__field--grow {
    grid-column: 2;
    grid-row: 1 / span 2;
  }

  .forum-room__actions {
    grid-column: 1;
  }
}

.forum-room__field {
  display: flex;
  flex-direction: column;
  gap: 0.3rem;
}

.forum-room__label {
  font-size: 0.62rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.12em;
  color: var(--text-muted);
}

.forum-room__input,
.forum-room__textarea {
  font-family: var(--font-ui);
  font-size: 0.92rem;
  font-weight: 600;
  color: var(--text-on-cream);
  background: #fff;
  border: 1.5px solid rgba(16, 16, 16, 0.2);
  border-radius: 12px;
  padding: 0.5rem 0.6rem;
}

.forum-room__textarea {
  min-height: 4.5rem;
  resize: vertical;
}

.forum-room__input:focus,
.forum-room__textarea:focus {
  outline: none;
  border-color: var(--cherry);
  box-shadow: 0 0 0 3px rgba(16, 16, 16, 0.1);
}

.forum-room__actions {
  display: flex;
  align-items: flex-end;
}

.forum-room__submit {
  font-family: var(--font-ui);
  font-size: 0.68rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.12em;
  color: var(--cream-paper);
  background: var(--cherry);
  border: none;
  border-radius: 999px;
  padding: 0.55rem 1rem;
  cursor: pointer;
  transition: background 0.15s ease;
}

.forum-room__submit:hover {
  background: var(--cherry-dark);
}

.forum-rooms--grid {
  display: grid;
  gap: 0.75rem;
  grid-template-columns: 1fr;
}

@media (min-width: 520px) {
  .forum-rooms--grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

.forum-section--salon .forum-rooms--grid {
  margin-left: auto;
  margin-right: auto;
  max-width: 52rem;
  text-align: initial;
  gap: 1rem;
}

@media (min-width: 720px) {
  .forum-section--salon .forum-rooms--grid {
    gap: 1.15rem;
  }
}

@media (min-width: 900px) {
  #forum-salon-grid.forum-rooms--grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
}

.forum-room-card {
  display: flex;
  flex-direction: column;
  align-items: stretch;
  gap: 0.5rem;
  padding: 1rem 1.15rem;
  border-radius: 18px;
  background: var(--cream-paper);
  border: 1px solid rgba(16, 16, 16, 0.12);
  text-decoration: none;
  color: inherit;
  box-shadow: 0 4px 16px rgba(42, 24, 24, 0.04);
  transition:
    border-color 0.15s ease,
    box-shadow 0.15s ease,
    transform 0.15s ease;
}

.forum-room-card__head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 0.5rem;
  width: 100%;
  text-align: left;
}

.forum-room-card__unread {
  margin: 0;
  padding: 0;
  width: 100%;
  font-family: var(--font-ui);
  font-size: 0.78rem;
  font-weight: 700;
  line-height: 1.35;
  letter-spacing: 0.01em;
  color: var(--cherry-dark);
  text-align: left;
}

.forum-room-card__unread[hidden] {
  display: none !important;
}

.forum-room-card:hover {
  border-color: rgba(16, 16, 16, 0.28);
  box-shadow: 0 8px 24px rgba(42, 24, 24, 0.08);
  transform: translateY(-1px);
}

.forum-room-card:focus-visible {
  outline: 2px solid var(--cherry);
  outline-offset: 3px;
}

.forum-room-card__name {
  flex: 1;
  min-width: 0;
  font-family: var(--font-editorial);
  font-size: 1.12rem;
  font-weight: 700;
  color: var(--cherry);
  letter-spacing: -0.02em;
}

.forum-room-card__hint {
  font-size: 0.82rem;
  font-weight: 500;
  color: var(--text-muted);
  line-height: 1.35;
}

.forum-room-card__action {
  margin-top: auto;
  font-size: 0.62rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.14em;
  color: var(--cherry);
  text-align: left;
}

@keyframes forum-salon-notif-pop {
  from {
    transform: scale(0.65);
    opacity: 0;
  }

  to {
    transform: scale(1);
    opacity: 1;
  }
}

/* Cartes « salon » : relief magazine, bandeau bordeaux unique */
.forum-section--salon .forum-room-card {
  position: relative;
  z-index: 0;
  min-height: 5.75rem;
  padding: 1.2rem 1.25rem 1.3rem 1.45rem;
  border-radius: 22px;
  border: 1px solid rgba(16, 16, 16, 0.18);
  background:
    linear-gradient(148deg, rgba(255, 255, 255, 0.98) 0%, rgba(255, 251, 246, 0.96) 45%, rgba(245, 234, 226, 0.94) 100%);
  box-shadow:
    inset 0 1px 0 rgba(255, 255, 255, 0.92),
    0 6px 22px rgba(74, 21, 24, 0.08),
    0 2px 10px rgba(16, 16, 16, 0.05);
  transition:
    transform 0.22s ease,
    box-shadow 0.22s ease,
    border-color 0.22s ease;
}

.forum-section--salon .forum-room-card::before {
  content: "";
  position: absolute;
  inset: 0;
  border-radius: inherit;
  background: radial-gradient(ellipse 95% 72% at 100% -8%, rgba(16, 16, 16, 0.09), transparent 58%);
  pointer-events: none;
  z-index: 0;
}

.forum-section--salon .forum-room-card::after {
  content: "";
  position: absolute;
  left: 0;
  top: 0;
  bottom: 0;
  width: 5px;
  border-radius: 22px 0 0 22px;
  background: linear-gradient(180deg, var(--cherry) 0%, var(--cherry-dark) 60%, var(--burgundy-ink) 100%);
  box-shadow: 2px 0 14px rgba(239, 184, 153, 0.28);
  pointer-events: none;
  z-index: 1;
}

.forum-section--salon .forum-room-card > * {
  position: relative;
  z-index: 2;
}

.forum-section--salon .forum-room-card:hover {
  transform: translateY(-4px);
  border-color: rgba(16, 16, 16, 0.32);
  box-shadow:
    inset 0 1px 0 rgba(255, 255, 255, 0.95),
    0 16px 44px rgba(74, 21, 24, 0.12),
    0 6px 20px rgba(16, 16, 16, 0.1);
}

.forum-section--salon .forum-room-card__head {
  margin-bottom: 0.1rem;
}

.forum-section--salon .forum-room-card__name {
  font-size: clamp(1.08rem, 2.8vw, 1.28rem);
  font-weight: 800;
  color: var(--burgundy-ink);
  letter-spacing: -0.03em;
}

.forum-section--salon .forum-room-card__unread:not([hidden]) {
  margin-top: 0.12rem;
  margin-bottom: 0.2rem;
  font-size: 0.74rem;
  font-weight: 800;
  color: var(--cherry-dark);
  animation: forum-salon-notif-pop 0.4s ease;
}

.forum-section--salon .forum-room-card__action {
  margin-top: 0.55rem;
  display: inline-flex;
  align-items: center;
  align-self: flex-start;
  padding: 0.5rem 1.05rem;
  border-radius: 999px;
  background: linear-gradient(135deg, rgba(16, 16, 16, 0.14), rgba(16, 16, 16, 0.06));
  border: 1.5px solid rgba(16, 16, 16, 0.3);
  color: var(--cherry-dark);
  letter-spacing: 0.16em;
  font-size: 0.58rem;
  transition:
    background 0.18s ease,
    border-color 0.18s ease,
    color 0.18s ease;
}

.forum-section--salon .forum-room-card:hover .forum-room-card__action {
  background: linear-gradient(135deg, rgba(16, 16, 16, 0.22), rgba(16, 16, 16, 0.12));
  border-color: rgba(16, 16, 16, 0.42);
  color: var(--cherry-dark);
}

.forum-sr-only {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}

/* Forum page visual refresh */
.page-shell--forum {
  position: relative;
  isolation: isolate;
}

.page-shell--forum::before {
  content: "";
  position: absolute;
  inset: 0 0 auto 0;
  height: min(48vh, 420px);
  background:
    radial-gradient(75% 55% at 10% 0%, rgba(16, 16, 16, 0.07), transparent 68%),
    radial-gradient(60% 45% at 90% 8%, rgba(74, 21, 24, 0.08), transparent 70%);
  pointer-events: none;
  z-index: -1;
}

.page-shell--forum .page-shell__title {
  margin-bottom: 0.35rem;
  letter-spacing: -0.03em;
}

.forum-page__lead {
  margin: 0 auto 1.35rem;
  max-width: 48rem;
  text-align: center;
  font-family: var(--font-ui);
  font-size: clamp(0.94rem, 2.3vw, 1.05rem);
  line-height: 1.55;
  color: var(--text-muted);
}

.forum-charter {
  border-radius: 24px;
  border: 1px solid rgba(16, 16, 16, 0.14);
  background:
    linear-gradient(160deg, rgba(255, 255, 255, 0.88) 0%, rgba(255, 250, 246, 0.94) 52%, rgba(245, 235, 228, 0.92) 100%);
  box-shadow:
    inset 0 1px 0 rgba(255, 255, 255, 0.9),
    0 12px 34px rgba(74, 21, 24, 0.08);
  backdrop-filter: blur(2px);
}

.forum-charter__title {
  font-size: clamp(1.25rem, 3vw, 1.55rem);
  letter-spacing: -0.02em;
}

.forum-charter__body {
  max-height: min(48vh, 440px);
  overflow: auto;
  padding-right: 0.2rem;
}

.forum-charter__body::-webkit-scrollbar {
  width: 9px;
}

.forum-charter__body::-webkit-scrollbar-thumb {
  border-radius: 999px;
  background: rgba(16, 16, 16, 0.28);
  border: 2px solid rgba(255, 255, 255, 0.75);
}

.forum-section--salon {
  margin-top: 2.45rem;
  padding: clamp(1.35rem, 2.7vw, 2rem) clamp(1rem, 2.2vw, 1.5rem) clamp(1.7rem, 2.9vw, 2.4rem);
  border-radius: 30px;
  background:
    linear-gradient(163deg, rgba(255, 255, 255, 0.74) 0%, rgba(255, 250, 245, 0.97) 50%, rgba(242, 229, 220, 0.94) 100%);
  border: 1px solid rgba(16, 16, 16, 0.17);
  box-shadow:
    inset 0 1px 0 rgba(255, 255, 255, 0.95),
    0 18px 48px rgba(74, 21, 24, 0.11),
    0 3px 12px rgba(16, 16, 16, 0.06);
}

.forum-section__heading--salon {
  margin-bottom: 0.7rem;
}

.forum-section__subheading {
  margin: 0 auto 1.15rem;
  max-width: 45rem;
  text-align: center;
  font-family: var(--font-ui);
  font-size: 0.9rem;
  line-height: 1.5;
  color: color-mix(in srgb, var(--text-muted) 86%, var(--cherry) 14%);
}

.forum-salon-toolbar {
  max-width: 56rem;
  padding: 1rem 1.05rem;
  border-radius: 18px;
  border: 1px solid rgba(16, 16, 16, 0.11);
  background: rgba(255, 255, 255, 0.68);
  box-shadow:
    inset 0 1px 0 rgba(255, 255, 255, 0.95),
    0 5px 20px rgba(74, 21, 24, 0.06);
}

.forum-salon-filters {
  margin-bottom: 1.1rem;
}

.forum-salon-filter {
  padding: 0.45rem 0.82rem 0.45rem 0.58rem;
  border: 1px solid rgba(16, 16, 16, 0.2);
  background: linear-gradient(180deg, rgba(255, 255, 255, 0.95) 0%, rgba(255, 252, 249, 0.85) 100%);
}

.forum-salon-filter:hover {
  border-color: rgba(16, 16, 16, 0.36);
  box-shadow: 0 3px 12px rgba(74, 21, 24, 0.08);
}

.forum-salon-filter__text {
  font-size: 0.8rem;
}

.forum-salon-toolbar__actions {
  gap: 0.68rem;
}

.forum-salon-toolbar__save,
.forum-salon-toolbar__reset {
  min-height: 2.2rem;
}

.forum-salon-search {
  margin-top: 1rem;
  padding: 0.95rem 1rem;
  border-radius: 16px;
  border: 1px solid rgba(16, 16, 16, 0.16);
  background: linear-gradient(180deg, rgba(255, 255, 255, 0.94) 0%, rgba(255, 251, 247, 0.86) 100%);
}

.forum-salon-search__input {
  border: 1.5px solid rgba(16, 16, 16, 0.25);
  box-shadow: inset 0 1px 2px rgba(42, 24, 24, 0.05);
}

.forum-salon-search__input::placeholder {
  color: rgba(77, 58, 58, 0.7);
}

.forum-section--salon .forum-rooms--grid {
  margin-top: 1.2rem;
  max-width: 56rem;
  gap: 1.08rem;
}

.forum-section--salon .forum-room-card {
  min-height: 6.2rem;
  border: 1px solid rgba(16, 16, 16, 0.19);
  background:
    linear-gradient(148deg, rgba(255, 255, 255, 0.99) 0%, rgba(255, 251, 247, 0.96) 42%, rgba(245, 235, 227, 0.95) 100%);
  box-shadow:
    inset 0 1px 0 rgba(255, 255, 255, 0.96),
    0 10px 26px rgba(74, 21, 24, 0.11),
    0 3px 12px rgba(16, 16, 16, 0.07);
}

.forum-section--salon .forum-room-card::after {
  width: 6px;
}

.forum-section--salon .forum-room-card__name {
  font-size: clamp(1.08rem, 2.35vw, 1.26rem);
  line-height: 1.2;
}

.forum-section--salon .forum-room-card__action {
  min-height: 1.95rem;
  font-size: 0.6rem;
}

@media (max-width: 700px) {
  .forum-page__lead {
    margin-bottom: 1.05rem;
    text-align: left;
  }

  .forum-section__subheading {
    text-align: left;
    margin-bottom: 0.95rem;
  }

  .forum-salon-toolbar {
    padding: 0.86rem 0.82rem;
  }
}

.forum-fil-thread--chat {
  margin-top: 1rem;
  min-height: min(70vh, 36rem);
  display: flex;
  flex-direction: column;
}

.forum-fil-chat {
  flex: 1;
  display: flex;
  flex-direction: column;
  min-height: 0;
  border-radius: 20px;
  overflow: hidden;
  border: 1px solid rgba(16, 16, 16, 0.12);
  background: rgba(255, 255, 255, 0.35);
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.6);
}

.forum-fil-chat__feed {
  flex: 1;
  min-height: 0;
  display: flex;
  flex-direction: column;
}

.forum-fil-sync-note {
  flex-shrink: 0;
  margin: 0 0.5rem 0.5rem;
  padding: 0.5rem 0.65rem;
  font-family: var(--font-ui);
  font-size: 0.78rem;
  line-height: 1.38;
  color: var(--text-muted);
  background: rgba(255, 255, 255, 0.72);
  border: 1px solid rgba(16, 16, 16, 0.1);
  border-radius: 10px;
}

.forum-fil-sync-note code {
  font-size: 0.72em;
  word-break: break-all;
}

.forum-fil-chat__composer {
  flex-shrink: 0;
  border-top: 1px solid rgba(16, 16, 16, 0.1);
  background: rgba(247, 241, 235, 0.97);
  padding: 0.55rem 0.65rem 0.65rem;
}

.forum-room__messages--fil {
  flex: 1;
  min-height: 12rem;
  max-height: min(56vh, 520px);
  overflow-y: auto;
  -webkit-overflow-scrolling: touch;
}

.forum-wa-list {
  display: flex;
  flex-direction: column;
  gap: 0.35rem;
  padding: 0.5rem 0.15rem 0.75rem;
  background: rgba(42, 24, 24, 0.03);
  border-radius: 16px;
}

.forum-wa-list--chat {
  border-radius: 0;
  padding: 0.55rem 0.5rem 0.85rem;
  background-color: #e8e0d8;
  background-image:
    radial-gradient(circle at 1px 1px, rgba(74, 21, 24, 0.045) 1px, transparent 0),
    radial-gradient(circle at 12px 8px, rgba(16, 16, 16, 0.03) 1px, transparent 0);
  background-size:
    22px 22px,
    18px 26px;
  gap: 0.28rem;
}

.forum-wa-daysep {
  list-style: none;
  margin: 0.5rem 0 0.35rem;
  padding: 0;
  display: flex;
  justify-content: center;
  width: 100%;
}

.forum-wa-daysep span {
  display: inline-block;
  padding: 0.28rem 0.75rem;
  border-radius: 999px;
  font-family: var(--font-ui);
  font-size: 0.68rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  color: var(--text-muted);
  background: rgba(255, 255, 255, 0.82);
  box-shadow: 0 1px 2px rgba(0, 0, 0, 0.06);
}

.forum-wa-row {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  width: 100%;
}

.forum-wa-row--peer {
  justify-content: flex-start;
}

.forum-wa-row--own {
  justify-content: flex-end;
}

.forum-wa-row__inner {
  display: flex;
  align-items: flex-end;
  gap: 0.42rem;
  width: fit-content;
  max-width: min(78%, 32rem);
}

.forum-wa-row--own .forum-wa-row__inner {
  flex-direction: row;
  max-width: min(78%, 30rem);
}

.forum-wa-avatar {
  flex-shrink: 0;
  width: 2.25rem;
  height: 2.25rem;
  border-radius: 50%;
  background: linear-gradient(145deg, rgba(16, 16, 16, 0.16), rgba(74, 21, 24, 0.1));
  color: var(--burgundy-ink);
  font-family: var(--font-ui);
  font-size: 0.68rem;
  font-weight: 800;
  display: flex;
  align-items: center;
  justify-content: center;
  overflow: hidden;
  border: 2px solid #fff;
  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1);
}

.forum-wa-avatar--self {
  box-shadow: 0 0 0 2px rgba(16, 16, 16, 0.18);
}

.forum-wa-avatar--img {
  padding: 0;
  background: var(--cream-paper);
}

.forum-wa-avatar__img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

.forum-wa-stack {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 0;
  min-width: 0;
}

.forum-wa-row--own .forum-wa-stack {
  align-items: flex-end;
}

.forum-wa-bubble {
  position: relative;
  width: fit-content;
  max-width: 100%;
  border-radius: 12px 12px 12px 4px;
  padding: 0.38rem 0.6rem 0.32rem;
  box-shadow: 0 1px 1px rgba(0, 0, 0, 0.06);
}

.forum-wa-bubble--peer {
  background: #fff;
  border: 1px solid rgba(0, 0, 0, 0.06);
  border-radius: 4px 12px 12px 12px;
}

.forum-wa-bubble--peer::before {
  content: "";
  position: absolute;
  left: -5px;
  bottom: 6px;
  width: 0;
  height: 0;
  border-top: 5px solid transparent;
  border-bottom: 5px solid transparent;
  border-right: 5px solid #fff;
  filter: drop-shadow(-1px 0 0 rgba(0, 0, 0, 0.04));
}

.forum-wa-bubble--peer.forum-wa-bubble--peer-t0 {
  background: #fff;
}
.forum-wa-bubble--peer.forum-wa-bubble--peer-t0::before {
  border-right-color: #fff;
}

.forum-wa-bubble--peer.forum-wa-bubble--peer-t1 {
  background: #eef6ff;
  border-color: rgba(26, 111, 176, 0.1);
}
.forum-wa-bubble--peer.forum-wa-bubble--peer-t1::before {
  border-right-color: #eef6ff;
}

.forum-wa-bubble--peer.forum-wa-bubble--peer-t2 {
  background: #f5f0ff;
  border-color: rgba(107, 61, 143, 0.1);
}
.forum-wa-bubble--peer.forum-wa-bubble--peer-t2::before {
  border-right-color: #f5f0ff;
}

.forum-wa-bubble--peer.forum-wa-bubble--peer-t3 {
  background: #f0faf5;
  border-color: rgba(15, 122, 106, 0.1);
}
.forum-wa-bubble--peer.forum-wa-bubble--peer-t3::before {
  border-right-color: #f0faf5;
}

.forum-wa-bubble--peer.forum-wa-bubble--peer-t4 {
  background: #fff8f0;
  border-color: rgba(196, 92, 18, 0.12);
}
.forum-wa-bubble--peer.forum-wa-bubble--peer-t4::before {
  border-right-color: #fff8f0;
}

.forum-wa-bubble--peer.forum-wa-bubble--peer-t5 {
  background: #fff5f8;
  border-color: rgba(160, 40, 110, 0.1);
}
.forum-wa-bubble--peer.forum-wa-bubble--peer-t5::before {
  border-right-color: #fff5f8;
}

.forum-wa-bubble--peer.forum-wa-bubble--peer-t6 {
  background: #f4fcff;
  border-color: rgba(26, 111, 176, 0.08);
}
.forum-wa-bubble--peer.forum-wa-bubble--peer-t6::before {
  border-right-color: #f4fcff;
}

.forum-wa-bubble--peer.forum-wa-bubble--peer-t7 {
  background: #faf8f5;
  border-color: rgba(107, 74, 43, 0.12);
}
.forum-wa-bubble--peer.forum-wa-bubble--peer-t7::before {
  border-right-color: #faf8f5;
}

.forum-wa-bubble--own {
  background: #dcf8c6;
  border: 1px solid rgba(42, 90, 40, 0.12);
  border-radius: 12px 4px 12px 12px;
}

.forum-wa-bubble--own::after {
  content: "";
  position: absolute;
  right: -5px;
  bottom: 6px;
  width: 0;
  height: 0;
  border-top: 5px solid transparent;
  border-bottom: 5px solid transparent;
  border-left: 5px solid #dcf8c6;
}

.forum-wa-name {
  display: block;
  font-family: var(--font-ui);
  font-size: 0.82rem;
  font-weight: 800;
  letter-spacing: 0.01em;
  margin-bottom: 0.2rem;
  line-height: 1.2;
  text-shadow: 0 0 0 currentColor;
}

.forum-wa-name--t0 {
  color: #6b4a2b;
}
.forum-wa-name--t1 {
  color: #c45c12;
}
.forum-wa-name--t2 {
  color: #1a6fb0;
}
.forum-wa-name--t3 {
  color: #0f7a6a;
}
.forum-wa-name--t4 {
  color: #6b3d8f;
}
.forum-wa-name--t5 {
  color: #2d6b3a;
}
.forum-wa-name--t6 {
  color: #a0286e;
}
.forum-wa-name--t7 {
  color: #8a1c1c;
}

.forum-wa-text {
  margin: 0;
  font-size: 0.93rem;
  line-height: 1.45;
  color: #2a2a2a;
  font-weight: 400;
  white-space: pre-wrap;
  word-break: break-word;
}

.forum-wa-bubble--own .forum-wa-text {
  color: #1c2418;
}

.forum-wa-foot {
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-end;
  align-items: center;
  gap: 0.28rem 0.35rem;
  row-gap: 0.28rem;
  margin-top: 0.12rem;
}

.forum-wa-time {
  font-size: 0.6rem;
  font-weight: 600;
  color: rgba(0, 0, 0, 0.38);
  letter-spacing: 0.02em;
}

.forum-wa-sync {
  font-family: var(--font-ui);
  font-size: 0.62rem;
  font-weight: 600;
  color: rgba(0, 0, 0, 0.45);
}

.forum-wa-report {
  margin: 0;
  padding: 0.1rem 0.35rem;
  border: none;
  border-radius: 6px;
  font-family: var(--font-ui);
  font-size: 0.58rem;
  font-weight: 700;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: rgba(16, 16, 16, 0.75);
  background: rgba(16, 16, 16, 0.06);
  cursor: pointer;
  transition:
    color 0.15s ease,
    background 0.15s ease;
}

.forum-wa-report:hover {
  color: var(--cherry);
  background: rgba(16, 16, 16, 0.12);
}

.forum-wa-pin {
  margin: 0;
  padding: 0.1rem 0.4rem;
  border: none;
  border-radius: 6px;
  display: inline-flex;
  align-items: center;
  gap: 0.2rem;
  font-family: var(--font-ui);
  font-size: 0.58rem;
  font-weight: 700;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: rgba(0, 0, 0, 0.55);
  background: rgba(0, 0, 0, 0.05);
  cursor: pointer;
  transition:
    color 0.15s ease,
    background 0.15s ease;
}

.forum-wa-pin:hover,
.forum-wa-pin:focus-visible {
  color: #101010;
  background: var(--forum-peach-muted, rgba(239, 184, 153, 0.18));
  outline: none;
}

.forum-wa-pin--active {
  color: #101010;
  background: var(--forum-peach-soft, rgba(239, 184, 153, 0.28));
}

.forum-wa-pin--active:hover {
  background: var(--forum-peach, #efb899);
}

.forum-wa-pin__icon {
  display: inline-block;
  font-size: 0.7rem;
  line-height: 1;
}

.forum-wa-row--pinned-target .forum-wa-bubble {
  animation: forum-wa-pin-flash 1.8s ease;
}

@keyframes forum-wa-pin-flash {
  0% {
    box-shadow: 0 0 0 0 var(--forum-peach-soft, rgba(239, 184, 153, 0.6));
  }
  30% {
    box-shadow: 0 0 0 8px var(--forum-peach-soft, rgba(239, 184, 153, 0.55));
  }
  100% {
    box-shadow: 0 1px 1px rgba(0, 0, 0, 0.06);
  }
}

/* Bannière messages épinglés (haut du fil) */
.forum-fil-pinned {
  display: flex;
  flex-direction: column;
  gap: 0.4rem;
  margin: 0 0 0.6rem;
  padding: 0.7rem 0.85rem 0.75rem;
  background: var(--forum-peach-soft, rgba(239, 184, 153, 0.18));
  border: 1px solid var(--forum-peach-muted, rgba(239, 184, 153, 0.45));
  border-radius: 14px;
}

.forum-fil-pinned[hidden] {
  display: none !important;
}

.forum-fil-pinned__head {
  display: flex;
  align-items: center;
  gap: 0.4rem;
  font-family: var(--font-ui);
  font-size: 0.72rem;
  font-weight: 800;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--forum-peach-deep, #dd9f7b);
}

.forum-fil-pinned__icon {
  font-size: 0.85rem;
  line-height: 1;
}

.forum-fil-pinned__list {
  margin: 0;
  padding: 0;
  list-style: none;
  display: flex;
  flex-direction: column;
  gap: 0.35rem;
}

.forum-fil-pinned__item {
  display: flex;
  align-items: stretch;
  gap: 0.45rem;
  padding: 0.45rem 0.55rem;
  border-radius: 10px;
  background: #ffffff;
  border: 1px solid rgba(0, 0, 0, 0.06);
  box-shadow: 0 1px 2px rgba(0, 0, 0, 0.03);
}

.forum-fil-pinned__btn {
  flex: 1;
  display: flex;
  flex-direction: column;
  gap: 0.15rem;
  background: transparent;
  border: 0;
  padding: 0;
  text-align: left;
  cursor: pointer;
  font-family: var(--font-ui);
  color: inherit;
}

.forum-fil-pinned__btn:hover .forum-fil-pinned__text,
.forum-fil-pinned__btn:focus-visible .forum-fil-pinned__text {
  color: #000;
}

.forum-fil-pinned__btn:focus-visible {
  outline: 2px solid var(--forum-peach-deep, #dd9f7b);
  outline-offset: 2px;
  border-radius: 6px;
}

.forum-fil-pinned__meta {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  gap: 0.25rem 0.4rem;
  font-size: 0.7rem;
  color: rgba(0, 0, 0, 0.55);
}

.forum-fil-pinned__author {
  font-weight: 700;
  color: #1a1a1a;
}

.forum-fil-pinned__sep {
  opacity: 0.5;
}

.forum-fil-pinned__date {
  font-weight: 500;
}

.forum-fil-pinned__text {
  font-size: 0.85rem;
  line-height: 1.35;
  color: #2a2a2a;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
  text-overflow: ellipsis;
}

.forum-fil-pinned__remove {
  flex-shrink: 0;
  align-self: flex-start;
  background: transparent;
  border: 0;
  border-radius: 6px;
  padding: 0.18rem 0.32rem;
  font-size: 0.85rem;
  line-height: 1;
  color: rgba(0, 0, 0, 0.4);
  cursor: pointer;
  transition:
    color 0.15s ease,
    background 0.15s ease;
}

.forum-fil-pinned__remove:hover,
.forum-fil-pinned__remove:focus-visible {
  color: #101010;
  background: rgba(0, 0, 0, 0.06);
  outline: none;
}

.forum-wa-bubble--own .forum-wa-time {
  color: rgba(0, 0, 0, 0.35);
}

.forum-fil-chatbar {
  position: relative;
  display: flex;
  align-items: flex-end;
  gap: 0.45rem;
  width: 100%;
}

.forum-fil-chatbar__attach {
  flex-shrink: 0;
  width: 2.25rem;
  height: 2.25rem;
  border-radius: 999px;
  border: 1px solid rgba(16, 16, 16, 0.2);
  background: #fff;
  color: var(--cherry);
  font-family: var(--font-ui);
  font-size: 1.15rem;
  line-height: 1;
  font-weight: 700;
  cursor: pointer;
  margin-bottom: 0.12rem;
}

.forum-fil-chatbar__attach:hover {
  border-color: var(--cherry);
  background: rgba(16, 16, 16, 0.08);
}

.forum-fil-chatbar__input {
  flex: 1;
  min-width: 0;
  min-height: 2.5rem;
  max-height: 7rem;
  resize: none;
  font-family: var(--font-ui);
  font-size: 0.95rem;
  font-weight: 500;
  color: var(--text-on-cream);
  background: #fff;
  border: 1px solid rgba(16, 16, 16, 0.15);
  border-radius: 22px;
  padding: 0.55rem 0.85rem;
  line-height: 1.35;
}

.forum-fil-chatbar__input:focus {
  outline: none;
  border-color: var(--cherry);
  box-shadow: 0 0 0 2px rgba(16, 16, 16, 0.1);
}

.forum-fil-chatbar__send {
  flex-shrink: 0;
  font-family: var(--font-ui);
  font-size: 0.68rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  color: var(--cream-paper);
  background: var(--cherry);
  border: none;
  border-radius: 999px;
  padding: 0.55rem 0.95rem;
  cursor: pointer;
  margin-bottom: 0.08rem;
}

.forum-fil-chatbar__send:hover {
  background: var(--cherry-dark);
}

.forum-mention-suggest {
  position: absolute;
  left: 2.9rem;
  right: 4.8rem;
  bottom: calc(100% + 0.3rem);
  z-index: 20;
  display: grid;
  gap: 0.2rem;
  padding: 0.35rem;
  border: 1px solid rgba(16, 16, 16, 0.16);
  border-radius: 10px;
  background: #fffdf8;
  box-shadow: 0 12px 24px rgba(25, 16, 12, 0.14);
}

.forum-mention-suggest[hidden] {
  display: none !important;
}

.forum-mention-suggest__item {
  width: 100%;
  border: 0;
  border-radius: 8px;
  background: transparent;
  color: var(--text-on-cream);
  text-align: left;
  font-family: var(--font-ui);
  font-size: 0.8rem;
  padding: 0.35rem 0.45rem;
  cursor: pointer;
}

.forum-mention-suggest__item:hover,
.forum-mention-suggest__item.is-active {
  background: rgba(16, 16, 16, 0.1);
  color: var(--cherry-dark);
}

.forum-fil-attachments-note {
  margin: 0.5rem 0 0;
  font-family: var(--font-ui);
  font-size: 0.74rem;
  color: var(--text-muted);
}

.forum-wa-mention {
  display: inline-block;
  padding: 0.02rem 0.32rem;
  border-radius: 0.45rem;
  background: rgba(16, 16, 16, 0.12);
  color: var(--cherry-dark);
  font-weight: 700;
}

.forum-wa-attachments {
  margin-top: 0.5rem;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 0.35rem;
  max-width: 100%;
}

.forum-wa-attachment {
  display: inline-flex;
  align-items: center;
  gap: 0.45rem;
  max-width: 100%;
  padding: 0.4rem 0.6rem 0.4rem 0.55rem;
  border-radius: 10px;
  background: rgba(0, 0, 0, 0.05);
  border: 1px solid rgba(0, 0, 0, 0.08);
  font-family: var(--font-ui);
  font-size: 0.8rem;
  font-weight: 500;
  color: inherit;
  text-decoration: none;
  transition:
    background 0.15s ease,
    border-color 0.15s ease,
    transform 0.15s ease;
}

.forum-wa-bubble--own .forum-wa-attachment {
  background: rgba(255, 255, 255, 0.55);
  border-color: rgba(0, 0, 0, 0.08);
}

.forum-wa-attachment:hover,
.forum-wa-attachment:focus-visible {
  background: rgba(0, 0, 0, 0.08);
  border-color: rgba(0, 0, 0, 0.18);
  text-decoration: none;
  outline: none;
  transform: translateY(-1px);
}

.forum-wa-attachment--preview {
  display: block;
  padding: 0;
  background: transparent;
  border: 0;
  max-width: min(240px, 100%);
}

.forum-wa-attachment--preview:hover,
.forum-wa-attachment--preview:focus-visible {
  background: transparent;
  border: 0;
  transform: translateY(-1px);
}

.forum-wa-attachment__icon {
  flex-shrink: 0;
  width: 1.05rem;
  height: 1.05rem;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 1rem;
  line-height: 1;
}

.forum-wa-attachment__name {
  flex: 1;
  min-width: 0;
  max-width: 14rem;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.forum-wa-attachment__preview {
  width: min(240px, 100%);
  border-radius: 12px;
  border: 1px solid rgba(0, 0, 0, 0.08);
  display: block;
}

.forum-fil-identite {
  grid-column: 1 / -1;
}

.forum-fil-identite__hint {
  margin: 0 0 0.75rem;
  font-size: 0.82rem;
  line-height: 1.45;
  color: var(--text-muted);
}

.forum-fil-identite__grid {
  display: grid;
  gap: 0.65rem;
  grid-template-columns: 1fr;
}

@media (min-width: 480px) {
  .forum-fil-identite__grid {
    grid-template-columns: 1fr 1fr;
  }
}

.forum-fil-identite__photo {
  margin-top: 0.5rem;
}

.forum-fil-photo-input {
  font-family: var(--font-ui);
  font-size: 0.82rem;
  color: var(--text-on-cream);
}

.forum-fil-photo-preview {
  margin-top: 0.5rem;
  width: 3.6rem;
  height: 3.6rem;
  border-radius: 50%;
  overflow: hidden;
  border: 2px solid rgba(16, 16, 16, 0.15);
  box-shadow: 0 2px 10px rgba(0, 0, 0, 0.06);
}

.forum-fil-photo-preview img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

.forum-room__form--fil {
  grid-template-columns: 1fr;
}

.forum-room__form--fil .forum-room__field--grow {
  grid-column: 1;
  grid-row: auto;
}

.forum-room__form--fil .forum-room__actions {
  grid-column: 1;
}

.forum-fil-breadcrumb {
  margin: 0 0 1rem;
}

.forum-fil-breadcrumb__link {
  font-family: var(--font-ui);
  font-size: 0.72rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.12em;
  color: var(--cherry);
  text-decoration: none;
}

.forum-fil-breadcrumb__link:hover {
  text-decoration: underline;
  text-underline-offset: 0.2em;
}

.forum-fil-main .page-shell__title {
  margin-top: 0;
}

.forum-fil-state__cta,
.forum-fil-gate__cta {
  margin: 1.25rem 0 0;
}

.forum-fil-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-family: var(--font-ui);
  font-size: 0.72rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.12em;
  color: var(--cream-paper);
  background: var(--cherry);
  border-radius: 999px;
  padding: 0.6rem 1.2rem;
  text-decoration: none;
  transition: background 0.15s ease;
}

.forum-fil-btn:hover {
  background: var(--cherry-dark);
  color: var(--cream-paper);
}

.forum-fil-gate {
  margin-top: 1.25rem;
  padding: 1.2rem 1.3rem;
  border-radius: 20px;
  background: rgba(16, 16, 16, 0.06);
  border: 1px solid rgba(16, 16, 16, 0.18);
}

.forum-fil-gate__title {
  margin: 0 0 0.6rem;
  font-family: var(--font-editorial);
  font-size: 1.15rem;
  font-weight: 700;
  color: var(--cherry);
}

.forum-fil-gate__text {
  margin: 0 0 0.55rem;
  font-family: var(--font-ui);
  font-size: 0.92rem;
  line-height: 1.55;
  color: var(--text-on-cream);
}

.forum-fil-gate__text:last-of-type {
  margin-bottom: 0;
}

.forum-fil-thread:not(.forum-fil-thread--chat) {
  margin-top: 1.25rem;
}

.forum-fil-account-missing {
  padding: 0.85rem 0.95rem;
  margin-bottom: 0.35rem;
  border-radius: 14px;
  background: rgba(16, 16, 16, 0.05);
  border: 1px solid rgba(16, 16, 16, 0.14);
}

.forum-fil-account-missing__text {
  margin: 0 0 0.85rem;
  font-family: var(--font-ui);
  font-size: 0.88rem;
  line-height: 1.5;
  color: var(--text-on-cream);
}

.forum-fil-account-blocked {
  padding: 0.85rem 0.95rem;
  margin-bottom: 0.35rem;
  border-radius: 14px;
  background: rgba(42, 24, 24, 0.06);
  border: 1px solid rgba(42, 24, 24, 0.2);
}

.forum-fil-account-blocked__text {
  margin: 0;
  font-family: var(--font-ui);
  font-size: 0.88rem;
  line-height: 1.5;
  color: var(--text-on-cream);
}

.forum-fil-account-blocked__link {
  color: var(--burgundy-ink);
  font-weight: 700;
}

.forum-fil-account-ready {
  width: 100%;
}

.account-profile-section {
  margin-top: 1.75rem;
  padding: 1.15rem 1.2rem 1.25rem;
  border-radius: 18px;
  background: rgba(255, 255, 255, 0.45);
  border: 1px solid rgba(16, 16, 16, 0.12);
}

.account-profile-form__grid {
  display: grid;
  gap: 0.75rem;
  grid-template-columns: 1fr;
}

@media (min-width: 520px) {
  .account-profile-form__grid {
    grid-template-columns: 1fr 1fr;
  }
}

.account-profile-form__photo {
  margin-top: 0.65rem;
}

.account-profile-form__actions {
  margin-top: 1rem;
}

.account-profile-form__notify {
  margin-top: 0.85rem;
  align-items: flex-start;
  font-size: 0.92rem;
  color: #6c4b3f;
  opacity: 0.9;
}

.account-profile-form__iej {
  margin-top: 0.35rem;
}

.account-profile-iej-select {
  cursor: pointer;
}

.visually-hidden {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}

.account-access-guest-banner {
  margin-bottom: 1rem;
  padding: 1rem 1.1rem;
  border-radius: 14px;
  background: rgba(255, 255, 255, 0.65);
  border: 1px solid rgba(16, 16, 16, 0.14);
}

.account-access-guest-banner__text {
  margin: 0 0 0.75rem;
  font-size: 0.92rem;
  line-height: 1.45;
  color: var(--text-on-cream);
}

.account-access-login-submit {
  margin-top: 0.75rem;
}

.account-access-card {
  border-radius: 16px;
  background: #fff;
  border: 1px solid rgba(0, 0, 0, 0.1);
  box-shadow: 0 1px 0 rgba(255, 255, 255, 0.8) inset;
  overflow: hidden;
}

.account-access-card__head {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  justify-content: space-between;
  gap: 0.5rem 1rem;
  padding: 1rem 1.15rem 0.65rem;
  border-bottom: 1px solid rgba(0, 0, 0, 0.06);
}

.account-access-card__meta {
  margin: 0;
  font-size: 0.8rem;
  color: rgba(0, 0, 0, 0.55);
  text-align: right;
}

.account-access-form {
  padding: 0.85rem 1.15rem 1.1rem;
}

.account-access-row {
  display: grid;
  grid-template-columns: minmax(7.5rem, 11rem) 1fr;
  gap: 0.5rem 1rem;
  align-items: center;
  margin-bottom: 0.85rem;
}

@media (max-width: 520px) {
  .account-access-row {
    grid-template-columns: 1fr;
    align-items: start;
  }
}

.account-access-row__label {
  font-size: 0.82rem;
  font-weight: 600;
  color: #222;
  line-height: 1.25;
}

.account-access-row__label--multiline {
  max-width: 11rem;
}

.account-access-row__input {
  width: 100%;
  padding: 0.45rem 0.55rem;
  font: inherit;
  font-size: 0.92rem;
  border: 1px solid rgba(0, 0, 0, 0.18);
  border-radius: 8px;
  background: #fff;
}

.account-access-error {
  margin: 0 0 0.75rem;
  font-size: 0.86rem;
  color: var(--cherry-dark);
}

.account-access-card__foot {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  align-items: center;
  gap: 0.65rem;
  margin-top: 0.35rem;
  padding-top: 1rem;
  border-top: 1px solid rgba(0, 0, 0, 0.08);
}

.account-access-btn {
  font: inherit;
  font-size: 0.9rem;
  font-weight: 600;
  padding: 0.5rem 1.15rem;
  border-radius: 10px;
  cursor: pointer;
  border: 1px solid transparent;
}

.account-access-btn--secondary {
  background: #f3f3f3;
  border-color: rgba(0, 0, 0, 0.14);
  color: #222;
}

.account-access-btn--secondary:hover {
  background: #eaeaea;
}

.account-access-btn--primary {
  background: #111;
  color: #fff;
  border-color: #111;
}

.account-access-btn--primary:hover {
  background: #000;
}

.account-profile-section--logout {
  display: flex;
  justify-content: center;
  padding-top: 0.5rem;
  padding-bottom: 2rem;
  border: none;
  background: transparent;
  box-shadow: none;
}

.student-logout-btn {
  font: inherit;
  font-size: 0.95rem;
  font-weight: 600;
  padding: 0.55rem 1.75rem;
  border-radius: 12px;
  cursor: pointer;
  border: 1px solid rgba(16, 16, 16, 0.28);
  background: rgba(255, 255, 255, 0.7);
  color: #101010;
}

.student-logout-btn:hover {
  background: rgba(239, 184, 153, 0.18);
  border-color: var(--cherry);
}

/* ——— Page Profil : noir & blanc, titres centrés, typos site (Fraunces + Manrope) ——— */
.page-shell.page-shell--profil {
  --profil-card-shadow: 0 10px 22px rgba(0, 0, 0, 0.06);
  width: min(var(--site-layout-max), var(--site-layout-pad));
  max-width: none;
  margin: 2rem auto 3rem;
  padding: 0;
  background: transparent !important;
  border: none !important;
  box-shadow: none !important;
  border-radius: 0 !important;
}

.page-shell--profil .profil-page-head {
  margin: 0 0 1.75rem;
  text-align: center;
}

.page-shell--profil .profil-page-head__title {
  margin: 0 0 0.65rem;
  font-weight: normal;
  line-height: 1;
  color: #101010 !important;
}

.page-shell--profil .profil-page-head__title::after {
  content: none;
  display: none;
}

/* Titre « Mon profil » — kicker script (get/stay) + display Bodoni (Organized/Focused) */
.page-shell--profil .profil-page-head__title--fashion {
  display: flex;
  justify-content: center;
}

.page-shell--profil .profil-page-head__fashion-wrap {
  display: inline-flex;
  flex-direction: column;
  align-items: flex-start;
  line-height: 1;
}

.page-shell--profil .profil-page-head__kicker {
  margin: 0 0 -0.58em 0.04em;
  font-family: "Great Vibes", "Bodoni Moda", Didot, Georgia, serif !important;
  font-size: clamp(1.45rem, 3.65vw, 2.2rem);
  font-weight: 400;
  font-style: italic;
  letter-spacing: 0.02em;
  line-height: 1;
  color: #101010;
  white-space: nowrap;
}

.page-shell--profil .profil-page-head__main {
  display: block;
  margin: 0;
  padding: 0;
  font-family: "Bodoni Moda", Didot, "Bodoni MT", "Libre Bodoni", Georgia, serif !important;
  font-size: clamp(3rem, 9vw, 5.55rem);
  font-weight: 700;
  font-style: normal;
  letter-spacing: -0.055em;
  line-height: 0.88;
  color: #0a0a0a;
  text-transform: lowercase;
  font-feature-settings: "kern" 1, "liga" 1;
}

@media (max-width: 520px) {
  .page-shell--profil .profil-page-head__kicker {
    margin-bottom: -0.5em;
    font-size: clamp(1.22rem, 4.8vw, 1.62rem);
  }

  .page-shell--profil .profil-page-head__main {
    font-size: clamp(2.5rem, 11.5vw, 3.75rem);
    letter-spacing: -0.045em;
  }
}

.page-shell--profil .profil-page-head .page-shell__lead {
  margin: 0 auto;
  max-width: 22rem;
  color: var(--text-muted) !important;
  font-family: var(--font-ui);
  font-size: 0.78rem;
  font-weight: 600;
  letter-spacing: 0.18em;
  line-height: 1.5;
  text-transform: uppercase;
}

.page-shell--profil > .account-profile-section:first-of-type,
.page-shell--profil .account-profile-form > .account-profile-section:first-of-type {
  margin-top: 0;
}

.page-shell--profil .account-profile-form {
  display: flex;
  flex-direction: column;
  gap: 2.5rem;
  margin-bottom: 0;
}

.page-shell--profil .account-profile-form > .account-profile-section {
  margin-top: 0;
}

.page-shell--profil .account-profile-form + .account-profile-section {
  margin-top: 2.5rem;
}

.page-shell.page-shell--profil .account-profile-section {
  margin-top: 2.5rem;
  padding: 1.6rem 1.5rem 1.65rem;
  border-radius: 28px;
  background: #fff !important;
  border: none !important;
  box-shadow: var(--profil-card-shadow) !important;
}

/* Titres de blocs — même typo que « Espace candidat », en gras */
.page-shell--profil .profil-block__title,
.page-shell--profil .profil-block__title--sub {
  margin: 0 0 1rem;
  text-align: center;
  font-family: var(--font-ui) !important;
  font-size: clamp(0.78rem, 2.2vw, 0.92rem);
  font-weight: 700;
  font-style: normal;
  letter-spacing: 0.18em;
  line-height: 1.5;
  text-transform: uppercase;
  color: #000 !important;
}

.page-shell--profil .profil-block__title--sub {
  margin: 1.35rem 0 0.75rem;
  font-size: clamp(0.74rem, 2vw, 0.88rem);
}

.page-shell--profil .profil-block__title::after,
.page-shell--profil .profil-block__title--sub::after {
  content: none;
  display: none;
}

.page-shell--profil .profil-block__card-title {
  margin: 0;
  font-family: var(--font-editorial) !important;
  font-size: 1.05rem;
  font-weight: 650;
  letter-spacing: -0.01em;
  line-height: 1.3;
  color: #101010;
  padding-left: 0;
  border-left: none;
}

.page-shell--profil .account-access-card__head {
  align-items: flex-end;
  padding-bottom: 0.75rem;
  border-bottom-color: var(--line-soft);
}

@media (max-width: 520px) {
  .page-shell--profil .account-access-card__head {
    flex-direction: column;
    align-items: flex-start;
    gap: 0.35rem;
  }

  .page-shell--profil .account-access-card__meta {
    text-align: left;
    max-width: none;
  }
}

.page-shell--profil .account-access-card__meta {
  color: var(--text-muted);
  font-size: 0.82rem;
  max-width: 16rem;
  font-family: var(--font-ui);
}

.page-shell--profil .account-access-card {
  background: #fff;
  border: none;
  border-radius: 20px;
  box-shadow: var(--profil-card-shadow);
}

.page-shell--profil .account-access-row__label {
  color: #101010;
  font-family: var(--font-ui);
  font-weight: 600;
}

.page-shell--profil .account-access-row__input {
  border-color: var(--line-strong);
  border-radius: 10px;
  background: #fff;
  color: #101010;
}

.page-shell--profil .account-access-row__input:focus {
  outline: none;
  border-color: #101010;
  box-shadow: 0 0 0 3px rgba(0, 0, 0, 0.08);
}

.page-shell--profil .account-access-btn--primary {
  background: #101010 !important;
  border-color: #101010 !important;
  color: #fff !important;
  border-radius: 10px;
}

.page-shell--profil .account-access-btn--primary:hover {
  background: #333 !important;
  border-color: #333 !important;
}

.page-shell--profil .account-access-btn--secondary {
  border-radius: 10px;
  background: #fff !important;
  border-color: var(--line-strong) !important;
  color: #101010 !important;
}

.page-shell--profil .account-access-btn--secondary:hover {
  background: #f4f4f4 !important;
  border-color: #101010 !important;
}

.page-shell--profil .account-access-guest-banner {
  background: #fff;
  border: none;
  border-radius: 20px;
  box-shadow: var(--profil-card-shadow);
}

.page-shell--profil .account-access-login-submit {
  border-radius: 10px;
  max-width: 16rem;
}

.page-shell--profil .forum-room__label {
  display: block;
  margin-bottom: 0.3rem;
  font-family: var(--font-ui);
  font-size: 0.68rem;
  font-weight: 600;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: #000;
}

.page-shell--profil .forum-room__input,
.page-shell--profil .forum-fil-photo-input {
  border-radius: 10px;
  border: 1px solid var(--line-strong);
  background: #fff;
  color: #101010;
  box-shadow: none;
  font-family: var(--font-ui);
}

.page-shell--profil .forum-room__input:focus {
  outline: none;
  border-color: #101010;
  box-shadow: 0 0 0 3px rgba(0, 0, 0, 0.07);
}

.page-shell--profil .account-profile-email-readonly {
  cursor: default;
  color: #666;
  background: #f6f6f6;
}

.page-shell--profil .account-profile-form__actions {
  display: flex;
  justify-content: center;
  margin-top: 1.35rem;
}

.page-shell--profil .forum-room__submit {
  border-radius: 10px;
  background: #101010 !important;
  border-color: #101010 !important;
  color: #fff !important;
}

.page-shell--profil .forum-room__submit:hover {
  background: #333 !important;
  border-color: #333 !important;
}

.page-shell--profil .student-logout-btn {
  min-width: 12rem;
  border-radius: 10px;
  padding: 0.6rem 1.5rem;
  border: 1px solid var(--line-strong) !important;
  background: #fff !important;
  color: #101010 !important;
  font-weight: 650;
}

.page-shell--profil .student-logout-btn:hover {
  background: #f4f4f4 !important;
  border-color: #101010 !important;
  color: #101010 !important;
}

.page-shell--profil .settings-placeholder,
.page-shell--profil .subject-page-placeholder {
  margin: 0.25rem 0 0;
  padding: 0.85rem 1rem;
  border-radius: 16px;
  border: none;
  background: rgba(0, 0, 0, 0.03);
  box-shadow: none;
  color: #333;
  font-family: var(--font-ui);
  font-size: 0.98rem;
  line-height: 1.5;
  font-weight: 500;
  text-align: center;
}

.page-shell--profil .profil-supabase-password .subject-page-placeholder {
  margin-bottom: 0.15rem;
}

.page-shell--profil .account-profile-section[aria-labelledby="profil-saved-veilles-title"] .settings-placeholder {
  margin: 0 0 0.35rem;
  padding: 0;
  background: transparent !important;
  border: none;
  box-shadow: none;
}

.page-shell--profil #profile-saved-veilles-list:empty {
  display: none;
  margin: 0;
  padding: 0;
  border: none;
  box-shadow: none !important;
  background: transparent !important;
}

.page-shell--profil #profile-saved-veilles-list:not(:empty) {
  margin-top: 0.5rem;
  padding: 0;
  gap: 0;
  border-radius: 20px;
  border: none;
  overflow: hidden;
  background: #fff !important;
  box-shadow: var(--profil-card-shadow);
}

.page-shell--profil .document-card--veille-feed {
  background: #fff !important;
  border-bottom-color: var(--line-soft);
}

.page-shell--profil .account-profile-form__notify {
  color: #444;
  font-size: 0.95rem;
  text-align: center;
}

.page-shell--profil .account-access-guest-banner {
  border-radius: 20px;
  border: none;
  background: #fff;
  box-shadow: var(--profil-card-shadow);
}

.page-shell--profil .account-access-guest-banner__text {
  color: #333;
  font-family: var(--font-ui);
}

.page-shell--profil a {
  color: #101010;
}

.page-shell--profil a:hover {
  color: #444;
}

.page-shell--profil ::selection {
  background: #101010;
  color: #fff;
}

.page-shell--profil *:focus-visible {
  outline-color: rgba(0, 0, 0, 0.35) !important;
}

.notifications-page__item--birthday {
  border-color: rgba(16, 16, 16, 0.2);
}

.notifications-page__birthday-dismiss {
  font: inherit;
  font-size: 0.88rem;
  font-weight: 600;
  padding: 0.4rem 0.9rem;
  border-radius: 8px;
  cursor: pointer;
  border: 1px solid rgba(16, 16, 16, 0.25);
  background: rgba(255, 255, 255, 0.85);
  color: var(--cherry);
}

/* ——— Pense-bêtes (rappels validables) ——— */
.pense-betes-layout {
  position: relative;
  display: block;
  max-width: 68rem;
  margin-left: auto;
  margin-right: auto;
  margin-top: 6rem;
}

.pense-betes-layout__illustration {
  position: absolute;
  left: -9.25rem;
  bottom: -0.35rem;
  margin: 0;
  width: min(100%, 24.5rem);
  border-radius: 0;
  overflow: visible;
  line-height: 0;
  transform: translateY(0);
  pointer-events: none;
  z-index: 2;
  opacity: 0.93;
  filter: drop-shadow(0 18px 28px rgba(0, 0, 0, 0.16));
}

.pense-betes-layout__illustration-image {
  display: block;
  width: 100%;
  height: auto;
  object-fit: cover;
  object-position: center bottom;
  filter: grayscale(1) contrast(1.06) brightness(0.98);
}

.pense-betes-section {
  position: relative;
  margin: 0;
  scroll-margin-top: 5.5rem;
  padding: 1.6rem 1.5rem 1.65rem;
  background: #fff;
  border-radius: 28px;
  border: none;
  box-shadow: 0 10px 22px rgba(0, 0, 0, 0.06);
  max-width: 48rem;
  margin-left: auto;
  margin-right: auto;
  isolation: isolate;
}

.pense-betes-section__paper-stack {
  display: none;
}

.pense-betes-section__paper-stack::before,
.pense-betes-section__paper-stack::after {
  content: none;
}

.pense-betes-section__sealed-note {
  display: none;
}

.pense-betes-section::before,
.pense-betes-section::after {
  content: none;
}

.pense-betes-section > *:not(.pense-betes-section__paper-stack) {
  position: relative;
  z-index: 1;
  width: auto;
  margin-left: 0;
  margin-right: 0;
}

.home-veille-feature {
  margin: 5rem 0 4.5rem;
  padding-top: 0;
  display: flex;
  justify-content: center;
}

.home-veille-feature__card {
  width: 100%;
  padding: 1rem 0.25rem 1.15rem;
  border-radius: 0;
  background: transparent;
  border: none;
  box-shadow: none;
  text-align: left;
}

.home-veille-feature__topline {
  display: flex;
  flex-wrap: nowrap;
  align-items: stretch;
  gap: 0;
  margin-bottom: 0.82rem;
  border-top: 2px solid #111;
  border-bottom: 2px solid #111;
}

.home-veille-feature__divider {
  display: none;
}

.home-veille-feature__tag,
.home-veille-feature__date {
  margin: 0;
  flex: 1 1 0;
  padding: 0.38rem 0.45rem;
  text-align: center;
  font-family: var(--font-ui);
  font-size: 0.68rem;
  font-weight: 800;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: #111;
  border-left: 1px solid rgba(0, 0, 0, 0.55);
}

.home-veille-feature__kicker {
  margin: 0;
  flex: 1 1 0;
  padding: 0.38rem 0.45rem;
  text-align: center;
  font-family: var(--font-ui);
  font-size: 0.68rem;
  font-weight: 800;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: #111;
}

.home-veille-feature__title {
  margin: 0 0 0.45rem;
  font-family: "Fraunces", Georgia, "Times New Roman", serif;
  font-size: clamp(1.5rem, 3.2vw, 2.35rem);
  font-weight: 550;
  line-height: 1.08;
  letter-spacing: -0.015em;
  color: #121212;
  text-transform: uppercase;
  text-align: justify;
  text-align-last: left;
  hyphens: manual;
  -webkit-hyphens: manual;
}

.home-veille-feature__text {
  margin: 0 0 0.95rem;
  max-width: none;
  font-family: var(--font-ui);
  font-size: 1.02rem;
  line-height: 1.5;
  color: #222;
  text-align: justify;
  text-align-last: left;
  hyphens: manual;
  -webkit-hyphens: manual;
  display: -webkit-box;
  -webkit-line-clamp: 3;
  line-clamp: 3;
  -webkit-box-orient: vertical;
  overflow: hidden;
}

.home-veille-feature__link {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 0.42rem 0.92rem;
  border-radius: 2px;
  border: 1px solid #111;
  background: transparent;
  font-family: var(--font-ui);
  font-size: 0.66rem;
  font-weight: 800;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  text-decoration: none;
  color: #111 !important;
}

.home-veille-feature__link:hover,
.home-veille-feature__link:focus-visible {
  background: #111;
  border-color: #111;
  color: #fff !important;
}

@media (max-width: 640px) {
  .home-veille-feature__card {
    padding: 0.95rem 0.95rem 1rem;
  }

  .home-veille-feature__topline {
    flex-wrap: wrap;
  }

  .home-veille-feature__kicker,
  .home-veille-feature__tag,
  .home-veille-feature__date {
    flex: 1 1 100%;
    border-left: none;
    border-top: 1px solid rgba(0, 0, 0, 0.55);
  }

  .home-veille-feature__kicker {
    border-top: none;
  }
}

.pense-betes-separator {
  margin: 2.65rem 0 1.15rem;
  display: flex;
  justify-content: center;
}

.motivation-note-card {
  position: relative;
  width: min(100%, 28rem);
  margin: 0;
  padding: 0.9rem 1rem 1rem;
  background: #fff;
  border: 1px solid rgba(221, 159, 123, 0.35);
  border-radius: 12px;
}

.motivation-note-card__label {
  margin: 0;
  font-family: "Fraunces", Georgia, "Times New Roman", serif;
  font-size: clamp(1rem, 2.3vw, 1.3rem);
  font-weight: 700;
  line-height: 1.1;
  letter-spacing: -0.01em;
  color: var(--cherry-dark);
  text-transform: uppercase;
}

.motivation-note-card__to {
  margin: 0.35rem 0 0.65rem;
  padding-top: 0.32rem;
  border-top: 1px solid rgba(207, 133, 98, 0.36);
  font-family: var(--font-condensed);
  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: #7f7f7f;
}

.motivation-note-card__message {
  margin: 0;
  text-align: center;
  font-family: "Fraunces", Georgia, "Times New Roman", serif;
  font-size: clamp(1.5rem, 3.8vw, 2.45rem);
  font-style: italic;
  font-weight: 500;
  line-height: 0.92;
  letter-spacing: -0.01em;
  color: var(--cherry-dark);
  text-transform: lowercase;
}

.pense-betes-section__title {
  margin: 0 0 0.35rem;
  font-family: var(--font-editorial);
  font-size: clamp(1.75rem, 3.8vw, 2.35rem);
  font-weight: 800;
  line-height: 1.12;
  letter-spacing: -0.02em;
  text-transform: none;
  color: var(--cherry);
}

.pense-betes-section__title--fashion {
  position: relative;
  display: inline-block;
  width: min(100%, 9.6ch);
  line-height: 0.9;
  color: #121212;
}

.pense-betes-section__title-line {
  display: block;
  font-family: "Fraunces", Georgia, "Times New Roman", serif;
  font-weight: 700;
  letter-spacing: -0.04em;
}

.pense-betes-section__title-line--a {
  font-family: "Fraunces", Georgia, "Times New Roman", serif;
  font-size: clamp(2.25rem, 5.9vw, 4.1rem);
  font-style: italic;
  font-weight: 600;
  letter-spacing: -0.03em;
  line-height: 0.9;
  margin-left: 0.58ch;
  color: #0b0b0b;
  text-transform: none;
}

.pense-betes-section__title-line--b {
  margin-top: -0.2em;
  margin-left: 0.12ch;
  font-family: "Fraunces", Georgia, "Times New Roman", serif;
  font-size: clamp(2.75rem, 7.2vw, 4.95rem);
  font-style: normal;
  font-weight: 700;
  letter-spacing: -0.035em;
  line-height: 0.84;
  color: #050505;
  text-transform: lowercase;
}

.pense-betes-section__title::after {
  content: none;
}

.pense-betes-section__head {
  position: relative;
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: center;
  gap: 0.75rem 1rem;
  padding-top: 0.15rem;
  margin-bottom: 1.6rem;
}

.pense-betes-section__head::before,
.pense-betes-section__head::after {
  content: none;
}

.pense-betes-section__head .pense-betes-section__title {
  flex: 1 1 12rem;
  min-width: 0;
  margin-bottom: 0;
  text-align: center;
}

.pense-betes-section .pense-bete-add-panel {
  border-color: rgba(239, 184, 153, 0.28);
}

.pense-betes-section .pense-bete {
  border-color: rgba(16, 16, 16, 0.09);
  background-image: none;
}

@media (max-width: 640px) {
  .pense-betes-layout {
    display: block;
    margin-top: 2.45rem;
    max-width: none;
  }

  .pense-betes-layout__illustration {
    position: static;
    width: min(100%, 13rem);
    margin: 0 auto 0.55rem;
    transform: none;
    left: auto;
    bottom: auto;
    filter: drop-shadow(0 8px 14px rgba(0, 0, 0, 0.1));
  }

  .pense-betes-section {
    padding: 1.2rem 0.95rem 1.35rem;
    border-radius: 22px;
  }

  .pense-betes-section::before {
    left: 0.7rem;
    width: 8.5rem;
    height: 1.35rem;
  }

  .pense-betes-section::after {
    right: 0.7rem;
    width: 7.8rem;
    height: 1.25rem;
  }

  .pense-betes-section__paper-stack {
    display: none;
  }

  .pense-betes-section > *:not(.pense-betes-section__paper-stack) {
    width: auto;
  }

  .pense-betes-section__head {
    padding-top: 0;
  }

}

.pense-betes-section__head .pense-betes-section__title--fashion {
  width: min(100%, 8.8ch);
}

.pense-bete-add-toggle {
  flex-shrink: 0;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 2.75rem;
  height: 2.75rem;
  padding: 0;
  font-family: var(--font-ui);
  font-size: 1.65rem;
  font-weight: 700;
  line-height: 1;
  color: #111;
  background: var(--cherry);
  border: 1px solid var(--cherry-dark);
  border-radius: 50%;
  cursor: pointer;
  box-shadow: 0 6px 18px rgba(221, 159, 123, 0.28);
  transition: transform 0.15s ease, box-shadow 0.15s ease, background 0.15s ease;
}

.pense-betes__block-head--perso {
  margin-top: 2.4rem;
}

.pense-bete-add-toggle:hover {
  transform: scale(1.04);
  background: var(--cherry-dark);
  box-shadow: 0 8px 22px rgba(221, 159, 123, 0.36);
}

.pense-bete-add-toggle:focus-visible {
  outline: 2px solid var(--cherry-dark);
  outline-offset: 3px;
}

.pense-bete-add-toggle__glyph {
  position: relative;
  top: -0.05em;
}

.pense-bete-add-panel {
  margin: 1.25rem 0 1.6rem;
  padding: 1.15rem 1.2rem 1.3rem;
  background: linear-gradient(180deg, #ffffff, #fcfcfc);
  border: 1px solid rgba(16, 16, 16, 0.1);
  border-radius: 18px;
  box-shadow: 0 8px 18px rgba(0, 0, 0, 0.05);
}

.pense-bete-add-panel__hint {
  margin: 0 0 1.05rem;
  font-family: "Fraunces", Georgia, "Times New Roman", serif;
  font-size: clamp(1rem, 2.1vw, 1.1rem);
  font-style: italic;
  font-weight: 500;
  letter-spacing: -0.01em;
  line-height: 1.35;
  color: #1f1f1f;
}

.pense-bete-add-form {
  display: flex;
  flex-direction: column;
  gap: 0.95rem;
}

.pense-bete-add-form__field {
  display: flex;
  flex-direction: column;
  gap: 0.4rem;
}

.pense-bete-add-form__label {
  font-family: var(--font-ui);
  font-size: 0.8rem;
  font-weight: 700;
  letter-spacing: 0.03em;
  text-transform: uppercase;
  color: #4a4a4a;
}

.pense-bete-add-form__input {
  box-sizing: border-box;
  width: 100%;
  max-width: 100%;
  min-height: 3.05rem;
  padding: 0.62rem 0.78rem;
  font-family: var(--font-ui);
  font-size: 1.02rem;
  font-weight: 500;
  color: var(--text-on-cream);
  background: #fff;
  border: 1px solid rgba(16, 16, 16, 0.14);
  border-radius: 12px;
}

.pense-bete-add-form__input:focus {
  outline: 2px solid rgba(221, 159, 123, 0.46);
  outline-offset: 1px;
}

.pense-bete-add-form__actions {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.65rem 0.75rem;
  margin-top: 0.3rem;
}

.pense-bete-add-form__actions .juris-submit--small {
  margin-top: 0;
  min-height: 2.2rem;
  padding: 0.52rem 0.88rem;
  font-size: 0.74rem;
  letter-spacing: 0.08em;
}

.pense-bete-add-form__cancel {
  padding: 0.52rem 0.88rem;
  font-family: var(--font-ui);
  font-size: 0.74rem;
  font-weight: 700;
  letter-spacing: 0.08em;
  line-height: 1;
  min-height: 2.2rem;
  text-transform: uppercase;
  color: #111;
  background: #fff;
  border: 1px solid rgba(16, 16, 16, 0.2);
  border-radius: 999px;
  cursor: pointer;
}

.pense-bete-add-form__cancel:hover {
  background: #111;
  color: #fff;
  border-color: #111;
}

.pense-betes-global-block {
  margin: 0 0 2.25rem;
}

.pense-bete--perso {
  display: flex;
  flex-direction: row;
  align-items: stretch;
  gap: 0;
}

.pense-bete--perso .pense-bete__label {
  flex: 1;
  min-width: 0;
}

.pense-bete__remove {
  flex-shrink: 0;
  align-self: stretch;
  margin: 0.35rem 0.45rem 0.35rem 0;
  padding: 0 0.65rem;
  font-family: var(--font-ui);
  font-size: 0.78rem;
  font-weight: 700;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: var(--cherry-dark);
  background: rgba(255, 255, 255, 0.75);
  border: 1px solid rgba(221, 159, 123, 0.32);
  border-radius: 12px;
  cursor: pointer;
  transition: background 0.15s ease, color 0.15s ease, border-color 0.15s ease;
}

.pense-bete__remove:hover {
  color: #111;
  background: #fff;
  border-color: rgba(16, 16, 16, 0.35);
}

.pense-betes__block {
  margin-top: 2.4rem;
}

.pense-betes__block:first-of-type {
  margin-top: 1.25rem;
}

.pense-betes__block-head {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 0.5rem 0.75rem;
  margin: 2.4rem 0 0.85rem;
}

.pense-betes__block-head .pense-betes__subheading {
  margin: 0;
  flex: 1 1 10rem;
  min-width: 0;
}

.pense-betes__block-panel[hidden] {
  display: none;
}

.pense-betes__visibility-btn {
  flex-shrink: 0;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 2.2rem;
  height: 2.2rem;
  padding: 0;
  border: 1px solid #111;
  border-radius: 50%;
  background: #111;
  color: #fff;
  cursor: pointer;
  transition: background 0.15s ease, transform 0.12s ease;
}

.pense-betes__visibility-btn:hover {
  background: #2b2b2b;
  transform: scale(1.05);
}

.pense-betes__visibility-btn:focus-visible {
  outline: 2px solid var(--cherry-dark);
  outline-offset: 2px;
}

.pense-betes__visibility-svg {
  display: block;
}

.pense-betes__visibility-btn .pense-betes__eye-slash {
  display: none;
}

.pense-betes__visibility-btn.pense-betes__visibility-btn--section-hidden .pense-betes__eye-slash {
  display: block;
}

.pense-betes__subheading {
  margin: 2.4rem 0 0.85rem;
  font-family: "Fraunces", Georgia, "Times New Roman", serif;
  font-size: clamp(1.42rem, 2.9vw, 1.95rem);
  font-weight: 700;
  color: #111;
  letter-spacing: -0.02em;
}

.pense-betes__subintro {
  margin: 0 0 1.1rem;
  font-family: var(--font-ui);
  font-size: 0.96rem;
  line-height: 1.5;
  color: var(--text-muted);
}

.pense-betes-list {
  margin: 0;
  padding: 0;
  list-style: none;
  display: flex;
  flex-direction: column;
  gap: 0.7rem;
}

.pense-bete {
  position: relative;
  border-radius: 12px;
  background-color: #fff;
  border: 1px solid rgba(16, 16, 16, 0.09);
  background-image: none;
  transition: opacity 0.2s ease, background 0.2s ease;
}

.pense-bete--done {
  opacity: 0.78;
  background-color: rgba(255, 255, 255, 0.96);
}

.pense-bete__label {
  display: flex;
  align-items: flex-start;
  gap: 0.75rem;
  padding: 0.72rem 1rem;
  cursor: pointer;
}

.pense-bete__input {
  flex-shrink: 0;
  width: 1rem;
  height: 1rem;
  margin-top: 0.32rem;
  accent-color: #dd9f7b;
  border-radius: 50%;
  cursor: pointer;
}

.pense-bete__content {
  flex: 1;
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: 0.35rem;
}

@media (min-width: 560px) {
  .pense-bete__content {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    align-items: start;
    column-gap: 1rem;
    row-gap: 0.35rem;
  }

  .pense-bete__text {
    max-width: none;
  }

  .pense-bete__deadline {
    grid-column: 2;
    grid-row: 1;
    align-self: start;
    margin-top: 0;
  }
}

.pense-bete__text {
  font-family: "Fraunces", Georgia, "Times New Roman", serif;
  font-size: 1.06rem;
  font-weight: 600;
  color: #171717;
  line-height: 1.36;
  text-align: justify;
}

.pense-bete--done .pense-bete__text {
  text-decoration: line-through;
  color: var(--text-muted);
}

.pense-bete__deadline {
  flex-shrink: 0;
  align-self: flex-end;
  margin-left: auto;
  text-align: right;
  font-family: var(--font-ui);
  font-size: 0.62rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.22em;
  color: #171717;
}

.pense-bete--done .pense-bete__deadline {
  color: #171717;
  text-decoration: none;
}

.countdown-card {
  position: relative;
  margin-top: 0;
  padding: 1.55rem 1.5rem 1.7rem;
  background-color: #ffffff;
  color: #2a2a2a;
  border-radius: 0 0 28px 28px;
  border: none;
  border-top: none;
  box-shadow: 0 10px 22px rgba(0, 0, 0, 0.06);
}

.countdown-card__header {
  position: absolute;
  top: 0.65rem;
  right: 0.65rem;
  z-index: 2;
}

.countdown-hide-toggle {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 2.35rem;
  height: 2.35rem;
  padding: 0;
  border: 1px solid rgba(16, 16, 16, 0.14);
  border-radius: 12px;
  background: #fff;
  color: #6a6a6a;
  cursor: pointer;
  transition:
    color 0.15s ease,
    border-color 0.15s ease,
    background 0.15s ease;
}

.countdown-hide-toggle:hover {
  color: #111;
  border-color: rgba(16, 16, 16, 0.32);
  background: #fafafa;
}

.countdown-hide-toggle[aria-pressed="true"] {
  color: #111;
  border-color: rgba(16, 16, 16, 0.32);
  background: #fafafa;
}

.countdown-hide-toggle:focus-visible {
  outline: 2px solid var(--cherry-dark);
  outline-offset: 2px;
}

.countdown-hide-toggle__icon {
  display: block;
}

.countdown-intro {
  margin: 0 0 1.35rem;
  font-family: var(--font-ui);
  font-size: 0.7rem;
  font-weight: 700;
  line-height: 1.45;
  text-align: center;
  text-transform: uppercase;
  letter-spacing: 0.22em;
  color: #4a4a4a;
}

.countdown-intro strong {
  font-weight: 700;
  color: #101010;
  text-decoration: none;
  letter-spacing: 0.22em;
}

.countdown-intro__detail {
  display: none;
}

.countdown-units {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 0.65rem;
}

@media (max-width: 640px) {
  .countdown-units {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

.countdown-unit {
  padding: 0.25rem 0.35rem 0.35rem;
  background: transparent;
  border-radius: 0;
  border: none;
  text-align: center;
}

.countdown-unit__value {
  position: relative;
  display: grid;
  place-items: center;
  min-height: 5.65rem;
  padding: 0.6rem 0.45rem;
  border-radius: 14px;
  border: 1px solid #1a1a1a;
  background: #0d0d0d;
  font-family: "Fraunces", Georgia, "Times New Roman", serif;
  font-size: clamp(2.7rem, 8.3vw, 4.45rem);
  font-variant-numeric: lining-nums tabular-nums;
  font-feature-settings: "tnum" 1, "lnum" 1;
  font-weight: 600;
  line-height: 1;
  letter-spacing: -0.025em;
  color: #f5f5f5;
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.08);
}

.countdown-unit__value::after {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  top: 50%;
  margin-top: -0.5px;
  border-top: 1px solid rgba(245, 245, 245, 0.28);
}

.countdown-unit__label {
  display: block;
  margin-top: 0.55rem;
  font-family: var(--font-ui);
  font-size: 0.62rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.22em;
  color: #5e5e5e;
  opacity: 1;
}

.countdown-done {
  margin: 0 0 0.5rem;
  font-family: "Fraunces", Georgia, "Times New Roman", serif;
  font-size: clamp(1.25rem, 3vw, 1.5rem);
  font-weight: 600;
  font-style: italic;
  letter-spacing: -0.015em;
  text-align: center;
  color: #101010;
  line-height: 1.35;
}

.countdown-timeline {
  margin-top: 1.35rem;
  padding-top: 0.9rem;
  padding-bottom: 0.2rem;
  border-top: 1px solid rgba(16, 16, 16, 0.12);
}

.countdown-timeline__meta {
  display: flex;
  align-items: flex-start;
  gap: 0.45rem;
  margin-bottom: 0.75rem;
}

.countdown-timeline__logo {
  flex-shrink: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 2rem;
  height: 2rem;
  margin-top: 0.1rem;
  color: rgba(16, 16, 16, 0.32);
  opacity: 0.95;
}

.countdown-timeline__caption {
  margin: 0;
  flex: 1;
  min-width: 0;
  font-family: var(--font-ui);
  font-size: 0.72rem;
  font-weight: 600;
  line-height: 1.45;
  letter-spacing: 0;
  color: #3a3a3a;
  text-align: left;
}

.countdown-timeline__track {
  position: relative;
  height: 0.3rem;
  border-radius: 999px;
  background: rgba(0, 0, 0, 0.07);
  overflow: visible;
  box-shadow: none;
}

.countdown-timeline__past {
  position: absolute;
  left: 0;
  top: 0;
  bottom: 0;
  width: 0%;
  max-width: 100%;
  border-radius: 999px 0 0 999px;
  background: #191919;
  transition: width 0.45s ease;
}

.countdown-timeline__pin {
  position: absolute;
  top: 50%;
  left: 0%;
  width: 30px;
  height: 30px;
  transform: translate(-50%, -58%);
  border-radius: 0;
  background: transparent;
  border: none;
  background-image: url("./assets/robe-avocat.svg");
  background-repeat: no-repeat;
  background-size: contain;
  background-position: center;
  box-shadow: none;
  transition: left 0.45s ease;
  z-index: 1;
  pointer-events: none;
}

.countdown-timeline__pin::after {
  content: none;
}

.countdown-timeline__labels {
  display: flex;
  justify-content: space-between;
  gap: 0.75rem;
  margin-top: 0.7rem;
  font-family: var(--font-ui);
  font-size: 0.58rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.22em;
  color: #757575;
}

.countdown-reveal-strip {
  margin: 0.35rem auto 2.5rem;
  width: min(var(--site-layout-max), var(--site-layout-pad));
  text-align: center;
}

.save-date-section {
  margin: 0 0 -0.35rem;
}

.save-date-card {
  position: relative;
  overflow: hidden;
  padding: 1.5rem 1.8rem 1.25rem;
  border-radius: 28px 28px 0 0;
  border: none;
  border-bottom: none;
  background: #ffffff;
  box-shadow: 0 -2px 0 0 rgba(0, 0, 0, 0) inset;
}

.save-date-card__kicker {
  margin: 0;
  text-align: center;
  font-family: "Fraunces", Georgia, "Times New Roman", serif;
  font-size: clamp(1.2rem, 2.95vw, 1.55rem);
  font-style: italic;
  font-weight: 500;
  letter-spacing: -0.005em;
  color: #3a3a3a;
}

.save-date-card__title {
  margin: 0.25rem 0 0.75rem;
  text-align: center;
  font-family: "Fraunces", Georgia, "Times New Roman", serif;
  font-size: clamp(1.6rem, 4.85vw, 2.55rem);
  font-weight: 700;
  line-height: 1.05;
  letter-spacing: -0.025em;
  color: #101010;
}

.save-date-card__title sup {
  font-size: 0.55em;
  font-weight: 600;
  font-style: italic;
  vertical-align: super;
  margin-left: 0.05em;
}

.save-date-calendar {
  position: relative;
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 0.7rem;
  align-items: center;
  margin: 0 auto 0.7rem;
  max-width: 30rem;
  padding: 0.5rem 0;
}

.save-date-calendar::before {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  top: 50%;
  border-top: 1px solid rgba(239, 184, 153, 0.55);
}

.save-date-calendar__day {
  position: relative;
  z-index: 1;
  text-align: center;
  font-family: "Fraunces", Georgia, "Times New Roman", serif;
  font-size: clamp(2.35rem, 8vw, 3.85rem);
  font-weight: 600;
  letter-spacing: -0.02em;
  line-height: 1;
  font-variant-numeric: lining-nums;
}

.save-date-calendar__day--muted {
  color: rgba(16, 16, 16, 0.32);
  font-weight: 500;
}

.save-date-calendar__day--target {
  color: var(--cherry-dark);
  font-style: italic;
  font-weight: 600;
}

.save-date-calendar__day--target::before {
  content: "";
  position: absolute;
  inset: -0.35rem -0.55rem -0.45rem;
  border: 3px solid var(--cherry-dark);
  border-radius: 50%;
}

.save-date-card__meta {
  margin: 0;
  text-align: center;
  font-family: var(--font-ui);
  font-size: 0.7rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.22em;
  color: var(--text-muted);
}

.countdown-reveal-strip__btn {
  font-family: var(--font-ui);
  font-size: 0.72rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.14em;
  color: var(--text-muted);
  background: rgba(255, 255, 255, 0.75);
  border: 1px solid rgba(16, 16, 16, 0.18);
  border-radius: 999px;
  padding: 0.5rem 1.1rem;
  cursor: pointer;
  transition: color 0.15s ease, border-color 0.15s ease, background 0.15s ease;
}

.countdown-reveal-strip__btn:hover {
  color: #111;
  border-color: rgba(16, 16, 16, 0.4);
  background: #fff;
}

.subjects-section {
  margin-top: 0;
  scroll-margin-top: 5.5rem;
}

.subjects-heading {
  margin: 0 0 1rem;
  font-family: var(--font-editorial);
  font-size: clamp(1.75rem, 3.8vw, 2.35rem);
  font-weight: 800;
  line-height: 1.12;
  letter-spacing: -0.02em;
  text-transform: none;
  color: var(--cherry);
}

.subjects-heading::after {
  content: "";
  display: block;
  width: 3rem;
  height: 4px;
  margin-top: 0.5rem;
  border-radius: 2px;
  background: var(--cherry);
}

.subjects-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 1rem;
}

@media (max-width: 560px) {
  .subjects-grid {
    grid-template-columns: 1fr;
  }
}

/* Blocs matières : alternance cherry / cream (fort contraste) */
.subject-card {
  display: flex;
  flex-direction: column;
  justify-content: center;
  gap: 0.45rem;
  min-height: 168px;
  padding: 1.4rem 1.35rem;
  border-radius: 28px;
  text-decoration: none;
  border: 2px solid transparent;
  box-shadow: 0 12px 32px rgba(42, 24, 24, 0.1);
  transition: transform 0.2s ease, box-shadow 0.2s ease;
}

.subject-card:nth-child(odd) {
  background-color: var(--cherry);
  color: var(--cream);
  border-color: rgba(239, 230, 222, 0.35);
}

.subject-card:nth-child(even) {
  background-color: var(--cream);
  color: var(--cherry);
  border-color: rgba(16, 16, 16, 0.2);
  box-shadow: 0 12px 32px rgba(16, 16, 16, 0.08);
}

.subject-card:hover {
  transform: translateY(-4px) scale(1.01);
  box-shadow: 0 20px 44px rgba(42, 24, 24, 0.14);
}

.subject-card:focus-visible {
  outline: 3px solid var(--cherry);
  outline-offset: 3px;
}

.subject-card:nth-child(odd):focus-visible {
  outline-color: var(--cream);
}

.subject-card-title {
  font-family: var(--font-display);
  font-size: 1.12rem;
  font-weight: 700;
  line-height: 1.28;
  letter-spacing: -0.02em;
}

.subject-card:nth-child(odd) .subject-card-title {
  color: var(--cream);
}

.subject-card:nth-child(even) .subject-card-title {
  color: var(--cherry);
}

.subject-card-hint {
  font-family: var(--font-ui);
  font-size: 0.65rem;
  font-weight: 700;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  opacity: 0.88;
}

.subject-progress {
  display: flex;
  align-items: center;
  gap: 0.65rem;
  margin-top: 0.35rem;
  width: 100%;
  pointer-events: none;
}

.subject-progress__track {
  flex: 1;
  min-width: 0;
  height: 10px;
  border-radius: 999px;
  overflow: hidden;
  background: rgba(239, 230, 222, 0.28);
  border: 1px solid rgba(239, 230, 222, 0.45);
}

.subject-card:nth-child(even) .subject-progress__track {
  background: rgba(16, 16, 16, 0.12);
  border-color: rgba(16, 16, 16, 0.22);
}

.subject-progress__fill {
  display: block;
  height: 100%;
  width: 0%;
  border-radius: 999px;
  background: var(--cream);
  transition: width 0.35s ease;
}

.subject-card:nth-child(even) .subject-progress__fill {
  background: var(--cherry);
}

.subject-progress__value {
  flex-shrink: 0;
  min-width: 2.5rem;
  font-family: var(--font-ui);
  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: 0.06em;
  text-align: right;
}

.subject-card:nth-child(odd) .subject-progress__value {
  color: var(--cream);
  opacity: 0.95;
}

.subject-card:nth-child(even) .subject-progress__value {
  color: var(--cherry);
}

/* ——— Pages matière ——— */
.subject-body {
  min-height: 100vh;
  background-color: var(--cream-paper);
  background-image: linear-gradient(180deg, var(--cream-paper) 0%, var(--cream) 45%, var(--cream-deep) 100%);
  background-attachment: fixed;
}

.page-shell {
  width: min(720px, 92%);
  margin: 1.5rem auto 3rem;
  padding: 1.75rem;
  background-color: var(--cream-deep);
  border-radius: 28px;
  border: 2px solid rgba(16, 16, 16, 0.12);
  box-shadow: 0 14px 36px rgba(42, 24, 24, 0.06);
}

.page-shell__title {
  margin: 0 0 0.85rem;
  font-family: var(--font-editorial);
  font-size: clamp(1.9rem, 4.2vw, 2.6rem);
  font-weight: 800;
  line-height: 1.1;
  letter-spacing: -0.02em;
  text-transform: none;
  color: var(--cherry);
}

.page-shell__title::after {
  content: "";
  display: block;
  width: 3rem;
  height: 4px;
  margin-top: 0.55rem;
  border-radius: 2px;
  background: var(--cherry);
}

.page-shell__lead {
  margin: 0;
  font-family: var(--font-ui);
  font-size: 1.05rem;
  line-height: 1.55;
  font-weight: 500;
  color: var(--text-muted);
}

.auth-config-banner {
  margin: 0 0 1.25rem;
  padding: 0.85rem 1rem;
  border-radius: 14px;
  border: 1px solid rgba(178, 31, 18, 0.35);
  background: rgba(178, 31, 18, 0.08);
  font-family: var(--font-ui);
  font-size: 0.92rem;
  line-height: 1.45;
  color: var(--burgundy-ink);
}

.auth-config-banner[hidden] {
  display: none !important;
}

.auth-form {
  margin-top: 1.25rem;
  display: flex;
  flex-direction: column;
  gap: 1rem;
}

.auth-form__actions {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.75rem 1rem;
  margin-top: 0.25rem;
}

.auth-form__submit {
  padding: 0.55rem 1.35rem;
  font-family: var(--font-ui);
  font-size: 0.72rem;
  font-weight: 800;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: #fff;
  background: linear-gradient(145deg, var(--cherry), var(--cherry-dark));
  border: none;
  border-radius: 999px;
  cursor: pointer;
  box-shadow: 0 6px 18px rgba(221, 159, 123, 0.22);
}

.auth-form__submit:hover {
  filter: brightness(1.05);
}

.auth-form__submit:disabled {
  opacity: 0.55;
  cursor: not-allowed;
}

.auth-form__error {
  min-height: 1.25rem;
  margin: 0;
  font-family: var(--font-ui);
  font-size: 0.88rem;
  font-weight: 600;
  color: var(--cherry-dark);
}

.auth-form__success {
  margin: 0;
  padding: 0.75rem 0.95rem;
  border-radius: 12px;
  border: 1px solid rgba(45, 106, 79, 0.35);
  background: rgba(45, 106, 79, 0.1);
  font-family: var(--font-ui);
  font-size: 0.9rem;
  line-height: 1.45;
  color: var(--burgundy-ink);
}

.auth-form__success[hidden] {
  display: none !important;
}

.auth-form__foot {
  margin: 1rem 0 0;
  font-family: var(--font-ui);
  font-size: 0.92rem;
  color: var(--text-muted);
}

.auth-form__foot a {
  color: var(--cherry);
  font-weight: 700;
}

.page-shell--planner {
  width: min(var(--site-layout-max), 94%);
}

.planner-mantra {
  margin: -0.2rem 0 1.35rem;
  text-align: center;
  color: #2e2224;
  line-height: 0.8;
  text-wrap: balance;
}

.planner-mantra__script {
  display: block;
  font-family: "Great Vibes", "Times New Roman", serif;
  font-size: clamp(2.35rem, 4.9vw, 4.2rem);
  font-weight: 400;
  letter-spacing: 0.01em;
}

.planner-mantra__script--inline {
  display: inline-block;
  margin: 0 0.2rem 0 0.95rem;
  transform: translateY(-0.45rem);
  vertical-align: middle;
}

.planner-mantra__main {
  display: block;
  font-family: "Fraunces", "Times New Roman", serif;
  font-size: clamp(3.35rem, 9.6vw, 8.7rem);
  font-weight: 600;
  letter-spacing: -0.035em;
}

.planner-mantra__main--line {
  display: inline-block;
  margin-top: -0.3rem;
  transform: translateX(-0.35rem);
}

@media (max-width: 680px) {
  .planner-mantra {
    line-height: 0.9;
  }

  .planner-mantra__script--inline {
    margin-left: 0.35rem;
    transform: translateY(-0.2rem);
  }

  .planner-mantra__main--line {
    transform: none;
  }
}

.page-shell--forum {
  width: min(1060px, 94%);
}

.page-shell--juris {
  width: min(1060px, 94%);
}

/* ——— Juris-partage (annuaire + formulaire) ——— */
.juris-spotlight {
  margin: 1rem 0 0;
  padding: 0.95rem 1.05rem 1.05rem;
  border-radius: 18px;
  background: linear-gradient(145deg, rgba(255, 252, 248, 0.98), rgba(247, 236, 230, 0.88));
  border: 1px solid rgba(16, 16, 16, 0.14);
  box-shadow: 0 6px 22px rgba(42, 24, 24, 0.05);
}

.juris-spotlight__title {
  margin: 0 0 0.55rem;
  font-family: var(--font-ui);
  font-size: 0.68rem;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: 0.14em;
  color: var(--cherry);
}

.juris-list--spotlight {
  margin-top: 0.35rem;
}

.juris-empty--spotlight {
  margin-top: 0.35rem;
}

.juris-main-tabs {
  display: flex;
  flex-wrap: wrap;
  gap: 0.45rem;
  margin: 1.15rem 0 0;
  padding: 0;
}

.juris-main-tab {
  font-family: var(--font-ui);
  font-size: 0.62rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  color: var(--text-muted);
  background: rgba(247, 241, 235, 0.65);
  border: 1.5px solid rgba(16, 16, 16, 0.18);
  border-radius: 999px;
  padding: 0.5rem 0.85rem;
  cursor: pointer;
  transition:
    background 0.15s ease,
    color 0.15s ease,
    border-color 0.15s ease;
}

.juris-main-tab__count {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 1.1rem;
  margin-left: 0.35rem;
  padding: 0.03rem 0.3rem;
  border-radius: 999px;
  font-size: 0.62rem;
  font-weight: 800;
  line-height: 1.1;
  color: var(--cream-paper);
  background: var(--cherry);
}

.juris-main-tab__count[hidden] {
  display: none !important;
}

.juris-main-tab[aria-selected="true"] .juris-main-tab__count {
  color: var(--cherry);
  background: var(--cream-paper);
}

.juris-main-tab--has-notif {
  border-color: rgba(16, 16, 16, 0.45);
  box-shadow: 0 0 0 2px rgba(16, 16, 16, 0.12);
}

.juris-main-tab:hover {
  color: var(--cherry);
  border-color: rgba(16, 16, 16, 0.35);
}

.juris-main-tab[aria-selected="true"] {
  color: var(--cream-paper);
  background: var(--cherry);
  border-color: var(--cherry);
}

.juris-main-tab:focus-visible {
  outline: 2px solid var(--cherry);
  outline-offset: 2px;
}

.juris-tab-panel {
  margin-top: 0.35rem;
}

.juris-tab-panel[hidden] {
  display: none !important;
}

.juris-submit-disclaimer {
  margin: 0 0 1rem;
  padding: 0.9rem 1rem;
  border-radius: 14px;
  background: rgba(16, 16, 16, 0.05);
  border: 1px solid rgba(16, 16, 16, 0.14);
}

.juris-submit-disclaimer p {
  margin: 0;
  font-size: 0.88rem;
  font-weight: 500;
  line-height: 1.55;
  color: var(--text-on-cream);
}

.juris-submit-section__intro {
  margin: 0 0 1rem;
  font-size: 0.9rem;
  line-height: 1.5;
  color: var(--text-muted);
}

.juris-label-row {
  display: flex;
  align-items: center;
  gap: 0.45rem;
}

.juris-help-inline-wrap {
  position: relative;
  display: inline-flex;
  align-items: center;
}

.juris-help-inline-btn {
  width: 1.3rem;
  height: 1.3rem;
  border-radius: 999px;
  border: 1px solid rgba(16, 16, 16, 0.4);
  background: rgba(16, 16, 16, 0.08);
  color: var(--cherry);
  font-size: 0.78rem;
  font-weight: 800;
  line-height: 1;
  cursor: pointer;
  padding: 0;
}

.juris-help-inline-btn:hover {
  background: rgba(16, 16, 16, 0.14);
}

.juris-help-inline-btn:focus-visible {
  outline: 2px solid var(--cherry);
  outline-offset: 2px;
}

.juris-help-inline-tooltip {
  position: absolute;
  z-index: 6;
  left: 50%;
  top: calc(100% + 0.35rem);
  transform: translateX(-50%);
  width: min(28rem, 78vw);
  padding: 0.6rem 0.7rem;
  border-radius: 10px;
  border: 1px solid rgba(16, 16, 16, 0.24);
  background: #fff9f4;
  box-shadow: 0 8px 24px rgba(42, 24, 24, 0.12);
  font-size: 0.8rem;
  line-height: 1.45;
  font-weight: 500;
  color: var(--text-on-cream);
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  transition: opacity 0.14s ease, visibility 0.14s ease;
}

.juris-help-inline-wrap:hover .juris-help-inline-tooltip,
.juris-help-inline-wrap:focus-within .juris-help-inline-tooltip {
  opacity: 1;
  visibility: visible;
}

.juris-ref-method {
  margin: 0 0 0.25rem;
  padding: 0.85rem 1rem;
  border-radius: 14px;
  background: rgba(255, 255, 255, 0.55);
  border: 1px solid rgba(16, 16, 16, 0.12);
}

.juris-ref-method__title {
  margin: 0 0 0.45rem;
  font-family: var(--font-ui);
  font-size: 0.68rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.12em;
  color: var(--cherry);
}

.juris-ref-method__text {
  margin: 0;
  font-size: 0.88rem;
  font-weight: 500;
  line-height: 1.55;
  color: var(--text-on-cream);
}

.juris-ref-method__example {
  display: inline;
  font-weight: 700;
  font-variant-numeric: tabular-nums;
  color: var(--burgundy-ink);
}

.juris-optional {
  font-weight: 600;
  text-transform: none;
  letter-spacing: 0;
  color: var(--text-muted);
}

.juris-field__hint {
  margin: 0 0 0.5rem;
  font-size: 0.82rem;
  font-weight: 500;
  line-height: 1.5;
  color: var(--text-muted);
}

.juris-submit-jp-form {
  display: flex;
  flex-direction: column;
  gap: 1rem;
  margin-top: 0.25rem;
}

.juris-fieldset {
  margin: 0;
  padding: 0;
  border: none;
  min-width: 0;
}

.juris-label--fieldset {
  margin-bottom: 0.45rem;
}

.juris-radio-row {
  display: flex;
  flex-wrap: wrap;
  gap: 0.65rem 1.25rem;
}

.juris-radio {
  display: inline-flex;
  align-items: center;
  gap: 0.45rem;
  font-size: 0.92rem;
  font-weight: 600;
  color: var(--text-on-cream);
  cursor: pointer;
}

.juris-radio input {
  width: 1rem;
  height: 1rem;
  accent-color: var(--cherry);
}

.juris-section__heading {
  margin: 1.75rem 0 0.85rem;
  font-family: var(--font-editorial);
  font-size: 1.35rem;
  font-weight: 800;
  letter-spacing: -0.02em;
  color: var(--burgundy-ink);
}

#juris-panel-annuaire .juris-section__heading:first-of-type,
#juris-panel-submit .juris-section__heading {
  margin-top: 1.1rem;
}

.juris-toolbar {
  display: grid;
  gap: 1rem;
  margin-top: 0.5rem;
}

@media (min-width: 560px) {
  .juris-toolbar {
    grid-template-columns: 1fr minmax(11rem, 14rem);
    align-items: end;
  }
}

@media (min-width: 720px) {
  .juris-toolbar {
    grid-template-columns: 1fr minmax(11rem, 14rem) minmax(9.5rem, 12rem);
    align-items: end;
  }
}

.juris-field {
  display: flex;
  flex-direction: column;
  gap: 0.35rem;
}

.juris-field--search {
  min-width: 0;
}

.juris-field--full {
  grid-column: 1 / -1;
}

.juris-field--narrow {
  max-width: 12rem;
}

.juris-field--narrow .juris-select {
  width: 100%;
}

.juris-code-meta-row {
  display: grid;
  grid-template-columns: 1fr minmax(7rem, 9rem);
  gap: 0.5rem;
}

.juris-label {
  font-size: 0.62rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.12em;
  color: var(--text-muted);
}

.juris-input,
.juris-select,
.juris-textarea {
  font-family: var(--font-ui);
  font-size: 0.92rem;
  font-weight: 600;
  color: var(--text-on-cream);
  background: #fff;
  border: 1.5px solid rgba(16, 16, 16, 0.2);
  border-radius: 12px;
  padding: 0.55rem 0.65rem;
  width: 100%;
}

.juris-input:focus,
.juris-select:focus,
.juris-textarea:focus {
  outline: none;
  border-color: var(--cherry);
  box-shadow: 0 0 0 3px rgba(16, 16, 16, 0.1);
}

.juris-textarea {
  min-height: 6rem;
  resize: vertical;
  line-height: 1.45;
}

.juris-annuaire__sort-hint {
  margin: -0.35rem 0 0.85rem;
  font-size: 0.88rem;
  font-weight: 500;
  line-height: 1.45;
  color: var(--text-muted);
}

.juris-hint {
  margin: 0.85rem 0 0;
  font-size: 0.85rem;
  font-weight: 600;
  color: var(--text-muted);
}

.juris-list {
  margin: 0.75rem 0 0;
  padding: 0;
  list-style: none;
  display: flex;
  flex-direction: column;
  gap: 0.65rem;
}

.juris-year-group {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 0.35rem;
}

.juris-year-group:not(:first-child) {
  margin-top: 0.35rem;
}

.juris-year-group__heading {
  margin: 0;
  padding: 0.35rem 0 0.15rem;
  font-family: var(--font-editorial);
  font-size: 1.05rem;
  font-weight: 800;
  letter-spacing: -0.02em;
  color: var(--cherry);
  border-bottom: 2px solid rgba(16, 16, 16, 0.18);
}

.juris-year-group__list {
  margin: 0;
  padding: 0;
  list-style: none;
  display: flex;
  flex-direction: column;
  gap: 0.65rem;
}

.juris-card {
  padding: 1rem 1.1rem;
  border-radius: 16px;
  background: var(--cream-paper);
  border: 1px solid rgba(16, 16, 16, 0.12);
  box-shadow: 0 4px 14px rgba(42, 24, 24, 0.04);
}

.juris-card__top {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  align-items: baseline;
  gap: 0.5rem 1.25rem;
  margin: 0 0 0.5rem;
}

.juris-card__matiere,
.juris-card__code {
  font-size: 0.68rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  color: var(--text-muted);
}

.juris-card__code {
  margin-left: auto;
  text-align: right;
}

.juris-card__title {
  margin: 0 0 0.45rem;
  font-family: var(--font-editorial);
  font-size: 1.08rem;
  font-weight: 700;
  line-height: 1.25;
  color: var(--cherry);
  letter-spacing: -0.02em;
}

.juris-card__reference {
  margin: 0 0 0.5rem;
  font-family: var(--font-ui);
  font-size: 0.92rem;
  font-weight: 600;
  line-height: 1.45;
  color: var(--burgundy-ink);
}

.juris-card__emplacement {
  margin: 0 0 0.55rem;
  font-size: 0.88rem;
  font-weight: 600;
  line-height: 1.5;
  color: var(--text-on-cream);
}

.juris-card__resume {
  margin: 0;
  font-size: 0.9rem;
  font-weight: 500;
  line-height: 1.5;
  color: var(--text-on-cream);
}

.juris-card__footer {
  margin-top: 0.65rem;
  padding-top: 0.55rem;
  border-top: 1px solid rgba(16, 16, 16, 0.1);
  display: flex;
  align-items: center;
  gap: 0.45rem;
  flex-wrap: wrap;
}

.juris-card__byline {
  margin: 0.35rem 0 0;
  font-size: 0.78rem;
  color: var(--text-muted);
  font-style: italic;
}

.juris-card__report-btn {
  display: inline-flex;
  align-items: center;
  padding: 0.35rem 0.75rem;
  border-radius: 999px;
  font-family: var(--font-ui);
  font-size: 0.78rem;
  font-weight: 700;
  color: var(--burgundy-ink);
  background: rgba(255, 255, 255, 0.85);
  border: 1px solid rgba(16, 16, 16, 0.22);
  cursor: pointer;
}

.juris-card__report-btn:hover {
  border-color: var(--cherry);
  background: #fff;
}

.juris-card__like-btn {
  display: inline-flex;
  align-items: center;
  gap: 0.25rem;
  padding: 0.35rem 0.75rem;
  border-radius: 999px;
  font-family: var(--font-ui);
  font-size: 0.78rem;
  font-weight: 700;
  color: var(--burgundy-ink);
  background: rgba(255, 255, 255, 0.85);
  border: 1px solid rgba(16, 16, 16, 0.22);
  cursor: pointer;
}

.juris-card__like-btn:hover {
  border-color: var(--cherry);
  background: #fff;
}

.juris-pagination {
  margin: 0.85rem 0 0;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 0.55rem;
}

.juris-page-btn {
  border: 1px solid rgba(16, 16, 16, 0.22);
  background: rgba(255, 255, 255, 0.85);
  color: var(--burgundy-ink);
  border-radius: 999px;
  padding: 0.35rem 0.75rem;
  font-family: var(--font-ui);
  font-size: 0.75rem;
  font-weight: 700;
  cursor: pointer;
}

.juris-page-btn[disabled] {
  opacity: 0.45;
  cursor: default;
}

.juris-page-info {
  font-size: 0.78rem;
  font-weight: 700;
  color: var(--text-muted);
}

.juris-error-report__summary {
  margin: 0 0 1rem;
  padding: 0.65rem 0.75rem;
  font-size: 0.86rem;
  font-weight: 600;
  line-height: 1.45;
  color: var(--burgundy-ink);
  background: rgba(16, 16, 16, 0.05);
  border-radius: 10px;
  border: 1px solid rgba(16, 16, 16, 0.12);
}

.juris-error-report__summary--forum {
  font-weight: 500;
  white-space: pre-wrap;
  word-break: break-word;
}

.juris-empty {
  margin: 0.75rem 0 0;
  padding: 0.85rem 1rem;
  border-radius: 14px;
  background: rgba(16, 16, 16, 0.04);
  border: 1px dashed rgba(16, 16, 16, 0.22);
  font-size: 0.9rem;
  line-height: 1.45;
  color: var(--text-muted);
}

.juris-empty__line {
  display: block;
  margin-bottom: 0.5rem;
}

.juris-empty__help-btn {
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
  margin: 0;
  padding: 0;
  border: none;
  background: none;
  font: inherit;
  font-weight: 600;
  color: rgba(16, 16, 16, 0.95);
  text-decoration: underline;
  text-underline-offset: 0.12em;
  cursor: pointer;
  text-align: left;
}

.juris-empty__help-btn:hover,
.juris-empty__help-btn:focus-visible {
  color: rgba(120, 0, 4, 1);
}

.juris-help-bar {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.65rem 1rem;
  margin: 0 0 1.15rem;
}

.juris-help-chip {
  display: inline-flex;
  align-items: center;
  gap: 0.65rem;
  padding: 0.45rem 0.85rem 0.45rem 0.45rem;
  border-radius: 999px;
  border: 1.5px solid rgba(16, 16, 16, 0.28);
  background: rgba(255, 255, 255, 0.75);
  cursor: pointer;
  text-align: left;
  font: inherit;
  color: var(--burgundy-ink);
  box-shadow: 0 4px 14px rgba(42, 24, 24, 0.06);
  transition:
    border-color 0.15s ease,
    background 0.15s ease,
    transform 0.15s ease;
}

.juris-help-chip:hover {
  border-color: var(--cherry);
  background: #fff;
}

.juris-help-chip:focus-visible {
  outline: 2px solid var(--cherry);
  outline-offset: 3px;
}

.juris-help-chip__mark {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 2.1rem;
  height: 2.1rem;
  flex-shrink: 0;
  border-radius: 50%;
  font-family: var(--font-editorial);
  font-size: 1.25rem;
  font-weight: 800;
  line-height: 1;
  color: var(--cream-paper);
  background: var(--cherry);
  border: 2px solid rgba(255, 255, 255, 0.35);
}

.juris-help-chip__label {
  font-size: 0.82rem;
  font-weight: 700;
  line-height: 1.3;
  letter-spacing: 0.02em;
  padding-right: 0.35rem;
}

.juris-help-dialog {
  width: min(440px, 94vw);
  max-height: min(85vh, 560px);
  padding: 0;
  border: none;
  border-radius: 22px;
  background: var(--cream-paper);
  color: var(--text-on-cream);
  box-shadow: 0 24px 56px rgba(42, 24, 24, 0.22);
}

.juris-help-dialog::backdrop {
  background: rgba(42, 24, 24, 0.45);
  backdrop-filter: blur(3px);
}

.juris-help-dialog__inner {
  position: relative;
  padding: 1.35rem 1.4rem 1.45rem;
}

.juris-help-dialog__close {
  position: absolute;
  top: 0.65rem;
  right: 0.65rem;
  width: 2.25rem;
  height: 2.25rem;
  padding: 0;
  border: none;
  border-radius: 50%;
  font-size: 1.35rem;
  line-height: 1;
  font-weight: 400;
  color: var(--text-muted);
  background: rgba(16, 16, 16, 0.06);
  cursor: pointer;
  transition:
    color 0.15s ease,
    background 0.15s ease;
}

.juris-help-dialog__close:hover {
  color: var(--cherry);
  background: rgba(16, 16, 16, 0.12);
}

.juris-help-dialog__title {
  margin: 0 2.25rem 0.75rem 0;
  font-family: var(--font-editorial);
  font-size: 1.35rem;
  font-weight: 800;
  letter-spacing: -0.02em;
  color: var(--cherry);
}

.juris-help-dialog__body {
  margin: 0 0 1.1rem;
}

.juris-help-dialog__body p {
  margin: 0 0 0.75rem;
  font-size: 0.92rem;
  font-weight: 500;
  line-height: 1.55;
  color: var(--text-on-cream);
}

.juris-help-dialog__body p:last-child {
  margin-bottom: 0;
}

.juris-help-dialog__actions {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
  margin-top: 0.35rem;
}

.juris-help-dialog__lead {
  font-size: 1.05rem !important;
  font-weight: 700 !important;
  color: var(--burgundy-ink) !important;
}

.juris-help-dialog__note {
  font-size: 0.82rem !important;
  color: var(--text-muted) !important;
}

.juris-help-dialog--compact .juris-help-dialog__inner {
  max-width: min(34rem, 92vw);
}

.juris-wish-form {
  display: flex;
  flex-direction: column;
  gap: 0.85rem;
  margin-top: 0.25rem;
}

.juris-field--checkbox {
  margin: 0;
}

.juris-check {
  display: flex;
  align-items: flex-start;
  gap: 0.55rem;
  font-size: 0.9rem;
  font-weight: 600;
  line-height: 1.4;
  color: var(--text-on-cream);
  cursor: pointer;
}

.juris-check input {
  width: 1.05rem;
  height: 1.05rem;
  margin-top: 0.12rem;
  accent-color: var(--cherry);
  flex-shrink: 0;
}

.juris-demandes-section {
  margin-top: 0.25rem;
}

.juris-demandes__intro {
  margin: 0 0 1rem;
  font-size: 0.92rem;
  line-height: 1.55;
  color: var(--text-muted);
}

.juris-demandes__empty-block {
  display: flex;
  flex-direction: column;
  gap: 1rem;
  padding: 1rem 0 0.25rem;
}

.juris-demandes__empty-intro {
  margin: 0;
  font-family: var(--font-ui);
  font-size: 0.92rem;
  line-height: 1.55;
  color: var(--text-muted);
}

.juris-help-bar--in-demandes {
  margin: 0;
}

.juris-demandes__empty {
  margin: 0;
  font-size: 0.9rem;
  line-height: 1.45;
  color: var(--text-muted);
}

.juris-demandes__wishlist {
  display: flex;
  flex-direction: column;
  gap: 0.85rem;
}

.juris-wish-card {
  padding: 1rem 1.1rem;
  border-radius: 16px;
  background: var(--cream-paper);
  border: 1px solid rgba(16, 16, 16, 0.12);
  box-shadow: 0 4px 14px rgba(42, 24, 24, 0.04);
}

.juris-wish-card__meta {
  margin: 0 0 0.5rem;
  font-size: 0.68rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  color: var(--text-muted);
}

.juris-wish-card__text {
  margin: 0;
  font-size: 0.95rem;
  font-weight: 600;
  line-height: 1.45;
  color: var(--text-on-cream);
  white-space: pre-wrap;
}

.juris-wish-card__foot {
  margin-top: 0.85rem;
  padding-top: 0.75rem;
  border-top: 1px solid rgba(16, 16, 16, 0.08);
  display: flex;
  flex-direction: column;
  gap: 0.65rem;
}

.juris-wish-card__renseigner-btn {
  align-self: flex-start;
}

.juris-wish-renseigner-dialog .juris-help-dialog__inner {
  max-height: min(90vh, 46rem);
  overflow-y: auto;
}

.juris-wish-card__answers {
  margin-top: 0.85rem;
  padding-top: 0.75rem;
  border-top: 1px solid rgba(16, 16, 16, 0.08);
}

.juris-wish-card__answers-title {
  margin: 0 0 0.45rem;
  font-size: 0.72rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  color: var(--text-muted);
}

.juris-wish-card__answer-list {
  margin: 0;
  padding-left: 1rem;
}

.juris-wish-card__answer {
  margin: 0.5rem 0;
}

.juris-wish-card__answer-who {
  font-size: 0.72rem;
  font-weight: 700;
  color: var(--cherry);
}

.juris-wish-card__answer-where {
  margin: 0.2rem 0 0;
  font-size: 0.88rem;
  line-height: 1.45;
  white-space: pre-wrap;
}

.juris-wish-card__warn {
  margin: 0;
  font-size: 0.86rem;
  line-height: 1.45;
  color: var(--text-muted);
}

.juris-wish-card__warn a {
  color: var(--cherry);
  font-weight: 700;
}

.juris-submit--small {
  margin-top: 0.35rem;
  padding: 0.5rem 0.95rem;
  font-size: 0.62rem;
}

.site-header__notif {
  position: relative;
  flex-shrink: 0;
}

.site-header__notif-toggle {
  position: relative;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 2.35rem;
  height: 2.35rem;
  padding: 0;
  border-radius: 999px;
  border: 1.5px solid var(--line-strong);
  background-color: #fff;
  color: var(--burgundy-ink);
  cursor: pointer;
  transition:
    transform 0.15s ease,
    background 0.15s ease,
    color 0.15s ease,
    border-color 0.15s ease;
}

.site-header__notif-toggle:hover {
  background-color: rgba(239, 184, 153, 0.16);
  border-color: var(--cherry);
  color: #111;
}

.site-header__notif-toggle:focus-visible {
  outline: 2px solid var(--cherry);
  outline-offset: 3px;
}

.site-header__notif-toggle:active {
  transform: scale(0.97);
}

.site-header__notif-toggle--current {
  background-color: #111;
  color: #fff;
  border-color: #111;
}

.site-header__notif-toggle--current:hover {
  background-color: var(--cherry);
  border-color: var(--cherry);
  color: #111;
}

.site-header__notif-bell {
  display: flex;
  align-items: center;
  justify-content: center;
  pointer-events: none;
}

.site-header__notif-panel {
  position: absolute;
  top: calc(100% + 0.5rem);
  right: 0;
  z-index: 90;
  width: min(20.5rem, calc(100vw - 1.5rem));
  overflow: hidden;
  border-radius: 16px;
  background: #fff;
  border: 1px solid var(--line-soft);
  box-shadow: var(--shadow-elevated);
}

.site-header__notif-panel[hidden] {
  display: none !important;
}

.site-header__notif-panel-summary {
  margin: 0;
  padding: 0.85rem 1.1rem;
  font-family: var(--font-ui);
  font-size: 0.9rem;
  font-weight: 700;
  line-height: 1.35;
  letter-spacing: -0.01em;
  color: #111;
  border-bottom: 1px solid var(--line-soft);
}

.site-header__notif-panel-summary--empty {
  padding: 1.35rem 1.25rem 1.4rem;
  text-align: center;
  font-family: "Fraunces", Georgia, "Times New Roman", serif;
  font-size: 1.02rem;
  font-weight: 700;
  letter-spacing: 0.005em;
  color: #1a1a1a;
  border-bottom: none;
  background: #fff;
}

.site-header__notif-panel--empty .site-header__notif-panel-list[hidden] {
  display: none !important;
}

.site-header__notif-panel-list {
  margin: 0;
  padding: 0;
  list-style: none;
  max-height: min(40vh, 14rem);
  overflow-y: auto;
}

.site-header__notif-panel-item {
  margin: 0;
  border-bottom: 1px solid var(--line-soft);
}

.site-header__notif-panel-item:last-child {
  border-bottom: none;
}

.site-header__notif-panel-link {
  display: inline-flex;
  align-items: center;
  gap: 0.42rem;
  width: 100%;
  padding: 0.72rem 1.1rem;
  font-family: var(--font-ui);
  font-size: 0.86rem;
  font-weight: 500;
  line-height: 1.45;
  color: #111;
  text-decoration: none;
  transition:
    background 0.12s ease,
    color 0.12s ease;
}

.site-header__notif-kind {
  width: 1.1rem;
  text-align: center;
  flex-shrink: 0;
  opacity: 0.95;
}

.site-header__notif-panel-link:hover {
  background: rgba(239, 184, 153, 0.14);
  color: #111;
}

.site-header__notif-panel-link--unread {
  background: #fff;
  font-weight: 600;
}

.site-header__notif-panel-link--read {
  background: #fff;
  font-weight: 500;
}

.site-header__notif-panel-link--unread:hover {
  background: rgba(239, 184, 153, 0.14);
  color: #111;
}

.site-header__notif-panel-link--read:hover {
  background: rgba(239, 184, 153, 0.14);
  color: #111;
}

.site-header__notif-panel-item--empty {
  padding: 0.65rem 1rem;
  font-family: var(--font-ui);
  font-size: 0.82rem;
  font-weight: 500;
  line-height: 1.45;
  color: var(--text-muted);
}

.site-header__notif-panel-foot {
  padding: 0.75rem 1.1rem 0.95rem;
  text-align: center;
  border-top: 1px solid var(--line-soft);
  background: #fafafa;
}

.site-header__notif-see-all {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 2.15rem;
  padding: 0.5rem 1rem;
  border-radius: 999px;
  border: 1px solid #111;
  background: #111;
  font-family: var(--font-ui);
  font-size: 0.7rem;
  font-weight: 700;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: #fff;
  text-decoration: none;
  box-shadow: none;
  transition:
    background 0.15s ease,
    border-color 0.15s ease,
    color 0.15s ease;
}

.site-header__notif-see-all:hover {
  background: var(--cherry);
  border-color: var(--cherry);
  color: #111;
  text-decoration: none;
}

.site-header__notif-count {
  display: inline-block;
  min-width: 1.15rem;
  margin-left: 0.25rem;
  padding: 0.1rem 0.35rem;
  border-radius: 999px;
  font-size: 0.58rem;
  font-weight: 800;
  line-height: 1.1;
  text-align: center;
  vertical-align: 0.1em;
  color: #fff;
  background: #111;
}

.site-header__notif-count--floating {
  position: absolute;
  top: -0.12rem;
  right: -0.08rem;
  margin-left: 0;
  min-width: 1.05rem;
  padding: 0.06rem 0.28rem;
  font-size: 0.52rem;
  box-shadow: 0 1px 4px rgba(42, 24, 24, 0.2);
}

.site-header__notif-toggle--current .site-header__notif-count--floating {
  background: var(--cherry);
  color: #111;
}

.site-header__notif-count[hidden] {
  display: none !important;
}

.page-shell--notifications {
  padding: 3.75rem 3.25rem 3.5rem !important;
}

@media (max-width: 640px) {
  .page-shell--notifications {
    padding: 2.5rem 1.5rem 2.6rem !important;
  }
}

.page-shell--notifications .page-shell__title {
  margin: 0 auto 1.85rem !important;
  max-width: 100%;
  text-align: center !important;
  text-transform: none !important;
  font-family: "Bodoni Moda", Didot, "Bodoni 72", "Libre Bodoni", Georgia, serif !important;
  font-size: clamp(3rem, 9.5vw, 6rem) !important;
  font-weight: 700 !important;
  font-style: normal !important;
  line-height: 0.92 !important;
  letter-spacing: -0.045em !important;
  color: #101010 !important;
  font-optical-sizing: auto;
}

.page-shell--notifications .page-shell__title::after {
  display: none !important;
}

.page-shell--notifications .notifications-page__actions--top {
  display: flex;
  justify-content: flex-end;
  margin: 0 0 1.75rem;
}

.page-shell--notifications .notifications-page__list {
  margin-top: 0;
  gap: 0.9rem;
}

.notifications-page__list {
  display: flex;
  flex-direction: column;
  gap: 0.65rem;
  margin-bottom: 1rem;
}

.notifications-page__item {
  border-radius: 16px;
  overflow: hidden;
  border: 1px solid var(--line-soft);
  background: #fff;
  box-shadow: var(--shadow-soft);
}

.notifications-page__item--glass {
  background: #fff;
  backdrop-filter: none;
  -webkit-backdrop-filter: none;
  box-shadow: var(--shadow-soft);
}

.notifications-page__item-row {
  display: flex;
  align-items: stretch;
}

.notifications-page__item-delete {
  flex-shrink: 0;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 2.85rem;
  margin: 0;
  padding: 0;
  border: none;
  border-left: 1px solid var(--line-soft);
  background: transparent;
  color: #666;
  cursor: pointer;
  transition:
    background 0.15s ease,
    color 0.15s ease;
}

.notifications-page__item-delete:hover {
  background: rgba(239, 184, 153, 0.14);
  color: #111;
}

.notifications-page__item-delete:focus-visible {
  outline: 2px solid var(--cherry);
  outline-offset: -2px;
}

.notifications-page__item-hit {
  display: block;
  flex: 1 1 auto;
  min-width: 0;
  width: auto;
  margin: 0;
  padding: 0.85rem 1rem;
  border: none;
  background: transparent;
  cursor: pointer;
  text-align: left;
  font: inherit;
  color: #111;
  transition: background 0.15s ease;
}

.notifications-page__item-hit:hover {
  background: rgba(239, 184, 153, 0.12);
}

.notifications-page__item-hit:focus-visible {
  outline: 2px solid var(--cherry);
  outline-offset: -2px;
}

.notifications-page__item-meta {
  margin: 0 0 0.4rem;
  font-size: 0.78rem;
  font-weight: 700;
  color: var(--text-muted);
}

.notifications-page__item-preview {
  margin: 0;
  font-size: 0.88rem;
  line-height: 1.45;
  color: #111;
}

.notifications-page__item-detail {
  padding: 0 1rem 1rem;
  border-top: 1px solid var(--line-soft);
  background: #fafafa;
}

.notifications-page__item-detail-text {
  margin: 0.75rem 0 0;
  font-size: 0.88rem;
  line-height: 1.5;
  color: #111;
}

.notifications-page__item-detail-subtitle {
  margin: 0.85rem 0 0.35rem;
  font-size: 0.72rem;
  font-weight: 800;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--burgundy-ink);
}

.notifications-page__item-detail-list {
  margin: 0;
  padding: 0 0 0 1rem;
  font-size: 0.84rem;
  line-height: 1.45;
  color: #111;
}

.notifications-page__item-detail-li {
  margin: 0.5rem 0 0;
}

.notifications-page__item-detail-when {
  font-weight: 500;
  color: var(--text-muted);
}

.notifications-page__item-detail-where {
  margin: 0.2rem 0 0;
  font-size: 0.84rem;
}

.notifications-page__item-detail-none {
  margin: 0.65rem 0 0;
  font-size: 0.84rem;
  color: var(--text-muted);
  font-style: italic;
}

.notifications-page__item-detail-linkwrap {
  margin: 0.85rem 0 0;
}

.notifications-page__item-detail-link {
  font-family: var(--font-ui);
  font-size: 0.82rem;
  font-weight: 700;
  color: var(--cherry);
  text-decoration: none;
}

.notifications-page__item-detail-link:hover {
  text-decoration: underline;
  color: var(--cherry-dark);
}

.notifications-page__read {
  font-weight: 700;
  color: var(--text-muted);
  text-transform: uppercase;
  letter-spacing: 0.06em;
  font-size: 0.72em;
}

.notifications-page__new {
  color: var(--cherry);
  font-weight: 800;
}

.notifications-page__empty {
  margin: 0.5rem 0 0;
  padding: 1rem 1.1rem;
  font-family: var(--font-ui);
  font-size: 0.95rem;
  font-weight: 600;
  color: var(--text-muted);
  text-align: center;
  border-radius: 16px;
  background: #fff;
  border: 1px dashed var(--line-strong);
}

.notifications-page__actions {
  margin-top: 0.5rem;
}

.notifications-page__actions--top {
  margin-top: 0;
  margin-bottom: 1.5rem;
  justify-content: flex-end;
}

.juris-request-panel__head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.75rem;
  margin-bottom: 0.85rem;
  padding-bottom: 0.65rem;
  border-bottom: 1px solid rgba(16, 16, 16, 0.1);
}

.juris-request-panel__head-title {
  margin: 0;
  font-family: var(--font-editorial);
  font-size: 1.05rem;
  font-weight: 800;
  color: var(--cherry);
}

.juris-request-panel__close {
  flex-shrink: 0;
  font-family: var(--font-ui);
  font-size: 0.62rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  color: var(--text-muted);
  background: transparent;
  border: 1px solid rgba(16, 16, 16, 0.22);
  border-radius: 999px;
  padding: 0.4rem 0.75rem;
  cursor: pointer;
}

.juris-request-panel__close:hover {
  color: var(--cherry);
  border-color: var(--cherry);
}

.juris-request-panel__close:focus-visible {
  outline: 2px solid var(--cherry);
  outline-offset: 2px;
}

.juris-request-panel {
  margin-top: 1rem;
  padding: 1.1rem 1.15rem 1.25rem;
  border-radius: 18px;
  background: var(--cream-paper);
  border: 1px solid rgba(16, 16, 16, 0.12);
}

.juris-request-panel__intro {
  margin: 0 0 1rem;
  font-size: 0.88rem;
  line-height: 1.5;
  color: var(--text-muted);
}

.juris-request-form__grid {
  display: grid;
  gap: 0.85rem;
  grid-template-columns: 1fr;
}

@media (min-width: 560px) {
  .juris-request-form__grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

.juris-request-form__actions {
  margin-top: 1rem;
}

.juris-submit {
  font-family: var(--font-ui);
  font-size: 0.68rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.12em;
  color: var(--cream-paper);
  background: var(--cherry);
  border: none;
  border-radius: 999px;
  padding: 0.6rem 1.2rem;
  cursor: pointer;
  transition: background 0.15s ease;
}

.juris-submit:hover {
  background: var(--cherry-dark);
}

.juris-request-success {
  margin: 1rem 0 0;
  padding: 0.75rem 0.9rem;
  border-radius: 12px;
  background: rgba(46, 120, 70, 0.1);
  border: 1px solid rgba(46, 120, 70, 0.25);
  font-size: 0.88rem;
  font-weight: 600;
  line-height: 1.45;
  color: var(--burgundy-ink);
}

.settings-section {
  margin-top: 1.2rem;
  padding: 1rem;
  border-radius: 14px;
  background: rgba(255, 255, 255, 0.45);
  border: 1px solid rgba(16, 16, 16, 0.12);
}

.settings-section__title {
  margin: 0 0 0.65rem;
  font-family: var(--font-ui);
  font-size: 0.72rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.16em;
  color: var(--text-muted);
}

.settings-option {
  display: flex;
  align-items: flex-start;
  gap: 0.7rem;
  padding: 0.75rem;
  border-radius: 10px;
  background: var(--cream-paper);
  border: 1px solid rgba(16, 16, 16, 0.1);
  cursor: pointer;
}

.settings-option__check {
  flex-shrink: 0;
  width: 1.1rem;
  height: 1.1rem;
  margin-top: 0.15rem;
  accent-color: var(--cherry);
}

.settings-option__text {
  font-size: 0.95rem;
  font-weight: 600;
  line-height: 1.4;
  color: var(--text-on-cream);
}

.settings-placeholder {
  margin: 0;
  padding: 0.75rem;
  border-radius: 10px;
  background: rgba(16, 16, 16, 0.04);
  border: 1px dashed rgba(16, 16, 16, 0.2);
  color: var(--text-muted);
  font-size: 0.95rem;
  line-height: 1.45;
}

.planner {
  margin-top: 1.35rem;
  padding: 1rem;
  border-radius: 18px;
  background: rgba(255, 255, 255, 0.45);
  border: 1px solid rgba(16, 16, 16, 0.12);
}

.planner__toolbar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.75rem;
}

.planner__month-label {
  margin: 0;
  font-family: var(--font-editorial);
  font-size: clamp(1.15rem, 2.4vw, 1.35rem);
  font-weight: 700;
  color: var(--cherry);
  text-align: center;
}

.planner__nav-btn {
  width: 2rem;
  height: 2rem;
  border-radius: 10px;
  border: 1px solid rgba(16, 16, 16, 0.35);
  background: var(--cream-paper);
  color: var(--cherry);
  font-size: 1rem;
  line-height: 1;
  cursor: pointer;
}

.planner__weekdays {
  display: grid;
  grid-template-columns: repeat(7, minmax(0, 1fr));
  gap: 0.35rem;
  margin-top: 0.85rem;
}

.planner__weekdays span {
  text-align: center;
  font-family: var(--font-ui);
  font-size: 0.65rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  color: var(--text-muted);
}

.planner__grid {
  display: grid;
  grid-template-columns: repeat(7, minmax(0, 1fr));
  gap: 0.35rem;
  margin-top: 0.35rem;
}

.planner__cell {
  min-height: 4.75rem;
  border-radius: 10px;
  border: 1px solid rgba(16, 16, 16, 0.12);
  background: var(--cream-paper);
  display: flex;
  align-items: center;
  justify-content: center;
  font-family: var(--font-ui);
  font-size: 0.95rem;
  font-weight: 600;
  color: var(--burgundy-ink);
}

.planner__cell--muted {
  opacity: 0.45;
}

.planner__cell--today {
  background: var(--cherry);
  color: var(--cream-paper);
  border-color: var(--cherry);
}

.planner__cell--grand-jour {
  border-color: var(--cherry);
  border-width: 2px;
  background: linear-gradient(145deg, rgba(16, 16, 16, 0.12) 0%, var(--cream-paper) 55%);
  box-shadow: inset 0 0 0 1px rgba(16, 16, 16, 0.08);
}

.planner__cell--grand-jour.planner__cell--today {
  background: linear-gradient(145deg, rgba(247, 241, 235, 0.35) 0%, var(--cherry) 100%);
  color: var(--cream-paper);
}

.planner__cell-inner {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: flex-start;
  width: 100%;
  min-height: 4.5rem;
  padding: 0.25rem 0.15rem 0.35rem;
  gap: 0.15rem;
  cursor: pointer;
  border-radius: 8px;
  border: none;
  background: transparent;
  font: inherit;
  color: inherit;
  text-align: center;
  box-sizing: border-box;
}

.planner__month-chips {
  display: flex;
  flex-direction: column;
  align-items: stretch;
  gap: 3px;
  width: 100%;
  max-width: 100%;
  margin-top: 0.1rem;
}

.planner__month-task-chip {
  display: block;
  width: 100%;
  max-width: 100%;
  padding: 3px 5px;
  border-radius: 4px;
  font-size: 0.58rem;
  font-weight: 700;
  line-height: 1.25;
  text-align: left;
  overflow: visible;
  white-space: normal;
  word-break: break-word;
  hyphens: manual;
  cursor: grab;
  touch-action: none;
  user-select: none;
  -webkit-user-select: none;
  box-sizing: border-box;
}

.planner__month-task-chip--done {
  opacity: 0.78;
}

.planner__month-task-chip--pense-general {
  cursor: default;
  touch-action: auto;
  border-style: dashed;
}

.planner__month-task-chip:active {
  cursor: grabbing;
}

.planner__month-task-chip--dragging {
  opacity: 0.28;
  filter: saturate(0.85);
}

.planner__month-task-chip--ghost {
  position: fixed !important;
  pointer-events: none !important;
  z-index: 9999 !important;
  opacity: 0.95;
  cursor: grabbing;
  box-shadow: 0 8px 18px rgba(0, 0, 0, 0.22);
  will-change: transform;
  transform: translateZ(0);
  transition: none !important;
  contain: layout paint;
}

.planner__cell-inner--drop-target {
  background: rgba(16, 16, 16, 0.09);
  outline: 2px dashed rgba(16, 16, 16, 0.6);
  outline-offset: -2px;
}

.planner__month-task-more {
  font-size: 0.52rem;
  font-weight: 700;
  opacity: 0.75;
  text-align: center;
}

.planner__cell-inner:focus-visible {
  outline: 2px solid var(--cherry);
  outline-offset: 2px;
}

.planner__cell-daynum {
  font-size: 0.95rem;
  font-weight: 700;
  line-height: 1.1;
}

.planner__cell-badge {
  font-size: 0.5rem;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  color: var(--cherry);
  line-height: 1.15;
  max-width: 100%;
  text-wrap: balance;
}

.planner__cell--today .planner__cell-badge {
  color: var(--cream-paper);
  opacity: 0.95;
}

.planner__cell-dots {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 2px;
  max-width: 100%;
}

.planner__cell-dot {
  width: 4px;
  height: 4px;
  border-radius: 50%;
  background: var(--cherry);
  opacity: 0.55;
}

.planner__cell--today .planner__cell-dot {
  background: var(--cream-paper);
  opacity: 0.85;
}

.planner__chrome {
  display: flex;
  flex-direction: column;
  gap: 0.55rem;
  margin-bottom: 0.85rem;
  padding-bottom: 0.75rem;
  border-bottom: 1px solid rgba(16, 16, 16, 0.1);
}

.planner__chrome-row {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 0.65rem;
  width: 100%;
}

.planner__chrome-row--tabs .planner__view-tabs {
  flex: 1;
  min-width: 0;
}

.planner__add-task-tab {
  width: 100%;
  padding: 0.48rem 1rem;
  border-radius: 12px;
  border: 1px dashed rgba(16, 16, 16, 0.45);
  background: rgba(255, 255, 255, 0.55);
  font-family: var(--font-ui);
  font-size: 0.68rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.14em;
  color: var(--cherry);
  cursor: pointer;
  transition:
    background 0.15s ease,
    border-color 0.15s ease,
    color 0.15s ease;
}

.planner__add-task-tab:hover {
  background: rgba(16, 16, 16, 0.08);
  border-color: var(--cherry);
  border-style: solid;
}

.planner__view-tabs {
  display: flex;
  flex-wrap: wrap;
  gap: 0.35rem;
  padding: 0.2rem;
  border-radius: 999px;
  background: rgba(247, 241, 235, 0.85);
  border: 1px solid rgba(16, 16, 16, 0.14);
}

.planner__view-tab {
  padding: 0.38rem 0.75rem;
  border-radius: 999px;
  border: 1px solid transparent;
  background: transparent;
  font-family: var(--font-ui);
  font-size: 0.62rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.14em;
  color: var(--text-muted);
  cursor: pointer;
  transition:
    background 0.15s ease,
    color 0.15s ease,
    border-color 0.15s ease;
}

.planner__view-tab:hover {
  color: var(--cherry);
  background: rgba(16, 16, 16, 0.06);
}

.planner__view-tab[aria-selected="true"] {
  background: var(--cherry);
  color: var(--cream-paper);
  border-color: var(--cherry);
}

.planner__today-btn {
  padding: 0.42rem 0.9rem;
  border-radius: 999px;
  border: 1px solid rgba(16, 16, 16, 0.35);
  background: var(--cream-paper);
  font-family: var(--font-ui);
  font-size: 0.65rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.12em;
  color: var(--cherry);
  cursor: pointer;
}

.planner__today-btn:hover {
  background: rgba(16, 16, 16, 0.08);
}

.planner__range-label {
  margin: 0;
  flex: 1;
  min-width: 8rem;
  font-family: var(--font-editorial);
  font-size: clamp(1.05rem, 2.2vw, 1.28rem);
  font-weight: 700;
  color: var(--cherry);
  text-align: center;
}

.planner__view-root {
  margin-top: 0.5rem;
  min-height: 12rem;
}

.planner-todo {
  margin-top: 1.25rem;
  padding: 1.05rem 1.1rem 1.15rem;
  border-radius: 18px;
  background: linear-gradient(180deg, rgba(255, 255, 255, 0.72) 0%, rgba(255, 249, 242, 0.92) 100%);
  border: 1px solid rgba(16, 16, 16, 0.22);
  box-shadow: 0 8px 28px rgba(16, 16, 16, 0.07);
}

.planner-todo-panel {
  margin: 0;
}

.planner-todo__hint {
  margin: 0;
  font-size: 0.82rem;
  font-weight: 500;
  line-height: 1.45;
  color: var(--text-muted);
}

.planner-todo-tabs-bottom {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 0.4rem;
  margin-top: 1rem;
  padding-top: 0.85rem;
  border-top: 1px solid rgba(16, 16, 16, 0.14);
}

.planner-todo-tab {
  padding: 0.4rem 0.85rem;
  border-radius: 999px;
  font-family: var(--font-ui);
  font-size: 0.78rem;
  font-weight: 700;
  color: var(--burgundy-ink);
  background: rgba(255, 255, 255, 0.65);
  border: 1px solid rgba(16, 16, 16, 0.2);
  cursor: pointer;
}

.planner-todo-tab:hover {
  border-color: var(--cherry);
  background: #fff;
}

.planner-todo-tab[aria-selected="true"] {
  color: var(--cream-paper);
  background: linear-gradient(135deg, var(--cherry-dark), var(--cherry));
  border-color: transparent;
}

.planner-todo-tab:focus-visible {
  outline: 2px solid var(--cherry);
  outline-offset: 2px;
}

.planner-todo__item--archive {
  opacity: 0.96;
}

.planner-todo__archive-day-heading {
  list-style: none;
  margin: 0.65rem 0 0.2rem;
  padding: 0.35rem 0 0;
  border-top: 1px dashed rgba(16, 16, 16, 0.18);
  font-size: 0.72rem;
  font-weight: 800;
  letter-spacing: 0.02em;
  text-transform: uppercase;
  color: var(--text-muted);
}

.planner-todo__archive-day-heading:first-child {
  margin-top: 0;
  padding-top: 0;
  border-top: none;
}

.planner-todo__header {
  text-align: center;
  margin: 0 0 0.75rem;
  padding-bottom: 0.65rem;
  border-bottom: 1px solid rgba(16, 16, 16, 0.14);
}

.planner-todo__title {
  margin: 0 0 0.35rem;
  font-family: var(--font-editorial);
  font-size: 1.28rem;
  font-weight: 800;
  letter-spacing: -0.02em;
  text-transform: none;
  color: var(--cherry);
}

.planner-todo__title--secondary {
  margin: 0 0 0.3rem;
  font-size: 1.05rem;
  font-weight: 800;
}

.planner-todo__calendar-line {
  margin: 0;
  font-size: 0.95rem;
  font-weight: 600;
  line-height: 1.45;
  color: var(--burgundy-ink);
}

.planner-todo__header--tomorrow {
  margin: 1rem 0 0.7rem;
  padding-top: 0.85rem;
  padding-bottom: 0.55rem;
  border-top: 1px solid rgba(16, 16, 16, 0.16);
  border-bottom: 1px solid rgba(16, 16, 16, 0.1);
}

.planner-todo-tomorrow {
  margin: 0;
}

.planner-todo__subtitle {
  margin: 0.85rem 0 0.4rem;
  font-family: var(--font-ui);
  font-size: 0.68rem;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: 0.12em;
  color: var(--cherry);
  text-align: center;
}

.planner-todo-backlog {
  margin: 0.85rem 0 0;
  padding: 0.75rem 0.85rem;
  border-radius: 14px;
  background: rgba(16, 16, 16, 0.05);
  border: 1px dashed rgba(16, 16, 16, 0.28);
}

.planner-todo-replan-wrap.planner-todo-backlog {
  box-shadow: 0 4px 20px rgba(16, 16, 16, 0.1), inset 0 0 0 1px rgba(16, 16, 16, 0.07);
}

.planner-todo__header--replan {
  margin: 0 0 0.65rem;
  padding-bottom: 0.55rem;
  border-bottom: 1px solid rgba(16, 16, 16, 0.12);
}

.planner-todo-backlog .planner-todo__subtitle {
  margin-top: 0;
}

.planner-todo__list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 0.45rem;
}

.planner-todo__list--tasks {
  padding-left: 0.15rem;
}

.planner-todo__item {
  display: flex;
  flex-direction: column;
  align-items: stretch;
  gap: 0.45rem;
  padding: 0.55rem 0.65rem;
  border-radius: 12px;
  background: var(--cream-paper);
  border: 1px solid rgba(16, 16, 16, 0.16);
  outline: none;
}

.planner-todo__item-row {
  display: flex;
  align-items: flex-start;
  gap: 0.45rem;
}

.planner-todo__item-row::before {
  content: "";
  width: 0.45rem;
  height: 0.45rem;
  margin-top: 0.38rem;
  flex-shrink: 0;
  border-radius: 50%;
  background: var(--cherry);
  box-shadow: 0 0 0 2px rgba(16, 16, 16, 0.12);
}

.planner-todo__item--done .planner-todo__item-row::before {
  background: rgba(16, 16, 16, 0.35);
  box-shadow: none;
}

.planner-todo__item:focus-visible {
  box-shadow: 0 0 0 2px rgba(16, 16, 16, 0.35);
}

.planner-todo__item--done {
  opacity: 0.72;
}

.planner-todo__check {
  margin-top: 0.12rem;
  accent-color: var(--cherry);
  flex-shrink: 0;
}

.planner-todo__replan-toggle {
  margin-top: 0.02rem;
  flex-shrink: 0;
  align-self: flex-start;
  padding: 0.22rem 0.45rem;
  border-radius: 8px;
  border: 1px solid rgba(16, 16, 16, 0.28);
  background: rgba(255, 255, 255, 0.75);
  font-family: var(--font-ui);
  font-size: 0.62rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  color: var(--cherry);
  cursor: pointer;
}

.planner-todo__replan-toggle:hover {
  border-color: rgba(16, 16, 16, 0.45);
}

.planner-todo__replan {
  padding: 0.55rem 0.6rem;
  border-radius: 10px;
  background: rgba(247, 241, 235, 0.85);
  border: 1px solid rgba(16, 16, 16, 0.12);
}

.planner-todo__replan--schedule {
  display: flex;
  flex-direction: column;
  gap: 0.35rem;
}

.planner-todo__replan-slotline {
  margin: 0;
  font-size: 0.8rem;
  font-weight: 600;
  line-height: 1.35;
  color: var(--text-on-cream);
}

.planner-todo__replan-subhint {
  margin: 0 0 0.15rem;
  font-size: 0.72rem;
  line-height: 1.4;
  color: var(--text-muted);
}

.planner-todo__schedule-jump {
  display: inline-flex;
  align-self: flex-start;
  margin: 0;
  padding: 0;
  border: none;
  background: none;
  font-family: var(--font-ui);
  font-size: 0.78rem;
  font-weight: 700;
  color: var(--cherry);
  text-decoration: underline;
  text-underline-offset: 0.14em;
  cursor: pointer;
  text-align: left;
}

.planner-todo__schedule-jump:hover {
  color: var(--cherry-dark);
}

.planner-todo__replan--schedule .planner-todo__replan-label {
  margin-top: 0.35rem;
  padding-top: 0.5rem;
  border-top: 1px dashed rgba(16, 16, 16, 0.2);
}

.planner-todo__replan-label {
  display: flex;
  flex-direction: column;
  gap: 0.3rem;
  font-size: 0.72rem;
  font-weight: 700;
  color: var(--text-muted);
  margin-bottom: 0.45rem;
}

.planner-todo__replan-date {
  max-width: 12rem;
  padding: 0.35rem 0.45rem;
  border-radius: 8px;
  border: 1px solid rgba(16, 16, 16, 0.2);
  font-family: var(--font-ui);
  font-size: 0.88rem;
}

.planner-todo__replan-times {
  display: flex;
  flex-wrap: wrap;
  gap: 0.65rem 1rem;
  margin-bottom: 0.35rem;
}

.planner-todo__replan-time {
  max-width: 8rem;
  padding: 0.35rem 0.45rem;
  border-radius: 8px;
  border: 1px solid rgba(16, 16, 16, 0.2);
  font-family: var(--font-ui);
  font-size: 0.88rem;
}

.planner-todo__replan-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 0.4rem;
}

.planner-todo__replan-btn {
  padding: 0.35rem 0.55rem;
  border-radius: 8px;
  border: 1px solid rgba(16, 16, 16, 0.25);
  background: var(--cream-paper);
  font-family: var(--font-ui);
  font-size: 0.72rem;
  font-weight: 600;
  color: var(--burgundy-ink);
  cursor: pointer;
}

.planner-todo__replan-btn--primary {
  background: var(--cherry);
  color: var(--cream-paper);
  border-color: var(--cherry);
}

.planner-todo__replan-btn--ghost {
  border-color: transparent;
  background: transparent;
  color: var(--text-muted);
  text-decoration: underline;
}

.planner-todo__main {
  flex: 1;
  min-width: 0;
}

.planner-todo__line-title {
  font-size: 0.92rem;
  font-weight: 600;
  line-height: 1.35;
  color: var(--text-on-cream);
}

.planner-todo__item--done .planner-todo__line-title {
  text-decoration: line-through;
}

.planner-todo__meta {
  margin-top: 0.2rem;
  font-size: 0.68rem;
  font-weight: 600;
  color: var(--text-muted);
}

.planner-todo__empty {
  margin: 0;
  font-size: 0.9rem;
  color: var(--text-muted);
  padding: 0.35rem 0;
}

.planner-timegrid {
  --planner-slot: 44px;
  margin-top: 0.35rem;
  border-radius: 14px;
  border: 1px solid rgba(16, 16, 16, 0.12);
  background: #fffefb;
  overflow-x: auto;
  overflow-y: visible;
  box-shadow: 0 2px 12px rgba(42, 24, 24, 0.04);
  min-width: 0;
}

.planner-timegrid__tz {
  margin: 0;
  padding: 0.35rem 0.65rem 0;
  font-size: 0.62rem;
  font-weight: 600;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--text-muted);
  text-align: right;
}

.planner-timegrid__head {
  display: grid;
  border-bottom: 1px solid rgba(0, 0, 0, 0.08);
  background: rgba(247, 241, 235, 0.95);
}

.planner-timegrid__corner {
  border-right: 1px solid rgba(0, 0, 0, 0.06);
  min-height: 2.5rem;
}

.planner-timegrid__dayhead {
  padding: 0.45rem 0.2rem;
  text-align: center;
  border-left: 1px solid rgba(0, 0, 0, 0.05);
  font-family: var(--font-ui);
}

.planner-timegrid__dow {
  display: block;
  font-size: 0.58rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  color: var(--text-muted);
}

.planner-timegrid__dom-wrap {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  margin-top: 0.15rem;
  min-width: 1.85rem;
  min-height: 1.85rem;
  border-radius: 999px;
  font-family: var(--font-editorial);
  font-size: 1rem;
  font-weight: 800;
  color: var(--burgundy-ink);
}

.planner-timegrid__dayhead--today .planner-timegrid__dom-wrap {
  background: var(--cherry);
  color: var(--cream-paper);
}

.planner-timegrid__dayhead--grand .planner-timegrid__dow {
  color: var(--cherry);
}

.planner-timegrid__allday {
  display: grid;
  border-bottom: 1px solid rgba(0, 0, 0, 0.08);
  background: rgba(247, 241, 235, 0.55);
  min-height: 2rem;
}

.planner-timegrid__allday-label {
  padding: 0.35rem 0.45rem;
  font-size: 0.58rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  color: var(--text-muted);
  border-right: 1px solid rgba(0, 0, 0, 0.06);
  align-self: stretch;
  display: flex;
  align-items: center;
}

.planner-timegrid__allday-cell {
  border-left: 1px solid rgba(0, 0, 0, 0.05);
  padding: 0.25rem 0.3rem;
  display: flex;
  flex-wrap: wrap;
  gap: 0.25rem;
  align-content: center;
  align-items: center;
  justify-content: center;
}

.planner-timegrid__allday-chip {
  max-width: 100%;
  padding: 0.15rem 0.35rem;
  border-radius: 6px;
  font-size: 0.62rem;
  font-weight: 700;
  line-height: 1.25;
  cursor: pointer;
  border: none;
  font-family: var(--font-ui);
  color: var(--burgundy-ink);
  text-align: center;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.planner-timegrid__scroll {
  overflow: auto;
  max-height: min(68vh, 620px);
}

.planner-timegrid--week .planner-timegrid__scroll {
  min-width: 36rem;
}

.planner-timegrid__body {
  display: grid;
  position: relative;
}

.planner-timegrid__gutter {
  position: relative;
  border-right: 1px solid rgba(0, 0, 0, 0.08);
  height: calc(var(--planner-hours) * var(--planner-slot));
  background: rgba(247, 241, 235, 0.35);
}

.planner-timegrid__hour-label {
  position: absolute;
  right: 0.3rem;
  transform: translateY(-50%);
  font-size: 0.68rem;
  font-weight: 600;
  color: var(--text-muted);
  font-variant-numeric: tabular-nums;
}

.planner-timegrid__col {
  position: relative;
  border-left: 1px solid rgba(0, 0, 0, 0.06);
  height: calc(var(--planner-hours) * var(--planner-slot));
  background-image: repeating-linear-gradient(
    to bottom,
    transparent 0,
    transparent calc(var(--planner-slot) - 1px),
    rgba(0, 0, 0, 0.07) calc(var(--planner-slot) - 1px),
    rgba(0, 0, 0, 0.07) var(--planner-slot)
  );
}

.planner-timegrid__col--today {
  background-color: rgba(16, 16, 16, 0.03);
}

.planner-timegrid__col--grand {
  box-shadow: inset 0 0 0 1px rgba(16, 16, 16, 0.12);
}

.planner-timegrid__event {
  position: absolute;
  left: 3px;
  right: 3px;
  border-radius: 6px;
  padding: 0.2rem 0.35rem;
  font-size: 0.65rem;
  font-weight: 700;
  line-height: 1.2;
  overflow-x: hidden;
  overflow-y: hidden;
  cursor: grab;
  touch-action: none;
  user-select: none;
  -webkit-user-select: none;
  border: 1px solid rgba(0, 0, 0, 0.06);
  box-shadow: 0 1px 2px rgba(0, 0, 0, 0.06);
  text-align: left;
  z-index: 1;
}

.planner-timegrid__event:active {
  cursor: grabbing;
}

.planner-timegrid__event-resize {
  flex: 0 0 auto;
  min-height: 7px;
  max-height: 10px;
  cursor: ns-resize;
  touch-action: none;
  z-index: 2;
  flex-shrink: 0;
}

.planner-timegrid__event-resize--north {
  border-radius: 5px 5px 0 0;
}

.planner-timegrid__event-resize--south {
  border-radius: 0 0 5px 5px;
}

.planner-timegrid__event-body {
  flex: 1 1 auto;
  min-height: 0;
  display: flex;
  flex-direction: column;
  justify-content: center;
  padding: 0.1rem 0.32rem;
  overflow-x: hidden;
  overflow-y: hidden;
  cursor: grab;
}

.planner-timegrid__event:active .planner-timegrid__event-body {
  cursor: grabbing;
}

.planner-timegrid__event--selected {
  box-shadow: 0 0 0 2px rgba(16, 16, 16, 0.88), 0 2px 8px rgba(0, 0, 0, 0.12);
  border-color: rgba(16, 16, 16, 0.45);
}

.planner-timegrid__event--dragging {
  cursor: grabbing !important;
  opacity: 0.97;
  z-index: 2600 !important;
  box-shadow: 0 10px 28px rgba(0, 0, 0, 0.22), 0 0 0 2px rgba(16, 16, 16, 0.95);
  outline: none;
}

.planner-timegrid__event--done {
  opacity: 0.82;
  filter: saturate(0.92);
}

.planner-timegrid__allday-chip--done {
  opacity: 0.78;
}

.planner-timegrid--week .planner-timegrid__allday-chip {
  cursor: grab;
  touch-action: none;
  user-select: none;
  -webkit-user-select: none;
}

.planner-timegrid--week .planner-timegrid__allday-chip:active {
  cursor: grabbing;
}

.planner-timegrid__allday-chip--dragging {
  opacity: 0.28;
  filter: saturate(0.85);
}

.planner-timegrid__allday-chip--ghost {
  position: fixed !important;
  pointer-events: none !important;
  z-index: 9999 !important;
  opacity: 0.95;
  cursor: grabbing;
  box-shadow: 0 8px 18px rgba(0, 0, 0, 0.22);
  will-change: transform;
  transform: translateZ(0);
  transition: none !important;
  contain: layout paint;
}

.planner-timegrid__allday-cell--drop-target {
  background: rgba(16, 16, 16, 0.09);
  outline: 2px dashed rgba(16, 16, 16, 0.6);
  outline-offset: -2px;
}

/* Mise en surbrillance d'une colonne du timegrid quand on y dépose une chip
   « journée entière » pour la convertir en tâche horodatée. */
.planner-timegrid__col--drop-target {
  background: rgba(16, 16, 16, 0.05);
  box-shadow: inset 0 0 0 2px rgba(16, 16, 16, 0.45);
}

/* Indicateur visuel du créneau ciblé pendant le glissé : un rectangle
   semi-transparent positionné dans la colonne à l'heure pointée. */
.planner-timegrid__drop-guide {
  position: absolute;
  left: 3px;
  right: 3px;
  z-index: 3;
  pointer-events: none;
  background: rgba(16, 16, 16, 0.18);
  border: 1.5px dashed rgba(16, 16, 16, 0.7);
  border-radius: 6px;
  display: flex;
  align-items: flex-start;
  justify-content: flex-start;
  padding: 2px 6px;
  font-family: var(--font-ui);
  font-size: 0.62rem;
  font-weight: 700;
  color: rgba(16, 16, 16, 0.92);
  background-clip: padding-box;
}
.planner-timegrid__drop-guide-time {
  background: rgba(255, 255, 255, 0.85);
  padding: 1px 5px;
  border-radius: 4px;
  white-space: nowrap;
}

/* Zones d'auto-navigation sur les bords gauche/droit pendant un drag
   ou un pick. Quand l'utilisateur amène le curseur dans cette bande,
   le planner avance à la période précédente / suivante automatiquement,
   permettant de bouger une tâche de plusieurs jours / semaines / mois
   en un seul geste. */
.planner-edge-zone {
  position: fixed;
  top: 0;
  bottom: 0;
  width: 80px;
  pointer-events: none;
  z-index: 9998;
  opacity: 0;
  transition: opacity 0.18s ease-out, background 0.18s ease-out;
  display: flex;
  align-items: center;
  justify-content: center;
  font-family: var(--font-ui);
  font-size: 2.5rem;
  font-weight: 700;
  color: rgba(16, 16, 16, 0);
  text-shadow: 0 1px 3px rgba(0, 0, 0, 0.18);
  user-select: none;
}
.planner-edge-zone--left {
  left: 0;
  background: linear-gradient(to right, rgba(16, 16, 16, 0.18), rgba(16, 16, 16, 0));
}
.planner-edge-zone--right {
  right: 0;
  background: linear-gradient(to left, rgba(16, 16, 16, 0.18), rgba(16, 16, 16, 0));
}
.planner-edge-zone--left::after {
  content: "←";
}
.planner-edge-zone--right::after {
  content: "→";
}
.planner-edge-zone--visible {
  opacity: 0.45;
}
.planner-edge-zone--visible.planner-edge-zone--active {
  opacity: 1;
  color: rgba(16, 16, 16, 0.95);
}
.planner-edge-zone--active.planner-edge-zone--left {
  background: linear-gradient(to right, rgba(16, 16, 16, 0.42), rgba(16, 16, 16, 0));
}
.planner-edge-zone--active.planner-edge-zone--right {
  background: linear-gradient(to left, rgba(16, 16, 16, 0.42), rgba(16, 16, 16, 0));
}

.planner-timegrid__event-time {
  display: block;
  font-size: 0.58rem;
  font-weight: 600;
  opacity: 0.9;
  margin-bottom: 0.05rem;
}

.planner-timegrid__event-title {
  display: block;
  overflow: visible;
  white-space: normal;
  word-break: break-word;
  hyphens: manual;
  line-height: 1.2;
}

.planner__task-time-row {
  margin-bottom: 1rem;
  padding: 0.65rem 0.75rem;
  border-radius: 10px;
  background: rgba(255, 255, 255, 0.55);
  border: 1px solid rgba(16, 16, 16, 0.1);
}

.planner__task-allday {
  display: flex;
  align-items: center;
  gap: 0.45rem;
  font-size: 0.88rem;
  font-weight: 600;
  color: var(--text-on-cream);
  cursor: pointer;
}

.planner__task-allday input {
  accent-color: var(--cherry);
  width: 1rem;
  height: 1rem;
}

.planner__task-times {
  display: flex;
  flex-wrap: wrap;
  gap: 0.65rem;
  margin-top: 0.55rem;
}

.planner__task-time-field {
  display: flex;
  flex-direction: column;
  gap: 0.2rem;
  font-size: 0.72rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  color: var(--text-muted);
}

.planner__task-time-field input {
  padding: 0.35rem 0.45rem;
  border-radius: 8px;
  border: 1px solid rgba(16, 16, 16, 0.2);
  font-family: var(--font-ui);
  font-size: 0.95rem;
}

.planner__week-grid {
  display: grid;
  grid-template-columns: repeat(7, minmax(0, 1fr));
  gap: 0.4rem;
}

.planner__week-cell {
  min-height: 7rem;
  border-radius: 12px;
  border: 1px solid rgba(16, 16, 16, 0.12);
  background: var(--cream-paper);
  padding: 0.45rem;
  display: flex;
  flex-direction: column;
  gap: 0.35rem;
}

.planner__week-cell--muted {
  opacity: 0.5;
}

.planner__week-cell--today {
  border-color: var(--cherry);
  box-shadow: 0 0 0 1px rgba(16, 16, 16, 0.15);
}

.planner__week-cell--grand {
  border-color: var(--cherry);
  border-width: 2px;
  background: linear-gradient(180deg, rgba(16, 16, 16, 0.08) 0%, var(--cream-paper) 40%);
}

.planner__week-head {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 0.1rem;
}

.planner__week-dow {
  font-size: 0.58rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  color: var(--text-muted);
}

.planner__week-datebtn {
  padding: 0;
  border: none;
  background: none;
  font: inherit;
  cursor: pointer;
  text-align: left;
  color: var(--burgundy-ink);
}

.planner__week-datebtn:focus-visible {
  outline: 2px solid var(--cherry);
  outline-offset: 2px;
  border-radius: 4px;
}

.planner__week-num {
  font-family: var(--font-editorial);
  font-size: 1.15rem;
  font-weight: 800;
  color: var(--cherry);
}

.planner__week-tasks {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 0.25rem;
  overflow: auto;
  max-height: 5rem;
  font-size: 0.72rem;
  font-weight: 600;
  color: var(--text-on-cream);
}

.planner__week-task {
  padding: 0.15rem 0.25rem;
  border-radius: 6px;
  background: rgba(16, 16, 16, 0.06);
  cursor: pointer;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.planner__week-task--done {
  opacity: 0.55;
  text-decoration: line-through;
}

.planner__day-single {
  border-radius: 14px;
  border: 1px solid rgba(16, 16, 16, 0.12);
  background: var(--cream-paper);
  padding: 1rem;
}

.planner__year-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(7.5rem, 1fr));
  gap: 0.65rem;
}

.planner__year-mini {
  border-radius: 12px;
  border: 1px solid rgba(16, 16, 16, 0.12);
  background: rgba(255, 255, 255, 0.5);
  padding: 0.45rem;
  cursor: pointer;
  text-align: left;
  font: inherit;
  color: inherit;
  transition:
    border-color 0.15s ease,
    box-shadow 0.15s ease;
}

.planner__year-mini:hover {
  border-color: var(--cherry);
  box-shadow: 0 6px 14px rgba(42, 24, 24, 0.08);
}

.planner__year-mini:focus-visible {
  outline: 2px solid var(--cherry);
  outline-offset: 2px;
}

.planner__year-mini-title {
  margin: 0 0 0.35rem;
  font-family: var(--font-ui);
  font-size: 0.65rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  color: var(--cherry);
}

.planner__year-mini-grid {
  display: grid;
  grid-template-columns: repeat(7, 1fr);
  gap: 1px;
}

.planner__year-mini-day {
  aspect-ratio: 1;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 0.45rem;
  font-weight: 700;
  color: var(--text-muted);
  border-radius: 2px;
}

.planner__year-mini-day--in {
  color: var(--burgundy-ink);
  background: rgba(247, 241, 235, 0.9);
}

.planner__year-mini-day--grand {
  background: rgba(16, 16, 16, 0.2);
  color: var(--cherry-dark);
}

.planner__year-mini-day--today {
  outline: 1px solid var(--cherry);
}

.planner__sync {
  margin-top: 1.25rem;
  padding: 1rem;
  border-radius: 14px;
  background: rgba(255, 255, 255, 0.4);
  border: 1px dashed rgba(16, 16, 16, 0.22);
}

.planner__sync-title {
  margin: 0 0 0.5rem;
  font-family: var(--font-ui);
  font-size: 0.68rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.14em;
  color: var(--text-muted);
}

.planner__sync-text {
  margin: 0 0 0.75rem;
  font-size: 0.9rem;
  line-height: 1.5;
  color: var(--text-on-cream);
}

.planner__sync-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
}

.planner__sync-btn {
  padding: 0.45rem 0.85rem;
  border-radius: 10px;
  border: 1px solid rgba(16, 16, 16, 0.35);
  background: var(--cream-paper);
  font-family: var(--font-ui);
  font-size: 0.72rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  color: var(--cherry);
  cursor: pointer;
}

.planner__sync-btn:hover {
  background: rgba(16, 16, 16, 0.08);
}

.planner__drawer-backdrop {
  position: fixed;
  inset: 0;
  background: rgba(42, 24, 24, 0.35);
  z-index: 120;
  opacity: 0;
  pointer-events: none;
  transition: opacity 0.2s ease;
}

.planner__drawer-backdrop--open {
  opacity: 1;
  pointer-events: auto;
}

.planner-todo-move-backdrop {
  position: fixed;
  inset: 0;
  z-index: 200;
  background: rgba(42, 24, 24, 0.4);
  opacity: 0;
  pointer-events: none;
  transition: opacity 0.18s ease;
}

.planner-todo-move-backdrop--open {
  opacity: 1;
  pointer-events: auto;
}

.planner-todo-move-dialog {
  position: fixed;
  left: 50%;
  top: 50%;
  transform: translate(-50%, -50%);
  z-index: 210;
  width: min(22.5rem, 94vw);
  max-height: min(32rem, 90vh);
  overflow: auto;
  box-sizing: border-box;
}

.planner-todo-move-dialog__panel {
  position: relative;
  padding: 1.15rem 1.2rem 1.2rem;
  border-radius: 16px;
  background: var(--cream-paper);
  border: 1px solid rgba(16, 16, 16, 0.28);
  box-shadow: 0 16px 40px rgba(0, 0, 0, 0.18);
}

.planner-todo-move-dialog__x {
  position: absolute;
  top: 0.45rem;
  right: 0.5rem;
  width: 2rem;
  height: 2rem;
  border: none;
  border-radius: 8px;
  background: transparent;
  font-size: 1.35rem;
  line-height: 1;
  color: var(--text-muted);
  cursor: pointer;
}

.planner-todo-move-dialog__x:hover {
  color: var(--cherry);
  background: rgba(16, 16, 16, 0.08);
}

.planner-todo-move-dialog__title {
  margin: 0 1.75rem 0.65rem 0;
  font-family: var(--font-editorial);
  font-size: 1.15rem;
  font-weight: 800;
  color: var(--cherry);
}

.planner-todo-move-dialog__body {
  display: flex;
  flex-direction: column;
  gap: 0.45rem;
}

.planner-todo-move-dialog__task-name {
  margin: 0 0 0.15rem;
  font-size: 0.95rem;
  font-weight: 700;
  line-height: 1.35;
  color: var(--text-on-cream);
}

.planner-todo-move-dialog__slotline {
  margin: 0;
  font-size: 0.82rem;
  font-weight: 600;
  line-height: 1.35;
  color: var(--text-on-cream);
}

.planner-todo-move-dialog__hint {
  margin: 0;
  font-size: 0.74rem;
  line-height: 1.4;
  color: var(--text-muted);
}

.planner-todo-move-dialog__sep {
  margin: 0.35rem 0 0.25rem;
  border: 0;
  border-top: 1px dashed rgba(16, 16, 16, 0.22);
}

.planner-todo-move-dialog__link {
  align-self: flex-start;
}

.planner__drawer {
  position: fixed;
  top: 0;
  right: 0;
  width: min(22rem, 92vw);
  height: 100%;
  z-index: 130;
  background: var(--cream-paper);
  border-left: 1px solid rgba(16, 16, 16, 0.15);
  box-shadow: -12px 0 32px rgba(0, 0, 0, 0.12);
  transform: translateX(100%);
  transition: transform 0.22s ease;
  display: flex;
  flex-direction: column;
}

.planner__drawer--open {
  transform: translateX(0);
}

.planner__drawer-header {
  padding: 1rem 1rem 0.65rem;
  border-bottom: 1px solid rgba(16, 16, 16, 0.1);
}

.planner__drawer-title {
  margin: 0;
  font-family: var(--font-editorial);
  font-size: 1.25rem;
  font-weight: 800;
  color: var(--cherry);
}

.planner__drawer-sub {
  margin: 0.35rem 0 0;
  font-size: 0.85rem;
  color: var(--text-muted);
}

.planner__drawer-sub[hidden] {
  display: none !important;
}

.planner__drawer-close {
  position: absolute;
  top: 0.65rem;
  right: 0.65rem;
  width: 2rem;
  height: 2rem;
  border-radius: 8px;
  border: 1px solid rgba(16, 16, 16, 0.25);
  background: var(--cream-deep);
  color: var(--cherry);
  font-size: 1.1rem;
  line-height: 1;
  cursor: pointer;
}

.planner__drawer-body {
  padding: 1rem;
  overflow: auto;
  flex: 1;
}

.planner__drawer-section--day {
  margin-bottom: 0.85rem;
}

.planner__subject-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0.55rem;
  margin-bottom: 0.65rem;
}

@media (max-width: 420px) {
  .planner__subject-grid {
    grid-template-columns: 1fr;
  }
}

.planner__subject-card {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  padding: 0.65rem 0.6rem;
  border-radius: 12px;
  border: 1px solid rgba(16, 16, 16, 0.18);
  border-left: 4px solid var(--subject-accent, var(--cherry));
  background: rgba(255, 255, 255, 0.65);
  cursor: pointer;
  text-align: left;
  font: inherit;
  color: var(--burgundy-ink);
  transition:
    border-color 0.15s ease,
    box-shadow 0.15s ease,
    transform 0.12s ease;
}

.planner__subject-card:hover {
  box-shadow: 0 4px 14px rgba(42, 24, 24, 0.08);
  border-color: rgba(16, 16, 16, 0.35);
}

.planner__subject-card:active {
  transform: scale(0.99);
}

.planner__subject-card-swatch {
  width: 0.65rem;
  height: 2.1rem;
  border-radius: 4px;
  flex-shrink: 0;
}

.planner__subject-card-name {
  font-family: var(--font-ui);
  font-size: 0.72rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  line-height: 1.25;
}

.planner__subject-other {
  width: 100%;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 0.45rem;
  padding: 0.55rem 0.75rem;
  border-radius: 12px;
  border: 2px dashed rgba(16, 16, 16, 0.4);
  background: rgba(247, 241, 235, 0.65);
  font-family: var(--font-ui);
  font-size: 0.72rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  color: var(--cherry);
  cursor: pointer;
}

.planner__subject-other:hover {
  background: rgba(16, 16, 16, 0.07);
  border-color: var(--cherry);
}

.planner__subject-other-plus {
  font-size: 1.15rem;
  font-weight: 800;
  line-height: 1;
}

.planner__compose-back {
  margin-bottom: 0.65rem;
  padding: 0.35rem 0.55rem;
  border: none;
  border-radius: 8px;
  background: rgba(16, 16, 16, 0.08);
  color: var(--cherry);
  font-family: var(--font-ui);
  font-size: 0.78rem;
  font-weight: 700;
  cursor: pointer;
}

.planner__compose-heading {
  margin: 0 0 0.65rem;
  font-family: var(--font-editorial);
  font-size: 1.05rem;
  font-weight: 800;
  color: var(--cherry);
}

.planner__compose-color-wrap {
  margin-bottom: 0.75rem;
  padding: 0.6rem 0.65rem;
  border-radius: 10px;
  background: rgba(255, 255, 255, 0.55);
  border: 1px solid rgba(16, 16, 16, 0.1);
}

.planner__compose-color-label {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.75rem;
  font-size: 0.78rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  color: var(--text-muted);
}

.planner__compose-color-label input[type="color"] {
  width: 3rem;
  height: 2rem;
  padding: 0;
  border: 1px solid rgba(16, 16, 16, 0.25);
  border-radius: 8px;
  cursor: pointer;
  background: var(--cream-paper);
}

.planner__compose-color-hint {
  margin: 0.4rem 0 0;
  font-size: 0.78rem;
  line-height: 1.35;
  color: var(--text-muted);
}

.planner__compose-suggest-title {
  margin: 0 0 0.4rem;
  font-size: 0.68rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.12em;
  color: var(--text-muted);
}

.planner__compose-suggestions {
  list-style: none;
  margin: 0 0 0.85rem;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 0.45rem;
}

/* Sous-onglets « Leçons / Travaux à rendre / Autre » au-dessus des suggestions. */
.planner__compose-cats {
  display: flex;
  gap: 0.25rem;
  margin: 0.4rem 0 0.85rem;
  padding: 0.2rem;
  background: rgba(255, 255, 255, 0.55);
  border: 1px solid rgba(16, 16, 16, 0.12);
  border-radius: 999px;
}

.planner__compose-cat {
  flex: 1 1 0;
  appearance: none;
  background: transparent;
  border: 0;
  padding: 0.4rem 0.5rem;
  border-radius: 999px;
  font-family: var(--font-ui);
  font-size: 0.68rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  color: var(--text-muted);
  cursor: pointer;
  line-height: 1.15;
  text-align: center;
  transition: background 0.18s ease, color 0.18s ease;
}

.planner__compose-cat:hover {
  color: var(--cherry);
}

.planner__compose-cat.is-active {
  background: var(--cherry);
  color: #ffffff;
}

.planner__compose-cat:focus-visible {
  outline: 2px solid var(--cherry);
  outline-offset: 2px;
}

.planner__compose-suggest-item {
  display: flex;
  flex-direction: column;
  gap: 0.35rem;
  padding: 0.5rem 0.55rem;
  border-radius: 10px;
  background: rgba(255, 255, 255, 0.55);
  border: 1px solid rgba(16, 16, 16, 0.1);
}

.planner__compose-suggest-title-text {
  font-size: 0.88rem;
  font-weight: 600;
  line-height: 1.35;
  color: var(--text-on-cream);
}

.planner__compose-suggest-title-text--muted {
  color: var(--text-muted);
}

.planner__compose-suggest-actions {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.35rem;
}

.planner__compose-suggest-btn {
  padding: 0.28rem 0.55rem;
  border-radius: 8px;
  border: 1px solid rgba(16, 16, 16, 0.35);
  background: var(--cream-paper);
  font-family: var(--font-ui);
  font-size: 0.68rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  color: var(--cherry);
  cursor: pointer;
}

.planner__compose-suggest-done {
  padding: 0.28rem 0.45rem;
  border: none;
  border-radius: 6px;
  background: transparent;
  font-size: 0.68rem;
  font-weight: 700;
  color: var(--text-muted);
  cursor: pointer;
  text-decoration: underline;
}

.planner__compose-suggest-done:hover {
  color: var(--cherry);
}

.planner__compose-suggest-tag {
  font-size: 0.65rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  color: var(--text-muted);
}

.planner__compose-suggest-empty {
  font-size: 0.85rem;
  color: var(--text-muted);
  padding: 0.35rem 0;
}

.planner__compose-date-label {
  display: flex;
  flex-direction: column;
  gap: 0.25rem;
  font-size: 0.72rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  color: var(--text-muted);
}

.planner__compose-date-label input {
  padding: 0.45rem 0.55rem;
  border-radius: 10px;
  border: 1px solid rgba(16, 16, 16, 0.2);
  font-family: var(--font-ui);
  font-size: 0.95rem;
}

.planner__compose-add-free {
  width: 100%;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 0.45rem;
  margin-top: 0.65rem;
  padding: 0.5rem 0.75rem;
  border-radius: 12px;
  border: 2px dashed rgba(16, 16, 16, 0.38);
  background: rgba(255, 255, 255, 0.55);
  font-family: var(--font-ui);
  font-size: 0.72rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  color: var(--cherry);
  cursor: pointer;
}

.planner__compose-add-free:hover {
  background: rgba(16, 16, 16, 0.07);
  border-color: var(--cherry);
}

.planner__compose-add-free-plus {
  font-size: 1.2rem;
  font-weight: 800;
  line-height: 1;
}

/* Bouton « + Nouveau travail à rendre » affiché en tête de la liste
   « Travaux à rendre » du compose Planner. Permet de créer un travail
   directement depuis le Planner (création dans Matières + sync auto). */
.planner__compose-suggest-item--create {
  background: transparent !important;
  border: 0 !important;
  padding: 0 !important;
  box-shadow: none !important;
}

.planner__compose-suggest-create {
  width: 100%;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 0.45rem;
  padding: 0.5rem 0.75rem;
  border-radius: 12px;
  border: 2px dashed rgba(16, 16, 16, 0.38);
  background: rgba(255, 255, 255, 0.55);
  font-family: var(--font-ui);
  font-size: 0.72rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  color: var(--cherry);
  cursor: pointer;
}

.planner__compose-suggest-create:hover {
  background: rgba(16, 16, 16, 0.07);
  border-color: var(--cherry);
}

.planner__compose-suggest-create-plus {
  font-size: 1.2rem;
  font-weight: 800;
  line-height: 1;
}

body.subject-body:has(.page-shell--planner) .planner__compose-suggest-item--create {
  background: transparent !important;
  border: 0 !important;
  padding: 0 !important;
  box-shadow: none !important;
}

body.subject-body:has(.page-shell--planner) .planner__compose-suggest-create {
  background: var(--pl-surface-soft) !important;
  border: 2px dashed var(--pl-line-strong) !important;
  color: var(--pl-ink) !important;
}

body.subject-body:has(.page-shell--planner) .planner__compose-suggest-create:hover {
  background: var(--pl-peach-wash) !important;
  border-color: var(--pl-peach) !important;
  color: var(--pl-ink) !important;
}

.planner__compose-sub {
  padding-top: 0.15rem;
}

.planner__compose-back--sub {
  margin-bottom: 0.55rem;
}

.planner__compose-sub__heading {
  margin: 0 0 0.65rem;
  font-family: var(--font-editorial);
  font-size: 1rem;
  font-weight: 800;
  color: var(--cherry);
}

.planner__compose-sub__lead {
  margin: 0 0 0.75rem;
  font-size: 0.92rem;
  font-weight: 600;
  line-height: 1.4;
  color: var(--text-on-cream);
}

.planner__custom-title-label {
  display: flex;
  flex-direction: column;
  gap: 0.3rem;
  margin-bottom: 0.75rem;
  font-size: 0.72rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  color: var(--text-muted);
}

.planner__custom-title-label input {
  padding: 0.5rem 0.65rem;
  border-radius: 10px;
  border: 1px solid rgba(16, 16, 16, 0.2);
  font-family: var(--font-ui);
  font-size: 0.95rem;
}

.planner__edit-notes {
  padding: 0.55rem 0.7rem;
  border-radius: 10px;
  border: 1px solid rgba(16, 16, 16, 0.2);
  font-family: var(--font-ui);
  font-size: 0.9rem;
  line-height: 1.45;
  color: var(--ink);
  background: #ffffff;
  resize: vertical;
  min-height: 4.5rem;
  text-transform: none;
  letter-spacing: 0;
  font-weight: 400;
}

.planner__edit-notes:focus {
  outline: none;
  border-color: rgba(16, 16, 16, 0.45);
  box-shadow: 0 0 0 3px rgba(239, 184, 153, 0.28);
}

.planner__edit-notes-label {
  margin-bottom: 0.9rem;
}

.planner__task-time-row--sub {
  margin-bottom: 0.85rem;
}

.planner__task-add--block {
  width: 100%;
  margin-top: 0.25rem;
}

.planner__other-palette {
  margin-bottom: 0.85rem;
  padding: 0.65rem 0.75rem;
  border-radius: 12px;
  background: rgba(255, 255, 255, 0.92);
  border: 1px solid rgba(16, 16, 16, 0.1);
}

.planner__other-palette__title {
  margin: 0 0 0.5rem;
  font-family: var(--font-ui);
  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: rgba(42, 24, 24, 0.55);
}

.planner__other-palette__swatches {
  display: flex;
  flex-wrap: wrap;
  gap: 0.45rem;
}

.planner__other-palette__swatch {
  width: 2rem;
  height: 2rem;
  border-radius: 50%;
  border: 2px solid rgba(255, 255, 255, 0.95);
  box-shadow: 0 0 0 1px rgba(42, 24, 24, 0.12);
  background: var(--swatch, #455a64);
  cursor: pointer;
  padding: 0;
  flex-shrink: 0;
}

.planner__other-palette__swatch[aria-pressed="true"] {
  box-shadow: 0 0 0 2px var(--cherry, #efb899), 0 2px 8px rgba(0, 0, 0, 0.12);
  transform: scale(1.06);
}

.planner__task-form {
  display: flex;
  gap: 0.4rem;
  margin-bottom: 1rem;
}

.planner__task-form[hidden],
.planner__task-time-row[hidden] {
  display: none !important;
}

.planner__task-input {
  flex: 1;
  min-width: 0;
  padding: 0.5rem 0.65rem;
  border-radius: 10px;
  border: 1px solid rgba(16, 16, 16, 0.2);
  font-family: var(--font-ui);
  font-size: 0.95rem;
}

.planner__task-add {
  flex-shrink: 0;
  padding: 0.5rem 0.75rem;
  border-radius: 10px;
  border: none;
  background: var(--cherry);
  color: var(--cream-paper);
  font-family: var(--font-ui);
  font-size: 0.72rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  cursor: pointer;
}

.planner__task-list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
}

.planner__task-row {
  display: flex;
  align-items: flex-start;
  gap: 0.5rem;
  padding: 0.55rem 0.6rem;
  border-radius: 10px;
  background: rgba(255, 255, 255, 0.55);
  border: 1px solid rgba(16, 16, 16, 0.08);
}

.planner__task-row--done .planner__task-label {
  text-decoration: line-through;
  opacity: 0.65;
}

.planner__task-row--pense-general {
  border-style: dashed;
  border-color: rgba(16, 16, 16, 0.2);
  background: rgba(255, 255, 255, 0.42);
}

.planner__task-check {
  margin-top: 0.15rem;
  accent-color: var(--cherry);
}

.planner__task-label {
  flex: 1;
  font-size: 0.92rem;
  font-weight: 600;
  line-height: 1.35;
  color: var(--text-on-cream);
}

.planner__task-meta {
  font-size: 0.7rem;
  font-weight: 600;
  color: var(--text-muted);
  margin-top: 0.2rem;
}

.planner__task-remove {
  flex-shrink: 0;
  padding: 0.25rem 0.45rem;
  border: none;
  border-radius: 6px;
  background: transparent;
  color: var(--text-muted);
  font-size: 0.75rem;
  cursor: pointer;
}

.planner__task-remove:hover {
  color: var(--cherry);
  background: rgba(16, 16, 16, 0.08);
}

.planner-ai__tab {
  position: fixed;
  bottom: 1.1rem;
  right: 1.1rem;
  z-index: 140;
  display: flex;
  align-items: center;
  gap: 0.45rem;
  max-width: min(17rem, calc(100vw - 2rem));
  padding: 0.55rem 0.85rem;
  border-radius: 999px;
  border: 1px solid rgba(16, 16, 16, 0.35);
  background: linear-gradient(135deg, var(--cream-paper) 0%, var(--cream-deep) 100%);
  box-shadow: 0 10px 28px rgba(42, 24, 24, 0.15);
  font-family: var(--font-ui);
  font-size: 0.72rem;
  font-weight: 700;
  text-transform: none;
  letter-spacing: 0.02em;
  color: var(--burgundy-ink);
  cursor: pointer;
  text-align: left;
  line-height: 1.25;
}

.planner-ai__tab:hover {
  border-color: var(--cherry);
  color: var(--cherry);
}

.planner-ai__tab:focus-visible {
  outline: 2px solid var(--cherry);
  outline-offset: 3px;
}

.planner-ai__chev {
  flex-shrink: 0;
  font-size: 0.65rem;
  color: var(--cherry);
  transition: transform 0.2s ease;
}

.planner-ai__tab[aria-expanded="true"] .planner-ai__chev {
  transform: rotate(180deg);
}

.planner-ai__panel {
  position: fixed;
  bottom: 0;
  right: 0;
  width: min(22rem, 100vw);
  max-height: min(70vh, 28rem);
  z-index: 135;
  background: var(--cream-paper);
  border-top-left-radius: 20px;
  border: 1px solid rgba(16, 16, 16, 0.14);
  border-bottom: none;
  border-right: none;
  box-shadow: 0 -8px 32px rgba(0, 0, 0, 0.12);
  transform: translateY(110%);
  transition: transform 0.25s ease;
  display: flex;
  flex-direction: column;
  overflow: hidden;
}

.planner-ai__panel--open {
  transform: translateY(0);
}

.planner-ai__head {
  padding: 0.85rem 1rem;
  border-bottom: 1px solid rgba(16, 16, 16, 0.1);
  font-family: var(--font-editorial);
  font-size: 1.05rem;
  font-weight: 800;
  color: var(--cherry);
}

.planner-ai__body {
  padding: 0.85rem 1rem 1rem;
  overflow: auto;
  flex: 1;
}

.planner-ai__hint {
  margin: 0;
  font-size: 0.9rem;
  line-height: 1.5;
  color: var(--text-muted);
}

@media (max-width: 640px) {
  .planner__week-grid {
    grid-template-columns: 1fr;
  }

  .planner__week-cell {
    min-height: auto;
  }

  .planner__week-tasks {
    max-height: none;
  }
}

.subject-page-title {
  margin: 0 0 1rem;
  font-family: var(--font-editorial);
  font-size: clamp(1.9rem, 4.2vw, 2.75rem);
  font-weight: 800;
  line-height: 1.1;
  letter-spacing: -0.02em;
  text-transform: none;
  color: var(--cherry);
}

.subject-page-title::after {
  content: "";
  display: block;
  width: 3rem;
  height: 4px;
  margin-top: 0.55rem;
  border-radius: 2px;
  background: var(--cherry);
}

.subject-page-main {
  width: min(720px, 92%);
  margin: 1.5rem auto 3rem;
  padding: 2.25rem 1.75rem 2rem;
  background-color: var(--cream-deep);
  border-radius: 28px;
  border: 1px solid var(--line-soft);
  box-shadow: 0 14px 36px rgba(16, 16, 16, 0.05);
}

.subject-page-main--with-header {
  margin-top: 1.25rem;
}

.subject-page-kicker {
  margin: 0 0 0.5rem;
  font-family: var(--font-ui);
  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: 0.24em;
  text-transform: uppercase;
  color: var(--burgundy-ink);
}

.subject-page-lead {
  margin: 1rem 0 0;
  font-family: var(--font-ui);
  font-size: 1.02rem;
  font-weight: 400;
  line-height: 1.6;
  color: var(--text-on-cream);
  max-width: 56ch;
}

.subject-page-back {
  margin: 1.75rem 0 0;
  font-family: var(--font-ui);
  font-size: 0.9rem;
}

.subject-page-back__link {
  color: var(--burgundy-ink);
  text-decoration: none;
  border-bottom: 1px solid var(--line-soft);
  padding-bottom: 1px;
  transition:
    color 0.2s ease,
    border-color 0.2s ease;
}

.subject-page-back__link:hover,
.subject-page-back__link:focus-visible {
  color: var(--cherry-dark);
  border-color: var(--cherry-dark);
}

.subject-page-placeholder {
  margin: 0;
  font-family: var(--font-ui);
  font-size: 1rem;
  font-weight: 500;
  line-height: 1.55;
  color: var(--text-muted);
}

/* ——— Pied de page ——— */
.site-footer {
  flex-shrink: 0;
  margin-top: auto;
  border-top: 1px solid rgba(16, 16, 16, 0.12);
  background-color: rgba(247, 241, 235, 0.85);
}

.site-footer__inner {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 0.75rem 1.25rem;
  width: min(var(--site-layout-max), var(--site-layout-pad));
  margin: 0 auto;
  padding: 0.85rem 0 1rem;
}

.site-footer__nav {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.65rem 1.1rem;
}

.site-footer__link {
  font-family: var(--font-ui);
  font-size: 0.9rem;
  font-weight: 600;
  letter-spacing: 0.02em;
  text-transform: uppercase;
  color: var(--text-muted);
  text-decoration: none;
}

.site-footer__link:hover {
  color: var(--cherry);
}

.site-footer__meta {
  margin: 0;
  font-family: var(--font-ui);
  font-size: 0.82rem;
  font-weight: 500;
  color: var(--text-muted);
  opacity: 0.9;
}

/* ——— Assistant IA (onglet bas de page, futur branchement) ——— */
body.crfpa-ai-dock-active {
  padding-bottom: calc(3.35rem + env(safe-area-inset-bottom, 0px));
}

.crfpa-ai-dock {
  position: fixed;
  inset: 0;
  z-index: 80;
  pointer-events: none;
}

.crfpa-ai-dock__backdrop {
  position: absolute;
  inset: 0;
  margin: 0;
  padding: 0;
  border: none;
  background: rgba(42, 24, 24, 0.28);
  cursor: pointer;
  opacity: 0;
  visibility: hidden;
  transition:
    opacity 0.22s ease,
    visibility 0.22s ease;
  pointer-events: none;
}

body.crfpa-ai-dock-open .crfpa-ai-dock__backdrop {
  opacity: 1;
  visibility: visible;
  pointer-events: auto;
}

.crfpa-ai-dock__tab {
  position: absolute;
  right: max(0.75rem, env(safe-area-inset-right, 0px));
  bottom: max(0.55rem, env(safe-area-inset-bottom, 0px));
  z-index: 2;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.35rem;
  padding: 0.45rem 0.85rem 0.5rem;
  font: inherit;
  font-size: 0.78rem;
  font-weight: 700;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--cream-paper);
  background: linear-gradient(135deg, var(--cherry-dark), var(--cherry));
  border: 1px solid rgba(255, 255, 255, 0.12);
  border-radius: 12px 12px 4px 12px;
  box-shadow: 0 10px 26px rgba(74, 21, 24, 0.28);
  cursor: pointer;
  pointer-events: auto;
  transition:
    transform 0.18s ease,
    box-shadow 0.18s ease;
}

.crfpa-ai-dock__tab:hover {
  transform: translateY(-2px);
  box-shadow: 0 14px 32px rgba(74, 21, 24, 0.32);
}

.crfpa-ai-dock__tab:focus-visible {
  outline: none;
  box-shadow:
    0 0 0 3px rgba(16, 16, 16, 0.22),
    0 10px 26px rgba(74, 21, 24, 0.28);
}

.crfpa-ai-dock__tab-text {
  display: inline-flex;
  align-items: baseline;
  gap: 0.35rem;
}

.crfpa-ai-dock__tab-title {
  font-family: var(--font-ui);
}

.crfpa-ai-dock__tab-badge {
  font-size: 0.62rem;
  font-weight: 700;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  padding: 0.12rem 0.35rem;
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.18);
  color: var(--cream-paper);
}

.crfpa-ai-dock__panel {
  position: absolute;
  right: max(0.65rem, env(safe-area-inset-right, 0px));
  left: max(0.65rem, env(safe-area-inset-left, 0px));
  bottom: max(3.15rem, calc(env(safe-area-inset-bottom, 0px) + 2.65rem));
  z-index: 1;
  max-width: 26rem;
  margin-left: auto;
  margin-right: 0;
  max-height: min(72vh, 28rem);
  overflow: auto;
  padding: 0;
  background: rgba(247, 241, 235, 0.98);
  border: 1px solid rgba(16, 16, 16, 0.16);
  border-radius: 18px;
  box-shadow: 0 -8px 40px rgba(42, 24, 24, 0.14);
  pointer-events: auto;
  transform: translate3d(0, 12px, 0);
  opacity: 0;
  visibility: hidden;
  transition:
    transform 0.24s cubic-bezier(0.22, 1, 0.36, 1),
    opacity 0.22s ease,
    visibility 0.22s ease;
}

body.crfpa-ai-dock-open .crfpa-ai-dock__panel {
  transform: translate3d(0, 0, 0);
  opacity: 1;
  visibility: visible;
}

.crfpa-ai-dock__panel-inner {
  padding: 1rem 1.1rem 1.15rem;
}

.crfpa-ai-dock__head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.75rem;
  margin-bottom: 0.65rem;
}

.crfpa-ai-dock__heading {
  margin: 0;
  font-family: var(--font-editorial);
  font-size: 1.15rem;
  font-weight: 800;
  letter-spacing: -0.02em;
  color: var(--burgundy-ink);
}

.crfpa-ai-dock__close {
  flex-shrink: 0;
  width: 2.1rem;
  height: 2.1rem;
  padding: 0;
  font-size: 1.35rem;
  line-height: 1;
  font-weight: 600;
  color: var(--text-muted);
  background: rgba(255, 255, 255, 0.65);
  border: 1px solid rgba(16, 16, 16, 0.14);
  border-radius: 10px;
  cursor: pointer;
}

.crfpa-ai-dock__close:hover {
  color: var(--cherry);
  border-color: rgba(16, 16, 16, 0.28);
}

.crfpa-ai-dock__warn {
  margin: 0 0 0.65rem;
  padding: 0.65rem 0.75rem;
  font-size: 0.88rem;
  line-height: 1.45;
  color: var(--burgundy-ink);
  background: rgba(16, 16, 16, 0.07);
  border: 1px solid rgba(16, 16, 16, 0.16);
  border-radius: 12px;
}

.crfpa-ai-dock__intro {
  margin: 0 0 0.75rem;
  font-size: 0.92rem;
  line-height: 1.45;
  color: var(--text-on-cream);
}

.crfpa-ai-dock__feed {
  display: flex;
  flex-direction: column;
  gap: 0.45rem;
  max-height: 9.5rem;
  overflow: auto;
  margin: 0 0 0.75rem;
  padding-right: 0.2rem;
}

.crfpa-ai-dock__bubble {
  margin: 0;
  padding: 0.5rem 0.65rem;
  border-radius: 12px;
  font-size: 0.88rem;
  line-height: 1.42;
  white-space: pre-wrap;
  word-break: break-word;
}

.crfpa-ai-dock__bubble--assistant {
  align-self: flex-start;
  background: rgba(255, 255, 255, 0.78);
  border: 1px solid rgba(16, 16, 16, 0.12);
}

.crfpa-ai-dock__bubble--user {
  align-self: flex-end;
  background: rgba(16, 16, 16, 0.1);
  border: 1px solid rgba(16, 16, 16, 0.18);
}

.crfpa-ai-dock__label {
  display: block;
  margin: 0 0 0.35rem;
  font-size: 0.82rem;
  font-weight: 700;
  color: var(--text-muted);
}

.crfpa-ai-dock__textarea {
  width: 100%;
  resize: vertical;
  min-height: 4.5rem;
  padding: 0.55rem 0.65rem;
  font: inherit;
  font-size: 0.92rem;
  line-height: 1.4;
  color: var(--text-muted);
  background: rgba(255, 255, 255, 0.55);
  border: 1px dashed rgba(16, 16, 16, 0.28);
  border-radius: 10px;
}

.crfpa-ai-dock__send {
  margin-top: 0.65rem;
  width: 100%;
  padding: 0.5rem 0.85rem;
  font: inherit;
  font-size: 0.82rem;
  font-weight: 700;
  letter-spacing: 0.05em;
  text-transform: uppercase;
  color: var(--text-muted);
  background: rgba(255, 255, 255, 0.55);
  border: 1px solid rgba(16, 16, 16, 0.14);
  border-radius: 999px;
  cursor: pointer;
}

.crfpa-ai-dock__send:disabled {
  cursor: not-allowed;
  opacity: 0.7;
}

.crfpa-ai-dock__status {
  margin: 0.5rem 0 0;
  min-height: 1.05rem;
  font-size: 0.78rem;
  line-height: 1.35;
  color: var(--text-muted);
}

.crfpa-ai-dock__status--ok {
  color: #1f6b2a;
}

.crfpa-ai-dock__status--error {
  color: var(--cherry-dark);
}

@media (max-width: 520px) {
  .crfpa-ai-dock__panel {
    left: max(0.5rem, env(safe-area-inset-left, 0px));
    right: max(0.5rem, env(safe-area-inset-right, 0px));
    max-width: none;
    margin-right: 0;
  }
}

@media (prefers-reduced-motion: reduce) {
  .crfpa-ai-dock__backdrop,
  .crfpa-ai-dock__panel,
  .crfpa-ai-dock__tab {
    transition: none;
  }

  .crfpa-ai-dock__tab:hover {
    transform: none;
  }
}

@media print {
  #crfpa-ai-dock-root {
    display: none !important;
  }

  body.crfpa-ai-dock-active {
    padding-bottom: 0 !important;
  }
}

/* ——— Toast confirmation note (évolution) ——— */
.crfpa-toast {
  position: fixed;
  bottom: 1.35rem;
  left: 50%;
  z-index: 200;
  max-width: min(92vw, 22rem);
  padding: 0.65rem 1.15rem;
  font-family: var(--font-ui);
  font-size: 0.95rem;
  font-weight: 600;
  line-height: 1.35;
  text-align: center;
  color: var(--cream-paper);
  background: linear-gradient(135deg, var(--cherry-dark), var(--cherry));
  border-radius: 999px;
  box-shadow: 0 10px 28px rgba(74, 21, 24, 0.22);
  pointer-events: none;
  transform: translate3d(-50%, 120%, 0);
  opacity: 0;
  transition:
    transform 0.38s cubic-bezier(0.22, 1, 0.36, 1),
    opacity 0.32s ease;
}

.crfpa-toast.crfpa-toast--visible {
  transform: translate3d(-50%, 0, 0);
  opacity: 1;
}

/* ——— Page administration (hors menu public) ——— */
.page-shell--admin .page-shell__lead code {
  font-size: 0.82em;
}

.admin-dashboard-panel {
  margin-top: 1.25rem;
}

.admin-section {
  margin-top: 1.75rem;
  padding-top: 1.35rem;
  border-top: 1px solid rgba(16, 16, 16, 0.12);
}

.admin-section:first-of-type {
  margin-top: 0.75rem;
  padding-top: 0;
  border-top: none;
}

.admin-section__title {
  margin: 0 0 0.65rem;
  font-family: var(--font-editorial);
  font-size: 1.2rem;
  font-weight: 800;
  color: var(--cherry);
}

.admin-section__hint {
  margin: 0 0 0.85rem;
  font-size: 0.88rem;
  font-weight: 500;
  line-height: 1.45;
  color: var(--text-muted);
}

.admin-section--danger {
  border-top-color: rgba(16, 16, 16, 0.35);
  background: linear-gradient(180deg, rgba(16, 16, 16, 0.04), transparent 70%);
  border-radius: 12px;
  padding: 1.35rem 1rem 1.1rem;
}

.admin-forum-purge {
  display: flex;
  flex-direction: column;
  gap: 0.75rem;
  padding: 1rem 1.1rem;
  border: 1px solid rgba(16, 16, 16, 0.35);
  border-radius: 10px;
  background: #fff;
}

.admin-forum-purge__summary {
  margin: 0;
  font-size: 0.92rem;
  color: var(--text-strong, #1f1f1f);
}

.admin-forum-purge__summary strong {
  font-weight: 700;
}

.admin-forum-purge__actions {
  display: flex;
  flex-wrap: wrap;
  gap: 0.6rem;
  align-items: center;
}

.admin-forum-purge__btn {
  appearance: none;
  border: none;
  background: var(--cherry, #efb899);
  color: #fff;
  font-family: inherit;
  font-weight: 700;
  font-size: 0.9rem;
  padding: 0.55rem 1rem;
  border-radius: 999px;
  cursor: pointer;
  transition: background-color 0.15s ease, transform 0.15s ease;
}

.admin-forum-purge__btn:hover:not(:disabled) {
  background: var(--cherry-dark);
}

.admin-forum-purge__btn:active:not(:disabled) {
  transform: translateY(1px);
}

.admin-forum-purge__btn:disabled {
  background: rgba(239, 184, 153, 0.55);
  cursor: not-allowed;
}

.admin-forum-purge__hint {
  margin: 0;
  font-size: 0.82rem;
  color: var(--text-muted, #6b6b6b);
  line-height: 1.4;
}

.admin-forum-purge--done .admin-forum-purge__summary {
  color: #2d6a4f;
  font-weight: 600;
}

.admin-pense-bete-form {
  display: flex;
  flex-direction: column;
  gap: 0.75rem;
  max-width: 28rem;
  margin-bottom: 1.1rem;
}

.admin-pense-bete-form__row {
  display: flex;
  flex-direction: column;
  gap: 0.35rem;
}

.admin-pense-bete-form__label {
  font-size: 0.82rem;
  font-weight: 700;
  color: var(--burgundy-ink);
}

.admin-pense-bete-form__input {
  box-sizing: border-box;
  width: 100%;
  padding: 0.55rem 0.7rem;
  font-family: var(--font-ui);
  font-size: 0.95rem;
  font-weight: 500;
  color: var(--text-on-cream);
  background: #fff;
  border: 1px solid rgba(16, 16, 16, 0.16);
  border-radius: 12px;
}

.admin-pense-bete-item {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 0.65rem 1rem;
  padding: 0.85rem 1rem;
  background: rgba(255, 255, 255, 0.7);
  border: 1px solid rgba(16, 16, 16, 0.12);
  border-radius: 14px;
}

.admin-pense-bete-item__main {
  flex: 1 1 12rem;
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: 0.25rem;
}

.admin-pense-bete-item__title {
  font-size: 0.95rem;
  font-weight: 700;
  color: var(--text-on-cream);
  word-break: break-word;
}

.admin-pense-bete-item__date {
  font-size: 0.82rem;
  font-weight: 600;
  color: var(--cherry);
}

.admin-pense-bete-item__del {
  flex-shrink: 0;
}

.admin-login-label {
  display: block;
  margin-bottom: 0.4rem;
  font-size: 0.86rem;
  font-weight: 700;
  color: var(--burgundy-ink);
}

.admin-login-input {
  display: block;
  width: 100%;
  max-width: 22rem;
  box-sizing: border-box;
  padding: 0.55rem 0.75rem;
  font-family: var(--font-ui);
  font-size: 0.95rem;
  font-weight: 500;
  color: var(--text-on-cream);
  background: #fff;
  border: 1px solid rgba(16, 16, 16, 0.18);
  border-radius: 12px;
}

.admin-login-input:focus {
  outline: 2px solid rgba(16, 16, 16, 0.35);
  outline-offset: 1px;
}

.admin-login-form .juris-submit {
  margin-top: 0.65rem;
}

/* ——— Signalement forum + administration ——— */
.forum-report-dialog {
  width: min(420px, 94vw);
  max-height: min(88vh, 520px);
  padding: 0;
  border: none;
  border-radius: 22px;
  background: var(--cream-paper);
  color: var(--text-on-cream);
  box-shadow: 0 24px 56px rgba(42, 24, 24, 0.22);
}

.forum-report-dialog::backdrop {
  background: rgba(42, 24, 24, 0.45);
  backdrop-filter: blur(3px);
}

.forum-report-dialog__inner {
  padding: 1.25rem 1.35rem 1.35rem;
}

.forum-report-dialog__title {
  margin: 0 0 0.65rem;
  font-family: var(--font-editorial);
  font-size: 1.25rem;
  font-weight: 800;
  letter-spacing: -0.02em;
  color: var(--cherry);
}

.forum-report-dialog__summary {
  margin: 0 0 1rem;
  padding: 0.65rem 0.75rem;
  font-size: 0.88rem;
  font-weight: 500;
  line-height: 1.45;
  color: var(--burgundy-ink);
  background: rgba(255, 255, 255, 0.65);
  border: 1px solid rgba(16, 16, 16, 0.12);
  border-radius: 14px;
  white-space: pre-wrap;
  word-break: break-word;
  max-height: 9rem;
  overflow: auto;
}

.forum-report-dialog__field {
  display: flex;
  flex-direction: column;
  gap: 0.35rem;
  margin-bottom: 0.85rem;
}

.forum-report-dialog__label {
  font-size: 0.82rem;
  font-weight: 700;
  color: var(--burgundy-ink);
}

.forum-report-dialog__select,
.forum-report-dialog__textarea {
  font-family: var(--font-ui);
  font-size: 0.92rem;
  font-weight: 500;
  color: var(--text-on-cream);
  background: #fff;
  border: 1px solid rgba(16, 16, 16, 0.15);
  border-radius: 12px;
  padding: 0.5rem 0.65rem;
}

.forum-report-dialog__textarea {
  min-height: 4rem;
  resize: vertical;
}

.forum-report-dialog__actions {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
  justify-content: flex-end;
  margin-top: 0.25rem;
}

.forum-report-dialog__btn {
  padding: 0.5rem 1rem;
  border-radius: 999px;
  font-family: var(--font-ui);
  font-size: 0.88rem;
  font-weight: 700;
  cursor: pointer;
  border: none;
}

.forum-report-dialog__btn--ghost {
  color: var(--text-muted);
  background: rgba(42, 24, 24, 0.06);
}

.forum-report-dialog__btn--ghost:hover {
  color: var(--burgundy-ink);
  background: rgba(42, 24, 24, 0.1);
}

.forum-report-dialog__btn--primary {
  color: var(--cream-paper);
  background: linear-gradient(135deg, var(--cherry-dark), var(--cherry));
}

.admin-login-panel {
  max-width: 26rem;
}

.admin-login-form {
  display: flex;
  flex-direction: column;
  gap: 0.75rem;
  margin-top: 0.75rem;
}

.admin-login-error {
  margin: 0;
  font-size: 0.88rem;
  font-weight: 600;
  color: var(--cherry);
}

.admin-dashboard-head {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 0.75rem;
  margin-bottom: 1.25rem;
}

.admin-dashboard-head__title {
  margin: 0;
  font-family: var(--font-editorial);
  font-size: 1.35rem;
  font-weight: 800;
  color: var(--cherry);
}

.admin-logout-btn {
  padding: 0.45rem 1rem;
  border-radius: 999px;
  font-family: var(--font-ui);
  font-size: 0.86rem;
  font-weight: 700;
  color: var(--text-muted);
  background: rgba(42, 24, 24, 0.06);
  border: none;
  cursor: pointer;
}

.admin-logout-btn:hover {
  color: var(--burgundy-ink);
  background: rgba(42, 24, 24, 0.1);
}

.admin-reports-list,
.admin-juris-list,
.admin-pense-betes-list {
  margin: 0;
  padding: 0;
  list-style: none;
  display: flex;
  flex-direction: column;
  gap: 0.75rem;
}

.admin-list-empty {
  margin: 0;
  padding: 0.85rem 1rem;
  font-size: 0.9rem;
  font-weight: 500;
  color: var(--text-muted);
  background: rgba(255, 255, 255, 0.5);
  border-radius: 14px;
  border: 1px dashed rgba(16, 16, 16, 0.18);
}

.admin-list-empty--stack {
  display: flex;
  flex-direction: column;
  gap: 0.45rem;
}

.admin-list-empty__text {
  margin: 0;
  line-height: 1.45;
}

.admin-list-empty__link-out {
  font-weight: 600;
  color: rgba(16, 16, 16, 0.95);
  text-decoration: underline;
  text-underline-offset: 0.12em;
  align-self: flex-start;
}

.admin-list-empty__link-out:hover,
.admin-list-empty__link-out:focus-visible {
  color: rgba(120, 0, 4, 1);
}

.admin-report-card {
  padding: 1rem 1.1rem;
  background: rgba(255, 255, 255, 0.72);
  border: 1px solid rgba(16, 16, 16, 0.12);
  border-radius: 16px;
}

.admin-report-card__head {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  justify-content: space-between;
  gap: 0.5rem;
  margin-bottom: 0.5rem;
}

.admin-report-card__title {
  font-size: 1rem;
  color: var(--burgundy-ink);
}

.admin-report-card__time {
  font-size: 0.78rem;
  font-weight: 600;
  color: var(--text-muted);
}

.admin-report-card__reason,
.admin-report-card__meta {
  margin: 0.2rem 0;
  font-size: 0.86rem;
  font-weight: 500;
  line-height: 1.45;
  color: var(--text-on-cream);
}

.admin-report-card__snippet {
  margin: 0.5rem 0 0;
  padding: 0.55rem 0.65rem;
  font-size: 0.84rem;
  font-weight: 500;
  line-height: 1.45;
  color: var(--burgundy-ink);
  background: rgba(16, 16, 16, 0.04);
  border-left: 3px solid rgba(16, 16, 16, 0.35);
  border-radius: 0 10px 10px 0;
}

.admin-report-card__detail {
  margin: 0.35rem 0 0;
  font-size: 0.84rem;
  color: var(--text-muted);
}

.admin-report-card__btn {
  padding: 0.4rem 0.85rem;
  border-radius: 999px;
  font-family: var(--font-ui);
  font-size: 0.82rem;
  font-weight: 700;
  color: var(--cream-paper);
  background: var(--burgundy-ink);
  border: none;
  cursor: pointer;
}

.admin-report-card__btn:hover {
  opacity: 0.92;
}

.admin-report-card__btn--ghost {
  color: var(--burgundy-ink);
  background: rgba(255, 255, 255, 0.65);
  border: 1px solid rgba(16, 16, 16, 0.22);
}

.admin-report-card__btn--danger {
  background: var(--cherry-dark);
}

.admin-report-card__btn--danger:disabled,
.admin-report-card__btn:disabled {
  opacity: 0.45;
  cursor: not-allowed;
}

.admin-report-card__mod-ta {
  width: 100%;
  margin-bottom: 0.55rem;
  padding: 0.55rem 0.65rem;
  font-family: var(--font-ui);
  font-size: 0.84rem;
  line-height: 1.45;
  border-radius: 12px;
  border: 1px solid rgba(16, 16, 16, 0.15);
  resize: vertical;
  min-height: 5rem;
}

.admin-report-card__strike,
.admin-report-card__status {
  margin: 0 0 0.45rem;
  font-size: 0.82rem;
  font-weight: 600;
  line-height: 1.45;
  color: var(--burgundy-ink);
}

.admin-report-card--closed {
  opacity: 0.92;
}

.admin-report-card-shell {
  list-style: none;
}

.admin-reports-list--nested {
  margin-top: 0.5rem;
  padding-left: 0.5rem;
  border-left: 2px solid rgba(16, 16, 16, 0.12);
  gap: 0.55rem;
}

.admin-report-history summary {
  cursor: pointer;
  font-weight: 700;
  font-size: 0.88rem;
  color: var(--burgundy-ink);
}

.admin-signalements-jump {
  margin: 0 0 1rem;
  padding: 0.65rem 0.85rem;
  font-size: 0.86rem;
  line-height: 1.5;
  color: var(--text-on-cream);
  background: rgba(255, 255, 255, 0.55);
  border-radius: 14px;
  border: 1px solid rgba(16, 16, 16, 0.1);
}

.admin-signalements-jump a {
  font-weight: 700;
  color: var(--burgundy-ink);
}

.admin-report-card__actions {
  margin-top: 0.65rem;
  display: flex;
  flex-wrap: wrap;
  gap: 0.45rem;
  align-items: flex-start;
}

.admin-juris-line {
  margin: 0;
  padding: 0.55rem 0.75rem;
  font-size: 0.86rem;
  font-weight: 500;
  line-height: 1.45;
  color: var(--text-on-cream);
  background: rgba(255, 255, 255, 0.55);
  border-radius: 12px;
  border: 1px solid rgba(16, 16, 16, 0.08);
}

.admin-report-card__snap {
  margin: 0.5rem 0 0;
  padding: 0.5rem 0.65rem;
  font-size: 0.82rem;
  color: var(--text-on-cream);
  background: rgba(42, 24, 24, 0.04);
  border-radius: 10px;
  border: 1px solid rgba(16, 16, 16, 0.1);
}

.admin-report-card__snap summary {
  cursor: pointer;
  font-weight: 700;
  color: var(--burgundy-ink);
}

.admin-report-card__snap-block {
  margin: 0.4rem 0 0;
  font-weight: 500;
  line-height: 1.45;
  white-space: pre-wrap;
  word-break: break-word;
}

.admin-veille-list {
  margin: 0;
  padding: 0;
  list-style: none;
  display: flex;
  flex-direction: column;
  gap: 1rem;
}

.admin-veille-card {
  padding: 0.85rem 1rem;
  border-radius: 14px;
  border: 1px solid rgba(16, 16, 16, 0.14);
  background: rgba(255, 255, 255, 0.65);
}

.admin-veille-card__head {
  display: flex;
  flex-wrap: wrap;
  align-items: flex-start;
  justify-content: space-between;
  gap: 0.5rem 0.75rem;
  margin-bottom: 0.45rem;
}

.admin-veille-card__title {
  margin: 0;
  flex: 1 1 auto;
  min-width: 0;
  font-family: var(--font-editorial);
  font-size: 1.05rem;
  font-weight: 700;
  color: var(--burgundy-ink);
}

.admin-veille-card__badge {
  flex-shrink: 0;
  font-family: var(--font-ui);
  font-size: 0.72rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  padding: 0.25rem 0.55rem;
  border-radius: 999px;
  background: rgba(42, 24, 24, 0.08);
  color: var(--text-muted);
}

.admin-veille-card__badge--pending {
  background: rgba(16, 16, 16, 0.12);
  color: var(--cherry);
}

.admin-veille-card__meta,
.admin-veille-card__block {
  margin: 0.35rem 0 0;
  font-family: var(--font-ui);
  font-size: 0.84rem;
  line-height: 1.45;
  color: var(--text-on-cream);
  word-break: break-word;
}

.admin-veille-card__note {
  margin: 0.5rem 0 0;
  max-height: 10rem;
  overflow: auto;
  padding: 0.55rem 0.65rem;
  border-radius: 10px;
  border: 1px solid rgba(16, 16, 16, 0.1);
  font-family: var(--font-ui);
  font-size: 0.86rem;
  line-height: 1.5;
  white-space: pre-wrap;
  color: var(--text-on-cream);
}

.admin-veille-card__ill {
  margin-top: 0.65rem;
  display: flex;
  flex-direction: column;
  gap: 0.45rem;
}

.admin-veille-card__label {
  font-family: var(--font-ui);
  font-size: 0.78rem;
  font-weight: 600;
  color: var(--text-muted);
}

.admin-veille-card__input {
  width: 100%;
  max-width: 100%;
  box-sizing: border-box;
  padding: 0.45rem 0.55rem;
  border-radius: 10px;
  border: 1px solid rgba(16, 16, 16, 0.2);
  font-family: var(--font-ui);
  font-size: 0.86rem;
}

.admin-veille-card__file-lab {
  font-family: var(--font-ui);
  font-size: 0.78rem;
  color: var(--text-muted);
}

.admin-veille-card__file {
  display: inline-block;
  margin-top: 0.25rem;
  max-width: 100%;
}

.admin-veille-card__preview {
  max-width: 12rem;
  max-height: 7rem;
  object-fit: cover;
  border-radius: 8px;
  border: 1px solid rgba(16, 16, 16, 0.15);
}

.admin-veille-card__actions {
  margin-top: 0.65rem;
}

/* ——— Navigation & pages admin dédiées ——— */
.admin-subnav {
  margin: 0 0 1.25rem;
  padding: 0.65rem 0.75rem;
  background: rgba(255, 255, 255, 0.55);
  border: 1px solid rgba(16, 16, 16, 0.12);
  border-radius: 14px;
}

.admin-subnav__list {
  display: flex;
  flex-wrap: wrap;
  gap: 0.35rem 0.75rem;
  margin: 0;
  padding: 0;
  list-style: none;
}

.admin-subnav__link {
  font-family: var(--font-ui);
  font-size: 0.88rem;
  font-weight: 600;
  color: var(--burgundy-ink);
  text-decoration: none;
  padding: 0.25rem 0.15rem;
  border-bottom: 2px solid transparent;
}

.admin-subnav__link:hover {
  color: var(--cherry);
}

.admin-subnav__link--current,
.admin-subnav__link[aria-current="page"] {
  color: var(--cherry);
  border-bottom-color: rgba(16, 16, 16, 0.45);
}

.admin-hub-cards {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(15rem, 1fr));
  gap: 0.85rem;
  margin: 0 0 1.5rem;
  padding: 0;
  list-style: none;
}

.admin-hub-card {
  margin: 0;
}

.admin-hub-card__link {
  position: relative;
  display: flex;
  flex-direction: column;
  gap: 0.35rem;
  height: 100%;
  padding: 1rem 1.1rem;
  text-decoration: none;
  color: inherit;
  background: rgba(255, 255, 255, 0.72);
  border: 1px solid rgba(16, 16, 16, 0.14);
  border-radius: 16px;
  box-shadow: 0 4px 14px rgba(42, 24, 24, 0.06);
  transition:
    border-color 0.15s ease,
    box-shadow 0.15s ease;
}

.admin-hub-card__notif {
  position: absolute;
  top: 0.62rem;
  right: 0.66rem;
  min-width: 1.45rem;
  height: 1.45rem;
  padding: 0 0.4rem;
  border-radius: 999px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-family: var(--font-ui);
  font-size: 0.72rem;
  font-weight: 800;
  line-height: 1;
  color: #fff;
  background: var(--cherry);
  box-shadow: 0 6px 14px rgba(133, 28, 28, 0.22);
}

.admin-veille-pager {
  margin-top: 0.75rem;
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 0.5rem;
}

.admin-veille-pager__info {
  font-family: var(--font-ui);
  font-size: 0.8rem;
  color: var(--text-muted);
}

.admin-hub-card__link:hover {
  border-color: rgba(16, 16, 16, 0.28);
  box-shadow: 0 8px 22px rgba(42, 24, 24, 0.1);
}

.admin-hub-card__title {
  font-family: var(--font-editorial);
  font-size: 1.1rem;
  font-weight: 800;
  color: var(--cherry);
}

.admin-hub-card__desc {
  font-size: 0.86rem;
  font-weight: 500;
  line-height: 1.4;
  color: var(--text-muted);
}

.admin-table-wrap {
  width: 100%;
  overflow-x: auto;
  border-radius: 14px;
  border: 1px solid rgba(16, 16, 16, 0.12);
  background: rgba(255, 255, 255, 0.65);
}

.admin-data-table {
  width: 100%;
  min-width: 36rem;
  border-collapse: collapse;
  font-family: var(--font-ui);
  font-size: 0.86rem;
}

.admin-data-table th,
.admin-data-table td {
  padding: 0.55rem 0.65rem;
  text-align: left;
  vertical-align: top;
  border-bottom: 1px solid rgba(16, 16, 16, 0.1);
}

.admin-data-table th {
  font-weight: 800;
  color: var(--burgundy-ink);
  background: rgba(16, 16, 16, 0.06);
}

.admin-data-table tr:last-child td {
  border-bottom: none;
}

.admin-table-empty {
  padding: 1rem !important;
  text-align: center;
  color: var(--text-muted);
  font-weight: 500;
}

.admin-table-muted {
  color: var(--text-muted);
  font-size: 0.82rem;
  white-space: nowrap;
}

.admin-table-clip {
  max-width: 14rem;
}

.admin-table-actions {
  white-space: nowrap;
}

.admin-approval-cell {
  vertical-align: middle;
}

.admin-approval-badge {
  display: inline-block;
  padding: 0.2rem 0.5rem;
  border-radius: 999px;
  font-size: 0.72rem;
  font-weight: 800;
  letter-spacing: 0.03em;
  text-transform: uppercase;
}

.admin-approval-badge--pending {
  color: #5a4510;
  background: rgba(200, 160, 40, 0.25);
}

.admin-approval-badge--approved {
  color: #1e4a28;
  background: rgba(60, 140, 80, 0.28);
}

.admin-approval-badge--rejected {
  color: #6a1a1a;
  background: rgba(180, 60, 60, 0.22);
}

.admin-approval-btn {
  margin: 0 0.2rem 0.2rem 0;
  padding: 0.28rem 0.5rem;
  font-size: 0.72rem;
  font-weight: 700;
  border-radius: 8px;
  border: 1px solid rgba(16, 16, 16, 0.2);
  background: #fff;
  color: var(--burgundy-ink);
  cursor: pointer;
}

.admin-approval-btn:hover {
  border-color: var(--cherry);
  color: var(--cherry);
}

.admin-approval-btn--active {
  background: rgba(16, 16, 16, 0.12);
  border-color: var(--cherry);
  color: var(--cherry);
}

.admin-approval-btn--publish {
  font-weight: 800;
  border-color: rgba(34, 120, 60, 0.45);
  color: #1a5c2e;
}

.admin-approval-btn--publish:hover {
  border-color: #1a5c2e;
  color: #0f3d1f;
  background: rgba(34, 120, 60, 0.08);
}

.admin-approval-btn--refuse {
  border-color: rgba(16, 16, 16, 0.45);
  color: var(--cherry);
}

.admin-approval-btn--refuse:hover {
  background: rgba(16, 16, 16, 0.08);
  border-color: var(--cherry);
}

.admin-reporters-mount {
  margin-bottom: 1.25rem;
  padding: 0.85rem 1rem;
  background: rgba(255, 255, 255, 0.65);
  border: 1px solid rgba(16, 16, 16, 0.1);
  border-radius: 14px;
}

.admin-reporters-summary__title {
  margin: 0 0 0.5rem;
  font-size: 0.95rem;
  font-weight: 800;
  color: var(--burgundy-ink);
}

.admin-reporters-summary--empty {
  margin: 0;
  font-size: 0.88rem;
  color: var(--text-muted);
}

.admin-reporters-summary__list {
  margin: 0;
  padding-left: 1.15rem;
  font-size: 0.86rem;
  line-height: 1.5;
  color: var(--text-on-cream);
}

.admin-wish-tools {
  margin-top: 1rem;
  padding-top: 0.85rem;
  border-top: 1px dashed rgba(16, 16, 16, 0.15);
  display: flex;
  flex-direction: column;
  gap: 0.75rem;
}

.admin-wish-tools__title {
  margin: 0;
  font-size: 0.88rem;
  font-weight: 800;
  color: var(--burgundy-ink);
}

.admin-wish-tools__hint {
  margin: 0;
  font-size: 0.78rem;
  color: var(--text-muted);
  line-height: 1.45;
}

.admin-wish-tools__row {
  display: flex;
  flex-wrap: wrap;
  gap: 0.45rem;
  align-items: center;
}

.admin-wish-tools__row--stack {
  flex-direction: column;
  align-items: stretch;
}

.admin-wish-tools__select {
  min-width: 10rem;
  max-width: 100%;
  padding: 0.35rem 0.45rem;
  font: inherit;
  font-size: 0.82rem;
  border-radius: 8px;
  border: 1px solid rgba(16, 16, 16, 0.18);
  background: #fff;
}

.admin-wish-tools__textarea {
  width: 100%;
  min-height: 4rem;
  box-sizing: border-box;
  padding: 0.45rem 0.55rem;
  font: inherit;
  font-size: 0.84rem;
  border-radius: 10px;
  border: 1px solid rgba(16, 16, 16, 0.18);
  resize: vertical;
}

.admin-wish-tools__status {
  margin: 0;
  font-size: 0.78rem;
  color: var(--text-muted);
}

.admin-wish-detail--resolved {
  opacity: 0.72;
  border-style: dashed;
}

.admin-wish-detail--admin {
  border-left: 3px solid var(--cherry);
}

.admin-wish-detail-root {
  display: flex;
  flex-direction: column;
  gap: 1rem;
}

.admin-wish-detail {
  padding: 1rem 1.1rem;
  background: rgba(255, 255, 255, 0.72);
  border: 1px solid rgba(16, 16, 16, 0.12);
  border-radius: 16px;
}

.admin-wish-detail__head {
  margin-bottom: 0.5rem;
}

.admin-wish-detail__title {
  margin: 0;
  font-size: 1.05rem;
  font-weight: 800;
  color: var(--cherry);
}

.admin-wish-detail__meta {
  margin: 0.25rem 0 0;
  font-size: 0.82rem;
  color: var(--text-muted);
}

.admin-wish-detail__question {
  margin: 0;
  font-size: 0.92rem;
  line-height: 1.5;
  color: var(--text-on-cream);
  white-space: pre-wrap;
  word-break: break-word;
}

.admin-wish-detail__contrib-title {
  margin: 0 0 0.4rem;
  font-size: 0.88rem;
  font-weight: 800;
  color: var(--burgundy-ink);
}

.admin-wish-detail__contrib-list {
  margin: 0;
  padding-left: 1.1rem;
}

.admin-wish-detail__contrib-item {
  margin: 0.35rem 0;
  font-size: 0.86rem;
  line-height: 1.45;
}

.admin-wish-detail__contrib-when {
  font-weight: 500;
  color: var(--text-muted);
}

.admin-wish-detail__contrib-where {
  margin: 0.15rem 0 0;
  white-space: pre-wrap;
  word-break: break-word;
}

.admin-sub-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
  align-items: center;
}

.admin-sub-input {
  width: 100%;
  min-width: 0;
  box-sizing: border-box;
  padding: 0.4rem 0.5rem;
  font: inherit;
  font-size: 0.86rem;
  border: 1px solid rgba(16, 16, 16, 0.18);
  border-radius: 8px;
  background: #fff;
}

.admin-sub-check {
  display: flex;
  align-items: center;
  gap: 0.35rem;
  font-size: 0.82rem;
  font-weight: 600;
  cursor: pointer;
  white-space: nowrap;
}

.admin-table-del {
  padding: 0.35rem 0.6rem;
  font-size: 0.78rem;
  font-weight: 700;
  color: var(--cherry);
  background: rgba(16, 16, 16, 0.08);
  border: none;
  border-radius: 8px;
  cursor: pointer;
}

.admin-table-del:hover {
  background: rgba(16, 16, 16, 0.15);
}

/* ===== Finition visuelle globale: classe + confiance ===== */
.page-shell {
  background-color: color-mix(in srgb, var(--surface-cream) 82%, white 18%);
  border: 1.5px solid var(--line-soft);
  box-shadow: var(--shadow-soft);
}

.page-shell__title {
  color: var(--burgundy-ink);
  letter-spacing: -0.018em;
}

.page-shell__title::after {
  width: 3.6rem;
  height: 5px;
  border-radius: 999px;
  background: linear-gradient(90deg, var(--cherry-dark), var(--cherry));
}

.juris-submit,
.forum-compose-actions button,
.planner-modal button[type="submit"],
.admin-approval-btn--active {
  border-color: transparent;
  background: linear-gradient(155deg, var(--cherry), var(--cherry-dark));
  color: #fff;
  box-shadow: 0 10px 20px rgba(221, 159, 123, 0.24);
}

.juris-submit:hover,
.forum-compose-actions button:hover,
.planner-modal button[type="submit"]:hover,
.admin-approval-btn--active:hover {
  filter: brightness(1.04);
  transform: translateY(-1px);
}

.juris-card,
.forum-topic,
.forum-thread,
.planner-panel,
.admin-card,
.notifications-page__list > * {
  background: linear-gradient(180deg, rgba(255, 255, 255, 0.7), rgba(255, 253, 249, 0.92));
  border: 1px solid var(--line-soft);
  box-shadow: 0 6px 18px rgba(59, 22, 18, 0.05);
}

/* Veille + Forum: surcouche DA premium visible */
.page-shell--veille {
  width: min(1120px, 94%);
}

.page-shell--veille .documents-section {
  max-width: 100%;
}

.veille-page-head {
  align-items: center;
  margin-bottom: 0.35rem;
}

.veille-propose-btn {
  letter-spacing: 0.12em;
  color: #fff;
  background: linear-gradient(155deg, var(--cherry), var(--cherry-dark));
  box-shadow: 0 10px 22px rgba(221, 159, 123, 0.25);
}

.veille-filter-strip {
  margin: 0.5rem 0 0.65rem;
  padding: 0.85rem 0.95rem;
  border-radius: 16px;
  border: 1px solid var(--line-soft);
  background: linear-gradient(180deg, rgba(255, 255, 255, 0.82), rgba(243, 233, 218, 0.82));
}

.veille-tabs {
  border-bottom: 1px solid rgba(130, 52, 41, 0.24);
}

.veille-tab {
  color: var(--burgundy-ink);
}

.veille-tab:hover {
  color: var(--cherry-dark);
}

.veille-tab--current {
  color: var(--cherry-dark);
  border-bottom-color: var(--cherry);
}

.documents-list--veille-feed {
  gap: 0.5rem;
  padding: 0.45rem;
  border: 1px solid var(--line-soft);
  border-radius: 18px;
  background: linear-gradient(180deg, rgba(255, 255, 255, 0.82), rgba(248, 243, 234, 0.9));
  box-shadow: var(--shadow-soft);
}

.document-card--veille-feed {
  border: 1px solid rgba(130, 52, 41, 0.2);
  border-radius: 14px;
  background: linear-gradient(180deg, rgba(255, 255, 255, 0.97), rgba(253, 247, 238, 0.96));
  box-shadow: 0 7px 18px rgba(59, 22, 18, 0.08);
}

.document-card--veille-feed .document-card__title-link,
.document-card--veille-feed .document-card__title-text {
  color: var(--text-on-cream);
}

.document-card--veille-feed .document-card__category {
  color: var(--cherry-dark);
}

.page-shell--forum .page-shell__title {
  color: var(--burgundy-ink);
}

.forum-charter,
.forum-section--salon,
.forum-salon-toolbar,
.forum-salon-search {
  border-color: var(--line-soft);
}

.forum-charter,
.forum-section--salon {
  box-shadow: var(--shadow-elevated);
}

.forum-salon-filter {
  border-color: rgba(130, 52, 41, 0.28);
}

.forum-salon-filter:hover {
  border-color: rgba(130, 52, 41, 0.48);
}

.forum-section--salon .forum-room-card {
  border-color: rgba(130, 52, 41, 0.28);
}

.forum-section--salon .forum-room-card__action,
.forum-salon-toolbar__save,
.forum-room__submit,
.forum-fil-btn {
  background: linear-gradient(155deg, var(--cherry), var(--cherry-dark));
  color: #fff;
  border-color: transparent;
}

/* Forum: suppression des fonds rouges en degrade, passe en beige uni */
.page-shell--forum::before,
.forum-section--salon::before,
.forum-section--salon .forum-room-card::before {
  display: none;
}

.forum-charter {
  background: var(--surface-cream);
}

.forum-section--salon {
  background: var(--surface-cream);
}

.forum-salon-toolbar,
.forum-salon-search,
.forum-salon-filter,
.forum-section--salon .forum-room-card,
.forum-fil-chat,
.forum-fil-sync-note {
  background: #f7efe2;
}

.forum-wa-list--chat {
  background: #f3e6d5;
  background-image: none;
}

/* Forum cards: rendu plus sobre + espace notifications */
.forum-section--salon .forum-room-card {
  min-height: 7.1rem;
  padding: 1.05rem 1.1rem 1.05rem 1.15rem;
  border-radius: 20px;
  border: 1px solid rgba(130, 52, 41, 0.22);
  background: #f5ecde;
  box-shadow: 0 6px 16px rgba(59, 22, 18, 0.08);
}

.forum-section--salon .forum-room-card::after {
  width: 4px;
  border-radius: 20px 0 0 20px;
  background: var(--cherry-dark);
  box-shadow: none;
}

.forum-room-card__head {
  min-height: 2.1rem;
}

.forum-section--salon .forum-room-card__action {
  margin-top: auto;
  padding: 0.5rem 1rem;
  border-radius: 999px;
  border: 1px solid var(--cherry-dark);
  background: linear-gradient(145deg, var(--cherry), var(--cherry-dark));
  color: #fff;
  letter-spacing: 0.14em;
  font-weight: 800;
}

.forum-section--salon .forum-room-card:hover .forum-room-card__action {
  background: linear-gradient(145deg, var(--cherry-dark), #b8825e);
  border-color: var(--cherry-dark);
  color: #fff;
}

/* Notifications header popover : DA accueil (noir / blanc + pêche) */
.site-header__notif-panel {
  top: calc(100% + 0.6rem);
  width: min(23.5rem, calc(100vw - 1.2rem));
  border-radius: 18px;
  background: #fff;
  border: 1px solid var(--line-soft);
  box-shadow: var(--shadow-elevated);
}

.site-header__notif-panel-summary {
  padding: 1.05rem 1.15rem 0.95rem;
  font-family: var(--font-ui);
  font-size: 0.92rem;
  font-weight: 700;
  letter-spacing: -0.01em;
  color: #111;
  border-bottom: 1px solid var(--line-soft);
}

.site-header__notif-panel-summary--empty {
  padding: 1.45rem 1.25rem 1.5rem;
  text-align: center;
  font-family: "Fraunces", Georgia, "Times New Roman", serif;
  font-size: 1.06rem;
  font-weight: 700;
  letter-spacing: 0.005em;
  color: #1a1a1a;
  border-bottom: none;
  background: #fff;
}

.site-header__notif-panel-item--empty {
  padding: 1rem 1.15rem 1.05rem;
  font-family: var(--font-ui);
  font-size: 0.88rem;
  line-height: 1.5;
  color: var(--text-muted);
}

.site-header__notif-panel-item {
  border-bottom: 1px solid var(--line-soft);
}

.site-header__notif-panel-link {
  padding: 0.82rem 1.15rem;
  font-size: 0.86rem;
}

.site-header__notif-panel-link:hover {
  background: rgba(239, 184, 153, 0.14);
  color: #111;
}

.site-header__notif-panel-foot {
  padding: 0.8rem 1.15rem 1rem;
  border-top: 1px solid var(--line-soft);
  background: #fafafa;
}

.site-header__notif-see-all {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 2.15rem;
  padding: 0.5rem 1rem;
  border-radius: 999px;
  border: 1px solid #111;
  background: #111;
  color: #fff;
  font-family: var(--font-ui);
  font-size: 0.7rem;
  font-weight: 700;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  text-decoration: none;
  box-shadow: none;
  filter: none;
  transform: none;
}

.site-header__notif-see-all:hover {
  background: var(--cherry);
  border-color: var(--cherry);
  color: #111;
  text-decoration: none;
  filter: none;
  transform: none;
}

/* Planner To-do: palette plus beige et plus douce */
.planner-todo {
  background: #f2e8d8;
  border: 1px solid rgba(130, 52, 41, 0.22);
  box-shadow: 0 10px 28px rgba(59, 22, 18, 0.08);
}

.planner-todo__header,
.planner-todo__header--tomorrow {
  border-color: rgba(130, 52, 41, 0.17);
}

.planner-todo__title {
  color: var(--cherry-dark);
}

.planner-todo__calendar-line {
  color: #3d2a27;
}

.planner-todo__hint {
  color: #685250;
}

.planner-todo-backlog {
  background: #efe2cf;
  border: 1px dashed rgba(130, 52, 41, 0.32);
}

.planner-todo__item {
  background: #f8efe2;
  border: 1px solid rgba(130, 52, 41, 0.2);
}

.planner-todo-tabs-bottom {
  border-top-color: rgba(130, 52, 41, 0.16);
}

.planner-todo-tab {
  background: #f8efe3;
  border-color: rgba(130, 52, 41, 0.24);
}

.planner-todo-tab:hover {
  background: #fff6ea;
  border-color: rgba(130, 52, 41, 0.4);
}


.quizz-page {
  display: grid;
  gap: 0.75rem;
}

/* Bandeau haut de page quiz : marque + carte accroche */
.quizz-page-top {
  display: grid;
  gap: clamp(0.65rem, 2.2vw, 1.05rem);
  width: 100%;
}

.quizz-brand {
  margin: 0;
  padding: 0;
  line-height: 0;
  text-align: center;
  overflow: hidden;
}

.quizz-brand__mark {
  display: block;
  width: auto;
  max-width: min(480px, 88vw);
  height: auto;
  margin-inline: auto;
  object-fit: contain;
  image-rendering: auto;
  -webkit-backface-visibility: hidden;
  backface-visibility: hidden;
}

.quizz-hero {
  position: relative;
  overflow: hidden;
  border-radius: 18px;
  padding: 1.1rem 1.1rem 1.2rem;
  border: 1px solid rgba(16, 16, 16, 0.22);
  background:
    radial-gradient(circle at 8% 12%, rgba(255, 255, 255, 0.42), transparent 40%),
    radial-gradient(circle at 95% 8%, rgba(255, 211, 160, 0.28), transparent 30%),
    linear-gradient(145deg, rgba(122, 17, 36, 0.94), rgba(2, 46, 76, 0.93));
  color: #fff7ef;
  box-shadow: 0 18px 34px rgba(22, 10, 16, 0.28);
}

.quizz-hero__title {
  margin: 0 auto 0.55rem;
  max-width: min(100%, 26rem);
  font-family: "Bodoni Moda", "Times New Roman", Georgia, serif;
  font-weight: 800;
  font-size: clamp(1.28rem, 3.6vw, 1.85rem);
  line-height: 1.16;
  letter-spacing: -0.02em;
  text-align: center;
  color: #fff7ef;
}

.quizz-hero__lead {
  margin: 0;
  max-width: 60ch;
  color: rgba(255, 247, 239, 0.95);
}

.quizz-form {
  display: grid;
  gap: 0.9rem;
}

.quizz-card {
  border: 1px solid rgba(126, 15, 42, 0.16);
  border-radius: 14px;
  background: rgba(255, 255, 255, 0.58);
  box-shadow: 0 10px 26px rgba(28, 8, 8, 0.07);
  padding: 0.95rem 1rem;
}

.quizz-card__meta {
  margin: 0 0 0.28rem;
  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: #70514d;
}

.quizz-card__title {
  margin: 0 0 0.72rem;
  font-size: 1rem;
  color: #2e1f1e;
}

.quizz-options {
  display: grid;
  gap: 0.45rem;
}

.quizz-option {
  display: flex;
  align-items: flex-start;
  gap: 0.5rem;
  padding: 0.52rem 0.56rem;
  border-radius: 10px;
  border: 1px solid rgba(126, 15, 42, 0.12);
  background: rgba(255, 252, 247, 0.9);
  transition: transform 0.15s ease, box-shadow 0.16s ease, border-color 0.16s ease;
}

.quizz-option:hover {
  transform: translateY(-1px);
  border-color: rgba(126, 15, 42, 0.3);
  box-shadow: 0 8px 16px rgba(27, 12, 11, 0.08);
}

.quizz-option input {
  margin-top: 0.2rem;
  accent-color: var(--cherry);
}

.quizz-feedback {
  margin: 0.62rem 0 0;
  padding: 0.5rem 0.56rem;
  border-radius: 9px;
  font-size: 0.9rem;
  border: 1px solid transparent;
}

.quizz-feedback.is-ok {
  color: #124e2f;
  border-color: rgba(18, 78, 47, 0.22);
  background: rgba(204, 244, 223, 0.72);
}

.quizz-feedback.is-ko {
  color: #6c2020;
  border-color: rgba(128, 20, 20, 0.22);
  background: rgba(250, 215, 215, 0.74);
}

.quizz-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 0.65rem;
}

.quizz-result {
  border: 1px solid rgba(126, 15, 42, 0.2);
  border-radius: 14px;
  background: linear-gradient(180deg, rgba(255, 255, 255, 0.78), rgba(249, 242, 234, 0.85));
  padding: 1rem 1.1rem 1.15rem;
  box-shadow: 0 12px 30px rgba(31, 12, 11, 0.12);
}

.quizz-result__title {
  margin: 0 0 0.45rem;
  font-size: 0.95rem;
  text-transform: uppercase;
  letter-spacing: 0.09em;
  color: #5e2e2d;
  text-align: center;
}

.quizz-result__score {
  margin: 0;
  font-size: 1.25rem;
  font-weight: 800;
}

.quizz-result__message {
  margin: 0.34rem 0 0;
  line-height: 1.35;
}

.quizz-result__title--podium {
  margin-top: 0.95rem;
  margin-bottom: 0.8rem;
}

.quizz-intro {
  border: 1px solid rgba(126, 15, 42, 0.16);
  border-radius: 14px;
  background: rgba(255, 255, 255, 0.62);
  box-shadow: 0 10px 26px rgba(28, 8, 8, 0.06);
  padding: 0.95rem 1rem 1rem;
}

.quizz-intro__list {
  margin: 0 0 1rem;
  padding-left: 1.15rem;
  display: grid;
  gap: 0.3rem;
}

.quizz-timer {
  margin: 0 0 0.65rem;
  font-size: 0.86rem;
  color: #5d4945;
}

.quizz-leaderboard {
  margin: 0.4rem 0 0;
  padding-left: 0;
  list-style: none;
  display: grid;
  gap: 0.45rem;
}

.quizz-podium-top {
  display: flex;
  align-items: flex-end;
  justify-content: center;
  gap: 0.5rem;
  margin: 0.85rem 0 0.95rem;
}

.quizz-podium-top__col {
  width: min(31%, 180px);
  border-radius: 12px 12px 6px 6px;
  border: 1px solid rgba(109, 24, 32, 0.2);
  padding: 0.55rem 0.5rem 0.62rem;
  text-align: center;
  display: grid;
  gap: 0.24rem;
  box-shadow: 0 8px 18px rgba(22, 10, 16, 0.11);
  opacity: 0;
  transform: translateY(14px) scale(0.98);
}

.quizz-podium-top.is-animated .quizz-podium-top__col {
  animation: quizzPodiumIn 420ms cubic-bezier(0.2, 0.8, 0.2, 1) forwards;
}

.quizz-podium-top.is-animated .quizz-podium-top__col:nth-child(1) {
  animation-delay: 40ms;
}

.quizz-podium-top.is-animated .quizz-podium-top__col:nth-child(2) {
  animation-delay: 150ms;
}

.quizz-podium-top.is-animated .quizz-podium-top__col:nth-child(3) {
  animation-delay: 260ms;
}

@keyframes quizzPodiumIn {
  from {
    opacity: 0;
    transform: translateY(14px) scale(0.98);
  }
  to {
    opacity: 1;
    transform: translateY(0) scale(1);
  }
}

.quizz-podium-top .podium-h1 {
  min-height: 146px;
  background: linear-gradient(145deg, rgba(255, 239, 181, 0.98), rgba(255, 222, 126, 0.96));
}

.quizz-podium-top .podium-h2 {
  min-height: 120px;
  background: linear-gradient(145deg, rgba(245, 245, 245, 0.98), rgba(217, 217, 217, 0.95));
}

.quizz-podium-top .podium-h3 {
  min-height: 104px;
  background: linear-gradient(145deg, rgba(248, 220, 190, 0.98), rgba(225, 173, 130, 0.95));
}

.quizz-podium-top__rank {
  margin: 0;
  font-weight: 800;
}

.quizz-podium-top__name {
  margin: 0;
  font-weight: 700;
}

.quizz-podium-top__score {
  margin: 0;
  font-weight: 800;
  color: #5b1d21;
}

.quizz-podium__item {
  display: grid;
  grid-template-columns: auto 1fr auto;
  align-items: center;
  gap: 0.55rem;
  padding: 0.55rem 0.68rem;
  border-radius: 11px;
  border: 1px solid rgba(109, 24, 32, 0.15);
  background: rgba(255, 255, 255, 0.72);
}

.quizz-podium__item--1 {
  background: linear-gradient(145deg, rgba(255, 240, 196, 0.9), rgba(255, 226, 146, 0.88));
}

.quizz-podium__item--2 {
  background: linear-gradient(145deg, rgba(243, 243, 243, 0.92), rgba(218, 218, 218, 0.92));
}

.quizz-podium__item--3 {
  background: linear-gradient(145deg, rgba(246, 217, 188, 0.92), rgba(227, 176, 133, 0.92));
}

.quizz-podium__rank {
  font-weight: 800;
}

.quizz-podium__name {
  font-weight: 700;
}

.quizz-podium__score {
  font-weight: 800;
  color: #5b1d21;
}

.quizz-podium__you {
  color: #7d0010;
}

.quizz-locked-msg {
  margin: 0.95rem 0 0;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 0.52rem;
  padding: 0.72rem 0.9rem;
  border-radius: 12px;
  border: 1px solid rgba(16, 16, 16, 0.28);
  background: linear-gradient(145deg, rgba(122, 17, 36, 0.94), rgba(88, 8, 25, 0.93));
  color: #fff3ea;
  font-size: 1.03rem;
  font-weight: 700;
  text-align: center;
  box-shadow: 0 12px 22px rgba(42, 8, 14, 0.21);
  animation: quizzLockedGlow 2.4s ease-in-out infinite;
}

.quizz-locked-msg__icon {
  font-size: 1.1rem;
  transform-origin: center;
  animation: quizzLockedTrophy 1.8s ease-in-out infinite;
}

@keyframes quizzLockedGlow {
  0%,
  100% {
    box-shadow: 0 12px 22px rgba(42, 8, 14, 0.19), 0 0 0 rgba(255, 191, 124, 0);
  }
  50% {
    box-shadow: 0 14px 28px rgba(42, 8, 14, 0.27), 0 0 20px rgba(255, 191, 124, 0.2);
  }
}

@keyframes quizzLockedTrophy {
  0%,
  100% {
    transform: translateY(0) scale(1);
  }
  50% {
    transform: translateY(-1px) scale(1.08);
  }
}

.admin-quizz-form {
  display: grid;
  gap: 0.8rem;
}

.admin-quizz-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(220px, 1fr));
  gap: 0.65rem;
}

.admin-quizz-field {
  display: grid;
  gap: 0.28rem;
}

.admin-quizz-correct {
  font-size: 0.84rem;
  color: #4a3b39;
}

.admin-quizz-list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  gap: 0.6rem;
}

.admin-quizz-answers {
  margin: 0.25rem 0 0.35rem 1.2rem;
}

.admin-quizz-chip {
  display: inline-flex;
  margin-top: 0.2rem;
  padding: 0.16rem 0.5rem;
  border-radius: 999px;
  background: rgba(16, 16, 16, 0.06);
  border: 1px solid rgba(16, 16, 16, 0.14);
  font-size: 0.78rem;
}

.admin-quizz-delete {
  border: 1px solid rgba(16, 16, 16, 0.18);
  background: #fff;
  color: #101010;
  border-radius: 8px;
  padding: 0.25rem 0.55rem;
  cursor: pointer;
}

.admin-quizz-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 0.4rem;
  align-items: center;
}

.admin-quizz-schedule,
.admin-quizz-archive,
.admin-quizz-edit {
  border: 1px solid rgba(16, 16, 16, 0.18);
  background: #fff;
  color: #101010;
  border-radius: 8px;
  padding: 0.25rem 0.55rem;
  cursor: pointer;
}

.admin-quizz-edit-dialog {
  max-width: min(36rem, 96vw);
  width: 100%;
  padding: 1rem 1.1rem 1.15rem;
  border: 1px solid rgba(16, 16, 16, 0.14);
  border-radius: 14px;
  margin: auto;
  background: #fff;
}

.admin-quizz-edit-dialog::backdrop {
  background: rgba(0, 0, 0, 0.35);
}

.admin-quizz-edit-dialog__actions {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
  justify-content: flex-end;
  margin-top: 0.35rem;
}

.admin-quizz-restore {
  border: 1px solid rgba(16, 16, 16, 0.18);
  background: #fff;
  color: #101010;
  border-radius: 8px;
  padding: 0.25rem 0.55rem;
  cursor: pointer;
}

.admin-quizz-archive-delete {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 2.35rem;
  height: 2.35rem;
  padding: 0;
  border-radius: 8px;
  cursor: pointer;
  flex-shrink: 0;
}

.admin-quizz-archive-delete svg {
  display: block;
  pointer-events: none;
}

.admin-quizz-health {
  display: grid;
  grid-template-columns: repeat(4, minmax(140px, 1fr));
  gap: 0.55rem;
}

.admin-quizz-health__card {
  border: 1px solid rgba(122, 17, 36, 0.15);
  border-radius: 12px;
  padding: 0.55rem 0.6rem;
  background: rgba(255, 255, 255, 0.72);
}

.admin-quizz-health__card--action {
  display: block;
  width: 100%;
  text-align: left;
  color: inherit;
  text-decoration: none;
  appearance: none;
  cursor: pointer;
}

.admin-quizz-health__card--action:hover,
.admin-quizz-health__card--action:focus-visible {
  transform: translateY(-1px);
  border-color: rgba(122, 17, 36, 0.28);
  box-shadow: 0 8px 18px rgba(122, 17, 36, 0.12);
}

.admin-quizz-set-panel {
  margin-top: 0.75rem;
}

.admin-quizz-health__label {
  margin: 0;
  font-size: 0.77rem;
  color: #6c5452;
  text-transform: uppercase;
  letter-spacing: 0.06em;
}

.admin-quizz-health__value {
  margin: 0.2rem 0 0;
  font-size: 1.18rem;
  font-weight: 800;
}

@media (max-width: 780px) {
  .admin-quizz-health {
    grid-template-columns: repeat(2, minmax(130px, 1fr));
  }
  .admin-quizz-grid {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 700px) {
  .quizz-hero {
    padding: 0.95rem;
  }
  .quizz-podium-top__col {
    width: 32%;
    padding: 0.45rem 0.38rem 0.5rem;
  }
  .quizz-podium-top .podium-h1 {
    min-height: 132px;
  }
  .quizz-podium-top .podium-h2 {
    min-height: 112px;
  }
  .quizz-podium-top .podium-h3 {
    min-height: 96px;
  }
}

/* ===== DA MINIMAL V2 (prioritaire, fin de fichier) ===== */
:root {
  --cherry: #efb899;
  --cherry-dark: #dd9f7b;
  --cherry-soft: rgba(239, 184, 153, 0.18);
  --cherry-muted: rgba(239, 184, 153, 0.1);
  --cherry-wash: rgba(239, 184, 153, 0.14);
  --cherry-wash-strong: rgba(239, 184, 153, 0.28);
  --burgundy-ink: #101010;
  --cream: #ffffff;
  --cream-deep: #f3f3f3;
  --cream-paper: #ffffff;
  --text-on-cream: #161616;
  --text-muted: #4e5661;
  --line-soft: rgba(16, 16, 16, 0.14);
  --line-strong: rgba(16, 16, 16, 0.3);
}

html,
body {
  background: #fff !important;
  color: #101010 !important;
}

a {
  color: #101010 !important;
}

a:hover,
a:focus-visible {
  color: var(--cherry) !important;
}

.site-header,
.site-footer {
  background: #fff !important;
  border-color: var(--line-soft) !important;
  box-shadow: none !important;
}

.site-header__brand,
.site-header__link,
.site-header__icon-link {
  color: #101010 !important;
}

.site-header__link,
.site-header__icon-link {
  background: #fff !important;
  border: 1px solid rgba(0, 0, 0, 0.2) !important;
  box-shadow: none !important;
}

.site-header__link:hover,
.site-header__icon-link:hover {
  border-color: var(--cherry) !important;
  background: rgba(239, 184, 153, 0.18) !important;
  color: var(--cherry) !important;
}

.site-header__link--current,
.site-header__icon-link--current {
  background: #101010 !important;
  border-color: #101010 !important;
  color: #fff !important;
}

.page-shell,
.subject-page-placeholder,
.forum-room-card,
.forum-fil-chat,
.quizz-hero,
.quizz-intro,
.quizz-result,
.account-profile-section,
.admin-section,
.admin-report-card,
.admin-veille-card,
.admin-hub-card__link,
.admin-quizz-item,
.admin-quizz-health__card,
.crfpa-ai-dock__panel {
  background: #fff !important;
  border: 1px solid var(--line-soft) !important;
  box-shadow: none !important;
}

/* Profil : même relief que .grades-evolution (ombre douce, pas de contour) */
.page-shell.page-shell--profil .account-profile-section {
  border: none !important;
  box-shadow: 0 10px 22px rgba(0, 0, 0, 0.06) !important;
  border-radius: 28px;
}

.page-shell--profil .account-access-card,
.page-shell--profil .account-access-guest-banner,
.page-shell--profil .documents-list--veille-feed {
  border: none !important;
  box-shadow: 0 10px 22px rgba(0, 0, 0, 0.06) !important;
}

.page-shell--profil .settings-placeholder,
.page-shell--profil .subject-page-placeholder {
  border: none !important;
  box-shadow: none !important;
}

button,
[type="button"],
[type="submit"],
.forum-room__submit,
.subject-page-placeholder__cta,
.admin-report-card__btn,
.account-access-btn,
.admin-quizz-delete,
.admin-quizz-schedule,
.admin-quizz-archive,
.admin-quizz-edit,
.admin-quizz-restore,
.admin-quizz-archive-delete {
  background: #101010 !important;
  border: 1px solid #101010 !important;
  color: #fff !important;
  box-shadow: none !important;
}

button:hover,
[type="button"]:hover,
[type="submit"]:hover,
.forum-room__submit:hover,
.subject-page-placeholder__cta:hover,
.admin-report-card__btn:hover,
.account-access-btn:hover,
.admin-quizz-delete:hover,
.admin-quizz-schedule:hover,
.admin-quizz-archive:hover,
.admin-quizz-edit:hover,
.admin-quizz-restore:hover,
.admin-quizz-archive-delete:hover {
  background: var(--cherry-dark) !important;
  border-color: var(--cherry-dark) !important;
  color: #fff !important;
}

::selection {
  background: var(--cherry) !important;
  color: #fff !important;
}

/* ===== Typographies plus travaillees (global) ===== */
:root {
  --font-editorial: "Fraunces", Georgia, "Times New Roman", serif;
  --font-display: "Fraunces", Georgia, "Times New Roman", serif;
  --font-condensed: "Manrope", "Archivo Narrow", system-ui, sans-serif;
  --font-ui: "Manrope", "Archivo Narrow", system-ui, sans-serif;
}

body {
  font-family: var(--font-ui) !important;
  font-weight: 500;
  letter-spacing: 0.002em;
  line-height: 1.58;
}

h1,
h2,
h3,
h4,
h5,
h6,
.page-shell__title,
.subject-page-placeholder__title,
.forum-room-card__name,
.profil-block__title,
.admin-dashboard-head__title,
.admin-veille-card__title,
.quizz-result__title,
.quizz-title,
.hero-title {
  font-family: var(--font-editorial) !important;
  font-weight: 650;
  letter-spacing: -0.01em;
  line-height: 1.24;
}

.site-header__brand,
.site-header__link,
.site-footer__link,
button,
[type="button"],
[type="submit"],
.forum-room__submit,
.subject-page-placeholder__cta,
.admin-report-card__btn,
.account-access-btn {
  font-family: var(--font-condensed) !important;
  font-weight: 650 !important;
  letter-spacing: 0.02em;
}

p,
li,
.page-shell__lead,
.subject-page-placeholder__meta,
.forum-room-card__meta,
.admin-report-card__meta,
.admin-veille-card__meta {
  color: var(--text-on-cream) !important;
}

small,
.muted,
.page-shell__kicker,
.quizz-timer,
.admin-quizz-health__label {
  color: var(--text-muted) !important;
}

*:focus-visible {
  outline: 2px solid rgba(239, 184, 153, 0.56) !important;
  outline-offset: 2px;
}

input,
textarea,
select {
  font-family: var(--font-ui) !important;
}

/* Lenora (Superior Type, licence requise) : place un fichier WOFF2 dans assets/fonts/
   — idéalement la version variable renommée Lenora-Variable.woff2 (graisses 100–900).
   Sinon un export statique « Medium » : renomme-le Lenora-Medium.woff2 et remplace la règle
   ci-dessous par font-weight: 500 uniquement + cette seule url. */
@font-face {
  font-family: "Lenora";
  font-style: normal;
  font-weight: 100 900;
  font-display: swap;
  src: url("./assets/fonts/Lenora-Variable.woff2") format("woff2");
}

@font-face {
  font-family: "Lenora";
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url("./assets/fonts/Lenora-Medium.woff2") format("woff2");
}

/* ===== Quizz DA jeu (onglet quizz uniquement) ===== */
body.quizz-mode {
  --quizz-peach: var(--cherry);
  --quizz-peach-soft: var(--cherry-soft);
  --quizz-surface: #ffffff;
  --quizz-surface-shadow: 0 14px 44px rgba(32, 28, 26, 0.08), 0 4px 12px rgba(32, 28, 26, 0.05);
  --quizz-surface-shadow-sm: 0 8px 28px rgba(32, 28, 26, 0.07), 0 2px 8px rgba(32, 28, 26, 0.04);
  --quizz-option-shadow: 0 2px 12px rgba(32, 28, 26, 0.07), 0 1px 4px rgba(32, 28, 26, 0.05);
  --quizz-option-shadow-hover: 0 8px 24px rgba(32, 28, 26, 0.1), 0 2px 8px rgba(32, 28, 26, 0.06);
  --quizz-serif: "Playfair Display", "Bodoni Moda", Didot, "Times New Roman", Georgia, serif;
  /* Titres quiz & message « déjà joué » : Lenora (fichiers locaux) puis Bodoni Moda */
  --quizz-title-didone: "Lenora", "Bodoni Moda", Didot, "Bodoni 72", "Libre Bodoni", "Playfair Display", Georgia, serif;
  /* Accroche hero : serif de texte (lisible, ton éditorial proche des titres) */
  --quizz-lead-serif: "Source Serif 4", "Iowan Old Style", Palatino, "Palatino Linotype", Georgia, serif;
  background:
    radial-gradient(circle at 14% 16%, rgba(242, 194, 162, 0.42), transparent 40%),
    radial-gradient(circle at 86% 10%, rgba(242, 194, 162, 0.28), transparent 36%),
    linear-gradient(180deg, #faf8f5 0%, #f0ece6 100%);
  background-size: auto;
}

body.quizz-mode .quizz-page {
  position: relative;
  width: min(var(--site-layout-max), var(--site-layout-pad));
  max-width: none;
  margin: 0 auto;
  padding: 0 0.55rem 0.55rem;
  overflow: visible;
  gap: clamp(1.15rem, 3.6vw, 1.85rem) !important;
  font-family: var(--quizz-serif) !important;
}

/* Pendant les questions : moins d’air en haut (marque + hero masqués par le JS). */
body.quizz-mode .quizz-page:has(#quizz-game:not([hidden])) {
  gap: clamp(0.55rem, 2vw, 1rem) !important;
  padding-top: clamp(0.35rem, 2vw, 0.75rem) !important;
}

body.quizz-mode .quizz-page:has(#quizz-game:not([hidden])) .quizz-page-top {
  display: none !important;
}

body.quizz-mode .quizz-page .veille-propose-btn {
  font-family: var(--font-ui) !important;
}

/* Le <main> a aussi la classe .page-shell : bordure / ombre globales = le « contour » visible */
body.quizz-mode .page-shell.quizz-page {
  margin: 0 auto 3rem !important;
  padding: 0 0 1.75rem !important;
  border: none !important;
  outline: none !important;
  box-shadow: none !important;
  background: transparent !important;
}

body.quizz-mode > main.quizz-page {
  margin-top: 0 !important;
  padding-top: 0 !important;
}

body.quizz-mode .quizz-page::before {
  content: "";
  position: absolute;
  inset: 0 -0.55rem -0.55rem;
  border-radius: 28px;
  background: #faf9fd;
  border: none;
  box-shadow: none;
  z-index: -1;
}

body.quizz-mode .quizz-intro {
  border-radius: 22px !important;
  border: none !important;
  background-color: var(--quizz-surface) !important;
  background-image: none !important;
  box-shadow: var(--quizz-surface-shadow) !important;
  padding: 1.25rem clamp(1rem, 4vw, 1.5rem) 1.35rem !important;
}

body.quizz-mode .quizz-hero {
  border-radius: 0 !important;
  border: none !important;
  background: transparent !important;
  background-color: transparent !important;
  background-image: none !important;
  box-shadow: none !important;
  padding: 0 clamp(0.5rem, 3vw, 1rem) !important;
  text-align: center;
}

/* Kicker éditorial : petites capitales encadrées de deux filets pêche, partagé entre hero et résultat */
body.quizz-mode .quizz-hero__kicker,
body.quizz-mode .quizz-result__kicker {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 0.85rem;
  margin: 0 auto 2.1rem;
  max-width: min(100%, 30rem);
  color: #2c2a28;
  font-family: var(--font-ui) !important;
  font-size: 1.18rem;
  font-weight: 800;
  letter-spacing: 0.32em;
  text-transform: uppercase;
}

body.quizz-mode .quizz-hero__kicker > span,
body.quizz-mode .quizz-result__kicker > span {
  display: inline-block;
  white-space: nowrap;
}

body.quizz-mode .quizz-hero__kicker::before,
body.quizz-mode .quizz-hero__kicker::after,
body.quizz-mode .quizz-result__kicker::before,
body.quizz-mode .quizz-result__kicker::after {
  content: "";
  flex: 1 1 auto;
  height: 1px;
  background: linear-gradient(
    to right,
    rgba(242, 194, 162, 0) 0%,
    rgba(242, 194, 162, 0.95) 50%,
    rgba(242, 194, 162, 0) 100%
  );
  max-width: 4rem;
}

/* (Ornement de liaison retiré) */

/* Bandeau de mises en avant : 3 tuiles « repères du quiz » entre le hero et la carte intro */
body.quizz-mode .quizz-highlights {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: clamp(0.55rem, 2vw, 0.95rem);
  width: 100%;
  max-width: min(100%, 34rem);
  margin: 0 auto;
}

body.quizz-mode .quizz-highlight {
  position: relative;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  text-align: center;
  gap: 0.4rem;
  padding: 0.95rem 0.55rem 1rem;
  border-radius: 18px;
  background: #ffffff !important;
  border: 1px solid rgba(15, 15, 16, 0.12) !important;
  box-shadow: var(--quizz-surface-shadow-sm);
  transition: transform 180ms ease, box-shadow 180ms ease, border-color 180ms ease;
}

body.quizz-mode .quizz-highlight:hover {
  transform: translateY(-2px);
  border-color: rgba(15, 15, 16, 0.28) !important;
  box-shadow: var(--quizz-surface-shadow);
}

body.quizz-mode .quizz-highlight__value {
  font-family: var(--quizz-title-didone);
  font-weight: 900;
  font-size: clamp(1.45rem, 4.4vw, 2.05rem);
  letter-spacing: -0.025em;
  color: #0f0f10 !important;
  line-height: 1;
}

body.quizz-mode .quizz-highlight__label {
  font-family: var(--font-ui);
  font-size: 0.7rem;
  font-weight: 600;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: #565656 !important;
  line-height: 1.25;
  max-width: 16ch;
}

@media (max-width: 460px) {
  body.quizz-mode .quizz-highlights {
    gap: 0.45rem;
  }
  body.quizz-mode .quizz-highlight {
    padding: 0.75rem 0.35rem 0.85rem;
    border-radius: 14px;
  }
  body.quizz-mode .quizz-highlight__value {
    font-size: 1.3rem;
  }
  body.quizz-mode .quizz-highlight__label {
    font-size: 0.62rem;
    letter-spacing: 0.1em;
  }
}

/* Masque le bandeau de repères pendant le jeu et l'écran de résultat */
body.quizz-mode .quizz-page:has(#quizz-game:not([hidden])) .quizz-highlights,
body.quizz-mode .quizz-page:has(#quizz-result:not([hidden])) .quizz-highlights {
  display: none !important;
}

/* Étapes numérotées dans la carte « Principe du jeu » */
body.quizz-mode .quizz-intro__list--steps {
  list-style: none !important;
  counter-reset: quizz-step;
  padding-left: 0 !important;
  padding-right: 0 !important;
  display: grid !important;
  gap: 0.7rem !important;
  max-width: min(100%, 32rem) !important;
}

body.quizz-mode .quizz-intro__list--steps > li {
  position: relative;
  margin-bottom: 0 !important;
  padding: 0.65rem 0.85rem 0.7rem 3rem !important;
  border-radius: 14px;
  background: #ffffff !important;
  border: 1px solid rgba(15, 15, 16, 0.12) !important;
  counter-increment: quizz-step;
  font-size: clamp(0.92rem, 1.9vw, 1rem) !important;
  line-height: 1.5 !important;
}

body.quizz-mode .quizz-intro__list--steps > li::before {
  content: counter(quizz-step);
  position: absolute;
  top: 50%;
  left: 0.7rem;
  transform: translateY(-50%);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 1.85rem;
  height: 1.85rem;
  border-radius: 999px;
  background: #0f0f10 !important;
  color: #ffffff !important;
  font-family: var(--quizz-title-didone);
  font-weight: 900;
  font-size: 0.95rem;
  line-height: 1;
  letter-spacing: 0;
  box-shadow: 0 4px 10px rgba(0, 0, 0, 0.18);
}

/* Carte « Principe du jeu » : un peu plus étroite, ombre plus légère, davantage d'air */
body.quizz-mode #quizz-intro.quizz-intro {
  max-width: min(100%, 34rem) !important;
  margin-inline: auto !important;
  padding: 1.55rem clamp(1.2rem, 4vw, 1.85rem) 1.6rem !important;
  box-shadow: var(--quizz-surface-shadow-sm) !important;
  gap: 1.1rem;
}

body.quizz-mode .quizz-intro {
  display: flex;
  flex-direction: column;
  align-items: stretch;
}

/* Bouton lancer vs bandeau « déjà joué » : un seul visible (sécurise au-delà du JS). */
/* Attribut hidden : nos blocs flex doivent vraiment disparaître (sinon display:flex l’emporte). */
body.quizz-mode #quizz-intro[hidden],
body.quizz-mode .quizz-intro[hidden] {
  display: none !important;
}

body.quizz-mode .quizz-hero[hidden] {
  display: none !important;
}

body.quizz-mode #quizz-start-btn[hidden],
body.quizz-mode #quizz-locked-msg[hidden] {
  display: none !important;
}

body.quizz-mode .quizz-card,
body.quizz-mode .quizz-result {
  border-radius: 22px !important;
  border: none !important;
  background-color: var(--quizz-surface) !important;
  background-image: none !important;
  box-shadow: var(--quizz-surface-shadow) !important;
  padding: 1.25rem clamp(1rem, 4vw, 1.5rem) 1.35rem !important;
}

/* Écran résultats : une seule carte (.quizz-result__panel), message intro masqué si doublon */
body.quizz-mode #quizz-result {
  padding: 0 !important;
  background: transparent !important;
  border: none !important;
  box-shadow: none !important;
}

body.quizz-mode .quizz-page:has(#quizz-result:not([hidden])) .quizz-page-top,
body.quizz-mode .quizz-page:has(#quizz-result:not([hidden])) #quizz-intro {
  display: none !important;
}

body.quizz-mode #quizz-result .quizz-result__panel {
  border-radius: 24px !important;
  border: 1px solid rgba(16, 16, 16, 0.08) !important;
  background: #ffffff !important;
  box-shadow: var(--quizz-surface-shadow) !important;
  padding: clamp(1.65rem, 5vw, 2.45rem) clamp(1.25rem, 4.5vw, 2rem) clamp(1.75rem, 5vw, 2.5rem) !important;
  max-width: 100%;
}

body.quizz-mode #quizz-result .quizz-result__encouragement {
  margin: 0.6rem auto 1.1rem !important;
  max-width: 28rem !important;
  font-family: var(--quizz-title-didone) !important;
  font-size: clamp(1.05rem, 2.6vw, 1.22rem) !important;
  font-style: italic;
  font-weight: 500 !important;
  line-height: 1.48 !important;
  letter-spacing: 0.01em !important;
  text-align: center !important;
  color: #3a3633 !important;
  text-wrap: balance;
}

body.quizz-mode #quizz-result .quizz-result__encouragement:empty {
  display: none !important;
  margin: 0 !important;
}

body.quizz-mode #quizz-result .quizz-result__panel > .quizz-result__title {
  font-family: var(--quizz-title-didone) !important;
  font-weight: 800 !important;
  letter-spacing: -0.03em !important;
  text-transform: none !important;
  text-align: center !important;
  color: #101010 !important;
  font-size: clamp(1.45rem, 3.6vw, 1.85rem) !important;
  margin: 0 0 0.35rem !important;
  line-height: 1.08 !important;
}

/* Bloc score : focal point noir & blanc, ornement Didone en pied pour la liaison */
body.quizz-mode #quizz-result .quizz-result__score-block {
  position: relative;
  display: flex !important;
  flex-direction: column !important;
  align-items: center !important;
  gap: 0.95rem !important;
  margin: 0 auto 1.3rem !important;
  padding: 0.2rem 1rem 1.5rem !important;
  border: none !important;
  border-radius: 22px !important;
  background: transparent !important;
  max-width: 24rem !important;
}

/* (Ornement ✦ sous le score retiré) */

body.quizz-mode #quizz-result .quizz-result__points-row {
  display: flex !important;
  flex-wrap: wrap !important;
  align-items: baseline !important;
  justify-content: center !important;
  gap: 0.35rem 0.5rem !important;
}

body.quizz-mode #quizz-result .quizz-result__points-value {
  font-family: var(--quizz-title-didone) !important;
  font-weight: 900 !important;
  font-size: clamp(3.2rem, 11vw, 4.4rem) !important;
  line-height: 1 !important;
  letter-spacing: -0.045em !important;
  color: #101010 !important;
}

body.quizz-mode #quizz-result .quizz-result__points-unit {
  font-family: var(--font-ui) !important;
  font-size: clamp(0.88rem, 2.2vw, 1rem) !important;
  font-weight: 600 !important;
  letter-spacing: 0.14em !important;
  text-transform: uppercase !important;
  color: #5a5652 !important;
}

body.quizz-mode #quizz-result .quizz-result__dots {
  display: flex !important;
  flex-wrap: wrap !important;
  justify-content: center !important;
  gap: 0.28rem !important;
  max-width: 18rem !important;
}

body.quizz-mode #quizz-result .quizz-result__dot {
  width: 0.55rem !important;
  height: 0.55rem !important;
  border-radius: 50% !important;
  flex-shrink: 0 !important;
  background: #e4e2df !important;
  border: 1px solid rgba(16, 16, 16, 0.08) !important;
  transition: background 0.2s ease, transform 0.2s ease;
}

body.quizz-mode #quizz-result .quizz-result__dot.is-on {
  background: linear-gradient(
    145deg,
    var(--quizz-peach-soft) 0%,
    var(--quizz-peach) 55%,
    #e8a882 100%
  ) !important;
  border-color: rgba(242, 194, 162, 0.45) !important;
  box-shadow: 0 1px 4px rgba(242, 194, 162, 0.55) !important;
  transform: scale(1.08);
}

body.quizz-mode #quizz-result .quizz-result__ratio-caption {
  margin: 0 !important;
  font-family: var(--font-ui) !important;
  font-size: clamp(0.86rem, 2vw, 0.98rem) !important;
  font-weight: 500 !important;
  color: #5a5652 !important;
  text-align: center !important;
}

body.quizz-mode #quizz-result .quizz-result__message--extra[hidden] {
  display: none !important;
}

body.quizz-mode #quizz-result .quizz-result__message--stats {
  margin: 0 auto 1.85rem !important;
  color: #5a504a !important;
  font-family: "Fraunces", Georgia, "Times New Roman", serif !important;
  font-style: normal !important;
  font-size: clamp(0.86rem, 1.95vw, 0.95rem) !important;
  font-weight: 500 !important;
  line-height: 1.5 !important;
  letter-spacing: -0.003em !important;
  text-align: center !important;
  max-width: 32rem !important;
  text-wrap: balance;
}

body.quizz-mode #quizz-result .quizz-result__message--stats:empty {
  display: none !important;
  margin: 0 !important;
}

/* Sous-carte « Classement » : noir & blanc, séparée par un fin filet et un fond gris très clair */
body.quizz-mode #quizz-result .quizz-result__podium-wrap {
  margin: 0.85rem -0.35rem 0 !important;
  padding: 1.4rem clamp(0.95rem, 3.5vw, 1.45rem) 1.35rem !important;
  border-radius: 20px !important;
  background: #fafafa !important;
  border: 1px solid rgba(16, 16, 16, 0.08) !important;
}

body.quizz-mode #quizz-result .quizz-result__title--podium {
  font-family: "Fraunces", Georgia, "Times New Roman", serif !important;
  font-size: clamp(1.35rem, 3.2vw, 1.65rem) !important;
  font-weight: 700 !important;
  margin: 0 0 0.95rem !important;
  padding: 0 !important;
  border: none !important;
  color: #101010 !important;
  letter-spacing: -0.025em !important;
  text-align: center !important;
}

body.quizz-mode #quizz-result .quizz-result__kicker--podium {
  margin-bottom: 0.55rem !important;
  font-size: 0.7rem;
  letter-spacing: 0.3em;
  color: #101010 !important;
}

body.quizz-mode .quizz-card__meta {
  display: table;
  margin-left: auto !important;
  margin-right: auto !important;
  margin-bottom: 0.85rem !important;
  padding-bottom: 0.45rem !important;
  border-bottom: 2px solid var(--quizz-peach) !important;
  color: #101010 !important;
  font-size: 0.66rem !important;
  font-weight: 700 !important;
  letter-spacing: 0.16em !important;
  text-transform: uppercase !important;
  text-align: center !important;
}

body.quizz-mode .quizz-card__title {
  color: #101010 !important;
  font-family: var(--quizz-lead-serif) !important;
  font-style: normal !important;
  font-weight: 600 !important;
  font-size: clamp(1.12rem, 3.6vw, 1.42rem) !important;
  line-height: 1.32 !important;
  letter-spacing: 0.01em !important;
  text-align: center !important;
  margin: 0 0 1rem !important;
  font-synthesis: none;
}

body.quizz-mode .quizz-options-frame {
  margin-top: 0.25rem;
  padding: 1rem 0.85rem 1.05rem;
  border-radius: 18px;
  border: none !important;
  background-color: var(--quizz-surface) !important;
  background-image: none !important;
  box-shadow: var(--quizz-surface-shadow-sm) !important;
}

body.quizz-mode .quizz-options {
  gap: 0.62rem !important;
}

body.quizz-mode .quizz-option {
  position: relative;
  display: flex !important;
  align-items: center !important;
  gap: 0.75rem !important;
  padding: 0.62rem 1rem 0.62rem 0.75rem !important;
  border-radius: 999px !important;
  border: none !important;
  background: #fff !important;
  box-shadow: var(--quizz-option-shadow) !important;
  cursor: pointer;
  transition:
    box-shadow 0.2s ease,
    background 0.18s ease,
    transform 0.15s ease;
}

body.quizz-mode .quizz-option__badge {
  flex: 0 0 auto;
  width: 2.1rem;
  height: 2.1rem;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: 50%;
  background: #101010;
  color: #fff;
  font-family: var(--font-ui) !important;
  font-size: 0.82rem;
  font-weight: 800;
  line-height: 1;
}

body.quizz-mode .quizz-option__label {
  flex: 1 1 auto;
  text-align: left !important;
  font-size: clamp(0.88rem, 2.6vw, 1.02rem) !important;
  font-weight: 500 !important;
  color: #101010 !important;
  letter-spacing: 0.02em !important;
  line-height: 1.35 !important;
}

body.quizz-mode .quizz-option:hover {
  transform: translateY(-1px);
  border-color: transparent !important;
  background: #fffdfa !important;
  box-shadow: var(--quizz-option-shadow-hover) !important;
}

body.quizz-mode .quizz-option:has(input:checked) {
  border-color: transparent !important;
  background: linear-gradient(180deg, #fffdfa, var(--quizz-peach-soft)) !important;
  box-shadow:
    0 6px 22px rgba(242, 194, 162, 0.38),
    0 0 0 2px rgba(242, 194, 162, 0.55) !important;
}

body.quizz-mode .quizz-option:focus-within {
  outline: none !important;
}

body.quizz-mode .quizz-option:focus-within:not(:has(input:checked)) {
  box-shadow:
    0 0 0 3px rgba(242, 194, 162, 0.55),
    var(--quizz-option-shadow) !important;
}

body.quizz-mode .quizz-option:focus-within:has(input:checked) {
  box-shadow:
    0 0 0 3px rgba(242, 194, 162, 0.65),
    0 6px 22px rgba(242, 194, 162, 0.38) !important;
}

body.quizz-mode .quizz-option input {
  position: absolute;
  opacity: 0;
  width: 1px;
  height: 1px;
  margin: 0;
  pointer-events: none;
}

body.quizz-mode .quizz-page-top {
  gap: clamp(2.6rem, 5.4vw, 3.8rem) !important;
  margin-top: 0 !important;
}

body.quizz-mode .quizz-brand {
  border: none !important;
  background: transparent !important;
  box-shadow: none !important;
  padding: 0 !important;
}

body.quizz-mode .quizz-brand__mark {
  max-width: min(480px, 88vw) !important;
}

body.quizz-mode .quizz-brand[hidden],
body.quizz-mode .quizz-page-top .quizz-brand[hidden] {
  display: none !important;
}

/* Titre hero : Bodoni Moda (Didone forte) + filet pêche */
body.quizz-mode .quizz-hero__title {
  margin: 0 auto 0.85rem !important;
  max-width: min(100%, 26rem) !important;
  padding-bottom: 0.62rem !important;
  border-bottom: 2px solid var(--quizz-peach) !important;
  font-family: var(--quizz-title-didone) !important;
  font-style: normal !important;
  font-weight: 900 !important;
  font-size: clamp(1.42rem, 3.75vw, 1.95rem) !important;
  line-height: 1.12 !important;
  letter-spacing: -0.035em !important;
  color: #101010 !important;
  text-align: center !important;
}

/* « Principe du jeu » : même Didone forte, sans filet */
body.quizz-mode #quizz-intro-rules > .quizz-result__title {
  margin: 0 auto 0.85rem !important;
  max-width: min(100%, 26rem) !important;
  padding-bottom: 0 !important;
  border-bottom: none !important;
  font-family: var(--quizz-title-didone) !important;
  font-style: normal !important;
  font-weight: 900 !important;
  font-size: clamp(1.42rem, 3.75vw, 1.95rem) !important;
  line-height: 1.12 !important;
  letter-spacing: -0.035em !important;
  color: #101010 !important;
  text-align: center !important;
  text-transform: none !important;
  font-variant: normal !important;
}

body.quizz-mode .quizz-hero__lead {
  margin: 0 auto !important;
  max-width: min(100%, 34rem) !important;
  font-family: var(--quizz-lead-serif) !important;
  font-size: clamp(0.82rem, 1.65vw, 0.92rem) !important;
  font-weight: 400 !important;
  line-height: 1.42 !important;
  letter-spacing: 0.01em !important;
  text-align: center !important;
  color: #3a342f !important;
  font-synthesis: none;
}

body.quizz-mode .quizz-feedback {
  margin-top: 0.85rem !important;
  padding: 0.62rem 0.9rem !important;
  font-family: var(--font-ui) !important;
  font-size: 0.86rem !important;
  font-style: normal !important;
  font-weight: 500 !important;
  line-height: 1.48 !important;
  letter-spacing: 0.012em !important;
  text-align: center !important;
}

body.quizz-mode .quizz-feedback.is-ok {
  color: #1a4d36 !important;
  border: none !important;
  border-radius: 12px !important;
  background: rgba(236, 248, 240, 0.98) !important;
  box-shadow: var(--quizz-surface-shadow-sm) !important;
  border-left: 3px solid var(--quizz-peach) !important;
  font-weight: 600 !important;
}

body.quizz-mode .quizz-feedback.is-ko {
  color: #4a2830 !important;
  border: none !important;
  border-radius: 12px !important;
  background: rgba(255, 244, 246, 0.98) !important;
  box-shadow: var(--quizz-surface-shadow-sm) !important;
  border-left: 3px solid rgba(220, 120, 130, 0.75) !important;
  font-weight: 600 !important;
}

body.quizz-mode #quizz-start-btn {
  align-self: center !important;
  margin-top: 0.4rem !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 0.65rem !important;
  border-radius: 999px !important;
  padding: 0.95rem 2rem !important;
  background: linear-gradient(135deg, #101010 0%, #2a1a1c 100%) !important;
  border: 1px solid #101010 !important;
  color: #fff7ef !important;
  box-shadow: 0 14px 32px rgba(47, 42, 38, 0.28), 0 0 0 4px rgba(242, 194, 162, 0.18) !important;
  font-family: var(--font-ui) !important;
  font-weight: 700 !important;
  letter-spacing: 0.12em !important;
  text-transform: uppercase;
  font-size: 0.88rem;
  transition: transform 180ms ease, box-shadow 200ms ease, background 200ms ease !important;
}

body.quizz-mode #quizz-start-btn .quizz-start-btn__arrow {
  display: inline-block;
  font-size: 1.1em;
  line-height: 1;
  transition: transform 200ms ease;
}

body.quizz-mode #quizz-start-btn:hover {
  background: linear-gradient(135deg, #2a2622 0%, #3b1c20 100%) !important;
  border-color: var(--quizz-peach) !important;
  box-shadow: 0 18px 38px rgba(47, 42, 38, 0.32), 0 0 0 5px rgba(242, 194, 162, 0.28) !important;
  transform: translateY(-1px);
}

body.quizz-mode #quizz-start-btn:hover .quizz-start-btn__arrow {
  transform: translateX(4px);
}

body.quizz-mode #quizz-start-btn:focus-visible {
  outline: none !important;
  box-shadow: 0 14px 32px rgba(47, 42, 38, 0.28), 0 0 0 5px rgba(242, 194, 162, 0.55) !important;
}

body.quizz-mode #quizz-next-btn.veille-propose-btn--ghost {
  border-radius: 999px !important;
  padding: 0.62rem 1.45rem !important;
  background: #fff !important;
  color: #101010 !important;
  border: none !important;
  box-shadow: var(--quizz-option-shadow) !important;
  font-family: var(--font-ui) !important;
  font-weight: 700 !important;
  letter-spacing: 0.06em !important;
  text-transform: uppercase;
  font-size: 0.82rem;
}

body.quizz-mode #quizz-next-btn.veille-propose-btn--ghost:hover {
  background: var(--quizz-peach-soft) !important;
  border-color: transparent !important;
  color: #101010 !important;
  box-shadow: var(--quizz-option-shadow-hover) !important;
}

body.quizz-mode #quizz-intro-rules {
  width: 100%;
}

body.quizz-mode .quizz-intro__list {
  display: grid !important;
  width: 100%;
  max-width: min(100%, 38rem) !important;
  margin: 0 auto !important;
  padding-left: 1.15rem !important;
  padding-right: 0.25rem !important;
  box-sizing: border-box !important;
  text-align: left !important;
  color: #2f2a26 !important;
  font-size: clamp(0.96rem, 2.05vw, 1.1rem) !important;
  font-weight: 500 !important;
  line-height: 1.55 !important;
  gap: 0 !important;
}

body.quizz-mode .quizz-intro__list strong {
  color: #101010 !important;
  font-weight: 700 !important;
}

body.quizz-mode .quizz-intro__list > li {
  margin-bottom: 1rem !important;
}

body.quizz-mode .quizz-intro__list > li:last-child {
  margin-bottom: 0 !important;
}

body.quizz-mode .quizz-locked-msg {
  margin: 0.55rem auto 0 !important;
  max-width: min(100%, 32rem) !important;
  display: flex !important;
  flex-wrap: wrap !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 0.45rem 0.6rem !important;
  padding: 0.25rem 0.15rem !important;
  border: none !important;
  border-radius: 0 !important;
  background: transparent !important;
  background-image: none !important;
  color: #3a3a3a !important;
  font-family: "Fraunces", Georgia, "Times New Roman", serif !important;
  font-style: normal !important;
  font-size: clamp(1.05rem, 2.5vw, 1.22rem) !important;
  font-weight: 500 !important;
  line-height: 1.45 !important;
  letter-spacing: -0.005em !important;
  text-align: center !important;
  text-wrap: balance;
  box-shadow: none !important;
  animation: none !important;
}

body.quizz-mode .quizz-locked-msg > span + span {
  flex: 1 1 16rem !important;
  max-width: 100% !important;
}

body.quizz-mode .quizz-locked-msg__icon {
  flex-shrink: 0 !important;
  font-size: clamp(1rem, 2.4vw, 1.15rem) !important;
  line-height: 1 !important;
  animation: none !important;
}

body.quizz-mode #quizz-result .quizz-podium-top {
  display: flex !important;
  align-items: flex-end !important;
  justify-content: center !important;
  gap: clamp(0.35rem, 2vw, 0.65rem) !important;
  margin: 0.85rem 0 0.25rem !important;
  padding: 0 0.2rem !important;
}

body.quizz-mode #quizz-result .quizz-podium-top__col {
  flex: 1 1 0 !important;
  min-width: 0 !important;
  max-width: 8.75rem !important;
  display: flex !important;
  flex-direction: column !important;
  border: none !important;
  border-radius: 16px !important;
  background: transparent !important;
  box-shadow: none !important;
  padding: 0 !important;
  overflow: visible !important;
}

body.quizz-mode #quizz-result .quizz-podium-top__pillar {
  flex: 1 1 auto !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  border-radius: 14px 14px 0 0 !important;
  padding: 0.4rem 0.2rem !important;
}

body.quizz-mode #quizz-result .quizz-podium-top__col.podium-h1 .quizz-podium-top__pillar {
  min-height: clamp(5.5rem, 20vw, 7.25rem) !important;
  background: linear-gradient(180deg, #454545 0%, #2e2e2e 55%, #252525 100%) !important;
}

body.quizz-mode #quizz-result .quizz-podium-top__col.podium-h2 .quizz-podium-top__pillar {
  min-height: clamp(3.85rem, 14vw, 5.15rem) !important;
  background: linear-gradient(180deg, #ececec 0%, #dcdcdc 100%) !important;
}

body.quizz-mode #quizz-result .quizz-podium-top__col.podium-h3 .quizz-podium-top__pillar {
  min-height: clamp(2.85rem, 11vw, 4rem) !important;
  background: linear-gradient(180deg, #f2f2f2 0%, #e4e4e4 100%) !important;
}

body.quizz-mode #quizz-result .quizz-podium-top__col--rank1 .quizz-podium-top__digit {
  color: #fafafa !important;
}

body.quizz-mode #quizz-result .quizz-podium-top__digit {
  font-family: "Fraunces", Georgia, "Times New Roman", serif !important;
  font-weight: 700 !important;
  font-size: clamp(1.95rem, 9vw, 3.15rem) !important;
  line-height: 1 !important;
  letter-spacing: -0.03em !important;
  color: #101010 !important;
  user-select: none;
}

body.quizz-mode #quizz-result .quizz-podium-top__meta {
  flex-shrink: 0 !important;
  padding: 1rem 0.45rem 0.15rem !important;
  background: transparent !important;
  text-align: center !important;
  border: none !important;
}

body.quizz-mode #quizz-result .quizz-podium-top__meta p {
  margin: 0 !important;
}

body.quizz-mode #quizz-result .quizz-podium-top__name {
  margin: 0 0 0.4rem !important;
  font-family: "Fraunces", Georgia, "Times New Roman", serif !important;
  font-weight: 600 !important;
  font-size: clamp(0.85rem, 2.6vw, 0.98rem) !important;
  line-height: 1.3 !important;
  letter-spacing: -0.01em !important;
  color: #101010 !important;
}

body.quizz-mode #quizz-result .quizz-podium-top__score {
  margin: 0 !important;
  font-family: var(--font-ui) !important;
  font-size: clamp(0.66rem, 2vw, 0.74rem) !important;
  font-weight: 700 !important;
  letter-spacing: 0.16em !important;
  text-transform: uppercase !important;
  color: #5a5652 !important;
}

body.quizz-mode #quizz-result .quizz-podium__item {
  border-radius: 14px !important;
  border: 1px solid rgba(16, 16, 16, 0.12) !important;
  background: #ffffff !important;
  box-shadow: var(--quizz-option-shadow) !important;
}

body.quizz-mode #quizz-result .quizz-podium__item--other {
  background: #ffffff !important;
}

body.quizz-mode #quizz-result #quizz-leaderboard {
  margin-top: 0.85rem !important;
  gap: 0.5rem !important;
}

body.quizz-mode #quizz-result .quizz-podium__score {
  color: #3a3a3a !important;
  font-family: var(--font-ui) !important;
  font-size: 0.72rem !important;
  font-weight: 700 !important;
  letter-spacing: 0.16em !important;
  text-transform: uppercase !important;
}

body.quizz-mode #quizz-result .quizz-podium__rank {
  font-family: "Fraunces", Georgia, "Times New Roman", serif !important;
  font-style: italic !important;
  font-size: 0.95rem !important;
  font-weight: 600 !important;
  letter-spacing: -0.01em !important;
  color: #101010 !important;
}

body.quizz-mode #quizz-result .quizz-podium__name {
  font-family: "Fraunces", Georgia, "Times New Roman", serif !important;
  font-weight: 600 !important;
  font-size: 1rem !important;
  letter-spacing: -0.01em !important;
  color: #101010 !important;
}

body.quizz-mode #quizz-result .quizz-podium__item--1 {
  background: #ffffff !important;
  border: 1px solid rgba(16, 16, 16, 0.14) !important;
  box-shadow: var(--quizz-option-shadow) !important;
}

body.quizz-mode #quizz-result .quizz-podium__item--2 {
  background: #ffffff !important;
  border: 1px solid rgba(16, 16, 16, 0.12) !important;
  box-shadow: var(--quizz-option-shadow) !important;
}

body.quizz-mode #quizz-result .quizz-podium__item--3 {
  background: #ffffff !important;
  border: 1px solid rgba(16, 16, 16, 0.12) !important;
  box-shadow: var(--quizz-option-shadow) !important;
}

body.quizz-mode #quizz-result .quizz-podium__you {
  color: #101010 !important;
  font-weight: 800;
}

@media (max-width: 700px) {
  body.quizz-mode .quizz-page {
    padding: 0 0.35rem 0.35rem;
  }

  body.quizz-mode .quizz-intro,
  body.quizz-mode .quizz-card,
  body.quizz-mode .quizz-result {
    border-radius: 20px !important;
  }

  body.quizz-mode #quizz-result .quizz-result__panel {
    border-radius: 20px !important;
  }

  body.quizz-mode .quizz-page::before {
    border-radius: 20px !important;
    inset: 0 -0.35rem -0.35rem !important;
  }

  body.quizz-mode .quizz-page-top {
    gap: 2.1rem !important;
    margin-top: 0 !important;
  }

  body.quizz-mode .quizz-brand__mark {
    max-width: min(400px, 90vw) !important;
  }
}

/* Header : cloche + profil — alignés sur les pastilles nav (fond blanc, traits noirs) */
.site-header__notif-toggle,
.site-header__profile {
  background: #fff !important;
  color: #111 !important;
  border: 1.5px solid rgba(0, 0, 0, 0.22) !important;
  box-shadow: none !important;
}

.site-header__notif-toggle:hover,
.site-header__profile:hover {
  background: rgba(239, 184, 153, 0.18) !important;
  border-color: var(--cherry) !important;
  color: #111 !important;
}

.site-header__notif-toggle--current {
  background: #111 !important;
  color: #fff !important;
  border-color: #111 !important;
  box-shadow: none !important;
}

.site-header__notif-toggle--current:hover {
  background: var(--cherry) !important;
  color: #111 !important;
  border-color: var(--cherry) !important;
}

/* Panneau cloche : priorité sur les surcouches thème beige / bordeaux */
.site-header__notif-panel {
  background: #fff !important;
  border-color: var(--line-soft) !important;
  box-shadow: var(--shadow-elevated) !important;
}

.site-header__notif-panel-summary {
  color: #111 !important;
  border-bottom-color: var(--line-soft) !important;
}

.site-header__notif-panel-summary--empty {
  color: #1a1a1a !important;
  font-family: "Fraunces", Georgia, "Times New Roman", serif !important;
  font-weight: 700 !important;
  text-align: center !important;
  border-bottom: none !important;
  background: #fff !important;
}

.site-header__notif-panel-item {
  border-bottom-color: var(--line-soft) !important;
}

.site-header__notif-panel-link {
  color: #111 !important;
}

.site-header__notif-panel-link:hover {
  background: rgba(239, 184, 153, 0.14) !important;
  color: #111 !important;
}

.site-header__notif-panel-link--unread {
  background: #fff !important;
  font-weight: 600 !important;
}

.site-header__notif-panel-link--read {
  background: #fff !important;
  font-weight: 500 !important;
}

.site-header__notif-panel-link--unread:hover {
  background: rgba(239, 184, 153, 0.14) !important;
  color: #111 !important;
}

.site-header__notif-panel-link--read:hover {
  background: rgba(239, 184, 153, 0.14) !important;
  color: #111 !important;
}

.site-header__notif-panel-item--empty {
  color: var(--text-muted) !important;
}

.site-header__notif-panel-foot {
  background: #fafafa !important;
  border-top-color: var(--line-soft) !important;
}

.site-header__notif-see-all {
  background: #111 !important;
  border: 1px solid #111 !important;
  color: #fff !important;
  box-shadow: none !important;
  filter: none !important;
  transform: none !important;
}

.site-header__notif-see-all:hover {
  background: var(--cherry) !important;
  border-color: var(--cherry) !important;
  color: #111 !important;
  filter: none !important;
  transform: none !important;
}

.site-header__notif-count,
.site-header__notif-count--floating {
  background: #111 !important;
  color: #fff !important;
}

.site-header__notif-toggle--current .site-header__notif-count--floating {
  background: var(--cherry) !important;
  color: #111 !important;
}

/* Page Notifications : cartes lisibles (hors style button global noir) */
.page-shell--notifications .notifications-page__item,
.page-shell--notifications .notifications-page__item--glass,
.page-shell--notifications .notifications-page__list > * {
  background: #fff !important;
  border: 1px solid var(--line-soft) !important;
  box-shadow: var(--shadow-soft) !important;
}

.page-shell--notifications button.notifications-page__item-hit,
.page-shell--notifications .notifications-page__item-hit {
  background: transparent !important;
  border: none !important;
  color: #111 !important;
  box-shadow: none !important;
  font-weight: 500 !important;
  letter-spacing: normal !important;
  text-transform: none !important;
}

.page-shell--notifications button.notifications-page__item-hit:hover,
.page-shell--notifications .notifications-page__item-hit:hover,
.page-shell--notifications button.notifications-page__item-hit:focus-visible,
.page-shell--notifications .notifications-page__item-hit:focus-visible {
  background: rgba(239, 184, 153, 0.12) !important;
  border: none !important;
  color: #111 !important;
}

.page-shell--notifications button.notifications-page__item-delete {
  background: transparent !important;
  border: none !important;
  border-left: 1px solid var(--line-soft) !important;
  color: #666 !important;
  box-shadow: none !important;
  font-weight: 400 !important;
  letter-spacing: normal !important;
  text-transform: none !important;
}

.page-shell--notifications button.notifications-page__item-delete:hover {
  background: rgba(239, 184, 153, 0.14) !important;
  border: none !important;
  border-left: 1px solid var(--line-soft) !important;
  color: #111 !important;
}

.page-shell--notifications .notifications-page__item-preview,
.page-shell--notifications .notifications-page__item-detail-text,
.page-shell--notifications .notifications-page__item-detail-list,
.page-shell--notifications .notifications-page__item-detail-where {
  color: #111 !important;
}

.page-shell--notifications .notifications-page__item-meta {
  color: var(--text-muted) !important;
}

.page-shell--notifications .notifications-page__new {
  color: var(--cherry-dark) !important;
}

.page-shell--notifications .notifications-page__read {
  color: var(--text-muted) !important;
}

.page-shell--notifications .notifications-page__item-detail {
  background: #fafafa !important;
  border-top-color: var(--line-soft) !important;
}

.page-shell--notifications .notifications-page__empty {
  background: #fff !important;
  border: 1px dashed var(--line-strong) !important;
  color: var(--text-muted) !important;
}

.page-shell--notifications button.notifications-page__birthday-dismiss {
  background: #fff !important;
  border: 1px solid var(--line-strong) !important;
  color: #111 !important;
  font-weight: 600 !important;
  letter-spacing: normal !important;
  text-transform: none !important;
}

.page-shell--notifications button.notifications-page__birthday-dismiss:hover {
  background: rgba(239, 184, 153, 0.16) !important;
  border-color: var(--cherry) !important;
  color: #111 !important;
}

.page-shell--notifications #notifications-mark-read.juris-submit {
  background: #111 !important;
  border-color: #111 !important;
  color: #fff !important;
}

.page-shell--notifications #notifications-mark-read.juris-submit:hover {
  background: var(--cherry) !important;
  border-color: var(--cherry) !important;
  color: #111 !important;
}

.page-shell--notifications .notifications-page__pagination {
  margin: 1.75rem 0 0.35rem;
}

.page-shell--notifications .notifications-page__pagination .juris-page-btn {
  background: #fff !important;
  border: 1px solid var(--line-strong) !important;
  color: #111 !important;
  font-weight: 600 !important;
  letter-spacing: 0.04em !important;
  text-transform: none !important;
  box-shadow: none !important;
}

.page-shell--notifications .notifications-page__pagination .juris-page-btn:hover:not([disabled]) {
  background: rgba(239, 184, 153, 0.14) !important;
  border-color: var(--cherry) !important;
  color: #111 !important;
}

.page-shell--notifications .notifications-page__pagination .juris-page-btn[disabled] {
  opacity: 0.4 !important;
}

.page-shell--notifications .notifications-page__pagination .juris-page-info {
  color: var(--text-muted);
  font-weight: 600;
}

.site-header__profile--current {
  background: #111 !important;
  color: #fafafa !important;
  border-color: #111 !important;
  box-shadow: 0 8px 20px rgba(0, 0, 0, 0.22) !important;
}

.site-header__profile--current:hover {
  background: #000 !important;
  color: #fff !important;
  border-color: #000 !important;
}

.site-header__profile-svg .site-header__profile-cap-fill {
  fill: currentColor;
  fill-opacity: 0.1;
}

.site-header__profile--current .site-header__profile-svg .site-header__profile-cap-fill {
  fill-opacity: 0.22;
}

/* ===== Admin Quizz — contraste & palette noir / blanc ===== */
#admin-app[data-admin-page="quizz"] .admin-section__title,
#admin-app[data-admin-page="quizz-archive"] .admin-section__title {
  color: #101010 !important;
}

#admin-app[data-admin-page="quizz"] .admin-section__hint,
#admin-app[data-admin-page="quizz-archive"] .admin-section__hint {
  color: #3a3a3a !important;
}

#admin-app[data-admin-page="quizz"] .admin-subnav__link:hover,
#admin-app[data-admin-page="quizz-archive"] .admin-subnav__link:hover {
  color: #101010 !important;
  opacity: 0.72;
}

#admin-app[data-admin-page="quizz"] .admin-subnav__link--current,
#admin-app[data-admin-page="quizz"] .admin-subnav__link[aria-current="page"],
#admin-app[data-admin-page="quizz-archive"] .admin-subnav__link--current,
#admin-app[data-admin-page="quizz-archive"] .admin-subnav__link[aria-current="page"] {
  color: #101010 !important;
  border-bottom-color: #101010 !important;
}

/* Les cartes santé sont des <button> : éviter le fond noir global des boutons */
button.admin-quizz-health__card.admin-quizz-health__card--action {
  background: #fff !important;
  border: 1px solid var(--line-soft) !important;
  color: #101010 !important;
  font-family: var(--font-ui) !important;
  font-weight: 500 !important;
  letter-spacing: normal !important;
}

button.admin-quizz-health__card.admin-quizz-health__card--action:hover,
button.admin-quizz-health__card.admin-quizz-health__card--action:focus-visible {
  background: #f4f4f4 !important;
  border-color: #101010 !important;
  color: #101010 !important;
}

a.admin-quizz-health__card.admin-quizz-health__card--action {
  color: #101010 !important;
}

a.admin-quizz-health__card.admin-quizz-health__card--action:hover,
a.admin-quizz-health__card.admin-quizz-health__card--action:focus-visible {
  background: #f4f4f4 !important;
  border-color: #101010 !important;
  color: #101010 !important;
}

.admin-quizz-health__card .admin-quizz-health__label {
  color: #3d3d3d !important;
}

.admin-quizz-health__card .admin-quizz-health__value {
  color: #101010 !important;
}

#admin-app[data-admin-page="quizz"] .documents-add__label {
  color: #3d3d3d !important;
}

#admin-app[data-admin-page="quizz"] .documents-add__input,
#admin-app[data-admin-page="quizz"] .documents-add__textarea {
  border-color: rgba(0, 0, 0, 0.22) !important;
}

#admin-app[data-admin-page="quizz"] .documents-add__input:focus,
#admin-app[data-admin-page="quizz"] .documents-add__textarea:focus {
  border-color: #101010 !important;
  box-shadow: 0 0 0 3px rgba(0, 0, 0, 0.08) !important;
  outline: none !important;
}

#admin-app[data-admin-page="quizz"] input[name="admin-quizz-correct"],
#admin-app[data-admin-page="quizz"] input[name="admin-quizz-edit-correct"] {
  accent-color: #101010;
}

#admin-app[data-admin-page="quizz"] .admin-quizz-correct {
  color: #3d3d3d !important;
}

#admin-app[data-admin-page="quizz"] .admin-quizz-delete:hover,
#admin-app[data-admin-page="quizz"] .admin-quizz-schedule:hover,
#admin-app[data-admin-page="quizz"] .admin-quizz-archive:hover,
#admin-app[data-admin-page="quizz"] .admin-quizz-edit:hover,
#admin-app[data-admin-page="quizz"] .admin-quizz-restore:hover,
#admin-app[data-admin-page="quizz"] .admin-quizz-archive-delete:hover,
#admin-app[data-admin-page="quizz-archive"] .admin-quizz-delete:hover,
#admin-app[data-admin-page="quizz-archive"] .admin-quizz-schedule:hover,
#admin-app[data-admin-page="quizz-archive"] .admin-quizz-archive:hover,
#admin-app[data-admin-page="quizz-archive"] .admin-quizz-restore:hover,
#admin-app[data-admin-page="quizz-archive"] .admin-quizz-archive-delete:hover {
  background: #2a2a2a !important;
  border-color: #2a2a2a !important;
  color: #fff !important;
}

#admin-app[data-admin-page="quizz"] button.documents-add__submit:hover,
#admin-app[data-admin-page="quizz-archive"] button.documents-add__submit:hover {
  background: #2a2a2a !important;
  border-color: #2a2a2a !important;
  color: #fff !important;
}

#admin-app[data-admin-page="quizz"] *:focus-visible,
#admin-app[data-admin-page="quizz-archive"] *:focus-visible {
  outline: 2px solid rgba(0, 0, 0, 0.45) !important;
  outline-offset: 2px;
}

/* ===== Forum — DA noir / blanc, ombrages, touches pêche (accueil) ===== */
.subject-body:has(.page-shell--forum) {
  background: #ffffff;
  color: #101010;
}

.page-shell--forum {
  --forum-peach: var(--cherry);
  --forum-peach-deep: var(--cherry-dark);
  --forum-peach-soft: var(--cherry-soft);
  --forum-peach-muted: var(--cherry-muted);
  --forum-shadow-sm: 0 4px 14px rgba(0, 0, 0, 0.05);
  --forum-shadow-md: 0 10px 26px rgba(0, 0, 0, 0.08);
  --forum-shadow-lg: 0 18px 42px rgba(0, 0, 0, 0.1);
}

.page-shell--forum::before,
.forum-section--salon::before,
.forum-section--salon .forum-room-card::before,
.forum-section--salon .forum-room-card::after {
  display: none !important;
  content: none !important;
}

.page-shell--forum .page-shell__title {
  color: #101010;
  letter-spacing: -0.03em;
}

.page-shell--forum .page-shell__title::after {
  content: none;
  display: none;
}

/* Titre « Espace échange » — display Bodoni empilé (réf. Organized / Focused) */
.page-shell--forum .forum-page-title--fashion {
  display: flex;
  justify-content: center;
  margin-bottom: 2rem;
  font-weight: normal;
  line-height: 1;
}

.page-shell--forum .forum-page-title__wrap {
  display: inline-flex;
  flex-direction: column;
  align-items: center;
  line-height: 0.88;
  text-align: center;
}

.page-shell--forum .forum-page-title__line {
  display: block;
  margin: 0;
  padding: 0;
  font-family: "Bodoni Moda", Didot, "Bodoni MT", "Libre Bodoni", Georgia, serif !important;
  font-weight: 800;
  color: #0a0a0a;
  font-feature-settings: "kern" 1, "liga" 1;
  text-shadow: 0 10px 26px rgba(0, 0, 0, 0.09);
}

.page-shell--forum .forum-page-title__line--top {
  font-size: clamp(2.85rem, 9.2vw, 5.4rem);
  font-style: normal;
  letter-spacing: -0.06em;
  line-height: 0.9;
}

.page-shell--forum .forum-page-title__line--bottom {
  margin-top: 0.05em;
  margin-left: 0.12em;
  font-size: clamp(3rem, 10vw, 5.85rem);
  font-style: italic;
  font-weight: 700;
  letter-spacing: -0.055em;
  line-height: 0.86;
  text-shadow:
    0 12px 30px rgba(0, 0, 0, 0.1),
    0 4px 18px rgba(239, 184, 153, 0.28);
}

@media (max-width: 520px) {
  .page-shell--forum .forum-page-title__line--top {
    font-size: clamp(2.35rem, 12vw, 3.35rem);
    letter-spacing: -0.05em;
  }

  .page-shell--forum .forum-page-title__line--bottom {
    margin-top: 0.05em;
    margin-left: 0.06em;
    font-size: clamp(2.5rem, 13vw, 3.55rem);
  }
}

/* Titre logo « Espace échange » sous forme d'image (lettrage cursive + serif),
   aligné sur le rendu utilisé pour « Veille juridique » et « Juris partage ».
   La taille est pilotée par la HAUTEUR (height) afin que les trois pages
   affichent un lettrage strictement à la même hauteur visuelle, quelles que
   soient les proportions internes de chaque PNG. */
.page-shell--forum .page-shell__title--image {
  display: flex !important;
  align-items: center;
  justify-content: center;
  margin: 1.25rem auto 2.25rem !important;
  padding: 0 !important;
  background: none !important;
  border: none !important;
  line-height: 1 !important;
  letter-spacing: 0 !important;
  font-size: 0 !important;
  width: 100%;
  max-width: 100%;
}

.page-shell--forum .page-shell__title--image::before,
.page-shell--forum .page-shell__title--image::after {
  display: none !important;
  content: none !important;
}

.page-shell--forum .page-shell__title-image {
  display: block;
  width: auto;
  height: clamp(6.5rem, 13vw, 11rem);
  max-width: 100%;
  margin: 0 auto;
}

@media (max-width: 540px) {
  .page-shell--forum .page-shell__title--image {
    margin: 0.75rem auto 1.75rem !important;
  }
  .page-shell--forum .page-shell__title-image {
    height: clamp(5rem, 16vw, 7.5rem);
  }
}

.forum-page__lead,
.page-shell--forum .page-shell__lead {
  color: #565656;
}

.forum-section__subheading {
  color: #565656;
}

/* Surfaces : blanc + ombre, sans contour */
.page-shell--forum .forum-charter,
.page-shell--forum .forum-section--salon,
.page-shell--forum .forum-salon-toolbar,
.page-shell--forum .forum-salon-search,
.page-shell--forum .forum-salon-filter,
.page-shell--forum .forum-section--salon .forum-room-card,
.page-shell--forum .forum-salon-search-result,
.page-shell--forum .forum-fil-chat,
.page-shell--forum .forum-fil-sync-note,
.page-shell--forum .forum-fil-gate,
.page-shell--forum .forum-fil-account-missing,
.page-shell--forum .forum-fil-account-blocked,
.page-shell--forum .forum-report-dialog__inner {
  background: #ffffff !important;
  border: none !important;
  box-shadow: var(--forum-shadow-md) !important;
}

.page-shell--forum .forum-charter {
  border-radius: 24px;
  padding: 1.35rem 1.45rem 1.45rem;
}

.page-shell--forum .forum-charter__title {
  color: #101010;
  font-family: "Fraunces", Georgia, "Times New Roman", serif;
}

.page-shell--forum .forum-charter__heading {
  color: #3a3a3a;
  letter-spacing: 0.08em;
}

.page-shell--forum .forum-charter__heading::before {
  content: "";
  display: inline-block;
  width: 0.45rem;
  height: 0.45rem;
  margin-right: 0.4rem;
  border-radius: 50%;
  background: var(--forum-peach);
  vertical-align: 0.08em;
}

.page-shell--forum .forum-charter__actions {
  border-top: none;
  box-shadow: 0 -1px 0 rgba(0, 0, 0, 0.06);
  padding-top: 1.15rem;
}

.page-shell--forum .forum-charter__body::-webkit-scrollbar-thumb {
  background: var(--forum-peach);
  border: 2px solid #fff;
}

.page-shell--forum .forum-section--salon {
  margin-top: 2.25rem;
  margin-bottom: clamp(1.5rem, 3vw, 2.25rem);
  padding: clamp(1.5rem, 3vw, 2.1rem) clamp(1.1rem, 2.5vw, 1.65rem) clamp(2.5rem, 4.5vw, 3.4rem);
  border-radius: 28px;
  box-shadow: var(--forum-shadow-lg) !important;
}

.page-shell--forum .forum-section__heading--salon {
  margin-bottom: 0.55rem;
  font-family: "Fraunces", Georgia, "Times New Roman", serif;
  font-size: clamp(1.65rem, 4.5vw, 2.15rem);
  font-weight: 700;
  color: #101010;
  text-shadow: none;
  letter-spacing: -0.03em;
}

.page-shell--forum .forum-section__heading--salon::after {
  content: "";
  display: block;
  width: 6rem;
  height: 2px;
  margin: 0.55rem auto 0;
  border-radius: 1px;
  background: var(--forum-peach);
}

.page-shell--forum .forum-salon-toolbar {
  border-radius: 20px;
  padding: 1.05rem 1.1rem;
  box-shadow: var(--forum-shadow-sm) !important;
}

.page-shell--forum .forum-salon-toolbar__intro code {
  background: var(--forum-peach-muted);
  border-radius: 6px;
}

.page-shell--forum .forum-salon-filter {
  border-radius: 999px;
  padding: 0.45rem 0.85rem;
  color: #101010;
  box-shadow: var(--forum-shadow-sm) !important;
  transition:
    box-shadow 0.18s ease,
    background 0.18s ease,
    transform 0.18s ease;
}

.page-shell--forum .forum-salon-filter:hover {
  background: var(--forum-peach-muted) !important;
  box-shadow: 0 6px 18px rgba(0, 0, 0, 0.07) !important;
  transform: translateY(-1px);
}

.page-shell--forum .forum-salon-filter:has(input:checked) {
  background: rgba(239, 184, 153, 0.38) !important;
  box-shadow: 0 6px 20px rgba(239, 184, 153, 0.32) !important;
}

.page-shell--forum .forum-salon-filter input {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}

.page-shell--forum .forum-salon-filter:focus-within {
  outline: none;
  box-shadow: 0 0 0 3px var(--forum-peach-soft) !important;
}

.page-shell--forum .forum-salon-search {
  margin-top: 1rem;
  padding: 1rem 1.05rem;
  border-radius: 18px;
}

.page-shell--forum .forum-salon-search__label {
  color: #101010;
  font-weight: 700;
}

.page-shell--forum .forum-salon-search__input {
  border: 1px solid rgba(16, 16, 16, 0.08) !important;
  border-radius: 12px;
  background-color: #ffffff !important;
  background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23a3a3a3' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><circle cx='11' cy='11' r='7'/><path d='m20 20-3.6-3.6'/></svg>");
  background-repeat: no-repeat;
  background-position: 0.85rem center;
  background-size: 1.05rem 1.05rem;
  padding-left: 2.55rem !important;
  box-shadow: none !important;
  transition:
    border-color 0.18s ease,
    box-shadow 0.18s ease,
    background-color 0.18s ease;
}

.page-shell--forum .forum-salon-search__input::-webkit-search-cancel-button,
.page-shell--forum .forum-salon-search__input::-webkit-search-decoration {
  -webkit-appearance: none;
  appearance: none;
}

.page-shell--forum .forum-salon-search__input:hover {
  border-color: rgba(16, 16, 16, 0.16) !important;
}

.page-shell--forum .forum-salon-search__input:focus {
  outline: none;
  border-color: var(--forum-peach-deep) !important;
  background-color: #ffffff !important;
  box-shadow: 0 0 0 3px var(--forum-peach-soft) !important;
}

.page-shell--forum .forum-salon-search-result {
  border-radius: 14px;
  padding: 0.7rem 0.85rem;
  transition:
    box-shadow 0.18s ease,
    transform 0.18s ease;
}

.page-shell--forum .forum-salon-search-result:hover {
  transform: translateY(-1px);
  box-shadow: 0 12px 28px rgba(0, 0, 0, 0.1) !important;
}

.page-shell--forum .forum-salon-search-result--selected {
  box-shadow:
    var(--forum-shadow-md),
    0 0 0 3px var(--forum-peach-soft) !important;
}

.page-shell--forum .forum-salon-search-result__room {
  color: var(--forum-peach-deep);
}

.page-shell--forum .forum-salon-search-result__mark {
  background: var(--forum-peach-soft);
  border-radius: 4px;
}

.page-shell--forum .forum-salon-search-more {
  border: none !important;
  box-shadow: var(--forum-shadow-sm);
  color: #101010;
  background: #fff !important;
}

.page-shell--forum .forum-salon-search-more:hover {
  background: var(--forum-peach-muted) !important;
  box-shadow: 0 8px 20px rgba(0, 0, 0, 0.08) !important;
}

/* Cartes salles */
.page-shell--forum .forum-section--salon .forum-room-card {
  display: flex;
  flex-direction: column;
  min-height: 9.25rem;
  padding: 1.15rem 1.2rem 1.2rem;
  border-radius: 22px;
  transition:
    transform 0.2s ease,
    box-shadow 0.2s ease;
}

.page-shell--forum .forum-section--salon .forum-room-card:hover {
  transform: translateY(-3px);
  box-shadow: var(--forum-shadow-lg) !important;
}

.page-shell--forum .forum-section--salon .forum-room-card__head {
  margin-bottom: 0.15rem;
}

.page-shell--forum .forum-room-card__name,
.page-shell--forum .forum-section--salon .forum-room-card__name {
  color: #101010;
  font-family: "Fraunces", Georgia, "Times New Roman", serif;
  font-weight: 700;
}

.page-shell--forum .forum-room-card__hint {
  color: #565656;
}

.page-shell--forum .forum-room-card__unread:not([hidden]) {
  color: var(--forum-peach-deep);
}

.page-shell--forum .forum-section--salon .forum-room-card__action {
  align-self: flex-start;
  margin-top: auto;
  padding: 0.48rem 1rem;
  border-radius: 999px;
  border: none !important;
  background: #101010 !important;
  color: #ffffff !important;
  letter-spacing: 0.12em;
  box-shadow: 0 6px 16px rgba(0, 0, 0, 0.14);
  transition:
    background 0.18s ease,
    box-shadow 0.18s ease,
    transform 0.18s ease;
}

.page-shell--forum .forum-section--salon .forum-room-card:hover .forum-room-card__action {
  background: var(--forum-peach) !important;
  color: #101010 !important;
  box-shadow: 0 8px 22px rgba(239, 184, 153, 0.45);
}

/* Boutons forum */
.page-shell--forum .forum-charter__accept,
.page-shell--forum .forum-salon-toolbar__save,
.page-shell--forum .forum-room__submit,
.page-shell--forum .forum-fil-btn,
.page-shell--forum .forum-fil-chatbar__send,
.page-shell--forum .forum-report-dialog__btn--primary {
  border: none !important;
  border-radius: 999px;
  background: #101010 !important;
  color: #ffffff !important;
  box-shadow: 0 8px 20px rgba(0, 0, 0, 0.14) !important;
  transition:
    background 0.18s ease,
    box-shadow 0.18s ease,
    transform 0.18s ease;
}

.page-shell--forum .forum-charter__accept:hover,
.page-shell--forum .forum-salon-toolbar__save:hover,
.page-shell--forum .forum-room__submit:hover,
.page-shell--forum .forum-fil-btn:hover,
.page-shell--forum .forum-fil-chatbar__send:hover,
.page-shell--forum .forum-report-dialog__btn--primary:hover {
  background: var(--forum-peach) !important;
  color: #101010 !important;
  box-shadow: 0 10px 24px rgba(239, 184, 153, 0.42) !important;
  transform: translateY(-1px);
}

.page-shell--forum .forum-salon-toolbar__reset,
.page-shell--forum .forum-report-dialog__btn--ghost {
  border: none !important;
  background: #f5f5f5 !important;
  color: #101010 !important;
  box-shadow: var(--forum-shadow-sm) !important;
  transition:
    background 0.18s ease,
    box-shadow 0.18s ease,
    transform 0.18s ease,
    color 0.18s ease !important;
}

.page-shell--forum .forum-salon-toolbar__reset:hover,
.page-shell--forum .forum-salon-toolbar__reset:focus-visible,
.page-shell--forum .forum-report-dialog__btn--ghost:hover,
.page-shell--forum .forum-report-dialog__btn--ghost:focus-visible {
  background: var(--forum-peach) !important;
  color: #101010 !important;
  box-shadow: 0 10px 24px rgba(239, 184, 153, 0.42) !important;
  transform: translateY(-1px);
  outline: none;
}

.page-shell--forum .forum-salon-toolbar__reset:active,
.page-shell--forum .forum-report-dialog__btn--ghost:active {
  background: var(--forum-peach-deep) !important;
  transform: translateY(0);
  box-shadow: 0 4px 10px rgba(221, 159, 123, 0.32) !important;
}

.page-shell--forum .forum-charter__remember input {
  accent-color: var(--forum-peach-deep);
}

/* Fil de discussion */
.page-shell--forum .forum-fil-breadcrumb__link {
  color: #565656;
  text-decoration: none;
}

.page-shell--forum .forum-fil-breadcrumb__link:hover {
  color: var(--forum-peach-deep);
}

.page-shell--forum .forum-fil-chat {
  border-radius: 22px;
  overflow: hidden;
}

.page-shell--forum .forum-wa-list--chat {
  background: #f5f5f5 !important;
  background-image: none !important;
}

.page-shell--forum .forum-fil-chat__composer {
  border-top: none !important;
  background: #ffffff !important;
  box-shadow: 0 -6px 20px rgba(0, 0, 0, 0.06);
  padding: 1.25rem 1.4rem !important;
}

.page-shell--forum .forum-fil-chatbar {
  align-items: center;
  gap: 0.55rem;
}

.page-shell--forum .forum-fil-chatbar__attach,
.page-shell--forum .forum-fil-chatbar__send {
  margin-bottom: 0 !important;
  align-self: center;
}

.page-shell--forum .forum-wa-daysep span {
  background: #ffffff;
  box-shadow: var(--forum-shadow-sm);
  color: #565656;
}

.page-shell--forum .forum-wa-bubble {
  border: none !important;
  box-shadow: 0 2px 10px rgba(0, 0, 0, 0.07);
}

.page-shell--forum .forum-wa-bubble--peer,
.page-shell--forum .forum-wa-bubble--peer.forum-wa-bubble--peer-t0,
.page-shell--forum .forum-wa-bubble--peer.forum-wa-bubble--peer-t1,
.page-shell--forum .forum-wa-bubble--peer.forum-wa-bubble--peer-t2,
.page-shell--forum .forum-wa-bubble--peer.forum-wa-bubble--peer-t3,
.page-shell--forum .forum-wa-bubble--peer.forum-wa-bubble--peer-t4,
.page-shell--forum .forum-wa-bubble--peer.forum-wa-bubble--peer-t5,
.page-shell--forum .forum-wa-bubble--peer.forum-wa-bubble--peer-t6,
.page-shell--forum .forum-wa-bubble--peer.forum-wa-bubble--peer-t7 {
  background: #ffffff !important;
}

.page-shell--forum .forum-wa-bubble--peer::before,
.page-shell--forum .forum-wa-bubble--peer.forum-wa-bubble--peer-t0::before,
.page-shell--forum .forum-wa-bubble--peer.forum-wa-bubble--peer-t1::before,
.page-shell--forum .forum-wa-bubble--peer.forum-wa-bubble--peer-t2::before,
.page-shell--forum .forum-wa-bubble--peer.forum-wa-bubble--peer-t3::before,
.page-shell--forum .forum-wa-bubble--peer.forum-wa-bubble--peer-t4::before,
.page-shell--forum .forum-wa-bubble--peer.forum-wa-bubble--peer-t5::before,
.page-shell--forum .forum-wa-bubble--peer.forum-wa-bubble--peer-t6::before,
.page-shell--forum .forum-wa-bubble--peer.forum-wa-bubble--peer-t7::before {
  border-right-color: #ffffff;
  filter: drop-shadow(-2px 2px 2px rgba(0, 0, 0, 0.04));
}

.page-shell--forum .forum-wa-bubble--own {
  background: var(--forum-peach-soft) !important;
}

.page-shell--forum .forum-wa-bubble--own::after {
  border-left-color: rgba(239, 184, 153, 0.55);
}

.page-shell--forum .forum-wa-name {
  color: #101010 !important;
}

.page-shell--forum .forum-wa-avatar {
  border: none !important;
  background: #ececec !important;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.08);
  color: #101010;
  font-family: "Fraunces", Georgia, "Times New Roman", serif;
  font-size: 0.95rem;
  font-weight: 600;
  letter-spacing: 0;
  line-height: 1;
  text-transform: uppercase;
  display: flex;
  align-items: center;
  justify-content: center;
  text-align: center;
}

.page-shell--forum .forum-wa-avatar--img {
  font-size: 0;
}

.page-shell--forum .forum-wa-avatar--self {
  box-shadow: 0 0 0 2px var(--forum-peach-soft);
}

.page-shell--forum .forum-wa-report {
  border: none !important;
  background: rgba(0, 0, 0, 0.05) !important;
  color: #565656 !important;
}

.page-shell--forum .forum-wa-report:hover {
  background: var(--forum-peach-muted) !important;
  color: #101010 !important;
}

.page-shell--forum .forum-wa-actions__toggle {
  border: none !important;
  background: #ffffff !important;
  color: #101010 !important;
  box-shadow: var(--forum-shadow-sm);
}

.page-shell--forum .forum-wa-actions__toggle:hover {
  background: var(--forum-peach-muted) !important;
  color: #101010 !important;
}

.page-shell--forum .forum-wa-actions__menu {
  border: none !important;
  box-shadow: var(--forum-shadow-md) !important;
}

/* Kebab actions : visibles uniquement au survol/focus pour alléger la lecture */
.page-shell--forum .forum-wa-actions {
  opacity: 0;
  transition: opacity 0.18s ease;
}

.page-shell--forum .forum-wa-row:hover .forum-wa-actions,
.page-shell--forum .forum-wa-row:focus-within .forum-wa-actions,
.page-shell--forum .forum-wa-actions:focus-within,
.page-shell--forum .forum-wa-actions:has(.forum-wa-actions__menu:not([hidden])) {
  opacity: 1;
}

@media (hover: none) {
  .page-shell--forum .forum-wa-actions {
    opacity: 1;
  }
}

.page-shell--forum .forum-wa-mention {
  background: var(--forum-peach-soft) !important;
  color: var(--forum-peach-deep) !important;
}

.page-shell--forum .forum-mention-suggest {
  border: 1px solid rgba(0, 0, 0, 0.06) !important;
  background: #ffffff !important;
  box-shadow: var(--forum-shadow-md) !important;
}

.page-shell--forum .forum-mention-suggest__item {
  color: #101010 !important;
}

.page-shell--forum .forum-mention-suggest__item:hover,
.page-shell--forum .forum-mention-suggest__item.is-active {
  background: var(--forum-peach-muted) !important;
  color: #101010 !important;
}

.page-shell--forum .forum-fil-pinned {
  border-color: rgba(239, 184, 153, 0.55);
}

.page-shell--forum .forum-fil-pinned__item {
  border: 1px solid rgba(0, 0, 0, 0.05);
  box-shadow: var(--forum-shadow-sm);
}

.page-shell--forum .forum-wa-actions__item {
  border: none !important;
  background: #f5f5f5 !important;
  color: #101010 !important;
  text-align: left !important;
  padding: 0.42rem 0.62rem !important;
  font-weight: 600;
  letter-spacing: 0;
  text-transform: none;
}

.page-shell--forum .forum-wa-actions__item:hover,
.page-shell--forum .forum-wa-actions__item:focus-visible {
  background: var(--forum-peach-muted) !important;
  outline: none;
}

.page-shell--forum .forum-wa-actions__item--danger {
  color: #8a1c1c !important;
}

.page-shell--forum .forum-wa-actions__item--danger:hover,
.page-shell--forum .forum-wa-actions__item--danger:focus-visible {
  background: rgba(16, 16, 16, 0.08) !important;
  color: #8a1c1c !important;
}

.page-shell--forum .forum-wa-actions--peer .forum-wa-actions__menu {
  right: auto;
  left: 0;
}

.page-shell--forum .forum-fil-chatbar__attach {
  border: none !important;
  background: #f0f0f0 !important;
  color: #101010 !important;
  box-shadow: var(--forum-shadow-sm);
}

.page-shell--forum .forum-fil-chatbar__attach:hover {
  background: var(--forum-peach-muted) !important;
}

.page-shell--forum .forum-fil-chatbar__input {
  border: none !important;
  background: #f5f5f5 !important;
  box-shadow: inset 0 1px 3px rgba(0, 0, 0, 0.06);
}

.page-shell--forum .forum-fil-chatbar__input:focus {
  background: #ffffff !important;
  box-shadow:
    inset 0 1px 2px rgba(0, 0, 0, 0.04),
    0 0 0 3px var(--forum-peach-soft) !important;
}

.page-shell--forum .forum-report-dialog__select,
.page-shell--forum .forum-report-dialog__textarea {
  border: none !important;
  background: #f5f5f5 !important;
  box-shadow: inset 0 1px 3px rgba(0, 0, 0, 0.06);
}

.page-shell--forum .forum-report-dialog__select:focus,
.page-shell--forum .forum-report-dialog__textarea:focus {
  outline: none;
  box-shadow:
    inset 0 1px 2px rgba(0, 0, 0, 0.04),
    0 0 0 3px var(--forum-peach-soft) !important;
}

.page-shell--forum .forum-wa-row--target .forum-wa-bubble {
  animation: forumTargetPulseBw 1.5s ease;
}

@keyframes forumTargetPulseBw {
  0% {
    box-shadow: 0 0 0 0 rgba(239, 184, 153, 0.55);
  }

  100% {
    box-shadow: 0 2px 10px rgba(0, 0, 0, 0.07), 0 0 0 3px rgba(239, 184, 153, 0.35);
  }
}

.page-shell--forum a:focus-visible,
.page-shell--forum button:focus-visible,
.page-shell--forum input:not([type="checkbox"]):focus-visible,
.page-shell--forum textarea:focus-visible,
.page-shell--forum select:focus-visible {
  outline: none;
  box-shadow: 0 0 0 3px var(--forum-peach-soft) !important;
}

.page-shell--forum input[type="checkbox"]:focus-visible {
  outline: 2px solid var(--forum-peach-deep);
  outline-offset: 2px;
}

.page-shell--forum .forum-room-card:focus-visible {
  outline: none;
  box-shadow: var(--forum-shadow-lg), 0 0 0 3px var(--forum-peach-soft) !important;
}

/* ===== Admin Signalements (forum) — DA noir / blanc, sobre & lisible ===== */
.subject-body:has(#admin-app[data-admin-page="signalements"]) {
  background: #ffffff;
  color: #101010;
}

#admin-app[data-admin-page="signalements"] {
  --sig-ink: #101010;
  --sig-ink-soft: #2a2a2a;
  --sig-muted: #565656;
  --sig-line: rgba(0, 0, 0, 0.14);
  --sig-line-strong: rgba(0, 0, 0, 0.32);
  --sig-surface: #ffffff;
  --sig-surface-alt: #fafafa;
  --sig-surface-soft: #f4f4f4;
  background: #ffffff !important;
  border: 1px solid var(--sig-line) !important;
  box-shadow: none !important;
  color: var(--sig-ink) !important;
}

#admin-app[data-admin-page="signalements"] .page-shell__title {
  color: var(--sig-ink) !important;
}

#admin-app[data-admin-page="signalements"] .page-shell__title::after {
  background: var(--sig-ink) !important;
}

#admin-app[data-admin-page="signalements"] .page-shell__lead {
  color: var(--sig-muted) !important;
}

#admin-app[data-admin-page="signalements"] .page-shell__lead a,
#admin-app[data-admin-page="signalements"] .admin-section__hint a {
  color: var(--sig-ink) !important;
  text-decoration: underline;
  text-underline-offset: 0.18em;
}

#admin-app[data-admin-page="signalements"] .admin-section {
  border-top: 1px solid var(--sig-line) !important;
}

#admin-app[data-admin-page="signalements"] .admin-section__title {
  color: var(--sig-ink) !important;
  font-weight: 800;
  letter-spacing: -0.01em;
}

#admin-app[data-admin-page="signalements"] .admin-section__hint {
  color: var(--sig-muted) !important;
}

/* Sous-navigation administration */
#admin-app[data-admin-page="signalements"] .admin-subnav {
  background: var(--sig-surface) !important;
  border: 1px solid var(--sig-line) !important;
  box-shadow: none !important;
}

#admin-app[data-admin-page="signalements"] .admin-subnav__link {
  color: var(--sig-ink) !important;
  border-bottom-color: transparent !important;
}

#admin-app[data-admin-page="signalements"] .admin-subnav__link:hover {
  color: var(--sig-ink) !important;
  opacity: 0.7;
}

#admin-app[data-admin-page="signalements"] .admin-subnav__link--current,
#admin-app[data-admin-page="signalements"] .admin-subnav__link[aria-current="page"] {
  color: var(--sig-ink) !important;
  border-bottom-color: var(--sig-ink) !important;
}

/* Connexion admin */
#admin-app[data-admin-page="signalements"] .admin-login-label {
  color: var(--sig-ink) !important;
}

#admin-app[data-admin-page="signalements"] .admin-login-input {
  background: #fff !important;
  border: 1px solid var(--sig-line-strong) !important;
  color: var(--sig-ink) !important;
  border-radius: 10px !important;
}

#admin-app[data-admin-page="signalements"] .admin-login-input:focus {
  outline: none !important;
  border-color: var(--sig-ink) !important;
  box-shadow: 0 0 0 3px rgba(0, 0, 0, 0.08) !important;
}

#admin-app[data-admin-page="signalements"] .admin-login-error {
  color: var(--sig-ink) !important;
  font-weight: 700;
}

/* Boutons primaires (juris-submit) — passage en noir uni */
#admin-app[data-admin-page="signalements"] .juris-submit {
  background: var(--sig-ink) !important;
  color: #ffffff !important;
  border: 1px solid var(--sig-ink) !important;
  box-shadow: none !important;
  border-radius: 999px;
  letter-spacing: 0.1em;
}

#admin-app[data-admin-page="signalements"] .juris-submit:hover,
#admin-app[data-admin-page="signalements"] .juris-submit:focus-visible {
  background: var(--sig-ink-soft) !important;
  border-color: var(--sig-ink-soft) !important;
  color: #ffffff !important;
  filter: none !important;
  transform: none !important;
}

/* Cartes signalement / mentions */
#admin-app[data-admin-page="signalements"] .admin-report-card {
  background: var(--sig-surface) !important;
  border: 1px solid var(--sig-line) !important;
  border-radius: 12px;
  box-shadow: none !important;
}

#admin-app[data-admin-page="signalements"] .admin-report-card--closed {
  background: var(--sig-surface-alt) !important;
  opacity: 1;
}

#admin-app[data-admin-page="signalements"] .admin-report-card__title {
  color: var(--sig-ink) !important;
  font-weight: 700;
}

#admin-app[data-admin-page="signalements"] .admin-report-card__time {
  color: var(--sig-muted) !important;
}

#admin-app[data-admin-page="signalements"] .admin-report-card__reason,
#admin-app[data-admin-page="signalements"] .admin-report-card__meta,
#admin-app[data-admin-page="signalements"] .admin-report-card__strike,
#admin-app[data-admin-page="signalements"] .admin-report-card__status {
  color: var(--sig-ink) !important;
}

#admin-app[data-admin-page="signalements"] .admin-report-card__detail {
  color: var(--sig-muted) !important;
}

#admin-app[data-admin-page="signalements"] .admin-report-card__snippet {
  background: var(--sig-surface-soft) !important;
  color: var(--sig-ink) !important;
  border-left: 3px solid var(--sig-ink) !important;
  border-radius: 0 8px 8px 0;
}

#admin-app[data-admin-page="signalements"] .admin-report-card__mod-ta {
  background: #fff !important;
  border: 1px solid var(--sig-line-strong) !important;
  color: var(--sig-ink) !important;
  border-radius: 10px !important;
}

#admin-app[data-admin-page="signalements"] .admin-report-card__mod-ta:focus {
  outline: none !important;
  border-color: var(--sig-ink) !important;
  box-shadow: 0 0 0 3px rgba(0, 0, 0, 0.08) !important;
}

#admin-app[data-admin-page="signalements"] .admin-report-card__snap {
  background: var(--sig-surface-alt) !important;
  border: 1px solid var(--sig-line) !important;
  color: var(--sig-ink) !important;
}

#admin-app[data-admin-page="signalements"] .admin-report-card__snap summary {
  color: var(--sig-ink) !important;
}

#admin-app[data-admin-page="signalements"] .admin-reports-list--nested {
  border-left: 2px solid var(--sig-line) !important;
}

#admin-app[data-admin-page="signalements"] .admin-report-history summary {
  color: var(--sig-ink) !important;
}

/* Boutons d’action des cartes */
#admin-app[data-admin-page="signalements"] .admin-report-card__btn {
  background: var(--sig-ink) !important;
  color: #ffffff !important;
  border: 1px solid var(--sig-ink) !important;
  border-radius: 999px;
  font-weight: 600;
  letter-spacing: 0.02em;
  text-transform: none;
  box-shadow: none !important;
}

#admin-app[data-admin-page="signalements"] .admin-report-card__btn:hover,
#admin-app[data-admin-page="signalements"] .admin-report-card__btn:focus-visible {
  background: var(--sig-ink-soft) !important;
  border-color: var(--sig-ink-soft) !important;
  color: #ffffff !important;
  opacity: 1;
}

#admin-app[data-admin-page="signalements"] .admin-report-card__btn--ghost {
  background: #ffffff !important;
  color: var(--sig-ink) !important;
  border: 1px solid var(--sig-line-strong) !important;
}

#admin-app[data-admin-page="signalements"] .admin-report-card__btn--ghost:hover,
#admin-app[data-admin-page="signalements"] .admin-report-card__btn--ghost:focus-visible {
  background: var(--sig-surface-soft) !important;
  border-color: var(--sig-ink) !important;
  color: var(--sig-ink) !important;
}

#admin-app[data-admin-page="signalements"] .admin-report-card__btn--danger {
  background: #ffffff !important;
  color: var(--sig-ink) !important;
  border: 1px solid var(--sig-ink) !important;
}

#admin-app[data-admin-page="signalements"] .admin-report-card__btn--danger:hover,
#admin-app[data-admin-page="signalements"] .admin-report-card__btn--danger:focus-visible {
  background: var(--sig-ink) !important;
  color: #ffffff !important;
}

#admin-app[data-admin-page="signalements"] .admin-report-card__btn:disabled,
#admin-app[data-admin-page="signalements"] .admin-report-card__btn--danger:disabled {
  opacity: 0.4;
  cursor: not-allowed;
}

/* État vide */
#admin-app[data-admin-page="signalements"] .admin-list-empty {
  background: var(--sig-surface-alt) !important;
  border: 1px dashed var(--sig-line-strong) !important;
  color: var(--sig-muted) !important;
}

#admin-app[data-admin-page="signalements"] .admin-list-empty__link-out {
  color: var(--sig-ink) !important;
}

/* Vue d’ensemble des discussions forum */
#admin-app[data-admin-page="signalements"] .admin-forum-overview__controls {
  display: flex;
  flex-wrap: wrap;
  gap: 0.55rem;
  margin: 0.85rem 0 1rem;
}

#admin-app[data-admin-page="signalements"] .admin-forum-overview__controls .forum-room__input {
  flex: 1 1 12rem;
  min-width: 10rem;
  padding: 0.5rem 0.7rem;
  font-family: var(--font-ui);
  font-size: 0.9rem;
  color: var(--sig-ink);
  background: #ffffff !important;
  border: 1px solid var(--sig-line-strong) !important;
  border-radius: 10px !important;
  box-shadow: none !important;
}

#admin-app[data-admin-page="signalements"] .admin-forum-overview__controls .forum-room__input:focus {
  outline: none !important;
  border-color: var(--sig-ink) !important;
  box-shadow: 0 0 0 3px rgba(0, 0, 0, 0.08) !important;
}

#admin-app[data-admin-page="signalements"] .admin-forum-overview__rooms {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(13rem, 1fr));
  gap: 0.65rem;
  margin-top: 0.25rem;
}

#admin-app[data-admin-page="signalements"] .admin-forum-overview__room-card,
#admin-app[data-admin-page="signalements"] button.admin-forum-overview__room-card {
  display: flex;
  flex-direction: column;
  gap: 0.45rem;
  padding: 0.85rem 0.95rem !important;
  text-align: left;
  cursor: pointer;
  background: #ffffff !important;
  background-image: none !important;
  border: 1px solid var(--sig-line) !important;
  border-radius: 12px !important;
  box-shadow: none !important;
  color: var(--sig-ink) !important;
  font-family: var(--font-ui) !important;
  font-weight: 500 !important;
  letter-spacing: normal !important;
  text-transform: none !important;
  min-height: 0 !important;
  transition: border-color 0.15s ease, background 0.15s ease;
}

#admin-app[data-admin-page="signalements"] .admin-forum-overview__room-card::before,
#admin-app[data-admin-page="signalements"] .admin-forum-overview__room-card::after {
  content: none !important;
  display: none !important;
}

#admin-app[data-admin-page="signalements"] .admin-forum-overview__room-card:hover,
#admin-app[data-admin-page="signalements"] .admin-forum-overview__room-card:focus-visible {
  background: var(--sig-surface-soft) !important;
  border-color: var(--sig-ink) !important;
  transform: none !important;
  box-shadow: none !important;
  outline: none !important;
}

#admin-app[data-admin-page="signalements"] .admin-forum-overview__room-card .forum-room-card__head {
  margin: 0 !important;
}

#admin-app[data-admin-page="signalements"] .admin-forum-overview__room-card .forum-room-card__name {
  color: var(--sig-ink) !important;
  font-family: var(--font-ui) !important;
  font-weight: 700 !important;
  font-size: 0.98rem !important;
  letter-spacing: -0.005em !important;
}

#admin-app[data-admin-page="signalements"] .admin-forum-overview__room-card .forum-room-card__hint {
  color: var(--sig-muted) !important;
  font-size: 0.82rem !important;
  font-weight: 500 !important;
}

#admin-app[data-admin-page="signalements"] .admin-forum-overview__room-card .forum-room-card__action {
  color: var(--sig-ink) !important;
  font-size: 0.7rem !important;
  font-weight: 700 !important;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  border-bottom: 1px solid var(--sig-ink);
  align-self: flex-start;
  padding-bottom: 1px;
}

/* Bandeau d’ancrage signalements */
#admin-app[data-admin-page="signalements"] .admin-signalements-jump {
  background: var(--sig-surface-alt) !important;
  border: 1px solid var(--sig-line) !important;
  color: var(--sig-ink) !important;
}

#admin-app[data-admin-page="signalements"] .admin-signalements-jump a {
  color: var(--sig-ink) !important;
  text-decoration: underline;
  text-underline-offset: 0.18em;
}

/* Liens et focus global sobres */
#admin-app[data-admin-page="signalements"] a {
  color: var(--sig-ink) !important;
}

#admin-app[data-admin-page="signalements"] a:hover,
#admin-app[data-admin-page="signalements"] a:focus-visible {
  color: var(--sig-ink) !important;
  opacity: 0.72;
}

#admin-app[data-admin-page="signalements"] *:focus-visible {
  outline: 2px solid rgba(0, 0, 0, 0.6) !important;
  outline-offset: 2px;
}

/* =====================================================================
   Veille juridique — pass DA finale (blanc / noir / touches pêche)
   Aligne l'onglet sur la DA globale : surfaces blanches, texte noir,
   accents pêche (#efb899) ponctuels. Neutralise les surcouches beige /
   bordeaux / dégradés héritées des itérations précédentes.
   ===================================================================== */
:root {
  --veille-ink: #101010;
  --veille-ink-soft: #2c2c2c;
  --veille-muted: #6b6b6b;
  --veille-muted-strong: #4a4a4a;
  --veille-line: rgba(16, 16, 16, 0.1);
  --veille-line-strong: rgba(16, 16, 16, 0.22);
  --veille-peach: var(--cherry);
  --veille-peach-deep: var(--cherry-dark);
  --veille-peach-wash: var(--cherry-wash);
  --veille-peach-wash-strong: var(--cherry-wash-strong);
  --veille-shadow-card: 0 1px 2px rgba(16, 16, 16, 0.04);
  --veille-shadow-card-hover: 0 8px 22px rgba(16, 16, 16, 0.07);
  --veille-shadow-dialog: 0 24px 60px rgba(16, 16, 16, 0.22);
}

/* --- Cadre de page : surface blanche, sans gradient hérité --- */
body.subject-body:has(.page-shell--veille),
body.subject-body:has(.page-shell--veille-article) {
  background: #fff !important;
  background-image: none !important;
}

.page-shell--veille,
.page-shell--veille-article {
  width: min(880px, 94%) !important;
  margin: 2.75rem auto 4rem !important;
  padding: 3rem 2.75rem 3.25rem !important;
  background: #fff !important;
  background-image: none !important;
  border: 1px solid var(--veille-line) !important;
  border-radius: 22px !important;
  box-shadow: 0 1px 2px rgba(16, 16, 16, 0.03), 0 14px 40px rgba(16, 16, 16, 0.05) !important;
  color: var(--veille-ink) !important;
}

.page-shell--veille .documents-section,
.page-shell--veille-article .documents-section {
  max-width: 100% !important;
  margin: 1.25rem 0 0 !important;
}

/* --- En-tête : titre centré, actions sous le titre --- */
.page-shell--veille .veille-page-head,
.page-shell--veille-article .veille-page-head {
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  gap: 1.75rem;
  margin-bottom: 0.4rem;
}

.page-shell--veille .veille-page-head__actions {
  display: inline-flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 0.55rem;
}

.page-shell--veille .page-shell__title,
.page-shell--veille-article .page-shell__title {
  margin: 0 0 0.25rem !important;
  font-family: var(--font-editorial) !important;
  font-size: clamp(1.85rem, 4vw, 2.4rem) !important;
  font-weight: 700 !important;
  letter-spacing: -0.02em !important;
  line-height: 1.1 !important;
  color: var(--veille-ink) !important;
}

.page-shell--veille .page-shell__title::after,
.page-shell--veille-article .page-shell__title::after {
  content: "";
  display: block;
  width: 2.4rem;
  height: 3px;
  margin-top: 0.65rem;
  border-radius: 999px;
  background: var(--veille-peach) !important;
}

/* Titre logo « Veille Juridique » sous forme d'image (lettrage cursive + serif).
   Taille pilotée par la HAUTEUR pour rester strictement alignée avec
   « Espace échange » et « Juris partage ». */
.page-shell--veille .page-shell__title--image {
  display: flex !important;
  align-items: center;
  justify-content: center;
  margin: 0 auto 1.5rem !important;
  padding: 0 !important;
  background: none !important;
  border: none !important;
  line-height: 1 !important;
  letter-spacing: 0 !important;
  font-size: 0 !important;
  width: 100%;
  max-width: 100%;
}

.page-shell--veille .page-shell__title--image::before,
.page-shell--veille .page-shell__title--image::after {
  display: none !important;
  content: none !important;
}

.page-shell--veille .page-shell__title-image {
  display: block;
  width: auto;
  height: clamp(6.5rem, 13vw, 11rem);
  max-width: 100%;
  margin: 0 auto;
}

@media (max-width: 540px) {
  .page-shell--veille .page-shell__title--image {
    margin-bottom: 1.25rem !important;
  }
  .page-shell--veille .page-shell__title-image {
    height: clamp(5rem, 16vw, 7.5rem);
  }
}

/* Titre logo "Natural Pleasure" : « Veille » en cursive script,
   « Juridique » en sans-serif extra-bold, légèrement empilés. */
.page-shell--veille .page-shell__title--script-stack {
  display: inline-flex !important;
  flex-direction: column;
  align-items: center;
  margin: 0 auto !important;
  padding: 0 !important;
  line-height: 1 !important;
  letter-spacing: 0 !important;
  gap: 0;
}

.page-shell--veille .page-shell__title--script-stack::after {
  display: none !important;
}

.page-shell--veille .page-shell__title-script {
  display: block;
  font-family: "Great Vibes", "Brush Script MT", cursive !important;
  font-style: normal !important;
  font-weight: 400 !important;
  font-size: clamp(3.6rem, 10vw, 5.6rem) !important;
  line-height: 1 !important;
  letter-spacing: 0 !important;
  color: var(--veille-ink) !important;
  margin: 0;
  padding: 0 0.4em 0 0;
  position: relative;
  z-index: 2;
  align-self: center;
  transform: translateX(-0.2em);
}

.page-shell--veille .page-shell__title-thick {
  display: block;
  font-family: "Manrope", "Archivo Narrow", system-ui, sans-serif !important;
  font-style: normal !important;
  font-weight: 900 !important;
  font-size: clamp(2.4rem, 6.5vw, 3.8rem) !important;
  line-height: 0.92 !important;
  letter-spacing: -0.03em !important;
  text-transform: none;
  color: var(--veille-ink) !important;
  margin: -0.42em 0 0;
  padding: 0;
  position: relative;
  z-index: 1;
}

.page-shell--veille .page-shell__lead {
  text-align: center !important;
  margin-left: auto !important;
  margin-right: auto !important;
}

@media (max-width: 540px) {
  .page-shell--veille .page-shell__title-script {
    font-size: clamp(3rem, 14vw, 4rem) !important;
    transform: translateX(-0.15em);
  }
  .page-shell--veille .page-shell__title-thick {
    font-size: clamp(2rem, 9vw, 2.8rem) !important;
    margin-top: -0.38em;
  }
}

.page-shell--veille .page-shell__lead,
.page-shell--veille-article .page-shell__lead {
  margin: 0.55rem 0 1.35rem !important;
  font-family: var(--font-ui) !important;
  font-size: 0.96rem !important;
  font-weight: 500 !important;
  line-height: 1.55 !important;
  color: var(--veille-muted-strong) !important;
  max-width: 44rem;
}

/* --- Boutons d'action en-tête (CTA + ghost) --- */
.page-shell--veille .veille-propose-btn,
.veille-proposal-dialog .veille-propose-btn {
  margin: 0 !important;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 2.35rem;
  padding: 0.55rem 1.05rem !important;
  font-family: var(--font-ui) !important;
  font-size: 0.7rem !important;
  font-weight: 700 !important;
  letter-spacing: 0.12em !important;
  text-transform: uppercase;
  color: #fff !important;
  background: var(--veille-ink) !important;
  background-image: none !important;
  border: 1px solid var(--veille-ink) !important;
  border-radius: 999px !important;
  box-shadow: none !important;
  cursor: pointer;
  transition: background 0.18s ease, border-color 0.18s ease, color 0.18s ease;
}

.page-shell--veille .veille-propose-btn:hover,
.page-shell--veille .veille-propose-btn:focus-visible {
  background: var(--veille-peach) !important;
  border-color: var(--veille-peach) !important;
  color: var(--veille-ink) !important;
}

.page-shell--veille .veille-propose-btn--ghost {
  color: var(--veille-ink) !important;
  background: #fff !important;
  background-image: none !important;
  border: 1px solid var(--veille-line-strong) !important;
}

.page-shell--veille .veille-propose-btn--ghost:hover,
.page-shell--veille .veille-propose-btn--ghost:focus-visible {
  background: var(--veille-peach-wash) !important;
  border-color: var(--veille-peach) !important;
  color: var(--veille-ink) !important;
}

.page-shell--veille .veille-propose-btn--ghost.is-active {
  background: var(--veille-ink) !important;
  border-color: var(--veille-ink) !important;
  color: #fff !important;
}

/* --- Bandeau filtre + onglets matières --- */
.page-shell--veille .veille-filter-strip {
  margin: 0.65rem 0 0.35rem !important;
  padding: 0 !important;
  background: transparent !important;
  background-image: none !important;
  border: none !important;
  border-radius: 0 !important;
  box-shadow: none !important;
}

.page-shell--veille .veille-filter-strip__label {
  margin: 0 0 0.55rem !important;
  font-family: var(--font-ui) !important;
  font-size: 0.66rem !important;
  font-weight: 700 !important;
  letter-spacing: 0.16em !important;
  text-transform: uppercase;
  color: var(--veille-muted) !important;
}

.page-shell--veille .veille-tabs {
  display: flex;
  flex-wrap: nowrap;
  gap: 0;
  margin: 0 -0.2rem 1rem !important;
  padding: 0 0.2rem 0 !important;
  border: none !important;
  border-bottom: 1px solid var(--veille-line) !important;
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
  scrollbar-width: none;
}

.page-shell--veille .veille-tabs::-webkit-scrollbar {
  display: none;
}

.page-shell--veille .veille-tab {
  flex: 0 0 auto;
  margin: 0;
  padding: 0.55rem 0.85rem 0.7rem !important;
  font-family: var(--font-ui) !important;
  font-size: 0.82rem !important;
  font-weight: 600 !important;
  letter-spacing: 0.005em !important;
  color: var(--veille-muted) !important;
  background: transparent !important;
  background-image: none !important;
  border: none !important;
  border-bottom: 2px solid transparent !important;
  border-radius: 0 !important;
  box-shadow: none !important;
  cursor: pointer;
  white-space: nowrap;
  text-transform: none;
  transition: color 0.18s ease, border-color 0.18s ease;
}

.page-shell--veille .veille-tab:hover,
.page-shell--veille .veille-tab:focus-visible {
  color: var(--veille-ink) !important;
  background: transparent !important;
  border-bottom-color: var(--veille-peach-wash-strong) !important;
}

.page-shell--veille .veille-tab--current,
.page-shell--veille .veille-tab[aria-pressed="true"] {
  color: var(--veille-ink) !important;
  font-weight: 800 !important;
  background: transparent !important;
  border-bottom-color: var(--veille-peach) !important;
}

/* --- Intro de section --- */
.page-shell--veille .documents-section__intro {
  margin: 0.25rem 0 0.85rem !important;
  font-family: var(--font-ui) !important;
  font-size: 0.7rem !important;
  font-weight: 700 !important;
  letter-spacing: 0.16em !important;
  text-transform: uppercase;
  color: var(--veille-muted) !important;
}

/* --- Fil d'articles : pas de container, juste des cartes blanches --- */
.page-shell--veille .documents-list--veille-feed {
  margin: 0 !important;
  padding: 0 !important;
  list-style: none;
  display: flex;
  flex-direction: column;
  gap: 0.7rem !important;
  background: transparent !important;
  background-image: none !important;
  border: none !important;
  border-radius: 0 !important;
  box-shadow: none !important;
}

.page-shell--veille .document-card--veille-feed {
  padding: 1.05rem 1.2rem 1rem !important;
  background: #fff !important;
  background-image: none !important;
  border: 1px solid var(--veille-line) !important;
  border-radius: 6px !important;
  box-shadow: var(--veille-shadow-card) !important;
  display: flex;
  flex-direction: column;
  gap: 0.85rem;
  transition: border-color 0.18s ease, box-shadow 0.18s ease, transform 0.18s ease;
}

.page-shell--veille .document-card--veille-feed:hover {
  border-color: var(--veille-peach) !important;
  box-shadow: var(--veille-shadow-card-hover) !important;
  transform: translateY(-1px);
}

/* --- Carte hero (inspirée du bloc « Article à la une ») --- */
.document-card--veille-hero {
  display: flex;
  flex-direction: column;
  gap: 0.85rem;
}

.document-card--veille-hero .document-card__topline {
  display: flex;
  flex-wrap: nowrap;
  align-items: stretch;
  gap: 0;
  margin: 0;
  border-top: 2px solid var(--veille-ink);
  border-bottom: 2px solid var(--veille-ink);
}

.document-card--veille-hero .document-card__topline-cell {
  margin: 0;
  flex: 1 1 0;
  min-width: 0;
  padding: 0.45rem 0.6rem;
  text-align: center;
  font-family: "Fraunces", Georgia, "Times New Roman", serif;
  font-size: 0.7rem;
  font-weight: 600;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--veille-ink);
  border-left: 1px solid rgba(16, 16, 16, 0.45);
  line-height: 1.25;
}

.document-card--veille-hero .document-card__topline-cell--kicker {
  border-left: none;
}

/* Bloc de corps cliquable : titre + référence + extrait */
.document-card--veille-hero .document-card__body {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 0.55rem;
  color: inherit;
  text-decoration: none;
  max-width: 100%;
}

.document-card--veille-hero a.document-card__body {
  cursor: pointer;
  transition: opacity 0.18s ease;
}

.document-card--veille-hero a.document-card__body:hover,
.document-card--veille-hero a.document-card__body:focus-visible {
  text-decoration: none;
  opacity: 0.92;
}

.document-card--veille-hero a.document-card__body:focus-visible {
  outline: 2px solid var(--veille-peach);
  outline-offset: 4px;
}

.document-card--veille-hero .document-card__hero-title {
  margin: 0;
  font-family: "Fraunces", Georgia, "Times New Roman", serif;
  font-size: clamp(1.35rem, 2.8vw, 2.1rem);
  font-weight: 550;
  line-height: 1.08;
  letter-spacing: -0.012em;
  color: var(--veille-ink);
  text-transform: uppercase;
  text-align: justify;
  text-align-last: left;
  hyphens: manual;
  -webkit-hyphens: manual;
  transition: color 0.18s ease;
}

.document-card--veille-hero a.document-card__body:hover .document-card__hero-title,
.document-card--veille-hero a.document-card__body:focus-visible .document-card__hero-title {
  color: var(--veille-peach-deep);
}

.document-card--veille-hero .document-card__decision {
  margin: 0;
  font-family: var(--font-ui);
  font-size: 0.78rem;
  font-weight: 600;
  line-height: 1.4;
  letter-spacing: 0.02em;
  text-transform: uppercase;
  color: var(--veille-muted-strong);
}

.document-card--veille-hero .document-card__excerpt {
  margin: 0;
  max-width: 44rem;
  font-family: "Fraunces", Georgia, "Times New Roman", serif;
  font-size: 0.98rem;
  line-height: 1.55;
  color: var(--veille-ink-soft);
  text-align: justify;
  text-align-last: left;
  hyphens: manual;
  -webkit-hyphens: manual;
}

/* Le sélecteur scopé à la page veille garde la priorité sur l'override couleur de .document-card__decision */
.page-shell--veille .document-card--veille-hero .document-card__decision {
  color: var(--veille-muted-strong) !important;
  font-size: 0.78rem !important;
  font-weight: 600 !important;
  text-transform: uppercase;
  letter-spacing: 0.02em;
}

.page-shell--veille .document-card--veille-feed .document-card__row {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: 0.45rem;
  align-items: start;
}

.page-shell--veille .document-card--veille-feed .document-card__title-row {
  display: flex;
  align-items: flex-start;
  gap: 0.4rem;
  min-width: 0;
}

.page-shell--veille .document-card--veille-feed .document-card__title-link {
  flex: 1 1 auto;
  min-width: 0;
  font-family: var(--font-editorial) !important;
  font-size: 1.04rem !important;
  font-weight: 650 !important;
  line-height: 1.3 !important;
  letter-spacing: -0.005em !important;
  color: var(--veille-ink) !important;
  text-decoration: none;
  transition: color 0.18s ease;
}

.page-shell--veille .document-card--veille-feed .document-card__title-link:hover {
  color: var(--veille-peach-deep) !important;
  text-decoration: none;
}

.page-shell--veille .document-card--veille-feed .document-card__category {
  font-family: var(--font-ui) !important;
  font-size: 0.66rem !important;
  font-weight: 800 !important;
  letter-spacing: 0.14em !important;
  text-transform: uppercase;
  color: var(--veille-peach-deep) !important;
}

.page-shell--veille .document-card--veille-feed .document-card__title-text {
  font-family: var(--font-editorial) !important;
  font-weight: 650 !important;
  color: var(--veille-ink) !important;
}

.page-shell--veille .document-card--veille-feed .document-card__decision {
  margin: 0.3rem 0 0 !important;
  font-family: var(--font-ui) !important;
  font-size: 0.82rem !important;
  font-weight: 500 !important;
  line-height: 1.4 !important;
  color: var(--veille-muted-strong) !important;
}

.page-shell--veille .document-card--veille-feed .document-card__meta-row {
  margin-top: 0.15rem !important;
  padding-top: 0.7rem !important;
  border-top: 1px solid var(--veille-line) !important;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.55rem;
}

.page-shell--veille .document-card--veille-feed .document-card__date-line {
  margin: 0;
  font-family: "Fraunces", Georgia, "Times New Roman", serif;
  font-style: italic;
  font-size: 0.78rem;
  font-weight: 500;
  letter-spacing: 0.005em;
  color: var(--veille-muted) !important;
}

.page-shell--veille .document-card--veille-feed .document-card__meta-actions {
  display: flex;
  align-items: center;
  gap: 0.4rem;
  flex-shrink: 0;
}

/* --- Petits boutons d'action (like, save, comments, report) — DA sobre, type pied de journal --- */
.page-shell--veille .document-card--veille-hero .document-card__meta-actions {
  display: flex;
  align-items: center;
  gap: 0;
}

.page-shell--veille .document-card--veille-hero .document-card__like,
.page-shell--veille .document-card--veille-hero .document-card__save,
.page-shell--veille .document-card--veille-hero .document-card__comments,
.page-shell--veille .document-card--veille-hero .document-card__report {
  position: relative;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.32rem;
  min-height: 1.6rem;
  padding: 0.22rem 0.75rem !important;
  font-family: var(--font-ui) !important;
  font-size: 0.74rem !important;
  font-weight: 600 !important;
  letter-spacing: 0.005em !important;
  text-transform: none !important;
  line-height: 1;
  color: var(--veille-muted-strong) !important;
  background: transparent !important;
  background-image: none !important;
  border: none !important;
  border-radius: 0 !important;
  box-shadow: none !important;
  text-decoration: none;
  cursor: pointer;
  transition: color 0.18s ease;
}

.page-shell--veille .document-card--veille-hero .document-card__meta-actions > * + *::before {
  content: "";
  position: absolute;
  left: 0;
  top: 28%;
  bottom: 28%;
  width: 1px;
  background: var(--veille-line-strong);
}

.page-shell--veille .document-card--veille-hero .document-card__like:hover,
.page-shell--veille .document-card--veille-hero .document-card__save:hover,
.page-shell--veille .document-card--veille-hero .document-card__comments:hover,
.page-shell--veille .document-card--veille-hero .document-card__report:hover,
.page-shell--veille .document-card--veille-hero .document-card__like:focus-visible,
.page-shell--veille .document-card--veille-hero .document-card__save:focus-visible,
.page-shell--veille .document-card--veille-hero .document-card__comments:focus-visible,
.page-shell--veille .document-card--veille-hero .document-card__report:focus-visible {
  color: var(--veille-ink) !important;
  background: transparent !important;
  text-decoration: underline;
  text-underline-offset: 0.28em;
  text-decoration-thickness: 1px;
}

.page-shell--veille .document-card--veille-hero .document-card__like--on,
.page-shell--veille .document-card--veille-hero .document-card__save--on {
  color: var(--veille-peach-deep) !important;
  background: transparent !important;
}

.page-shell--veille .document-card--veille-hero .document-card__like-icon,
.page-shell--veille .document-card--veille-hero .document-card__save-icon,
.page-shell--veille .document-card--veille-hero .document-card__comments-icon {
  font-size: 0.92rem;
  line-height: 1;
}

.page-shell--veille .document-card__remove--inline {
  padding: 0.28rem 0.6rem !important;
  font-family: var(--font-ui) !important;
  font-size: 0.66rem !important;
  font-weight: 700 !important;
  letter-spacing: 0.08em !important;
  text-transform: uppercase;
  color: var(--veille-muted) !important;
  background: transparent !important;
  border: none !important;
  border-radius: 999px !important;
  text-decoration: underline;
  text-underline-offset: 0.2em;
  text-decoration-thickness: 1px;
  cursor: pointer;
  transition: color 0.18s ease;
}

.page-shell--veille .document-card__remove--inline:hover {
  color: var(--veille-peach-deep) !important;
  text-decoration: underline;
}

/* --- Carte compacte (articles secondaires, look magazine éditorial) --- */
.page-shell--veille .document-card--veille-compact {
  padding: 1.1rem 0.4rem 0.95rem !important;
  background: transparent !important;
  background-image: none !important;
  border: none !important;
  border-radius: 0 !important;
  box-shadow: none !important;
  gap: 0.65rem;
  align-items: stretch;
  text-align: center;
  transition: none !important;
  transform: none !important;
}

.page-shell--veille .document-card--veille-compact:hover {
  border: none !important;
  box-shadow: none !important;
  transform: none !important;
}

.document-card--veille-compact .document-card__compact-kicker-line {
  margin: 0;
  display: flex;
  align-items: center;
  gap: 0.85rem;
  font-family: var(--font-ui);
  font-size: 0.7rem;
  font-weight: 700;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: var(--veille-ink);
  line-height: 1.25;
}

.document-card--veille-compact .document-card__compact-kicker-line::before,
.document-card--veille-compact .document-card__compact-kicker-line::after {
  content: "";
  flex: 1 1 0;
  height: 1px;
  background: var(--veille-ink);
  opacity: 0.85;
}

.document-card--veille-compact .document-card__compact-kicker {
  color: var(--veille-ink);
  white-space: nowrap;
}

.document-card--veille-compact .document-card__compact-kicker-sep {
  color: var(--veille-muted);
  font-weight: 500;
  margin: 0 0.05rem;
}

.document-card--veille-compact .document-card__compact-kicker-date {
  color: var(--veille-muted);
  font-weight: 600;
  letter-spacing: 0.18em;
  white-space: nowrap;
}

.document-card--veille-compact .document-card__compact-body {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0.45rem;
  color: inherit;
  text-decoration: none;
  max-width: 100%;
  padding: 0.2rem 0.4rem;
}

.document-card--veille-compact a.document-card__compact-body {
  cursor: pointer;
  transition: color 0.18s ease;
}

.document-card--veille-compact a.document-card__compact-body:hover .document-card__compact-title,
.document-card--veille-compact a.document-card__compact-body:focus-visible .document-card__compact-title {
  color: var(--veille-peach-deep);
}

.document-card--veille-compact a.document-card__compact-body:focus-visible {
  outline: 2px solid var(--veille-peach);
  outline-offset: 6px;
}

.document-card--veille-compact .document-card__compact-title {
  margin: 0;
  font-family: "Fraunces", Georgia, "Times New Roman", serif;
  font-size: clamp(1.45rem, 3vw, 2rem);
  font-weight: 700;
  line-height: 1.1;
  letter-spacing: -0.01em;
  color: var(--veille-ink);
  text-align: center;
  max-width: 38rem;
  transition: color 0.18s ease;
}

.document-card--veille-compact .document-card__compact-decision {
  margin: 0;
  font-family: var(--font-ui);
  font-size: 0.72rem;
  font-weight: 600;
  line-height: 1.4;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--veille-muted-strong);
  text-align: center;
  max-width: 38rem;
}

.document-card--veille-compact .document-card__compact-foot {
  margin-top: 0.35rem;
  padding-top: 0.6rem;
  border-top: 1px solid var(--veille-line-strong);
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.6rem;
  flex-wrap: wrap;
}

.document-card--veille-compact .document-card__compact-byline {
  margin: 0;
  font-family: "Fraunces", Georgia, "Times New Roman", serif;
  font-style: italic;
  font-size: 0.78rem;
  font-weight: 500;
  letter-spacing: 0.005em;
  color: var(--veille-muted);
  text-align: left;
}

.document-card--veille-compact .document-card__compact-actions {
  display: flex;
  align-items: center;
  gap: 0.15rem;
  flex-shrink: 0;
  flex-wrap: wrap;
}

.page-shell--veille .document-card--veille-compact .document-card__like,
.page-shell--veille .document-card--veille-compact .document-card__save,
.page-shell--veille .document-card--veille-compact .document-card__comments,
.page-shell--veille .document-card--veille-compact .document-card__report {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.28rem;
  min-height: 1.5rem;
  padding: 0.18rem 0.55rem !important;
  font-family: var(--font-ui) !important;
  font-size: 0.72rem !important;
  font-weight: 600 !important;
  letter-spacing: 0.005em !important;
  text-transform: none !important;
  line-height: 1;
  color: var(--veille-muted-strong) !important;
  background: transparent !important;
  background-image: none !important;
  border: none !important;
  border-radius: 0 !important;
  box-shadow: none !important;
  text-decoration: none;
  cursor: pointer;
  transition: color 0.18s ease;
}

.page-shell--veille .document-card--veille-compact .document-card__like:hover,
.page-shell--veille .document-card--veille-compact .document-card__save:hover,
.page-shell--veille .document-card--veille-compact .document-card__comments:hover,
.page-shell--veille .document-card--veille-compact .document-card__report:hover,
.page-shell--veille .document-card--veille-compact .document-card__like:focus-visible,
.page-shell--veille .document-card--veille-compact .document-card__save:focus-visible,
.page-shell--veille .document-card--veille-compact .document-card__comments:focus-visible,
.page-shell--veille .document-card--veille-compact .document-card__report:focus-visible {
  color: var(--veille-ink) !important;
  background: transparent !important;
  text-decoration: underline;
  text-underline-offset: 0.28em;
  text-decoration-thickness: 1px;
}

.page-shell--veille .document-card--veille-compact .document-card__like--on,
.page-shell--veille .document-card--veille-compact .document-card__save--on {
  color: var(--veille-peach-deep) !important;
}

.page-shell--veille .document-card--veille-compact .document-card__like-icon,
.page-shell--veille .document-card--veille-compact .document-card__save-icon,
.page-shell--veille .document-card--veille-compact .document-card__comments-icon {
  font-size: 0.88rem;
  line-height: 1;
}

/* Sur la page veille uniquement : espacement vertical entre articles compacts */
.page-shell--veille .documents-list--veille-feed .document-card--veille-compact {
  position: relative;
}

.page-shell--veille .documents-list--veille-feed .document-card--veille-compact + .document-card--veille-compact {
  margin-top: 1.1rem;
}

/* --- Carte "matière" : layout aligné à gauche, façon article de presse --- */
.page-shell--veille .document-card--veille-subject {
  padding: 1.15rem 0.4rem 1.05rem !important;
  background: transparent !important;
  background-image: none !important;
  border: none !important;
  border-radius: 0 !important;
  box-shadow: none !important;
  gap: 0.55rem;
  text-align: left;
  transition: none !important;
  transform: none !important;
}

.page-shell--veille .document-card--veille-subject:hover {
  border: none !important;
  box-shadow: none !important;
  transform: none !important;
}

.page-shell--veille .documents-list--veille-feed .document-card--veille-subject + .document-card--veille-subject {
  margin-top: 0.4rem;
  position: relative;
  border-top: 1px solid rgba(16, 16, 16, 0.42);
  padding-top: 1.55rem !important;
}

.page-shell--veille .documents-list--veille-feed .document-card--veille-subject + .document-card--veille-subject::before {
  content: "";
  position: absolute;
  top: 3px;
  left: 0;
  right: 0;
  height: 1px;
  background: rgba(16, 16, 16, 0.18);
  pointer-events: none;
}

.document-card--veille-subject .document-card__subject-body {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 0.4rem;
  color: inherit;
  text-decoration: none;
  max-width: 100%;
}

.document-card--veille-subject a.document-card__subject-body {
  cursor: pointer;
  transition: color 0.18s ease;
}

.document-card--veille-subject a.document-card__subject-body:hover .document-card__subject-title,
.document-card--veille-subject a.document-card__subject-body:focus-visible .document-card__subject-title {
  color: var(--veille-peach-deep);
}

.document-card--veille-subject a.document-card__subject-body:focus-visible {
  outline: 2px solid var(--veille-peach);
  outline-offset: 6px;
}

.document-card--veille-subject .document-card__subject-title {
  margin: 0;
  font-family: "Fraunces", Georgia, "Times New Roman", serif;
  font-size: clamp(1.25rem, 2.4vw, 1.55rem);
  font-weight: 700;
  line-height: 1.18;
  letter-spacing: -0.005em;
  color: var(--veille-ink);
  text-align: justify;
  text-align-last: left;
  hyphens: manual;
  -webkit-hyphens: manual;
  transition: color 0.18s ease;
}

.document-card--veille-subject .document-card__subject-meta {
  margin: 0;
  font-family: var(--font-ui);
  font-size: 0.72rem;
  font-weight: 600;
  line-height: 1.45;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--veille-muted-strong);
}

.document-card--veille-subject .document-card__subject-excerpt {
  margin: 0;
  font-family: "Fraunces", Georgia, "Times New Roman", serif;
  font-size: 0.95rem;
  font-weight: 400;
  line-height: 1.5;
  color: var(--veille-ink-soft);
  max-width: 44rem;
  text-align: justify;
  text-align-last: left;
  hyphens: manual;
  -webkit-hyphens: manual;
}

.document-card--veille-subject .document-card__subject-foot {
  margin-top: 0.25rem;
  padding-top: 0.55rem;
  border-top: 1px dashed var(--veille-line);
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.6rem;
  flex-wrap: wrap;
}

.document-card--veille-subject .document-card__subject-byline {
  margin: 0;
  font-family: "Fraunces", Georgia, "Times New Roman", serif;
  font-style: italic;
  font-size: 0.78rem;
  font-weight: 500;
  letter-spacing: 0.005em;
  color: var(--veille-muted);
}

.document-card--veille-subject .document-card__subject-actions {
  display: flex;
  align-items: center;
  gap: 0.15rem;
  flex-shrink: 0;
  flex-wrap: wrap;
}

.page-shell--veille .document-card--veille-subject .document-card__like,
.page-shell--veille .document-card--veille-subject .document-card__save,
.page-shell--veille .document-card--veille-subject .document-card__comments,
.page-shell--veille .document-card--veille-subject .document-card__report {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.28rem;
  min-height: 1.5rem;
  padding: 0.18rem 0.55rem !important;
  font-family: var(--font-ui) !important;
  font-size: 0.72rem !important;
  font-weight: 600 !important;
  letter-spacing: 0.005em !important;
  text-transform: none !important;
  line-height: 1;
  color: var(--veille-muted-strong) !important;
  background: transparent !important;
  background-image: none !important;
  border: none !important;
  border-radius: 0 !important;
  box-shadow: none !important;
  text-decoration: none;
  cursor: pointer;
  transition: color 0.18s ease;
}

.page-shell--veille .document-card--veille-subject .document-card__like:hover,
.page-shell--veille .document-card--veille-subject .document-card__save:hover,
.page-shell--veille .document-card--veille-subject .document-card__comments:hover,
.page-shell--veille .document-card--veille-subject .document-card__report:hover,
.page-shell--veille .document-card--veille-subject .document-card__like:focus-visible,
.page-shell--veille .document-card--veille-subject .document-card__save:focus-visible,
.page-shell--veille .document-card--veille-subject .document-card__comments:focus-visible,
.page-shell--veille .document-card--veille-subject .document-card__report:focus-visible {
  color: var(--veille-ink) !important;
  background: transparent !important;
  text-decoration: underline;
  text-underline-offset: 0.28em;
  text-decoration-thickness: 1px;
}

.page-shell--veille .document-card--veille-subject .document-card__like--on,
.page-shell--veille .document-card--veille-subject .document-card__save--on {
  color: var(--veille-peach-deep) !important;
}

.page-shell--veille .document-card--veille-subject .document-card__like-icon,
.page-shell--veille .document-card--veille-subject .document-card__save-icon,
.page-shell--veille .document-card--veille-subject .document-card__comments-icon {
  font-size: 0.88rem;
  line-height: 1;
}

@media (max-width: 720px) {
  .page-shell--veille .document-card--veille-subject {
    padding: 1rem 0.4rem 0.95rem !important;
    gap: 0.45rem;
  }

  .document-card--veille-subject .document-card__subject-title {
    font-size: clamp(1.15rem, 5.5vw, 1.4rem);
  }

  .document-card--veille-subject .document-card__subject-meta {
    font-size: 0.68rem;
    letter-spacing: 0.08em;
  }

  .document-card--veille-subject .document-card__subject-excerpt {
    font-size: 0.9rem;
  }

  .document-card--veille-subject .document-card__subject-foot {
    flex-direction: column;
    align-items: flex-start;
    gap: 0.4rem;
  }

  .document-card--veille-subject .document-card__subject-actions {
    width: 100%;
    justify-content: flex-start;
    margin-left: -0.55rem;
  }
}

@media (max-width: 720px) {
  .page-shell--veille .document-card--veille-compact {
    padding: 0.95rem 0.4rem 0.85rem !important;
    gap: 0.55rem;
  }

  .document-card--veille-compact .document-card__compact-kicker-line {
    font-size: 0.64rem;
    gap: 0.6rem;
    letter-spacing: 0.18em;
  }

  .document-card--veille-compact .document-card__compact-title {
    font-size: clamp(1.3rem, 6vw, 1.6rem);
  }

  .document-card--veille-compact .document-card__compact-decision {
    font-size: 0.68rem;
    letter-spacing: 0.12em;
  }

  .document-card--veille-compact .document-card__compact-foot {
    flex-direction: column;
    align-items: center;
    gap: 0.4rem;
    text-align: center;
  }

  .document-card--veille-compact .document-card__compact-byline {
    text-align: center;
  }

  .document-card--veille-compact .document-card__compact-actions {
    justify-content: center;
  }
}

/* --- État vide --- */
.page-shell--veille .documents-empty {
  margin: 0;
  padding: 1.1rem 1.2rem;
  background: #fff !important;
  background-image: none !important;
  border: 1px dashed var(--veille-line-strong) !important;
  border-radius: 14px !important;
  font-family: var(--font-ui) !important;
  font-size: 0.92rem !important;
  line-height: 1.45 !important;
  color: var(--veille-muted-strong) !important;
}

/* --- Dialog : Proposer une veille --- */
.veille-proposal-dialog {
  width: min(40rem, calc(100vw - 1.5rem));
  margin: auto;
  padding: 0;
  border: none;
  border-radius: 22px;
  background: transparent;
}

.veille-proposal-dialog::backdrop {
  background: rgba(16, 16, 16, 0.42);
  backdrop-filter: blur(2px);
}

.veille-proposal-dialog__inner {
  background: #fff !important;
  background-image: none !important;
  border: 1px solid var(--veille-line) !important;
  border-radius: 22px !important;
  overflow: hidden;
  box-shadow: var(--veille-shadow-dialog) !important;
  color: var(--veille-ink) !important;
}

.veille-proposal-dialog__head {
  padding: 1rem 1.2rem !important;
  background: #fff !important;
  background-image: none !important;
  border-bottom: 1px solid var(--veille-line) !important;
}

.veille-proposal-dialog__title {
  margin: 0;
  font-family: var(--font-editorial) !important;
  font-size: 1.05rem !important;
  font-weight: 700 !important;
  letter-spacing: -0.005em !important;
  color: var(--veille-ink) !important;
}

.veille-proposal-dialog__close {
  border: 1px solid var(--veille-line-strong) !important;
  background: #fff !important;
  color: var(--veille-ink) !important;
  width: 2rem;
  height: 2rem;
  border-radius: 999px !important;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 1.05rem;
  cursor: pointer;
  transition: border-color 0.18s ease, background 0.18s ease, color 0.18s ease;
}

.veille-proposal-dialog__close:hover,
.veille-proposal-dialog__close:focus-visible {
  border-color: var(--veille-peach) !important;
  background: var(--veille-peach-wash) !important;
  color: var(--veille-ink) !important;
}

.veille-proposal-dialog__intro,
.veille-proposal-dialog__signature,
.veille-proposal-dialog__signature-missing {
  padding-left: 1.2rem !important;
  padding-right: 1.2rem !important;
  font-family: var(--font-ui) !important;
  font-size: 0.92rem !important;
  line-height: 1.5 !important;
  color: var(--veille-ink-soft) !important;
}

.veille-proposal-dialog__signature-strong,
.veille-proposal-dialog__signature-link {
  color: var(--veille-peach-deep) !important;
  font-weight: 700 !important;
}

/* Formulaire dans le dialog */
.veille-proposal-dialog .documents-add {
  margin: 0 !important;
  padding: 0.85rem 1.2rem 1.2rem !important;
  background: #fff !important;
  background-image: none !important;
  border: none !important;
  border-radius: 0 !important;
  box-shadow: none !important;
}

.veille-proposal-dialog .documents-add__title {
  margin: 0 0 0.85rem !important;
  font-family: var(--font-editorial) !important;
  font-size: 1rem !important;
  font-weight: 700 !important;
  color: var(--veille-ink) !important;
}

.veille-proposal-dialog .documents-add__label {
  font-family: var(--font-ui) !important;
  font-size: 0.64rem !important;
  font-weight: 700 !important;
  letter-spacing: 0.16em !important;
  text-transform: uppercase;
  color: var(--veille-muted) !important;
}

.veille-proposal-dialog .documents-add__input,
.veille-proposal-dialog .documents-add__textarea {
  font-family: var(--font-ui) !important;
  font-size: 0.95rem !important;
  font-weight: 500 !important;
  color: var(--veille-ink) !important;
  background: #fff !important;
  background-image: none !important;
  border: 1px solid var(--veille-line-strong) !important;
  border-radius: 10px !important;
  padding: 0.6rem 0.7rem !important;
  transition: border-color 0.18s ease, box-shadow 0.18s ease;
}

.veille-proposal-dialog .documents-add__input:focus,
.veille-proposal-dialog .documents-add__textarea:focus {
  outline: none;
  border-color: var(--veille-peach) !important;
  box-shadow: 0 0 0 3px var(--veille-peach-wash) !important;
}

.veille-proposal-dialog .documents-add__textarea {
  min-height: 5rem;
  resize: vertical;
}

.veille-proposal-dialog .documents-add__actions {
  display: flex;
  flex-wrap: wrap;
  gap: 0.55rem;
  margin-top: 0.85rem;
}

.veille-proposal-dialog .documents-add__submit {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 2.35rem;
  padding: 0.55rem 1.1rem !important;
  font-family: var(--font-ui) !important;
  font-size: 0.7rem !important;
  font-weight: 700 !important;
  letter-spacing: 0.12em !important;
  text-transform: uppercase;
  color: #fff !important;
  background: var(--veille-ink) !important;
  background-image: none !important;
  border: 1px solid var(--veille-ink) !important;
  border-radius: 999px !important;
  box-shadow: none !important;
  cursor: pointer;
  transition: background 0.18s ease, border-color 0.18s ease, color 0.18s ease;
}

.veille-proposal-dialog .documents-add__submit:hover,
.veille-proposal-dialog .documents-add__submit:focus-visible {
  background: var(--veille-peach) !important;
  border-color: var(--veille-peach) !important;
  color: var(--veille-ink) !important;
}

.veille-proposal-dialog .documents-add__submit--ghost {
  color: var(--veille-ink) !important;
  background: #fff !important;
  border-color: var(--veille-line-strong) !important;
}

.veille-proposal-dialog .documents-add__submit--ghost:hover,
.veille-proposal-dialog .documents-add__submit--ghost:focus-visible {
  background: var(--veille-peach-wash) !important;
  border-color: var(--veille-peach) !important;
  color: var(--veille-ink) !important;
}

/* Aperçu avant publication */
.veille-proposal-dialog .veille-preview {
  margin-top: 1rem;
  padding: 0.85rem 1rem;
  background: #fafafa;
  border: 1px solid var(--veille-line);
  border-radius: 14px;
}

.veille-proposal-dialog .veille-preview__title {
  margin: 0 0 0.5rem;
  font-family: var(--font-ui);
  font-size: 0.66rem;
  font-weight: 800;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--veille-muted);
}

.veille-proposal-dialog .veille-preview .document-card--veille-feed {
  background: #fff !important;
  border: 1px solid var(--veille-line) !important;
  box-shadow: none !important;
}

.veille-proposal-feedback {
  margin: 0.5rem 0 0;
  font-family: var(--font-ui);
  font-size: 0.86rem;
  line-height: 1.4;
  color: var(--veille-peach-deep);
}

/* --- Dialog signalement (veille-article-dialog) --- */
.veille-article-dialog {
  width: min(34rem, calc(100vw - 1.5rem));
  margin: auto;
  padding: 0;
  border: none;
  border-radius: 22px;
  background: transparent;
}

.veille-article-dialog::backdrop {
  background: rgba(16, 16, 16, 0.42);
  backdrop-filter: blur(2px);
}

.veille-article-dialog__inner {
  background: #fff !important;
  background-image: none !important;
  border: 1px solid var(--veille-line) !important;
  border-radius: 22px !important;
  padding: 1.25rem 1.35rem 1.35rem !important;
  box-shadow: var(--veille-shadow-dialog) !important;
}

.veille-article-dialog__title {
  margin: 0 0 0.45rem !important;
  font-family: var(--font-editorial) !important;
  font-size: 1.1rem !important;
  font-weight: 700 !important;
  color: var(--veille-ink) !important;
}

.veille-article-dialog__hint {
  margin: 0 0 0.85rem !important;
  font-family: var(--font-ui) !important;
  font-size: 0.9rem !important;
  line-height: 1.45 !important;
  color: var(--veille-muted-strong) !important;
}

.veille-article-dialog__textarea {
  width: 100%;
  font-family: var(--font-ui) !important;
  font-size: 0.95rem !important;
  color: var(--veille-ink) !important;
  background: #fff !important;
  border: 1px solid var(--veille-line-strong) !important;
  border-radius: 10px !important;
  padding: 0.6rem 0.7rem !important;
  resize: vertical;
}

.veille-article-dialog__textarea:focus {
  outline: none;
  border-color: var(--veille-peach) !important;
  box-shadow: 0 0 0 3px var(--veille-peach-wash) !important;
}

.veille-article-dialog__actions {
  display: flex;
  flex-wrap: wrap;
  gap: 0.55rem;
  margin-top: 0.85rem;
  justify-content: flex-end;
}

.veille-article-dialog__btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 2.35rem;
  padding: 0.55rem 1.1rem !important;
  font-family: var(--font-ui) !important;
  font-size: 0.7rem !important;
  font-weight: 700 !important;
  letter-spacing: 0.12em !important;
  text-transform: uppercase;
  border-radius: 999px !important;
  cursor: pointer;
  transition: background 0.18s ease, border-color 0.18s ease, color 0.18s ease;
}

.veille-article-dialog__btn--ghost {
  color: var(--veille-ink) !important;
  background: #fff !important;
  border: 1px solid var(--veille-line-strong) !important;
}

.veille-article-dialog__btn--ghost:hover,
.veille-article-dialog__btn--ghost:focus-visible {
  background: var(--veille-peach-wash) !important;
  border-color: var(--veille-peach) !important;
  color: var(--veille-ink) !important;
}

.veille-article-dialog__btn--primary {
  color: #fff !important;
  background: var(--veille-ink) !important;
  border: 1px solid var(--veille-ink) !important;
}

.veille-article-dialog__btn--primary:hover,
.veille-article-dialog__btn--primary:focus-visible {
  background: var(--veille-peach) !important;
  border-color: var(--veille-peach) !important;
  color: var(--veille-ink) !important;
}

/* --- Page article (veille-article.html) : aligne sur la même DA --- */
.page-shell--veille-article .veille-article__back a {
  color: var(--veille-ink) !important;
  font-weight: 600 !important;
  text-decoration: none;
  border-bottom: 1px solid var(--veille-peach);
  padding-bottom: 1px;
}

.page-shell--veille-article .veille-article__back a:hover {
  color: var(--veille-peach-deep) !important;
  border-bottom-color: var(--veille-peach-deep);
  text-decoration: none;
}

.page-shell--veille-article .veille-article__cover {
  border-radius: 16px !important;
  border: 1px solid var(--veille-line) !important;
  box-shadow: 0 12px 28px rgba(16, 16, 16, 0.08) !important;
  filter: none !important;
}

.page-shell--veille-article .veille-article__title {
  font-family: "Fraunces", Georgia, "Times New Roman", serif !important;
  color: var(--veille-ink) !important;
  font-size: clamp(1.35rem, 2.4vw, 1.75rem) !important;
  font-weight: 750 !important;
  line-height: 1.15 !important;
  letter-spacing: -0.015em !important;
  font-variation-settings: "opsz" 36, "SOFT" 0, "WONK" 0 !important;
  font-feature-settings: "kern" 1, "liga" 1 !important;
  text-align: justify !important;
  text-align-last: left !important;
  hyphens: manual !important;
  -webkit-hyphens: manual !important;
  word-break: normal;
  overflow-wrap: break-word;
  margin: 0.4rem 0 0.5rem !important;
  max-width: none;
}

.page-shell--veille-article .veille-article__title::after {
  width: 2.8rem !important;
  height: 2px !important;
  margin-top: 0.9rem !important;
  background: var(--veille-peach-deep) !important;
  border-radius: 1px !important;
}

.page-shell--veille-article .veille-article__meta {
  color: var(--veille-muted) !important;
}

.page-shell--veille-article .veille-article__decision {
  color: var(--veille-ink-soft) !important;
}

.page-shell--veille-article .veille-article__section-title {
  font-family: var(--font-editorial) !important;
  font-weight: 700 !important;
  color: var(--veille-ink) !important;
}

.page-shell--veille-article .veille-article__section-title::before {
  content: "";
  display: inline-block;
  width: 0.5rem;
  height: 0.5rem;
  margin-right: 0.55rem;
  border-radius: 999px;
  background: var(--veille-peach);
  vertical-align: middle;
}

.page-shell--veille-article .veille-article__summary {
  background: #fafafa !important;
  border: 1px solid var(--veille-line) !important;
  border-radius: 14px !important;
  color: var(--veille-ink) !important;
  text-align: justify;
  text-align-last: left;
  hyphens: manual;
  -webkit-hyphens: manual;
}

.page-shell--veille-article .veille-article__sources {
  background: #fff !important;
  border: 1px dashed var(--veille-line-strong) !important;
  border-radius: 12px !important;
}

.page-shell--veille-article .veille-article__sources a {
  color: var(--veille-peach-deep) !important;
  font-weight: 700 !important;
}

.page-shell--veille-article .veille-article__report-btn {
  font-family: var(--font-ui) !important;
  font-size: 0.7rem !important;
  font-weight: 700 !important;
  letter-spacing: 0.12em !important;
  text-transform: uppercase;
  color: var(--veille-ink) !important;
  background: #fff !important;
  border: 1px solid var(--veille-line-strong) !important;
  border-radius: 999px !important;
  padding: 0.5rem 0.95rem !important;
  transition: color 0.18s ease, border-color 0.18s ease, background 0.18s ease;
}

.page-shell--veille-article .veille-article__report-btn:hover,
.page-shell--veille-article .veille-article__report-btn:focus-visible {
  background: var(--veille-peach-wash) !important;
  border-color: var(--veille-peach) !important;
  color: var(--veille-ink) !important;
}

.page-shell--veille-article .veille-article__proposer {
  background: #fafafa !important;
  border: 1px solid var(--veille-line) !important;
  border-radius: 12px !important;
}

.page-shell--veille-article .veille-article__proposer-name {
  color: var(--veille-peach-deep) !important;
}

/* Comments dans l'article : peach pour vote actif, sinon neutre */
.page-shell--veille-article .veille-article__comment {
  background: #fff !important;
  border: 1px solid var(--veille-line) !important;
  border-radius: 12px !important;
  box-shadow: var(--veille-shadow-card) !important;
}

.page-shell--veille-article .veille-article__comment-who {
  color: var(--veille-peach-deep) !important;
}

.page-shell--veille-article .veille-article__comment-vote {
  color: var(--veille-muted-strong) !important;
  background: #fff !important;
  border: 1px solid var(--veille-line-strong) !important;
}

.page-shell--veille-article .veille-article__comment-vote:hover,
.page-shell--veille-article .veille-article__comment-vote:focus-visible {
  color: var(--veille-ink) !important;
  border-color: var(--veille-peach) !important;
  background: var(--veille-peach-wash) !important;
}

.page-shell--veille-article .veille-article__comment-vote--on {
  color: var(--veille-ink) !important;
  background: var(--veille-peach) !important;
  border-color: var(--veille-peach) !important;
}

.page-shell--veille-article .veille-article__comment-input {
  background: #fff !important;
  border: 1px solid var(--veille-line-strong) !important;
  color: var(--veille-ink) !important;
}

.page-shell--veille-article .veille-article__comment-input:focus {
  outline: none;
  border-color: var(--veille-peach) !important;
  box-shadow: 0 0 0 3px var(--veille-peach-wash) !important;
}

.page-shell--veille-article .veille-article__comment-submit {
  color: #fff !important;
  background: var(--veille-ink) !important;
  border: 1px solid var(--veille-ink) !important;
}

.page-shell--veille-article .veille-article__comment-submit:hover,
.page-shell--veille-article .veille-article__comment-submit:focus-visible {
  background: var(--veille-peach) !important;
  border-color: var(--veille-peach) !important;
  color: var(--veille-ink) !important;
}

/* Notice de feedback (post-publication) */
.page-shell--veille #veille-submit-notice {
  margin: 0.6rem 0 0.9rem;
  padding: 0.7rem 0.9rem;
  border-radius: 12px !important;
  background: var(--veille-peach-wash) !important;
  border: 1px solid var(--veille-peach) !important;
  color: var(--veille-ink) !important;
  font-family: var(--font-ui);
  font-size: 0.9rem;
  font-weight: 600;
  line-height: 1.45;
  box-shadow: none !important;
}

/* Focus visible global sur l'onglet veille */
.page-shell--veille *:focus-visible,
.page-shell--veille-article *:focus-visible,
.veille-proposal-dialog *:focus-visible,
.veille-article-dialog *:focus-visible {
  outline: 2px solid var(--veille-peach) !important;
  outline-offset: 2px;
}

/* Responsive : compact sur petit écran */
@media (max-width: 540px) {
  .page-shell--veille,
  .page-shell--veille-article {
    padding: 1.2rem 1rem 1.4rem !important;
    border-radius: 16px !important;
  }

  .page-shell--veille .veille-page-head__actions {
    width: 100%;
    justify-content: flex-start;
  }

  .page-shell--veille .document-card--veille-feed {
    padding: 0.9rem 0.95rem !important;
    gap: 0.75rem;
  }

  .document-card--veille-hero .document-card__topline {
    flex-wrap: wrap;
  }

  .document-card--veille-hero .document-card__topline-cell {
    flex: 1 1 100%;
    border-left: none;
    border-top: 1px solid rgba(16, 16, 16, 0.4);
    padding: 0.36rem 0.45rem;
  }

  .document-card--veille-hero .document-card__topline-cell--kicker {
    border-top: none;
  }

  .document-card--veille-hero .document-card__hero-title {
    font-size: clamp(1.2rem, 5.5vw, 1.6rem);
  }

  .document-card--veille-hero .document-card__excerpt {
    font-size: 0.9rem;
  }

  .page-shell--veille .document-card--veille-feed .document-card__meta-row {
    flex-wrap: wrap;
  }

  .page-shell--veille .document-card--veille-feed .document-card__meta-actions {
    flex-wrap: wrap;
  }
}

/* ===== Admin Veille juridique (hub) — DA noir / blanc, sobre & lisible ===== */
.subject-body:has(#admin-app[data-admin-page="veille-juridique"]) {
  background: #ffffff;
  color: #101010;
}

#admin-app[data-admin-page="veille-juridique"] {
  --vj-ink: #101010;
  --vj-ink-soft: #2a2a2a;
  --vj-muted: #565656;
  --vj-line: rgba(0, 0, 0, 0.14);
  --vj-line-strong: rgba(0, 0, 0, 0.32);
  --vj-surface: #ffffff;
  --vj-surface-soft: #f4f4f4;
  background: #ffffff !important;
  border: 1px solid var(--vj-line) !important;
  box-shadow: none !important;
  color: var(--vj-ink) !important;
}

#admin-app[data-admin-page="veille-juridique"] .page-shell__title {
  color: var(--vj-ink) !important;
}

#admin-app[data-admin-page="veille-juridique"] .page-shell__title::after {
  background: var(--vj-ink) !important;
}

#admin-app[data-admin-page="veille-juridique"] .page-shell__lead {
  color: var(--vj-muted) !important;
}

#admin-app[data-admin-page="veille-juridique"] .admin-section {
  border-top: 1px solid var(--vj-line) !important;
}

#admin-app[data-admin-page="veille-juridique"] .admin-section__title {
  color: var(--vj-ink) !important;
  font-weight: 800;
  letter-spacing: -0.01em;
}

#admin-app[data-admin-page="veille-juridique"] .admin-section__hint {
  color: var(--vj-muted) !important;
}

#admin-app[data-admin-page="veille-juridique"] .admin-subnav {
  background: var(--vj-surface) !important;
  border: 1px solid var(--vj-line) !important;
  box-shadow: none !important;
}

#admin-app[data-admin-page="veille-juridique"] .admin-subnav__link {
  color: var(--vj-ink) !important;
  border-bottom-color: transparent !important;
}

#admin-app[data-admin-page="veille-juridique"] .admin-subnav__link:hover {
  color: var(--vj-ink) !important;
  opacity: 0.7;
}

#admin-app[data-admin-page="veille-juridique"] .admin-subnav__link--current,
#admin-app[data-admin-page="veille-juridique"] .admin-subnav__link[aria-current="page"] {
  color: var(--vj-ink) !important;
  border-bottom-color: var(--vj-ink) !important;
}

#admin-app[data-admin-page="veille-juridique"] .admin-login-label {
  color: var(--vj-ink) !important;
}

#admin-app[data-admin-page="veille-juridique"] .admin-login-input {
  background: #fff !important;
  border: 1px solid var(--vj-line-strong) !important;
  color: var(--vj-ink) !important;
  border-radius: 10px !important;
}

#admin-app[data-admin-page="veille-juridique"] .admin-login-input:focus {
  outline: none !important;
  border-color: var(--vj-ink) !important;
  box-shadow: 0 0 0 3px rgba(0, 0, 0, 0.08) !important;
}

#admin-app[data-admin-page="veille-juridique"] .admin-login-error {
  color: var(--vj-ink) !important;
  font-weight: 700;
}

#admin-app[data-admin-page="veille-juridique"] .juris-submit {
  background: var(--vj-ink) !important;
  color: #ffffff !important;
  border: 1px solid var(--vj-ink) !important;
  box-shadow: none !important;
  border-radius: 999px;
  letter-spacing: 0.1em;
}

#admin-app[data-admin-page="veille-juridique"] .juris-submit:hover,
#admin-app[data-admin-page="veille-juridique"] .juris-submit:focus-visible {
  background: var(--vj-ink-soft) !important;
  border-color: var(--vj-ink-soft) !important;
}

#admin-app[data-admin-page="veille-juridique"] .admin-hub-cards {
  gap: 0.75rem;
}

#admin-app[data-admin-page="veille-juridique"] .admin-hub-card__link {
  background: var(--vj-surface) !important;
  border: 1px solid var(--vj-line) !important;
  box-shadow: none !important;
  border-radius: 12px !important;
  transition:
    border-color 0.15s ease,
    background-color 0.15s ease !important;
}

#admin-app[data-admin-page="veille-juridique"] .admin-hub-card__link:hover,
#admin-app[data-admin-page="veille-juridique"] .admin-hub-card__link:focus-visible {
  background: var(--vj-surface-soft) !important;
  border-color: var(--vj-ink) !important;
  box-shadow: none !important;
}

#admin-app[data-admin-page="veille-juridique"] .admin-hub-card__title {
  color: var(--vj-ink) !important;
  font-family: var(--font-ui);
  font-weight: 700;
  letter-spacing: -0.005em;
}

#admin-app[data-admin-page="veille-juridique"] .admin-hub-card__desc {
  color: var(--vj-muted) !important;
}

#admin-app[data-admin-page="veille-juridique"] .admin-hub-card__notif {
  background: var(--vj-ink) !important;
  color: #ffffff !important;
  box-shadow: none !important;
  font-weight: 700;
}

/* ===== Quiz — Review answers (Voir les réponses) ===== */
body.quizz-mode #quizz-result .quizz-review-toggle {
  margin: 0.85rem auto 0;
  display: inline-flex;
  align-items: center;
  gap: 0.4rem;
  font-family: var(--font-ui, "Inter", system-ui, sans-serif);
  font-size: 0.72rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.12em;
  color: #101010;
  background: transparent;
  border: 1px solid rgba(16, 16, 16, 0.55);
  border-radius: 999px;
  padding: 0.55rem 1.15rem;
  cursor: pointer;
  transition: background-color 0.18s ease, color 0.18s ease, border-color 0.18s ease, transform 0.18s ease;
}

body.quizz-mode #quizz-result .quizz-review-toggle:hover {
  background: #101010;
  color: #ffffff;
  border-color: #101010;
  transform: translateY(-1px);
}

body.quizz-mode #quizz-result .quizz-review-toggle[hidden] {
  display: none !important;
}

body.quizz-mode #quizz-result .quizz-review {
  margin: 1.4rem auto 1.6rem;
  display: flex;
  flex-direction: column;
  gap: 1rem;
  max-width: 44rem;
  text-align: left;
}

body.quizz-mode #quizz-result .quizz-review[hidden] {
  display: none !important;
}

body.quizz-mode #quizz-result .quizz-review__notice {
  margin: 0 0 0.25rem;
  padding: 0.75rem 1rem;
  border: 1px solid rgba(16, 16, 16, 0.1);
  border-radius: 12px;
  background: #ffffff;
  color: #3a3633;
  font-family: var(--font-ui, "Inter", system-ui, sans-serif);
  font-size: 0.82rem;
  line-height: 1.45;
  text-align: center;
}

body.quizz-mode #quizz-result .quizz-review__item {
  background: #ffffff;
  border: 1px solid rgba(16, 16, 16, 0.1);
  border-radius: 16px;
  padding: 1.05rem 1.15rem 1.1rem;
  box-shadow: 0 4px 14px rgba(16, 16, 16, 0.04);
}

body.quizz-mode #quizz-result .quizz-review__head {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 0.5rem;
  margin-bottom: 0.55rem;
}

body.quizz-mode #quizz-result .quizz-review__index {
  font-family: var(--font-ui, "Inter", system-ui, sans-serif);
  font-size: 0.68rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.12em;
  color: #6b6258;
}

body.quizz-mode #quizz-result .quizz-review__summary {
  display: none !important;
}

body.quizz-mode #quizz-result .quizz-review__question {
  margin: 0 0 0.75rem;
  font-family: "Fraunces", Georgia, "Times New Roman", serif;
  font-size: clamp(0.98rem, 2.4vw, 1.1rem);
  font-weight: 600;
  line-height: 1.35;
  color: #101010;
}

body.quizz-mode #quizz-result .quizz-review__options {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 0.45rem;
}

body.quizz-mode #quizz-result .quizz-review__option {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.6rem;
  padding: 0.55rem 0.85rem;
  border: 1px solid rgba(16, 16, 16, 0.1);
  border-radius: 10px;
  background: #ffffff;
  font-family: var(--font-ui, "Inter", system-ui, sans-serif);
  font-size: 0.92rem;
  color: #2a2521;
  line-height: 1.4;
}

body.quizz-mode #quizz-result .quizz-review__option.is-correct {
  border: 1.5px solid #14643c;
  background: rgba(20, 100, 60, 0.06);
}

body.quizz-mode #quizz-result .quizz-review__option.is-wrong {
  border: 1.5px solid #8c1e28;
  background: rgba(140, 30, 40, 0.05);
}

body.quizz-mode #quizz-result .quizz-review__letter {
  flex: 0 0 auto;
  width: 1.6rem;
  height: 1.6rem;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: 50%;
  background: #ffffff;
  color: #101010;
  border: 1px solid #101010;
  font-family: var(--font-ui, "Inter", system-ui, sans-serif);
  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: 0.02em;
}

body.quizz-mode #quizz-result .quizz-review__option.is-correct .quizz-review__letter {
  background: #14643c;
  color: #ffffff;
  border-color: #14643c;
}

body.quizz-mode #quizz-result .quizz-review__option.is-wrong .quizz-review__letter {
  background: #8c1e28;
  color: #ffffff;
  border-color: #8c1e28;
}

body.quizz-mode #quizz-result .quizz-review__opt-text {
  flex: 1 1 12rem;
  min-width: 0;
}

body.quizz-mode #quizz-result .quizz-review__tags {
  display: inline-flex;
  flex-wrap: wrap;
  gap: 0.35rem;
  margin-left: auto;
}

body.quizz-mode #quizz-result .quizz-review__tag {
  display: inline-flex;
  align-items: center;
  font-family: var(--font-ui, "Inter", system-ui, sans-serif);
  font-size: 0.62rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  padding: 0.2rem 0.55rem;
  border-radius: 999px;
  border: 1px solid transparent;
}

body.quizz-mode #quizz-result .quizz-review__tag--you {
  background: #ffffff;
  color: #101010;
  border-color: rgba(16, 16, 16, 0.4);
}

body.quizz-mode #quizz-result .quizz-review__tag--ok {
  background: #14643c;
  color: #ffffff;
  border-color: #14643c;
}

@media (max-width: 600px) {
  body.quizz-mode #quizz-result .quizz-review {
    padding: 0 0.25rem;
  }
  body.quizz-mode #quizz-result .quizz-review__option {
    font-size: 0.88rem;
  }
  body.quizz-mode #quizz-result .quizz-review__tags {
    margin-left: 0;
    width: 100%;
  }
}

/* =====================================================================
   Juris-partage — pass DA finale (noir / blanc / touches pêche)
   Aligne la page sur la DA globale : surfaces blanches, texte noir,
   accents pêche (#efb899) ponctuels. Typo Fraunces (éditorial) +
   Manrope (UI). Neutralise les surcouches bordeaux / cherry / dégradés
   héritées des itérations précédentes.
   ===================================================================== */
:root {
  --jp-ink: #101010;
  --jp-ink-soft: #2c2c2c;
  --jp-muted: #6b6b6b;
  --jp-muted-strong: #4a4a4a;
  --jp-line: rgba(16, 16, 16, 0.1);
  --jp-line-strong: rgba(16, 16, 16, 0.22);
  --jp-peach: var(--cherry);
  --jp-peach-deep: var(--cherry-dark);
  --jp-peach-wash: var(--cherry-wash);
  --jp-peach-wash-strong: var(--cherry-wash-strong);
  --jp-surface: #ffffff;
  --jp-surface-soft: #fafafa;
  --jp-shadow-card: 0 1px 2px rgba(16, 16, 16, 0.04);
  --jp-shadow-card-hover: 0 8px 22px rgba(16, 16, 16, 0.07);
  --jp-shadow-dialog: 0 24px 60px rgba(16, 16, 16, 0.22);
}

/* --- Fond de page : surface blanche, sans gradient hérité --- */
body.subject-body:has(.page-shell--juris) {
  background: #ffffff !important;
  background-image: none !important;
}

/* --- Cadre de page --- */
.page-shell--juris {
  width: min(960px, 94%) !important;
  margin: 2.75rem auto 4rem !important;
  padding: 3rem 2.75rem 3.25rem !important;
  background: #ffffff !important;
  background-image: none !important;
  border: 1px solid var(--jp-line) !important;
  border-radius: 22px !important;
  box-shadow:
    0 1px 2px rgba(16, 16, 16, 0.03),
    0 14px 40px rgba(16, 16, 16, 0.05) !important;
  color: var(--jp-ink) !important;
}

@media (max-width: 640px) {
  .page-shell--juris {
    padding: 2.1rem 1.4rem 2.4rem !important;
    border-radius: 18px !important;
  }
}

/* --- Titre & lead --- */
.page-shell--juris .page-shell__title {
  margin: 0 0 0.45rem !important;
  font-family: "Fraunces", Georgia, "Times New Roman", serif !important;
  font-size: clamp(2rem, 4.2vw, 2.65rem) !important;
  font-weight: 700 !important;
  letter-spacing: -0.025em !important;
  line-height: 1.05 !important;
  color: var(--jp-ink) !important;
  text-align: left;
}

.page-shell--juris .page-shell__title::after {
  content: "";
  display: block;
  width: 2.6rem;
  height: 3px;
  margin-top: 0.7rem;
  border-radius: 999px;
  background: var(--jp-peach) !important;
}

/* Titre logo image (PNG) — bloc centré horizontalement dans la page.
   Taille pilotée par la HAUTEUR pour rester strictement alignée avec
   « Espace échange » et « Veille juridique ». */
.page-shell--juris .page-shell__title--image {
  display: flex !important;
  align-items: center;
  justify-content: center;
  margin: 0 auto 1.5rem !important;
  padding: 0 !important;
  background: none !important;
  border: none !important;
  line-height: 1 !important;
  letter-spacing: 0 !important;
  font-size: 0 !important;
  width: 100%;
  max-width: 100%;
  text-align: center;
}

.page-shell--juris .page-shell__title--image::after,
.page-shell--juris .page-shell__title--image::before {
  display: none !important;
  content: none !important;
}

.page-shell--juris .page-shell__title-image {
  display: block;
  width: auto;
  height: clamp(6.5rem, 13vw, 11rem);
  max-width: 100%;
  margin: 0 auto;
}

@media (max-width: 540px) {
  .page-shell--juris .page-shell__title--image {
    margin-bottom: 1.25rem !important;
  }
  .page-shell--juris .page-shell__title-image {
    height: clamp(5rem, 16vw, 7.5rem);
  }
}

/* Titre logo "Natural Pleasure" (fallback / variante texte) — "Juris" en
   cursive script, "partage" en Bodoni Moda 800. Conservé au cas où la page
   re-bascule sur un titre texte. */
.page-shell--juris .page-shell__title--script-stack {
  display: flex !important;
  flex-direction: column;
  align-items: center;
  width: fit-content;
  max-width: 100%;
  margin: 1rem auto 1.25rem !important;
  padding: 0 !important;
  line-height: 1 !important;
  letter-spacing: 0 !important;
  font-weight: normal !important;
  gap: 0;
  position: relative;
  text-align: center;
}

.page-shell--juris .page-shell__title--script-stack::after {
  display: none !important;
}

.page-shell--juris .page-shell__title-script {
  display: block;
  font-family: "Great Vibes", "Brush Script MT", "Apple Chancery", cursive !important;
  font-style: normal !important;
  font-weight: 400 !important;
  font-size: clamp(4rem, 11.5vw, 6rem) !important;
  line-height: 0.74 !important;
  letter-spacing: 0.005em !important;
  color: #0a0a0a !important;
  margin: 0 0 -0.04em 0 !important;
  padding: 0 0.05em !important;
  position: relative;
  z-index: 2;
  text-align: center;
  align-self: center;
  text-shadow: 0 6px 22px rgba(0, 0, 0, 0.07);
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

.page-shell--juris .page-shell__title-thick {
  display: block;
  font-family: "Bodoni Moda", "Bodoni MT", Didot, "Libre Bodoni", Georgia, serif !important;
  font-style: normal !important;
  font-weight: 800 !important;
  font-size: clamp(3.8rem, 11.5vw, 6rem) !important;
  line-height: 0.98 !important;
  letter-spacing: -0.038em !important;
  text-transform: none !important;
  color: #0a0a0a !important;
  font-feature-settings: "kern" 1, "liga" 1, "dlig" 1;
  font-variant-numeric: lining-nums;
  margin: -0.18em 0 0 0 !important;
  padding: 0 !important;
  position: relative;
  z-index: 1;
  text-align: center;
  align-self: center;
  text-shadow: 0 8px 26px rgba(0, 0, 0, 0.08);
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

@media (max-width: 540px) {
  .page-shell--juris .page-shell__title--script-stack {
    margin: 0.45rem auto 1rem !important;
  }
  .page-shell--juris .page-shell__title-script {
    font-size: clamp(3.1rem, 14vw, 4.2rem) !important;
    line-height: 0.78 !important;
  }
  .page-shell--juris .page-shell__title-thick {
    font-size: clamp(2.9rem, 13vw, 4.2rem) !important;
    margin-top: -0.16em !important;
  }
}

.page-shell--juris .page-shell__lead {
  margin: 0.85rem 0 1.4rem !important;
  font-family: var(--font-ui) !important;
  font-size: 0.96rem !important;
  font-weight: 500 !important;
  line-height: 1.6 !important;
  color: var(--jp-muted-strong) !important;
  max-width: 46rem;
}

.page-shell--juris .page-shell__title--script-stack + .page-shell__lead {
  text-align: center !important;
  margin-left: auto !important;
  margin-right: auto !important;
}

/* --- Bloc "Jurisprudence à la une" --- */
.page-shell--juris .juris-spotlight {
  margin: 0 0 1.6rem !important;
  padding: 1.1rem 1.2rem 1.2rem !important;
  background: var(--jp-surface) !important;
  background-image: none !important;
  border: 1px solid var(--jp-line) !important;
  border-radius: 16px !important;
  box-shadow: var(--jp-shadow-card) !important;
}

.page-shell--juris .juris-spotlight__title {
  margin: 0 0 0.65rem !important;
  font-family: var(--font-ui) !important;
  font-size: 0.66rem !important;
  font-weight: 800 !important;
  letter-spacing: 0.16em !important;
  text-transform: uppercase;
  color: var(--jp-muted) !important;
}

.page-shell--juris .juris-list--spotlight {
  margin: 0 !important;
}

.page-shell--juris .juris-empty--spotlight {
  margin: 0 !important;
  background: transparent !important;
  border: none !important;
  padding: 0 !important;
  font-size: 0.9rem !important;
  color: var(--jp-muted) !important;
}

/* --- Onglets principaux : style « ligne sous » comme veille --- */
.page-shell--juris .juris-main-tabs {
  display: flex;
  flex-wrap: nowrap;
  gap: 0;
  margin: 0.6rem -0.2rem 1.6rem !important;
  padding: 0 0.2rem !important;
  border: none !important;
  border-bottom: 1px solid var(--jp-line-strong) !important;
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
  scrollbar-width: none;
}

.page-shell--juris .juris-main-tabs::-webkit-scrollbar {
  display: none;
}

.page-shell--juris .juris-main-tab {
  flex: 1 1 0;
  min-width: 0;
  margin: 0 !important;
  padding: 0.85rem 1rem 1rem !important;
  font-family: var(--font-ui) !important;
  font-size: clamp(1rem, 1.4vw, 1.1rem) !important;
  font-weight: 700 !important;
  letter-spacing: 0.005em !important;
  text-transform: none !important;
  text-align: center;
  color: var(--jp-muted-strong) !important;
  background: transparent !important;
  background-image: none !important;
  border: none !important;
  border-bottom: 3px solid transparent !important;
  border-radius: 0 !important;
  box-shadow: none !important;
  cursor: pointer;
  white-space: nowrap;
  transition: color 0.18s ease, border-color 0.18s ease;
}

.page-shell--juris .juris-main-tab:hover,
.page-shell--juris .juris-main-tab:focus-visible {
  color: #0a0a0a !important;
  background: transparent !important;
  border-bottom-color: var(--jp-peach-wash-strong) !important;
  outline: none;
}

.page-shell--juris .juris-main-tab[aria-selected="true"] {
  color: #0a0a0a !important;
  font-weight: 800 !important;
  background: transparent !important;
  background-image: none !important;
  border-bottom-color: var(--jp-peach) !important;
  box-shadow: none !important;
}

.page-shell--juris .juris-main-tab--has-notif {
  border-color: transparent !important;
  box-shadow: none !important;
}

.page-shell--juris .juris-main-tab__count {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 1.35rem;
  height: 1.35rem;
  margin-left: 0.55rem;
  padding: 0.1rem 0.5rem !important;
  font-family: var(--font-ui) !important;
  font-size: 0.74rem !important;
  font-weight: 800 !important;
  line-height: 1.1;
  color: #ffffff !important;
  background: var(--jp-ink) !important;
  border: none !important;
  border-radius: 999px !important;
  letter-spacing: 0.04em !important;
  text-transform: none !important;
}

.page-shell--juris .juris-main-tab[aria-selected="true"] .juris-main-tab__count {
  color: #ffffff !important;
  background: var(--jp-ink) !important;
}

/* --- Section headings ("Jurisprudences", "Soumettre…", "Recherchées") --- */
.page-shell--juris .juris-section__heading {
  margin: 0.35rem 0 1.1rem !important;
  font-family: "Fraunces", Georgia, "Times New Roman", serif !important;
  font-size: clamp(1.45rem, 2.8vw, 1.75rem) !important;
  font-weight: 800 !important;
  letter-spacing: -0.022em !important;
  color: #0a0a0a !important;
  background: transparent !important;
  background-image: none !important;
  box-shadow: none !important;
  text-decoration: none !important;
  text-shadow: none !important;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

/* Sécurise contre tout sur-encrage hérité (selection, highlight, mark…)
   sur les titres de section de Juris-partage. */
.page-shell--juris .juris-section__heading::before,
.page-shell--juris .juris-section__heading::after {
  display: none !important;
}

/* Sélection texte : on garde lisible (texte noir) avec une couleur de fond
   discrète (peach lavé) — évite le gros band pêche très contrasté qui
   donnait l'impression d'un titre surligné. */
body.subject-body:has(.page-shell--juris) ::selection {
  background: var(--jp-peach-wash-strong) !important;
  color: #0a0a0a !important;
}
body.subject-body:has(.page-shell--juris) ::-moz-selection {
  background: var(--jp-peach-wash-strong) !important;
  color: #0a0a0a !important;
}

.page-shell--juris .juris-annuaire__sort-hint {
  margin: -0.2rem 0 1rem !important;
  font-family: var(--font-ui) !important;
  font-size: 0.88rem !important;
  font-weight: 500 !important;
  line-height: 1.55 !important;
  color: var(--jp-muted-strong) !important;
}

.page-shell--juris .juris-annuaire__sort-hint strong {
  color: var(--jp-ink) !important;
  font-weight: 700;
}

.page-shell--juris .juris-demandes__intro,
.page-shell--juris .juris-submit-section__intro {
  margin: 0 0 1.1rem !important;
  font-family: var(--font-ui) !important;
  font-size: 0.92rem !important;
  font-weight: 500 !important;
  line-height: 1.6 !important;
  color: var(--jp-muted-strong) !important;
}

/* --- Help bar : « Tu ne trouves pas… » --- */
.page-shell--juris .juris-help-bar {
  margin: 0 0 1.25rem !important;
}

.page-shell--juris .juris-help-chip {
  display: inline-flex;
  align-items: center;
  gap: 0.7rem;
  padding: 0.55rem 1rem 0.55rem 0.55rem !important;
  background: #ffffff !important;
  background-image: none !important;
  border: 1px solid var(--jp-line-strong) !important;
  border-radius: 999px !important;
  box-shadow: none !important;
  color: var(--jp-ink) !important;
  cursor: pointer;
  transition: background 0.18s ease, border-color 0.18s ease, color 0.18s ease;
}

.page-shell--juris .juris-help-chip:hover,
.page-shell--juris .juris-help-chip:focus-visible {
  background: var(--jp-peach-wash) !important;
  border-color: var(--jp-peach) !important;
  color: var(--jp-ink) !important;
  outline: none;
}

.page-shell--juris .juris-help-chip__mark {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 1.85rem;
  height: 1.85rem;
  flex-shrink: 0;
  border: none !important;
  border-radius: 50%;
  font-family: "Fraunces", Georgia, "Times New Roman", serif !important;
  font-size: 1.1rem !important;
  font-weight: 700 !important;
  line-height: 1;
  color: #ffffff !important;
  background: var(--jp-ink) !important;
}

.page-shell--juris .juris-help-chip:hover .juris-help-chip__mark,
.page-shell--juris .juris-help-chip:focus-visible .juris-help-chip__mark {
  background: var(--jp-peach-deep) !important;
  color: #ffffff !important;
}

.page-shell--juris .juris-help-chip__label {
  font-family: var(--font-ui) !important;
  font-size: 0.85rem !important;
  font-weight: 600 !important;
  line-height: 1.3 !important;
  letter-spacing: 0 !important;
  color: var(--jp-ink) !important;
}

/* --- Toolbar de recherche + filtres --- */
.page-shell--juris .juris-toolbar {
  margin-top: 0.25rem;
  padding: 1rem 1.1rem;
  background: var(--jp-surface-soft);
  border: 1px solid var(--jp-line);
  border-radius: 14px;
  box-shadow: none;
}

.page-shell--juris .juris-demandes-toolbar {
  margin-top: 0.25rem;
  padding: 0.85rem 1.05rem 1rem;
  background: var(--jp-surface-soft);
  border: 1px solid var(--jp-line);
  border-radius: 14px;
}

/* --- Labels & champs : look magazine sobre --- */
.page-shell--juris .juris-label {
  font-family: var(--font-ui) !important;
  font-size: 0.74rem !important;
  font-weight: 800 !important;
  letter-spacing: 0.14em !important;
  text-transform: uppercase;
  color: #0a0a0a !important;
  display: inline-block;
  margin-bottom: 0.4rem !important;
}

.page-shell--juris .juris-label--fieldset {
  margin-bottom: 0.55rem !important;
}

.page-shell--juris .juris-optional {
  font-family: var(--font-ui) !important;
  font-size: 0.7rem !important;
  font-weight: 600 !important;
  letter-spacing: 0.08em !important;
  text-transform: none !important;
  color: var(--jp-muted-strong) !important;
}

.page-shell--juris .juris-input,
.page-shell--juris .juris-select,
.page-shell--juris .juris-textarea {
  font-family: var(--font-ui) !important;
  font-size: 0.94rem !important;
  font-weight: 500 !important;
  color: var(--jp-ink) !important;
  background: #ffffff !important;
  border: 1px solid var(--jp-line-strong) !important;
  border-radius: 10px !important;
  padding: 0.6rem 0.75rem !important;
  box-shadow: none !important;
  transition: border-color 0.18s ease, box-shadow 0.18s ease, background-color 0.18s ease;
}

.page-shell--juris .juris-input::placeholder,
.page-shell--juris .juris-textarea::placeholder {
  color: var(--jp-muted) !important;
  font-weight: 500;
}

.page-shell--juris .juris-input:hover,
.page-shell--juris .juris-select:hover,
.page-shell--juris .juris-textarea:hover {
  border-color: var(--jp-ink) !important;
}

.page-shell--juris .juris-input:focus,
.page-shell--juris .juris-select:focus,
.page-shell--juris .juris-textarea:focus {
  outline: none !important;
  border-color: var(--jp-peach-deep) !important;
  background-color: #ffffff !important;
  box-shadow: 0 0 0 3px var(--jp-peach-wash-strong) !important;
}

.page-shell--juris .juris-input--search {
  background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23a3a3a3' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><circle cx='11' cy='11' r='7'/><path d='m20 20-3.6-3.6'/></svg>") !important;
  background-repeat: no-repeat !important;
  background-position: 0.8rem center !important;
  background-size: 1rem 1rem !important;
  padding-left: 2.45rem !important;
}

.page-shell--juris .juris-field__hint {
  margin: 0 0 0.55rem !important;
  font-family: var(--font-ui) !important;
  font-size: 0.82rem !important;
  font-weight: 500 !important;
  line-height: 1.55 !important;
  color: var(--jp-muted-strong) !important;
}

.page-shell--juris .juris-field__hint strong {
  color: var(--jp-ink) !important;
  font-weight: 700;
}

.page-shell--juris .juris-radio {
  font-family: var(--font-ui) !important;
  font-size: 0.92rem !important;
  font-weight: 600 !important;
  color: var(--jp-ink) !important;
}

.page-shell--juris .juris-radio input {
  accent-color: var(--jp-ink) !important;
}

.page-shell--juris .juris-check {
  font-family: var(--font-ui) !important;
  font-size: 0.9rem !important;
  font-weight: 500 !important;
  line-height: 1.5 !important;
  color: var(--jp-ink-soft) !important;
}

.page-shell--juris .juris-check input {
  accent-color: var(--jp-ink) !important;
}

/* --- Inline help (?) tooltip --- */
.page-shell--juris .juris-help-inline-btn {
  width: 1.3rem;
  height: 1.3rem;
  padding: 0;
  border: 1px solid var(--jp-line-strong) !important;
  background: #ffffff !important;
  color: var(--jp-ink) !important;
  font-family: var(--font-ui) !important;
  font-size: 0.72rem !important;
  font-weight: 800 !important;
  border-radius: 999px !important;
  box-shadow: none !important;
  cursor: pointer;
  line-height: 1;
}

.page-shell--juris .juris-help-inline-btn:hover {
  background: var(--jp-peach-wash) !important;
  border-color: var(--jp-peach) !important;
}

.page-shell--juris .juris-help-inline-tooltip {
  background: #ffffff !important;
  border: 1px solid var(--jp-line) !important;
  border-radius: 12px !important;
  box-shadow: 0 12px 28px rgba(16, 16, 16, 0.12) !important;
  font-family: var(--font-ui) !important;
  font-size: 0.82rem !important;
  font-weight: 500 !important;
  line-height: 1.5 !important;
  color: var(--jp-ink-soft) !important;
}

.page-shell--juris .juris-ref-method {
  margin: 0 0 0.4rem !important;
  padding: 0.95rem 1.1rem !important;
  background: var(--jp-surface-soft) !important;
  border: 1px solid var(--jp-line) !important;
  border-radius: 12px !important;
}

.page-shell--juris .juris-ref-method__title {
  margin: 0 0 0.5rem !important;
  font-family: var(--font-ui) !important;
  font-size: 0.66rem !important;
  font-weight: 800 !important;
  letter-spacing: 0.16em !important;
  text-transform: uppercase;
  color: var(--jp-muted) !important;
}

.page-shell--juris .juris-ref-method__text {
  margin: 0 !important;
  font-family: var(--font-ui) !important;
  font-size: 0.88rem !important;
  font-weight: 500 !important;
  line-height: 1.55 !important;
  color: var(--jp-ink-soft) !important;
}

.page-shell--juris .juris-ref-method__example {
  font-family: var(--font-ui) !important;
  font-weight: 700 !important;
  font-variant-numeric: tabular-nums;
  color: var(--jp-ink) !important;
}

/* --- Groupes par année --- */
.page-shell--juris .juris-year-group__heading {
  margin: 1.25rem 0 0.5rem !important;
  padding: 0 0 0.45rem !important;
  font-family: "Fraunces", Georgia, "Times New Roman", serif !important;
  font-size: 1.15rem !important;
  font-weight: 700 !important;
  letter-spacing: -0.01em !important;
  color: var(--jp-ink) !important;
  border-bottom: 1px solid var(--jp-line) !important;
  position: relative;
}

.page-shell--juris .juris-year-group__heading::after {
  content: "";
  position: absolute;
  left: 0;
  bottom: -1px;
  width: 1.8rem;
  height: 2px;
  background: var(--jp-peach);
  border-radius: 999px;
}

.page-shell--juris .juris-year-group:first-child .juris-year-group__heading {
  margin-top: 0.25rem !important;
}

/* --- Liste & carte de jurisprudence --- */
.page-shell--juris .juris-list {
  margin: 0.5rem 0 0 !important;
  gap: 0.6rem !important;
}

.page-shell--juris .juris-card {
  padding: 1.4rem 1.55rem 1.2rem !important;
  background: #ffffff !important;
  background-image: none !important;
  border: 1px solid var(--jp-line) !important;
  border-radius: 12px !important;
  box-shadow: var(--jp-shadow-card) !important;
  transition: border-color 0.18s ease, box-shadow 0.18s ease, transform 0.18s ease;
}

@media (max-width: 540px) {
  .page-shell--juris .juris-card {
    padding: 1.15rem 1.15rem 1rem !important;
  }
}

.page-shell--juris .juris-card:hover {
  border-color: var(--jp-peach) !important;
  box-shadow: var(--jp-shadow-card-hover) !important;
  transform: translateY(-1px);
}

.page-shell--juris .juris-card__top {
  margin: 0 0 0.55rem !important;
  gap: 0.5rem 1rem;
}

.page-shell--juris .juris-card__matiere,
.page-shell--juris .juris-card__code {
  font-family: var(--font-ui) !important;
  font-size: 0.66rem !important;
  font-weight: 800 !important;
  letter-spacing: 0.14em !important;
  text-transform: uppercase;
  color: var(--jp-muted) !important;
}

.page-shell--juris .juris-card__matiere {
  color: #0a0a0a !important;
}

.page-shell--juris .juris-card__title {
  margin: 0 0 0.45rem !important;
  font-family: "Fraunces", Georgia, "Times New Roman", serif !important;
  font-size: clamp(1.25rem, 2.2vw, 1.55rem) !important;
  font-weight: 700 !important;
  line-height: 1.18 !important;
  letter-spacing: -0.008em !important;
  color: var(--jp-ink) !important;
  text-transform: none !important;
  text-align: justify;
  text-align-last: left;
  hyphens: none !important;
  -webkit-hyphens: none !important;
  word-break: normal !important;
  overflow-wrap: normal !important;
  font-feature-settings: "kern" 1, "liga" 1;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

.page-shell--juris .juris-card__reference {
  margin: 0 0 0.6rem !important;
  font-family: var(--font-ui) !important;
  font-size: 0.76rem !important;
  font-weight: 700 !important;
  line-height: 1.4 !important;
  letter-spacing: 0.07em !important;
  text-transform: uppercase;
  color: var(--jp-muted-strong) !important;
  font-variant-numeric: tabular-nums;
}

.page-shell--juris .juris-card__emplacement {
  margin: 0 0 0.65rem !important;
  font-family: var(--font-ui) !important;
  font-size: 0.92rem !important;
  font-weight: 500 !important;
  line-height: 1.55 !important;
  color: var(--jp-ink) !important;
  white-space: normal;
  display: -webkit-box;
  -webkit-line-clamp: 4;
  -webkit-box-orient: vertical;
  overflow: hidden;
}

.page-shell--juris .juris-card__resume {
  margin: 0 !important;
  font-family: "Fraunces", Georgia, "Times New Roman", serif !important;
  font-size: 0.94rem !important;
  font-weight: 500 !important;
  line-height: 1.55 !important;
  color: var(--jp-ink-soft) !important;
}

/* Pied de carte éditoriale : trait de séparation puis 2 colonnes
   (signature italique à gauche, actions à droite, comme une carte Veille). */
.page-shell--juris .juris-card__footer {
  margin-top: 0.55rem !important;
  padding-top: 0.85rem !important;
  border-top: 1px solid var(--jp-line-strong) !important;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.6rem;
  flex-wrap: wrap;
}

.page-shell--juris .juris-card__footer .juris-card__byline {
  margin: 0 !important;
  font-family: "Fraunces", Georgia, "Times New Roman", serif !important;
  font-style: italic;
  font-size: 0.82rem !important;
  font-weight: 500 !important;
  letter-spacing: 0.005em !important;
  color: var(--jp-muted) !important;
}

.page-shell--juris .juris-card__actions {
  display: flex;
  align-items: center;
  gap: 0;
  flex-shrink: 0;
}

.page-shell--juris .juris-card__actions .juris-card__like-btn,
.page-shell--juris .juris-card__actions .juris-card__report-btn {
  position: relative;
  display: inline-flex;
  align-items: center;
  gap: 0.32rem;
  min-height: 1.6rem;
  margin: 0 !important;
  padding: 0.2rem 0.8rem !important;
  font-family: var(--font-ui) !important;
  font-size: 0.76rem !important;
  font-weight: 600 !important;
  letter-spacing: 0 !important;
  text-transform: none !important;
  line-height: 1;
  color: var(--jp-muted-strong) !important;
  background: transparent !important;
  background-image: none !important;
  border: none !important;
  border-radius: 0 !important;
  box-shadow: none !important;
  cursor: pointer;
  transition: color 0.18s ease;
}

.page-shell--juris .juris-card__actions > *:first-child {
  padding-left: 0 !important;
}

.page-shell--juris .juris-card__actions > *:last-child {
  padding-right: 0 !important;
}

.page-shell--juris .juris-card__actions > *:not(:first-child)::before {
  content: "";
  position: absolute;
  left: 0;
  top: 28%;
  bottom: 28%;
  width: 1px;
  background: var(--jp-line-strong);
}

.page-shell--juris .juris-card__actions .juris-card__like-btn:hover,
.page-shell--juris .juris-card__actions .juris-card__like-btn:focus-visible,
.page-shell--juris .juris-card__actions .juris-card__report-btn:hover,
.page-shell--juris .juris-card__actions .juris-card__report-btn:focus-visible {
  color: var(--jp-ink) !important;
  text-decoration: underline;
  text-underline-offset: 0.28em;
  text-decoration-thickness: 1px;
  background: transparent !important;
  outline: none;
}

.page-shell--juris .juris-card__actions .juris-card__like-btn--on {
  color: var(--jp-peach-deep) !important;
}

.page-shell--juris .juris-card__actions .juris-card__like-icon {
  font-size: 0.92rem;
  line-height: 1;
}

/* Anciennes règles bouton générique (cartes non éditoriales : juris-wish
   etc.). On les conserve pour compatibilité. */
.page-shell--juris .juris-card__like-btn,
.page-shell--juris .juris-card__report-btn {
  display: inline-flex;
  align-items: center;
  gap: 0.32rem;
  padding: 0.28rem 0.65rem;
  font-family: var(--font-ui);
  font-size: 0.74rem;
  font-weight: 600;
  letter-spacing: 0;
  text-transform: none;
  color: var(--jp-muted-strong);
  background: transparent;
  background-image: none;
  border: none;
  border-radius: 0;
  box-shadow: none;
  cursor: pointer;
  transition: color 0.18s ease;
}

.page-shell--juris .juris-card__like-btn:hover,
.page-shell--juris .juris-card__like-btn:focus-visible,
.page-shell--juris .juris-card__report-btn:hover,
.page-shell--juris .juris-card__report-btn:focus-visible {
  color: var(--jp-ink);
  text-decoration: underline;
  text-underline-offset: 0.28em;
  text-decoration-thickness: 1px;
  background: transparent;
  outline: none;
}

/* Empilage du footer sur écran étroit (signature au-dessus des actions). */
@media (max-width: 540px) {
  .page-shell--juris .juris-card__footer {
    flex-direction: column;
    align-items: flex-start;
    gap: 0.5rem;
  }
  .page-shell--juris .juris-card__actions {
    margin-left: -0.8rem;
  }
}

/* --- Pagination --- */
.page-shell--juris .juris-pagination {
  margin: 1.1rem 0 0 !important;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 0.6rem;
}

.page-shell--juris .juris-page-btn {
  padding: 0.35rem 0.85rem !important;
  font-family: var(--font-ui) !important;
  font-size: 0.74rem !important;
  font-weight: 700 !important;
  letter-spacing: 0.04em !important;
  text-transform: none !important;
  color: var(--jp-ink) !important;
  background: #ffffff !important;
  background-image: none !important;
  border: 1px solid var(--jp-line-strong) !important;
  border-radius: 999px !important;
  box-shadow: none !important;
  cursor: pointer;
  transition: background 0.18s ease, border-color 0.18s ease, color 0.18s ease;
}

.page-shell--juris .juris-page-btn:hover:not([disabled]) {
  background: var(--jp-peach-wash) !important;
  border-color: var(--jp-peach) !important;
  color: var(--jp-ink) !important;
}

.page-shell--juris .juris-page-btn[disabled] {
  opacity: 0.4 !important;
  cursor: default;
}

.page-shell--juris .juris-page-info {
  font-family: var(--font-ui) !important;
  font-size: 0.78rem !important;
  font-weight: 600 !important;
  color: var(--jp-muted) !important;
}

/* --- État vide --- */
.page-shell--juris .juris-empty {
  margin: 0.85rem 0 0 !important;
  padding: 1rem 1.1rem !important;
  background: var(--jp-surface-soft) !important;
  border: 1px dashed var(--jp-line-strong) !important;
  border-radius: 12px !important;
  font-family: var(--font-ui) !important;
  font-size: 0.9rem !important;
  line-height: 1.5 !important;
  color: var(--jp-muted-strong) !important;
}

.page-shell--juris .juris-empty__help-btn {
  font-family: var(--font-ui) !important;
  font-weight: 700 !important;
  color: var(--jp-ink) !important;
  text-decoration: underline;
  text-underline-offset: 0.18em;
  text-decoration-thickness: 1px;
}

.page-shell--juris .juris-empty__help-btn:hover,
.page-shell--juris .juris-empty__help-btn:focus-visible {
  color: var(--jp-peach-deep) !important;
}

/* --- Bouton CTA principal (Enregistrer la fiche, Envoyer…) --- */
.page-shell--juris .juris-submit,
#juris-help-dialog .juris-submit,
#juris-error-report-dialog .juris-submit,
#juris-wish-renseigner-dialog .juris-submit {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 2.4rem;
  padding: 0.6rem 1.2rem !important;
  font-family: var(--font-ui) !important;
  font-size: 0.72rem !important;
  font-weight: 800 !important;
  letter-spacing: 0.14em !important;
  text-transform: uppercase;
  color: #ffffff !important;
  background: var(--jp-ink) !important;
  background-image: none !important;
  border: 1px solid var(--jp-ink) !important;
  border-radius: 999px !important;
  box-shadow: none !important;
  cursor: pointer;
  transition: background 0.18s ease, border-color 0.18s ease, color 0.18s ease;
  filter: none !important;
  transform: none !important;
}

.page-shell--juris .juris-submit:hover,
.page-shell--juris .juris-submit:focus-visible,
#juris-help-dialog .juris-submit:hover,
#juris-help-dialog .juris-submit:focus-visible,
#juris-error-report-dialog .juris-submit:hover,
#juris-error-report-dialog .juris-submit:focus-visible,
#juris-wish-renseigner-dialog .juris-submit:hover,
#juris-wish-renseigner-dialog .juris-submit:focus-visible {
  background: var(--jp-peach) !important;
  border-color: var(--jp-peach) !important;
  color: var(--jp-ink) !important;
  outline: none;
  filter: none !important;
  transform: none !important;
}

.page-shell--juris .juris-submit--small,
#juris-help-dialog .juris-submit--small,
#juris-error-report-dialog .juris-submit--small,
#juris-wish-renseigner-dialog .juris-submit--small {
  min-height: 2rem;
  padding: 0.42rem 0.95rem !important;
  font-size: 0.66rem !important;
  letter-spacing: 0.12em !important;
  color: var(--jp-ink) !important;
  background: #ffffff !important;
  border: 1px solid var(--jp-line-strong) !important;
}

.page-shell--juris .juris-submit--small:hover,
#juris-help-dialog .juris-submit--small:hover,
#juris-error-report-dialog .juris-submit--small:hover,
#juris-wish-renseigner-dialog .juris-submit--small:hover {
  background: var(--jp-peach-wash) !important;
  border-color: var(--jp-peach) !important;
  color: var(--jp-ink) !important;
}

.page-shell--juris .juris-request-form__actions,
.page-shell--juris .juris-help-dialog__actions,
#juris-help-dialog .juris-help-dialog__actions,
#juris-error-report-dialog .juris-help-dialog__actions,
#juris-wish-renseigner-dialog .juris-help-dialog__actions {
  display: flex;
  flex-wrap: wrap;
  gap: 0.55rem;
  justify-content: flex-end;
  margin-top: 0.4rem;
}

.page-shell--juris .juris-request-success {
  margin: 0.85rem 0 0 !important;
  padding: 0.85rem 1rem !important;
  background: var(--jp-surface-soft) !important;
  border: 1px solid var(--jp-line) !important;
  border-radius: 12px !important;
  font-family: var(--font-ui) !important;
  font-size: 0.92rem !important;
  font-weight: 600 !important;
  line-height: 1.5 !important;
  color: var(--jp-ink) !important;
}

/* --- Cartes "demande d'aide" (jurisprudences recherchées) --- */
.page-shell--juris .juris-demandes__wishlist {
  margin-top: 0.85rem;
  gap: 0.7rem;
}

.page-shell--juris .juris-wish-card {
  padding: 1.05rem 1.2rem 1rem !important;
  background: #ffffff !important;
  background-image: none !important;
  border: 1px solid var(--jp-line) !important;
  border-radius: 14px !important;
  box-shadow: var(--jp-shadow-card) !important;
  transition: border-color 0.18s ease, box-shadow 0.18s ease;
}

.page-shell--juris .juris-wish-card:hover {
  border-color: var(--jp-peach) !important;
  box-shadow: var(--jp-shadow-card-hover) !important;
}

.page-shell--juris .juris-wish-card__meta {
  margin: 0 0 0.5rem !important;
  font-family: var(--font-ui) !important;
  font-size: 0.66rem !important;
  font-weight: 800 !important;
  letter-spacing: 0.14em !important;
  text-transform: uppercase;
  color: var(--jp-peach-deep) !important;
}

.page-shell--juris .juris-wish-card__text {
  margin: 0 !important;
  font-family: var(--font-ui) !important;
  font-size: 0.95rem !important;
  font-weight: 500 !important;
  line-height: 1.5 !important;
  color: var(--jp-ink-soft) !important;
  white-space: pre-wrap;
}

.page-shell--juris .juris-wish-card__foot {
  margin-top: 0.85rem !important;
  padding-top: 0.65rem !important;
  border-top: 1px solid var(--jp-line) !important;
}

.page-shell--juris .juris-wish-card__answers-title {
  margin: 0 0 0.45rem !important;
  font-family: var(--font-ui) !important;
  font-size: 0.66rem !important;
  font-weight: 800 !important;
  letter-spacing: 0.14em !important;
  text-transform: uppercase;
  color: var(--jp-muted) !important;
}

.page-shell--juris .juris-wish-card__answer-who {
  font-family: var(--font-ui) !important;
  font-size: 0.7rem !important;
  font-weight: 700 !important;
  letter-spacing: 0.06em !important;
  text-transform: uppercase;
  color: var(--jp-ink) !important;
}

.page-shell--juris .juris-wish-card__answer-where {
  font-family: var(--font-ui) !important;
  font-size: 0.88rem !important;
  font-weight: 500 !important;
  line-height: 1.5 !important;
  color: var(--jp-ink-soft) !important;
}

.page-shell--juris .juris-wish-card__warn {
  font-family: var(--font-ui) !important;
  font-size: 0.86rem !important;
  line-height: 1.5 !important;
  color: var(--jp-muted-strong) !important;
}

.page-shell--juris .juris-wish-card__warn a {
  color: var(--jp-ink) !important;
  font-weight: 700;
  text-decoration: underline;
  text-underline-offset: 0.18em;
}

.page-shell--juris .juris-wish-card__warn a:hover {
  color: var(--jp-peach-deep) !important;
}

/* --- Dialogs (help, error report, wish renseigner) --- */
#juris-help-dialog,
#juris-error-report-dialog,
#juris-wish-renseigner-dialog {
  width: min(480px, 94vw) !important;
  max-height: min(88vh, 640px) !important;
  padding: 0 !important;
  background: #ffffff !important;
  background-image: none !important;
  border: 1px solid var(--jp-line) !important;
  border-radius: 18px !important;
  box-shadow: var(--jp-shadow-dialog) !important;
  color: var(--jp-ink) !important;
}

#juris-wish-renseigner-dialog {
  width: min(560px, 94vw) !important;
  max-height: min(92vh, 720px) !important;
}

/* "Demande d'aide" : pas de scroll interne, contenu visible en entier d'un coup et centré dans la page */
#juris-help-dialog {
  inset: 0 !important;
  margin: auto !important;
  height: -moz-fit-content !important;
  height: fit-content !important;
  max-height: 95vh !important;
  overflow: visible !important;
}

#juris-help-dialog .juris-help-dialog__inner {
  max-height: none !important;
  height: auto !important;
  overflow: visible !important;
}

#juris-help-dialog .juris-wish-form {
  gap: 0.85rem !important;
  margin-bottom: 0 !important;
}

#juris-help-dialog::backdrop,
#juris-error-report-dialog::backdrop,
#juris-wish-renseigner-dialog::backdrop {
  background: rgba(16, 16, 16, 0.42) !important;
  backdrop-filter: blur(2px);
}

#juris-help-dialog .juris-help-dialog__inner,
#juris-error-report-dialog .juris-help-dialog__inner,
#juris-wish-renseigner-dialog .juris-help-dialog__inner {
  padding: 1.55rem 1.6rem 1.6rem !important;
}

#juris-help-dialog .juris-help-dialog__close,
#juris-wish-renseigner-dialog .juris-help-dialog__close {
  top: 0.6rem;
  right: 0.6rem;
  width: 2.1rem;
  height: 2.1rem;
  background: transparent !important;
  border: 1px solid transparent !important;
  border-radius: 50% !important;
  color: var(--jp-muted) !important;
  box-shadow: none !important;
  cursor: pointer;
  font-size: 1.4rem;
  transition: background 0.18s ease, color 0.18s ease, border-color 0.18s ease;
}

#juris-help-dialog .juris-help-dialog__close:hover,
#juris-wish-renseigner-dialog .juris-help-dialog__close:hover {
  background: var(--jp-peach-wash) !important;
  border-color: var(--jp-peach) !important;
  color: var(--jp-ink) !important;
}

#juris-help-dialog .juris-help-dialog__title,
#juris-error-report-dialog .juris-help-dialog__title,
#juris-wish-renseigner-dialog .juris-help-dialog__title {
  margin: 0 2.5rem 0.85rem 0 !important;
  font-family: "Fraunces", Georgia, "Times New Roman", serif !important;
  font-size: 1.35rem !important;
  font-weight: 700 !important;
  letter-spacing: -0.02em !important;
  color: var(--jp-ink) !important;
}

#juris-help-dialog .juris-help-dialog__body p,
#juris-error-report-dialog .juris-help-dialog__body p,
#juris-wish-renseigner-dialog .juris-help-dialog__body p {
  font-family: var(--font-ui) !important;
  font-size: 0.92rem !important;
  font-weight: 500 !important;
  line-height: 1.55 !important;
  color: var(--jp-ink-soft) !important;
}

#juris-help-dialog .juris-help-dialog__lead,
#juris-error-report-dialog .juris-help-dialog__lead,
#juris-wish-renseigner-dialog .juris-help-dialog__lead {
  font-family: "Fraunces", Georgia, "Times New Roman", serif !important;
  font-size: 1rem !important;
  font-weight: 600 !important;
  color: var(--jp-ink) !important;
}

#juris-error-report-dialog .juris-error-report__summary,
#juris-help-dialog .juris-error-report__summary {
  background: var(--jp-surface-soft) !important;
  border: 1px solid var(--jp-line) !important;
  border-radius: 10px !important;
  font-family: var(--font-ui) !important;
  font-size: 0.86rem !important;
  font-weight: 500 !important;
  line-height: 1.5 !important;
  color: var(--jp-ink-soft) !important;
}

/* Champs à l'intérieur des dialogs (héritent des juris-* mais on force le scope dialog pour passer devant les anciens styles) */
#juris-help-dialog .juris-input,
#juris-help-dialog .juris-select,
#juris-help-dialog .juris-textarea,
#juris-error-report-dialog .juris-input,
#juris-error-report-dialog .juris-select,
#juris-error-report-dialog .juris-textarea,
#juris-wish-renseigner-dialog .juris-input,
#juris-wish-renseigner-dialog .juris-select,
#juris-wish-renseigner-dialog .juris-textarea {
  background: #ffffff !important;
  border: 1px solid var(--jp-line-strong) !important;
  border-radius: 10px !important;
  color: var(--jp-ink) !important;
  font-family: var(--font-ui) !important;
  font-size: 0.94rem !important;
  font-weight: 500 !important;
  padding: 0.6rem 0.75rem !important;
  box-shadow: none !important;
}

#juris-help-dialog .juris-input:focus,
#juris-help-dialog .juris-select:focus,
#juris-help-dialog .juris-textarea:focus,
#juris-error-report-dialog .juris-input:focus,
#juris-error-report-dialog .juris-select:focus,
#juris-error-report-dialog .juris-textarea:focus,
#juris-wish-renseigner-dialog .juris-input:focus,
#juris-wish-renseigner-dialog .juris-select:focus,
#juris-wish-renseigner-dialog .juris-textarea:focus {
  outline: none !important;
  border-color: var(--jp-peach-deep) !important;
  box-shadow: 0 0 0 3px var(--jp-peach-wash-strong) !important;
}

#juris-help-dialog .juris-label,
#juris-error-report-dialog .juris-label,
#juris-wish-renseigner-dialog .juris-label {
  font-family: var(--font-ui) !important;
  font-size: 0.74rem !important;
  font-weight: 800 !important;
  letter-spacing: 0.14em !important;
  text-transform: uppercase;
  color: #0a0a0a !important;
  display: inline-block;
  margin-bottom: 0.4rem !important;
}

#juris-help-dialog .juris-radio,
#juris-wish-renseigner-dialog .juris-radio {
  color: var(--jp-ink) !important;
  font-family: var(--font-ui) !important;
}

#juris-help-dialog .juris-radio input,
#juris-wish-renseigner-dialog .juris-radio input,
#juris-help-dialog .juris-check input {
  accent-color: var(--jp-ink) !important;
}

#juris-wish-renseigner-dialog .juris-ref-method {
  background: var(--jp-surface-soft) !important;
  border: 1px solid var(--jp-line) !important;
}

#juris-wish-renseigner-dialog .juris-ref-method__title,
#juris-wish-renseigner-dialog .juris-ref-method__text {
  color: var(--jp-ink-soft) !important;
}

#juris-wish-renseigner-dialog .juris-ref-method__title {
  color: var(--jp-muted) !important;
}

/* Layout vertical des formulaires submit/wishlist : un peu plus aéré */
.page-shell--juris .juris-submit-jp-form,
.page-shell--juris .juris-wish-form,
#juris-help-dialog .juris-wish-form,
#juris-error-report-dialog .juris-wish-form,
#juris-wish-renseigner-dialog .juris-submit-jp-form {
  display: flex;
  flex-direction: column;
  gap: 1.05rem;
  margin-top: 0.35rem;
}

.page-shell--juris .juris-field {
  gap: 0.45rem;
}

/* Liens dans le contenu : ton ink + underline pêche au hover */
.page-shell--juris a {
  color: var(--jp-ink) !important;
}

.page-shell--juris a:hover,
.page-shell--juris a:focus-visible {
  color: var(--jp-peach-deep) !important;
}

/* Focus visible global de la page : pêche, dans la cohérence du site */
.page-shell--juris *:focus-visible {
  outline: 2px solid var(--jp-peach) !important;
  outline-offset: 2px;
}

/* =====================================================================
   Juris-partage — "Jurisprudence à la une" : carte HERO
   Calque sur le rendu de la veille hero : topline 3 cellules avec lignes
   noires horizontales, titre Bodoni Moda 800 uppercase justifié, extrait
   en Fraunces, footer style pied de journal (séparateurs verticaux).
   ===================================================================== */
.page-shell--juris .juris-card.juris-card--hero {
  padding: 2.25rem 2.4rem 2rem !important;
  background: #ffffff !important;
  background-image: none !important;
  border: 1px solid var(--jp-line) !important;
  border-radius: 10px !important;
  box-shadow: var(--jp-shadow-card) !important;
  display: flex;
  flex-direction: column;
  gap: 1.6rem;
  transition: border-color 0.18s ease, box-shadow 0.18s ease, transform 0.18s ease;
}

@media (max-width: 640px) {
  .page-shell--juris .juris-card.juris-card--hero {
    padding: 1.5rem 1.35rem 1.4rem !important;
    gap: 1.25rem;
  }
}

.page-shell--juris .juris-card.juris-card--hero:hover {
  border-color: var(--jp-peach) !important;
  box-shadow: var(--jp-shadow-card-hover) !important;
  transform: translateY(-1px);
}

/* Topline : 1 à 3 cellules entre 2 lignes horizontales noires */
.page-shell--juris .juris-card--hero .juris-card__topline {
  display: flex;
  flex-wrap: nowrap;
  align-items: stretch;
  gap: 0;
  margin: 0;
  padding: 0;
  border-top: 2px solid var(--jp-ink);
  border-bottom: 2px solid var(--jp-ink);
}

.page-shell--juris .juris-card--hero .juris-card__topline-cell {
  margin: 0;
  flex: 1 1 0;
  min-width: 0;
  padding: 0.85rem 1rem;
  text-align: center;
  font-family: "Fraunces", Georgia, "Times New Roman", serif !important;
  font-size: 0.72rem !important;
  font-weight: 600 !important;
  letter-spacing: 0.18em !important;
  text-transform: uppercase;
  color: var(--jp-ink) !important;
  border-left: 1px solid rgba(16, 16, 16, 0.45);
  line-height: 1.25;
}

/* Variante mono-cellule (matière uniquement) : on retire le séparateur
   vertical du début et on garde simplement les deux traits horizontaux
   noirs qui encadrent la matière, centrée. */
.page-shell--juris .juris-card--hero .juris-card__topline--single {
  justify-content: center;
}

.page-shell--juris .juris-card--hero .juris-card__topline--single .juris-card__topline-cell {
  flex: 0 1 auto;
  border-left: none;
  padding: 0.85rem 1.2rem;
}

.page-shell--juris .juris-card--hero .juris-card__topline-cell--kicker {
  border-left: none;
}

/* Body */
.page-shell--juris .juris-card--hero .juris-card__body {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 0.95rem;
  margin: 0;
  padding: 0.5rem 0.1rem 0.25rem;
}

.page-shell--juris .juris-card--hero .juris-card__hero-title {
  margin: 0;
  font-family: "Bodoni Moda", "Bodoni MT", Didot, "Libre Bodoni", Georgia, serif !important;
  font-weight: 550 !important;
  font-size: clamp(1.3rem, 2.7vw, 2rem) !important;
  line-height: 1.08 !important;
  letter-spacing: -0.012em !important;
  text-transform: uppercase;
  color: var(--jp-ink) !important;
  text-align: justify;
  text-align-last: left;
  hyphens: none !important;
  -webkit-hyphens: none !important;
  word-break: normal !important;
  overflow-wrap: normal !important;
  font-feature-settings: "kern" 1, "liga" 1;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

.page-shell--juris .juris-card--hero .juris-card__hero-reference {
  margin: 0;
  font-family: var(--font-ui) !important;
  font-size: 0.76rem !important;
  font-weight: 700 !important;
  line-height: 1.4 !important;
  letter-spacing: 0.08em !important;
  text-transform: uppercase;
  color: var(--jp-muted-strong) !important;
  font-variant-numeric: tabular-nums;
}

.page-shell--juris .juris-card--hero .juris-card__hero-excerpt {
  margin: 0;
  max-width: 46rem;
  font-family: "Fraunces", Georgia, "Times New Roman", serif !important;
  font-size: 0.98rem !important;
  font-weight: 500 !important;
  line-height: 1.55 !important;
  color: var(--jp-ink-soft) !important;
  text-align: justify;
  text-align-last: left;
  hyphens: manual;
  -webkit-hyphens: manual;
}

/* Footer : byline italique + actions style pied de journal */
.page-shell--juris .juris-card--hero .juris-card__hero-foot {
  margin-top: 0.55rem;
  padding-top: 1.05rem;
  border-top: 1px solid var(--jp-line-strong);
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.6rem;
  flex-wrap: wrap;
}

.page-shell--juris .juris-card--hero .juris-card__hero-byline {
  margin: 0;
  font-family: "Fraunces", Georgia, "Times New Roman", serif !important;
  font-style: italic;
  font-size: 0.85rem !important;
  font-weight: 500 !important;
  letter-spacing: 0.005em !important;
  color: var(--jp-muted) !important;
}

.page-shell--juris .juris-card--hero .juris-card__hero-actions {
  display: flex;
  align-items: center;
  gap: 0;
  flex-shrink: 0;
}

/* Petits boutons d'action style pied de journal (séparateurs verticaux) */
.page-shell--juris .juris-card--hero .juris-card__hero-actions .juris-card__like-btn,
.page-shell--juris .juris-card--hero .juris-card__hero-actions .juris-card__report-btn {
  position: relative;
  display: inline-flex;
  align-items: center;
  gap: 0.32rem;
  min-height: 1.7rem;
  margin: 0 !important;
  padding: 0.22rem 0.85rem !important;
  font-family: var(--font-ui) !important;
  font-size: 0.78rem !important;
  font-weight: 600 !important;
  letter-spacing: 0 !important;
  text-transform: none !important;
  line-height: 1;
  color: var(--jp-muted-strong) !important;
  background: transparent !important;
  background-image: none !important;
  border: none !important;
  border-radius: 0 !important;
  box-shadow: none !important;
  cursor: pointer;
  transition: color 0.18s ease;
}

.page-shell--juris .juris-card--hero .juris-card__hero-actions > *:not(:first-child)::before {
  content: "";
  position: absolute;
  left: 0;
  top: 28%;
  bottom: 28%;
  width: 1px;
  background: var(--jp-line-strong);
}

.page-shell--juris .juris-card--hero .juris-card__hero-actions .juris-card__like-btn:hover,
.page-shell--juris .juris-card--hero .juris-card__hero-actions .juris-card__like-btn:focus-visible,
.page-shell--juris .juris-card--hero .juris-card__hero-actions .juris-card__report-btn:hover,
.page-shell--juris .juris-card--hero .juris-card__hero-actions .juris-card__report-btn:focus-visible {
  color: var(--jp-ink) !important;
  text-decoration: underline;
  text-underline-offset: 0.28em;
  text-decoration-thickness: 1px;
  background: transparent !important;
  outline: none;
}

.page-shell--juris .juris-card--hero .juris-card__like-btn--on {
  color: var(--jp-peach-deep) !important;
}

.page-shell--juris .juris-card--hero .juris-card__like-icon {
  font-size: 0.92rem;
  line-height: 1;
}

/* Bloc spotlight : on neutralise sa carte de section pour laisser la hero respirer */
.page-shell--juris .juris-spotlight {
  padding: 0 !important;
  background: transparent !important;
  border: none !important;
  box-shadow: none !important;
}

.page-shell--juris .juris-spotlight__title {
  margin: 0.25rem 0 0.65rem !important;
}

.page-shell--juris .juris-list--spotlight {
  margin: 0 !important;
  padding: 0 !important;
  list-style: none;
}

/* Responsive : topline empilé sur petites largeurs */
@media (max-width: 580px) {
  .page-shell--juris .juris-card--hero .juris-card__topline {
    flex-wrap: wrap;
  }
  .page-shell--juris .juris-card--hero .juris-card__topline-cell {
    flex: 1 1 100%;
    border-left: none;
    border-top: 1px solid rgba(16, 16, 16, 0.18);
    padding: 0.4rem 0.5rem;
  }
  .page-shell--juris .juris-card--hero .juris-card__topline-cell--kicker {
    border-top: none;
  }
  .page-shell--juris .juris-card--hero .juris-card__hero-foot {
    flex-direction: column;
    align-items: flex-start;
    gap: 0.5rem;
  }
}

/* =====================================================================
   Planner — pass DA finale (noir / blanc / touches pêche discrètes)
   Aligne la page Planner sur la DA globale : surfaces blanches, texte
   noir, accents pêche (#efb899) ponctuels. Neutralise les surcouches
   bordeaux / beige / cherry / dégradés héritées des itérations
   précédentes. Aucune modification de typo (taille, poids, famille,
   tracking, casse) : uniquement couleurs, fonds, bordures, ombres.
   ===================================================================== */
:root {
  --pl-ink: #101010;
  --pl-ink-soft: #2c2c2c;
  --pl-muted: #6b6b6b;
  --pl-muted-strong: #4a4a4a;
  --pl-line: rgba(16, 16, 16, 0.1);
  --pl-line-strong: rgba(16, 16, 16, 0.22);
  --pl-peach: var(--cherry);
  --pl-peach-deep: var(--cherry-dark);
  --pl-peach-wash: var(--cherry-wash);
  --pl-peach-wash-strong: var(--cherry-wash-strong);
  --pl-surface: #ffffff;
  --pl-surface-soft: #fafafa;
  --pl-shadow-card: 0 1px 2px rgba(16, 16, 16, 0.04);
  --pl-shadow-card-hover: 0 8px 22px rgba(16, 16, 16, 0.07);
  --pl-shadow-dialog: 0 24px 60px rgba(16, 16, 16, 0.22);
}

/* --- Fond de page : blanc, sans gradient hérité --- */
body.subject-body:has(.page-shell--planner) {
  background: #ffffff !important;
  background-image: none !important;
  color: var(--pl-ink) !important;
}

/* --- Cadre principal de la page --- */
.page-shell--planner {
  background: #ffffff !important;
  background-image: none !important;
  border: 1px solid var(--pl-line) !important;
  box-shadow:
    0 1px 2px rgba(16, 16, 16, 0.03),
    0 14px 40px rgba(16, 16, 16, 0.05) !important;
  color: var(--pl-ink) !important;
}

.page-shell--planner .page-shell__title {
  color: var(--pl-ink) !important;
}

.page-shell--planner .page-shell__title::after {
  content: none !important;
  display: none !important;
}

.page-shell--planner .page-shell__lead {
  color: var(--pl-muted-strong) !important;
}

/* --- Mantra "get Organized stay Focused!" --- */
.page-shell--planner .planner-mantra,
.page-shell--planner .planner-mantra__script,
.page-shell--planner .planner-mantra__main {
  color: var(--pl-ink) !important;
}

/* --- Conteneur calendrier --- */
.page-shell--planner .planner {
  background: transparent !important;
  background-image: none !important;
  border: none !important;
  box-shadow: none !important;
}

/* --- Chrome : ligne d'onglets + bouton ajouter --- */
.page-shell--planner .planner__chrome {
  border-bottom: 1px solid var(--pl-line) !important;
}

.page-shell--planner .planner__view-tabs {
  background: var(--pl-surface-soft) !important;
  border: 1px solid var(--pl-line) !important;
}

.page-shell--planner .planner__view-tab {
  background: transparent !important;
  color: var(--pl-muted-strong) !important;
  border-color: transparent !important;
  box-shadow: none !important;
}

.page-shell--planner .planner__view-tab:hover {
  background: var(--pl-peach-wash) !important;
  color: var(--pl-ink) !important;
}

.page-shell--planner .planner__view-tab[aria-selected="true"] {
  background: var(--pl-ink) !important;
  color: #ffffff !important;
  border-color: var(--pl-ink) !important;
  box-shadow: none !important;
}

.page-shell--planner .planner__view-tab[aria-selected="true"]:hover {
  background: #000000 !important;
  color: #ffffff !important;
}

.page-shell--planner .planner__today-btn {
  background: #ffffff !important;
  color: var(--pl-ink) !important;
  border: 1px solid var(--pl-line-strong) !important;
  box-shadow: none !important;
}

.page-shell--planner .planner__today-btn:hover {
  background: var(--pl-peach-wash) !important;
  border-color: var(--pl-peach) !important;
  color: var(--pl-ink) !important;
}

.page-shell--planner .planner__add-task-tab {
  background: #ffffff !important;
  border: 1px dashed var(--pl-line-strong) !important;
  color: var(--pl-ink) !important;
}

.page-shell--planner .planner__add-task-tab:hover {
  background: var(--pl-peach-wash) !important;
  border-color: var(--pl-peach) !important;
  border-style: solid !important;
  color: var(--pl-ink) !important;
}

/* --- Toolbar (← Mars 2026 →) --- */
.page-shell--planner .planner__toolbar {
  color: var(--pl-ink) !important;
}

.page-shell--planner .planner__range-label,
.page-shell--planner .planner__month-label {
  color: var(--pl-ink) !important;
}

.page-shell--planner .planner__nav-btn {
  background: #ffffff !important;
  color: var(--pl-ink) !important;
  border: 1px solid var(--pl-line-strong) !important;
  box-shadow: none !important;
}

.page-shell--planner .planner__nav-btn:hover {
  background: var(--pl-peach-wash) !important;
  border-color: var(--pl-peach) !important;
  color: var(--pl-ink) !important;
}

/* --- Grille mois --- */
.page-shell--planner .planner__weekdays span {
  color: var(--pl-muted) !important;
}

.page-shell--planner .planner__cell {
  background: var(--pl-surface) !important;
  border: 1px solid var(--pl-line) !important;
  color: var(--pl-ink) !important;
  box-shadow: none !important;
}

.page-shell--planner .planner__cell--muted {
  background: var(--pl-surface-soft) !important;
  color: var(--pl-muted) !important;
}

.page-shell--planner .planner__cell--today {
  background: var(--pl-ink) !important;
  color: #ffffff !important;
  border-color: var(--pl-ink) !important;
}

.page-shell--planner .planner__cell--grand-jour {
  background: var(--pl-peach-wash) !important;
  border-color: var(--pl-peach) !important;
  box-shadow: inset 0 0 0 1px var(--pl-peach-wash-strong) !important;
  color: var(--pl-ink) !important;
}

.page-shell--planner .planner__cell--grand-jour.planner__cell--today {
  background: var(--pl-ink) !important;
  color: #ffffff !important;
  border-color: var(--pl-ink) !important;
  box-shadow: inset 0 0 0 2px var(--pl-peach) !important;
}

.page-shell--planner .planner__cell-inner:focus-visible {
  outline: 2px solid var(--pl-peach) !important;
  outline-offset: 2px;
}

.page-shell--planner .planner__cell-badge {
  color: var(--pl-peach-deep) !important;
}

.page-shell--planner .planner__cell--today .planner__cell-badge {
  color: var(--pl-peach) !important;
  opacity: 1 !important;
}

.page-shell--planner .planner__cell-dot {
  background: var(--pl-ink) !important;
  opacity: 0.6 !important;
}

.page-shell--planner .planner__cell--today .planner__cell-dot {
  background: #ffffff !important;
  opacity: 0.95 !important;
}

.page-shell--planner .planner__month-task-more {
  color: var(--pl-muted) !important;
}

/* --- Time grid (jour / semaine) --- */
.page-shell--planner .planner-timegrid {
  background: var(--pl-surface) !important;
  border: 1px solid var(--pl-line) !important;
  box-shadow: var(--pl-shadow-card) !important;
}

.page-shell--planner .planner-timegrid__tz {
  color: var(--pl-muted) !important;
}

.page-shell--planner .planner-timegrid__head {
  background: var(--pl-surface-soft) !important;
  border-bottom: 1px solid var(--pl-line) !important;
}

.page-shell--planner .planner-timegrid__corner {
  border-right: 1px solid var(--pl-line) !important;
}

.page-shell--planner .planner-timegrid__dayhead {
  border-left: 1px solid var(--pl-line) !important;
}

.page-shell--planner .planner-timegrid__dow {
  color: var(--pl-muted) !important;
}

.page-shell--planner .planner-timegrid__dom-wrap {
  color: var(--pl-ink) !important;
  background: transparent !important;
}

.page-shell--planner .planner-timegrid__dayhead--today .planner-timegrid__dom-wrap {
  background: var(--pl-ink) !important;
  color: #ffffff !important;
}

.page-shell--planner .planner-timegrid__dayhead--grand .planner-timegrid__dow {
  color: var(--pl-peach-deep) !important;
}

/* Toutes les heures (06:00 → 21:00) visibles d'un coup, sans scroll interne :
   on désactive la zone scrollable + on densifie légèrement les créneaux. */
.page-shell--planner .planner-timegrid {
  --planner-slot: 36px !important;
}

.page-shell--planner .planner-timegrid__scroll {
  overflow: visible !important;
  max-height: none !important;
}

.page-shell--planner .planner-timegrid__allday {
  background: var(--pl-surface-soft) !important;
  border-bottom: 1px solid var(--pl-line) !important;
}

.page-shell--planner .planner-timegrid__allday-label {
  color: var(--pl-muted) !important;
  border-right: 1px solid var(--pl-line) !important;
}

.page-shell--planner .planner-timegrid__allday-cell {
  border-left: 1px solid var(--pl-line) !important;
}

.page-shell--planner .planner-timegrid__allday-chip {
  /* Couleur de fond/texte/bordure définies en inline par plannerTaskDecoration
     (couleur prédéfinie de la matière, avec un !important pour battre la règle
     globale qui force tous les <button> en noir). */
  font-weight: 700 !important;
}

.page-shell--planner .planner-timegrid__gutter {
  background: var(--pl-surface) !important;
  border-right: 1px solid var(--pl-line) !important;
}

.page-shell--planner .planner-timegrid__hour-label {
  color: var(--pl-muted) !important;
}

.page-shell--planner .planner-timegrid__col {
  border-left: 1px solid var(--pl-line) !important;
  background-image: repeating-linear-gradient(
    to bottom,
    transparent 0,
    transparent calc(var(--planner-slot) - 1px),
    rgba(16, 16, 16, 0.07) calc(var(--planner-slot) - 1px),
    rgba(16, 16, 16, 0.07) var(--planner-slot)
  ) !important;
}

.page-shell--planner .planner-timegrid__col--today {
  background-color: var(--pl-peach-wash) !important;
}

.page-shell--planner .planner-timegrid__col--grand {
  box-shadow: inset 0 0 0 1px var(--pl-peach-wash-strong) !important;
}

.page-shell--planner .planner-timegrid__event {
  border-width: 1px !important;
  border-style: solid !important;
  /* border-color + background + color : définis en inline (couleur matière) */
  border-radius: 8px !important;
  box-shadow: 0 1px 2px rgba(16, 16, 16, 0.05) !important;
  padding: 0 !important;
}

/* Poignées de redimensionnement plus discrètes pour libérer la place au titre */
.page-shell--planner .planner-timegrid__event-resize {
  min-height: 4px !important;
  max-height: 5px !important;
  background: transparent !important;
}

/* Cartes événements : on masque l'heure en surcouche, seul le titre reste */
.page-shell--planner .planner-timegrid__event-time {
  display: none !important;
}

.page-shell--planner .planner-timegrid__event-body {
  justify-content: center !important;
  padding: 0.2rem 0.45rem !important;
}

.page-shell--planner .planner-timegrid__event-title {
  display: -webkit-box !important;
  -webkit-line-clamp: 3 !important;
  -webkit-box-orient: vertical !important;
  overflow: hidden !important;
  font-size: 0.78rem !important;
  font-weight: 700 !important;
  line-height: 1.15 !important;
  letter-spacing: -0.005em !important;
  white-space: normal !important;
  word-break: break-word !important;
  hyphens: manual !important;
  color: inherit !important;
}

.page-shell--planner .planner-timegrid__event--selected {
  box-shadow:
    0 0 0 2px var(--pl-peach),
    0 2px 8px rgba(16, 16, 16, 0.12) !important;
  border-color: var(--pl-peach-deep) !important;
}

.page-shell--planner .planner-timegrid__event--dragging {
  box-shadow:
    0 10px 28px rgba(16, 16, 16, 0.22),
    0 0 0 2px var(--pl-peach) !important;
}

/* --- Vue semaine --- */
.page-shell--planner .planner__week-cell {
  background: var(--pl-surface) !important;
  border: 1px solid var(--pl-line) !important;
}

.page-shell--planner .planner__week-cell--muted {
  background: var(--pl-surface-soft) !important;
}

.page-shell--planner .planner__week-cell--today {
  border-color: var(--pl-ink) !important;
  box-shadow: 0 0 0 1px var(--pl-ink) !important;
}

.page-shell--planner .planner__week-cell--grand {
  border-color: var(--pl-peach) !important;
  background: var(--pl-peach-wash) !important;
}

.page-shell--planner .planner__week-dow {
  color: var(--pl-muted) !important;
}

.page-shell--planner .planner__week-datebtn {
  color: var(--pl-ink) !important;
}

.page-shell--planner .planner__week-datebtn:focus-visible {
  outline: 2px solid var(--pl-peach) !important;
}

.page-shell--planner .planner__week-num {
  color: var(--pl-ink) !important;
}

.page-shell--planner .planner__week-tasks {
  color: var(--pl-ink) !important;
}

.page-shell--planner .planner__week-task {
  background: var(--pl-peach-wash) !important;
  color: var(--pl-ink) !important;
}

/* --- Vue jour seul --- */
.page-shell--planner .planner__day-single {
  background: var(--pl-surface) !important;
  border: 1px solid var(--pl-line) !important;
}

/* --- Vue année (mini-mois) --- */
.page-shell--planner .planner__year-mini {
  background: var(--pl-surface) !important;
  border: 1px solid var(--pl-line) !important;
  color: var(--pl-ink) !important;
}

.page-shell--planner .planner__year-mini:hover {
  border-color: var(--pl-peach) !important;
  box-shadow: var(--pl-shadow-card-hover) !important;
}

.page-shell--planner .planner__year-mini:focus-visible {
  outline: 2px solid var(--pl-peach) !important;
}

.page-shell--planner .planner__year-mini-title {
  color: var(--pl-ink) !important;
}

.page-shell--planner .planner__year-mini-day {
  color: var(--pl-muted) !important;
}

.page-shell--planner .planner__year-mini-day--in {
  color: var(--pl-ink) !important;
  background: var(--pl-surface-soft) !important;
}

.page-shell--planner .planner__year-mini-day--grand {
  background: var(--pl-peach-wash-strong) !important;
  color: var(--pl-peach-deep) !important;
}

.page-shell--planner .planner__year-mini-day--today {
  outline: 1px solid var(--pl-ink) !important;
}

/* --- To-do panel : conteneur transparent --- */
.page-shell--planner .planner-todo {
  margin-top: 2.75rem !important;
  padding: 0 !important;
  border-radius: 0 !important;
  background: transparent !important;
  background-image: none !important;
  border: none !important;
  box-shadow: none !important;
}

@media (max-width: 640px) {
  .page-shell--planner .planner-todo {
    margin-top: 1.75rem !important;
  }
}

/* Les 3 cartes (aujourd'hui / retards / demain) — visuellement distinctes */
.page-shell--planner .planner-todo-panel--active {
  display: flex !important;
  flex-direction: column !important;
  gap: 2.5rem !important;
}

.page-shell--planner .planner-todo-card {
  margin: 0 !important;
  padding: 2rem 2.2rem 2.2rem !important;
  border-radius: 22px !important;
  background: var(--pl-surface) !important;
  border: none !important;
  box-shadow: var(--pl-shadow-card) !important;
}

@media (max-width: 640px) {
  .page-shell--planner .planner-todo-panel--active {
    gap: 1.75rem !important;
  }
  .page-shell--planner .planner-todo-card {
    padding: 1.4rem 1.35rem 1.5rem !important;
    border-radius: 18px !important;
  }
}

/* Aujourd'hui : surface blanche + ombre douce (focal point) */
.page-shell--planner .planner-todo-card--today {
  background: #ffffff !important;
  box-shadow:
    0 1px 2px rgba(16, 16, 16, 0.04),
    0 10px 28px rgba(16, 16, 16, 0.06) !important;
}

/* Retards : surface gris léger (cohérence noir & blanc) */
.page-shell--planner .planner-todo-card--backlog {
  background: var(--pl-surface-soft) !important;
  box-shadow: 0 1px 2px rgba(16, 16, 16, 0.03) !important;
}

/* Demain : surface gris très léger (anticipation, secondaire) */
.page-shell--planner .planner-todo-card--tomorrow {
  background: var(--pl-surface-soft) !important;
  box-shadow: 0 1px 2px rgba(16, 16, 16, 0.03) !important;
}

/* En-tête de section centré + un peu plus respirant */
.page-shell--planner .planner-todo__header {
  margin: 0 auto 1.4rem !important;
  padding: 0 0 1rem !important;
  border-bottom: 1px solid var(--pl-line) !important;
  text-align: center !important;
}

.page-shell--planner .planner-todo__header--tomorrow {
  border-color: var(--pl-line) !important;
}

.page-shell--planner .planner-todo__title {
  margin: 0 0 0.55rem !important;
  font-family: "Fraunces", Georgia, "Times New Roman", serif !important;
  font-size: clamp(2rem, 4.4vw, 2.75rem) !important;
  font-weight: 800 !important;
  letter-spacing: -0.025em !important;
  line-height: 1.05 !important;
  text-align: center !important;
  color: #000000 !important;
}

.page-shell--planner .planner-todo__calendar-line {
  font-family: var(--font-ui) !important;
  font-size: clamp(1.05rem, 1.8vw, 1.2rem) !important;
  font-weight: 600 !important;
  letter-spacing: 0 !important;
  line-height: 1.3 !important;
  text-align: center !important;
  color: var(--pl-muted-strong) !important;
}

/* "Travaux en retards" et "To-do de demain" : titres secondaires plus
   grands aussi (un cran en dessous de "To-do du jour") + date dessous. */
.page-shell--planner .planner-todo__header--replan .planner-todo__title,
.page-shell--planner .planner-todo__header--tomorrow .planner-todo__title {
  font-size: clamp(1.5rem, 3vw, 1.95rem) !important;
  font-weight: 800 !important;
}

.page-shell--planner .planner-todo__header--tomorrow .planner-todo__calendar-line {
  font-size: clamp(1rem, 1.6vw, 1.1rem) !important;
}

.page-shell--planner .planner-todo__hint {
  color: var(--pl-muted) !important;
}

.page-shell--planner .planner-todo__subtitle {
  color: var(--pl-muted) !important;
}

.page-shell--planner .planner-todo__list--tasks {
  background: transparent !important;
  border: none !important;
}

.page-shell--planner .planner-todo__item {
  background: var(--pl-surface) !important;
  border: 1px solid var(--pl-line) !important;
  box-shadow: none !important;
}

/* Empty state : un peu plus stylé (centré, italique discret) */
.page-shell--planner .planner-todo__empty {
  padding: 0.85rem 0.5rem !important;
  text-align: center !important;
  color: var(--pl-muted) !important;
  font-style: italic;
}

.page-shell--planner .planner-todo__item-row::before {
  background: var(--pl-peach) !important;
  border-color: transparent !important;
  box-shadow: 0 0 0 2px var(--pl-peach-wash) !important;
}

.page-shell--planner .planner-todo__item--done .planner-todo__item-row::before {
  background: var(--pl-line-strong) !important;
  box-shadow: none !important;
}

.page-shell--planner .planner-todo__item:focus-visible {
  box-shadow: 0 0 0 2px var(--pl-peach) !important;
}

.page-shell--planner .planner-todo__line-title {
  color: var(--pl-ink) !important;
}

.page-shell--planner .planner-todo__meta {
  color: var(--pl-muted) !important;
}

.page-shell--planner .planner-todo__empty {
  color: var(--pl-muted) !important;
}

.page-shell--planner .planner-todo__check {
  accent-color: var(--pl-ink) !important;
}

.page-shell--planner .planner-todo__replan-toggle {
  background: #ffffff !important;
  color: var(--pl-ink) !important;
  border: 1px solid var(--pl-line-strong) !important;
}

.page-shell--planner .planner-todo__replan-toggle:hover {
  background: var(--pl-peach-wash) !important;
  border-color: var(--pl-peach) !important;
  color: var(--pl-ink) !important;
}

.page-shell--planner .planner-todo__replan {
  background: var(--pl-surface-soft) !important;
  border: 1px solid var(--pl-line) !important;
}

.page-shell--planner .planner-todo__replan-slotline {
  color: var(--pl-ink) !important;
}

.page-shell--planner .planner-todo__replan-subhint {
  color: var(--pl-muted) !important;
}

.page-shell--planner .planner-todo__schedule-jump {
  color: var(--pl-ink) !important;
  text-decoration-color: var(--pl-peach) !important;
}

.page-shell--planner .planner-todo__schedule-jump:hover {
  color: var(--pl-peach-deep) !important;
}

.page-shell--planner .planner-todo__replan-label {
  color: var(--pl-muted) !important;
}

.page-shell--planner .planner-todo__replan-date,
.page-shell--planner .planner-todo__replan-time {
  background: #ffffff !important;
  color: var(--pl-ink) !important;
  border: 1px solid var(--pl-line-strong) !important;
}

.page-shell--planner .planner-todo__replan-btn {
  background: #ffffff !important;
  color: var(--pl-ink) !important;
  border: 1px solid var(--pl-line-strong) !important;
  box-shadow: none !important;
}

.page-shell--planner .planner-todo__replan-btn--primary {
  background: var(--pl-ink) !important;
  color: #ffffff !important;
  border-color: var(--pl-ink) !important;
}

.page-shell--planner .planner-todo__replan-btn--primary:hover {
  background: #000000 !important;
  color: #ffffff !important;
}

.page-shell--planner .planner-todo__replan-btn--ghost {
  background: transparent !important;
  color: var(--pl-muted-strong) !important;
  border-color: transparent !important;
}

/* Carte "Travaux en retards" : header centré, noir & blanc */
.page-shell--planner .planner-todo__header--replan {
  margin: 0 0 1.4rem !important;
  padding: 0 0 1rem !important;
  border-bottom: 1px solid var(--pl-line) !important;
  text-align: center !important;
}

.page-shell--planner .planner-todo__header--replan .planner-todo__title,
.page-shell--planner .planner-todo__header--replan .planner-todo__subtitle {
  color: var(--pl-ink) !important;
}

.page-shell--planner .planner-todo-card--backlog .planner-todo__hint,
.page-shell--planner .planner-todo-card--backlog .planner-todo__calendar-line,
.page-shell--planner .planner-todo-card--backlog .planner-todo__empty,
.page-shell--planner .planner-todo-card--backlog p {
  color: var(--pl-ink-soft) !important;
}

.page-shell--planner .planner-todo-card--backlog .planner-todo__item {
  background: #ffffff !important;
  border: 1px solid var(--pl-line) !important;
}

/* Carte "To-do de demain" — header centré, fond gris léger */
.page-shell--planner .planner-todo__header--tomorrow {
  margin: 0 0 1.4rem !important;
  padding: 0 0 1rem !important;
  background: transparent !important;
  border-radius: 0 !important;
  border-top: none !important;
  border-bottom: 1px solid var(--pl-line) !important;
  text-align: center !important;
}

.page-shell--planner .planner-todo-card--tomorrow .planner-todo__item {
  background: #ffffff !important;
}

/* Onglets bas (To-do du jour / Tâches réalisées) */
.page-shell--planner .planner-todo-tabs-bottom {
  margin-top: 2.5rem !important;
  padding-top: 0 !important;
  border-top: none !important;
}

.page-shell--planner .planner-todo-tab {
  background: #ffffff !important;
  color: var(--pl-ink) !important;
  border: 1px solid var(--pl-line-strong) !important;
  box-shadow: none !important;
}

.page-shell--planner .planner-todo-tab:hover {
  background: var(--pl-peach-wash) !important;
  border-color: var(--pl-peach) !important;
  color: var(--pl-ink) !important;
}

.page-shell--planner .planner-todo-tab[aria-selected="true"] {
  background: var(--pl-ink) !important;
  color: #ffffff !important;
  border-color: var(--pl-ink) !important;
  box-shadow: none !important;
}

.page-shell--planner .planner-todo-tab[aria-selected="true"]:hover {
  background: #000000 !important;
  color: #ffffff !important;
}

.page-shell--planner .planner-todo-tab:focus-visible {
  outline: 2px solid var(--pl-peach) !important;
}

.page-shell--planner .planner-todo__archive-day-heading {
  color: var(--pl-muted) !important;
  border-top: 1px dashed var(--pl-line) !important;
}

/* --- Bloc sync (Google Cal / iCal) --- */
.page-shell--planner .planner__sync {
  background: var(--pl-surface) !important;
  border: 1px dashed var(--pl-line-strong) !important;
}

.page-shell--planner .planner__sync-title {
  color: var(--pl-muted) !important;
}

.page-shell--planner .planner__sync-text {
  color: var(--pl-ink) !important;
}

.page-shell--planner .planner__sync-btn {
  background: #ffffff !important;
  color: var(--pl-ink) !important;
  border: 1px solid var(--pl-line-strong) !important;
}

.page-shell--planner .planner__sync-btn:hover {
  background: var(--pl-peach-wash) !important;
  border-color: var(--pl-peach) !important;
  color: var(--pl-ink) !important;
}

/* --- Drawer latéral + backdrop --- */
.planner__drawer-backdrop,
body.subject-body:has(.page-shell--planner) .planner__drawer-backdrop {
  background: rgba(16, 16, 16, 0.35) !important;
}

body.subject-body:has(.page-shell--planner) .planner__drawer {
  background: #ffffff !important;
  border-left: 1px solid var(--pl-line) !important;
  box-shadow: -12px 0 32px rgba(16, 16, 16, 0.12) !important;
  color: var(--pl-ink) !important;
}

body.subject-body:has(.page-shell--planner) .planner__drawer-header {
  border-bottom: 1px solid var(--pl-line) !important;
}

body.subject-body:has(.page-shell--planner) .planner__drawer-title {
  color: var(--pl-ink) !important;
}

body.subject-body:has(.page-shell--planner) .planner__drawer-sub {
  color: var(--pl-muted) !important;
}

body.subject-body:has(.page-shell--planner) .planner__drawer-close {
  background: var(--pl-surface-soft) !important;
  color: var(--pl-ink) !important;
  border: 1px solid var(--pl-line-strong) !important;
}

body.subject-body:has(.page-shell--planner) .planner__drawer-close:hover {
  background: var(--pl-peach-wash) !important;
  border-color: var(--pl-peach) !important;
}

/* Drawer — cartes matières */
body.subject-body:has(.page-shell--planner) .planner__subject-card {
  background: #ffffff !important;
  border: 1px solid var(--pl-line) !important;
  border-left: 4px solid var(--subject-accent, var(--pl-peach)) !important;
  color: var(--pl-ink) !important;
}

body.subject-body:has(.page-shell--planner) .planner__subject-card:hover {
  border-color: var(--pl-line-strong) !important;
  border-left-color: var(--subject-accent, var(--pl-peach)) !important;
  box-shadow: var(--pl-shadow-card-hover) !important;
}

body.subject-body:has(.page-shell--planner) .planner__subject-other {
  background: var(--pl-surface-soft) !important;
  border: 2px dashed var(--pl-line-strong) !important;
  color: var(--pl-ink) !important;
}

body.subject-body:has(.page-shell--planner) .planner__subject-other:hover {
  background: var(--pl-peach-wash) !important;
  border-color: var(--pl-peach) !important;
  color: var(--pl-ink) !important;
}

/* Drawer — bloc compose */
body.subject-body:has(.page-shell--planner) .planner__compose-back {
  background: var(--pl-surface-soft) !important;
  color: var(--pl-ink) !important;
}

body.subject-body:has(.page-shell--planner) .planner__compose-back:hover {
  background: var(--pl-peach-wash) !important;
  color: var(--pl-ink) !important;
}

body.subject-body:has(.page-shell--planner) .planner__compose-heading,
body.subject-body:has(.page-shell--planner) .planner__compose-sub__heading {
  color: var(--pl-ink) !important;
}

body.subject-body:has(.page-shell--planner) .planner__compose-sub__lead {
  color: var(--pl-ink-soft) !important;
}

/* "Couleur au calendrier" : section supprimée à la demande utilisateur */
body.subject-body:has(.page-shell--planner) .planner__compose-color-wrap {
  display: none !important;
}

/* Liste "Tâches à planifier" : cartes blanches plus aérées + boutons sobres */
body.subject-body:has(.page-shell--planner) .planner__compose-suggest-title {
  margin: 1rem 0 0.55rem !important;
  color: var(--pl-muted-strong) !important;
}

body.subject-body:has(.page-shell--planner) .planner__compose-suggestions {
  gap: 0.6rem !important;
  margin-bottom: 1.1rem !important;
}

body.subject-body:has(.page-shell--planner) .planner__compose-suggest-item {
  gap: 0.7rem !important;
  padding: 0.85rem 0.95rem 0.85rem !important;
  border-radius: 14px !important;
  background: #ffffff !important;
  border: 1px solid var(--pl-line) !important;
  box-shadow: none !important;
  transition:
    border-color 0.15s ease,
    box-shadow 0.15s ease;
}

body.subject-body:has(.page-shell--planner) .planner__compose-suggest-item:hover {
  border-color: var(--pl-line-strong) !important;
  box-shadow: var(--pl-shadow-card) !important;
}

body.subject-body:has(.page-shell--planner) .planner__compose-suggest-title-text {
  font-weight: 600 !important;
  line-height: 1.4 !important;
  color: var(--pl-ink) !important;
}

body.subject-body:has(.page-shell--planner) .planner__compose-suggest-title-text--muted {
  color: var(--pl-muted) !important;
}

body.subject-body:has(.page-shell--planner) .planner__compose-suggest-actions {
  gap: 0.45rem !important;
  align-items: center !important;
}

/* Bouton "Prévoir" : primaire noir, plein */
body.subject-body:has(.page-shell--planner) .planner__compose-suggest-btn {
  padding: 0.42rem 0.95rem !important;
  background: var(--pl-ink) !important;
  color: #ffffff !important;
  border: 1px solid var(--pl-ink) !important;
  border-radius: 999px !important;
  box-shadow: none !important;
}

body.subject-body:has(.page-shell--planner) .planner__compose-suggest-btn:hover {
  background: #000000 !important;
  border-color: #000000 !important;
  color: #ffffff !important;
}

/* Bouton "Réalisée" / "Replanifier" : ghost link discret, plus de fond noir */
body.subject-body:has(.page-shell--planner) .planner__compose-suggest-done {
  padding: 0.4rem 0.55rem !important;
  background: transparent !important;
  color: var(--pl-muted-strong) !important;
  border: none !important;
  border-radius: 6px !important;
  text-decoration: underline !important;
  text-decoration-color: var(--pl-line-strong) !important;
  text-underline-offset: 0.2em !important;
  box-shadow: none !important;
}

body.subject-body:has(.page-shell--planner) .planner__compose-suggest-done:hover {
  color: var(--pl-peach-deep) !important;
  text-decoration-color: var(--pl-peach) !important;
  background: transparent !important;
}

body.subject-body:has(.page-shell--planner) .planner__compose-suggest-tag {
  color: var(--pl-peach-deep) !important;
  letter-spacing: 0.08em !important;
}

body.subject-body:has(.page-shell--planner) .planner__compose-suggest-empty {
  color: var(--pl-muted) !important;
  font-style: italic;
}

body.subject-body:has(.page-shell--planner) .planner__compose-date-label,
body.subject-body:has(.page-shell--planner) .planner__custom-title-label {
  color: var(--pl-muted) !important;
}

body.subject-body:has(.page-shell--planner) .planner__compose-date-label input,
body.subject-body:has(.page-shell--planner) .planner__custom-title-label input {
  background: #ffffff !important;
  color: var(--pl-ink) !important;
  border: 1px solid var(--pl-line-strong) !important;
}

body.subject-body:has(.page-shell--planner) .planner__compose-add-free {
  background: var(--pl-surface-soft) !important;
  border: 2px dashed var(--pl-line-strong) !important;
  color: var(--pl-ink) !important;
}

body.subject-body:has(.page-shell--planner) .planner__compose-add-free:hover {
  background: var(--pl-peach-wash) !important;
  border-color: var(--pl-peach) !important;
  color: var(--pl-ink) !important;
}

body.subject-body:has(.page-shell--planner) .planner__other-palette {
  background: var(--pl-surface-soft) !important;
  border: 1px solid var(--pl-line) !important;
}

body.subject-body:has(.page-shell--planner) .planner__other-palette__title {
  color: var(--pl-muted) !important;
}

body.subject-body:has(.page-shell--planner) .planner__other-palette__swatch {
  border: 2px solid #ffffff !important;
  box-shadow: 0 0 0 1px var(--pl-line-strong) !important;
}

body.subject-body:has(.page-shell--planner) .planner__other-palette__swatch[aria-pressed="true"] {
  box-shadow:
    0 0 0 2px var(--pl-peach),
    0 2px 8px rgba(16, 16, 16, 0.12) !important;
}

/* Drawer — formulaire de tâche */
body.subject-body:has(.page-shell--planner) .planner__task-input {
  background: #ffffff !important;
  color: var(--pl-ink) !important;
  border: 1px solid var(--pl-line-strong) !important;
}

body.subject-body:has(.page-shell--planner) .planner__task-add {
  background: var(--pl-ink) !important;
  color: #ffffff !important;
  border: 1px solid var(--pl-ink) !important;
  box-shadow: none !important;
}

body.subject-body:has(.page-shell--planner) .planner__task-add:hover {
  background: #000000 !important;
  color: #ffffff !important;
  border-color: #000000 !important;
}

body.subject-body:has(.page-shell--planner) .planner__task-time-row {
  background: var(--pl-surface-soft) !important;
  border: 1px solid var(--pl-line) !important;
}

body.subject-body:has(.page-shell--planner) .planner__task-allday {
  color: var(--pl-ink) !important;
}

body.subject-body:has(.page-shell--planner) .planner__task-allday input,
body.subject-body:has(.page-shell--planner) .planner__task-check {
  accent-color: var(--pl-ink) !important;
}

body.subject-body:has(.page-shell--planner) .planner__task-time-field {
  color: var(--pl-muted) !important;
}

body.subject-body:has(.page-shell--planner) .planner__task-time-field input {
  background: #ffffff !important;
  color: var(--pl-ink) !important;
  border: 1px solid var(--pl-line-strong) !important;
}

body.subject-body:has(.page-shell--planner) .planner__task-row {
  background: var(--pl-surface) !important;
  border: 1px solid var(--pl-line) !important;
}

body.subject-body:has(.page-shell--planner) .planner__task-row--pense-general {
  background: var(--pl-surface-soft) !important;
  border-style: dashed !important;
  border-color: var(--pl-line-strong) !important;
}

body.subject-body:has(.page-shell--planner) .planner__task-label {
  color: var(--pl-ink) !important;
}

body.subject-body:has(.page-shell--planner) .planner__task-meta {
  color: var(--pl-muted) !important;
}

body.subject-body:has(.page-shell--planner) .planner__task-remove {
  color: var(--pl-muted) !important;
}

body.subject-body:has(.page-shell--planner) .planner__task-remove:hover {
  background: var(--pl-peach-wash) !important;
  color: var(--pl-peach-deep) !important;
}

/* Move dialog (déplacer une tâche) */
body.subject-body:has(.page-shell--planner) .planner-todo-move-backdrop {
  background: rgba(16, 16, 16, 0.4) !important;
}

body.subject-body:has(.page-shell--planner) .planner-todo-move-dialog__panel {
  background: #ffffff !important;
  border: 1px solid var(--pl-line) !important;
  box-shadow: var(--pl-shadow-dialog) !important;
}

body.subject-body:has(.page-shell--planner) .planner-todo-move-dialog__x {
  color: var(--pl-muted) !important;
}

body.subject-body:has(.page-shell--planner) .planner-todo-move-dialog__x:hover {
  background: var(--pl-peach-wash) !important;
  color: var(--pl-ink) !important;
}

body.subject-body:has(.page-shell--planner) .planner-todo-move-dialog__title {
  color: var(--pl-ink) !important;
}

body.subject-body:has(.page-shell--planner) .planner-todo-move-dialog__task-name,
body.subject-body:has(.page-shell--planner) .planner-todo-move-dialog__slotline {
  color: var(--pl-ink) !important;
}

body.subject-body:has(.page-shell--planner) .planner-todo-move-dialog__hint {
  color: var(--pl-muted) !important;
}

body.subject-body:has(.page-shell--planner) .planner-todo-move-dialog__sep {
  border-top: 1px dashed var(--pl-line) !important;
}

/* --- Bouton flottant "Tu veux que je t'aide à t'organiser ?" --- */
body.subject-body:has(.page-shell--planner) .planner-ai__tab {
  background: #ffffff !important;
  background-image: none !important;
  border: 1px solid var(--pl-line-strong) !important;
  color: var(--pl-ink) !important;
  box-shadow: var(--pl-shadow-card-hover) !important;
}

body.subject-body:has(.page-shell--planner) .planner-ai__tab:hover {
  border-color: var(--pl-peach) !important;
  background: var(--pl-peach-wash) !important;
  color: var(--pl-ink) !important;
}

body.subject-body:has(.page-shell--planner) .planner-ai__tab:focus-visible {
  outline: 2px solid var(--pl-peach) !important;
}

body.subject-body:has(.page-shell--planner) .planner-ai__chev {
  color: var(--pl-peach-deep) !important;
}

body.subject-body:has(.page-shell--planner) .planner-ai__panel {
  background: #ffffff !important;
  border: 1px solid var(--pl-line) !important;
  border-bottom: none !important;
  border-right: none !important;
  box-shadow: 0 -8px 32px rgba(16, 16, 16, 0.12) !important;
}

body.subject-body:has(.page-shell--planner) .planner-ai__head {
  color: var(--pl-ink) !important;
  border-bottom: 1px solid var(--pl-line) !important;
}

body.subject-body:has(.page-shell--planner) .planner-ai__hint {
  color: var(--pl-muted-strong) !important;
}

/* --- Focus visible global de la page Planner --- */
body.subject-body:has(.page-shell--planner) .planner *:focus-visible,
body.subject-body:has(.page-shell--planner) .planner-todo *:focus-visible,
body.subject-body:has(.page-shell--planner) .planner__drawer *:focus-visible {
  outline: 2px solid var(--pl-peach) !important;
  outline-offset: 2px;
}

/* =====================================================================
   PAGE MATIÈRES (matieres.html)
   --------------------------------------------------------------------
   Direction artistique : très épurée. Fond crème, cartes blanches avec
   bordure fine, titres en serif (Fraunces), accents pêche. Deux vues :
   - .matieres-view--grid : la grille de cartes par matière
   - .matieres-view--focus : la liste de chapitres d'une matière
   Plus un drawer latéral (.matieres-drawer) pour configurer un chapitre.
   ===================================================================== */

:root {
  /* DA stricte : blanc, noir, touche pêche unique (#efb899) — alignée
     sur les variables globales du site (--cherry, --line-soft, etc.). */
  --mt-paper: #ffffff;
  --mt-cream: #ffffff;
  --mt-cream-deep: #fafafa;
  --mt-ink: #111111;
  --mt-ink-soft: #2a2a2a;
  --mt-muted: #6b6b6b;
  --mt-muted-strong: #3b3b3b;
  --mt-line: rgba(0, 0, 0, 0.1);
  --mt-line-strong: rgba(0, 0, 0, 0.28);
  --mt-peach: var(--cherry);
  --mt-peach-deep: var(--cherry-dark);
  --mt-peach-wash: var(--cherry-wash);
  --mt-shadow-card: none;
  --mt-shadow-card-hover: 0 10px 28px rgba(0, 0, 0, 0.06);
  --mt-shadow-drawer: -16px 0 40px rgba(0, 0, 0, 0.12);
  --mt-serif: "Fraunces", "Bodoni Moda", "Times New Roman", Georgia, serif;
  /* Statuts : neutre / pêche (en cours) / noir (maîtrisé). */
  --mt-status-todo-bg: #f3f3f3;
  --mt-status-todo-ink: #555555;
  --mt-status-planned-bg: #ebeff7;
  --mt-status-planned-ink: #3b4a66;
  --mt-status-progress-bg: var(--mt-peach-wash);
  --mt-status-progress-ink: #8a4a26;
  --mt-status-mastered-bg: #111111;
  --mt-status-mastered-ink: #ffffff;
  /* Variantes Travaux à rendre — Rendu (mastered) + Corrigé (vert tendre). */
  --mt-status-corrected-bg: #e3efe2;
  --mt-status-corrected-ink: #2d5a3c;
}

/* ---------- Conteneur global ---------- */
body.subject-body:has(.matieres-page) {
  background: #ffffff !important;
  background-image: none !important;
  color: var(--mt-ink) !important;
}

.matieres-page {
  width: min(var(--site-layout-max), var(--site-layout-pad));
  margin: 2.5rem auto 4rem;
  flex: 1 0 auto;
}

/* ---------- Transitions entre vues ---------- */
.matieres-view {
  opacity: 0;
  transform: translateY(6px);
  transition: opacity 0.32s ease, transform 0.32s ease;
  pointer-events: none;
}

.matieres-view.is-active {
  opacity: 1;
  transform: translateY(0);
  pointer-events: auto;
}

.matieres-view[hidden] {
  display: none !important;
}

/* ==================== VUE GRILLE ==================== */

.matieres-page-head {
  margin: 0 auto 2.75rem;
  max-width: 44rem;
  text-align: center;
}

.matieres-page-head__kicker {
  margin: 0 0 0.85rem;
  font-family: var(--font-editorial);
  font-size: 0.72rem;
  font-weight: 600;
  letter-spacing: 0.32em;
  text-transform: uppercase;
  color: var(--mt-muted);
}

.matieres-page-head__title {
  margin: 0 0 1rem;
  font-family: var(--mt-serif);
  font-weight: 500;
  font-size: clamp(3.6rem, 9vw, 6.5rem);
  line-height: 0.98;
  letter-spacing: -0.025em;
  color: var(--mt-ink);
}

.matieres-page-head__lead {
  margin: 0 auto;
  font-family: var(--font-editorial);
  font-size: 1rem;
  line-height: 1.55;
  color: var(--mt-muted-strong);
  max-width: 34rem;
}

.matieres-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 1.25rem;
  max-width: 56rem;
  margin: 0 auto;
}

@media (min-width: 720px) {
  .matieres-grid {
    gap: 1.75rem;
  }
}

@media (max-width: 540px) {
  .matieres-grid {
    grid-template-columns: 1fr;
  }
}

.matieres-card {
  position: relative;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  aspect-ratio: 1 / 1;
  padding: 1.7rem 1.65rem 1.5rem;
  background: var(--mt-paper);
  border: 1px solid var(--mt-line);
  border-radius: 22px;
  cursor: pointer;
  text-align: left;
  font: inherit;
  color: var(--mt-ink);
  box-shadow: var(--mt-shadow-card);
  overflow: hidden;
  transition: transform 0.26s cubic-bezier(0.22, 0.61, 0.36, 1),
    box-shadow 0.26s ease, border-color 0.22s ease;
}

@media (max-width: 540px) {
  .matieres-card {
    aspect-ratio: auto;
    min-height: 13rem;
  }
}

.matieres-card:hover,
.matieres-card:focus-visible {
  transform: translateY(-3px);
  border-color: var(--mt-peach);
  box-shadow: var(--mt-shadow-card-hover);
  outline: none;
}

.matieres-card:focus-visible {
  outline: 2px solid var(--mt-peach);
  outline-offset: 2px;
}

.matieres-card__kicker {
  margin: 0 0 0.85rem;
  font-family: var(--font-editorial);
  font-size: 0.66rem;
  font-weight: 600;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: var(--mt-muted);
}

.matieres-card__title {
  margin: 0;
  font-family: var(--mt-serif);
  font-weight: 500;
  font-size: clamp(1.7rem, 3.2vw, 2.45rem);
  line-height: 1.05;
  letter-spacing: -0.015em;
  color: var(--mt-ink);
  max-width: 14ch;
}

.matieres-card__meta {
  margin: 0;
  font-family: var(--font-editorial);
  font-size: 0.78rem;
  color: var(--mt-muted);
}

.matieres-card__progress-wrap {
  margin-top: auto;
  display: flex;
  flex-direction: column;
  gap: 0.55rem;
}

.matieres-card__progress-pct {
  margin: 0;
  text-align: right;
  font-family: var(--font-ui);
  font-size: 0.78rem;
  font-weight: 600;
  letter-spacing: 0.04em;
  color: var(--mt-ink);
  font-feature-settings: "tnum" 1;
}

.matieres-card__progress-bar {
  position: relative;
  height: 1px;
  width: 100%;
  background: var(--mt-line);
  overflow: hidden;
}

.matieres-card__progress-fill {
  position: absolute;
  inset: 0 auto 0 0;
  width: 0%;
  background: var(--mt-ink);
  transition: width 0.6s cubic-bezier(0.22, 0.61, 0.36, 1);
}

.matieres-card:hover .matieres-card__progress-fill,
.matieres-card:focus-visible .matieres-card__progress-fill {
  background: var(--mt-peach-deep);
}

/* ==================== VUE FOCUS ==================== */

.matieres-view--focus {
  padding-top: 0.25rem;
}

.matieres-focus__top {
  display: flex;
  align-items: center;
  gap: 1rem;
  margin-bottom: 1.6rem;
}

.matieres-focus__back {
  appearance: none;
  background: transparent;
  border: 1px solid var(--mt-line);
  border-radius: 999px;
  padding: 0.4rem 0.95rem;
  font-family: var(--font-editorial);
  font-size: 0.78rem;
  font-weight: 500;
  color: var(--mt-muted-strong);
  cursor: pointer;
  letter-spacing: 0.02em;
  transition: background 0.18s ease, color 0.18s ease, border-color 0.18s ease;
}

.matieres-focus__back:hover {
  background: var(--mt-paper);
  border-color: var(--mt-line-strong);
  color: var(--mt-ink);
}

.matieres-focus__kicker {
  margin: 0;
  font-family: var(--font-editorial);
  font-size: 0.7rem;
  font-weight: 600;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: var(--mt-muted);
}

.matieres-focus__head {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0.55rem;
  margin-bottom: 1.5rem;
  padding-bottom: 1.4rem;
  text-align: center;
}

/* ==================== ONGLETS ==================== */

.matieres-tabs {
  display: flex;
  align-items: stretch;
  gap: 0;
  border-bottom: 1px solid var(--mt-line);
  margin-bottom: 2rem;
  overflow-x: auto;
  scrollbar-width: thin;
}

button.matieres-tab {
  position: relative;
  appearance: none;
  border: 0 !important;
  background: transparent !important;
  color: var(--mt-muted) !important;
  padding: 0.85rem 1.25rem 1rem;
  font-family: var(--font-ui) !important;
  font-size: 0.86rem;
  font-weight: 500 !important;
  letter-spacing: 0.04em !important;
  cursor: pointer;
  white-space: nowrap;
  border-bottom: 1px solid transparent !important;
  border-radius: 0 !important;
  margin-bottom: -1px;
  transition: color 0.18s ease, border-color 0.18s ease;
}

button.matieres-tab:hover,
button.matieres-tab:focus-visible {
  background: transparent !important;
  color: var(--mt-ink) !important;
  border-color: transparent !important;
}

button.matieres-tab.is-active,
button.matieres-tab[aria-selected="true"] {
  color: var(--mt-ink) !important;
  border-bottom: 1px solid var(--mt-ink) !important;
  font-weight: 600 !important;
}

button.matieres-tab:focus-visible {
  outline: 2px solid var(--mt-peach);
  outline-offset: -2px;
}

.matieres-panel {
  opacity: 0;
  transition: opacity 0.22s ease;
}

.matieres-panel.is-active {
  opacity: 1;
}

.matieres-panel[hidden] {
  display: none !important;
}

.matieres-focus__title {
  margin: 0;
  font-family: var(--mt-serif);
  font-weight: 500;
  font-size: clamp(2.6rem, 6vw, 4rem);
  line-height: 1.05;
  letter-spacing: -0.02em;
  color: var(--mt-ink);
}

.matieres-chapter-list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
}

.matieres-chapter-list-wrap {
  display: flex;
  flex-direction: column;
}

/* --- Toolbar (filtre par statut + bouton « Ajouter un chapitre ») --- */
.matieres-programme-toolbar {
  display: flex;
  align-items: flex-end;
  flex-wrap: wrap;
  gap: 0.5rem 1.5rem;
  justify-content: space-between;
  margin-bottom: 1.4rem;
}

.matieres-programme-filter {
  display: flex;
  align-items: stretch;
  gap: 0;
  border-bottom: 1px solid var(--mt-line);
  flex: 1 1 auto;
  min-width: 0;
  overflow-x: auto;
  scrollbar-width: thin;
}

button.matieres-programme-filter__tab {
  position: relative;
  appearance: none;
  border: 0 !important;
  background: transparent !important;
  color: var(--mt-muted) !important;
  padding: 0.55rem 0.95rem 0.7rem;
  font-family: var(--font-ui) !important;
  font-size: 0.76rem;
  font-weight: 500 !important;
  letter-spacing: 0.05em !important;
  cursor: pointer;
  white-space: nowrap;
  border-bottom: 1px solid transparent !important;
  border-radius: 0 !important;
  margin-bottom: -1px;
  display: inline-flex;
  align-items: center;
  gap: 0.45rem;
  transition: color 0.18s ease, border-color 0.18s ease;
}

button.matieres-programme-filter__tab:hover,
button.matieres-programme-filter__tab:focus-visible {
  background: transparent !important;
  color: var(--mt-ink) !important;
  outline: none;
}

button.matieres-programme-filter__tab.is-active,
button.matieres-programme-filter__tab[aria-selected="true"] {
  color: var(--mt-ink) !important;
  border-bottom: 1px solid var(--mt-ink) !important;
  font-weight: 600 !important;
}

button.matieres-programme-filter__tab:focus-visible {
  outline: 2px solid var(--mt-peach);
  outline-offset: -2px;
}

.matieres-programme-filter__count {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 1.25rem;
  height: 1.25rem;
  padding: 0 0.35rem;
  border-radius: 999px;
  background: rgba(0, 0, 0, 0.06);
  font-family: var(--font-ui);
  font-size: 0.68rem;
  font-weight: 500;
  letter-spacing: 0;
  color: rgba(0, 0, 0, 0.55);
  transition: background 0.18s ease, color 0.18s ease;
}

button.matieres-programme-filter__tab.is-active .matieres-programme-filter__count {
  background: var(--mt-ink);
  color: var(--mt-paper);
}

.matieres-programme-filter__count[data-zero="1"] {
  opacity: 0.45;
}

.matieres-programme-empty {
  margin: 0;
  padding: 1rem 0 0.25rem;
  font-family: var(--font-ui);
  font-size: 0.85rem;
  color: rgba(0, 0, 0, 0.5);
  text-align: center;
  font-style: italic;
}

@media (max-width: 560px) {
  .matieres-programme-toolbar {
    flex-direction: column;
    align-items: stretch;
  }
  .matieres-programme-toolbar .matieres-chapter-add__toggle {
    align-self: flex-end;
  }
}

.matieres-chapter {
  position: relative;
  display: grid;
  grid-template-columns: 1fr auto auto;
  align-items: center;
  gap: 1rem;
  padding: 1.05rem 0.25rem;
  border-bottom: 1px solid var(--mt-line);
  cursor: pointer;
  text-align: left;
  font: inherit;
  color: var(--mt-ink);
  background: transparent;
  border-left: none;
  border-right: none;
  border-top: none;
  width: 100%;
  transition: background 0.18s ease, padding-left 0.22s ease;
}

.matieres-chapter:hover {
  background: var(--mt-peach-wash);
  padding-left: 0.7rem;
}

.matieres-chapter:focus-visible {
  outline: 2px solid var(--mt-peach);
  outline-offset: -2px;
}

.matieres-chapter__label {
  font-family: var(--font-editorial);
  font-size: 1rem;
  font-weight: 500;
  color: var(--mt-ink);
  line-height: 1.4;
}

.matieres-chapter__meta {
  font-family: var(--font-editorial);
  font-size: 0.74rem;
  color: var(--mt-muted);
  white-space: nowrap;
}

.matieres-chapter__meta[hidden] {
  display: none;
}

.matieres-chapter__badge {
  display: inline-flex;
  align-items: center;
  gap: 0.4rem;
  padding: 0.3rem 0.7rem;
  border-radius: 999px;
  font-family: var(--font-editorial);
  font-size: 0.72rem;
  font-weight: 600;
  letter-spacing: 0.02em;
  white-space: nowrap;
}

.matieres-chapter__badge::before {
  content: "";
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: currentColor;
  opacity: 0.55;
}

.matieres-chapter__badge[data-status="todo"] {
  background: var(--mt-status-todo-bg);
  color: var(--mt-status-todo-ink);
}

.matieres-chapter__badge[data-status="planned"] {
  background: var(--mt-status-planned-bg);
  color: var(--mt-status-planned-ink);
}

.matieres-chapter__badge[data-status="in_progress"] {
  background: var(--mt-status-progress-bg);
  color: var(--mt-status-progress-ink);
}

.matieres-chapter__badge[data-status="mastered"] {
  background: var(--mt-status-mastered-bg);
  color: var(--mt-status-mastered-ink);
}

.matieres-chapter__config {
  appearance: none;
  background: transparent;
  border: 1px solid transparent;
  border-radius: 8px;
  width: 2rem;
  height: 2rem;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  color: var(--mt-muted);
  cursor: pointer;
  opacity: 0;
  transition: opacity 0.18s ease, background 0.18s ease, color 0.18s ease, border-color 0.18s ease;
}

.matieres-chapter:hover .matieres-chapter__config,
.matieres-chapter:focus-within .matieres-chapter__config {
  opacity: 1;
}

.matieres-chapter__config:hover {
  background: var(--mt-paper);
  border-color: var(--mt-line-strong);
  color: var(--mt-ink);
}

.matieres-chapter__config:focus-visible {
  outline: 2px solid var(--mt-peach);
  outline-offset: 2px;
  opacity: 1;
}

.matieres-chapter__config svg {
  width: 16px;
  height: 16px;
}

/* ==================== DRAWER ==================== */

.matieres-drawer__backdrop {
  position: fixed;
  inset: 0;
  background: rgba(16, 16, 16, 0.32);
  z-index: 120;
  opacity: 0;
  pointer-events: none;
  transition: opacity 0.22s ease;
}

.matieres-drawer__backdrop.is-open {
  opacity: 1;
  pointer-events: auto;
}

.matieres-drawer {
  position: fixed;
  top: 0;
  right: 0;
  width: min(26rem, 94vw);
  height: 100vh;
  z-index: 130;
  background: var(--mt-paper);
  border-left: 1px solid var(--mt-line);
  box-shadow: var(--mt-shadow-drawer);
  transform: translateX(100%);
  transition: transform 0.28s cubic-bezier(0.22, 0.61, 0.36, 1);
  display: flex;
  flex-direction: column;
  color: var(--mt-ink);
}

.matieres-drawer.is-open {
  transform: translateX(0);
}

.matieres-drawer__header {
  position: relative;
  padding: 1.6rem 1.5rem 1.1rem;
  border-bottom: 1px solid var(--mt-line);
  background: var(--mt-cream-deep);
}

.matieres-drawer__close {
  position: absolute;
  top: 0.85rem;
  right: 0.85rem;
  width: 2.1rem;
  height: 2.1rem;
  border: 1px solid var(--mt-line);
  border-radius: 8px;
  background: var(--mt-paper);
  color: var(--mt-ink);
  font-size: 1.25rem;
  line-height: 1;
  cursor: pointer;
  transition: background 0.18s ease, border-color 0.18s ease;
}

.matieres-drawer__close:hover {
  background: var(--mt-peach-wash);
  border-color: var(--mt-peach);
}

.matieres-drawer__kicker {
  margin: 0 0 0.4rem;
  font-family: var(--font-editorial);
  font-size: 0.68rem;
  font-weight: 600;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--mt-muted);
  transition: color 0.18s ease;
}

.matieres-drawer__kicker--saved {
  color: var(--mt-peach-deep);
}

.matieres-drawer__title {
  margin: 0;
  font-family: var(--mt-serif);
  font-weight: 500;
  font-size: 1.55rem;
  line-height: 1.15;
  letter-spacing: -0.01em;
  color: var(--mt-ink);
  padding-right: 2rem;
}

.matieres-drawer__body {
  padding: 1.5rem;
  flex: 1;
  overflow-y: auto;
  display: flex;
  flex-direction: column;
  gap: 1.6rem;
  margin: 0;
  border: 0;
}

.matieres-drawer__field {
  margin: 0;
  padding: 0;
  border: 0;
}

.matieres-drawer__label {
  margin: 0 0 0.45rem;
  padding: 0;
  font-family: var(--font-editorial);
  font-size: 0.78rem;
  font-weight: 600;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--mt-muted-strong);
}

.matieres-drawer__label--inline {
  margin-bottom: 0.2rem;
}

.matieres-drawer__label--sub {
  margin-top: 0.9rem;
  text-transform: none;
  letter-spacing: 0.02em;
  font-size: 0.82rem;
  color: var(--mt-muted-strong);
}

.matieres-drawer__hint {
  margin: 0 0 0.7rem;
  font-family: var(--font-editorial);
  font-size: 0.78rem;
  color: var(--mt-muted);
  line-height: 1.5;
}

.matieres-drawer__hint--tight {
  margin-bottom: 0;
  max-width: 16rem;
}

/* Statut : trois chips */
.matieres-status-group {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 0.5rem;
}

.matieres-status-chip {
  position: relative;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.4rem;
  padding: 0.55rem 0.6rem;
  border: 1px solid var(--mt-line);
  border-radius: 999px;
  cursor: pointer;
  font-family: var(--font-editorial);
  font-size: 0.78rem;
  font-weight: 500;
  color: var(--mt-muted-strong);
  background: var(--mt-paper);
  transition: border-color 0.18s ease, background 0.18s ease, color 0.18s ease;
}

.matieres-status-chip input {
  position: absolute;
  inset: 0;
  opacity: 0;
  cursor: pointer;
  margin: 0;
}

.matieres-status-chip__dot {
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: currentColor;
  opacity: 0.5;
}

.matieres-status-chip:hover {
  border-color: var(--mt-line-strong);
  color: var(--mt-ink);
}

.matieres-status-chip:has(input:checked)[data-status="todo"] {
  background: var(--mt-status-todo-bg);
  border-color: transparent;
  color: var(--mt-status-todo-ink);
}

.matieres-status-chip:has(input:checked)[data-status="planned"] {
  background: var(--mt-status-planned-bg);
  border-color: transparent;
  color: var(--mt-status-planned-ink);
}

.matieres-status-chip:has(input:checked)[data-status="in_progress"] {
  background: var(--mt-status-progress-bg);
  border-color: transparent;
  color: var(--mt-status-progress-ink);
}

.matieres-status-chip:has(input:checked)[data-status="mastered"] {
  background: var(--mt-status-mastered-bg);
  border-color: transparent;
  color: var(--mt-status-mastered-ink);
}

.matieres-status-chip:has(input:checked) .matieres-status-chip__dot {
  opacity: 1;
}

.matieres-status-chip:focus-within {
  outline: 2px solid var(--mt-peach);
  outline-offset: 2px;
}

/* Champs de planif */
.matieres-drawer__date-row {
  display: grid;
  grid-template-columns: 1fr 7rem auto;
  gap: 0.5rem;
  align-items: stretch;
}

@media (max-width: 480px) {
  .matieres-drawer__date-row {
    grid-template-columns: 1fr 1fr;
  }
  .matieres-drawer__date-clear {
    grid-column: 1 / -1;
  }
}

.matieres-drawer__input {
  appearance: none;
  background: var(--mt-paper);
  border: 1px solid var(--mt-line);
  border-radius: 8px;
  padding: 0.55rem 0.7rem;
  font-family: var(--font-editorial);
  font-size: 0.9rem;
  color: var(--mt-ink);
  width: 100%;
  transition: border-color 0.18s ease, box-shadow 0.18s ease;
}

.matieres-drawer__input:focus {
  outline: none;
  border-color: var(--mt-peach);
  box-shadow: 0 0 0 3px var(--mt-peach-wash);
}

.matieres-drawer__input--time {
  font-feature-settings: "tnum" 1;
}

.matieres-drawer__date-clear {
  appearance: none;
  background: transparent;
  border: 1px solid var(--mt-line);
  border-radius: 8px;
  padding: 0 0.85rem;
  font-family: var(--font-editorial);
  font-size: 0.78rem;
  color: var(--mt-muted-strong);
  cursor: pointer;
  transition: border-color 0.18s ease, color 0.18s ease, background 0.18s ease;
}

.matieres-drawer__date-clear:hover {
  border-color: var(--mt-line-strong);
  color: var(--mt-ink);
  background: var(--mt-cream-deep);
}

/* Méthode des J */
.matieres-drawer__field--j {
  padding: 1.1rem 1.1rem;
  background: var(--mt-cream);
  border: 1px solid var(--mt-line);
  border-radius: 12px;
}

.matieres-drawer__j-head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 1rem;
}

.matieres-drawer__j-panel {
  margin-top: 1rem;
  padding-top: 1rem;
  border-top: 1px solid var(--mt-line);
}

.matieres-drawer__j-summary-label {
  margin: 1.1rem 0 0.5rem;
  font-family: var(--font-editorial);
  font-size: 0.72rem;
  font-weight: 600;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--mt-muted);
}

.matieres-drawer__j-list {
  margin: 0;
  padding: 0;
  list-style: none;
  display: flex;
  flex-direction: column;
  gap: 0.4rem;
}

.matieres-drawer__j-list li {
  display: flex;
  align-items: center;
  gap: 0.65rem;
  font-family: var(--font-editorial);
  font-size: 0.85rem;
  color: var(--mt-ink-soft);
  line-height: 1.35;
}

.matieres-drawer__j-list li::before {
  content: "";
  width: 5px;
  height: 5px;
  border-radius: 50%;
  background: var(--mt-peach-deep);
  flex-shrink: 0;
}

.matieres-drawer__j-list li small {
  color: var(--mt-muted);
  font-size: 0.7rem;
  margin-left: auto;
  font-feature-settings: "tnum" 1;
  letter-spacing: 0.02em;
  text-transform: uppercase;
}

/* Switch (toggle Méthode des J) */
.matieres-switch {
  position: relative;
  display: inline-block;
  width: 42px;
  height: 24px;
  flex-shrink: 0;
}

.matieres-switch input {
  position: absolute;
  inset: 0;
  opacity: 0;
  cursor: pointer;
  margin: 0;
}

.matieres-switch__track {
  position: absolute;
  inset: 0;
  background: var(--mt-line-strong);
  border-radius: 999px;
  transition: background 0.22s ease;
}

.matieres-switch__knob {
  position: absolute;
  top: 2px;
  left: 2px;
  width: 20px;
  height: 20px;
  border-radius: 50%;
  background: #ffffff;
  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.18);
  transition: transform 0.22s cubic-bezier(0.22, 0.61, 0.36, 1);
}

.matieres-switch:has(input:checked) .matieres-switch__track {
  background: var(--mt-peach-deep);
}

.matieres-switch:has(input:checked) .matieres-switch__knob {
  transform: translateX(18px);
}

.matieres-switch:focus-within .matieres-switch__track {
  box-shadow: 0 0 0 3px var(--mt-peach-wash);
}

/* Footer drawer */
.matieres-drawer__footer {
  display: flex;
  align-items: center;
  gap: 0.6rem;
  margin-top: auto;
  padding-top: 0.5rem;
  border: 0;
}

.matieres-drawer__footer-spacer {
  flex: 1 1 auto;
  min-width: 0;
}

.matieres-drawer__btn {
  appearance: none;
  border: 1px solid transparent;
  border-radius: 10px;
  padding: 0.62rem 1.1rem;
  font-family: var(--font-editorial);
  font-size: 0.88rem;
  font-weight: 600;
  letter-spacing: 0.02em;
  cursor: pointer;
  transition: background 0.18s ease, color 0.18s ease, border-color 0.18s ease, transform 0.18s ease;
}

.matieres-drawer__btn--ghost {
  background: transparent;
  border-color: var(--mt-line);
  color: var(--mt-muted-strong);
}

.matieres-drawer__btn--ghost:hover {
  background: var(--mt-cream-deep);
  border-color: var(--mt-line-strong);
  color: var(--mt-ink);
}

.matieres-drawer__btn--primary {
  background: var(--mt-ink);
  border-color: var(--mt-ink);
  color: #ffffff;
}

.matieres-drawer__btn--primary:hover {
  background: #000000;
  border-color: #000000;
  transform: translateY(-1px);
}

.matieres-drawer__btn:focus-visible {
  outline: 2px solid var(--mt-peach);
  outline-offset: 2px;
}

/* Empêche l'overflow horizontal quand le drawer est ouvert */
body.matieres-drawer-open {
  overflow: hidden;
}

/* ==================== PILLULE / BOUTON GÉNÉRIQUE ==================== */

button.matieres-pill-btn {
  display: inline-flex;
  align-items: center;
  gap: 0.4rem;
  padding: 0.5rem 1rem !important;
  border-radius: 999px !important;
  border: 1px solid var(--mt-ink) !important;
  background: var(--mt-ink) !important;
  color: #ffffff !important;
  font-family: var(--font-ui) !important;
  font-size: 0.82rem !important;
  font-weight: 600 !important;
  letter-spacing: 0.02em !important;
  cursor: pointer;
  transition: background 0.18s ease, color 0.18s ease, transform 0.18s ease;
}

button.matieres-pill-btn:hover,
button.matieres-pill-btn:focus-visible {
  background: var(--mt-peach-deep) !important;
  border-color: var(--mt-peach-deep) !important;
  color: #ffffff !important;
  transform: translateY(-1px);
  box-shadow: none !important;
}

button.matieres-pill-btn--ghost {
  background: transparent !important;
  color: var(--mt-ink) !important;
}

button.matieres-pill-btn--ghost:hover,
button.matieres-pill-btn--ghost:focus-visible {
  background: var(--mt-peach-wash) !important;
  border-color: var(--mt-peach) !important;
  color: var(--mt-ink) !important;
}

/* ==================== ONGLET TRAVAUX ==================== */

.matieres-travaux__toolbar {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 1rem;
  flex-wrap: wrap;
  margin-bottom: 1rem;
}

/* Toggle Tableau / Voir mon évolution */
.matieres-travaux__view-switch {
  display: inline-flex;
  background: var(--mt-bg);
  border: 1px solid var(--mt-line);
  border-radius: 999px;
  padding: 0.18rem;
  gap: 0.18rem;
}

button.matieres-travaux__view-btn {
  appearance: none;
  background: transparent;
  border: 0;
  padding: 0.42rem 0.95rem;
  border-radius: 999px;
  cursor: pointer;
  font-family: var(--font-ui);
  font-size: 0.78rem;
  font-weight: 600;
  letter-spacing: 0.02em;
  color: var(--mt-muted-strong);
  transition: background 0.18s ease, color 0.18s ease, box-shadow 0.18s ease;
}

button.matieres-travaux__view-btn:hover,
button.matieres-travaux__view-btn:focus-visible {
  color: var(--mt-ink);
  outline: none;
}

button.matieres-travaux__view-btn.is-active {
  background: var(--mt-ink);
  color: var(--mt-paper);
  box-shadow: 0 1px 3px rgba(16, 16, 16, 0.1);
}

.matieres-travaux__view-panel {
  display: none;
}

.matieres-travaux__view-panel.is-active {
  display: block;
}

@media (max-width: 560px) {
  .matieres-travaux__toolbar {
    justify-content: stretch;
  }
  .matieres-travaux__view-switch {
    flex: 1;
    justify-content: center;
  }
}

.matieres-travaux__table-wrap {
  position: relative;
}

.matieres-travaux__table {
  width: 100%;
  border-collapse: collapse;
  font-family: var(--font-ui);
  font-size: 0.9rem;
}

.matieres-travaux__table thead th {
  text-align: left;
  font-family: var(--font-ui);
  font-size: 0.7rem;
  font-weight: 600;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--mt-muted);
  padding: 0.5rem 0.75rem;
  border-bottom: 1px solid var(--mt-line);
  white-space: nowrap;
}

.matieres-travaux__th-actions {
  width: 1px;
}

.matieres-travaux__table tbody td {
  padding: 0.85rem 0.75rem;
  border-bottom: 1px solid var(--mt-line);
  color: var(--mt-ink);
  vertical-align: middle;
}

.matieres-travaux__table tbody tr:hover td {
  background: var(--mt-peach-wash);
}

.matieres-travaux__type {
  font-family: var(--mt-serif);
  font-size: 0.98rem;
  font-weight: 500;
  letter-spacing: -0.005em;
}

.matieres-travaux__sujet {
  font-family: var(--font-ui);
  color: var(--mt-ink-soft);
}

.matieres-travaux__date {
  font-family: var(--font-ui);
  font-size: 0.82rem;
  color: var(--mt-muted-strong);
  font-feature-settings: "tnum" 1;
  white-space: nowrap;
}

.matieres-travaux__date--late {
  color: var(--cherry-dark);
  font-weight: 600;
}

.matieres-travaux__note-cell {
  font-family: var(--font-ui);
  font-size: 0.82rem;
  color: var(--mt-muted-strong);
  font-feature-settings: "tnum" 1;
}

.matieres-travaux__note-bold {
  color: var(--mt-ink);
  font-weight: 600;
}

.matieres-travaux__row-actions {
  display: inline-flex;
  gap: 0.35rem;
  align-items: center;
}

button.matieres-travaux__row-btn {
  appearance: none;
  border: 1px solid var(--mt-line) !important;
  background: transparent !important;
  color: var(--mt-muted) !important;
  width: 1.85rem;
  height: 1.85rem;
  padding: 0 !important;
  border-radius: 6px !important;
  cursor: pointer;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-family: var(--font-ui) !important;
  font-size: 0.85rem !important;
  font-weight: 500 !important;
  letter-spacing: 0 !important;
  transition: background 0.18s ease, border-color 0.18s ease, color 0.18s ease;
}

button.matieres-travaux__row-btn:hover,
button.matieres-travaux__row-btn:focus-visible {
  background: var(--mt-paper) !important;
  border-color: var(--mt-ink) !important;
  color: var(--mt-ink) !important;
}

button.matieres-travaux__row-btn--delete:hover {
  background: rgba(221, 159, 123, 0.18) !important;
  border-color: rgba(221, 159, 123, 0.55) !important;
  color: var(--cherry-dark) !important;
}

.matieres-travaux__empty {
  margin: 2rem 0;
  text-align: center;
  font-family: var(--font-ui);
  color: var(--mt-muted);
  font-size: 0.9rem;
}

/* ==================== ONGLET NOTES & FICHIERS ==================== */

.matieres-notes-grid {
  display: grid;
  grid-template-columns: minmax(0, 1.4fr) minmax(0, 1fr);
  gap: 2rem;
}

@media (max-width: 720px) {
  .matieres-notes-grid {
    grid-template-columns: 1fr;
    gap: 2.5rem;
  }
}

.matieres-notes__col {
  display: flex;
  flex-direction: column;
  gap: 0.85rem;
  min-width: 0;
}

.matieres-notes__head {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 1rem;
}

.matieres-notes__heading {
  margin: 0;
  font-family: var(--mt-serif);
  font-size: 1.2rem;
  font-weight: 500;
  letter-spacing: -0.005em;
  color: var(--mt-ink);
}

.matieres-notes__status {
  font-family: var(--font-ui);
  font-size: 0.72rem;
  letter-spacing: 0.05em;
  color: var(--mt-muted);
  text-transform: uppercase;
}

.matieres-notes__textarea {
  width: 100%;
  min-height: 18rem;
  resize: vertical;
  border: 0;
  border-top: 1px solid var(--mt-line);
  border-bottom: 1px solid var(--mt-line);
  padding: 1.1rem 0.25rem;
  background: transparent;
  font-family: var(--mt-serif);
  font-size: 1.02rem;
  line-height: 1.6;
  color: var(--mt-ink);
  outline: none;
  border-radius: 0;
}

.matieres-notes__textarea:focus {
  border-top-color: var(--mt-ink);
  border-bottom-color: var(--mt-ink);
}

.matieres-files__dropzone {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 0.55rem;
  padding: 1.6rem 1rem;
  border: 1px dashed var(--mt-line-strong);
  border-radius: 14px;
  background: transparent;
  text-align: center;
  cursor: pointer;
  color: var(--mt-muted-strong);
  font-family: var(--font-ui);
  font-size: 0.85rem;
  transition: border-color 0.18s ease, background 0.18s ease, color 0.18s ease;
}

.matieres-files__dropzone:hover,
.matieres-files__dropzone.is-dragover {
  border-color: var(--mt-peach);
  background: var(--mt-peach-wash);
  color: var(--mt-ink);
}

.matieres-files__dz-icon svg {
  display: block;
}

.matieres-files__list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
}

.matieres-files__item {
  display: flex;
  align-items: center;
  gap: 0.65rem;
  padding: 0.55rem 0.75rem;
  border: 1px solid var(--mt-line);
  border-radius: 999px;
  background: var(--mt-paper);
  font-family: var(--font-ui);
  font-size: 0.85rem;
  color: var(--mt-ink);
}

.matieres-files__item-icon {
  flex-shrink: 0;
  color: var(--mt-muted);
}

.matieres-files__item-name {
  flex: 1;
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  color: inherit;
}

a.matieres-files__item-name {
  text-decoration: none;
  cursor: pointer;
  border-radius: 0.25rem;
  transition: color 0.18s ease, text-decoration-color 0.18s ease;
}

a.matieres-files__item-name:hover,
a.matieres-files__item-name:focus-visible {
  color: var(--mt-accent, #1d4ed8);
  text-decoration: underline;
  text-decoration-thickness: 1px;
  text-underline-offset: 2px;
  outline: none;
}

.matieres-files__item-date {
  font-size: 0.7rem;
  color: var(--mt-muted);
  font-feature-settings: "tnum" 1;
  white-space: nowrap;
}

button.matieres-files__item-remove {
  appearance: none;
  background: transparent !important;
  border: 0 !important;
  color: var(--mt-muted) !important;
  width: 1.6rem;
  height: 1.6rem;
  padding: 0 !important;
  border-radius: 50% !important;
  cursor: pointer;
  font-family: var(--font-ui) !important;
  font-size: 1.1rem !important;
  font-weight: 400 !important;
  letter-spacing: 0 !important;
  line-height: 1;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  transition: background 0.18s ease, color 0.18s ease;
}

button.matieres-files__item-remove:hover,
button.matieres-files__item-remove:focus-visible {
  background: rgba(221, 159, 123, 0.22) !important;
  color: var(--cherry-dark) !important;
}

.matieres-files__empty {
  margin: 0;
  padding: 0.4rem 0;
  font-family: var(--font-ui);
  font-size: 0.78rem;
  color: var(--mt-muted);
  text-align: center;
}

.matieres-files__error {
  margin: 0.5rem 0 0;
  padding: 0.45rem 0.65rem;
  font-family: var(--font-ui);
  font-size: 0.78rem;
  line-height: 1.35;
  color: var(--cherry-dark);
  background: rgba(221, 159, 123, 0.18);
  border: 1px solid rgba(221, 159, 123, 0.4);
  border-radius: 0.5rem;
}

/* ==================== ONGLET PRÉPA ==================== */

.matieres-prepa__intro {
  margin: 0 0 1.75rem;
  font-family: var(--font-ui);
  font-size: 0.9rem;
  line-height: 1.55;
  color: var(--mt-muted-strong);
  text-align: center;
  max-width: 44rem;
  margin-left: auto;
  margin-right: auto;
}

.matieres-prepa__grid {
  display: flex;
  flex-direction: column;
  gap: 1.5rem;
}

.matieres-prepa__block {
  padding: 1.2rem 1.4rem 1.3rem;
  border: 1px solid var(--mt-line);
  border-radius: 14px;
  background: var(--mt-paper);
}

.matieres-prepa__head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  flex-wrap: wrap;
  margin-bottom: 1rem;
}

.matieres-prepa__title {
  margin: 0;
  display: inline-flex;
  align-items: center;
  gap: 0.55rem;
  font-family: var(--mt-serif);
  font-size: 1.08rem;
  font-weight: 500;
  letter-spacing: -0.005em;
  color: var(--mt-ink);
}

.matieres-prepa__title-icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  color: var(--mt-muted-strong);
}

.matieres-prepa__title-count {
  font-family: var(--font-ui);
  font-size: 0.72rem;
  letter-spacing: 0.04em;
  font-feature-settings: "tnum" 1;
  color: var(--mt-muted);
  background: var(--mt-paper-soft, rgba(0, 0, 0, 0.035));
  border: 1px solid var(--mt-line);
  border-radius: 999px;
  padding: 0.1rem 0.55rem;
}

button.matieres-prepa__add-toggle {
  appearance: none;
  background: transparent !important;
  border: 1px dashed var(--mt-line-strong) !important;
  color: var(--mt-muted-strong) !important;
  padding: 0.45rem 0.95rem !important;
  border-radius: 999px !important;
  cursor: pointer;
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
  font-family: var(--font-ui) !important;
  font-size: 0.78rem !important;
  font-weight: 500 !important;
  letter-spacing: 0.02em !important;
  transition: background 0.18s ease, border-color 0.18s ease, color 0.18s ease;
}

button.matieres-prepa__add-toggle:hover,
button.matieres-prepa__add-toggle:focus-visible {
  background: var(--mt-peach-wash) !important;
  border-color: var(--mt-peach) !important;
  border-style: solid !important;
  color: var(--mt-ink) !important;
  outline: none;
}

.matieres-prepa__form {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  gap: 0.85rem 1rem;
  margin: 0 0 1rem;
  padding: 0.9rem 1rem 1rem;
  border: 1px solid var(--mt-line);
  border-radius: 12px;
  background: var(--mt-paper-soft, rgba(0, 0, 0, 0.02));
}

@media (max-width: 620px) {
  .matieres-prepa__form {
    grid-template-columns: 1fr;
  }
}

.matieres-prepa__form-field {
  display: flex;
  flex-direction: column;
  gap: 0.35rem;
  min-width: 0;
  margin: 0;
  padding: 0;
  border: 0;
}

.matieres-prepa__form-field--full {
  grid-column: 1 / -1;
}

.matieres-prepa__form-label {
  font-family: var(--font-ui);
  font-size: 0.72rem;
  letter-spacing: 0.05em;
  text-transform: uppercase;
  color: var(--mt-muted);
  padding: 0;
}

.matieres-prepa__form-input {
  appearance: none;
  background: var(--mt-paper);
  border: 1px solid var(--mt-line);
  border-radius: 8px;
  padding: 0.55rem 0.75rem;
  font-family: var(--font-ui);
  font-size: 0.88rem;
  color: var(--mt-ink);
  outline: none;
  transition: border-color 0.18s ease, box-shadow 0.18s ease;
}

.matieres-prepa__form-input:focus {
  border-color: var(--mt-ink);
  box-shadow: 0 0 0 3px var(--mt-peach-wash);
}

.matieres-prepa__form-input--select {
  background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='10' height='6' viewBox='0 0 10 6' fill='none'><path d='M1 1l4 4 4-4' stroke='%23555' stroke-width='1.4' stroke-linecap='round' stroke-linejoin='round'/></svg>");
  background-repeat: no-repeat;
  background-position: right 0.7rem center;
  padding-right: 1.8rem;
  cursor: pointer;
}

.matieres-prepa__status-group {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 0.5rem;
}

@media (max-width: 460px) {
  .matieres-prepa__status-group {
    grid-template-columns: 1fr;
  }
}

.matieres-prepa__form-actions {
  grid-column: 1 / -1;
  display: flex;
  justify-content: flex-end;
  gap: 0.5rem;
  margin-top: 0.15rem;
}

button.matieres-prepa__form-cancel,
button.matieres-prepa__form-submit {
  appearance: none;
  border-radius: 999px !important;
  padding: 0.45rem 1.05rem !important;
  font-family: var(--font-ui) !important;
  font-size: 0.8rem !important;
  font-weight: 500 !important;
  letter-spacing: 0.02em !important;
  cursor: pointer;
  border: 1px solid var(--mt-line-strong) !important;
  background: transparent !important;
  color: var(--mt-muted-strong) !important;
  transition: background 0.18s ease, border-color 0.18s ease, color 0.18s ease;
}

button.matieres-prepa__form-cancel:hover,
button.matieres-prepa__form-cancel:focus-visible {
  background: rgba(221, 159, 123, 0.14) !important;
  border-color: rgba(221, 159, 123, 0.45) !important;
  color: var(--cherry-dark) !important;
  outline: none;
}

button.matieres-prepa__form-submit {
  background: var(--mt-ink) !important;
  border-color: var(--mt-ink) !important;
  color: var(--mt-paper) !important;
}

button.matieres-prepa__form-submit:hover,
button.matieres-prepa__form-submit:focus-visible {
  background: var(--mt-ink-soft, #2b2b2b) !important;
  border-color: var(--mt-ink-soft, #2b2b2b) !important;
  outline: none;
}

.matieres-prepa__list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
}

.matieres-prepa__item {
  display: grid;
  grid-template-columns: auto 1fr auto;
  align-items: center;
  gap: 0.85rem;
  padding: 0.65rem 0.85rem;
  border: 1px solid var(--mt-line);
  border-radius: 10px;
  background: var(--mt-paper);
  transition: border-color 0.18s ease, background 0.18s ease, opacity 0.18s ease;
}

.matieres-prepa__item[data-prepa-status="done"] {
  background: var(--mt-paper-soft, rgba(0, 0, 0, 0.025));
}

/* Chip de statut sur chaque item — cycle au clic */
button.matieres-prepa__item-status {
  appearance: none;
  display: inline-flex;
  align-items: center;
  gap: 0.4rem;
  padding: 0.35rem 0.75rem 0.35rem 0.65rem !important;
  border: 1px solid var(--mt-line) !important;
  border-radius: 999px !important;
  background: var(--mt-paper) !important;
  font-family: var(--font-ui) !important;
  font-size: 0.74rem !important;
  font-weight: 500 !important;
  letter-spacing: 0.01em !important;
  color: var(--mt-muted-strong) !important;
  cursor: pointer;
  flex-shrink: 0;
  transition: background 0.18s ease, border-color 0.18s ease, color 0.18s ease, transform 0.12s ease;
}

button.matieres-prepa__item-status:hover,
button.matieres-prepa__item-status:focus-visible {
  border-color: var(--mt-line-strong) !important;
  color: var(--mt-ink) !important;
  outline: none;
}

button.matieres-prepa__item-status:active {
  transform: scale(0.97);
}

.matieres-prepa__item-status-dot {
  width: 7px;
  height: 7px;
  border-radius: 50%;
  background: currentColor;
  opacity: 0.55;
  flex-shrink: 0;
}

button.matieres-prepa__item-status[data-prepa-status="todo"] {
  background: var(--mt-status-todo-bg) !important;
  border-color: transparent !important;
  color: var(--mt-status-todo-ink) !important;
}

button.matieres-prepa__item-status[data-prepa-status="in_progress"] {
  background: var(--mt-status-progress-bg) !important;
  border-color: transparent !important;
  color: var(--mt-status-progress-ink) !important;
}

button.matieres-prepa__item-status[data-prepa-status="done"] {
  background: var(--mt-status-mastered-bg) !important;
  border-color: transparent !important;
  color: var(--mt-status-mastered-ink) !important;
}

button.matieres-prepa__item-status[data-prepa-status]:not([data-prepa-status="todo"]) .matieres-prepa__item-status-dot {
  opacity: 1;
}

.matieres-prepa__item-body {
  display: flex;
  flex-direction: column;
  gap: 0.3rem;
  min-width: 0;
}

.matieres-prepa__item-title {
  font-family: var(--font-ui);
  font-size: 0.92rem;
  line-height: 1.35;
  color: var(--mt-ink);
  word-break: break-word;
}

.matieres-prepa__item[data-prepa-status="done"] .matieres-prepa__item-title {
  color: var(--mt-muted);
  text-decoration: line-through;
  text-decoration-thickness: 1px;
}

.matieres-prepa__item-meta {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.4rem;
  font-family: var(--font-ui);
  font-size: 0.7rem;
  color: var(--mt-muted);
}

.matieres-prepa__item-due,
.matieres-prepa__item-recurrence {
  display: inline-flex;
  align-items: center;
  gap: 0.3rem;
  padding: 0.1rem 0.5rem;
  border: 1px solid var(--mt-line);
  border-radius: 999px;
  letter-spacing: 0.01em;
  background: var(--mt-paper);
  color: var(--mt-muted-strong);
  white-space: nowrap;
  font-feature-settings: "tnum" 1;
}

.matieres-prepa__item-due svg,
.matieres-prepa__item-recurrence svg {
  flex-shrink: 0;
}

.matieres-prepa__item-due.is-today {
  background: var(--mt-peach-wash);
  border-color: var(--mt-peach);
  color: var(--mt-status-progress-ink);
}

.matieres-prepa__item-due.is-overdue {
  background: rgba(221, 159, 123, 0.18);
  border-color: rgba(221, 159, 123, 0.45);
  color: var(--cherry-dark);
}

.matieres-prepa__item-last {
  font-style: italic;
}

button.matieres-prepa__item-remove {
  appearance: none;
  background: transparent !important;
  border: 0 !important;
  color: var(--mt-muted) !important;
  width: 1.6rem;
  height: 1.6rem;
  padding: 0 !important;
  border-radius: 50% !important;
  cursor: pointer;
  font-family: var(--font-ui) !important;
  font-size: 1.1rem !important;
  font-weight: 400 !important;
  letter-spacing: 0 !important;
  line-height: 1;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  transition: background 0.18s ease, color 0.18s ease;
}

button.matieres-prepa__item-remove:hover,
button.matieres-prepa__item-remove:focus-visible {
  background: rgba(221, 159, 123, 0.22) !important;
  color: var(--cherry-dark) !important;
  outline: none;
}

.matieres-prepa__empty {
  margin: 0.25rem 0 0;
  padding: 0.6rem 0;
  font-family: var(--font-ui);
  font-size: 0.82rem;
  color: var(--mt-muted);
  text-align: center;
}

/* ==================== ONGLET RÉVISIONS AVANCÉES ==================== */

.matieres-revisions__intro {
  margin: 0 0 1.5rem;
  font-family: var(--font-ui);
  font-size: 0.9rem;
  color: var(--mt-muted-strong);
  text-align: center;
}

.matieres-revisions__list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 1.5rem;
}

.matieres-revisions__item {
  padding: 1.25rem 1.4rem 1.4rem;
  border: 1px solid var(--mt-line);
  border-radius: 14px;
  background: var(--mt-paper);
}

.matieres-revisions__item-head {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 1rem;
  flex-wrap: wrap;
  margin-bottom: 1.1rem;
}

.matieres-revisions__item-title {
  margin: 0;
  font-family: var(--mt-serif);
  font-size: 1.1rem;
  font-weight: 500;
  letter-spacing: -0.005em;
  color: var(--mt-ink);
}

.matieres-revisions__item-j0 {
  font-family: var(--font-ui);
  font-size: 0.78rem;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: var(--mt-muted);
}

.matieres-revisions__item-j0 strong {
  color: var(--mt-ink);
  font-weight: 600;
  text-transform: none;
  letter-spacing: 0;
  font-feature-settings: "tnum" 1;
}

.matieres-revisions__timeline {
  position: relative;
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 0.65rem;
}

.matieres-revisions__timeline::before {
  content: "";
  position: absolute;
  top: 0.45rem;
  bottom: 0.45rem;
  left: 0.45rem;
  width: 1px;
  background: var(--mt-line);
}

.matieres-revisions__step {
  position: relative;
  display: grid;
  grid-template-columns: 1.4rem 4rem 1fr auto;
  align-items: center;
  gap: 0.85rem;
  font-family: var(--font-ui);
  font-size: 0.88rem;
}

.matieres-revisions__step::before {
  content: "";
  width: 9px;
  height: 9px;
  border-radius: 50%;
  background: var(--mt-paper);
  border: 1.5px solid var(--mt-line-strong);
  margin-left: 0.05rem;
  z-index: 1;
}

.matieres-revisions__step--past::before {
  background: var(--mt-ink);
  border-color: var(--mt-ink);
}

.matieres-revisions__step--today::before {
  background: var(--mt-peach);
  border-color: var(--mt-peach-deep);
  box-shadow: 0 0 0 4px var(--mt-peach-wash);
}

.matieres-revisions__step-label {
  font-feature-settings: "tnum" 1;
  font-weight: 600;
  color: var(--mt-ink);
}

.matieres-revisions__step-date {
  color: var(--mt-ink-soft);
}

.matieres-revisions__step-meta {
  font-size: 0.72rem;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: var(--mt-muted);
}

.matieres-revisions__step--past .matieres-revisions__step-date,
.matieres-revisions__step--past .matieres-revisions__step-label {
  color: var(--mt-muted);
}

.matieres-revisions__step--today .matieres-revisions__step-meta {
  color: var(--mt-peach-deep);
  font-weight: 700;
}

.matieres-revisions__empty {
  margin: 2.5rem auto;
  text-align: center;
  font-family: var(--font-ui);
  color: var(--mt-muted);
  font-size: 0.9rem;
  line-height: 1.6;
  max-width: 28rem;
}

.matieres-revisions__actions {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
  margin-top: 1.2rem;
  padding-top: 1rem;
  border-top: 1px solid var(--mt-line);
}

button.matieres-revisions__action {
  appearance: none;
  background: transparent !important;
  border: 1px solid var(--mt-line-strong) !important;
  color: var(--mt-ink) !important;
  padding: 0.45rem 0.9rem;
  border-radius: 999px;
  font-family: var(--font-ui) !important;
  font-size: 0.78rem !important;
  font-weight: 500 !important;
  letter-spacing: 0.02em !important;
  cursor: pointer;
  white-space: nowrap;
  transition: background 0.18s ease, color 0.18s ease, border-color 0.18s ease;
  box-shadow: none !important;
}

button.matieres-revisions__action:hover,
button.matieres-revisions__action:focus-visible {
  background: var(--mt-bg) !important;
  border-color: var(--mt-ink) !important;
  outline: none;
}

button.matieres-revisions__action:focus-visible {
  outline: 2px solid var(--mt-peach);
  outline-offset: 2px;
}

/* Variantes : restart (neutre), stop (subtilement marqué), done (action forte) */
button.matieres-revisions__action--restart {
  /* style par défaut, neutre */
}

button.matieres-revisions__action--stop {
  color: var(--mt-muted-strong, var(--mt-muted)) !important;
}

button.matieres-revisions__action--stop:hover,
button.matieres-revisions__action--stop:focus-visible {
  color: var(--mt-ink) !important;
}

button.matieres-revisions__action--done {
  background: var(--mt-ink) !important;
  color: var(--mt-paper) !important;
  border-color: var(--mt-ink) !important;
}

button.matieres-revisions__action--done:hover,
button.matieres-revisions__action--done:focus-visible {
  background: #000 !important;
  border-color: #000 !important;
  color: var(--mt-paper) !important;
}

@media (max-width: 560px) {
  .matieres-revisions__actions {
    flex-direction: column;
    align-items: stretch;
  }
  button.matieres-revisions__action {
    width: 100%;
    text-align: center;
  }
}

/* ==================== MODALE ==================== */

.matieres-modal__backdrop {
  position: fixed;
  inset: 0;
  background: rgba(16, 16, 16, 0.45);
  z-index: 150;
  opacity: 0;
  pointer-events: none;
  transition: opacity 0.22s ease;
}

.matieres-modal__backdrop.is-open {
  opacity: 1;
  pointer-events: auto;
}

.matieres-modal {
  position: fixed;
  inset: 0;
  z-index: 160;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 1rem;
  pointer-events: none;
  opacity: 0;
  transition: opacity 0.2s ease;
}

.matieres-modal.is-open {
  pointer-events: auto;
  opacity: 1;
}

.matieres-modal__panel {
  width: min(32rem, 100%);
  max-height: calc(100vh - 2rem);
  overflow-y: auto;
  background: var(--mt-paper);
  border: 1px solid var(--mt-line);
  border-radius: 16px;
  box-shadow: 0 20px 60px rgba(0, 0, 0, 0.18);
  transform: translateY(10px) scale(0.985);
  transition: transform 0.22s cubic-bezier(0.22, 0.61, 0.36, 1);
}

.matieres-modal.is-open .matieres-modal__panel {
  transform: translateY(0) scale(1);
}

.matieres-modal__header {
  position: relative;
  padding: 1.3rem 1.5rem 0.8rem;
  border-bottom: 1px solid var(--mt-line);
}

.matieres-modal__title {
  margin: 0;
  font-family: var(--mt-serif);
  font-size: 1.4rem;
  font-weight: 500;
  letter-spacing: -0.01em;
  color: var(--mt-ink);
}

button.matieres-modal__close {
  position: absolute;
  top: 0.85rem;
  right: 0.85rem;
  width: 2rem;
  height: 2rem;
  border-radius: 8px !important;
  border: 1px solid var(--mt-line) !important;
  background: var(--mt-paper) !important;
  color: var(--mt-ink) !important;
  font-family: var(--font-ui) !important;
  font-size: 1.2rem !important;
  font-weight: 500 !important;
  letter-spacing: 0 !important;
  line-height: 1;
  cursor: pointer;
}

button.matieres-modal__close:hover,
button.matieres-modal__close:focus-visible {
  background: var(--mt-peach-wash) !important;
  border-color: var(--mt-peach) !important;
}

.matieres-modal__body {
  padding: 1.25rem 1.5rem 1.5rem;
  display: flex;
  flex-direction: column;
  gap: 1rem;
  border: 0;
  margin: 0;
}

.matieres-modal__row {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 0.85rem;
}

@media (max-width: 480px) {
  .matieres-modal__row {
    grid-template-columns: 1fr;
  }
}

.matieres-modal__field {
  display: flex;
  flex-direction: column;
  gap: 0.4rem;
}

.matieres-modal__label {
  font-family: var(--font-ui);
  font-size: 0.74rem;
  font-weight: 600;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--mt-muted-strong);
}

.matieres-modal__input {
  appearance: none;
  background: var(--mt-paper);
  border: 1px solid var(--mt-line);
  border-radius: 8px;
  padding: 0.6rem 0.75rem;
  font-family: var(--font-ui);
  font-size: 0.95rem;
  color: var(--mt-ink);
  width: 100%;
  transition: border-color 0.18s ease, box-shadow 0.18s ease;
}

.matieres-modal__input:focus {
  outline: none;
  border-color: var(--mt-peach);
  box-shadow: 0 0 0 3px var(--mt-peach-wash);
}

.matieres-modal__footer {
  display: flex;
  justify-content: flex-end;
  gap: 0.55rem;
  margin-top: 0.4rem;
  padding-top: 0.5rem;
  border: 0;
}

.matieres-modal__hint {
  margin: 0.15rem 0 0 0;
  font-family: var(--font-ui);
  font-size: 0.72rem;
  color: var(--mt-muted);
}

.matieres-modal__error {
  margin: 0.3rem 0 0;
  padding: 0.5rem 0.7rem;
  background: rgba(221, 159, 123, 0.18);
  border: 1px solid rgba(221, 159, 123, 0.4);
  border-radius: 8px;
  color: var(--cherry-dark);
  font-family: var(--font-ui);
  font-size: 0.78rem;
}

/* ----- Pièces jointes (sujet + correction) dans la modale Travail ----- */
.matieres-modal__attachments {
  display: flex;
  flex-direction: column;
  gap: 0.45rem;
  padding: 0.85rem;
  border: 1px solid var(--mt-line);
  border-radius: 12px;
  background: var(--mt-paper);
}

.matieres-modal__attachments-label {
  margin: 0;
}

.matieres-modal__attach-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 0.7rem;
  margin-top: 0.3rem;
}

@media (max-width: 480px) {
  .matieres-modal__attach-grid {
    grid-template-columns: 1fr;
  }
}

.matieres-attach {
  display: flex;
  flex-direction: column;
  gap: 0.45rem;
  padding: 0.7rem 0.75rem;
  background: var(--mt-bg);
  border: 1px dashed var(--mt-line-strong);
  border-radius: 10px;
}

.matieres-attach__title {
  margin: 0;
  font-family: var(--font-ui);
  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--mt-ink);
}

.matieres-attach__zone {
  min-height: 1.6rem;
  display: flex;
  align-items: center;
}

.matieres-attach__empty {
  margin: 0;
  font-family: var(--font-ui);
  font-size: 0.78rem;
  color: var(--mt-muted);
  font-style: italic;
}

.matieres-attach__filled {
  display: flex;
  align-items: center;
  gap: 0.4rem;
  width: 100%;
  padding: 0.35rem 0.55rem;
  background: var(--mt-paper);
  border: 1px solid var(--mt-line);
  border-radius: 999px;
}

.matieres-attach__link {
  display: inline-flex;
  align-items: center;
  gap: 0.4rem;
  flex: 1;
  min-width: 0;
  color: var(--mt-ink);
  font-family: var(--font-ui);
  font-size: 0.82rem;
  text-decoration: none;
}

.matieres-attach__link:hover,
.matieres-attach__link:focus-visible {
  text-decoration: underline;
}

.matieres-attach__icon {
  color: var(--mt-muted-strong);
  display: inline-flex;
  align-items: center;
}

.matieres-attach__name {
  flex: 1;
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

button.matieres-attach__remove {
  appearance: none;
  background: transparent !important;
  border: 0 !important;
  color: var(--mt-muted) !important;
  width: 1.4rem;
  height: 1.4rem;
  padding: 0 !important;
  border-radius: 50% !important;
  cursor: pointer;
  font-family: var(--font-ui) !important;
  font-size: 1rem !important;
  font-weight: 400 !important;
  letter-spacing: 0 !important;
  line-height: 1;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  transition: background 0.18s ease, color 0.18s ease;
  flex-shrink: 0;
}

button.matieres-attach__remove:hover,
button.matieres-attach__remove:focus-visible {
  background: rgba(221, 159, 123, 0.26) !important;
  color: var(--cherry-dark) !important;
}

.matieres-attach__pick {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 0.4rem 0.7rem;
  border: 1px solid var(--mt-line-strong);
  border-radius: 999px;
  background: transparent;
  cursor: pointer;
  font-family: var(--font-ui);
  font-size: 0.78rem;
  color: var(--mt-ink);
  transition: background 0.18s ease, border-color 0.18s ease, color 0.18s ease;
}

.matieres-attach__pick:hover,
.matieres-attach__pick:focus-within {
  background: var(--mt-peach-wash);
  border-color: var(--mt-peach);
}

/* ----- Vue Évolution (notes + temps de rédaction) ----- */
.matieres-evol__intro {
  display: flex;
  flex-direction: column;
  gap: 0.4rem;
  margin-bottom: 1.1rem;
  padding: 0.85rem 1rem;
  background: var(--mt-paper);
  border: 1px solid var(--mt-line);
  border-radius: 12px;
  font-family: var(--font-ui);
  font-size: 0.84rem;
  color: var(--mt-muted-strong);
}

.matieres-evol__intro p {
  margin: 0;
}

.matieres-evol__exam-ref {
  font-size: 0.85rem;
  color: var(--mt-ink);
}

.matieres-evol__legend-chip {
  display: inline-flex;
  align-items: center;
  gap: 0.3rem;
  padding: 0.05rem 0.45rem;
  border-radius: 999px;
  font-weight: 600;
  font-size: 0.74rem;
  letter-spacing: 0.02em;
}

.matieres-evol__legend-chip--ok {
  background: rgba(16, 16, 16, 0.06);
  color: var(--text-muted);
}

.matieres-evol__legend-chip--ko {
  background: rgba(221, 159, 123, 0.26);
  color: var(--cherry-dark);
}

.matieres-evol__grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 1.2rem;
}

@media (max-width: 900px) {
  .matieres-evol__grid {
    grid-template-columns: 1fr;
  }
}

.matieres-evol__block {
  display: flex;
  flex-direction: column;
  gap: 0.6rem;
  padding: 1rem 1.1rem;
  background: var(--mt-paper);
  border: 1px solid var(--mt-line);
  border-radius: 14px;
}

.matieres-evol__head {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 0.6rem;
  flex-wrap: wrap;
}

.matieres-evol__title {
  margin: 0;
  font-family: var(--font-display);
  font-size: 1.05rem;
  color: var(--mt-ink);
}

.matieres-evol__summary {
  margin: 0;
  display: inline-flex;
  flex-wrap: wrap;
  gap: 0.5rem 0.85rem;
  font-family: var(--font-ui);
  font-size: 0.78rem;
  color: var(--mt-muted-strong);
}

.matieres-evol__stat strong {
  color: var(--mt-ink);
  font-weight: 700;
}

.matieres-evol__chart-wrap {
  position: relative;
  min-height: 220px;
}

.matieres-evol__chart {
  width: 100%;
  height: 220px;
  display: block;
}

.matieres-evol__empty {
  margin: 0;
  padding: 1rem 0;
  font-family: var(--font-ui);
  font-size: 0.82rem;
  font-style: italic;
  color: var(--mt-muted);
  text-align: center;
}

/* Barres de temps */
.matieres-evol__bars {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 0.7rem;
}

.matieres-evol__bar-row {
  display: flex;
  flex-direction: column;
  gap: 0.3rem;
  padding: 0.6rem 0.75rem;
  background: var(--mt-bg);
  border: 1px solid var(--mt-line);
  border-radius: 10px;
}

.matieres-evol__bar-head {
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  gap: 0.75rem;
  font-family: var(--font-ui);
}

.matieres-evol__bar-label {
  font-size: 0.86rem;
  font-weight: 600;
  color: var(--mt-ink);
  flex: 1;
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.matieres-evol__bar-time {
  font-size: 0.86rem;
  font-weight: 700;
  font-feature-settings: "tnum" 1;
  white-space: nowrap;
}

.matieres-evol__bar-row.is-ok .matieres-evol__bar-time {
  color: var(--text-muted);
}

.matieres-evol__bar-row.is-over .matieres-evol__bar-time {
  color: var(--cherry-dark);
}

.matieres-evol__bar-outer {
  position: relative;
  height: 10px;
  border-radius: 999px;
  background: rgba(16, 16, 16, 0.08);
  overflow: visible;
}

.matieres-evol__bar-fill {
  position: absolute;
  inset: 0 auto 0 0;
  width: 0%;
  background: var(--mt-muted-strong);
  border-radius: 999px;
  transition: width 0.5s ease-out;
}

.matieres-evol__bar-row.is-ok .matieres-evol__bar-fill {
  background: linear-gradient(90deg, var(--cherry), var(--cherry-dark));
}

.matieres-evol__bar-row.is-over .matieres-evol__bar-fill {
  background: linear-gradient(90deg, var(--cherry-dark), var(--burgundy-ink));
}

.matieres-evol__bar-ref {
  position: absolute;
  top: -3px;
  bottom: -3px;
  width: 2px;
  background: #101010;
  border-radius: 2px;
  transform: translateX(-1px);
  opacity: 0.7;
}

.matieres-evol__bar-ref::after {
  content: "";
  position: absolute;
  top: -3px;
  left: -3px;
  width: 8px;
  height: 8px;
  background: #101010;
  border-radius: 50%;
}

.matieres-evol__bar-meta {
  margin: 0;
  font-family: var(--font-ui);
  font-size: 0.74rem;
  color: var(--mt-muted);
}

/* Bouton "Trombone" dans la colonne Actions du tableau */
button.matieres-travaux__row-btn--trombone {
  position: relative;
}

button.matieres-travaux__row-btn--trombone.has-files {
  color: var(--cherry-dark) !important;
}

.matieres-travaux__row-badge {
  position: absolute;
  top: -4px;
  right: -4px;
  min-width: 14px;
  height: 14px;
  padding: 0 3px;
  border-radius: 999px;
  background: var(--cherry-dark);
  color: #ffffff;
  font-family: var(--font-ui);
  font-size: 0.62rem;
  font-weight: 700;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  letter-spacing: 0;
  line-height: 1;
  box-shadow: 0 0 0 2px var(--mt-paper);
}

/* Mini-modale Trombone */
.matieres-modal--trombone .matieres-modal__panel {
  max-width: 520px;
}

.matieres-modal__title-icon {
  display: inline-flex;
  align-items: center;
  margin-right: 0.45rem;
  color: var(--mt-muted-strong);
}

.matieres-trombone__subtitle {
  margin: 0 0 0.4rem;
  font-weight: 600;
  color: var(--mt-ink);
  font-size: 0.85rem;
}

/* Liens fichiers (Sujet / Correction) dans la table Travaux à rendre */
.matieres-travaux__attach {
  display: inline-flex;
  flex-wrap: wrap;
  gap: 0.35rem;
  margin-top: 0.3rem;
}

.matieres-travaux__attach-link {
  display: inline-flex;
  align-items: center;
  gap: 0.3rem;
  padding: 0.15rem 0.55rem;
  border: 1px solid var(--mt-line);
  border-radius: 999px;
  background: var(--mt-paper);
  font-family: var(--font-ui);
  font-size: 0.72rem;
  color: var(--mt-ink);
  text-decoration: none;
  transition: border-color 0.18s ease, background 0.18s ease;
}

.matieres-travaux__attach-link:hover,
.matieres-travaux__attach-link:focus-visible {
  border-color: var(--mt-peach);
  background: var(--mt-peach-wash);
}

.matieres-travaux__attach-icon {
  color: var(--mt-muted-strong);
  display: inline-flex;
  align-items: center;
}

/* Badge statut commun (réutilisé pour la table Travaux) */
.matieres-status-badge {
  display: inline-flex;
  align-items: center;
  gap: 0.4rem;
  padding: 0.25rem 0.65rem;
  border-radius: 999px;
  font-family: var(--font-ui);
  font-size: 0.72rem;
  font-weight: 600;
  letter-spacing: 0.04em;
  white-space: nowrap;
}

.matieres-status-badge::before {
  content: "";
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: currentColor;
  opacity: 0.6;
}

.matieres-status-badge[data-status="todo"] {
  background: var(--mt-status-todo-bg);
  color: var(--mt-status-todo-ink);
}

.matieres-status-badge[data-status="planned"] {
  background: var(--mt-status-planned-bg);
  color: var(--mt-status-planned-ink);
}

.matieres-status-badge[data-status="in_progress"] {
  background: var(--mt-status-progress-bg);
  color: var(--mt-status-progress-ink);
}

.matieres-status-badge[data-status="done"],
.matieres-status-badge[data-status="mastered"] {
  background: var(--mt-status-mastered-bg);
  color: var(--mt-status-mastered-ink);
}

.matieres-status-badge[data-status="corrected"] {
  background: var(--mt-status-corrected-bg);
  color: var(--mt-status-corrected-ink);
}

/* Variante éditable (table Travaux à rendre) : badge cliquable + popover */
.matieres-status-edit {
  position: relative;
  display: inline-flex;
  vertical-align: middle;
}

button.matieres-status-badge--editable {
  cursor: pointer;
  border: none;
  font: inherit;
  letter-spacing: 0.04em;
  /* Le sélecteur global `button` impose !important sur background/color ;
     on neutralise pour conserver les variantes par data-status définies
     plus haut. */
  background: var(--mt-status-todo-bg) !important;
  color: var(--mt-status-todo-ink) !important;
  transition: filter 0.15s ease, box-shadow 0.15s ease;
}

button.matieres-status-badge--editable[data-status="planned"] {
  background: var(--mt-status-planned-bg) !important;
  color: var(--mt-status-planned-ink) !important;
}

button.matieres-status-badge--editable[data-status="in_progress"] {
  background: var(--mt-status-progress-bg) !important;
  color: var(--mt-status-progress-ink) !important;
}

button.matieres-status-badge--editable[data-status="done"] {
  background: var(--mt-status-mastered-bg) !important;
  color: var(--mt-status-mastered-ink) !important;
}

button.matieres-status-badge--editable[data-status="corrected"] {
  background: var(--mt-status-corrected-bg) !important;
  color: var(--mt-status-corrected-ink) !important;
}

button.matieres-status-badge--editable:hover,
button.matieres-status-badge--editable:focus-visible {
  filter: brightness(0.96);
  box-shadow: 0 0 0 2px var(--mt-line-strong, rgba(0, 0, 0, 0.18));
  outline: none;
}

.matieres-status-badge__caret {
  font-size: 0.7em;
  line-height: 1;
  opacity: 0.7;
  margin-left: 0.1rem;
}

button.matieres-status-badge--editable[aria-expanded="true"] .matieres-status-badge__caret {
  transform: rotate(180deg);
}

.matieres-status-menu {
  position: absolute;
  top: calc(100% + 6px);
  left: 0;
  z-index: 40;
  margin: 0;
  padding: 0.3rem;
  list-style: none;
  min-width: 9rem;
  background: var(--mt-paper, #fff);
  border: 1px solid var(--mt-line-strong, rgba(0, 0, 0, 0.18));
  border-radius: 10px;
  box-shadow: 0 12px 28px rgba(0, 0, 0, 0.12);
  display: flex;
  flex-direction: column;
  gap: 2px;
}

.matieres-status-menu__item {
  display: flex;
  align-items: center;
  gap: 0.55rem;
  width: 100%;
  padding: 0.45rem 0.65rem;
  border: none;
  background: transparent !important;
  color: var(--mt-ink, #111) !important;
  font-family: var(--font-ui);
  font-size: 0.78rem;
  font-weight: 500;
  text-align: left;
  border-radius: 7px;
  cursor: pointer;
  transition: background 0.12s ease;
}

.matieres-status-menu__item:hover,
.matieres-status-menu__item:focus-visible {
  background: var(--mt-status-todo-bg, #f3f3f3) !important;
  outline: none;
}

.matieres-status-menu__item.is-active {
  font-weight: 700;
}

.matieres-status-menu__dot {
  width: 8px;
  height: 8px;
  border-radius: 50%;
  flex-shrink: 0;
  background: var(--mt-status-todo-ink);
}

.matieres-status-menu__dot[data-status="planned"] {
  background: var(--mt-status-planned-ink);
}

.matieres-status-menu__dot[data-status="in_progress"] {
  background: var(--mt-status-progress-ink);
}

.matieres-status-menu__dot[data-status="done"] {
  background: var(--mt-status-mastered-bg);
  border: 1px solid var(--mt-line-strong, rgba(0, 0, 0, 0.18));
}

.matieres-status-menu__dot[data-status="corrected"] {
  background: var(--mt-status-corrected-ink);
}

body.matieres-modal-open {
  overflow: hidden;
}

/* =====================================================================
   PAGE MATIÈRES — OVERRIDES sur la règle globale `button` (ligne ~13692)
   --------------------------------------------------------------------
   Le site force `button { background: #101010 !important; color: #fff }`,
   ce qui transforme TOUS nos boutons en pavés noirs. On rétablit ici
   la DA blanc/noir/pêche pour chaque bouton spécifique de cette page.
   ===================================================================== */

button.matieres-card {
  background: var(--mt-paper) !important;
  border: 1px solid var(--mt-line) !important;
  color: var(--mt-ink) !important;
  font-family: var(--font-ui) !important;
  font-weight: 500 !important;
  letter-spacing: normal !important;
  box-shadow: none !important;
}

button.matieres-card:hover,
button.matieres-card:focus-visible {
  background: var(--mt-paper) !important;
  border-color: var(--mt-peach) !important;
  color: var(--mt-ink) !important;
  box-shadow: var(--mt-shadow-card-hover) !important;
}

button.matieres-focus__back {
  background: transparent !important;
  border: 1px solid var(--mt-line) !important;
  color: var(--mt-muted-strong) !important;
  font-family: var(--font-ui) !important;
  font-weight: 500 !important;
  letter-spacing: 0.02em !important;
}

button.matieres-focus__back:hover,
button.matieres-focus__back:focus-visible {
  background: var(--mt-cream-deep) !important;
  border-color: var(--mt-line-strong) !important;
  color: var(--mt-ink) !important;
}

button.matieres-chapter {
  background: transparent !important;
  border: none !important;
  border-bottom: 1px solid var(--mt-line) !important;
  color: var(--mt-ink) !important;
  font-family: var(--font-ui) !important;
  font-weight: 500 !important;
  letter-spacing: normal !important;
  text-align: left;
}

button.matieres-chapter:hover,
button.matieres-chapter:focus-visible {
  background: var(--mt-peach-wash) !important;
  border-color: var(--mt-line) !important;
  color: var(--mt-ink) !important;
}

button.matieres-chapter__config {
  background: transparent !important;
  border: 1px solid transparent !important;
  color: var(--mt-muted) !important;
}

button.matieres-chapter__config:hover,
button.matieres-chapter__config:focus-visible {
  background: var(--mt-paper) !important;
  border-color: var(--mt-line-strong) !important;
  color: var(--mt-ink) !important;
}

/* Drawer */
button.matieres-drawer__close {
  background: var(--mt-paper) !important;
  border: 1px solid var(--mt-line) !important;
  color: var(--mt-ink) !important;
  font-family: var(--font-ui) !important;
  font-weight: 600 !important;
  letter-spacing: normal !important;
}

button.matieres-drawer__close:hover,
button.matieres-drawer__close:focus-visible {
  background: var(--mt-peach-wash) !important;
  border-color: var(--mt-peach) !important;
  color: var(--mt-ink) !important;
}

button.matieres-drawer__date-clear,
button.matieres-drawer__btn--ghost {
  background: transparent !important;
  border: 1px solid var(--mt-line) !important;
  color: var(--mt-muted-strong) !important;
  font-family: var(--font-ui) !important;
  font-weight: 500 !important;
  letter-spacing: 0.02em !important;
}

button.matieres-drawer__date-clear:hover,
button.matieres-drawer__date-clear:focus-visible,
button.matieres-drawer__btn--ghost:hover,
button.matieres-drawer__btn--ghost:focus-visible {
  background: var(--mt-cream-deep) !important;
  border-color: var(--mt-line-strong) !important;
  color: var(--mt-ink) !important;
}

button.matieres-drawer__btn--primary {
  background: var(--mt-ink) !important;
  border: 1px solid var(--mt-ink) !important;
  color: #ffffff !important;
  font-family: var(--font-ui) !important;
  font-weight: 600 !important;
  letter-spacing: 0.02em !important;
}

button.matieres-drawer__btn--primary:hover,
button.matieres-drawer__btn--primary:focus-visible {
  background: var(--mt-peach-deep) !important;
  border-color: var(--mt-peach-deep) !important;
  color: #ffffff !important;
}

button.matieres-drawer__btn--danger {
  background: transparent !important;
  border: 1px solid rgba(221, 159, 123, 0.45) !important;
  color: var(--cherry-dark) !important;
  font-family: var(--font-ui) !important;
  font-weight: 500 !important;
  letter-spacing: 0.02em !important;
}

button.matieres-drawer__btn--danger:hover,
button.matieres-drawer__btn--danger:focus-visible {
  background: rgba(221, 159, 123, 0.18) !important;
  border-color: rgba(221, 159, 123, 0.65) !important;
  color: #8a2f23 !important;
}

/* Titres des cartes : on rétablit Fraunces que le `button {font-family: ...}`
   global tente d'imposer. Le sélecteur enfant gagne en specificity. */
.matieres-card .matieres-card__title {
  font-family: var(--mt-serif) !important;
  font-weight: 500 !important;
  letter-spacing: -0.015em !important;
}

.matieres-card .matieres-card__kicker {
  font-family: var(--font-ui) !important;
  font-weight: 500 !important;
  letter-spacing: 0.22em !important;
}

.matieres-card .matieres-card__progress-pct {
  font-family: var(--font-ui) !important;
  font-weight: 600 !important;
  letter-spacing: 0.04em !important;
}

.matieres-chapter .matieres-chapter__label {
  font-family: var(--font-ui) !important;
  font-weight: 500 !important;
  letter-spacing: normal !important;
}

.matieres-chapter .matieres-chapter__badge {
  font-family: var(--font-ui) !important;
  font-weight: 600 !important;
  letter-spacing: 0.02em !important;
}

/* Ligne d'un chapitre : conteneur autour du bouton principal + (éventuel)
   bouton de suppression pour les chapitres custom. */
.matieres-chapter-list .matieres-chapter-row {
  display: flex;
  align-items: stretch;
  border-bottom: 1px solid var(--mt-line);
}

/* On enlève le border-bottom du bouton interne puisque le row le porte. */
.matieres-chapter-list .matieres-chapter-row .matieres-chapter {
  flex: 1;
  min-width: 0;
}

button.matieres-chapter-list .matieres-chapter-row .matieres-chapter,
.matieres-chapter-list .matieres-chapter-row button.matieres-chapter {
  border-bottom: 0 !important;
}

/* Bouton de suppression d'un chapitre custom (visible au hover de la ligne) */
button.matieres-chapter__delete {
  appearance: none;
  background: transparent !important;
  border: 1px solid transparent !important;
  color: var(--mt-muted) !important;
  width: 1.85rem;
  height: 1.85rem;
  align-self: center;
  padding: 0 !important;
  border-radius: 50% !important;
  cursor: pointer;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-family: var(--font-ui) !important;
  font-size: 1.1rem !important;
  font-weight: 400 !important;
  letter-spacing: 0 !important;
  line-height: 1;
  opacity: 0;
  flex-shrink: 0;
  margin-left: 0.35rem;
  transition: opacity 0.18s ease, background 0.18s ease, color 0.18s ease, border-color 0.18s ease;
}

.matieres-chapter-row:hover button.matieres-chapter__delete,
.matieres-chapter-row:focus-within button.matieres-chapter__delete {
  opacity: 1;
}

button.matieres-chapter__delete:hover,
button.matieres-chapter__delete:focus-visible {
  opacity: 1;
  background: rgba(221, 159, 123, 0.22) !important;
  border-color: rgba(221, 159, 123, 0.5) !important;
  color: var(--cherry-dark) !important;
}

/* Bloc « + Ajouter un chapitre » (en haut du panneau Programme) */
.matieres-chapter-add {
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  gap: 0.5rem;
  margin-bottom: 0.75rem;
}

button.matieres-chapter-add__toggle {
  align-self: flex-end;
  appearance: none;
  background: transparent !important;
  border: 1px dashed var(--mt-line-strong) !important;
  color: var(--mt-muted-strong) !important;
  padding: 0.55rem 1rem !important;
  border-radius: 999px !important;
  cursor: pointer;
  display: inline-flex;
  align-items: center;
  gap: 0.4rem;
  font-family: var(--font-ui) !important;
  font-size: 0.82rem !important;
  font-weight: 500 !important;
  letter-spacing: 0.02em !important;
  transition: background 0.18s ease, border-color 0.18s ease, color 0.18s ease;
}

button.matieres-chapter-add__toggle:hover,
button.matieres-chapter-add__toggle:focus-visible {
  background: var(--mt-peach-wash) !important;
  border-color: var(--mt-peach) !important;
  border-style: solid !important;
  color: var(--mt-ink) !important;
}

/* Textarea du drawer (Notes libres) */
.matieres-drawer__textarea {
  resize: vertical;
  min-height: 4.5rem;
  font-family: var(--font-editorial);
  line-height: 1.45;
}

/* Champs "vu en cours" : date + texte sur la même ligne */
.matieres-drawer__course-row {
  display: grid;
  grid-template-columns: minmax(10rem, 13rem) 1fr;
  gap: 0.5rem;
  align-items: stretch;
}

@media (max-width: 480px) {
  .matieres-drawer__course-row {
    grid-template-columns: 1fr;
  }
}

/* =====================================================================
   Planner — éditeur de tâche dans le drawer latéral
   Apparaît quand l'utilisateur clique sur une tâche programmée.
   ===================================================================== */
.page-shell--planner .planner__drawer-section--edit {
  display: flex !important;
  flex-direction: column !important;
  gap: 1.1rem !important;
  padding-top: 0.4rem !important;
}

.page-shell--planner .planner__edit-subject {
  margin: 0 !important;
  padding: 0.45rem 0.8rem !important;
  border-radius: 999px !important;
  background: var(--pl-surface-soft) !important;
  border: 1px solid var(--pl-line) !important;
  color: var(--pl-ink) !important;
  font-size: 0.78rem !important;
  font-weight: 700 !important;
  letter-spacing: 0.04em !important;
  text-transform: uppercase !important;
  align-self: flex-start !important;
}

body.subject-body:has(.page-shell--planner) .planner__edit-actions {
  display: flex !important;
  flex-direction: row !important;
  align-items: stretch !important;
  gap: 0.6rem !important;
  margin-top: 0.5rem !important;
  width: 100% !important;
}

body.subject-body:has(.page-shell--planner) .planner__edit-save,
body.subject-body:has(.page-shell--planner) button.planner__edit-save {
  flex: 1 1 auto !important;
  width: auto !important;
  min-width: 0 !important;
  height: 48px !important;
  padding: 0 1.1rem !important;
  background: #ffffff !important;
  color: var(--pl-ink) !important;
  border: 1px solid var(--pl-ink) !important;
  border-radius: 12px !important;
  font-weight: 700 !important;
  font-size: 0.78rem !important;
  letter-spacing: 0.06em !important;
  text-transform: uppercase !important;
  cursor: pointer !important;
  box-shadow: none !important;
  transition: background 0.18s ease, color 0.18s ease, border-color 0.18s ease !important;
}

body.subject-body:has(.page-shell--planner) .planner__edit-save:hover,
body.subject-body:has(.page-shell--planner) .planner__edit-save:focus-visible,
body.subject-body:has(.page-shell--planner) button.planner__edit-save:hover,
body.subject-body:has(.page-shell--planner) button.planner__edit-save:focus-visible {
  background: var(--pl-ink) !important;
  color: #ffffff !important;
  border-color: var(--pl-ink) !important;
}

body.subject-body:has(.page-shell--planner) .planner__edit-delete,
body.subject-body:has(.page-shell--planner) button.planner__edit-delete {
  flex: 0 0 auto !important;
  width: 48px !important;
  height: 48px !important;
  padding: 0 !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  background: #ffffff !important;
  border: 1px solid var(--pl-ink) !important;
  color: var(--pl-ink) !important;
  border-radius: 12px !important;
  cursor: pointer !important;
  box-shadow: none !important;
  transition: background 0.18s ease, border-color 0.18s ease, color 0.18s ease !important;
}

body.subject-body:has(.page-shell--planner) .planner__edit-delete svg {
  width: 18px !important;
  height: 18px !important;
  display: block !important;
  stroke: currentColor !important;
}

body.subject-body:has(.page-shell--planner) .planner__edit-delete:hover,
body.subject-body:has(.page-shell--planner) .planner__edit-delete:focus-visible,
body.subject-body:has(.page-shell--planner) button.planner__edit-delete:hover,
body.subject-body:has(.page-shell--planner) button.planner__edit-delete:focus-visible {
  background: var(--pl-ink) !important;
  border-color: var(--pl-ink) !important;
  color: #ffffff !important;
}

/* ===========================================================
   Animations subtiles — page d'accueil (index.html)
   =========================================================== */

@keyframes home-hero-line-in {
  from {
    opacity: 0;
    transform: translateY(0.65em);
    filter: blur(2px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
    filter: blur(0);
  }
}

.landing-title--editorial .landing-title__line {
  opacity: 0;
  animation: home-hero-line-in 0.85s cubic-bezier(0.2, 0.7, 0.2, 1) forwards;
}

.landing-title--editorial .landing-title__line--one {
  animation-delay: 0.08s;
}

.landing-title--editorial .landing-title__line--two {
  animation-delay: 0.26s;
}

.landing-title--editorial .landing-title__line--three {
  animation-delay: 0.44s;
}

@keyframes home-target-breathe {
  0%, 100% {
    transform: scale(1);
    box-shadow: 0 0 0 0 rgba(221, 159, 123, 0.55);
  }
  50% {
    transform: scale(1.05);
    box-shadow: 0 0 0 10px rgba(221, 159, 123, 0);
  }
}

.save-date-calendar__day--target::before {
  animation: home-target-breathe 3.4s ease-in-out infinite;
  transform-origin: center;
}

@keyframes home-target-day-glow {
  0%, 100% {
    text-shadow: 0 0 0 rgba(221, 159, 123, 0);
  }
  50% {
    text-shadow: 0 0 22px rgba(221, 159, 123, 0.35);
  }
}

.save-date-calendar__day--target {
  animation: home-target-day-glow 3.4s ease-in-out infinite;
}

@keyframes home-pense-bete-float {
  0%, 100% {
    transform: translateY(0);
  }
  50% {
    transform: translateY(-8px);
  }
}

.pense-betes-layout__illustration {
  animation: home-pense-bete-float 6.5s ease-in-out infinite;
}

@keyframes home-reveal-up {
  from {
    opacity: 0;
    transform: translateY(18px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

.home-reveal {
  opacity: 0;
  transform: translateY(18px);
  transition: opacity 0.7s cubic-bezier(0.2, 0.7, 0.2, 1),
              transform 0.7s cubic-bezier(0.2, 0.7, 0.2, 1);
  will-change: opacity, transform;
}

.home-reveal.is-visible {
  opacity: 1;
  transform: translateY(0);
}

.home-veille-feature__link {
  transition:
    background 0.3s cubic-bezier(0.2, 0.7, 0.2, 1),
    color 0.3s cubic-bezier(0.2, 0.7, 0.2, 1),
    border-color 0.3s cubic-bezier(0.2, 0.7, 0.2, 1),
    transform 0.3s cubic-bezier(0.2, 0.7, 0.2, 1),
    letter-spacing 0.3s cubic-bezier(0.2, 0.7, 0.2, 1);
}

.home-veille-feature__link:hover {
  transform: translateY(-1px);
  letter-spacing: 0.18em;
}

.countdown-unit__value {
  transition: transform 0.25s cubic-bezier(0.2, 0.7, 0.2, 1);
}

.countdown-unit:hover .countdown-unit__value {
  transform: translateY(-2px);
}

@media (prefers-reduced-motion: reduce) {
  .landing-title--editorial .landing-title__line,
  .save-date-calendar__day--target::before,
  .save-date-calendar__day--target,
  .pense-betes-layout__illustration,
  .home-reveal {
    animation: none !important;
    opacity: 1 !important;
    transform: none !important;
    filter: none !important;
  }

  .home-veille-feature__link,
  .countdown-unit__value {
    transition: none !important;
  }

  .home-veille-feature__link:hover,
  .countdown-unit:hover .countdown-unit__value {
    transform: none !important;
    letter-spacing: 0.14em !important;
  }
}

/* ============================================================
 * QUIZZ — Animations
 * ============================================================ */

/* 1. Banner "Quid juris ?" — entrée + flottement doux */
body.quizz-mode .quizz-brand.home-reveal {
  transform: translateY(22px) scale(0.96);
  transition: opacity 0.85s cubic-bezier(0.2, 0.7, 0.2, 1),
              transform 0.85s cubic-bezier(0.2, 0.7, 0.2, 1);
}

body.quizz-mode .quizz-brand.home-reveal.is-visible {
  transform: translateY(0) scale(1);
}

@keyframes quizz-brand-float {
  0%, 100% { transform: translateY(0); }
  50%      { transform: translateY(-6px); }
}

body.quizz-mode .quizz-brand--floats.is-visible .quizz-brand__mark {
  animation: quizz-brand-float 6.5s ease-in-out 1.1s infinite;
  will-change: transform;
}

/* Petit reflet lumineux qui passe sur le banner au chargement */
body.quizz-mode .quizz-brand {
  position: relative;
}

body.quizz-mode .quizz-brand::after {
  content: "";
  position: absolute;
  inset: 0;
  pointer-events: none;
  border-radius: inherit;
  background: linear-gradient(
    115deg,
    transparent 0%,
    transparent 38%,
    rgba(255, 247, 232, 0.55) 50%,
    transparent 62%,
    transparent 100%
  );
  background-size: 220% 100%;
  background-position: -120% 0;
  mix-blend-mode: screen;
  opacity: 0;
}

body.quizz-mode .quizz-brand.is-visible::after {
  animation: quizz-brand-shine 1.6s ease-out 0.55s 1 forwards;
}

@keyframes quizz-brand-shine {
  0%   { opacity: 0; background-position: -120% 0; }
  18%  { opacity: 0.9; }
  100% { opacity: 0; background-position: 220% 0; }
}

/* 2. Hero card — reflet en sweep et apparition douce */
body.quizz-mode .quizz-hero {
  position: relative;
}

.quizz-hero__shine {
  position: absolute;
  top: 0;
  left: -40%;
  width: 40%;
  height: 100%;
  pointer-events: none;
  background: linear-gradient(
    100deg,
    transparent 0%,
    rgba(255, 255, 255, 0.18) 45%,
    rgba(255, 255, 255, 0.32) 50%,
    rgba(255, 255, 255, 0.18) 55%,
    transparent 100%
  );
  filter: blur(2px);
  opacity: 0;
}

body.quizz-mode .quizz-hero.is-visible .quizz-hero__shine {
  animation: quizz-hero-shine 5.5s ease-in-out 1.2s infinite;
}

@keyframes quizz-hero-shine {
  0%   { opacity: 0; transform: translateX(0); }
  8%   { opacity: 1; }
  35%  { opacity: 1; transform: translateX(320%); }
  36%  { opacity: 0; transform: translateX(320%); }
  100% { opacity: 0; transform: translateX(320%); }
}

/* 3. Highlights — chiffres qui rebondissent à l'apparition */
body.quizz-mode .quizz-highlight.home-reveal {
  transform: translateY(14px) scale(0.96);
  transition: opacity 0.55s cubic-bezier(0.2, 0.7, 0.2, 1),
              transform 0.55s cubic-bezier(0.34, 1.56, 0.64, 1);
}

body.quizz-mode .quizz-highlight.home-reveal.is-visible {
  transform: translateY(0) scale(1);
}

@keyframes quizz-highlight-pulse {
  0%   { transform: scale(1); }
  50%  { transform: scale(1.08); }
  100% { transform: scale(1); }
}

body.quizz-mode .quizz-highlight.is-visible .quizz-highlight__value {
  animation: quizz-highlight-pulse 1.4s ease-out 0.5s 1;
  transform-origin: center;
}

/* 3b. Highlights — interaction au survol (override des règles existantes) */
body.quizz-mode .quizz-highlight {
  overflow: hidden;
  cursor: default;
  transition:
    transform 280ms cubic-bezier(0.34, 1.56, 0.64, 1),
    box-shadow 280ms cubic-bezier(0.2, 0.7, 0.2, 1),
    border-color 280ms ease,
    background 280ms ease !important;
}

body.quizz-mode .quizz-highlight::before {
  content: "";
  position: absolute;
  inset: 0;
  border-radius: inherit;
  pointer-events: none;
  background: linear-gradient(
    115deg,
    transparent 0%,
    transparent 38%,
    rgba(242, 194, 162, 0.45) 50%,
    transparent 62%,
    transparent 100%
  );
  background-size: 220% 100%;
  background-position: -150% 0;
  opacity: 0;
  transition: opacity 200ms ease, background-position 700ms cubic-bezier(0.2, 0.7, 0.2, 1);
  z-index: 1;
}

body.quizz-mode .quizz-highlight > * {
  position: relative;
  z-index: 2;
}

body.quizz-mode .quizz-highlight:hover,
body.quizz-mode .quizz-highlight:focus-within {
  transform: translateY(-6px) scale(1.04) !important;
  border-color: rgba(126, 15, 42, 0.55) !important;
  box-shadow:
    0 18px 32px rgba(28, 8, 8, 0.14),
    0 0 0 4px rgba(242, 194, 162, 0.28) !important;
  background: linear-gradient(160deg, #ffffff 0%, #fff7ef 100%) !important;
}

body.quizz-mode .quizz-highlight:hover::before {
  opacity: 1;
  background-position: 150% 0;
}

body.quizz-mode .quizz-highlight__value {
  display: inline-block;
  transition:
    transform 260ms cubic-bezier(0.34, 1.56, 0.64, 1),
    color 260ms ease,
    text-shadow 260ms ease;
}

body.quizz-mode .quizz-highlight:hover .quizz-highlight__value {
  transform: translateY(-3px) scale(1.12);
  color: #7a1124 !important;
  text-shadow: 0 6px 14px rgba(126, 15, 42, 0.18);
}

body.quizz-mode .quizz-highlight__label {
  transition:
    letter-spacing 260ms ease,
    color 260ms ease,
    transform 260ms cubic-bezier(0.2, 0.7, 0.2, 1);
}

body.quizz-mode .quizz-highlight:hover .quizz-highlight__label {
  letter-spacing: 0.2em;
  color: #2e1f1e !important;
  transform: translateY(2px);
}

/* Petit wiggle quand la souris arrive sur la tuile (joue une seule fois) */
@keyframes quizz-highlight-wiggle {
  0%   { transform: translateY(-6px) scale(1.04) rotate(0deg); }
  30%  { transform: translateY(-6px) scale(1.04) rotate(-1.2deg); }
  60%  { transform: translateY(-6px) scale(1.04) rotate(1deg); }
  100% { transform: translateY(-6px) scale(1.04) rotate(0deg); }
}

body.quizz-mode .quizz-highlight:hover {
  animation: quizz-highlight-wiggle 480ms cubic-bezier(0.34, 1.56, 0.64, 1) 1;
}

/* 4. Bouton "Commencer le quiz" — halo qui respire */
@keyframes quizz-start-halo {
  0%, 100% {
    box-shadow: 0 14px 32px rgba(47, 42, 38, 0.28),
                0 0 0 4px rgba(242, 194, 162, 0.18) !important;
  }
  50% {
    box-shadow: 0 16px 36px rgba(47, 42, 38, 0.32),
                0 0 0 8px rgba(242, 194, 162, 0.32) !important;
  }
}

body.quizz-mode #quizz-start-btn:not(:hover):not(:focus-visible) {
  animation: quizz-start-halo 2.6s ease-in-out infinite;
}

body.quizz-mode #quizz-start-btn .quizz-start-btn__arrow {
  animation: quizz-start-arrow-nudge 2.6s ease-in-out infinite;
}

@keyframes quizz-start-arrow-nudge {
  0%, 70%, 100% { transform: translateX(0); }
  85%           { transform: translateX(3px); }
}

body.quizz-mode #quizz-start-btn:hover .quizz-start-btn__arrow,
body.quizz-mode #quizz-start-btn:focus-visible .quizz-start-btn__arrow {
  animation: none;
}

/* 5. Carte de jeu (questions) — entrée douce quand la section apparaît */
@keyframes quizz-card-in {
  from { opacity: 0; transform: translateY(14px); }
  to   { opacity: 1; transform: translateY(0); }
}

body.quizz-mode #quizz-game:not([hidden]) {
  animation: quizz-card-in 0.55s cubic-bezier(0.2, 0.7, 0.2, 1) both;
}

/* Question text — fade up rapide à chaque nouvelle question */
body.quizz-mode #quizz-question {
  animation: quizz-card-in 0.45s cubic-bezier(0.2, 0.7, 0.2, 1) both;
}

/* 6. Options — apparition en cascade */
body.quizz-mode .quizz-option {
  opacity: 0;
  transform: translateY(8px);
  animation: quizz-option-in 0.42s cubic-bezier(0.2, 0.7, 0.2, 1) both;
}

body.quizz-mode .quizz-option:nth-child(1) { animation-delay: 0.05s; }
body.quizz-mode .quizz-option:nth-child(2) { animation-delay: 0.13s; }
body.quizz-mode .quizz-option:nth-child(3) { animation-delay: 0.21s; }
body.quizz-mode .quizz-option:nth-child(4) { animation-delay: 0.29s; }
body.quizz-mode .quizz-option:nth-child(5) { animation-delay: 0.37s; }

@keyframes quizz-option-in {
  from { opacity: 0; transform: translateY(10px); }
  to   { opacity: 1; transform: translateY(0); }
}

/* Petit "ripple" subtil au clic sur une option */
body.quizz-mode .quizz-option {
  position: relative;
  overflow: hidden;
}

body.quizz-mode .quizz-option .quizz-option__ripple {
  position: absolute;
  border-radius: 50%;
  pointer-events: none;
  background: rgba(126, 15, 42, 0.18);
  transform: scale(0);
  animation: quizz-option-ripple 0.65s ease-out forwards;
}

@keyframes quizz-option-ripple {
  from { transform: scale(0); opacity: 0.55; }
  to   { transform: scale(2.6); opacity: 0; }
}

/* 7. Feedback de réponse — apparition simple, pas d'animation */

/* 8. Carte de résultat — apparition + score qui pulse */
@keyframes quizz-result-in {
  from { opacity: 0; transform: translateY(18px) scale(0.98); }
  to   { opacity: 1; transform: translateY(0) scale(1); }
}

body.quizz-mode #quizz-result:not([hidden]) {
  animation: quizz-result-in 0.6s cubic-bezier(0.2, 0.7, 0.2, 1) both;
}

body.quizz-mode #quizz-result:not([hidden]) .quizz-result__points-value {
  display: inline-block;
  animation: quizz-result-points 0.9s cubic-bezier(0.34, 1.56, 0.64, 1) 0.45s both;
  transform-origin: center;
}

@keyframes quizz-result-points {
  0%   { opacity: 0; transform: scale(0.55); }
  60%  { opacity: 1; transform: scale(1.18); }
  100% { opacity: 1; transform: scale(1); }
}

/* Dots de score — pop en cascade */
body.quizz-mode #quizz-result:not([hidden]) .quizz-result__dot {
  animation: quizz-dot-pop 0.42s cubic-bezier(0.34, 1.56, 0.64, 1) both;
}

body.quizz-mode #quizz-result:not([hidden]) .quizz-result__dot:nth-child(1) { animation-delay: 0.55s; }
body.quizz-mode #quizz-result:not([hidden]) .quizz-result__dot:nth-child(2) { animation-delay: 0.65s; }
body.quizz-mode #quizz-result:not([hidden]) .quizz-result__dot:nth-child(3) { animation-delay: 0.75s; }
body.quizz-mode #quizz-result:not([hidden]) .quizz-result__dot:nth-child(4) { animation-delay: 0.85s; }
body.quizz-mode #quizz-result:not([hidden]) .quizz-result__dot:nth-child(5) { animation-delay: 0.95s; }

@keyframes quizz-dot-pop {
  0%   { opacity: 0; transform: scale(0.2); }
  60%  { opacity: 1; transform: scale(1.25); }
  100% { opacity: 1; transform: scale(1); }
}

/* Encouragement & message du résultat — fade up doux */
body.quizz-mode #quizz-result:not([hidden]) #quizz-followup,
body.quizz-mode #quizz-result:not([hidden]) #quizz-message,
body.quizz-mode #quizz-result:not([hidden]) #quizz-position,
body.quizz-mode #quizz-result:not([hidden]) #quizz-score-caption {
  animation: quizz-card-in 0.55s cubic-bezier(0.2, 0.7, 0.2, 1) 0.9s both;
}

/* Confetti minimal sur très bon score (>= 4/5) — déclenché par classe JS */
body.quizz-mode .quizz-result.has-celebration::before {
  content: "";
  position: absolute;
  inset: 0;
  pointer-events: none;
  background:
    radial-gradient(circle 6px at 10% 18%, var(--quizz-peach, #f2c2a2) 60%, transparent 62%),
    radial-gradient(circle 5px at 22% 12%, #cf6d4f 60%, transparent 62%),
    radial-gradient(circle 7px at 35% 22%, #f4d27a 60%, transparent 62%),
    radial-gradient(circle 5px at 60% 14%, var(--quizz-peach, #f2c2a2) 60%, transparent 62%),
    radial-gradient(circle 6px at 78% 22%, #9f3145 60%, transparent 62%),
    radial-gradient(circle 5px at 90% 12%, #f4d27a 60%, transparent 62%);
  opacity: 0;
  animation: quizz-confetti-fall 1.6s ease-out 0.35s 1 forwards;
}

body.quizz-mode .quizz-result {
  position: relative;
  overflow: hidden;
}

@keyframes quizz-confetti-fall {
  0%   { opacity: 0; transform: translateY(-14px); }
  20%  { opacity: 1; }
  100% { opacity: 0; transform: translateY(120%); }
}

/* 9. Header notif — pour cohérence visuelle, badge qui pulse léger (déjà animé ailleurs si présent) */

/* 10. Préférences "reduced motion" — on coupe tout proprement */
@media (prefers-reduced-motion: reduce) {
  body.quizz-mode .quizz-brand,
  body.quizz-mode .quizz-brand__mark,
  body.quizz-mode .quizz-brand::after,
  body.quizz-mode .quizz-hero__shine,
  body.quizz-mode .quizz-highlight,
  body.quizz-mode .quizz-highlight__value,
  body.quizz-mode #quizz-start-btn,
  body.quizz-mode #quizz-start-btn .quizz-start-btn__arrow,
  body.quizz-mode #quizz-game,
  body.quizz-mode #quizz-question,
  body.quizz-mode .quizz-option,
  body.quizz-mode .quizz-feedback,
  body.quizz-mode #quizz-result,
  body.quizz-mode .quizz-result__points-value,
  body.quizz-mode .quizz-result__dot,
  body.quizz-mode #quizz-followup,
  body.quizz-mode #quizz-message,
  body.quizz-mode #quizz-position,
  body.quizz-mode #quizz-score-caption,
  body.quizz-mode .quizz-result.has-celebration::before {
    animation: none !important;
    opacity: 1 !important;
    transform: none !important;
  }
}

