/* Shared light-blue panel background (left column + right header)
   Keep it visible but subtle. */
/* Slightly stronger so it remains visible on large surfaces */
:root{--spa6-panel-bg: linear-gradient(180deg, rgba(235,243,255,1) 0%, rgba(226,236,255,1) 100%), radial-gradient(900px 320px at -10% -20%, rgba(255,255,255,.85), transparent 60%);} 
/*
  Panel backgrounds (left column + right sticky header)
  We intentionally add a white overlay to keep the tone extremely light and
  visually consistent across large surfaces (left) and small surfaces (header).
*/
:root{--spa6-panel-overlay: rgba(255,255,255,0.22);} 
.spa6-left,
.spa6-left__head,
.spa6-left__body,
.spa6-right__sticky{
  background: linear-gradient(0deg, var(--spa6-panel-overlay), var(--spa6-panel-overlay)), var(--spa6-panel-bg) !important;
}
/*
  SP Assistant App — Design tokens (premium sobre)
  Everything is scoped via .sp-app-html/.sp-app-body to reduce theme bleed.
*/
:root{
  /* Neutres */
  /* Un poil plus "coloré" (premium sobre) */
  --sp-bg-main: #f3f6fb;
  --sp-bg-panel: #ffffff;
  --sp-bg-soft: #eef2f7;

  --sp-text-primary: #0f172a;
  --sp-text-secondary: #475569;
  --sp-text-muted: #94a3b8;

  --sp-border-soft: #e5eaf2;
  --sp-border-strong: #d6dde8;

  --sp-shadow-soft: 0 6px 20px rgba(15, 23, 42, 0.06);
  --sp-shadow-hover: 0 10px 28px rgba(15, 23, 42, 0.10);

  --sp-radius: 16px;
  --sp-radius-lg: 20px;

  /* Couleurs métiers */
  --sp-dashboard: #cbd5f5;

  --sp-assistant: #2563eb;
  --sp-assistant-soft: #eaf1ff;

  --sp-methods: #f59e0b;
  --sp-methods-soft: #fff4e5;

  /* Cours & méthodes (dominante ambre/orange) */
  --sp-cours: #f59e0b;
  --sp-cours-soft: #fff4e5;
  --sp-cours-ink: #92400e;

  --sp-code: #22c55e;
  --sp-code-soft: #ecfdf3;
  --sp-code-ink: #166534;

  --sp-eval: #8b5cf6;
  --sp-eval-soft: #f3e8ff;

  /* Annales (concours) — bordeaux sobre (moins flashy que le rouge pur) */
  --sp-annales: #8b1d3d;
  --sp-annales-soft: #fde9ef;
  --sp-annales-ink: #7a1836;

  /* Me tester (violet pastel) */
  --sp-tester: #8b5cf6;
  --sp-tester-soft: #f3efff;
  --sp-tester-ink: #6d28d9;

  /* Gradients (très subtils) */
  --sp-gradient-assistant: linear-gradient(135deg, #2563eb, #1e40af);
  --sp-gradient-eval: linear-gradient(135deg, #8b5cf6, #6d28d9);
  --sp-gradient-code: linear-gradient(135deg, #3b82f6, #1d4ed8);
}

/* =====================
   Inputs / action rows (used in Annales + future pages)
   ===================== */
.sp-input,
.sp-textarea{
  width: 100%;
  border: 1px solid rgba(15,23,42,.12);
  border-radius: 14px;
  padding: 12px 16px;
  background: rgba(255,255,255,.92);
  color: var(--sp-text-primary);
  font-weight: 700;
  font-size: 16px;
  letter-spacing: -.01em;
  box-shadow: 0 10px 22px rgba(15,23,42,.06);
  outline: none;
}
.sp-input::placeholder,
.sp-textarea::placeholder{ color: rgba(15,23,42,.45); font-weight: 650; }
.sp-input:focus,
.sp-textarea:focus{ border-color: rgba(37,99,235,.28); box-shadow: 0 14px 26px rgba(37,99,235,.10); }

.sp-actions{
  margin-top: 14px;
  display: flex;
  align-items: center;
  gap: 12px;
  flex-wrap: wrap;
}
.sp-actions--wrap{ justify-content: flex-start; }

/* Breadcrumb / backline */
.sp-breadcrumb{
  margin-top: 18px;
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  align-items: center;
  font-weight: 750;
}
.sp-breadcrumb__link{
  color: var(--sp-link, #1d4ed8);
  text-decoration: none;
}
.sp-breadcrumb__link:hover{ text-decoration: underline; }
.sp-breadcrumb__sep{ color: rgba(15,23,42,.38); }

/* Scope everything to .sp-app-html/.sp-app-body to avoid theme bleed */
.sp-app-html, .sp-app-body{
  height: 100%;
}

.sp-app-body{
  margin: 0;
  /* Default focus color (Assistant blue) — can be overridden per world */
  --sp-focus-ring: rgba(90,166,255,.22);
  --sp-focus-border: rgba(90,166,255,.45);
  /* Fond subtil pour faire ressortir les cartes (sans "mettre de couleur partout") */
  background:
    radial-gradient(1200px 520px at 50% -180px, rgba(37, 99, 235, 0.08), transparent 62%),
    radial-gradient(900px 420px at 12% 8%, rgba(139, 92, 246, 0.06), transparent 55%),
    var(--sp-bg-main) !important;
  background-color: var(--sp-bg-main) !important;
  color: var(--sp-text-primary);
  /* Typography: Open Sans for reading comfort; Lexend for headings */
  font-family: "Open Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Inter, Helvetica, Arial, "Apple Color Emoji", "Segoe UI Emoji";
  --sp-font-heading: "Lexend", "Open Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Inter, Helvetica, Arial;
  --sp-accent: var(--sp-assistant);
}

/* Headings: slightly tighter, modern */
.sp-app h1,
.sp-app h2,
.sp-app h3,
.sp-app h4{
  font-family: var(--sp-font-heading);
  letter-spacing: -.02em;
}

/* Some themes set body background with !important. Force ours when body has the app class. */
html.sp-app-html{ background: var(--sp-bg-main) !important; }
body.sp-app-body{ background-color: var(--sp-bg-main) !important; }

/* Accent per world */
body.sp-theme-annales{ --sp-accent: var(--sp-annales); --sp-focus-border: rgba(139,29,61,.45); --sp-focus-ring: rgba(139,29,61,.20); }
body.sp-theme-cours{ --sp-accent: var(--sp-cours); --sp-focus-border: rgba(245,158,11,.45); --sp-focus-ring: rgba(245,158,11,.20); }
body.sp-theme-tester{ --sp-accent: var(--sp-tester); --sp-focus-border: rgba(139,92,246,.45); --sp-focus-ring: rgba(139,92,246,.18); }
body.sp-theme-code{ --sp-accent: var(--sp-code); --sp-focus-border: rgba(34,197,94,.36); --sp-focus-ring: rgba(34,197,94,.18); }

.sp-app *{ box-sizing: border-box; }

/* Anti-bleed thème (Elementor / styles globaux)
   NOTE: since the app is autonomous, we DO NOT "reset to nothing".
   Instead we normalize form controls and provide a consistent default styling.
*/
.sp-app button,
.sp-app input,
.sp-app select,
.sp-app textarea{
  font: inherit;
}

/* Baseline button styles inside the app.
   This avoids the classic "unstyled browser button" *and*
   avoids the opposite pitfall where a hard reset makes buttons invisible.
   All app buttons should look correct even without explicit classes.
*/
.sp-app button,
.sp-app input[type="button"],
.sp-app input[type="submit"],
.sp-app input[type="reset"]{
  -webkit-appearance: none;
  appearance: none;
  border: 1px solid rgba(15,23,42,.16);
  background: rgba(255,255,255,.92);
  color: var(--sp-text-primary);
  padding: 10px 12px;
  border-radius: 12px;
  font-weight: 650;
  font-size: 13px;
  line-height: 1.1;
  cursor: pointer;
  /* IMPORTANT: do NOT force inline-flex.
     Some buttons (ex: .sp-mode cards, left list items) contain multiple block children.
     Forcing flex here collapses layouts and causes text to wrap letter-by-letter.
     We keep the baseline as an inline-block, and component classes can opt into flex. */
  display: inline-block;
  text-align: center;
  text-decoration: none;
  user-select: none;
  transition: transform .06s ease, box-shadow .15s ease, border-color .15s ease, background .15s ease;
}

/* Structural buttons that behave like cards must stay block-level */
.sp-mode{
  position: relative; display:block !important; text-align:left; }

.sp-app button:hover,
.sp-app input[type="button"]:hover,
.sp-app input[type="submit"]:hover,
.sp-app input[type="reset"]:hover{
  border-color: rgba(15,23,42,.26);
  background: rgba(255,255,255,.98);
  box-shadow: 0 10px 20px rgba(15,23,42,.08);
}

.sp-app button:active,
.sp-app input[type="button"]:active,
.sp-app input[type="submit"]:active,
.sp-app input[type="reset"]:active{ transform: translateY(1px); }

.sp-app button:focus-visible,
.sp-app input[type="button"]:focus-visible,
.sp-app input[type="submit"]:focus-visible,
.sp-app input[type="reset"]:focus-visible{
  outline: 0;
  box-shadow: 0 0 0 4px var(--sp-focus-ring, rgba(90,166,255,.22)), 0 10px 20px rgba(15,23,42,.08);
  border-color: var(--sp-focus-border, rgba(90,166,255,.45));
}

/* .sp-btn anchors remain buttons */
.sp-app a.sp-btn{ text-decoration: none; }

.sp-topbar{
  position: sticky;
  top: 0;
  z-index: 50;
  background: rgba(246, 248, 251, .92);
  backdrop-filter: blur(10px);
  border-bottom: 1px solid var(--sp-border-soft);
}

.sp-topbar__inner{
  width: 100%;
  max-width: none;
  margin: 0;
  padding: 14px 24px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
}

/* Quote inside topbar (premium, subtle) */
.sp-topbar__quote{
  flex: 1 1 auto;
  text-align: center;
  padding: 0 16px;
  min-width: 0;
}

.sp-topbar__quoteText{
  display: block;
  font-size: 14px;
  line-height: 1.35;
  font-style: italic;
  color: var(--sp-text-secondary);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.sp-topbar__quoteAuthor{
  display: block;
  margin-top: 3px;
  font-size: 11.5px;
  letter-spacing: .02em;
  color: var(--sp-text-muted);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.sp-brand{
  display: flex;
  align-items: center;
  gap: 12px;
  min-width: 0;
}

.sp-brand__logo{
  width: 36px;
  height: 36px;
  flex: 0 0 auto;
}

.sp-brand__text{ min-width: 0; }

.sp-brand__title{
  font-weight: 700;
  font-size: 14px;
  line-height: 1.2;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  max-width: 55vw;
}

.sp-brand__subtitle{
  font-size: 12px;
  color: var(--sp-text-secondary);
  margin-top: 2px;
}

.sp-main{
  padding: clamp(22px, 3.2vw, 38px) clamp(14px, 2.2vw, 28px) 44px;
  /* Gives the grids room to breathe on laptop/desktop */
  min-height: calc(100vh - 72px);
}

/* Wider container on laptop so the grid breathes less */
.sp-container{
  max-width: 1360px;
  margin: 0 auto;
}

/* (Quote block moved to topbar) */

/* Section titles */
.sp-section{
  margin-top: 18px;
}

.sp-section__title{
  margin: 0 0 12px;
  font-size: 14px;
  letter-spacing: .02em;
  color: var(--sp-text-secondary);
  font-weight: 750;
}

.sp-grid{
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: clamp(14px, 1.6vw, 22px);
}

.sp-grid--secondary{ margin-top: 14px; }

@media (max-width: 980px){
  .sp-grid{ grid-template-columns: 1fr; }
  .sp-brand__title{ max-width: 70vw; }
  .sp-topbar__quote{ display: none; }
}

.sp-card{
  background: var(--sp-bg-panel);
  border: 1px solid var(--sp-border-soft);
  border-radius: var(--sp-radius-lg);
  box-shadow: var(--sp-shadow-soft);
  padding: clamp(18px, 1.6vw, 24px);
  display: flex;
  flex-direction: column;
  min-height: 190px;
  transition: transform .12s ease, box-shadow .18s ease, border-color .18s ease;
  position: relative;
  overflow: hidden;
}

/* Make the whole card clickable (premium app feel) */
.sp-card--link{
  display: block;
  color: inherit;
  text-decoration: none;
}

.sp-card--link:focus-visible{
  outline: 3px solid color-mix(in srgb, var(--sp-assistant) 35%, transparent);
  outline-offset: 3px;
}

/* Laptop/desktop: increase card height so the 2 rows fill the viewport better */
@media (min-width: 981px){
  .sp-card{
    min-height: clamp(220px, calc((100vh - 290px) / 2), 360px);
  }
}

@media (min-width: 1400px){
  .sp-card{ min-height: 210px; }
  .sp-card__title{ font-size: 19px; }
  .sp-card__body{ font-size: 14.5px; }
}

.sp-card:hover{
  transform: translateY(-3px);
  box-shadow: var(--sp-shadow-hover);
  border-color: var(--sp-border-strong);
}

.sp-card:active{ transform: translateY(-1px); }

/* Accent system */
.sp-card{ --sp-accent: var(--sp-assistant); --sp-accent-soft: var(--sp-assistant-soft); }
.sp-card--dashboard{ --sp-accent: var(--sp-dashboard); --sp-accent-soft: #f1f5ff; }
.sp-card--assistant{ --sp-accent: var(--sp-assistant); --sp-accent-soft: var(--sp-assistant-soft); }
.sp-card--eval{ --sp-accent: var(--sp-eval); --sp-accent-soft: var(--sp-eval-soft); }
.sp-card--methods{ --sp-accent: var(--sp-methods); --sp-accent-soft: var(--sp-methods-soft); }
.sp-card--annales{ --sp-accent: var(--sp-annales); --sp-accent-soft: var(--sp-annales-soft); }
.sp-card--code{ --sp-accent: #16a34a; --sp-accent-soft: #eaf7ef; }

.sp-card__badge{
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 6px 10px;
  border-radius: 999px;
  font-size: 12px;
  font-weight: 700;
  color: color-mix(in srgb, var(--sp-accent) 80%, #0f172a);
  background: var(--sp-accent-soft);
  border: 1px solid color-mix(in srgb, var(--sp-accent) 18%, transparent);
  width: fit-content;
}

/* Dashboard badge : contraste renforcé (accent trop clair sinon) */
.sp-card--dashboard .sp-card__badge{
  color: #334155;
  background: #eef2ff;
  border-color: rgba(30, 64, 175, 0.12);
}

.sp-card__title{
  font-weight: 800;
  font-size: 18px;
  margin-top: 12px;
  letter-spacing: -0.01em;
}

.sp-card__body{
  margin-top: 10px;
  color: var(--sp-text-secondary);
  font-size: 14px;
  line-height: 1.5;
  flex: 1;
}

.sp-card__footer{
  margin-top: 14px;
  display: flex;
  justify-content: flex-start;
}

/* Footer no longer used (kept for compatibility) */
.sp-card__footer{ display: none; }

/* Hero (assistant) card treatment */
.sp-card--assistant{
  background: linear-gradient(180deg, rgba(37, 99, 235, 0.06), rgba(255,255,255,1));
}

.sp-card--assistant::after{
  content: "";
  position: absolute;
  inset: -2px;
  background: var(--sp-gradient-assistant);
  opacity: .06;
  pointer-events: none;
}

.sp-card--eval{ background: linear-gradient(180deg, rgba(139, 92, 246, 0.08), rgba(255,255,255,1)); }
.sp-card--annales{ background: linear-gradient(180deg, rgba(239, 68, 68, 0.08), rgba(255,255,255,1)); }
.sp-card--methods{ background: linear-gradient(180deg, rgba(245, 158, 11, 0.10), rgba(255,255,255,1)); }
.sp-card--code{ background: linear-gradient(180deg, rgba(34, 197, 94, 0.12), rgba(255,255,255,1)); }

/* Generic light panel (used on /train and subpages) */
.sp-panel{
  margin-top: 16px;
  background: rgba(255,255,255,.86);
  border-radius: var(--sp-radius-lg);
  padding: clamp(16px, 1.8vw, 22px);
  border: 1px solid var(--sp-border-soft);
  box-shadow: var(--sp-shadow-soft);
}

.sp-panel__title{
  font-size: 14px;
  font-weight: 850;
  letter-spacing: -0.01em;
  margin-bottom: 4px;
}

.sp-panel__subtitle{
  margin: 0 0 14px;
  color: var(--sp-text-secondary);
  font-size: 14px;
  line-height: 1.55;
}

/* ------------------------------
   Dashboard (synthèse) layout
   ------------------------------ */

/* Compact dashboard cards (avoid the "full viewport" card height on desktop) */
.sp-dashboard .sp-card{
  min-height: 170px;
}

@media (min-width: 981px){
  /* Override the global desktop min-height rule for dashboard pages */
  .sp-dashboard .sp-card{ min-height: 170px; }
}

.sp-grid--dashboard{ grid-template-columns: repeat(2, 1fr); }

.sp-card--span2{ grid-column: 1 / -1; }

.sp-kpis{
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  margin-top: 10px;
}

.sp-kpi{
  display: inline-flex;
  align-items: baseline;
  gap: 8px;
  padding: 8px 10px;
  border-radius: 12px;
  background: rgba(255,255,255,.75);
  border: 1px solid var(--sp-border-soft);
  box-shadow: 0 1px 0 rgba(15, 23, 42, 0.02);
}

.sp-kpi__label{ font-size: 12px; color: var(--sp-text-secondary); font-weight: 700; }
.sp-kpi__value{ font-size: 16px; font-weight: 850; color: var(--sp-text); letter-spacing: -0.01em; }
.sp-kpi__hint{ font-size: 12px; color: var(--sp-text-secondary); }

.sp-mini-actions{
  margin-top: 12px;
  display: flex;
  gap: 10px;
  flex-wrap: wrap;
}

/* ------------------------------
   Dashboard v2 (remplacement)
   Objectif : lecture "tableau de bord" + éviter le scroll sur écran moyen.
   ------------------------------ */

.sp-page--dashboard .sp-pagehead{ margin-bottom: 12px; }
.sp-page--dashboard .sp-pagehead__title{ margin-bottom: 6px; }

.sp-dash2{
  display: grid;
  gap: 14px;
}

.sp-dash2__top{
  display: grid;
  gap: 14px;
  grid-template-columns: 1fr;
}

.sp-dash2__main{
  display: grid;
  gap: 14px;
  grid-template-columns: 1fr;
}

.sp-dash2__data{
  display: grid;
  gap: 14px;
  grid-template-columns: 1fr;
}



.sp-dash2__nav{
  display: grid;
  gap: 14px;
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.sp-dash2__card{ min-height: 0; }

@media (min-width: 981px){
  .sp-dash2__top{ grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .sp-dash2__data{ grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .sp-dash2__nav{ grid-template-columns: repeat(6, minmax(0, 1fr)); }
}

@media (min-width: 721px) and (max-width: 980px){
  .sp-dash2__top{ grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .sp-dash2__data{ grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .sp-dash2__nav{ grid-template-columns: repeat(3, minmax(0, 1fr)); }
}

@media (max-width: 720px){
  /* sur mobile : on empile les 3 cartes coach pour garder de l’air */
  .sp-dash2__top{ grid-template-columns: 1fr; }
}

/* Un peu plus compact sur dashboard */
.sp-page--dashboard .sp-card{ min-height: 140px; }
.sp-page--dashboard .sp-dash2__top .sp-card{ min-height: 130px; }
.sp-page--dashboard .sp-card__title{ font-size: 16px; }
.sp-page--dashboard .sp-card__body{ font-size: 13.5px; line-height: 1.55; }

/* ===== Dashboard: top cards tints (neutral, premium) =====
   Rappel: on évite les couleurs des univers (train/annales/eval/info/méthodes)
   - Suggestion: gris froid très léger
   - À refaire: gris chaud doux
   - Recos: gris neutre pur
*/
.sp-page--dashboard .sp-card-suggestion{
  /* froid: une micro-teinte bleutée/grise, sans "bleu train" */
  background: linear-gradient(180deg, #eef3fb 0%, #ffffff 85%);
  border-color: rgba(15,23,42,.10);
}

.sp-page--dashboard .sp-card-redo{
  /* chaud: beige très doux */
  background: linear-gradient(180deg, #f7f0e8 0%, #ffffff 85%);
  border-color: rgba(15,23,42,.10);
}

.sp-page--dashboard .sp-card-plan{
  /* neutre: gris pur */
  background: linear-gradient(180deg, #f3f5f8 0%, #ffffff 85%);
  border-color: rgba(15,23,42,.10);
}

/* ===== Dashboard: navigation cards (bottom) =====
   - pas de badge (moins "UI bruit")
   - fond légèrement grisé (moins "déprimant" que blanc pur)
*/
.sp-page--dashboard .sp-nav-card{
  background: linear-gradient(180deg, rgba(15,23,42,.025), rgba(255,255,255,1));
  border-color: rgba(15,23,42,.10);
}

.sp-page--dashboard .sp-nav-card .sp-card__badge{ display: none; }
.sp-page--dashboard .sp-nav-card .sp-card__title{ margin-top: 0; }

/* Charts */
.sp-dash2__chart{
  display: grid;
  grid-template-columns: 110px minmax(0, 1fr);
  gap: 12px;
  align-items: center;
  margin-top: 8px;
}

.sp-dash2__donut{
  width: 110px;
  height: 110px;
  border-radius: 999px;
  background: rgba(255,255,255,.7);
  border: 1px solid var(--sp-border-soft);
  box-shadow: 0 1px 0 rgba(15, 23, 42, 0.02);
}

.sp-dash2__legend{ display: grid; gap: 6px; }
.sp-dash2__legendrow{ display: flex; align-items: center; gap: 8px; font-weight: 750; }
.sp-dash2__muted{ color: var(--sp-text-secondary); font-weight: 750; }

.sp-dash2__dot{
  width: 10px;
  height: 10px;
  border-radius: 999px;
  display: inline-block;
  border: 1px solid rgba(15,23,42,.10);
}

.sp-dot--blue{ background: rgba(37,99,235,.40); }
.sp-dot--red{ background: rgba(239,68,68,.35); }
.sp-dot--violet{ background: rgba(139,92,246,.32); }
.sp-dot--sky{ background: rgba(59,130,246,.30); }
.sp-dot--amber{ background: rgba(245,158,11,.30); }

.sp-dash2__hint{ margin-top: 10px; font-size: 12px; color: var(--sp-text-secondary); }

/* Bars */
.sp-dash2__bars{ display: grid; gap: 10px; margin-top: 8px; }
.sp-dash2__barrow{ display: grid; grid-template-columns: 86px 1fr; gap: 10px; align-items: center; }
.sp-dash2__barlabel{ font-size: 12px; font-weight: 850; color: var(--sp-text-secondary); }
.sp-dash2__bar{
  height: 12px;
  border-radius: 999px;
  background: rgba(15,23,42,.06);
  overflow: hidden;
  border: 1px solid rgba(15,23,42,.06);
  display: flex;
}

.sp-dash2__seg{ height: 100%; display: inline-block; }

/* Palette douce par niveau (placeholders) */
.sp-lv--1{ background: rgba(37,99,235,.25); }
.sp-lv--2{ background: rgba(59,130,246,.23); }
.sp-lv--3{ background: rgba(245,158,11,.22); }
.sp-lv--4{ background: rgba(239,68,68,.20); }
.sp-lv--5{ background: rgba(139,92,246,.18); }

.sp-dash2__levels{ margin-top: 10px; display: flex; flex-wrap: wrap; gap: 10px; }
.sp-dash2__lvl{ display: inline-flex; align-items: center; gap: 6px; font-size: 12px; font-weight: 750; color: var(--sp-text-secondary); }
.sp-dash2__swatch{ width: 10px; height: 10px; border-radius: 3px; border: 1px solid rgba(15,23,42,.10); display: inline-block; }

/* Optional dark debug panel (kept if you want it later) */
.sp-debugpanel{
  margin-top: 16px;
  background: #0b1220;
  border-radius: var(--sp-radius-lg);
  padding: 14px;
  color: #e5e7eb;
  border: 1px solid rgba(255,255,255,.08);
}

.sp-console{
  margin: 0;
  white-space: pre-wrap;
  word-break: break-word;
  font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;
  font-size: 12.5px;
  line-height: 1.5;
}

.sp-btn{
  appearance: none;
  font: inherit;
  cursor: pointer;
  text-decoration: none;
  user-select: none;
}

/* Topbar action button (pill) */
.sp-topbar .sp-btn{
  border: 1px solid rgba(15,23,42,.16) !important;
  background: rgba(255,255,255,.92) !important;
  color: var(--sp-text-primary) !important;
  padding: 10px 12px;
  border-radius: 12px;
  font-weight: 650;
  font-size: 13px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  line-height: 1;
  transition: transform .06s ease, box-shadow .15s ease, border-color .15s ease;
}

.sp-topbar .sp-btn:hover{
  border-color: rgba(15,23,42,.26) !important;
  background: rgba(255,255,255,.98) !important;
  color: var(--sp-text-primary) !important;
  box-shadow: 0 10px 20px rgba(15,23,42,.08) !important;
}

.sp-topbar .sp-btn:active{ transform: translateY(1px); }

.sp-btn--ghost{
  background: transparent;
  border-color: rgba(15,23,42,.16);
  text-decoration: none;
  gap: 8px;
}

/* Card footer action: blend into the card (no white rectangle) */
.sp-card__footer{
  margin-top: auto;
  padding-top: 18px;
  border-top: 1px solid rgba(15,23,42,.06);
}

.sp-card__footer .sp-btn{
  width: 100%;
  border: none !important;
  background: transparent !important;
  box-shadow: none !important;
  color: var(--sp-link) !important;
  font-weight: 650;
  font-size: 15px;
  padding: 10px 0;
  border-radius: 10px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  transition: color .15s ease, transform .06s ease, opacity .15s ease;
}

.sp-card__footer .sp-btn:hover{
  color: var(--sp-link) !important;
  text-decoration: underline;
  opacity: .92;
}

.sp-card__footer .sp-btn:active{ transform: translateY(1px); }

/* =====================
   Train page (V1 UI only)
   ===================== */

.sp-pagehead{
  margin: 6px 0 18px;
}

.sp-pagehead__kicker{
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 6px 10px;
  border-radius: 999px;
  font-size: 12px;
  font-weight: 750;
  color: #1e3a8a;
  background: rgba(37, 99, 235, 0.10);
  border: 1px solid rgba(37, 99, 235, 0.14);
  width: fit-content;
}

.sp-pagehead__title{
  margin: 10px 0 8px;
  font-size: clamp(26px, 2.6vw, 34px);
  letter-spacing: -0.02em;
  font-weight: 850;
}

.sp-pagehead__subtitle{
  margin: 0;
  color: var(--sp-text-secondary);
  max-width: 70ch;
  font-size: 15px;
  line-height: 1.55;
}

.sp-train-grid{
  margin-top: 18px;
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: clamp(14px, 1.6vw, 22px);
}

@media (max-width: 980px){
  .sp-train-grid{ grid-template-columns: 1fr; }
}

.sp-block{
  background: var(--sp-bg-panel);
  border: 1px solid var(--sp-border-soft);
  border-radius: var(--sp-radius-lg);
  box-shadow: var(--sp-shadow-soft);
  padding: clamp(18px, 1.8vw, 26px);
  display: flex;
  flex-direction: column;
  gap: 10px;
  text-decoration: none;
  color: inherit;
  min-height: clamp(220px, 28vh, 320px);
  position: relative;
  overflow: hidden;
  transition: transform .12s ease, box-shadow .18s ease, border-color .18s ease;
}

.sp-block:hover{
  transform: translateY(-3px);
  box-shadow: var(--sp-shadow-hover);
  border-color: var(--sp-border-strong);
}

.sp-block:active{ transform: translateY(-1px); }

.sp-block:focus-visible{
  outline: 3px solid color-mix(in srgb, var(--sp-assistant) 35%, transparent);
  outline-offset: 3px;
}

.sp-block--list{
  background: linear-gradient(180deg, rgba(245, 158, 11, 0.10), rgba(255,255,255,1));
}

.sp-block--session{
  background: linear-gradient(180deg, rgba(37, 99, 235, 0.08), rgba(255,255,255,1));
}

.sp-block__top{
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
}

.sp-block__badge{
  width: 34px;
  height: 34px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: 12px;
  font-weight: 850;
  color: #0f172a;
  background: rgba(15,23,42,.06);
  border: 1px solid rgba(15,23,42,.08);
}

.sp-block__label{
  font-size: 12px;
  font-weight: 750;
  color: var(--sp-text-secondary);
}

.sp-block__title{
  font-size: 20px;
  font-weight: 850;
  letter-spacing: -0.01em;
  margin-top: 2px;
}

.sp-block__desc{
  color: var(--sp-text-secondary);
  font-size: 14.5px;
  line-height: 1.55;
}

.sp-block__meta{
  margin-top: auto;
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  padding-top: 14px;
  border-top: 1px solid rgba(15,23,42,.06);
}

.sp-chip{
  display: inline-flex;
  align-items: center;
  padding: 6px 10px;
  border-radius: 999px;
  font-size: 12px;
  font-weight: 700;
  color: var(--sp-text-secondary);
  background: rgba(255,255,255,.65);
  border: 1px solid rgba(15,23,42,.08);
}

.sp-backline{
  margin-top: 18px;
}

.sp-link{
  color: #1e3a8a;
  font-weight: 650;
  text-decoration: none;
}

.sp-link:hover{ text-decoration: underline; }

/* Brand logo becomes a subtle home link on subpages */
.sp-brand__link{ display: inline-flex; align-items: center; }

/* Toast (UI only) */
.sp-toast{
  position: fixed;
  left: 50%;
  bottom: 22px;
  transform: translateX(-50%) translateY(12px);
  opacity: 0;
  pointer-events: none;
  background: rgba(15,23,42,.92);
  color: #fff;
  padding: 10px 14px;
  border-radius: 12px;
  font-size: 13px;
  font-weight: 650;
  box-shadow: 0 14px 30px rgba(15,23,42,.22);
  border: 1px solid rgba(255,255,255,.14);
  transition: opacity .18s ease, transform .18s ease;
  z-index: 9999;
}

.sp-toast.is-visible{
  opacity: 1;
  transform: translateX(-50%) translateY(0);
}

/* =====================
   Train v2 controls
   ===================== */

/* Premium tab selector (moving indicator) */
.sp-tabs{
  --sp-tabs-index: 0;
  --sp-tabs-count: 4;
  position: relative;
  display: grid;
  grid-template-columns: repeat(var(--sp-tabs-count), minmax(0, 1fr));
  gap: 0;
  padding: 3px;
  border-radius: 999px;
  background: rgba(255,255,255,.70);
  border: 1px solid rgba(15,23,42,.10);
  box-shadow: 0 10px 22px rgba(15,23,42,.06);
  overflow: hidden;
}

/* Ensure correct equal-width tabs when JS sets data-count */
.sp-tabs[data-count="2"]{ --sp-tabs-count: 2; }
.sp-tabs[data-count="3"]{ --sp-tabs-count: 3; }
.sp-tabs[data-count="4"]{ --sp-tabs-count: 4; }
.sp-tabs[data-count="5"]{ --sp-tabs-count: 5; }
.sp-tabs[data-count="6"]{ --sp-tabs-count: 6; }
.sp-tabs[data-count="7"]{ --sp-tabs-count: 7; }

.sp-tabs--wrap{
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  padding: 0;
  background: transparent;
  border: 0;
  box-shadow: none;
}

.sp-tabs--small{ padding: 2px; }

/* Train page: reduce height without shrinking the text */
.sp-tabs--train{ padding: 2px; }
.sp-tabs--train .sp-tabs__btn{
  /* Make the pill less tall, while keeping the text size */
  height: 36px;
  min-height: 36px;
  line-height: 36px;
  font-size: 16px;
  padding: 0 12px;
}

/* Tester tabs: same component, violet accent (indicator) */
.sp-tabs--tester{ padding: 2px; }

.sp-tabs__indicator{
  position: absolute;
  inset: 0;
  width: calc(100% / var(--sp-tabs-count));
  border-radius: 999px;
  background: linear-gradient(180deg, rgba(37,99,235,.18), rgba(37,99,235,.10));
  border: 1px solid rgba(37,99,235,.22);
  box-shadow: 0 12px 22px rgba(37,99,235,.12);
  transform: translateX(calc(var(--sp-tabs-index) * 100%));
  transition: transform .22s cubic-bezier(.2,.8,.2,1);
  pointer-events: none;
}

.sp-tabs__btn{
  position: relative;
  z-index: 1;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  height: 32px;
  padding: 0 12px;
  border-radius: 999px;
  font-weight: 800;
  font-size: 13px;
  line-height: 32px;
  color: var(--sp-text-secondary);
  background: transparent !important;
  border: 0 !important;
  appearance: none;
  cursor: pointer;
  transition: color .18s ease, transform .08s ease;
  user-select: none;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

/* Small screens: avoid multi-line tabs.
   Use a horizontally scrollable pill row.
*/
/*
  Responsive tabs
  --------------
  On narrower viewports (desktop window resized, tablets, mobile), the equal-width grid
  becomes unreadable with many themes. We switch to a single-line, horizontally scrollable row.
  IMPORTANT: we scope to .sp-app + .sp-tabs--train with higher specificity to defeat theme CSS.
*/
/* IMPORTANT: keep the moving indicator for Train (same as Annales).
   We avoid the old scroll variant which removed the indicator and made Train look inconsistent. */
@media (max-width: 1200px){
  .sp-app .sp-tabs.sp-tabs--train{ display: grid !important; }
}

.sp-tabs--small .sp-tabs__btn{ height: 32px; font-size: 12.5px; }

.sp-tabs__btn:hover{ color: var(--sp-text-primary); }
.sp-tabs__btn:active{ transform: translateY(1px); }
.sp-tabs__btn.is-active{ color: #1e3a8a; }

/* For chapter pills (wrap variant) */
.sp-tabs--wrap .sp-tabs__btn{
  height: auto;
  padding: 10px 14px;
  background: rgba(255,255,255,.72);
  border: 1px solid rgba(15,23,42,.10);
  box-shadow: 0 10px 20px rgba(15,23,42,.06);
}
.sp-tabs--wrap .sp-tabs__btn:hover{ border-color: rgba(15,23,42,.18); box-shadow: 0 16px 26px rgba(15,23,42,.08); }
.sp-tabs--wrap .sp-tabs__btn.is-active{
  background: rgba(37,99,235,.10);
  border-color: rgba(37,99,235,.22);
  color: #1e3a8a;
}

.sp-field{ margin-top: 12px; }

.sp-field__label{
  font-size: 12px;
  font-weight: 800;
  color: var(--sp-text-secondary);
  margin-bottom: 8px;
}

/* (Legacy) sp-seg styles kept for other pages, but tabs are preferred */
.sp-seg{ display:flex; flex-wrap:wrap; gap:10px; }
.sp-seg__btn{ border:1px solid rgba(15,23,42,.10); background:rgba(255,255,255,.72); color:var(--sp-text-secondary); padding:9px 12px; border-radius:999px; font-weight:750; font-size:13px; cursor:pointer; transition:transform .06s ease, box-shadow .15s ease, border-color .15s ease; }
.sp-seg__btn:hover{ border-color:rgba(15,23,42,.18); box-shadow:0 10px 20px rgba(15,23,42,.08); }
.sp-seg__btn:active{ transform: translateY(1px); }
.sp-seg__btn.is-active{ background:rgba(37,99,235,.10); border-color:rgba(37,99,235,.20); color:#1e3a8a; }

.sp-modegrid{
  margin-top: 10px;
  display: grid;
  /* Responsive without overflow: adapts to container width */
  grid-template-columns: repeat(auto-fit, minmax(320px, 1fr));
  gap: clamp(14px, 1.6vw, 22px);
}

/* Force 2×2 on wide screens (used on /comprendre/). */
.sp-modegrid--two-by-two{ grid-template-columns: repeat(2, minmax(320px, 1fr)); }

/* Stack mode cards earlier on smaller screens (prevents any overlap) */
@media (max-width: 980px){
  .sp-modegrid{ grid-template-columns: 1fr; }
  .sp-modegrid--two-by-two{ grid-template-columns: 1fr; }
}

/* Extra safety on very small screens */
@media (max-width: 520px){
  .sp-modegrid{ grid-template-columns: 1fr; }
  .sp-app .sp-mode{ padding: 22px; }
  .sp-app .sp-mode__title{ font-size: 28px; line-height: 1.12; }
}



.sp-mode{
  min-width: 0;
  text-align: left;
  max-width: 100%;
  overflow: hidden;

  /* More contrast so cards stand out from the panel */
  border: 1px solid rgba(15,23,42,.12) !important;
  background: linear-gradient(180deg, rgba(255,255,255,.98), rgba(245,248,255,.92)) !important;
  border-radius: var(--sp-radius-lg);
  /* Give breathing room so text/badges aren't glued to edges */
  padding: clamp(26px, 2.3vw, 34px);
  box-shadow: 0 18px 44px rgba(2,6,23,.12);
  cursor: pointer;
  color: inherit;
  appearance: none;
  outline: none;
  transition: transform .12s ease, box-shadow .18s ease, border-color .18s ease;
}

/* Avoid underlined text inside clickable cards */
.sp-mode--link{ text-decoration: none; }

.sp-mode--disabled{
  cursor: default;
  opacity: .72;
}
.sp-mode--disabled:hover{
  transform: none;
  box-shadow: 0 14px 32px rgba(2,6,23,.10);
}
.sp-mode--disabled .sp-mode__badge{
  max-width: 100%;
  margin-top: 16px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  font-weight: 900;
  font-size: 15px;
  padding: 12px 14px;
  border-radius: 12px;
  border: 1px solid rgba(15,23,42,.12);
  margin-left: auto;
  margin-right: auto;
}

.sp-mode:hover{
  background: linear-gradient(180deg, rgba(255,255,255,.98), rgba(242,247,255,.94)) !important;
  transform: translateY(-3px);
  box-shadow: 0 24px 52px rgba(2,6,23,.16);
  border-color: rgba(37,99,235,.22);
}

.sp-mode.is-active{
  border-color: rgba(37,99,235,.34);
  background: linear-gradient(180deg, rgba(232,240,255,.98), rgba(244,248,255,.96)) !important;
  box-shadow: 0 18px 40px rgba(37,99,235,.16);
}
.sp-mode.is-active .sp-mode__go{
  background: rgba(37,99,235,.16);
  border-color: rgba(37,99,235,.24);
}

.sp-mode__kicker{
  display: inline-flex;
  padding: 6px 10px;
  border-radius: 999px;
  font-size: 12px;
  font-weight: 850;
  color: var(--sp-text-secondary);
  background: rgba(15,23,42,.05);
  border: 1px solid rgba(15,23,42,.08);

  /* Badge top-left (Mode A/B) */
  position: absolute;
  top: 14px;
  left: 14px;
}


.sp-mode__title{
  /* Leave room for the badge */
  margin-top: 42px;
  font-size: 18px;
  font-weight: 900;
  letter-spacing: -0.01em;
  overflow-wrap: anywhere;
  word-break: break-word;
  hyphens: auto;

  /* Centered, dark blue */
  text-align: center;
  color: #1e3a8a;
}

.sp-mode__desc{
  margin-top: 8px;
  color: #475569;
  font-size: 14px;
  font-weight: 600;
  line-height: 1.55;
  max-width: 100%;
  white-space: normal;
  overflow-wrap: anywhere;

  /* Slightly less pronounced */
  text-align: center;
}



.sp-mode__meta{
  margin-top: 14px;
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}

.sp-mode__go{
  max-width: 100%;
  margin-top: 16px;
  display: inline-flex;
  align-items: center;
  gap: 8px;
  font-weight: 900;
  font-size: 15px;
  color: #1e3a8a;
  padding: 12px 14px;
  border-radius: 12px;
  background: rgba(37,99,235,.10);
  border: 1px solid rgba(37,99,235,.18);

  /* Center the button */
  margin-left: auto;
  margin-right: auto;
}


.sp-cta{
  margin-top: 16px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 14px;
}

.sp-btn--primary{
  border: 1px solid rgba(37,99,235,.22) !important;
  background: rgba(37,99,235,.10) !important;
  color: #1e3a8a !important;
  padding: 10px 14px;
  border-radius: 12px;
  font-weight: 850;
}

.sp-btn--primary[disabled]{
  opacity: .55;
  cursor: not-allowed;
}

.sp-cta__hint{ color: var(--sp-text-secondary); font-size: 13px; }

/* =====================
   Collections list
   ===================== */

.sp-panel__row{
  display: grid;
  grid-template-columns: 1.2fr 1fr;
  gap: 16px;
}
@media (max-width: 980px){
  .sp-panel__row{ grid-template-columns: 1fr; }
}

.sp-selectrow{
  display: flex;
  gap: 10px;
  align-items: center;
}

.sp-select{
  width: 100%;
  border: 1px solid rgba(15,23,42,.12);
  border-radius: 14px;
  padding: 12px 44px 12px 16px;
  background: rgba(255,255,255,.92);
  color: var(--sp-text-primary);
  font-weight: 700;
  font-size: 16px;
  letter-spacing: -.01em;
  box-shadow: 0 10px 22px rgba(15,23,42,.06);
  appearance: none;
  -webkit-appearance: none;
  -moz-appearance: none;
  background-image:
    linear-gradient(180deg, rgba(255,255,255,.85), rgba(255,255,255,.85)),
    url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='20' height='20' viewBox='0 0 20 20'%3E%3Cpath fill='%230f172a' fill-opacity='0.65' d='M5.4 7.6a1 1 0 0 1 1.4 0L10 10.8l3.2-3.2a1 1 0 1 1 1.4 1.4l-3.9 3.9a1 1 0 0 1-1.4 0l-3.9-3.9a1 1 0 0 1 0-1.4Z'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: 0 0, calc(100% - 14px) 50%;
  background-size: auto, 18px 18px;
}

/* Hide the native <select> on train (we keep it for accessibility + state). */
.sp-select--native{
  position:absolute;
  left:-9999px;
  width:1px;
  height:1px;
  overflow:hidden;
  opacity:0;
}

/* Custom dropdown (chapitre) */
.sp-dropdown{ position:relative; width:100%; }
.sp-dropdown__btn{
  width:100%;
  border: 1px solid rgba(15,23,42,.12);
  border-radius: 14px;
  /* Match the theme tabs height */
  height: 36px;
  padding: 0 16px;
  background: rgba(255,255,255,.92);
  color: var(--sp-text-primary);
  font-weight: 700;
  font-size: 16px;
  letter-spacing: -.01em;
  box-shadow: 0 10px 22px rgba(15,23,42,.06);
  display:flex;
  align-items:center;
  justify-content:space-between;
  cursor:pointer;
  transition: border-color .15s ease, box-shadow .15s ease, transform .08s ease, background-color .15s ease;
}
.sp-dropdown__btn:hover{
  /* Prevent theme hover bleed (some themes paint selects/buttons in red) */
  background: rgba(255,255,255,.96);
  border-color: rgba(15,23,42,.18);
  box-shadow: 0 14px 30px rgba(15,23,42,.08);
}
.sp-dropdown__btn:active{ transform: translateY(1px); }
.sp-dropdown__btn:focus{
  outline:none;
  border-color: rgba(37,99,235,.30);
  box-shadow: 0 0 0 4px rgba(37,99,235,.12), 0 16px 34px rgba(37,99,235,.12);
}
.sp-dropdown__label{ white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.sp-dropdown__chev{ opacity:.55; margin-left:12px; }
.sp-dropdown__menu{
  position:absolute;
  left:0;
  right:0;
  top:calc(100% + 10px);
  background:#fff;
  border:1px solid rgba(15,23,42,.12);
  border-radius:14px;
  box-shadow:0 18px 40px rgba(2,6,23,.14);
  padding:6px;
  max-height:260px;
  overflow:auto;
  z-index:1000;
}
.sp-dropdown__opt{
  padding:10px 12px;
  border-radius:12px;
  cursor:pointer;
  font-size:15px;
}
.sp-dropdown__opt:hover{ background:rgba(37,99,235,.10); }
.sp-dropdown__opt[aria-selected="true"]{ background:rgba(37,99,235,.14); font-weight:700; }

/* ---- Hard overrides (theme bleed protection) ----
   Some WordPress themes inject min-height / padding / hover colors on buttons & selects.
   We scope + add !important only on the Train page controls.
*/
/* Keep Theme tabs and Chapter dropdown perfectly aligned in height */
.sp-app .sp-tabs.sp-tabs--train{
  padding: 2px !important;
  height: 34px !important;
  align-items: center !important;
  align-content: center !important;
}
.sp-app .sp-tabs.sp-tabs--train .sp-tabs__btn{
  height: 30px !important;
  min-height: 30px !important;
  /* Ensure vertical centering even if the theme injects weird button styles */
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  align-self: center !important;
  box-sizing: border-box !important;
  margin: 0 !important;
  padding: 0 14px !important;
  padding-top: 0 !important;
  padding-bottom: 0 !important;
  line-height: 1 !important;
  font-size: 13px !important;
}


.sp-app .sp-dropdown__btn{
  height: 34px !important;
  min-height: 38px !important;
  padding: 0 14px !important;
  border-color: rgba(15,23,42,.12) !important;
  background: rgba(255,255,255,.92) !important;
}

/* Label spacing consistency (Theme vs Chapter) */
.sp-app .sp-field__label{
  margin-bottom: 8px !important;
}
.sp-app .sp-dropdown__btn:hover{
  background: rgba(255,255,255,.96) !important;
  border-color: rgba(15,23,42,.18) !important;
}

/* Mode cards: more breathing room + clearer separation */
.sp-app .sp-mode{
  min-width: 0;
  padding: 22px 22px 20px !important;
  border: 1px solid rgba(15,23,42,.12) !important;
  box-shadow: 0 10px 26px rgba(15,23,42,.08) !important;
}
/* .sp-app .sp-mode__kicker margin removed (badge is absolute) */
/* .sp-app .sp-mode__title margin-top removed (handled above) */

.sp-app .sp-mode__desc{
  overflow-wrap: anywhere;
  word-break: break-word;
  hyphens: auto;
}

.sp-select:focus{
  outline: none;
  border-color: rgba(37,99,235,.30);
  box-shadow: 0 16px 34px rgba(37,99,235,.14);
}

.sp-grid--cards{ grid-template-columns: repeat(3, 1fr); }
@media (max-width: 1100px){ .sp-grid--cards{ grid-template-columns: 1fr; } }

.sp-collections{ margin-top: 16px; }

.sp-collection-card{
  background: rgba(255,255,255,.86);
  border: 1px solid var(--sp-border-soft);
  border-radius: var(--sp-radius-lg);
  padding: 18px;
  box-shadow: var(--sp-shadow-soft);
  text-decoration: none;
  color: inherit;
  transition: transform .12s ease, box-shadow .18s ease, border-color .18s ease;
  display: flex;
  flex-direction: column;
  min-height: 160px;
}

.sp-collection-card:hover{
  transform: translateY(-3px);
  box-shadow: var(--sp-shadow-hover);
  border-color: var(--sp-border-strong);
}

.sp-collection-card__title{ font-weight: 900; font-size: 18px; letter-spacing: -0.01em; }
.sp-collection-card__desc{ margin-top: 8px; color: var(--sp-text-secondary); font-size: 14px; line-height: 1.55; }
.sp-collection-card__meta{ margin-top: auto; display:flex; gap: 8px; flex-wrap: wrap; padding-top: 14px; border-top: 1px solid rgba(15,23,42,.06);} 

.sp-skeleton{ display: grid; grid-template-columns: repeat(3, 1fr); gap: 16px; }
@media (max-width: 1100px){ .sp-skeleton{ grid-template-columns: 1fr; } }

.sp-skel-card{
  height: 160px;
  border-radius: var(--sp-radius-lg);
  border: 1px solid rgba(15,23,42,.06);
  background: linear-gradient(90deg, rgba(255,255,255,.55), rgba(255,255,255,.85), rgba(255,255,255,.55));
  background-size: 220% 100%;
  animation: sp-shimmer 1.25s ease-in-out infinite;
}

@keyframes sp-shimmer{
  0%{ background-position: 0% 0; }
  100%{ background-position: 100% 0; }
}

.sp-empty{
  margin-top: 10px;
  padding: 18px;
  border-radius: var(--sp-radius-lg);
  background: rgba(255,255,255,.72);
  border: 1px solid rgba(15,23,42,.08);
}

.sp-empty__title{ font-weight: 900; }
.sp-empty__desc{ margin-top: 6px; color: var(--sp-text-secondary); }

/* =========================
   Playlist (train-playlist)
   ========================= */
.sp-grid{
  display: grid;
  grid-template-columns: repeat(3, minmax(0,1fr));
  gap: 14px;
}
@media (max-width: 1000px){
  .sp-grid{ grid-template-columns: repeat(2, minmax(0,1fr)); }
}
@media (max-width: 640px){
  .sp-grid{ grid-template-columns: 1fr; }
}

.sp-card--mini{
  /* compact cards, but with enough height to breathe */
  min-height: 104px;
  padding: 14px 14px 12px;
  display:flex;
  flex-direction:column;
}
.sp-card--mini .sp-card__title{ font-size: 15.5px; line-height: 1.25; }
.sp-card--mini .sp-card__meta{
  margin-top:auto;
  display:flex;
  flex-wrap:wrap;
  gap:8px;
  padding-top:10px;
}
.sp-stars{ margin-left: 8px; font-size: 12px; opacity: .75; }
.sp-chip{ display:inline-flex; align-items:center; gap:6px; padding:4px 8px; border-radius: 999px; background: rgba(15,23,42,0.06); font-size: 12px; font-weight: 520; }
.sp-empty{ padding: 18px; border: 1px dashed rgba(15,23,42,0.2); border-radius: 14px; background: rgba(255,255,255,.7); }



/* === Playlist split (Mode B) === */
.spa6-split{
  display:flex;
  gap:16px;
  align-items:stretch;
}
.spa6-left{
  width:312px;
  max-width:34%;
  display:flex;
  flex-direction:column;
  background: linear-gradient(0deg, var(--spa6-panel-overlay), var(--spa6-panel-overlay)), var(--spa6-panel-bg) !important;
border:1px solid rgba(15,23,42,.08);
  border-radius:18px;
  overflow:hidden;
}
.spa6-left__head{
  padding:14px 20px 10px 20px;
  border-bottom:1px solid rgba(15,23,42,.06);
  background: linear-gradient(0deg, var(--spa6-panel-overlay), var(--spa6-panel-overlay)), var(--spa6-panel-bg) !important;
}
.spa6-left__title{
  font-weight:700;
  margin-bottom:10px;
}
.spa6-left__filters{
  display:flex;
  gap:6px;
  flex-wrap:wrap;
  align-items:center;
  justify-content:flex-start;
  margin-bottom:10px;
}

/* Left filter pills (force against theme bleed) */
.sp-pill{
  -webkit-appearance:none !important;
  appearance:none !important;
  display:inline-flex !important;
  align-items:center;
  justify-content:flex-start !important;
  width:auto !important;
  max-width:100%;
  border:1px solid rgba(15,23,42,.14) !important;
  background:#fff !important;
  border-radius:999px !important;
  padding:7px 12px !important;
  font-size:13px !important;
  font-weight:700 !important;
  cursor:pointer;
  text-align:left !important;
  color: var(--sp-assistant) !important;
  line-height:1.1;
}
.sp-pill:hover{
  background: rgba(37,99,235,.06) !important;
  border-color: rgba(37,99,235,.22) !important;
  color: var(--sp-assistant) !important;
}
.sp-pill.is-active{
  background: rgba(37,99,235,.10) !important;
  border-color: rgba(37,99,235,.28) !important;
  color: var(--sp-assistant) !important;
}
.spa6-left__body{
  /* Align left list with header padding (20px) */
  padding:14px 20px;
  background: linear-gradient(0deg, var(--spa6-panel-overlay), var(--spa6-panel-overlay)), var(--spa6-panel-bg) !important;
  flex:1 1 auto;
  min-height:0; /* allow scrolling inside flex column when needed */
  overflow:auto;
}

/* Section headers in left list */
.spa6-section{
  margin:14px 0 6px;
  /* Body already has padding, keep section flush */
  padding:6px 0 2px;
  border:0;
  background:transparent;
}
.spa6-section__row{
  display:flex;
  flex-direction:column;
  align-items:flex-start;
  justify-content:flex-start;
  gap:4px;
}
.spa6-section__title{
  font-weight:800;
  font-size:15px;
  color:rgba(15,23,42,.78);
  min-width:0;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:normal;
}
.spa6-left .spa6-section__toggle,
.spa6-section__toggle{
  -webkit-appearance:none !important;
  appearance:none !important;
  display:inline-flex !important;
  width:auto !important;
  border:0 !important;
  background:transparent !important;
  /* moins "lien", plus discret (ne doit pas reprendre la couleur accent) */
  color:#334155 !important;
  padding:0 !important;
  font-size:12.5px !important;
  font-weight:500 !important;
  cursor:pointer;
  text-align:left !important;
  opacity:1;
}
.spa6-left .spa6-section__toggle:hover,
.spa6-section__toggle:hover{
  text-decoration: underline;
  color:#0f172a !important;
}

/* securite : certains themes appliquent la couleur des liens aux elements internes */
.spa6-left .spa6-section__toggle *{
  color:inherit !important;
}
.spa6-item{
  display:block;
  padding:10px 10px;
  border-radius:14px;
  border:1px solid rgba(15,23,42,.08);
  background:#fff;
  margin-bottom:10px;
  text-decoration:none;
  color:inherit;
  cursor:pointer;
}
.spa6-item:hover{
  background: rgba(37,99,235,.06) !important;
  border-color: rgba(37,99,235,.18) !important;
}
.spa6-item:focus,
.spa6-item:focus-visible{
  outline:2px solid rgba(37,99,235,.35);
  outline-offset:2px;
}
.spa6-item.is-active{
  outline:2px solid rgba(37,99,235,.35);
  background: rgba(37,99,235,.05) !important;
}
.spa6-item.is-done{
  opacity:.78;
  background: rgba(34,197,94,.08) !important;
  border-color: rgba(34,197,94,.28) !important;
}
.spa6-item.is-redo{
  background: rgba(245,158,11,.10) !important;
  border-color: rgba(245,158,11,.34) !important;
}
.spa6-item.is-done .spa6-item__statusbadge{
  background: rgba(34,197,94,.12);
  border-color: rgba(34,197,94,.28);
  color:#166534;
}
.spa6-item.is-redo .spa6-item__statusbadge{
  background: rgba(245,158,11,.14);
  border-color: rgba(245,158,11,.34);
  color:#92400e;
}
.spa6-item__top{
  display:flex;
  flex-direction:column;
  gap:6px;
  align-items:flex-start;
}
.spa6-item__title{
  font-weight:600;
  font-size:14px;
  line-height:1.2;
}
.spa6-item__badges{
  display:flex;
  gap:6px;
  flex-wrap:wrap;
  margin-top:6px;
}
.spa6-badge{
  display:inline-flex;
  align-items:center;
  gap:6px;
  font-size:12px;
  padding:3px 8px;
  border-radius:999px;
  border:1px solid rgba(15,23,42,.12);
  background:rgba(248,250,252,.8);
}
.spa6-badge--redo{
  background:rgba(245,158,11,.12);
  border-color:rgba(245,158,11,.25);
}
.spa6-badge--progress{
  background:rgba(59,130,246,.10);
  border-color:rgba(59,130,246,.25);
}
.spa6-right{
  flex:1;
  background:#fff;
  border:1px solid rgba(15,23,42,.08);
  border-radius:18px;
  overflow:hidden;
  min-width:0;
}
.spa6-right__sticky{
  position:sticky;
  top:0;
  z-index:5;
  background: linear-gradient(0deg, var(--spa6-panel-overlay), var(--spa6-panel-overlay)), var(--spa6-panel-bg) !important;
  border-bottom:1px solid rgba(15,23,42,.06);
  padding:18px 18px 16px;
}
.spa6-right__header{
  display:flex;
  flex-direction:column;
  align-items:stretch;
  gap:10px;
}
.spa6-right__title{
  font-weight:800;
  font-size:18px;
  line-height:1.25;
  min-width:0;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
  text-decoration:none !important;
}
.spa6-right .spa6-actionbtn:hover,
.spa6-right .spa6-actionbtn:focus{
  text-decoration:none !important;
}
.spa6-right__actions{
  display:flex;
  gap:10px;
  flex-wrap:wrap;
  justify-content:flex-start;
}

/* Toolbar under exercise title */
.spa6-right__toolbar{
  display:flex;
  flex-direction:column;
  gap:10px;
}
.spa6-right__toolbar-row{
  display:flex;
  gap:10px;
  flex-wrap:wrap;
  justify-content:flex-start;
  align-items:center;
}
.spa6-right__toolbar-row--actions{
  gap:10px;
  flex-direction:row;
  justify-content:flex-start;
}
.spa6-right__toolbar-row--center{
  justify-content:center;
}
.spa6-right__toolbar-row--rating{
  gap:12px;
  justify-content:center;
}

/* Action buttons in reader header (override theme styles) */
.spa6-right .spa6-actionbtn{
  appearance:none;
  border:1px solid rgba(15,23,42,.16) !important;
  background: rgba(255,255,255,.92) !important;
  color: rgba(15,23,42,.88) !important;
  padding: 10px 14px !important;
  border-radius: 999px;
  font: inherit;
  font-weight: 700;
  font-size: 13px;
  line-height: 1;
  cursor:pointer;
  transition: transform .06s ease, box-shadow .15s ease, border-color .15s ease, background .15s ease;
  display:inline-flex !important;
  align-items:center;
  justify-content:center;
  width:auto;
  white-space:nowrap;
  text-decoration:none !important;
}

.spa6-right .spa6-actionbtn:hover,
.spa6-right .spa6-actionbtn:focus{
  text-decoration:none !important;
}
/* Allow wrap on small screens */
.spa6-right__toolbar-row--actions{
  flex-wrap:wrap;
}
.spa6-right__toolbar-row--actions .spa6-actionbtn{
  flex:0 0 auto;
}

.spa6-right__toolbar-row--rating{
  padding-top:10px;
  padding-bottom:14px;
  justify-content:center;
}

/* empty perceived value */
.spa6-rating__value.is-empty{ opacity:.55; }
.spa6-rating__range.is-empty{ opacity:.75; }
.spa6-actionbtn:hover{
  border-color: rgba(15,23,42,.26);
  background: rgba(255,255,255,.99);
  box-shadow: 0 10px 20px rgba(15,23,42,.08);
}
.spa6-actionbtn:active{ transform: translateY(1px); }
.spa6-actionbtn.is-active{
  border-color: rgba(22,163,74,.68) !important;
  background: rgba(22,163,74,.14) !important;
  color: rgba(20,83,45,.98) !important;
  box-shadow: 0 10px 22px rgba(22,163,74,.12) !important;
}

.spa6-actionbtn[data-spa6-action="done"].is-active,
.spa6-actionbtn[data-spa6-action="redo"].is-active{
  border-color: rgba(22,163,74,.68) !important;
  background: rgba(22,163,74,.14) !important;
  color: rgba(20,83,45,.98) !important;
}
.spa6-rating__label{
  font-weight:700;
  color: rgba(15,23,42,0.75);
  white-space:nowrap;
}
.spa6-rating{
  display:flex;
  align-items:center;
  gap:10px;
  flex-wrap:nowrap;
  min-width:0;
}
.spa6-rating__min,.spa6-rating__max{
  font-weight:800;
  font-size:12px;
  color: rgba(15,23,42,0.55);
}
.spa6-rating__range{
  width: 260px;
  max-width: 52vw;
}
.spa6-rating__value{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-width: 34px;
  height: 30px;
  padding: 0 10px;
  border-radius: 999px;
  border: 1px solid rgba(15,23,42,.16);
  background: rgba(255,255,255,.96);
  font-weight: 800;
}

@media (max-width: 760px){
  .spa6-right__title{ font-size:16px; }
  .spa6-rating{ flex-wrap:wrap; }
  .spa6-rating__range{ width: 100%; max-width: none; }
}
.spa6-right__content{
  /* Extra left padding so list markers (10,11,...) never get clipped */
  padding:16px 16px 16px 22px;
  padding-top: 30px;
  max-height:70vh;
  overflow:auto;
  /* Keep exercise text consistent with the rest of the app (theme CSS can be huge) */
  font-size: 15px !important;
  line-height: 1.6 !important;
}

/* Exercise typography tuning */
.spa6-right__content p,
.spa6-right__content li,
.spa6-right__content td,
.spa6-right__content th{
  font-size: 1em !important;
  line-height: 1.6 !important;
}
.spa6-right__content li,
.spa6-right__corrige li{
  /* Prevent theme/global CSS from turning list items into flex/blocks
     (which breaks bullets and creates weird line breaks) */
  display: list-item;
}
.spa6-right__content li,
.spa6-right__corrige li{
  font-weight: 400 !important;
}
.spa6-right__content h1{ font-size: 1.35em; line-height: 1.25; }
.spa6-right__content h2{ font-size: 1.20em; line-height: 1.28; }
.spa6-right__content h3{ font-size: 1.10em; line-height: 1.30; }
.spa6-right__content h4{ font-size: 1.02em; line-height: 1.35; }

/* Headings color in statement/corrigé (match left column accent) */
.spa6-right__content h1,
.spa6-right__content h2,
.spa6-right__content h3,
.spa6-right__corrige h1,
.spa6-right__corrige h2,
.spa6-right__corrige h3{
  color: var(--sp-accent);
}

/* Ordered lists (avoid theme/Elementor overrides; make nested levels readable)
   We keep this scoped to enonce/corrige blocks only. */
.spa6-right__content ol,
.spa6-right__corrige ol{
  /* Enough space so 2-digit markers (10., 11., ...) never get clipped */
  padding-left: 2.15em;
  margin: 0.8em 0;
  /* The content area is scrollable (overflow:auto) -> use 'inside' to avoid clipping. */
  list-style-position: inside;
}

/* Unordered lists: keep a stable, clean bullet layout */
.spa6-right__content ul,
.spa6-right__corrige ul{
  padding-left: 1.6em;
  margin: 0.8em 0;
  list-style-position: outside;
}

/* Listes (robustes) : alignement propre, sans retours à la ligne parasites */

/* Reset listes dans les contenus HTML (énoncés + corrigés) */
.spa6-right__content ol,
.spa6-right__content ul,
.spa6-right__corrige ol,
.spa6-right__corrige ul {
  margin: .35em 0;
  padding: 0;
}

/* --- OL : 1., (a), (i) --- */
.spa6-right__content ol,
.spa6-right__corrige ol {
  list-style: none;
  counter-reset: sp_n1;
}

.spa6-right__content ol > li,
.spa6-right__corrige ol > li {
  position: relative;
  counter-increment: sp_n1;
  padding-left: 2.1em;
  margin: .35em 0;
}

/* Le texte du li doit rester sur la même ligne que le numéro */
.spa6-right__content ol > li > p:first-child,
.spa6-right__corrige ol > li > p:first-child {
  display: inline;
  margin: 0;
}

.spa6-right__content ol > li::before,
.spa6-right__corrige ol > li::before {
  content: counter(sp_n1) ". ";
  position: absolute;
  left: 0;
  top: 0;
  width: 1.85em;
  color: var(--sp-accent);
  font-weight: 700;
}

/* Niveau 2 : (a), (b), ... */
.spa6-right__content ol ol,
.spa6-right__corrige ol ol {
  counter-reset: sp_n2;
  margin: .15em 0 0 0;
}

.spa6-right__content ol ol > li,
.spa6-right__corrige ol ol > li {
  counter-increment: sp_n2;
  padding-left: 2.1em;
  margin: .28em 0;
}

.spa6-right__content ol ol > li::before,
.spa6-right__corrige ol ol > li::before {
  content: "(" counter(sp_n2, lower-alpha) ") ";
  width: 1.85em;
  font-weight: 700;
}

.spa6-right__content ol ol > li > p:first-child,
.spa6-right__corrige ol ol > li > p:first-child {
  display: inline;
  margin: 0;
}

/* Niveau 3 : (i), (ii), ... */
.spa6-right__content ol ol ol,
.spa6-right__corrige ol ol ol {
  counter-reset: sp_n3;
  margin: .15em 0 0 0;
}

.spa6-right__content ol ol ol > li,
.spa6-right__corrige ol ol ol > li {
  counter-increment: sp_n3;
  padding-left: 2.1em;
  margin: .22em 0;
}

.spa6-right__content ol ol ol > li::before,
.spa6-right__corrige ol ol ol > li::before {
  content: "(" counter(sp_n3, lower-roman) ") ";
  width: 1.85em;
  font-weight: 700;
}

.spa6-right__content ol ol ol > li > p:first-child,
.spa6-right__corrige ol ol ol > li > p:first-child {
  display: inline;
  margin: 0;
}

/* Cas particulier : "9." puis une sous-liste directement => on évite le retour à la ligne */
.spa6-right__content li.sp-li-nested-first > ol:first-child,
.spa6-right__content li.sp-li-nested-first > ul:first-child,
.spa6-right__corrige li.sp-li-nested-first > ol:first-child,
.spa6-right__corrige li.sp-li-nested-first > ul:first-child {
  display: inline-block;
  vertical-align: top;
  margin: 0;
}

/* Corrigés: les sous-listes doivent conserver toute la largeur du panneau.
   Sinon, les formules hors ligne et les blocs de conclusion se centrent dans
   un conteneur inline-block de largeur variable selon les questions. */
.spa6-right__corrige li.sp-li-nested-first > ol:first-child,
.spa6-right__corrige li.sp-li-nested-first > ul:first-child {
  display: block;
  width: 100%;
  max-width: 100%;
  box-sizing: border-box;
}

/* --- UL (puces) --- */
.spa6-right__content ul,
.spa6-right__corrige ul {
  list-style: none;
}

.spa6-right__content ul > li,
.spa6-right__corrige ul > li {
  position: relative;
  padding-left: 1.6em;
  margin: .28em 0;
}

.spa6-right__content ul > li::before,
.spa6-right__corrige ul > li::before {
  content: "•";
  position: absolute;
  left: .15em;
  top: 0;
  color: var(--sp-accent);
  font-weight: 800;
}

.spa6-right__content ul > li > p:first-child,
.spa6-right__corrige ul > li > p:first-child {
  display: inline;
  margin: 0;
}

/* MathJax (v2 CHTML) — sizing + baseline.
   IMPORTANT: do NOT force line-height:1 on MathJax output (it breaks fractions/integrals).
*/
/* MathJax v2 (SVG output): slightly larger than surrounding text, but not oversized.
   IMPORTANT: avoid line-height hacks (they can break fractions/integrals).
*/
.spa6-right__content .MathJax,
.spa6-right__corrige .MathJax{ font-size: 1em !important; }

/* IMPORTANT (MathJax v2 SVG):
   Do NOT override inline SVG baseline metrics (MathJax sets them per-formula).
   Overriding vertical-align globally is what creates "inline math too high" issues.
*/

/* Display math: spacing + true centering within the content column */
.spa6-right__content .MathJax_Display,
.spa6-right__corrige .MathJax_Display,
.spa6-right__content .MathJax_SVG_Display,
.spa6-right__corrige .MathJax_SVG_Display{
  margin: 0.85em 0 !important;
  text-align: center !important;
  width: 100% !important;
  display: block !important;
}

/* Ensure the actual SVG is centered, even inside lists/inline contexts */
.spa6-right__content .MathJax_SVG_Display .MathJax_SVG,
.spa6-right__corrige .MathJax_SVG_Display .MathJax_SVG{
  display: inline-block !important;
  margin: 0 auto !important;
}

/* Python blocks */
.spa6-right__content pre.pythonblock,
.spa6-right__corrige pre.pythonblock{
  background: linear-gradient(0deg, var(--spa6-panel-overlay), var(--spa6-panel-overlay)), var(--spa6-panel-bg);
  border: 1px solid rgba(15,23,42,.10);
  border-radius: 14px;
  padding: 14px 16px;
  margin: 14px 0;
  overflow: auto;
  box-shadow: 0 10px 22px rgba(15,23,42,.06);
}
.spa6-right__content pre.pythonblock,
.spa6-right__corrige pre.pythonblock,
.spa6-right__content pre.pythonblock code,
.spa6-right__corrige pre.pythonblock code{
  font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;
  font-size: 0.92em;
  font-weight: 500;
  color: #0f172a;
  line-height: 1.45;
}

/* Corrigé block (shown below statement) */
.spa6-right__corrige{
  /* Extra left padding so list markers (10,11,...) never get clipped */
  padding: 14px 16px 18px 18px;
  border-top: 1px solid rgba(15,23,42,.06);
  background: linear-gradient(0deg, var(--spa6-panel-overlay), var(--spa6-panel-overlay)), var(--spa6-panel-bg) !important;
  font-size: 15px !important;
  line-height: 1.6 !important;
}

.spa6-right__corrige p,
.spa6-right__corrige li,
.spa6-right__corrige td,
.spa6-right__corrige th{ font-size: 1em !important; line-height: 1.6 !important; }
.spa6-right__corrige .MathJax{ font-size: 1em !important; }
.spa6-right__corrige mjx-container{ font-size: 1em !important; }
.spa6-right__corrige .MathJax_SVG,
.spa6-right__corrige .MathJax_SVG svg{ font-size: 1em !important; }
.spa6-right__corrige .MathJax_Display,
.spa6-right__corrige mjx-container[jax="CHTML"][display="true"]{ margin: 0.85em 0 !important; }
.spa6-corrige__head{
  display:flex;
  align-items:center;
  justify-content:space-between;
  margin-bottom: 10px;
}
.spa6-corrige__title{
  font-weight: 800;
  color: rgba(15,23,42,.80);
}
.spa6-right__footer{
  border-top:1px solid rgba(15,23,42,.06);
  padding:14px 18px;
  display:flex;
  justify-content:space-between;
  gap:10px;
}
.sp-linkbtn{
  appearance:none;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:42px;
  padding:0 18px;
  border-radius:14px;
  border:1px solid rgba(15,23,42,.12);
  background:rgba(255,255,255,.92);
  color:inherit;
  cursor:pointer;
  font-weight:800;
  font-size:14px;
  text-decoration:none;
  transition:background .15s ease, border-color .15s ease, box-shadow .15s ease;
}
.sp-linkbtn:hover{
  background:rgba(255,255,255,.98);
  border-color:rgba(15,23,42,.18);
  box-shadow:0 8px 18px rgba(15,23,42,.06);
}
.sp-linkbtn[aria-disabled="true"]{
  opacity:.45;
  pointer-events:none;
}

.sp-session-generate{
  padding: 13px 18px !important;
  font-size: 16px !important;
  border-radius: 14px !important;
  box-shadow: 0 12px 28px rgba(37,99,235,.12);
}
.sp-session-generate:hover{
  box-shadow: 0 16px 34px rgba(37,99,235,.16);
}
.spa6-right__navwrap{
  background:#fff;
  padding:16px 18px 0;
}
.spa6-right__nav{
  display:grid;
  grid-template-columns: 1fr auto 1fr;
  align-items:center;
  gap:14px;
  padding:0 0 16px;
  border-bottom:1px solid rgba(15,23,42,.06);
}
.spa6-right__nav .sp-linkbtn:first-child{ justify-self:start; }
.spa6-right__nav .sp-linkbtn:last-child{ justify-self:end; }
.spa6-item__titleMain{
  font-weight:800;
  font-size:15px;
  color:#0f172a;
}
.spa6-item__titleSub{
  margin-top:4px;
  font-size:13px;
  color:#475569;
  line-height:1.35;
}
.spa6-item__statusline{
  margin-top:8px;
  display:flex;
  align-items:center;
  gap:8px;
}
.spa6-item__statusbadge{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:24px;
  padding:0 10px;
  border-radius:999px;
  background:#fff;
  border:1px solid rgba(15,23,42,.12);
  font-size:12px;
  font-weight:700;
  color:#0f172a;
}
.spa6-item.is-active .spa6-item__statusbadge{
  border-color: rgba(37,99,235,.24);
}

@media (max-width: 980px){
  .spa6-split{ flex-direction:column; }
  .spa6-left{ width:100%; max-width:100%; }
  .spa6-left__body, .spa6-right__content{ max-height:none; }
}

/* ==================================================
   Playlist overview (page intermédiaire)
   ================================================== */
.spa6-overview-badges{ display:flex; gap:8px; flex-wrap:wrap; margin-top:10px; }
.spa6-overview-actions{ margin-top:14px; }
.spa6-overview-desc{ margin: 0 0 18px 0; color: rgba(15,23,42,0.75); line-height: 1.55; }

.spa6-sec{ margin-top: 18px; }
.spa6-sec__title{ font-weight: 800; font-size: 18px; margin-bottom: 6px; }
.spa6-sec__desc{ color: rgba(15,23,42,0.70); margin-bottom: 10px; line-height: 1.45; }

.spa6-cards{ display:grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; }
@media (max-width: 980px){ .spa6-cards{ grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 640px){ .spa6-cards{ grid-template-columns: 1fr; } }

.spa6-card{ display:block; padding: 14px 14px; border: 1px solid rgba(15,23,42,0.10); border-radius: 16px; background: rgba(255,255,255,0.75); text-decoration:none; transition: transform 0.08s ease, box-shadow 0.08s ease; }
.spa6-card:hover{ transform: translateY(-1px); box-shadow: 0 10px 24px rgba(15,23,42,0.08); }
.spa6-card__k{ font-size: 12px; color: rgba(15,23,42,0.60); margin-bottom: 6px; }
.spa6-card__t{ font-weight: 700; color: rgba(15,23,42,0.90); line-height: 1.3; }
.spa6-card.is-done{ opacity: 0.65; }
.spa6-card.is-redo{ border-color: rgba(59,130,246,0.45); background: rgba(59,130,246,0.06); }
.spa6-more{ margin-top: 10px; }

/* ==================================================
   Annales (Concours) theme overrides
   ================================================== */
body.sp-theme-annales{
  background:
    radial-gradient(1200px 520px at 50% -180px, rgba(239, 68, 68, 0.10), transparent 62%),
    radial-gradient(900px 420px at 12% 8%, rgba(239, 68, 68, 0.06), transparent 55%),
    var(--sp-bg-main) !important;
  background-color: var(--sp-bg-main) !important;
  --sp-focus-ring: rgba(139,29,61,.18);
  --sp-focus-border: rgba(139,29,61,.42);
}

/* Annales palette (bordeaux) */
body.sp-theme-annales{ --sp-link: var(--sp-annales-ink); }

/* Annales + layout exercices (spa6) */
body.sp-theme-annales{
  --spa6-panel-bg: color-mix(in srgb, var(--sp-annales) 6%, white);
  --spa6-panel-overlay: rgba(255,255,255,0.55);
}

body.sp-theme-annales .spa6-actionbtn--annales{
  border-color: color-mix(in srgb, var(--sp-annales) 22%, white);
}

body.sp-theme-annales .spa6-left--annales .spa6-left__title{
  color: var(--sp-annales-ink);
}

body.sp-theme-annales .spa6-left--annales .spa6-left__sectionTitle{
  color: var(--sp-annales-ink);
  font-weight: 650;
  font-size: 14px;
}

/* ==================================================
   Cours & Méthodes theme overrides (ambre)
   ================================================== */
body.sp-theme-cours{
  background:
    radial-gradient(1200px 520px at 50% -180px, color-mix(in srgb, var(--sp-cours) 18%, transparent), transparent 62%),
    radial-gradient(900px 420px at 12% 8%, color-mix(in srgb, var(--sp-cours) 10%, transparent), transparent 55%),
    var(--sp-bg-main) !important;
  background-color: var(--sp-bg-main) !important;
  --sp-link: var(--sp-cours-ink);
  --sp-focus-ring: rgba(245,158,11,.18);
  --sp-focus-border: rgba(245,158,11,.42);
}

body.sp-theme-cours .sp-btn--ghost{ color: var(--sp-cours-ink); }

body.sp-theme-cours .sp-pagehead__kicker{
  color: var(--sp-cours-ink);
  background: color-mix(in srgb, var(--sp-cours) 14%, white);
  border-color: color-mix(in srgb, var(--sp-cours) 20%, white);
}

/* Mode cards (used on /comprendre/): same layout as /train/, but amber. */
body.sp-theme-cours .sp-mode{
  background:
    radial-gradient(120% 120% at 16% 0%, color-mix(in srgb, var(--sp-cours) 14%, transparent), transparent 55%),
    linear-gradient(180deg, color-mix(in srgb, var(--sp-cours) 6%, white), rgba(255,255,255,.98));
  border-color: color-mix(in srgb, var(--sp-cours) 16%, rgba(15,23,42,0.10));
}
body.sp-theme-cours .sp-mode:hover{
  border-color: color-mix(in srgb, var(--sp-cours) 26%, rgba(15,23,42,0.12));
}
body.sp-theme-cours .sp-mode__badge{
  background: color-mix(in srgb, var(--sp-cours) 14%, white);
  border-color: color-mix(in srgb, var(--sp-cours) 22%, white);
  color: color-mix(in srgb, var(--sp-cours-ink) 88%, #000);
}
body.sp-theme-cours .sp-mode__title{
  color: color-mix(in srgb, var(--sp-cours-ink) 92%, #000);
}
body.sp-theme-cours .sp-mode__desc{
  color: rgba(15,23,42,.72);
}
body.sp-theme-cours .sp-mode__go{
  color: color-mix(in srgb, var(--sp-cours-ink) 88%, #000);
  background: color-mix(in srgb, var(--sp-cours) 14%, white);
  border-color: color-mix(in srgb, var(--sp-cours) 24%, white);
}

/* Mini chips (used for course cards): amber instead of blue. */
body.sp-theme-cours .sp-mini-chip{
  border-color: color-mix(in srgb, var(--sp-cours) 26%, rgba(15,23,42,0.10));
  background: color-mix(in srgb, var(--sp-cours) 14%, white);
  color: color-mix(in srgb, var(--sp-cours-ink) 88%, #000);
}

/* Replace the remaining "train blue" UI accents (tabs, selects, focus rings) on cours pages. */
body.sp-theme-cours{
  --sp-assistant: var(--sp-cours);
}
body.sp-theme-cours .sp-tabs__indicator{
  background: linear-gradient(180deg,
    color-mix(in srgb, var(--sp-cours) 22%, transparent),
    color-mix(in srgb, var(--sp-cours) 12%, transparent)
  );
  border-color: color-mix(in srgb, var(--sp-cours) 26%, transparent);
  box-shadow: 0 12px 22px color-mix(in srgb, var(--sp-cours) 22%, transparent);
}
body.sp-theme-cours .sp-tabs__btn.is-active{ color: color-mix(in srgb, var(--sp-cours-ink) 92%, #000); }

body.sp-theme-cours .sp-seg__btn.is-active{
  background: color-mix(in srgb, var(--sp-cours) 12%, white);
  border-color: color-mix(in srgb, var(--sp-cours) 24%, transparent);
  color: color-mix(in srgb, var(--sp-cours-ink) 92%, #000);
}

body.sp-theme-cours .sp-input:focus,
body.sp-theme-cours .sp-textarea:focus,
body.sp-theme-cours .sp-select:focus,
body.sp-theme-cours .sp-select--native:focus{
  border-color: color-mix(in srgb, var(--sp-cours) 28%, white);
  box-shadow: 0 0 0 4px color-mix(in srgb, var(--sp-cours) 14%, transparent), 0 16px 34px color-mix(in srgb, var(--sp-cours) 16%, transparent);
}

body.sp-theme-cours .sp-dropdown__opt:hover{ background: color-mix(in srgb, var(--sp-cours) 12%, white); }
body.sp-theme-cours .sp-dropdown__opt[aria-selected="true"]{ background: color-mix(in srgb, var(--sp-cours) 16%, white); }

/* Panels and headings (cours index) */
body.sp-theme-cours .sp-panel{
  background:
    radial-gradient(120% 120% at 16% 0%, color-mix(in srgb, var(--sp-cours) 10%, transparent), transparent 58%),
    linear-gradient(180deg, rgba(255,255,255,.96), rgba(255,255,255,.92));
}
body.sp-theme-cours .sp-train-group__title{ color: color-mix(in srgb, var(--sp-cours-ink) 92%, #000); }
body.sp-theme-cours .sp-mini-card__title{ color: color-mix(in srgb, var(--sp-cours-ink) 92%, #000); }

.spa6-annales-meta{
  display: grid;
  gap: 10px;
  padding: 0;
  border: 0;
  background: transparent;
  border-radius: 0;
  margin-bottom: 14px;
}

.spa6-annales-meta__row{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap: 12px;
}

.spa6-annales-meta__label{
  font-weight: 650;
  color: color-mix(in srgb, var(--sp-annales-ink) 92%, #000);
  font-size: 14px;
}

.spa6-annales-meta__value{
  font-size: 18px;
  letter-spacing: 2px;
  line-height: 1;
}

.spa6-iconScale{
  display:inline-block;
  user-select:none;
}

.spa6-iconScale__i{
  display:inline-block;
}

/* "Empty" flames/hearts: keep the shape but desaturate */
.spa6-iconScale__i--empty{
  filter: grayscale(1);
  opacity: .25;
}

.spa6-similaires{
  list-style:none;
  padding:0;
  margin:0;
  display:flex;
  flex-direction:column;
  gap: 8px;
}

.spa6-similaires__link{
  color: color-mix(in srgb, var(--sp-annales-ink) 92%, #000);
  text-decoration: none;
  font-weight: 550;
}

.spa6-similaires__link:hover{
  text-decoration: underline;
  text-underline-offset: 2px;
}

body.sp-theme-annales .sp-pagehead__kicker{
  color: var(--sp-annales-ink);
  background: color-mix(in srgb, var(--sp-annales) 12%, white);
  border-color: color-mix(in srgb, var(--sp-annales) 18%, white);
}

/* Annales item header tweaks */
body.sp-theme-annales .sp-pagehead__subtitle{
  font-size: 18px;
  font-weight: 650;
  margin-top: 6px;
}

body.sp-theme-annales .sp-pagehead__comment{
  margin: 8px 0 0;
  color: rgba(15,23,42,0.75);
  font-size: 14px;
  line-height: 1.35;
  max-width: 980px;
}

body.sp-theme-annales .sp-pagehead__comment-line{
  display:block;
  margin-top:4px;
}

/* Chapitres list */
.spa6-chapitres{
  list-style:none;
  padding:0;
  margin:0;
  display:flex;
  flex-direction:column;
  gap:8px;
}
.spa6-chapitres__item{
  color: rgba(15,23,42,0.86);
  font-weight: 520;
  line-height: 1.25;
}

/* Scrollboxes for very long statements/corrections */
.spa6-scrollbox{
  overflow:auto;
  -webkit-overflow-scrolling: touch;
}
body.sp-theme-annales .spa6-scrollbox--enonce{
  max-height: calc(100vh - 310px);
  padding-right: 6px;
}
body.sp-theme-annales.spa6-corrige-open .spa6-scrollbox--enonce{
  /* Quand le corrigé est ouvert, on conserve la même hauteur utile pour l'énoncé. */
  max-height: calc(100vh - 310px);
}
body.sp-theme-annales .spa6-scrollbox--corrige{
  max-height: calc(50vh - 170px);
  padding-right: 6px;
}

/* Question navigation */
.spa6-annales-hint{
  margin: 0 0 10px;
  font-size: 13px;
  line-height: 1.35;
  color: color-mix(in srgb, var(--sp-annales-ink) 78%, #000);
}
.spa6-annales-hint__p{
  margin: 0 0 6px;
}
.spa6-annales-hint__p:last-child{ margin-bottom: 0; }
.spa6-qnav{
  /* No "card inside card" for the question navigator */
  display: grid;
  gap: 10px;
  padding: 0;
  border: 0;
  background: transparent;
  border-radius: 0;
  margin: 10px 0 12px;
}
.spa6-qnav--sticky{
  margin-top: 10px;
}
.spa6-qnav__cur{
  display:flex;
  align-items:center;
  justify-content:center;
  text-align: center;
  font-weight: 800;
  color: var(--sp-annales-ink);
  white-space: nowrap;
  line-height: 1.1;
  font-size: 18px;
}
.spa6-qnav__nav{
  /* Grid keeps the center label perfectly aligned with the buttons */
  display:grid;
  grid-template-columns: 1fr auto 1fr;
  align-items:center;
  gap: 12px;
  padding: 10px 12px;
  border: 1px solid color-mix(in srgb, var(--sp-annales) 18%, white);
  border-radius: 14px;
  background: var(--spa6-panel-bg);
}
.spa6-qnav__btn{
  border: 0;
  background: transparent;
  color: var(--sp-annales-ink) !important;
  height: auto;
  padding: 6px 4px;
  border-radius: 10px;
  font-weight: 800;
  cursor: pointer;
  white-space: nowrap;
  display:inline-flex;
  align-items:center;
  min-width: 0;
}
.spa6-qnav__btn:link,
.spa6-qnav__btn:visited{
  color: var(--sp-annales-ink) !important;
  text-decoration: none;
}
.spa6-qnav__btn:hover{
  background: color-mix(in srgb, var(--sp-annales) 10%, transparent);
}
.spa6-qnav__btn:active{
  transform: translateY(1px);
}
.spa6-qnav__btn:focus-visible{
  outline: 3px solid color-mix(in srgb, var(--sp-annales) 22%, transparent);
  outline-offset: 2px;
}
.spa6-qnav__btn *{ color: inherit !important; }
.spa6-qnav__btn:disabled{
  opacity: .45;
  cursor: default;
}
.spa6-qnav__btn--prev::before,
.spa6-qnav__btn--next::after{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width: 34px;
  height: 34px;
  border-radius: 999px;
  background: color-mix(in srgb, var(--sp-annales) 10%, white);
  border: 1px solid color-mix(in srgb, var(--sp-annales) 18%, white);
  color: var(--sp-annales-ink);
  font-weight: 900;
  font-size: 20px;
}
.spa6-qnav__btn--prev::before{ content: "←"; margin-right: 8px; }
.spa6-qnav__btn--next::after{ content: "→"; margin-left: 8px; }
.spa6-qnav__btn--prev{ justify-self: start; justify-content: flex-start; text-align:left; }
.spa6-qnav__btn--next{ justify-self: end; justify-content: flex-end; text-align:right; }
.spa6-qnav__cur{ justify-self: center; }
.spa6-qnav__actions{
  display:flex;
  gap: 10px;
  flex-wrap: wrap;
  justify-content: center;
}
.spa6-actionbtn--soft{
  border: 1px solid color-mix(in srgb, var(--sp-annales) 18%, white);
  background: rgba(255,255,255,0.78);
  color: color-mix(in srgb, var(--sp-annales-ink) 78%, #000);
}
body.sp-theme-annales .spa6-actionbtn:hover{
  background: color-mix(in srgb, var(--sp-annales) 8%, white);
  border-color: color-mix(in srgb, var(--sp-annales) 28%, rgba(15,23,42,0.10));
}
body.sp-theme-annales .spa6-actionbtn--annales:hover{
  background: color-mix(in srgb, var(--sp-annales) 10%, white);
}
.spa6-actionbtn--soft[disabled]{
  opacity: .55;
  cursor: not-allowed;
}

/* Active question highlight */
.spa6-q--active{
  outline: 2px solid color-mix(in srgb, var(--sp-annales) 35%, white);
  outline-offset: 6px;
  background: color-mix(in srgb, var(--sp-annales) 10%, white);
  border-radius: 10px;
  box-shadow: 0 10px 28px rgba(139,29,61,.08);
}

body.sp-theme-annales .sp-link{ color: var(--sp-annales-ink); }
body.sp-theme-annales .sp-btn--ghost{ color: var(--sp-annales-ink); }

/* Mode cards */
body.sp-theme-annales .sp-mode:hover{ border-color: color-mix(in srgb, var(--sp-annales) 28%, transparent); box-shadow: 0 24px 52px rgba(139,29,61,.12); }
body.sp-theme-annales .sp-mode.is-active{ border-color: color-mix(in srgb, var(--sp-annales) 34%, transparent); box-shadow: 0 18px 40px rgba(139,29,61,.10); }
body.sp-theme-annales .sp-mode__title{ color: var(--sp-annales-ink); }
body.sp-theme-annales .sp-mode__go{
  max-width: 100%;
  color: var(--sp-annales-ink);
  background: color-mix(in srgb, var(--sp-annales) 10%, white);
  border-color: color-mix(in srgb, var(--sp-annales) 18%, white);
}

.sp-panel--annales .sp-panel__title{ color: rgba(15,23,42,0.92); }

/* Panels in Cours/Méthodes */
body.sp-theme-cours .sp-panel--cours{
  background: color-mix(in srgb, var(--sp-cours) 6%, white);
  border: 1px solid color-mix(in srgb, var(--sp-cours) 14%, rgba(15,23,42,0.10));
  box-shadow: 0 18px 42px rgba(245,158,11,.06);
}
body.sp-theme-cours .sp-panel--cours .sp-panel__title{ color: color-mix(in srgb, var(--sp-cours-ink) 88%, #000); }

.sp-btn--annales{
  border: 1px solid color-mix(in srgb, var(--sp-annales) 28%, white) !important;
  background: color-mix(in srgb, var(--sp-annales) 10%, white) !important;
  color: var(--sp-annales-ink) !important;
  height: 32px;
  min-height: 32px;
  line-height: 32px;
  padding: 0 16px;
  white-space: nowrap;
}

/* Écrit/Oral + Oral:type selectors — EXACT same sizing as Train theme selector
   Important: keep equal-width columns, otherwise the moving indicator breaks. */
.sp-tabs--annales{
  padding: 2px;
  /* Same layout logic as base .sp-tabs (equal columns) */
  grid-template-columns: repeat(var(--sp-tabs-count), minmax(0, 1fr));
  /* Not full width: a controlled clamp width like the Train selector, but compact */
  width: clamp(360px, 56vw, 520px);
  max-width: 100%;
  margin: 6px 0 0;
}

/* Make both selectors the same width (Écrit/Oral and Oral:type) */
.sp-tabs--annales[data-sp-annales-oral-type]{
  width: clamp(360px, 56vw, 520px);
}

.sp-tabs--annales .sp-tabs__btn{
  /* Match .sp-tabs--train exactly */
  height: 36px;
  min-height: 36px;
  line-height: 36px;
  font-size: 16px;
  padding: 0 12px;
}

/* Hard protection (like Train) — some WP themes inject button min-height/padding.
   Force the EXACT Train geometry for Annales pills (height/padding/centering).
*/
.sp-app .sp-tabs.sp-tabs--annales{
  padding: 2px !important;
  height: auto !important;
  align-items: center !important;
  align-content: center !important;
}
.sp-app .sp-tabs.sp-tabs--annales .sp-tabs__btn{
  height: 36px !important;
  min-height: 36px !important;
  line-height: 36px !important;
  font-size: 16px !important;
  padding: 0 12px !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  box-sizing: border-box !important;
  margin: 0 !important;
}
.sp-tabs--annales .sp-tabs__indicator{
  background: linear-gradient(180deg, color-mix(in srgb, var(--sp-annales) 18%, white), color-mix(in srgb, var(--sp-annales) 10%, white));
  border: 1px solid color-mix(in srgb, var(--sp-annales) 20%, white);
  box-shadow: 0 12px 22px rgba(139,29,61,.10);
}

/* Mobile: avoid overflow, keep the same “train-like” compact height */
 (max-width: 640px){
  .sp-tabs--annales,
  .sp-tabs--annales[data-sp-annales-oral-type]{
    width: 100%;
    max-width: 100%;
  }
  .sp-tabs--annales .sp-tabs__btn{
    height: 36px;
    min-height: 36px;
    line-height: 36px;
    padding: 0 12px;
    font-size: 16px;
  }
}

/* Annales filters: avoid the “bare input” look */
body.sp-theme-annales .sp-panel--annales .sp-input:focus{ border-color: color-mix(in srgb, var(--sp-annales) 30%, white); box-shadow: 0 14px 26px rgba(139,29,61,.10); }

/* Annales inputs: match the “soft card” UI */
body.sp-theme-annales .sp-panel--annales .sp-input{
  background: rgba(255,255,255,.78);
  border: 1px solid rgba(15,23,42,.12);
  border-radius: 16px;
  padding: 14px 16px;
  font-size: 16px;
  line-height: 1.25;
  box-shadow: inset 0 1px 0 rgba(255,255,255,.7), 0 10px 20px rgba(15,23,42,.04);
}

/* Annales selectors layout: stack and center */
.sp-fieldgrid--annales-selectors{
  margin-top: 6px;
  display: grid;
  grid-template-columns: 1fr;
  gap: 8px;
  align-items: center;
  justify-items: center;
}
.sp-fieldgrid--annales-selectors .sp-field{ width: 100%; max-width: 560px; }

/* Annales actions: keep button compact and centered */
.sp-panel--annales .sp-actions{
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 16px;
  flex-wrap: wrap;
}
.sp-panel--annales .sp-actions .sp-btn--annales{ width: min(320px, 100%); border-radius: 999px; }
.sp-panel--annales .sp-actions [data-sp-annales-hint]{ margin: 0; }

/* Center Annales actions and keep button compact */
body.sp-theme-annales .sp-panel--annales .sp-actions{ justify-content: center; }
body.sp-theme-annales .sp-panel--annales .sp-btn--annales{
  width: min(360px, 100%);
  height: 34px;
  min-height: 34px;
  line-height: 34px;
  padding: 0 18px;
  border-radius: 999px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
}

/* Breadcrumb color in annales */
body.sp-theme-annales .sp-breadcrumb__link{ color: var(--sp-annales-ink); }


/* Ensure HTML [hidden] always wins (prevents annales extrait-only controls from showing in mode Annale) */
[hidden]{ display: none !important; }

/* --- Cours & Méthodes (v1) --- */

.sp-list{list-style:none;margin:0;padding:0}
.sp-list__item{border-top:1px solid rgba(255,255,255,.08)}
.sp-list__item:first-child{border-top:0}
.sp-list__link{display:block;padding:12px 14px;text-decoration:none;color:inherit}
.sp-list__link:hover{background:rgba(255,255,255,.04)}
.sp-list__title{font-weight:700;line-height:1.25;margin-bottom:6px}
.sp-list__meta{display:flex;gap:8px;flex-wrap:wrap;opacity:.9}

.sp-pill{display:inline-flex;align-items:center;gap:6px;padding:4px 12px;border-radius:999px;font-size:12px;line-height:1.4;background:rgba(255,255,255,.92);border:1px solid rgba(15,23,42,.10);color:rgba(15,23,42,.80)}
.sp-pill--muted{opacity:.75}
.sp-pill--btn{cursor:pointer}
.sp-pill--btn.is-active{background:color-mix(in srgb, var(--sp-cours) 14%, white);border-color:color-mix(in srgb, var(--sp-cours) 28%, white);color:var(--sp-cours-ink)}

.sp-container--wide{max-width:1240px}

.sp-course-layout{display:grid;grid-template-columns:320px minmax(0,1fr);gap:18px;align-items:start}
@media (max-width: 980px){
  .sp-course-layout{grid-template-columns:1fr}
}

.sp-course-nav{position:sticky;top:86px}
.sp-course-nav .sp-panel--tight{padding:12px}
.sp-course-nav__all{margin-bottom:10px;display:flex;flex-wrap:wrap;gap:8px}
.sp-course-nav__h1{font-weight:800;margin-top:10px;margin-bottom:8px}
.sp-course-nav__h1:first-child{margin-top:0}
.sp-course-nav__h1link{display:block;font-weight:850;font-size:14px;line-height:1.3;margin-top:10px;margin-bottom:8px;color:rgba(15,23,42,.92);text-decoration:none;padding:6px 10px;border-radius:12px;border:1px solid transparent}
.sp-course-nav__h1link:hover{background:rgba(15,23,42,.03);border-color:rgba(15,23,42,.06)}
.sp-course-nav__h1link.is-active{background:color-mix(in srgb, var(--sp-cours) 12%, white);border-color:color-mix(in srgb, var(--sp-cours) 20%, white);color:var(--sp-cours-ink)}
.sp-course-nav__list{list-style:none;margin:0 0 10px 0;padding:0}
.sp-course-nav__item{margin:0}
.sp-course-nav__link{display:block;font-size:13px;line-height:1.35;padding:6px 10px;border-radius:12px;text-decoration:none;color:rgba(15,23,42,.78);border:1px solid transparent}
.sp-course-nav__link:hover{background:rgba(15,23,42,.03);border-color:rgba(15,23,42,.06)}
.sp-course-nav__link.is-active{background:color-mix(in srgb, var(--sp-cours) 10%, white);border-color:color-mix(in srgb, var(--sp-cours) 20%, white);color:var(--sp-cours-ink);font-weight:750}

.sp-course-meta{margin-bottom:14px}
.sp-course-white{background:#fff;border:1px solid rgba(15,23,42,.08);border-radius:18px;padding:16px;box-shadow:0 18px 42px rgba(15,23,42,.06)}
.sp-course-contentcard{background:color-mix(in srgb, var(--sp-cours) 6%, white);border:1px solid rgba(15,23,42,.08);border-radius:18px;padding:12px;box-shadow:0 18px 42px rgba(15,23,42,.06)}
.sp-course-scroll{max-height:calc(100vh - 210px);overflow:auto;padding:4px 4px 0 4px}
@media (max-width: 980px){.sp-course-scroll{max-height:unset;overflow:visible;padding:0}}

.sp-course-chunk{background:#fff;border:1px solid rgba(15,23,42,.08);border-radius:16px;padding:16px;margin-bottom:14px}
.sp-course-label{display:inline-flex;align-items:center;gap:8px;padding:6px 10px;border-radius:999px;font-weight:750;font-size:12px;letter-spacing:.01em;color:var(--sp-cours-ink);background:color-mix(in srgb, var(--sp-cours) 14%, white);border:1px solid color-mix(in srgb, var(--sp-cours) 22%, white);margin-bottom:14px}
.sp-course-chunk__footer{display:flex;justify-content:flex-end;margin-top:12px}
.sp-course-chunk__actions{display:flex;gap:8px;flex-wrap:wrap}
.sp-course-chunk__body{color:var(--sp-text-primary);font-size:15px;line-height:1.6}
.sp-course-chunk__body h1{font-size:31px;line-height:1.15;margin:0 0 10px 0}
.sp-course-chunk__body h2{font-size:24px;line-height:1.2;margin:14px 0 10px 0}
.sp-course-chunk__body h3{font-size:18px;line-height:1.25;margin:14px 0 10px 0}
.sp-course-chunk__body h4{font-size:15px;line-height:1.3;margin:12px 0 8px 0}
.sp-course-chunk__body h1,.sp-course-chunk__body h2,.sp-course-chunk__body h3{letter-spacing:-.01em}

/* Make the course content breathe a bit (your HTML chunks often have dense blocks). */
.sp-course-chunk__body p{line-height:1.6;margin:0 0 1em 0}
.sp-course-chunk__body h1,.sp-course-chunk__body h2,.sp-course-chunk__body h3,.sp-course-chunk__body h4{color:var(--sp-text-primary)}
.sp-course-chunk__body a{color:var(--sp-link)}
.sp-course-chunk__body .MathJax,.sp-course-chunk__body mjx-container{font-size:.94em !important}
.sp-course-chunk__body .MathJax_Display,.sp-course-chunk__body mjx-container[display="true"]{margin:.8em 0 !important}

/* Actions: compact, aligned right */
.sp-course-chunk__actions{padding:6px 8px;border-radius:12px;background:rgba(15,23,42,.02);border:1px solid rgba(15,23,42,.06)}

.sp-course-solution{margin-top:14px;border:1px dashed color-mix(in srgb, var(--sp-cours) 26%, white);border-radius:14px;background:color-mix(in srgb, var(--sp-cours) 8%, white);padding:10px}
.sp-course-solution > summary{cursor:pointer;font-weight:800;color:var(--sp-cours-ink);list-style:none}
.sp-course-solution > summary::-webkit-details-marker{display:none}
.sp-course-solution__body{margin-top:12px}


/* ===== Comprendre → Méthodes (simple cards) ===== */
.sp-h2{
  font-size: 18px;
  margin: 18px 0 10px;
}
.sp-grid{display:grid; gap:14px;}
.sp-grid--cards{grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));}

/* Generic card grid (used by Annales results list) */
.sp-cardgrid{display:grid; gap:16px;}
.sp-cardgrid--2{grid-template-columns:1fr;}
@media (min-width: 980px){
  .sp-cardgrid--2{grid-template-columns:repeat(2, minmax(0, 1fr));}
}

.sp-cardmini{
  display:block;
  border:1px solid rgba(17,24,39,.08);
  background:#fff;
  border-radius:16px;
  padding:14px 14px;
  text-decoration:none;
  transition:transform .08s ease, box-shadow .08s ease, border-color .08s ease;
}
.sp-cardmini:hover{transform:translateY(-1px); box-shadow:0 6px 18px rgba(17,24,39,.06); border-color:rgba(17,24,39,.14);}

.sp-cardmini--amber{
  background: rgba(245, 158, 11, .06);
  border-color: rgba(245, 158, 11, .18);
}

/* Annales */
.sp-cardmini--annales{
  background: rgba(239, 68, 68, .06);
  border-color: rgba(239, 68, 68, .18);
}

.sp-cardmini__top{display:flex; align-items:flex-start; justify-content:space-between; gap:10px;}
.sp-cardmini__title{font-weight:800; color:#111827; line-height:1.15;}
.sp-cardmini__exnum{margin-top:6px; color:#374151; font-size:13px; line-height:1.35;}
.sp-cardmini__exnum strong{font-weight:800; color:#111827;}
.sp-cardmini__lines{margin-top:8px; color:#374151; font-size:13px; line-height:1.45;}
.sp-cardmini__lines > div{margin-top:2px;}
.sp-cardmini__lines strong{font-weight:800; color:#111827;}
.sp-cardmini__meta{display:flex; flex-wrap:wrap; gap:6px; justify-content:flex-end;}
.sp-cardmini__sub{margin-top:10px; color:#374151; font-size:14px; line-height:1.45;}

.sp-cardmini__badge{
  display:inline-flex;
  align-items:center;
  padding:4px 10px;
  border-radius:999px;
  font-size:12px;
  font-weight:800;
  border:1px solid rgba(17,24,39,.10);
  background:rgba(255,255,255,.70);
  color:#111827;
}

.sp-cardmini__icons{display:flex; align-items:center; gap:10px; font-size:16px; line-height:1;}
.sp-scale{display:inline-flex; align-items:center; gap:4px;}
.sp-scale__icon{display:inline-flex;}
.sp-scale__icon--dull{opacity:.22; filter:saturate(.5);}

/* callouts + details used in methods */
.sp-callout{border:1px solid rgba(17,24,39,.08); background:#fff; border-radius:14px; padding:12px; margin:12px 0;}
.sp-callout--amber{border-color: rgba(245, 158, 11, .20); background: rgba(245, 158, 11, .06);}
.sp-callout__label{font-weight:800; font-size:12px; letter-spacing:.02em; color:#92400e; margin-bottom:6px;}
.sp-callout__content{color:#111827;}

.sp-details{border:1px solid rgba(17,24,39,.08); border-radius:14px; background:#fff; margin:12px 0; overflow:hidden;}
.sp-details summary{cursor:pointer; padding:12px 14px; font-weight:800;}
.sp-details__content{padding:0 14px 14px;}
.sp-details--tint{background: rgba(245, 158, 11, .04); border-color: rgba(245, 158, 11, .14);}


/* --- Comprendre (cours/méthodes) additions --- */
.sp-grid--2{display:grid;grid-template-columns:320px 1fr;gap:18px;}
@media (max-width: 960px){.sp-grid--2{grid-template-columns:1fr;}}
.sp-card{background:#fff;border:1px solid rgba(17,24,39,.08);border-radius:18px;box-shadow:0 10px 30px rgba(17,24,39,.04);}
.sp-card--soft{background:rgba(245,158,11,.06);}
.sp-card--sticky{position:sticky;top:18px;align-self:start;}
.sp-card-h{padding:16px 16px 10px;}
.sp-card-title{font-weight:800;color:#111827;font-size:15px;margin-bottom:2px;}
.sp-card-subtitle{color:rgba(17,24,39,.65);font-size:13px;}
.sp-nav{padding:6px 10px 14px;}
.sp-nav-item{display:block;padding:10px 10px;border-radius:14px;text-decoration:none;border:1px solid transparent;}
.sp-nav-item:hover{background:rgba(245,158,11,.10);}
.sp-nav-item.is-active{background:rgba(245,158,11,.14);border-color:rgba(245,158,11,.35);}
.sp-nav-kicker{font-size:11px;color:rgba(17,24,39,.55);text-transform:uppercase;letter-spacing:.03em;margin-bottom:3px;}
.sp-nav-title{font-weight:750;color:#111827;line-height:1.2;font-size:14px;}
.sp-card--meta{padding:16px;margin-bottom:14px;}
.sp-card--amber{background:rgba(245,158,11,.08);border-color:rgba(245,158,11,.25);}
.sp-meta-row{display:flex;gap:12px;align-items:flex-start;justify-content:space-between;}
.sp-meta-kicker{font-size:12px;color:rgba(17,24,39,.6);font-weight:700;}
.sp-meta-line{font-weight:800;color:#111827;margin-top:4px;}
.sp-badge{display:inline-flex;align-items:center;gap:6px;padding:6px 10px;border-radius:999px;background:rgba(255,255,255,.7);border:1px solid rgba(17,24,39,.08);font-size:12px;font-weight:700;color:rgba(17,24,39,.8);}
.sp-meta-right{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end;}
.sp-meta-content{margin-top:10px;color:#111827;}
.sp-card--content{padding:16px;}
.sp-card--tinted{background:rgba(17,24,39,.02);}
.sp-step-head{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin-bottom:10px;}
.sp-h2{font-size:22px;line-height:1.2;margin:0;font-weight:900;color:#111827;}
.sp-block{margin-top:12px;padding:14px;border-radius:16px;border:1px solid rgba(17,24,39,.08);background:#fff;}
.sp-block-badge{display:inline-flex;align-items:center;padding:4px 10px;border-radius:999px;background:rgba(245,158,11,.14);border:1px solid rgba(245,158,11,.30);font-size:12px;font-weight:800;color:rgba(120,53,15,.95);margin-bottom:10px;}
.sp-block-body{color:#111827;}
.sp-details{margin-top:12px;border-radius:16px;border:1px solid rgba(17,24,39,.08);background:#fff;overflow:hidden;}
.sp-details>summary{cursor:pointer;list-style:none;padding:12px 14px;font-weight:800;color:#111827;background:rgba(245,158,11,.08);}
.sp-details>summary::-webkit-details-marker{display:none;}
.sp-details-body{padding:14px;color:#111827;}

/* --- Train: mini collections grid (grouped by theme) --- */
.sp-train-groups{display:flex;flex-direction:column;gap:18px;}
.sp-train-group{background:rgba(59,130,246,.06);border:1px solid rgba(59,130,246,.14);border-radius:18px;padding:14px;}
.sp-train-group__title{font-weight:900;color:#111827;font-size:15px;margin:0 0 10px;display:flex;align-items:center;gap:10px;}
.sp-train-group__count{font-size:12px;font-weight:800;color:rgba(17,24,39,.65);background:#fff;border:1px solid rgba(17,24,39,.10);border-radius:999px;padding:4px 10px;}
.sp-mini-grid{display:grid;grid-template-columns:repeat(4, minmax(0, 1fr));gap:10px;}
@media (max-width: 1100px){.sp-mini-grid{grid-template-columns:repeat(3, minmax(0, 1fr));}}
@media (max-width: 900px){.sp-mini-grid{grid-template-columns:repeat(2, minmax(0, 1fr));}}
@media (max-width: 640px){.sp-mini-grid{grid-template-columns:repeat(2, minmax(0, 1fr));}}

.sp-mini-card{display:flex;flex-direction:column;text-decoration:none;background:rgba(59,130,246,.06);border:1px solid rgba(59,130,246,.18);border-radius:16px;padding:10px;box-shadow:0 10px 25px rgba(17,24,39,.03);transition:transform .08s ease, box-shadow .08s ease, border-color .08s ease;min-height:104px;}
.sp-mini-card--collection{min-height:124px;}
.sp-mini-card--collection-lg{min-height:148px;padding:14px;}
.sp-mini-card:hover{transform:translateY(-1px);box-shadow:0 16px 40px rgba(17,24,39,.05);border-color:rgba(59,130,246,.32);}
.sp-mini-card__title{font-weight:900;color:#111827;font-size:13px;line-height:1.2;margin:0 0 8px;}
.sp-mini-card__meta{display:flex;gap:6px;flex-wrap:wrap;margin-top:auto;padding-top:8px;}
.sp-mini-chip{display:inline-flex;align-items:center;padding:4px 10px;border-radius:999px;font-size:11px;font-weight:600;border:1px solid rgba(59,130,246,.26);background:rgba(59,130,246,.14);color:rgba(30,64,175,.98);}
.sp-mini-chip--blue{background:rgba(37,99,235,.86);border-color:rgba(37,99,235,.92);color:#fff;font-weight:600;}
.sp-mini-chip--soft{background:rgba(17,24,39,.04);color:rgba(17,24,39,.70);}

/* --- Train collections page: make cards compact + nicer --- */
[data-page="train_collections"] .sp-grid--cards{grid-template-columns:repeat(4, minmax(0,1fr));}
@media (max-width: 1100px){[data-page="train_collections"] .sp-grid--cards{grid-template-columns:repeat(3, minmax(0,1fr));}}
@media (max-width: 900px){[data-page="train_collections"] .sp-grid--cards{grid-template-columns:repeat(2, minmax(0,1fr));}}
@media (max-width: 640px){[data-page="train_collections"] .sp-grid--cards{grid-template-columns:1fr;}}

[data-page="train_collections"] .sp-card.sp-card--mini{background:rgba(59,130,246,.06);border-color:rgba(59,130,246,.18);}
[data-page="train_collections"] .sp-card.sp-card--mini:hover{border-color:rgba(59,130,246,.32);}

/* Make filters look exactly like /train/: stacked fields */
[data-page="train_collections"] .sp-panel__row{display:flex;flex-direction:column;gap:16px;}

/* ==============================
   Playlist overview (/train/playlist/*/overview)
   ============================== */
.spa6-overview-actions{display:flex;justify-content:center;align-items:center;margin-top:14px;text-align:center;}
.spa6-overview-actions .spa6-btn{margin-left:auto;margin-right:auto;display:inline-flex;}

.spa6-overview-exo-card{position:relative;padding:18px 18px 16px;border-radius:16px;border:1px solid rgba(40,120,255,.12);background:linear-gradient(180deg, rgba(40,120,255,.04), rgba(40,120,255,.012));overflow:hidden;}
.spa6-overview-exo-card::before{content:"";position:absolute;left:-40px;bottom:-50px;width:220px;height:140px;background:radial-gradient(closest-side, rgba(40,120,255,.10), rgba(40,120,255,0));transform:rotate(-8deg);pointer-events:none;}
.spa6-overview-exo-card::after{content:"";position:absolute;right:-60px;top:-70px;width:260px;height:170px;background:radial-gradient(closest-side, rgba(40,120,255,.075), rgba(40,120,255,0));transform:rotate(10deg);pointer-events:none;}

.spa6-overview-exo-card .spa6-exo-num{font-weight:900;color:#0b2a62;font-size:16px;margin:0 0 10px;position:relative;z-index:1;}
.spa6-overview-exo-card .spa6-exo-title{font-size:14px;line-height:1.35;color:#1f2b3a;min-height:20px;position:relative;z-index:1;}
.spa6-overview-exo-card .spa6-exo-title--empty{min-height:20px;}
.spa6-overview-exo-card .spa6-exo-meta{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-top:14px;position:relative;z-index:1;}

.spa6-flames{display:inline-flex;gap:3px;font-size:16px;line-height:1;}
.spa6-flame{opacity:.20;filter:saturate(.95);} 
.spa6-flame.is-on{opacity:1;}

.spa6-duration{display:inline-flex;align-items:center;gap:6px;font-size:13px;color:#0b2a62;font-weight:800;white-space:nowrap;}
.spa6-chrono{font-size:14px;}

@media (max-width: 640px){
  .spa6-overview-exo-card{padding:16px;}
  .spa6-overview-exo-card .spa6-exo-meta{margin-top:12px;}
}


/* === TRAIN cards premium soft blue override === */
.spa6-collection-card {
  background:
    linear-gradient(180deg, #eef4ff 0%, #e3ecff 100%),
    radial-gradient(1200px 400px at -10% -20%, rgba(255,255,255,0.6), transparent 60%);
  border: 1px solid rgba(120, 150, 255, 0.25);
  border-radius: 14px;
  box-shadow:
    0 6px 18px rgba(40, 80, 180, 0.08),
    inset 0 1px 0 rgba(255,255,255,0.6);
  transition: all 0.18s ease;
}

.spa6-collection-card:hover {
  transform: translateY(-2px);
  box-shadow:
    0 10px 28px rgba(40, 80, 180, 0.14),
    inset 0 1px 0 rgba(255,255,255,0.7);
  border-color: rgba(120, 150, 255, 0.45);
}


/* === TRAIN collections cards (actual markup uses .sp-mini-card / .sp-collection-card) ===
   Scoped to the collections grid so we don't affect other mini-cards. */
.sp-collections .sp-mini-card,
.sp-collections .sp-collection-card{
  background:
    linear-gradient(180deg, rgba(238,244,255,.92) 0%, rgba(227,236,255,.92) 100%),
    radial-gradient(1200px 420px at -10% -20%, rgba(255,255,255,.75), transparent 60%);
  border: 1px solid rgba(120,150,255,.22);
  box-shadow:
    0 8px 22px rgba(40,80,180,.08),
    inset 0 1px 0 rgba(255,255,255,.65);
}

.sp-collections .sp-mini-card:hover,
.sp-collections .sp-collection-card:hover{
  transform: translateY(-2px);
  box-shadow:
    0 12px 30px rgba(40,80,180,.13),
    inset 0 1px 0 rgba(255,255,255,.75);
  border-color: rgba(120,150,255,.40);
}


/* === TRAIN collections (group + cards) : softer premium look (override) === */
.sp-collections .sp-train-group{
  background:
    linear-gradient(180deg, rgba(248,250,255,1) 0%, rgba(241,246,255,1) 100%) !important;
  border-color: rgba(59,130,246,.10) !important;
  box-shadow: 0 10px 26px rgba(17,24,39,.03) !important;
}

.sp-collections .sp-mini-card.sp-mini-card--collection{
  background:
    linear-gradient(180deg, rgba(252,253,255,1) 0%, rgba(243,248,255,1) 100%),
    radial-gradient(900px 320px at -10% -20%, rgba(255,255,255,.75), transparent 60%) !important;
  border-color: rgba(59,130,246,.14) !important;
  box-shadow:
    0 8px 20px rgba(17,24,39,.04),
    inset 0 1px 0 rgba(255,255,255,.8) !important;
}

.sp-collections .sp-mini-card.sp-mini-card--collection:hover{
  border-color: rgba(59,130,246,.28) !important;
  box-shadow:
    0 14px 34px rgba(17,24,39,.06),
    inset 0 1px 0 rgba(255,255,255,.85) !important;
}



/* === TRAIN (route /train/) : grouped collections use .sp-train-groups + .sp-mini-card === */
.sp-train-groups .sp-train-group{
  background:
    linear-gradient(180deg, rgba(248,250,255,1) 0%, rgba(241,246,255,1) 100%) !important;
  border-color: rgba(59,130,246,.10) !important;
  box-shadow: 0 10px 26px rgba(17,24,39,.03) !important;
}

.sp-train-groups .sp-mini-card{
  background:
    linear-gradient(180deg, rgba(252,253,255,1) 0%, rgba(243,248,255,1) 100%),
    radial-gradient(900px 320px at -10% -20%, rgba(255,255,255,.75), transparent 60%) !important;
  border-color: rgba(59,130,246,.14) !important;
  box-shadow:
    0 8px 20px rgba(17,24,39,.04),
    inset 0 1px 0 rgba(255,255,255,.8) !important;
}

.sp-train-groups .sp-mini-card:hover{
  transform: translateY(-2px) !important;
  border-color: rgba(59,130,246,.28) !important;
  box-shadow:
    0 14px 34px rgba(17,24,39,.06),
    inset 0 1px 0 rgba(255,255,255,.85) !important;
}



/* === TRAIN playlist page: soften blue panels (less flashy) === */
.spa6-app[data-page="train-playlist"]{
  --spa6-panel-bg: #f7f8fc; /* softer neutral */
  --spa6-panel-overlay: rgba(255,255,255,0.55);
}

/* Left list item spacing + richer layout */
.spa6-item{ padding:12px 14px; }
.spa6-item.is-active{ padding:14px 16px; }
.spa6-item__subtitle{
  margin-top:6px;
  font-size:12px;
  font-weight:700;
  color: rgba(15,23,42,.62);
  line-height:1.25;
}
.spa6-item__meta{
  display:flex;
  align-items:center;
  gap:10px;
  margin-top:10px;
}

/* Right header title (2 lines) */
.spa6-right__title-main{ font-weight:900; }

.spa6-right__debug-id{
  margin-top:4px;
  font-size:12px;
  font-weight:700;
  color: rgba(15,23,42,.52);
  white-space:normal;
  overflow-wrap:anywhere;
}

.spa6-right__title-sub{
  margin-top:2px;
  font-size:12px;
  font-weight:700;
  color: rgba(15,23,42,.62);
}


/* Annales: perceived difficulty slider follows the red universe color. */
body.sp-theme-annales .spa6-rating__range:not(.is-empty){
  accent-color: var(--sp-annales-ink);
}

/* Rating slider: when empty, show neutral track (no "blue=5" feel) */
.spa6-rating__range.is-empty{
  accent-color: rgba(148,163,184,.55);
}
.spa6-rating__range.is-empty::-webkit-slider-runnable-track{
  background: rgba(148,163,184,.35);
  height:4px;
  border-radius:999px;
}
.spa6-rating__range.is-empty::-webkit-slider-thumb{
  -webkit-appearance:none;
  appearance:none;
}
.spa6-rating__range.is-empty::-webkit-slider-thumb{
  margin-top:-7px;
  width:18px;
  height:18px;
  border-radius:999px;
  background: #fff;
  border:2px solid rgba(148,163,184,.75);
}
.spa6-rating__range.is-empty::-moz-range-track{
  background: rgba(148,163,184,.35);
  height:4px;
  border-radius:999px;
}
.spa6-rating__range.is-empty::-moz-range-progress{
  background: rgba(148,163,184,.35);
  height:4px;
  border-radius:999px;
}
.spa6-rating__range.is-empty::-moz-range-thumb{
  width:18px;
  height:18px;
  border-radius:999px;
  background: #fff;
  border:2px solid rgba(148,163,184,.75);
}



/* === Playlist panels: slightly stronger soft-blue (left column + right header + corrige) === */
[data-page="train-playlist"]{
  --spa6-panel-overlay: rgba(255,255,255,0.10);
  --spa6-panel-bg:
    linear-gradient(180deg, rgba(226,239,255,1) 0%, rgba(214,232,255,1) 100%),
    radial-gradient(900px 320px at -10% -20%, rgba(255,255,255,.85), transparent 60%);
}

/* Corrigé container often uses .spa6-corrige / .spa6-corrige-box; ensure it's tinted too */
[data-page="train-playlist"] .spa6-corrige,
[data-page="train-playlist"] .spa6-corrige-box,
[data-page="train-playlist"] .spa6-right__corrige{
  background:
    linear-gradient(180deg, rgba(226,239,255,1) 0%, rgba(214,232,255,1) 100%),
    radial-gradient(900px 320px at -10% -20%, rgba(255,255,255,.85), transparent 60%) !important;
  border-color: rgba(59,130,246,.16) !important;
}






/* === Playlist panels (train-playlist): unified soft blue-gray, no "papier toilette" ===
   Strategy:
   - Set ONE background on the panel container(s)
   - Make internal head/body backgrounds transparent to avoid mismatched tones
*/
[data-page="train-playlist"] .spa6-left{
  background:
    linear-gradient(180deg, rgba(244,247,255,1) 0%, rgba(236,242,252,1) 100%),
    radial-gradient(900px 360px at 10% 0%, rgba(255,255,255,.65), transparent 60%) !important;
  border-color: rgba(15,23,42,.10) !important;
}

/* Remove seams: let the left container background show through */
[data-page="train-playlist"] .spa6-left__head,
[data-page="train-playlist"] .spa6-left__body{
  background: transparent !important;
}

/* Right sticky header uses the SAME background as left (consistent) */
[data-page="train-playlist"] .spa6-right__sticky{
  background:
    linear-gradient(180deg, rgba(244,247,255,1) 0%, rgba(236,242,252,1) 100%),
    radial-gradient(900px 360px at 10% 0%, rgba(255,255,255,.65), transparent 60%) !important;
  border-color: rgba(15,23,42,.10) !important;
}

/* Corrigé block: slight tint, but keep it closer to white to preserve readability */
[data-page="train-playlist"] .spa6-right__corrige{
  background:
    linear-gradient(180deg, rgba(248,250,255,1) 0%, rgba(241,246,253,1) 100%) !important;
  border-top-color: rgba(15,23,42,.08) !important;
}









/* === Home/Dashboard cards: very clean pastel (no corner glow) ===
   - Pastel surface based on accent soft
   - Subtle bottom wave only (keeps it modern and clean)
*/
.sp-card{
  background:
    linear-gradient(180deg,
      color-mix(in srgb, var(--sp-accent-soft) 92%, #ffffff) 0%,
      #ffffff 78%);
  border-color: color-mix(in srgb, var(--sp-accent) 14%, var(--sp-border-soft));
  box-shadow:
    0 8px 24px rgba(15,23,42,.05);
}

/* remove any previous pseudo decorations */
.sp-card::before{
  content:none !important;
}

/* gentle bottom wave */
.sp-card::after{
  content:"";
  position:absolute;
  left:-25%;
  right:-25%;
  bottom:-55%;
  height: 240px;
  background:
    linear-gradient(135deg,
      transparent 0%,
      color-mix(in srgb, var(--sp-accent) 10%, transparent) 42%,
      transparent 72%);
  filter: blur(7px);
  opacity: .45;
  pointer-events:none;
}

.sp-card:hover{
  border-color: color-mix(in srgb, var(--sp-accent) 22%, var(--sp-border-strong));
  box-shadow:
    0 10px 30px rgba(15,23,42,.07);
}

/* Empty state */
.sp-empty{
  border:1px dashed rgba(15,23,42,.18);
  border-radius:16px;
  padding:18px;
  background:rgba(255,255,255,.7);
}
.sp-empty__title{
  font-weight:800;
  margin-bottom:6px;
}
.sp-empty__text{
  color:rgba(15,23,42,.72);
  line-height:1.35;
}


/* === Annales UI tweaks (mode cards + result cards + item padding) === */

/* Mode cards on Annales page: keep layout but use bordeaux for title */
body.sp-theme-annales .sp-mode__title{
  color: var(--sp-annales);
}

/* Slightly more discreet description on Annales mode cards */
body.sp-theme-annales .sp-mode__desc{
  color: #4b5563;
  font-weight: 550;
}

/* Annales results cards: softer modern red background (subtle gradient/brush) */
.sp-cardmini--annales{
  background:
    radial-gradient(900px 260px at 10% 0%, rgba(139,29,61,.10), transparent 60%),
    radial-gradient(700px 220px at 110% 30%, rgba(239,68,68,.08), transparent 55%),
    linear-gradient(180deg, rgba(253,233,239,.70) 0%, rgba(255,255,255,.92) 100%);
  border-color: rgba(139,29,61,.20);
}
.sp-cardmini--annales:hover{
  border-color: rgba(139,29,61,.32);
  box-shadow: 0 14px 36px rgba(139,29,61,.10);
}

/* Annale item page: more horizontal breathing room in enoncé & corrigé */
body.sp-page--annales-item .spa6-scrollbox--enonce,
body.sp-page--annales-item .spa6-scrollbox--corrige{
  padding-left: 28px;
  padding-right: 28px;
}

/* Active question frame: handled by the stable li-based pill rules below. */


/* ======================================================================
   DASHBOARD — ULTRA PREMIUM (neutre + data-first)
   Objectif : le dashboard reste gris (hub), les couleurs sont réservées
   aux graphiques (donnée) et aux micro-accents.
   ====================================================================== */

body.sp-page--dashboard,
.sp-page--dashboard{
  background:
    radial-gradient(900px 320px at 12% 0%, rgba(15,23,42,.06), transparent 60%),
    radial-gradient(720px 280px at 95% 15%, rgba(15,23,42,.04), transparent 55%),
    linear-gradient(180deg, #f7f8fa 0%, #eef1f5 100%) !important;
}

/* Pagehead kicker as a premium badge */
.sp-page--dashboard .sp-dashboard-badge{
  display:inline-flex;
  align-items:center;
  gap:8px;
  padding:7px 12px;
  border-radius:999px;
  background: rgba(255,255,255,.72);
  border: 1px solid rgba(148,163,184,.45);
  color: rgba(15,23,42,.70);
  font-weight: 750;
  letter-spacing: .01em;
  box-shadow: 0 10px 26px rgba(15,23,42,.06);
}

/* Base card polish (dashboard only) */
.sp-page--dashboard .sp-dash2__card,
.sp-page--dashboard .sp-dash2__navcard{
  border-radius: 18px;
  border: 1px solid rgba(148,163,184,.35);
  box-shadow: 0 14px 40px rgba(15,23,42,.07);
  backdrop-filter: saturate(120%) blur(8px);
}

.sp-page--dashboard .sp-dash2__card:hover,
.sp-page--dashboard .sp-dash2__navcard:hover{
  transform: translateY(-2px);
  box-shadow: 0 20px 56px rgba(15,23,42,.10);
}

/* Navigation cards: neutral (no universe colors) */
.sp-page--dashboard .sp-nav-card{
  background:
    radial-gradient(900px 280px at 10% 0%, rgba(15,23,42,.03), transparent 55%),
    linear-gradient(180deg, rgba(255,255,255,.92) 0%, rgba(255,255,255,.82) 100%) !important;
}

.sp-page--dashboard .sp-nav-card .sp-card__badge{
  background: rgba(255,255,255,.70);
  border: 1px solid rgba(148,163,184,.40);
  color: rgba(15,23,42,.66);
}

/* Top row: three neutral tints (cold / warm / neutral) */
.sp-page--dashboard .sp-card-suggestion{
  background:
    radial-gradient(900px 340px at 10% 0%, rgba(37,99,235,.07), transparent 60%),
    linear-gradient(180deg, rgba(241,244,248,.92) 0%, rgba(255,255,255,.84) 100%) !important;
}

.sp-page--dashboard .sp-card-redo{
  background:
    radial-gradient(900px 340px at 10% 0%, rgba(245,158,11,.08), transparent 60%),
    linear-gradient(180deg, rgba(247,243,238,.92) 0%, rgba(255,255,255,.84) 100%) !important;
}

.sp-page--dashboard .sp-card-plan{
  background:
    radial-gradient(900px 340px at 10% 0%, rgba(15,23,42,.05), transparent 60%),
    linear-gradient(180deg, rgba(243,244,246,.92) 0%, rgba(255,255,255,.84) 100%) !important;
}

/* Make graph cards the focal point */
.sp-page--dashboard .sp-graph-card{
  background:
    radial-gradient(1100px 380px at 10% 0%, rgba(99,102,241,.06), transparent 62%),
    linear-gradient(180deg, rgba(255,255,255,.96) 0%, rgba(255,255,255,.88) 100%) !important;
  border-color: rgba(148,163,184,.40);
  box-shadow: 0 18px 60px rgba(15,23,42,.10);
}

.sp-page--dashboard .sp-graph-card:hover{
  box-shadow: 0 26px 78px rgba(15,23,42,.14);
}

/* Data-first: boost the charts slightly (keep tasteful) */
.sp-page--dashboard .sp-dash2__donut,
.sp-page--dashboard .sp-dash2__bars{
  filter: saturate(1.12) contrast(1.06);
}

/* Text hierarchy tighten */
.sp-page--dashboard .sp-card__title{
  letter-spacing: -.01em;
}

.sp-page--dashboard .sp-card__body{
  color: rgba(15,23,42,.72);
}

/* Buttons: premium feel (still neutral on dashboard) */
.sp-page--dashboard .sp-btn{
  box-shadow: 0 10px 26px rgba(15,23,42,.08);
}

.sp-page--dashboard .sp-btn.sp-btn--ghost{
  background: rgba(255,255,255,.70);
}



/* =========================================================
   DASHBOARD — Ultra premium (neutral hub)
   - No badges
   - Grey premium background
   - Top 3 cards: cold / warm / neutral tints
   - Bottom nav: light grey, lively hover
   ========================================================= */

/* Remove decorative badges everywhere (keeps UI clean, data-first) */
.sp-badge,
.sp-pill,
.sp-card__badge,
.sp-block-badge,
.sp-pagehead__kicker {
  display: none !important;
}

/* Dashboard background (neutral grey, no "train blue") */
body.sp-page--dashboard {
  background: linear-gradient(180deg, #f7f8fa 0%, #eef1f5 100%) !important;
}

/* Graph cards: keep them as the visual focus */
body.sp-page--dashboard .sp-dash2__graphs .sp-card {
  background: #ffffff !important;
  border: 1px solid #e3e7ee !important;
  box-shadow: 0 16px 40px rgba(0,0,0,0.07) !important;
}

/* Top coach cards: subtle neutral differentiation */
body.sp-page--dashboard .sp-card-suggestion {
  background: #f2f5f9 !important; /* cold very light */
  border: 1px solid #e1e7ef !important;
}

body.sp-page--dashboard .sp-card-redo {
  background: #f8f4ee !important; /* warm soft */
  border: 1px solid #e9dfd2 !important;
}

body.sp-page--dashboard .sp-card-plan {
  background: #f4f5f7 !important; /* neutral */
  border: 1px solid #e3e5e8 !important;
}

/* Bottom navigation cards: slightly grey (less "clinical"), lively hover */
body.sp-page--dashboard .sp-dash2__nav .sp-card {
  background: #f7f8fa !important;
  border: 1px solid #e6e9ef !important;
  box-shadow: 0 6px 18px rgba(0,0,0,0.04) !important;
  transition: transform .18s ease, box-shadow .18s ease, background .18s ease !important;
}

body.sp-page--dashboard .sp-dash2__nav .sp-card:hover {
  background: #ffffff !important;
  transform: translateY(-2px) !important;
  box-shadow: 0 14px 30px rgba(0,0,0,0.06) !important;
}

/* Optional: slightly tighten header spacing since the kicker/badge is gone */
body.sp-page--dashboard .sp-pagehead {
  padding-top: 6px;
}



/* ===== Dashboard WOW PREMIUM v2 (scoped & overriding existing dashboard styles) ===== */

/* Page background a touch darker (no dark mode) */
body.sp-app-body.sp-page--dashboard{
  background: #eef1f6 !important;
}

/* Subtle premium halo behind the top row */
body.sp-app-body.sp-page--dashboard .sp-dash2__top{
  position: relative;
  z-index: 0;
}
body.sp-app-body.sp-page--dashboard .sp-dash2__top::before{
  content:"";
  position:absolute;
  left:-36px;
  right:-36px;
  top:-56px;
  height:260px;
  background: radial-gradient(800px 260px at 50% -40px, rgba(120,150,255,.18), transparent 65%);
  pointer-events:none;
  z-index:-1;
}

/* Top 3 cards: neutral premium + stronger elevation */
body.sp-app-body.sp-page--dashboard .sp-dash2__top .sp-dash2__card{
  background: #ffffff !important;
  border: 1px solid rgba(15,23,42,.10) !important;
  box-shadow: 0 12px 32px rgba(20,30,60,.08), 0 2px 8px rgba(20,30,60,.04) !important;
  border-radius: 18px !important;
  overflow: hidden;
}

/* Remove the warm beige/orange on redo card */
body.sp-app-body.sp-page--dashboard .sp-card-redo{
  background: #ffffff !important;
}

/* Accent strip (very subtle) */
body.sp-app-body.sp-page--dashboard .sp-dash2__top .sp-dash2__card::after{
  content:"";
  position:absolute;
  left:0; right:0; top:0;
  height:4px;
  background: linear-gradient(90deg, rgba(91,124,255,.85), rgba(122,162,255,.65));
}

/* Bottom nav cards: more “material”, less hospital */
body.sp-app-body.sp-page--dashboard .sp-nav-card{
  background: linear-gradient(180deg, rgba(15,23,42,.035), rgba(255,255,255,1)) !important;
  border: 1px solid rgba(15,23,42,.10) !important;
  box-shadow: 0 6px 18px rgba(20,30,60,.05) !important;
  border-radius: 16px !important;
}
body.sp-app-body.sp-page--dashboard .sp-nav-card:hover{
  transform: translateY(-1px);
  box-shadow: 0 10px 28px rgba(20,30,60,.07) !important;
}

/* Middle chart cards: slightly stronger contrast */
body.sp-app-body.sp-page--dashboard .sp-dash2__main .sp-dash2__card{
  background: linear-gradient(180deg, rgba(255,255,255,1), rgba(255,255,255,1)) !important;
  border: 1px solid rgba(15,23,42,.10) !important;
  box-shadow: 0 8px 22px rgba(20,30,60,.06) !important;
  border-radius: 18px !important;
}

/* Headings: a bit darker for premium readability */
body.sp-app-body.sp-page--dashboard .sp-pagehead__title{
  color:#1f2a44 !important;
}
body.sp-app-body.sp-page--dashboard .sp-pagehead__subtitle{
  color: rgba(31,42,68,.78) !important;
}



/* ===== Added by wow premium patch v3 ===== */

/* === Premium Dashboard Upgrade v3 (A + bg #e6ebf3) === */

/* Page background (slightly darker, premium) */
body.sp-dashboard,
body.sp-page--dashboard,
body.sp-app-body.sp-dashboard {
  background: #e6ebf3 !important;
}

/* Keep the subtle hero halo (top area) */
.sp-dash2__top {
  position: relative;
}
.sp-dash2__top::before {
  content: "";
  position: absolute;
  inset: -90px -40px auto -40px;
  height: 280px;
  background: radial-gradient(
    800px 280px at 50% -60px,
    rgba(120, 150, 255, 0.18),
    transparent 65%
  );
  pointer-events: none;
  z-index: 0;
}

/* Ensure cards sit above the halo */
.sp-dash2__top > * {
  position: relative;
  z-index: 1;
}

/* TOP cards (make them clearly highlighted) */
.sp-dash2__top .sp-dash2__card{
  position: relative;
  overflow: hidden;

  background: linear-gradient(180deg, #ffffff 0%, #f5f7fb 100%) !important;
  border: 1px solid #d6ddea !important;
  border-radius: 16px;

  box-shadow:
    0 16px 40px rgba(20, 30, 60, 0.10),
    0  4px 14px rgba(20, 30, 60, 0.06) !important;

  transform: translateY(-2px);
}

/* Accent bar */
.sp-dash2__top .sp-dash2__card::before{
  content:"";
  position:absolute;
  inset:0 0 auto 0;
  height:5px;
  background: linear-gradient(90deg, #5578ff, #7da6ff);
  opacity: .85;
}

/* Gentle inner glow */
.sp-dash2__top .sp-dash2__card::after{
  content:"";
  position:absolute;
  inset:-40px -40px auto -40px;
  height:140px;
  background: radial-gradient(
    600px 160px at 50% 0,
    rgba(120,150,255,0.18),
    transparent 70%
  );
  pointer-events:none;
}

/* Specifically neutralize the redo (beige) card if it has its own background */
.sp-card-redo,
.sp-dash2__top .sp-card-redo {
  background: linear-gradient(180deg, #ffffff 0%, #f5f7fb 100%) !important;
  border-color: #d6ddea !important;
}

/* Bottom nav cards: richer material, less "hospital" */
.sp-nav-card {
  background: #f1f3f7 !important;
  border: 1px solid #e0e4eb !important;
  border-radius: 14px;
  transition: all .15s ease;
}
.sp-nav-card:hover {
  background: #eef2f8 !important;
  transform: translateY(-1px);
}

/* Headings contrast */
.sp-dashboard h1 { color: #1f2a44; }
.sp-dashboard h2 { color: #2c3553; }

/* =====================
   THEME — TESTER (violet)
===================== */
body.sp-theme-tester{ --sp-link: var(--sp-tester-ink); }

/* Links in tester theme must be violet (default .sp-link is blue for Train) */
body.sp-theme-tester .sp-link{
  color: var(--sp-tester-ink);
}

body.sp-theme-tester .sp-pagehead__kicker{
  color: var(--sp-tester-ink);
  background: color-mix(in srgb, var(--sp-tester) 12%, white);
  border-color: color-mix(in srgb, var(--sp-tester) 18%, white);
}

body.sp-theme-tester .sp-btn--ghost{ color: var(--sp-tester-ink); }

body.sp-theme-tester .sp-panel--tester{
  /* Main wrapper card must be white */
  background: #ffffff;
  border-color: color-mix(in srgb, var(--sp-tester) 18%, rgba(15,23,42,0.10));
}

/* Violet gradient background for evaluation pages */
body.sp-theme-tester .sp-main{
  background:
    radial-gradient(1200px 520px at 10% 0%, rgba(139,92,246,.16), rgba(139,92,246,0) 60%),
    radial-gradient(900px 460px at 90% 10%, rgba(167,139,250,.14), rgba(167,139,250,0) 55%),
    linear-gradient(180deg, rgba(248,247,255,1) 0%, rgba(244,243,255,1) 55%, rgba(243,246,251,1) 100%);
}

/* Tabs variant for Tester (violet indicator) */
body.sp-theme-tester .sp-tabs--tester .sp-tabs__indicator{
  background: linear-gradient(180deg,
    color-mix(in srgb, var(--sp-tester) 22%, white),
    color-mix(in srgb, var(--sp-tester) 16%, white)
  );
  border-color: color-mix(in srgb, var(--sp-tester) 24%, rgba(15,23,42,.12));
  box-shadow: 0 12px 26px rgba(139,92,246,.12);
}
body.sp-theme-tester .sp-tabs--tester .sp-tabs__btn.is-active{
  color: color-mix(in srgb, var(--sp-tester-ink) 92%, #000);
}

/* Mobile: make the theme pill scrollable (like a horizontal carousel)
   On small screens, equal-width grid becomes cramped, so we switch to scroll.
*/
@media (max-width: 680px){
  body.sp-theme-tester .sp-tabs--tester{
    display: flex;
    gap: 8px;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
    padding: 6px;
    scrollbar-width: none;
  }
  body.sp-theme-tester .sp-tabs--tester::-webkit-scrollbar{ display:none; }
  body.sp-theme-tester .sp-tabs--tester .sp-tabs__indicator{ display:none; }
  body.sp-theme-tester .sp-tabs--tester .sp-tabs__btn{
    flex: 0 0 auto;
    height: 40px;
    min-height: 40px;
    line-height: 40px;
    padding: 0 16px;
    font-size: 14px;
    white-space: nowrap;
    border-radius: 999px;
    border: 1px solid rgba(15,23,42,.10) !important;
    background: rgba(255,255,255,.76) !important;
  }
  body.sp-theme-tester .sp-tabs--tester .sp-tabs__btn.is-active{
    border-color: color-mix(in srgb, var(--sp-tester) 26%, rgba(15,23,42,.12)) !important;
    background: color-mix(in srgb, var(--sp-tester) 14%, white) !important;
    box-shadow: 0 14px 30px rgba(139,92,246,.10);
  }
}

/* Difficulty range */
.sp-rangewrap{ display:flex; align-items:center; gap:14px; }
.sp-range{ width:100%; accent-color: var(--sp-tester); }
.sp-rangeval{ min-width: 58px; text-align:right; font-weight: 800; color: var(--sp-text-secondary); }

body.sp-theme-tester .sp-mode:hover{
  border-color: color-mix(in srgb, var(--sp-tester) 28%, transparent);
  box-shadow: 0 24px 52px rgba(139,92,246,.12);
}
body.sp-theme-tester .sp-mode.is-active{
  border-color: color-mix(in srgb, var(--sp-tester) 34%, transparent);
  box-shadow: 0 18px 40px rgba(139,92,246,.10);
}

body.sp-theme-tester .sp-mode__title{ color: color-mix(in srgb, var(--sp-tester-ink) 92%, #000); }
body.sp-theme-tester .sp-mode__go{ color: var(--sp-tester-ink); }
body.sp-theme-tester .sp-mode__badge{
  background: color-mix(in srgb, var(--sp-tester) 14%, white);
  color: color-mix(in srgb, var(--sp-tester-ink) 92%, #000);
  border-color: color-mix(in srgb, var(--sp-tester) 22%, white);
}

body.sp-theme-tester .sp-cta--tester{
  background: color-mix(in srgb, var(--sp-tester) 9%, white);
  border-color: color-mix(in srgb, var(--sp-tester) 18%, white);
  color: color-mix(in srgb, var(--sp-tester-ink) 80%, #000);
}

body.sp-theme-tester .sp-btn--tester{
  background: linear-gradient(180deg,
    color-mix(in srgb, var(--sp-tester) 30%, white),
    color-mix(in srgb, var(--sp-tester) 22%, white)
  );
  border-color: color-mix(in srgb, var(--sp-tester) 28%, rgba(15,23,42,0.10));
  color: color-mix(in srgb, var(--sp-tester-ink) 92%, #000);
}
body.sp-theme-tester .sp-btn--tester:hover{
  filter: brightness(0.99);
  box-shadow: 0 18px 38px rgba(139,92,246,.14);
}


/* =========================================================
   DASHBOARD / MES INFOS
   ========================================================= */
body.sp-page--dashboard-infos .sp-pagehead{ margin-bottom: 16px; }
.sp-profile-grid{
  display:grid;
  grid-template-columns: 1fr;
  gap: 18px;
  align-items:start;
}
.sp-profile-card{ min-height: 100%; }
.sp-profile-card--wide{ grid-column: 1 / -1; }
.sp-profile-stack{ display:grid; gap: 14px; }
.sp-profile-inlinebox{
  padding: 14px 16px;
  border-radius: 16px;
  background: linear-gradient(180deg, rgba(15,23,42,.03), rgba(255,255,255,.88));
  border: 1px solid rgba(15,23,42,.08);
}
.sp-profile-inlinebox__label,
.sp-profile-field__label{
  display:block;
  margin-bottom: 6px;
  font-size:12px;
  font-weight:800;
  color: rgba(15,23,42,.62);
}
.sp-profile-inlinebox__value{
  font-size:18px;
  font-weight:800;
  color:#1f2a44;
}
.sp-profile-formgrid{
  display:grid;
  grid-template-columns: 1fr 1fr;
  gap: 12px;
}
.sp-profile-formgrid--triple{ grid-template-columns: repeat(3, minmax(0, 1fr)); }
.sp-profile-field{ display:flex; flex-direction:column; gap:8px; }
.sp-profile-note{
  margin-top: 12px;
  font-size: 12.5px;
  color: rgba(15,23,42,.62);
}
.sp-profile-note a{ font-weight: 700; }
.sp-profile-lead{
  margin: 0 0 14px;
  font-size: 14px;
  color: rgba(15,23,42,.72);
}
.sp-levels{ display:grid; gap: 14px; }
.sp-levels--grid{ grid-template-columns: 1fr 1fr; }
.sp-level-row{
  padding: 12px 14px;
  border-radius: 14px;
  border:1px solid rgba(15,23,42,.08);
  background: linear-gradient(180deg, rgba(255,255,255,.98), rgba(247,248,250,.96));
}
.sp-level-row.is-empty{ opacity: .88; }
.sp-level-row__meta{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
  margin-bottom: 8px;
}
.sp-level-row__label{ font-weight: 750; color:#1f2a44; }
.sp-level-row__value{ font-size: 12.5px; font-weight:700; color: rgba(15,23,42,.58); }
.sp-level-row input[type=range]{ width:100%; accent-color:#64748b; }
.sp-level-row.is-empty input[type=range]{ filter: grayscale(.25) saturate(.7); }
.sp-chapters{ display:grid; gap: 12px; }
.sp-theme-box,
.sp-chapter-box{
  border:1px solid rgba(15,23,42,.08);
  border-radius: 16px;
  background: linear-gradient(180deg, rgba(255,255,255,.99), rgba(247,248,250,.97));
  overflow: hidden;
}
.sp-theme-box__summary,
.sp-chapter-box__summary{
  list-style:none;
  cursor:pointer;
}
.sp-theme-box__summary::-webkit-details-marker,
.sp-chapter-box__summary::-webkit-details-marker{ display:none; }
.sp-theme-box__summary{
  padding: 15px 18px;
  font-weight: 800;
  color:#1f2a44;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
}
.sp-theme-box__title{ font-size: 16px; }
.sp-theme-box__body{
  padding: 0 12px 12px;
  display:grid;
  gap: 10px;
}
.sp-chapter-box__summary{
  padding: 14px 16px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
}
.sp-chapter-box__left,
.sp-chapter-box__right{ display:flex; align-items:center; gap:10px; }
.sp-chapter-box__title{
  font-weight:700;
  color:#1f2a44;
}
.sp-chapter-progress{
  display:inline-flex;
  align-items:center;
  padding: 6px 10px;
  border-radius: 999px;
  font-size: 12px;
  font-weight: 800;
  color: rgba(15,23,42,.62);
  background: rgba(15,23,42,.05);
}
.sp-chapter-progress.is-done{
  color: #14532d;
  background: rgba(34,197,94,.12);
}
.sp-chapter-box__body{
  padding: 0 16px 14px;
  display:grid;
  gap: 8px;
}
.sp-subchapter-row{
  display:flex;
  justify-content:space-between;
  align-items:flex-start;
  gap: 10px;
  padding: 10px 12px;
  border-radius: 12px;
  background: rgba(15,23,42,.03);
}
.sp-subchapter-row__left{
  display:flex;
  align-items:flex-start;
  gap: 10px;
  min-width:0;
}
.sp-subchapter-row__label{
  font-size: 14px;
  color:#1f2a44;
  line-height: 1.4;
}
.sp-subchapter-row__right{ display:flex; align-items:center; gap:8px; }
.sp-chapter-chip{
  display:inline-flex;
  align-items:center;
  padding: 5px 8px;
  border-radius: 999px;
  font-size: 11px;
  font-weight: 800;
  color: #334155;
  background: rgba(100,116,139,.12);
}
.sp-profile-actions{
  display:flex;
  align-items:center;
  gap: 14px;
  margin-top: 18px;
}
.sp-profile-status{ font-size: 13px; color: rgba(15,23,42,.62); }
.sp-profile-status.is-ok{ color:#166534; }
.sp-profile-status.is-error{ color:#991b1b; }
@media (max-width: 960px){
  .sp-levels--grid,
  .sp-profile-formgrid--triple{ grid-template-columns: 1fr 1fr; }
}
@media (max-width: 640px){
  .sp-profile-formgrid,
  .sp-profile-formgrid--triple,
  .sp-levels--grid{ grid-template-columns: 1fr; }
  .sp-theme-box__summary,
  .sp-chapter-box__summary,
  .sp-subchapter-row{ align-items:flex-start; flex-direction:column; }
  .sp-profile-actions{ flex-direction:column; align-items:flex-start; }
}

/* Dashboard — Mes exercices */
.sp-exos-stats{
  margin-bottom:18px;
}
.sp-stat-card{
  background:#fff;
  border:1px solid rgba(15,23,42,.08);
  border-radius:18px;
  padding:16px 18px;
  box-shadow:0 10px 30px rgba(15,23,42,.05);
}
.sp-stat-card__label{
  font-size:13px;
  color:#64748b;
  margin-bottom:8px;
}
.sp-stat-card__value{
  font-size:28px;
  font-weight:800;
  color:#0f172a;
}
.sp-exos-priority-grid{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:16px;
}
.sp-priority-column{
  min-width:0;
}
.sp-priority-column__head{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  margin-bottom:12px;
}
.sp-priority-column__head h2{
  margin:0;
  font-size:16px;
}
.sp-priority-column__count,
.sp-theme-box__count{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-width:36px;
  padding:4px 10px;
  border-radius:999px;
  background:#e2e8f0;
  color:#334155;
  font-size:12px;
  font-weight:700;
}
.sp-theme-box__count{
  min-width:58px;
  padding:7px 12px;
  background: linear-gradient(180deg, rgba(241,245,249,.98), rgba(226,232,240,.92));
  border: 1px solid rgba(148,163,184,.24);
  box-shadow: inset 0 1px 0 rgba(255,255,255,.8);
}
.sp-theme-box__count.is-done{
  color:#14532d;
  background: linear-gradient(180deg, rgba(220,252,231,.98), rgba(187,247,208,.92));
  border-color: rgba(34,197,94,.22);
}
.sp-exo-card-list{
  display:grid;
  gap:12px;
}
.sp-exo-card{
  background:#fff;
  border:1px solid rgba(148,163,184,.28);
  border-radius:18px;
  padding:14px 14px 12px;
  box-shadow:0 10px 22px rgba(15,23,42,.04);
}
.sp-exo-card__head,
.sp-chapter-item{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:12px;
}
.sp-exo-card__title,
.sp-chapter-item__title{
  font-size:15px;
  font-weight:700;
  color:#0f172a;
}
.sp-exo-card__meta,
.sp-chapter-box__meta,
.sp-chapter-item__dates{
  font-size:12px;
  color:#64748b;
}
.sp-exo-card__submeta{
  display:flex;
  flex-wrap:wrap;
  gap:10px 14px;
  margin-top:10px;
  font-size:12px;
  color:#475569;
}
.sp-exo-card__reason{
  margin-top:10px;
  padding:8px 10px;
  border-radius:12px;
  background:#f8fafc;
  color:#334155;
  font-size:12px;
}
.sp-exo-card__chips,
.sp-exo-card__badges,
.sp-chapter-item__meta{
  display:flex;
  flex-wrap:wrap;
  gap:8px;
  align-items:center;
  justify-content:flex-start;
}
.sp-mini-badge{
  display:inline-flex;
  align-items:center;
  gap:6px;
  border-radius:999px;
  padding:4px 10px;
  font-size:11px;
  font-weight:700;
  background:#e2e8f0;
  color:#334155;
}
.sp-mini-badge.is-done{ background:#dcfce7; color:#166534; }
.sp-mini-badge.is-redo{ background:#ffedd5; color:#9a3412; }
.sp-mini-badge.is-progress{ background:#dbeafe; color:#1d4ed8; }
.sp-mini-badge.is-urgent{ background:#fee2e2; color:#b91c1c; }
.sp-mini-badge.is-hot{ background:#fef3c7; color:#b45309; }
.sp-mini-badge.is-warn{ background:#e0f2fe; color:#075985; }
.sp-mini-badge.is-soft{ background:#e2e8f0; color:#334155; }
.sp-exo-actions{
  display:flex;
  flex-wrap:wrap;
  gap:8px;
  align-items:center;
  margin-top:12px;
}
.sp-exo-actions--tight{ margin-top:8px; justify-content:flex-end; }
.sp-btn--sm{
  padding:8px 12px;
  font-size:12px;
  min-height:auto;
}
.sp-exo-date-edit{
  display:flex;
  align-items:center;
  gap:8px;
  margin-left:auto;
}
.sp-input--date{
  min-width:148px;
  padding:8px 10px;
}
.sp-inline-status{
  margin:0 0 14px;
  padding:10px 12px;
  border-radius:12px;
  font-size:13px;
  font-weight:600;
  background:#e2e8f0;
  color:#334155;
}
.sp-inline-status.is-ok{ background:#dcfce7; color:#166534; }
.sp-inline-status.is-error{ background:#fee2e2; color:#b91c1c; }
.sp-progress-stack{
  display:flex;
  width:100%;
  height:10px;
  overflow:hidden;
  border-radius:999px;
  background:#e5e7eb;
  margin:4px 0 14px;
}
.sp-progress-stack__done{ background:#22c55e; }
.sp-progress-stack__redo{ background:#f59e0b; }
.sp-progress-stack__new{ background:#cbd5e1; }
.sp-chapter-items{
  display:grid;
  gap:10px;
}
.sp-chapter-item{
  border:1px solid rgba(148,163,184,.24);
  border-radius:14px;
  padding:12px;
  background:#fff;
}
.sp-chapter-item__right{
  text-align:right;
}
.sp-exos-toolbar{
  display:flex;
  gap:14px;
  align-items:flex-end;
  margin-bottom:14px;
  flex-wrap:wrap;
}
.sp-exos-toolbar__field{ min-width:180px; }
.sp-exos-toolbar__field--grow{ flex:1 1 280px; }
.sp-empty--compact{ padding:16px; }
@media (max-width: 1100px){
  .sp-exos-priority-grid{ grid-template-columns:1fr; }
}
@media (max-width: 760px){
  .sp-exo-card__head,
  .sp-chapter-item{
    flex-direction:column;
  }
  .sp-chapter-item__right{
    text-align:left;
    width:100%;
  }
  .sp-exo-date-edit{
    margin-left:0;
    width:100%;
  }
  .sp-input--date{ width:100%; min-width:0; }
}


/* Dashboard redo mini-card */
.sp-redo-mini{display:flex;flex-direction:column;gap:8px;min-height:122px;max-height:122px;overflow:hidden;margin-bottom:12px}
.sp-redo-mini__item{padding:8px 10px;border:1px solid rgba(148,163,184,.24);border-radius:12px;background:rgba(255,255,255,.58)}
.sp-redo-mini__top{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:2px;font-size:.78rem;color:#64748b}
.sp-redo-mini__type{font-weight:700;color:#334155}
.sp-redo-mini__date{white-space:nowrap}
.sp-redo-mini__title{font-size:.92rem;font-weight:700;color:#0f172a;line-height:1.2;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.sp-redo-mini__meta,.sp-redo-mini__empty{font-size:.8rem;color:#475569;line-height:1.2;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}

/* Dashboard redo page */
.sp-redo-hero{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;margin-bottom:18px}
.sp-redo-page__hint{margin:0 0 14px 0;color:#475569}
.sp-redo-list{display:flex;flex-direction:column;gap:12px}
.sp-redo-page-item{border:1px solid rgba(148,163,184,.24);border-radius:18px;background:rgba(255,255,255,.7);padding:14px 16px}
.sp-redo-page-item__top{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:4px}
.sp-redo-page-item__type{display:inline-flex;align-items:center;padding:4px 10px;border-radius:999px;background:rgba(37,99,235,.10);color:#1d4ed8;font-size:.78rem;font-weight:700}
.sp-redo-page-item__title{margin:0 0 6px 0;font-size:1.05rem;line-height:1.25;color:#0f172a}
.sp-redo-page-item__meta{font-weight:600;color:#334155;margin-bottom:4px}
.sp-redo-page-item__submeta{font-size:.9rem;color:#64748b}
@media (max-width: 900px){.sp-redo-hero{grid-template-columns:1fr}.sp-redo-mini{min-height:auto;max-height:122px}}


.sp-session-debriefbtn{
  appearance:none;
  border:1px solid rgba(37,99,235,.18);
  background:rgba(37,99,235,.08);
  color:#1d4ed8;
  border-radius:999px;
  padding:11px 18px;
  font-size:14px;
  font-weight:750;
  line-height:1;
  cursor:pointer;
  justify-self:center;
  transition:background .15s ease, border-color .15s ease, transform .06s ease;
}
.sp-session-debriefbtn:hover{
  background:rgba(37,99,235,.12);
  border-color:rgba(37,99,235,.28);
}
.sp-session-debriefbtn:active{ transform:translateY(1px); }
.sp-modal-open{ overflow:hidden; }
.sp-session-debrief{
  position:fixed;
  inset:0;
  z-index:60;
}
.sp-session-debrief__backdrop{
  position:absolute;
  inset:0;
  background:rgba(15,23,42,.42);
  backdrop-filter: blur(2px);
}
.sp-session-debrief__dialog{
  position:relative;
  width:min(880px, calc(100vw - 32px));
  margin:6vh auto 0;
  background:#fff;
  border:1px solid rgba(15,23,42,.08);
  border-radius:22px;
  box-shadow:0 24px 60px rgba(15,23,42,.22);
  padding:24px;
}
.sp-session-debrief__head{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:16px;
  margin-bottom:18px;
}
.sp-session-debrief__eyebrow{
  display:inline-flex;
  align-items:center;
  padding:5px 9px;
  border-radius:999px;
  background:rgba(37,99,235,.08);
  color:#1d4ed8;
  font-size:12px;
  font-weight:800;
  margin-bottom:10px;
}
.sp-session-debrief__title{
  margin:0 0 8px;
  font-size:28px;
  line-height:1.1;
}
.sp-session-debrief__intro{
  margin:0;
  color:var(--sp-text-secondary);
  max-width:64ch;
}
.sp-session-debrief__close{
  appearance:none;
  width:40px;
  height:40px;
  border-radius:999px;
  border:1px solid rgba(15,23,42,.1);
  background:#fff;
  cursor:pointer;
  font-size:18px;
  font-weight:700;
}
.sp-session-debrief__grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:16px;
}
.sp-session-debrief__card{
  border:1px solid rgba(15,23,42,.08);
  border-radius:18px;
  background:#f8fbff;
  padding:18px;
}
.sp-session-debrief__card h3{
  margin:0 0 10px;
  font-size:18px;
}
.sp-session-debrief__card ul{
  margin:0;
  padding-left:18px;
  color:var(--sp-text-primary);
}
.sp-session-debrief__card li + li{ margin-top:7px; }
.sp-session-debrief__foot{
  display:flex;
  justify-content:flex-start;
  margin-top:18px;
}
@media (max-width: 800px){
  .spa6-right__nav{ grid-template-columns:1fr; }
  .spa6-right__nav .sp-linkbtn:first-child,
  .spa6-right__nav .sp-linkbtn:last-child,
  .sp-session-debriefbtn{ justify-self:stretch; text-align:center; }
  .sp-session-debrief__grid{ grid-template-columns:1fr; }
}

.sp-page--comprendre-cours-doc .sp-pagehead__subtitle{max-width:980px}
.sp-page--comprendre-cours-doc .sp-course-nav .sp-panel__title{font-size:14px}
.sp-page--comprendre-cours-doc .sp-course-nav__h1link{font-size:13px;margin-top:8px;margin-bottom:6px;padding:5px 10px}
.sp-page--comprendre-cours-doc .sp-course-nav__link{font-size:12px;line-height:1.4;padding:5px 10px}
.sp-page--comprendre-cours-doc .sp-course-nav__list{margin:0 0 8px 0}
.sp-course-meta__title{font-size:30px;line-height:1.15;font-weight:900;letter-spacing:-.02em;color:var(--sp-text-primary);margin:0 0 10px 0}
.sp-course-meta__links{display:flex;gap:12px;flex-wrap:wrap;align-items:center}
.sp-course-meta__link{display:inline-flex;align-items:center;gap:8px;padding:10px 14px;border-radius:999px;text-decoration:none;font-weight:700;font-size:14px;line-height:1.25;color:var(--sp-cours-ink);background:color-mix(in srgb, var(--sp-cours) 12%, white);border:1px solid color-mix(in srgb, var(--sp-cours) 22%, white)}
.sp-course-meta__link:hover{background:color-mix(in srgb, var(--sp-cours) 18%, white)}
.sp-course-meta__link.is-disabled{opacity:.62;cursor:not-allowed;pointer-events:none}
@media (max-width: 980px){.sp-course-meta__title{font-size:24px}}


.sp-course-chunk__body.has-label{padding-top:16px}
.sp-course-chunk__footer{display:flex;flex-direction:column;align-items:stretch;gap:10px;margin-top:14px}
.sp-course-reviewbar{display:flex;justify-content:flex-start;align-items:center}
.sp-course-reviewbar.is-hidden,.sp-course-reviewbar[hidden]{display:none !important}
.sp-course-chunk__studytools{display:none;flex-direction:column;gap:10px;padding:12px 14px;border-radius:14px;background:rgba(15,23,42,.02);border:1px solid rgba(15,23,42,.06)}
.sp-course-chunk__studytools.is-open{display:flex}
.sp-course-chunk__studytools[hidden]{display:none !important}
.sp-course-studytools__topbar{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}
.sp-course-studytools__title{font-size:13px;font-weight:800;color:rgba(15,23,42,.8)}
.sp-course-note{display:flex;flex-direction:column;gap:6px}
.sp-course-note__label{font-size:13px;font-weight:700;color:rgba(15,23,42,.8)}
.sp-course-note__textarea{width:100%;min-height:92px;padding:10px 12px;border-radius:12px;border:1px solid rgba(15,23,42,.12);background:#fff;color:var(--sp-text-primary);font:inherit;line-height:1.5;resize:vertical}
.sp-course-note__textarea:focus{outline:none;border-color:color-mix(in srgb, var(--sp-cours) 38%, white);box-shadow:0 0 0 3px color-mix(in srgb, var(--sp-cours) 12%, white)}
.sp-course-note__actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.sp-btn--sm{padding:8px 12px;font-size:13px;border-radius:999px}
.sp-course-note__status{font-size:12px;color:rgba(15,23,42,.62);min-height:1em}
.sp-course-note__status.is-error{color:#b42318}
.sp-course-note__status.is-ok{color:#027a48}
@media (max-width: 640px){.sp-course-note__actions{align-items:flex-start;flex-direction:column}.sp-course-studytools__topbar{align-items:flex-start;flex-direction:column}}


.sp-page--comprendre-methodes-doc .sp-method-question-body > h2{font-size:31px;line-height:1.15;margin:0 0 18px 0;letter-spacing:-.02em}
.sp-method-block{margin-top:18px}
.sp-method-block:first-of-type{margin-top:0}
.sp-page--comprendre-methodes-doc .sp-course-nav .sp-panel__title{font-size:14px}
.sp-page--comprendre-methodes-doc .sp-course-nav__h1{font-size:13px;line-height:1.35;margin-bottom:8px}
.sp-page--comprendre-methodes-doc .sp-course-nav__link{font-size:12px;line-height:1.4;padding:5px 10px}

.sp-page--comprendre-methodes-doc .sp-course-nav__sections{padding-top:22px}
.sp-page--comprendre-methodes-doc .sp-course-nav__list{margin:0}
.sp-page--comprendre-methodes-doc .sp-course-meta__links{display:none !important}

.sp-page--comprendre-methodes-doc .sp-method-reviewrow{margin:6px 0 18px 0}
.sp-page--comprendre-methodes-doc .sp-method-reviewrow .sp-course-chunk__studytools{max-width:620px}
.sp-page--comprendre-methodes-doc .sp-method-block > .sp-course-chunk__body:not(.has-label){padding-top:0}
.sp-flashcard-card{display:inline-block;width:auto;max-width:min(680px,88%);margin:18px auto 12px auto;padding:0;border:0;background:none;box-shadow:none;appearance:none;-webkit-appearance:none;cursor:pointer}
.sp-flashcard-card__inner{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;min-width:0;max-width:100%;padding:12px 20px;border-radius:18px;background:color-mix(in srgb, var(--sp-cours) 14%, white);border:1px solid color-mix(in srgb, var(--sp-cours) 22%, white);box-shadow:0 4px 14px rgba(15,23,42,.04);transition:transform .15s ease, background .15s ease, box-shadow .15s ease}
.sp-flashcard-card:hover .sp-flashcard-card__inner,.sp-flashcard-card:focus-visible .sp-flashcard-card__inner{background:color-mix(in srgb, var(--sp-cours) 18%, white);transform:translateY(-1px);box-shadow:0 12px 30px rgba(15,23,42,.08)}
.sp-flashcard-card__title{display:block;font-size:15px;line-height:1.25;font-weight:800;color:var(--sp-text-primary);text-align:center}
.sp-flashcard-card__hint{display:inline-flex;align-items:center;gap:6px;font-size:11px;line-height:1.2;font-weight:700;color:color-mix(in srgb, var(--sp-text-primary) 70%, white)}
.sp-flashcard-card__hint::before{content:"↗";font-size:13px}
.sp-flashcard-modal{position:fixed;inset:0;z-index:999999;display:flex;align-items:center;justify-content:center;padding:24px}
.sp-flashcard-modal[hidden]{display:none !important}
.sp-flashcard-modal__backdrop{position:absolute;inset:0;background:rgba(15,23,42,.42)}
.sp-flashcard-modal__dialog{position:relative;z-index:1;width:min(920px,100%);max-height:min(85vh,900px);overflow:auto;padding:30px 28px 24px;border-radius:24px;background:#fff;box-shadow:0 24px 80px rgba(15,23,42,.24)}
.sp-flashcard-modal__close{position:absolute;top:14px;right:14px;width:40px;height:40px;border-radius:999px;border:1px solid color-mix(in srgb, var(--sp-cours) 24%, white);background:color-mix(in srgb, var(--sp-cours) 10%, white);font-size:26px;line-height:1;color:var(--sp-text-primary);cursor:pointer}
.sp-flashcard-modal__title{margin:0 48px 18px 0;font-size:28px;line-height:1.15;font-weight:900;color:var(--sp-text-primary)}
.sp-flashcard-modal__content{font-size:16px;line-height:1.7;color:var(--sp-text-primary)}
.sp-page--comprendre-methodes-doc .is-method-review-trigger{min-width:120px}
@media (max-width: 640px){.sp-flashcard-card{margin-top:18px;max-width:94%}.sp-flashcard-card__inner{min-width:0;width:100%;padding:14px 16px}.sp-flashcard-card__title{font-size:14px}.sp-flashcard-modal{padding:14px}.sp-flashcard-modal__dialog{padding:22px 18px 18px}.sp-flashcard-modal__title{font-size:22px;margin-right:42px}}

.sp-flashcard-card:focus{outline:none}
.sp-flashcard-card:focus-visible .sp-flashcard-card__inner{outline:2px solid color-mix(in srgb, var(--sp-cours) 35%, white);outline-offset:3px}
body.sp-modal-open{overflow:hidden}


body.sp-theme-code{
  background:
    radial-gradient(1200px 520px at 50% -180px, rgba(34, 197, 94, 0.10), transparent 62%),
    radial-gradient(900px 420px at 12% 8%, rgba(16, 185, 129, 0.08), transparent 55%),
    var(--sp-bg-main) !important;
}
body.sp-theme-code .sp-btn--ghost{ color: var(--sp-code-ink); }
body.sp-theme-code .sp-pagehead__kicker{
  background: color-mix(in srgb, var(--sp-code) 14%, white);
  color: color-mix(in srgb, var(--sp-code-ink) 88%, #000);
}
body.sp-theme-code .sp-tabs__indicator{
  background: color-mix(in srgb, var(--sp-code) 18%, white);
  box-shadow: inset 0 0 0 1px color-mix(in srgb, var(--sp-code) 20%, white);
}
body.sp-theme-code .sp-tabs__btn.is-active{ color: color-mix(in srgb, var(--sp-code-ink) 92%, #000); }
body.sp-theme-code .sp-dropdown__opt:hover{ background: color-mix(in srgb, var(--sp-code) 10%, white); }
body.sp-theme-code .sp-dropdown__opt[aria-selected="true"]{ background: color-mix(in srgb, var(--sp-code) 14%, white); }
body.sp-theme-code .sp-panel{
  border-color: color-mix(in srgb, var(--sp-code) 16%, rgba(15,23,42,.06));
  box-shadow: 0 18px 46px rgba(15,23,42,.06), 0 0 0 1px color-mix(in srgb, var(--sp-code) 12%, white);
}
body.sp-theme-code .sp-mini-card__title,
body.sp-theme-code .sp-train-group__title,
body.sp-theme-code .sp-course-meta__title{ color: color-mix(in srgb, var(--sp-code-ink) 92%, #000); }
body.sp-theme-code .sp-mini-chip{
  background: color-mix(in srgb, var(--sp-code) 12%, white);
  color: color-mix(in srgb, var(--sp-code-ink) 88%, #000);
}
body.sp-theme-code .sp-mini-chip--soft{
  background: color-mix(in srgb, var(--sp-code) 6%, white);
  color: color-mix(in srgb, var(--sp-code-ink) 82%, #111827);
}
.sp-page--code-index .sp-modegrid{grid-template-columns:repeat(2,minmax(0,1fr));}
.sp-page--code-index .sp-mode.is-active{border-color:color-mix(in srgb, var(--sp-code) 40%, rgba(15,23,42,.15)); box-shadow:0 16px 36px rgba(34,197,94,.12);}
.sp-page--code-index .sp-mode--disabled{opacity:.74; cursor:not-allowed;}
.sp-page--code-doc .sp-code-preview-block{margin-top:18px;}
.sp-page--code-doc .sp-code-preview-block__body{margin-top:10px;}
.sp-page--code-doc .sp-code-preview-meta{display:flex;gap:8px;flex-wrap:wrap;margin-top:18px;}
@media (max-width: 860px){
  .sp-page--code-index .sp-modegrid{grid-template-columns:1fr;}
}


/* --- Code world refinements (green everywhere, softer cards) --- */
body.sp-theme-code .sp-breadcrumb__link{ color: color-mix(in srgb, var(--sp-code-ink) 88%, #000); }
body.sp-theme-code .sp-mode:hover{
  background: linear-gradient(180deg, rgba(255,255,255,.98), color-mix(in srgb, var(--sp-code) 6%, white)) !important;
  border-color: color-mix(in srgb, var(--sp-code) 24%, rgba(15,23,42,.14));
  box-shadow: 0 24px 52px rgba(22,101,52,.10);
}
body.sp-theme-code .sp-mode.is-active{
  border-color: color-mix(in srgb, var(--sp-code) 34%, rgba(15,23,42,.14));
  background: linear-gradient(180deg, color-mix(in srgb, var(--sp-code) 10%, white), color-mix(in srgb, var(--sp-code) 5%, white)) !important;
  box-shadow: 0 18px 40px rgba(22,101,52,.12);
}
body.sp-theme-code .sp-mode.is-active .sp-mode__go{
  background: color-mix(in srgb, var(--sp-code) 12%, white);
  border-color: color-mix(in srgb, var(--sp-code) 24%, white);
}
body.sp-theme-code .sp-mode__title,
body.sp-theme-code .sp-mode__go{ color: color-mix(in srgb, var(--sp-code-ink) 90%, #000); }
body.sp-theme-code .sp-mode__go{
  background: color-mix(in srgb, var(--sp-code) 10%, white);
  border-color: color-mix(in srgb, var(--sp-code) 20%, white);
}
body.sp-theme-code .sp-mode__go:hover{ background: color-mix(in srgb, var(--sp-code) 14%, white); }
body.sp-theme-code .sp-mode__kicker{
  color: color-mix(in srgb, var(--sp-code-ink) 82%, #000);
  background: color-mix(in srgb, var(--sp-code) 8%, white);
  border-color: color-mix(in srgb, var(--sp-code) 16%, white);
}
body.sp-theme-code .sp-mini-card__title{ color: var(--sp-text-primary); }
body.sp-theme-code .sp-train-group__title{ color: color-mix(in srgb, var(--sp-code-ink) 94%, #000); }
body.sp-theme-code .sp-panel__title,
body.sp-theme-code .sp-field__label,
body.sp-theme-code .sp-pagehead__kicker,
body.sp-theme-code .sp-pagehead__title,
body.sp-theme-code .sp-pagehead__subtitle,
body.sp-theme-code .sp-panel__subtitle{ color: inherit; }
body.sp-theme-code .sp-pagehead__kicker{
  color: color-mix(in srgb, var(--sp-code-ink) 88%, #000);
  background: color-mix(in srgb, var(--sp-code) 12%, white);
  border-color: color-mix(in srgb, var(--sp-code) 18%, white);
}
body.sp-theme-code .sp-panel__title,
body.sp-theme-code .sp-field__label{ color: color-mix(in srgb, var(--sp-code-ink) 90%, #000); }
body.sp-theme-code .sp-tabs__btn{ color: color-mix(in srgb, var(--sp-code-ink) 88%, #000); }
body.sp-theme-code .sp-tabs__btn.is-active{ color: color-mix(in srgb, var(--sp-code-ink) 94%, #000); }
body.sp-theme-code .sp-select,
body.sp-theme-code .sp-dropdown__btn{
  border-color: color-mix(in srgb, var(--sp-code) 16%, rgba(15,23,42,.12));
}
body.sp-theme-code .sp-dropdown__btn:hover{
  border-color: color-mix(in srgb, var(--sp-code) 28%, rgba(15,23,42,.12));
}
body.sp-theme-code .sp-course-nav__link.is-active{
  background: color-mix(in srgb, var(--sp-code) 10%, white);
  border-color: color-mix(in srgb, var(--sp-code) 20%, white);
  color: color-mix(in srgb, var(--sp-code-ink) 92%, #000);
}
body.sp-theme-code .sp-course-meta__link{
  color: color-mix(in srgb, var(--sp-code-ink) 90%, #000);
  background: color-mix(in srgb, var(--sp-code) 10%, white);
  border-color: color-mix(in srgb, var(--sp-code) 18%, white);
}
body.sp-theme-code .sp-course-meta__link:hover{ background: color-mix(in srgb, var(--sp-code) 14%, white); }
body.sp-theme-code .sp-course-contentcard{
  background: color-mix(in srgb, var(--sp-code) 5%, white);
  border-color: color-mix(in srgb, var(--sp-code) 16%, rgba(15,23,42,.10));
}
body.sp-theme-code .sp-code-preview-block .sp-mini-chip,
body.sp-theme-code .sp-code-preview-meta .sp-mini-chip{
  background: color-mix(in srgb, var(--sp-code) 10%, white);
  border-color: color-mix(in srgb, var(--sp-code) 18%, white);
  color: color-mix(in srgb, var(--sp-code-ink) 90%, #000);
}


/* Python doc block 0 */
.sp-page--code-doc .sp-python-doc-layout .sp-course-nav{align-self:start;}
.sp-page--code-doc .sp-python-doc-body > *:first-child{margin-top:0;}
.sp-page--code-doc .sp-python-navgroup{margin-top:18px;}
.sp-page--code-doc .sp-python-navgroup__title{
  margin:0 0 8px;
  font-weight:800;
  color:var(--sp-text-primary);
}
.sp-page--code-doc .sp-python-sublist{margin-top:0;}
.sp-page--code-doc .sp-python-sublist__empty{
  list-style:none;
  color:var(--sp-text-muted);
  font-size:.96rem;
  padding:4px 2px 0;
}
.sp-page--code-doc .sp-python-codebox{
  margin:0 0 18px;
  padding:18px 20px;
  border-radius:20px;
  border:1px solid rgba(15,23,42,.10);
  background:#f7faf8;
  overflow:auto;
}
.sp-page--code-doc .sp-python-codeeditor{
  display:block;
  width:100%;
  min-height:220px;
  margin:0 0 18px;
  padding:22px 26px;
  border-radius:28px;
  border:1px solid #d9e6dd;
  background:#f7faf8;
  color:#111827;
  font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,monospace;
  font-size:.96rem;
  line-height:1.6;
  resize:vertical;
  box-sizing:border-box;
  white-space:pre;
  overflow:auto;
  outline:none;
}
.sp-page--code-doc .sp-python-codeeditor:focus{
  border-color:#9ec5a8;
  box-shadow:0 0 0 3px rgba(110,168,128,.14);
}
.sp-page--code-doc .sp-python-codebox code{
  font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,monospace;
  font-size:.96rem;
  line-height:1.6;
  white-space:pre;
}
.sp-page--code-doc .sp-python-btnrow{
  display:flex;
  flex-wrap:wrap;
  gap:12px;
  margin:18px 0 22px;
}
.sp-page--code-doc .sp-btn--disabled{
  opacity:.72;
  cursor:not-allowed;
  pointer-events:none;
}
.sp-page--code-doc .sp-python-helpblock{
  border:1px solid rgba(15,23,42,.08);
  border-radius:22px;
  background:#fff;
  padding:18px 20px;
  margin-bottom:16px;
}
.sp-page--code-doc .sp-python-helpblock__title{
  font-size:1.06rem;
  font-weight:800;
  margin:0 0 10px;
  color:color-mix(in srgb, var(--sp-code-ink) 90%, #000);
}
.sp-page--code-doc .sp-python-helpblock__body > *:first-child{margin-top:0;}
.sp-page--code-doc .sp-python-helpblock__body > *:last-child{margin-bottom:0;}
.sp-page--code-doc .sp-python-example-explication > *:first-child,
.sp-page--code-doc .sp-python-exo-enonce > *:first-child{margin-top:0;}
.sp-page--code-doc .sp-python-sectionlabel{
  font-size:.94rem;
  font-weight:800;
  color:color-mix(in srgb, var(--sp-code-ink) 88%, #000);
  margin:4px 0 10px;
}


/* Python doc refinements */
.sp-page--code-doc .sp-course-layout{align-items:start;}
.sp-page--code-doc .sp-course-nav{margin-top:0;}
.sp-page--code-doc .sp-course-nav .sp-panel--tight,
.sp-page--code-doc .sp-python-meta{background:color-mix(in srgb, var(--sp-code) 9%, white);border-color:color-mix(in srgb, var(--sp-code) 24%, rgba(15,23,42,.10));}
.sp-page--code-doc .sp-course-nav .sp-panel__title,
.sp-page--code-doc .sp-python-meta .sp-course-meta__title{color:var(--sp-text-primary);}
.sp-page--code-doc .sp-course-nav .sp-panel__title{font-size:15px;margin:0 0 18px;padding:0;line-height:1.2;color:#101828;}
.sp-page--code-doc .sp-course-nav__sections{padding-top:10px;}
.sp-page--code-doc .sp-python-navpanel{padding:20px 18px 18px;background:linear-gradient(180deg,#eef7f1 0%,#f4fbf6 100%);border-color:#cfe2d5;box-shadow:0 12px 28px rgba(25,66,42,.05);}
.sp-page--code-doc .sp-python-meta{padding:18px 24px;background:linear-gradient(180deg,#eef7f1 0%,#f4fbf6 100%);border-color:#cfe2d5;box-shadow:0 12px 28px rgba(25,66,42,.05);}
.sp-page--code-doc .sp-python-meta .sp-course-meta__title{font-size:18px;line-height:1.25;letter-spacing:-.01em;margin:0;font-weight:800;color:#101828;}
.sp-page--code-doc .sp-python-meta__subtitle{display:none;}
.sp-page--code-doc .sp-python-meta__objective{display:none;}
.sp-page--code-doc .sp-python-reviewrow{display:none;}
.sp-page--code-doc .sp-python-reviewrow .sp-course-chunk__studytools{max-width:640px;background:color-mix(in srgb, var(--sp-code) 4%, white);}
.sp-page--code-doc .sp-python-doc-body pre:not(.sp-python-codebox){margin:0 0 18px;padding:18px 20px;border-radius:20px;border:1px solid rgba(15,23,42,.10);background:#f7faf8;overflow:auto;}
.sp-page--code-doc .sp-python-doc-body pre:not(.sp-python-codebox) code{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,monospace;font-size:.96rem;line-height:1.6;white-space:pre;}
.sp-page--code-doc .sp-python-doc-body .bloc-title,
.sp-page--code-doc .sp-python-doc-body h3{font-size:clamp(28px,2vw,34px);line-height:1.15;letter-spacing:-.02em;color:#163f2a;margin:20px 0 12px;font-weight:850;}
.sp-page--code-doc .sp-python-doc-body h3{font-size:clamp(22px,1.6vw,28px);color:color-mix(in srgb, var(--sp-code-ink) 78%, #000);}
.sp-page--code-doc .sp-python-doc-body .bloc-title:first-child,
.sp-page--code-doc .sp-python-doc-body h3:first-child{margin-top:0;}
.sp-page--code-doc .sp-python-doc-body .bloc-title{position:relative;padding-left:0;}
.sp-page--code-doc .sp-python-doc-body .bloc-title::before{display:none;content:none;}
.sp-page--code-doc .sp-python-navgroup__title{margin:18px 0 10px;padding:0;line-height:1.25;color:#101828;}
.sp-page--code-doc .sp-course-nav__link{font-size:12.5px;line-height:1.42;padding:6px 12px;}
.sp-page--code-doc .sp-course-nav__list{margin:0 0 10px 0;}
.sp-page--code-doc .sp-python-codebox{background:#f7faf8;}
body.sp-theme-code .sp-page--code-doc .sp-btn--primary{background:color-mix(in srgb, var(--sp-code) 18%, white);border-color:color-mix(in srgb, var(--sp-code) 28%, white);color:color-mix(in srgb, var(--sp-code-ink) 92%, #000);}
body.sp-theme-code .sp-page--code-doc .sp-btn--ghost{color:color-mix(in srgb, var(--sp-code-ink) 88%, #000);}


body.sp-theme-code.sp-page--code-doc{
  background:
    radial-gradient(880px 320px at 10% -10%, rgba(111,173,132,.10), transparent 58%),
    radial-gradient(960px 380px at 100% 0%, rgba(167,213,181,.12), transparent 55%),
    #f5f8fc !important;
}
.sp-page--code-doc .sp-pagehead__title{margin-bottom:8px;}
.sp-page--code-doc .sp-pagehead__objective{font-size:15px;line-height:1.55;color:rgba(15,23,42,.82);max-width:780px;}
.sp-page--code-doc .sp-python-doc-layout{align-items:flex-start;grid-template-columns:340px minmax(0,1fr);column-gap:18px;}
.sp-page--code-doc .sp-python-doc-layout > .sp-course-nav,
.sp-page--code-doc .sp-python-doc-layout > div{margin-top:0;align-self:start;}
.sp-page--code-doc .sp-course-nav .sp-course-nav__sectiontitle{position:relative;padding-left:14px;margin-bottom:14px;}
.sp-page--code-doc .sp-course-nav .sp-course-nav__sectiontitle::before{content:'';position:absolute;left:0;top:.12em;bottom:.12em;width:2px;border-radius:999px;background:#4caf72;opacity:.95;}
.sp-page--code-doc .sp-python-titlewrap__top{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;}
.sp-page--code-doc .sp-python-titlewrap .sp-course-reviewbar{margin:0;flex:0 0 auto;}
.sp-page--code-doc .sp-python-titlewrap .sp-course-chunk__studytools{margin-top:14px;max-width:640px;background:#f9fcfa;}
.sp-page--code-doc .sp-python-titlewrap .sp-course-reviewbar .sp-btn,
.sp-page--code-doc .sp-python-titlewrap [data-course-clear-review]{border-color:#b9d9c2;color:#1e6a3f;background:#fff;}
.sp-page--code-doc .sp-python-titlewrap .sp-course-reviewbar .sp-btn:hover,
.sp-page--code-doc .sp-python-titlewrap [data-course-clear-review]:hover{background:#f3faf5;border-color:#8ec7a0;}
.sp-page--code-doc .sp-course-contentcard{background:linear-gradient(180deg,#eef7f1 0%,#f8fcf9 100%);border-color:#d6e8db;box-shadow:0 12px 28px rgba(25,66,42,.05);}
.sp-page--code-doc .sp-course-contentcard > .sp-course-scroll > .sp-course-chunk > .sp-course-chunk__body{background:#fff;border:1px solid rgba(62,115,79,.12);}
.sp-page--code-doc .sp-course-nav__link.is-active{background:#e2f1e7;border-color:#c8dfd0;color:#185934;}
.sp-page--code-doc .sp-python-doc-body h3{font-size:clamp(21px,1.5vw,26px);}
.sp-page--code-doc .sp-python-doc-body .bloc-title{font-size:clamp(30px,2vw,36px);}
.sp-page--code-doc .sp-python-doc-body pre:not(.sp-python-codebox),
.sp-page--code-doc .sp-python-codebox{background:#f7faf8;border-color:#d6e5da;}
@media (max-width: 980px){
  .sp-page--code-doc .sp-python-doc-layout{grid-template-columns:1fr;}
}


/* Python doc layout cleanup v0.5.25 */
.sp-page--code-doc .sp-panel--code-doc-shell{
  padding:22px;
  border-radius:30px;
  background:#fff;
  border:1px solid rgba(15,23,42,.08);
  box-shadow:0 16px 40px rgba(15,23,42,.05);
}
.sp-page--code-doc .sp-python-doc-layout{
  grid-template-columns:340px minmax(0,1fr);
  column-gap:20px;
  align-items:start;
}
.sp-page--code-doc .sp-python-doc-right{display:flex;flex-direction:column;gap:14px;min-width:0;}
.sp-page--code-doc .sp-python-navpanel,
.sp-page--code-doc .sp-python-meta{
  background:linear-gradient(180deg,#edf7f0 0%, #f3fbf5 100%);
  border:1px solid #cfe2d5;
  box-shadow:none;
}
.sp-page--code-doc .sp-python-navpanel{padding:20px 18px 18px;min-height:100%;}
.sp-page--code-doc .sp-python-meta{padding:18px 24px;}
.sp-page--code-doc .sp-course-nav .sp-course-nav__sectiontitle{padding-left:0;margin:0 0 18px;color:#101828;font-size:15px;}
.sp-page--code-doc .sp-course-nav .sp-course-nav__sectiontitle::before{display:none !important;content:none !important;}
.sp-page--code-doc .sp-course-nav__sections{padding-top:0;border-top:1px solid rgba(16,24,40,.08);padding-top:16px;}
.sp-page--code-doc .sp-python-navgroup{margin-top:18px;padding-top:16px;border-top:1px solid rgba(16,24,40,.08);}
.sp-page--code-doc .sp-python-navgroup:first-of-type{margin-top:20px;}
.sp-page--code-doc .sp-python-navgroup__title{margin:0 0 10px;padding:0;color:#101828;font-size:18px;font-weight:800;}
.sp-page--code-doc .sp-course-nav__link{font-size:13px;line-height:1.45;padding:7px 12px;color:rgba(15,23,42,.78);}
.sp-page--code-doc .sp-course-nav__link.is-active{background:#dff0e4;border-color:#bfd9c7;color:#165231;}
.sp-page--code-doc .sp-python-titlewrap__top{align-items:center;}
.sp-page--code-doc .sp-python-meta .sp-course-meta__title{font-size:16px;line-height:1.3;font-weight:750;color:#101828;}
.sp-page--code-doc .sp-python-titlewrap .sp-course-chunk__studytools{margin-top:12px;max-width:640px;background:#f9fcfa;}
.sp-page--code-doc .sp-python-sectionnav{display:grid;grid-template-columns:1fr 1fr;gap:12px;align-items:center;}
.sp-page--code-doc .sp-python-sectionnav .sp-linkbtn:first-child{justify-self:start;}
.sp-page--code-doc .sp-python-sectionnav .sp-linkbtn:last-child{justify-self:end;}
.sp-page--code-doc .sp-python-sectionnav .sp-linkbtn.is-disabled{opacity:.5;pointer-events:none;}
.sp-page--code-doc .sp-course-contentcard{background:#fff;border:1px solid rgba(15,23,42,.08);box-shadow:none;border-radius:24px;}
.sp-page--code-doc .sp-course-contentcard > .sp-course-scroll > .sp-course-chunk{padding:0;}
.sp-page--code-doc .sp-course-contentcard > .sp-course-scroll > .sp-course-chunk > .sp-course-chunk__body{
  background:#fff;
  border:none;
  border-radius:0;
  box-shadow:none;
  padding:22px 24px 24px;
}
.sp-page--code-doc .sp-python-doc-body .bloc-title{font-size:clamp(26px,1.75vw,32px);color:#17412d;}
.sp-page--code-doc .sp-python-doc-body h3{font-size:clamp(20px,1.35vw,25px);color:#20553a;}
.sp-page--code-doc .sp-python-doc-body pre:not(.sp-python-codebox),
.sp-page--code-doc .sp-python-codebox{background:#f7faf8;border-color:#d9e6dd;}
.sp-page--code-doc .sp-course-reviewbar{margin:0;}
@media (max-width:980px){
  .sp-page--code-doc .sp-panel--code-doc-shell{padding:16px;}
  .sp-page--code-doc .sp-python-doc-layout{grid-template-columns:1fr;}
}


/* Python doc layout cleanup v0.5.26 */
.sp-page--code-doc .sp-panel--code-doc-shell{padding:22px;background:#fff;border:1px solid rgba(15,23,42,.08);border-radius:30px;box-shadow:0 16px 40px rgba(15,23,42,.05);}
.sp-page--code-doc .sp-python-doc-layout{display:grid;grid-template-columns:340px minmax(0,1fr);column-gap:20px;align-items:start;}
.sp-page--code-doc .sp-course-nav,.sp-page--code-doc .sp-python-doc-right{align-self:start;margin-top:0;}
.sp-page--code-doc .sp-python-navpanel,.sp-page--code-doc .sp-python-meta{background:#eef7f1 !important;border:1px solid #cfe2d5 !important;box-shadow:none !important;}
.sp-page--code-doc .sp-python-navpanel{padding:22px 20px 20px;min-height:100%;}
.sp-page--code-doc .sp-python-meta{padding:20px 24px;}
.sp-page--code-doc .sp-course-nav .sp-course-nav__sectiontitle{margin:0 0 14px;padding:0;color:#101828;font-size:15px;font-weight:800;}
.sp-page--code-doc .sp-course-nav__sections{padding-top:16px;border-top:1px solid rgba(16,24,40,.08);}
.sp-page--code-doc .sp-python-navgroup{margin-top:18px;padding-top:16px;border-top:1px solid rgba(16,24,40,.08);}
.sp-page--code-doc .sp-python-titlewrap__top{display:flex;align-items:center;justify-content:space-between;gap:16px;}
.sp-page--code-doc .sp-python-meta .sp-course-meta__title{font-size:16px;line-height:1.3;font-weight:750;color:#101828;margin:0;}
.sp-page--code-doc .sp-python-content-shell{background:#fff;border:1px solid rgba(15,23,42,.08);border-radius:24px;overflow:hidden;}
.sp-page--code-doc .sp-python-sectionnav{display:grid;grid-template-columns:1fr 1fr;gap:12px;align-items:center;padding:14px 18px;border-bottom:1px solid rgba(15,23,42,.08);background:#fff;}
.sp-page--code-doc .sp-python-sectionnav .sp-linkbtn:first-child{justify-self:start;}
.sp-page--code-doc .sp-python-sectionnav .sp-linkbtn:last-child{justify-self:end;}
.sp-page--code-doc .sp-course-contentcard{background:transparent !important;border:none !important;box-shadow:none !important;border-radius:0 !important;padding:0 !important;}
.sp-page--code-doc .sp-course-contentcard > .sp-course-scroll > .sp-course-chunk{padding:0;}
.sp-page--code-doc .sp-course-contentcard > .sp-course-scroll > .sp-course-chunk > .sp-course-chunk__body{background:#fff !important;border:none !important;box-shadow:none !important;border-radius:0 !important;padding:22px 24px 24px;}
.sp-page--code-doc .sp-course-reviewbar,.sp-page--code-doc .sp-python-titlewrap .sp-course-reviewbar{margin:0;flex:0 0 auto;}
.sp-page--code-doc .sp-python-titlewrap .sp-course-chunk__studytools{margin-top:12px;max-width:640px;background:#f9fcfa;}
.sp-page--code-doc .sp-python-doc-body .bloc-title{font-size:clamp(26px,1.75vw,32px);color:#17412d;}
.sp-page--code-doc .sp-python-doc-body h3{font-size:clamp(20px,1.35vw,25px);color:#20553a;}
@media (max-width:980px){.sp-page--code-doc .sp-python-doc-layout{grid-template-columns:1fr}.sp-page--code-doc .sp-panel--code-doc-shell{padding:16px}}


/* Python doc visual cleanup v0.5.27 */
.sp-page--code-doc .sp-panel--code-doc-shell{padding:22px;background:#fff;border:1px solid rgba(15,23,42,.08);border-radius:30px;box-shadow:0 14px 36px rgba(15,23,42,.045);}
.sp-page--code-doc .sp-python-doc-layout{display:grid;grid-template-columns:340px minmax(0,1fr);column-gap:22px;align-items:start;}
.sp-page--code-doc .sp-course-nav,.sp-page--code-doc .sp-python-doc-right,.sp-page--code-doc .sp-python-doc-right > *{align-self:start;margin-top:0 !important;}
.sp-page--code-doc .sp-course-nav{position:static;top:auto;}
.sp-page--code-doc .sp-python-navpanel,.sp-page--code-doc .sp-python-meta{background:linear-gradient(180deg,#edf6f0 0%, #f6fbf8 100%) !important;border:1px solid #d8e7dd !important;border-radius:24px !important;box-shadow:inset 0 1px 0 rgba(255,255,255,.72),0 8px 18px rgba(31,84,49,.035) !important;}
.sp-page--code-doc .sp-python-navpanel{padding:22px 20px 20px;min-height:100%;}
.sp-page--code-doc .sp-python-meta{padding:18px 22px;}
.sp-page--code-doc .sp-python-meta .sp-course-meta__title{font-size:14px;line-height:1.3;font-weight:700;color:#0f172a;}
.sp-page--code-doc .sp-python-titlewrap__top{display:flex;align-items:center;justify-content:space-between;gap:16px;}
.sp-page--code-doc .sp-python-content-shell{background:#fff;border:1px solid rgba(15,23,42,.08);border-radius:24px;overflow:hidden;box-shadow:none;}
.sp-page--code-doc .sp-python-sectionnav{display:grid;grid-template-columns:1fr 1fr;gap:12px;align-items:center;padding:16px 18px;border-bottom:1px solid rgba(15,23,42,.08);background:#fff;}
.sp-page--code-doc .sp-course-contentcard,.sp-page--code-doc .sp-course-scroll,.sp-page--code-doc .sp-course-chunk,.sp-page--code-doc .sp-course-chunk__body{background:transparent !important;border:none !important;box-shadow:none !important;}
.sp-page--code-doc .sp-course-contentcard{padding:0 !important;border-radius:0 !important;}
.sp-page--code-doc .sp-course-scroll{padding:0;}
.sp-page--code-doc .sp-course-contentcard > .sp-course-scroll > .sp-course-chunk{padding:0;margin:0;}
.sp-page--code-doc .sp-course-contentcard > .sp-course-scroll > .sp-course-chunk > .sp-course-chunk__body{padding:24px 26px 26px !important;}
.sp-page--code-doc .sp-python-doc-body > *:last-child{margin-bottom:0;}
.sp-page--code-doc .sp-python-exo-enonce{margin:0 0 14px;}
.sp-page--code-doc .sp-python-exo-enonce > *:last-child{margin-bottom:0;}
.sp-page--code-doc .sp-course-reviewbar{margin:0;}
.sp-page--code-doc .sp-python-navgroup{margin-top:18px;padding-top:16px;border-top:1px solid rgba(15,23,42,.08);}
.sp-page--code-doc .sp-course-nav .sp-course-nav__sectiontitle{margin:0 0 14px;padding:0;font-size:15px;line-height:1.2;font-weight:800;color:#101828;}
.sp-page--code-doc .sp-course-nav__sections{padding-top:16px;border-top:1px solid rgba(16,24,40,.08);}
.sp-page--code-doc .sp-course-nav__link{font-size:13px;line-height:1.45;padding:7px 12px;color:rgba(15,23,42,.78);}
.sp-page--code-doc .sp-course-nav__link.is-active{background:#e3f0e7;border-color:#cddfd3;color:#165231;}
.sp-page--code-doc .sp-pagehead__objective p,.sp-page--code-doc .sp-pagehead__objective{margin:0;}
@media (max-width:980px){.sp-page--code-doc .sp-python-doc-layout{grid-template-columns:1fr;}.sp-page--code-doc .sp-panel--code-doc-shell{padding:16px;}}


/* Python doc alignment/layout cleanup v0.5.28 */
.sp-page--code-doc .sp-python-doc-layout{display:grid;grid-template-columns:340px minmax(0,1fr);column-gap:22px;align-items:start !important;}
.sp-page--code-doc .sp-course-nav{align-self:start !important;margin:0 !important;padding-top:0 !important;}
.sp-page--code-doc .sp-python-doc-right{align-self:start !important;display:block !important;min-width:0;margin:18px 0 0 0 !important;padding:0 !important;background:#fff;border:1px solid rgba(15,23,42,.08);border-radius:24px;overflow:hidden;}
.sp-page--code-doc .sp-python-doc-right > *{align-self:auto !important;margin:0 !important;width:100% !important;max-width:none !important;}
.sp-page--code-doc .sp-python-navpanel{background:linear-gradient(180deg,#eff7f2 0%, #f7fbf8 100%) !important;border:1px solid #d9e7de !important;border-radius:24px !important;box-shadow:none !important;}
.sp-page--code-doc .sp-python-meta{background:linear-gradient(180deg,#eff7f2 0%, #f7fbf8 100%) !important;border:0 !important;border-bottom:1px solid rgba(15,23,42,.08) !important;border-radius:24px 24px 0 0 !important;box-shadow:none !important;padding:18px 24px 16px !important;}
.sp-page--code-doc .sp-python-meta .sp-course-meta__title{font-size:15px !important;font-weight:700 !important;line-height:1.3 !important;}
.sp-page--code-doc .sp-python-titlewrap__top{display:flex;align-items:center;justify-content:space-between;gap:16px;margin:0 !important;}
.sp-page--code-doc .sp-python-content-shell{background:transparent !important;border:0 !important;border-radius:0 !important;overflow:visible !important;box-shadow:none !important;}
.sp-page--code-doc .sp-python-sectionnav{display:grid;grid-template-columns:1fr 1fr;gap:12px;align-items:center;padding:14px 18px;border-bottom:1px solid rgba(15,23,42,.08);background:#fff;margin:0 !important;}
.sp-page--code-doc .sp-course-contentcard,.sp-page--code-doc .sp-course-scroll,.sp-page--code-doc .sp-course-chunk,.sp-page--code-doc .sp-course-chunk__body{background:transparent !important;border:none !important;box-shadow:none !important;}
.sp-page--code-doc .sp-course-contentcard{padding:0 !important;margin:0 !important;border-radius:0 !important;}
.sp-page--code-doc .sp-course-scroll{padding:0 !important;margin:0 !important;}
.sp-page--code-doc .sp-course-contentcard > .sp-course-scroll > .sp-course-chunk{padding:0 !important;margin:0 !important;}
.sp-page--code-doc .sp-course-contentcard > .sp-course-scroll > .sp-course-chunk > .sp-course-chunk__body{padding:22px 24px 24px !important;background:#fff !important;border:none !important;border-radius:0 0 24px 24px !important;box-shadow:none !important;}
.sp-page--code-doc .sp-python-doc-right .sp-linkbtn{margin:0 !important;}
@media (max-width:980px){.sp-page--code-doc .sp-python-doc-layout{grid-template-columns:1fr}.sp-page--code-doc .sp-python-doc-right{margin-top:16px !important;}}


/* Python corrigé toggle */
.sp-page--code-doc .sp-python-corrige[hidden]{display:none !important;}
.sp-page--code-doc .sp-python-corrige{
  margin:20px -24px -24px;
  padding:22px 24px 24px;
  background:linear-gradient(180deg,#eef7f1 0%,#f4fbf6 100%);
  border-top:1px solid #cfe2d5;
  border-radius:0 0 18px 18px;
}
.sp-page--code-doc .sp-python-corrige__section + .sp-python-corrige__section{margin-top:18px;}
.sp-page--code-doc .sp-python-corrige__section > *:first-child{margin-top:0;}
.sp-page--code-doc .sp-python-corrige__section > *:last-child{margin-bottom:0;}
.sp-page--code-doc .sp-python-corrige__explication > *:first-child{margin-top:0;}
.sp-page--code-doc .sp-python-corrige__explication > *:last-child{margin-bottom:0;}


.sp-session-course-part{display:flex;flex-direction:column;gap:14px}
.sp-session-course-part__block{margin-bottom:0}
.sp-session-course-part__head{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:10px}
.sp-session-course-part__title{font-weight:800;color:var(--sp-text-primary);line-height:1.3}
.sp-session-course-part__badge{margin-bottom:0}

/* Dashboard exercices v2 */
.sp-exos-sessions-panel{
  margin-bottom:18px;
}
.sp-session-suggested-grid{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:14px;
}
.sp-session-suggested-card{
  background:linear-gradient(180deg,#ffffff,#f8fbff);
  border:1px solid rgba(148,163,184,.24);
  border-radius:18px;
  padding:16px;
  box-shadow:0 10px 26px rgba(15,23,42,.05);
}
.sp-session-suggested-card__meta{
  display:flex;
  flex-wrap:wrap;
  gap:8px;
  margin-bottom:10px;
}
.sp-session-suggested-card__title{
  font-size:16px;
  font-weight:800;
  color:#0f172a;
  line-height:1.25;
}
.sp-session-suggested-card__subtitle{
  margin-top:6px;
  color:#475569;
  font-size:13px;
}
.sp-session-suggested-card__actions{
  margin-top:14px;
}
.sp-exos-summary-grid{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:14px;
  margin-bottom:18px;
}
.sp-exos-summary-card{
  position:relative;
  overflow:hidden;
  background:#fff;
  border:1px solid rgba(148,163,184,.22);
  border-radius:18px;
  padding:16px 18px;
  box-shadow:0 10px 24px rgba(15,23,42,.04);
}
.sp-exos-summary-card::before{
  content:"";
  position:absolute;
  inset:0 auto 0 0;
  width:5px;
  border-radius:18px 0 0 18px;
  background:#94a3b8;
}
.sp-exos-summary-card.is-total::before{ background:#2563eb; }
.sp-exos-summary-card.is-done::before{ background:#16a34a; }
.sp-exos-summary-card.is-redo::before{ background:#ea580c; }
.sp-exos-summary-card.is-remaining::before{ background:#64748b; }
.sp-exos-summary-card__label{
  font-size:13px;
  color:#64748b;
  margin-bottom:6px;
}
.sp-exos-summary-card__value{
  font-size:32px;
  line-height:1;
  font-weight:900;
  color:#0f172a;
}
.sp-exos-top-grid{
  display:grid;
  grid-template-columns:minmax(0,1.7fr) minmax(320px,.95fr);
  gap:18px;
  align-items:start;
  margin-bottom:18px;
}
.sp-exos-recent-grid{
  display:grid;
  gap:12px;
}
.sp-exo-card--compact .sp-exo-actions{
  justify-content:flex-start;
}
@media (max-width: 1100px){
  .sp-session-suggested-grid,
  .sp-exos-summary-grid,
  .sp-exos-top-grid{
    grid-template-columns:1fr;
  }
}
@media (max-width: 760px){
  .sp-exos-summary-grid{
    grid-template-columns:repeat(2,minmax(0,1fr));
  }
}

/* Dashboard suggestion card */
.sp-suggestion-mini{display:flex;flex-direction:column;gap:8px;min-height:72px;}
.sp-suggestion-mini__kicker{font-size:12px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:rgba(37,99,235,.9);}
.sp-suggestion-mini__title{font-size:16px;line-height:1.45;font-weight:700;color:#0f172a;}
.sp-suggestion-mini__meta{font-size:13px;color:#475569;}

/* Dashboard annales */
.sp-annales-summary-grid,
.sp-annales-top-grid,
.sp-annales-buckets-grid{
  display:grid;
  gap:18px;
  margin-bottom:18px;
}
.sp-annales-summary-grid{
  grid-template-columns:repeat(4,minmax(0,1fr));
}
.sp-annales-top-grid,
.sp-annales-buckets-grid{
  grid-template-columns:repeat(2,minmax(0,1fr));
}
.sp-kpis--annales{ margin:0 0 14px; }
.sp-annales-recent-grid{
  display:grid;
  gap:12px;
}
.sp-annales-subsection + .sp-annales-subsection{ margin-top:18px; }
.sp-annales-subsection h2{
  margin:0 0 10px;
  font-size:16px;
  line-height:1.3;
}
.sp-annales-section-head{
  display:flex;
  justify-content:flex-start;
  margin-bottom:14px;
}
.sp-annales-pills{
  display:flex;
  flex-wrap:wrap;
  gap:8px;
}
.sp-annales-item,
.sp-annales-recent-item{
  display:flex;
  flex-direction:column;
  gap:8px;
  padding:16px 18px;
  border-radius:18px;
  border:1px solid rgba(148,163,184,.22);
  background:rgba(255,255,255,.72);
  box-shadow:0 16px 36px rgba(15,23,42,.06);
}
.sp-annales-item__top,
.sp-annales-recent-item__top{
  display:flex;
  flex-wrap:wrap;
  gap:8px;
  align-items:center;
}
.sp-annales-item__title,
.sp-annales-recent-item__title{
  margin:0;
  font-size:17px;
  line-height:1.35;
}
.sp-annales-item__title a,
.sp-annales-recent-item__title a{
  color:inherit;
  text-decoration:none;
}
.sp-annales-item__title a:hover,
.sp-annales-recent-item__title a:hover{ text-decoration:underline; }
.sp-annales-item__meta,
.sp-annales-recent-item__meta,
.sp-annales-item__submeta{
  color:#475569;
  font-size:14px;
  line-height:1.45;
}
.sp-annales-item__submeta{ display:flex; flex-wrap:wrap; gap:10px; }
.sp-annales-item__actions,
.sp-annales-recent-item__actions{ display:flex; gap:10px; margin-top:2px; }
.sp-annales-item__link,
.sp-annales-recent-item__link{
  display:inline-flex;
  align-items:center;
  gap:6px;
  font-weight:600;
  color:#1d4ed8;
  text-decoration:none;
}
.sp-annales-item__link:hover,
.sp-annales-recent-item__link:hover{ text-decoration:underline; }
@media (max-width: 980px){
  .sp-annales-summary-grid,
  .sp-annales-top-grid,
  .sp-annales-buckets-grid{ grid-template-columns:1fr; }
}
@media (max-width: 640px){
  .sp-annales-summary-grid{ grid-template-columns:repeat(2,minmax(0,1fr)); }
}

/* === Train playlist: blocs pédagogiques issus des exports LaTeX/Pandoc ===
   Scope volontairement limité au lecteur de collections /assistant/train/playlist/.
*/
[data-page="train-playlist"] .spa6-right__content div.cclt,
[data-page="train-playlist"] .spa6-right__content div.cclm,
[data-page="train-playlist"] .spa6-right__content div.ccltl,
[data-page="train-playlist"] .spa6-right__corrigeContent div.cclt,
[data-page="train-playlist"] .spa6-right__corrigeContent div.cclm,
[data-page="train-playlist"] .spa6-right__corrigeContent div.ccltl{
  border:1.3px solid #3297db;
  border-radius:9px;
  padding:.7em 1.5em;
  margin:1.3em auto;
  background:rgba(50,151,219,.045);
  text-align:center;
  display:table;
  max-width:100%;
  box-shadow:0 6px 18px rgba(15,23,42,.04);
}

[data-page="train-playlist"] .spa6-right__content div.cclt p,
[data-page="train-playlist"] .spa6-right__content div.cclm p,
[data-page="train-playlist"] .spa6-right__content div.ccltl p,
[data-page="train-playlist"] .spa6-right__corrigeContent div.cclt p,
[data-page="train-playlist"] .spa6-right__corrigeContent div.cclm p,
[data-page="train-playlist"] .spa6-right__corrigeContent div.ccltl p{
  margin:.15em 0;
}

[data-page="train-playlist"] .spa6-right__content div.Cours,
[data-page="train-playlist"] .spa6-right__corrigeContent div.Cours{
  margin:1.35em 0;
  padding:1em 1.15em;
  border:1px solid rgba(37,99,235,.20);
  border-left:5px solid #3297db;
  border-radius:14px;
  background:rgba(50,151,219,.055);
  box-shadow:0 8px 22px rgba(15,23,42,.045);
}

[data-page="train-playlist"] .spa6-right__content div.methodeblock,
[data-page="train-playlist"] .spa6-right__corrigeContent div.methodeblock{
  margin:1.35em 0;
  padding:1em 1.15em;
  border:1px solid rgba(16,185,129,.22);
  border-left:5px solid #10b981;
  border-radius:14px;
  background:rgba(16,185,129,.055);
  box-shadow:0 8px 22px rgba(15,23,42,.045);
}

[data-page="train-playlist"] .spa6-right__content div.Cours > h4,
[data-page="train-playlist"] .spa6-right__corrigeContent div.Cours > h4,
[data-page="train-playlist"] .spa6-right__content div.methodeblock > h4,
[data-page="train-playlist"] .spa6-right__corrigeContent div.methodeblock > h4{
  margin:0 0 .55em;
  font-size:1.02em;
  font-weight:900;
  color:#102a43;
}

[data-page="train-playlist"] .spa6-right__content details.remarqueblock,
[data-page="train-playlist"] .spa6-right__corrigeContent details.remarqueblock,
[data-page="train-playlist"] .spa6-right__content details.Explication,
[data-page="train-playlist"] .spa6-right__corrigeContent details.Explication{
  margin:1.1em 0;
  border:1px solid rgba(15,23,42,.12);
  border-radius:13px;
  background:rgba(255,255,255,.72);
  overflow:hidden;
  box-shadow:0 6px 16px rgba(15,23,42,.035);
}

[data-page="train-playlist"] .spa6-right__content details.remarqueblock > summary,
[data-page="train-playlist"] .spa6-right__corrigeContent details.remarqueblock > summary,
[data-page="train-playlist"] .spa6-right__content details.Explication > summary,
[data-page="train-playlist"] .spa6-right__corrigeContent details.Explication > summary{
  cursor:pointer;
  padding:.72em 1em;
  font-weight:850;
  color:#1f2937;
  background:rgba(15,23,42,.035);
}

[data-page="train-playlist"] .spa6-right__content details.remarqueblock > :not(summary),
[data-page="train-playlist"] .spa6-right__corrigeContent details.remarqueblock > :not(summary),
[data-page="train-playlist"] .spa6-right__content details.Explication > :not(summary),
[data-page="train-playlist"] .spa6-right__corrigeContent details.Explication > :not(summary){
  margin-left:1em;
  margin-right:1em;
}

[data-page="train-playlist"] .spa6-right__content details.remarqueblock[open],
[data-page="train-playlist"] .spa6-right__corrigeContent details.remarqueblock[open],
[data-page="train-playlist"] .spa6-right__content details.Explication[open],
[data-page="train-playlist"] .spa6-right__corrigeContent details.Explication[open]{
  padding-bottom:.75em;
}

[data-page="train-playlist"] .spa6-right__content details.remarqueblock,
[data-page="train-playlist"] .spa6-right__corrigeContent details.remarqueblock{
  border-color:rgba(245,158,11,.24);
  background:rgba(245,158,11,.055);
}

[data-page="train-playlist"] .spa6-right__content details.remarqueblock > summary,
[data-page="train-playlist"] .spa6-right__corrigeContent details.remarqueblock > summary{
  background:rgba(245,158,11,.09);
}

[data-page="train-playlist"] .spa6-right__content details.Explication,
[data-page="train-playlist"] .spa6-right__corrigeContent details.Explication{
  border-color:rgba(99,102,241,.20);
  background:rgba(99,102,241,.045);
}

[data-page="train-playlist"] .spa6-right__content details.Explication > summary,
[data-page="train-playlist"] .spa6-right__corrigeContent details.Explication > summary{
  background:rgba(99,102,241,.075);
}

/* === Train playlist reader: fixed/scrollable left exercise list === */
[data-page="train-playlist"] .spa6-split{
  align-items:flex-start !important;
}

[data-page="train-playlist"] .spa6-left{
  flex:0 0 360px !important;
  width:360px !important;
  max-width:42% !important;
  height:calc(100vh - 170px) !important;
  min-height:520px !important;
  max-height:900px !important;
  position:sticky !important;
  top:18px !important;
}

[data-page="train-playlist"] .spa6-left__body{
  overflow-y:auto !important;
  overflow-x:hidden !important;
  min-height:0 !important;
  flex:1 1 auto !important;
}

[data-page="train-playlist"] .spa6-left .spa6-item{
  width:100% !important;
  box-sizing:border-box !important;
  text-align:left !important;
  display:block !important;
}

[data-page="train-playlist"] .spa6-item__top,
[data-page="train-playlist"] .spa6-item__title,
[data-page="train-playlist"] .spa6-item__subtitle,
[data-page="train-playlist"] .spa6-item__meta,
[data-page="train-playlist"] .spa6-item__badges{
  text-align:left !important;
  align-items:flex-start !important;
  justify-content:flex-start !important;
}

[data-page="train-playlist"] .spa6-item__title,
[data-page="train-playlist"] .spa6-item__subtitle{
  width:100% !important;
}

@media (max-width: 900px){
  [data-page="train-playlist"] .spa6-left{
    position:relative !important;
    top:auto !important;
    width:100% !important;
    max-width:100% !important;
    flex:0 0 auto !important;
    height:auto !important;
    max-height:none !important;
    min-height:0 !important;
  }
  [data-page="train-playlist"] .spa6-left__body{
    overflow:visible !important;
  }
}


/* === Train playlist reader: right statement/corrigé height sync === */
[data-page="train-playlist"] .spa6-right__content{
  overflow-y:auto !important;
  overflow-x:hidden !important;
  box-sizing:border-box !important;
}

[data-page="train-playlist"] .spa6-right__corrige{
  overflow:hidden !important;
  box-sizing:border-box !important;
  display:flex !important;
  flex-direction:column !important;
}

[data-page="train-playlist"] .spa6-right__corrige[hidden]{
  display:none !important;
}

[data-page="train-playlist"] .spa6-right__corrigeContent{
  overflow-y:auto !important;
  overflow-x:hidden !important;
  min-height:0 !important;
  box-sizing:border-box !important;
}

[data-page="train-playlist"] .spa6-corrige__head{
  flex:0 0 auto !important;
}

@media (max-width: 900px){
  [data-page="train-playlist"] .spa6-right__content,
  [data-page="train-playlist"] .spa6-right__corrige,
  [data-page="train-playlist"] .spa6-right__corrigeContent{
    height:auto !important;
    max-height:none !important;
    overflow:visible !important;
  }
}

/* Session reader — cours chunks: block title as badge + review state */
.sp-session-course-part__head {
  display: flex;
  align-items: center;
  gap: .75rem;
  margin-bottom: .8rem;
}
.sp-session-course-part__badge {
  max-width: 100%;
  white-space: normal;
  line-height: 1.25;
}
.sp-course-reviewbar .sp-btn.is-active,
.sp-course-reviewbar .sp-btn[data-course-status="review"].is-active {
  background: #e8f1ff;
  border-color: #8fb5ff;
  color: #1d4ed8;
  box-shadow: 0 0 0 2px rgba(37, 99, 235, .14);
}
.sp-course-chunk__studytools.is-open {
  margin-top: .6rem;
}


/* Dashboard — carte À refaire bientôt : supprimer tous les soulignements */
.sp-page--dashboard .sp-card-redo,
.sp-page--dashboard .sp-card-redo *,
.sp-page--dashboard .sp-card-redo a,
.sp-page--dashboard .sp-card-redo a:visited,
.sp-page--dashboard .sp-card-redo a:hover,
.sp-page--dashboard .sp-card-redo a:focus,
.sp-page--dashboard .sp-redo-mini__item,
.sp-page--dashboard .sp-redo-mini__item *,
.sp-page--dashboard .sp-redo-mini__item--link,
.sp-page--dashboard .sp-redo-mini__item--link:visited,
.sp-page--dashboard .sp-redo-mini__item--link:hover,
.sp-page--dashboard .sp-redo-mini__item--link:focus {
  text-decoration: none !important;
}


/* Dashboard à refaire — cartes plus lisibles, deux colonnes, liens sobres */
.sp-page--dashboard-redo .sp-redo-list{
  display:grid !important;
  grid-template-columns:repeat(2,minmax(0,1fr)) !important;
  gap:14px !important;
  align-items:stretch !important;
}

.sp-page--dashboard-redo .sp-redo-page-item{
  height:100% !important;
  background:rgba(255,255,255,.82) !important;
  border-color:rgba(148,163,184,.30) !important;
  box-shadow:0 10px 24px rgba(15,23,42,.035) !important;
}

.sp-page--dashboard-redo .sp-redo-page-item__link,
.sp-page--dashboard-redo .sp-redo-page-item__link:visited,
.sp-page--dashboard-redo .sp-redo-page-item__link:hover,
.sp-page--dashboard-redo .sp-redo-page-item__link:focus,
.sp-page--dashboard-redo .sp-redo-page-item a,
.sp-page--dashboard-redo .sp-redo-page-item a:visited,
.sp-page--dashboard-redo .sp-redo-page-item a:hover,
.sp-page--dashboard-redo .sp-redo-page-item a:focus{
  text-decoration:none !important;
  color:#1e3a8a !important;
}

.sp-page--dashboard-redo .sp-redo-page-item__link:hover,
.sp-page--dashboard-redo .sp-redo-page-item a:hover{
  color:#1d4ed8 !important;
}

.sp-page--dashboard-redo .sp-redo-page-item__title{
  overflow-wrap:anywhere !important;
}

.sp-page--dashboard-redo .sp-redo-page-item__type{
  background:#e8eefc !important;
  color:#27406f !important;
}

.sp-page--dashboard-redo .sp-exo-priority-badge{
  background:#f1f5f9 !important;
  color:#475569 !important;
}

@media (max-width: 900px){
  .sp-page--dashboard-redo .sp-redo-list{
    grid-template-columns:1fr !important;
  }
}


/* Dashboard — graphiques réels */
.sp-real-graph-card { text-decoration: none !important; }
.sp-real-graph-card:hover { text-decoration: none !important; }
.sp-real-progress,
.sp-work-distribution { min-height: 142px; display: flex; flex-direction: column; justify-content: center; gap: 14px; }
.sp-progress-theme-row { display: grid; gap: 7px; }
.sp-progress-theme-row__head,
.sp-progress-theme-row__foot { display: flex; align-items: baseline; justify-content: space-between; gap: 12px; color: #475569; }
.sp-progress-theme-row__head span { font-weight: 900; color: #111827; }
.sp-progress-theme-row__head strong { font-weight: 800; font-size: .92rem; color: #64748b; white-space: nowrap; }
.sp-progress-theme-row__foot { font-size: .84rem; color: #64748b; }
.sp-progress-theme-bar { height: 16px; border-radius: 999px; overflow: hidden; background: #eef2f7; display: flex; box-shadow: inset 0 0 0 1px rgba(15,23,42,.06); }
.sp-progress-theme-bar__done { display: block; min-width: 0; background: linear-gradient(90deg, rgba(37,99,235,.68), rgba(59,130,246,.48)); }
.sp-progress-theme-bar__left { display: block; min-width: 0; background: rgba(226,232,240,.9); }
.sp-work-bigbar { height: 30px; border-radius: 999px; overflow: hidden; background: #eef2f7; display: flex; box-shadow: inset 0 0 0 1px rgba(15,23,42,.07); }
.sp-work-bar__seg { display: block; min-width: 2px; }
.sp-work-bar__seg--analyse,
.sp-work-dot--analyse { background: rgba(37,99,235,.62); }
.sp-work-bar__seg--algebre,
.sp-work-dot--algebre { background: rgba(124,58,237,.50); }
.sp-work-bar__seg--probabilites,
.sp-work-dot--probabilites { background: rgba(14,165,233,.48); }
.sp-work-list { display: grid; gap: 9px; }
.sp-work-list__row { display: flex; align-items: center; justify-content: space-between; gap: 12px; color: #475569; font-weight: 800; }
.sp-work-list__row span { display: inline-flex; align-items: center; gap: 8px; min-width: 0; }
.sp-work-list__row strong { color: #0f172a; }
.sp-work-dot { width: 11px; height: 11px; border-radius: 999px; display: inline-block; box-shadow: 0 0 0 3px rgba(15,23,42,.04); }
@media (max-width: 760px) {
  .sp-progress-theme-row__head { align-items: flex-start; flex-direction: column; gap: 2px; }
}


/* Dashboard 0.6.42 — avancement par thème + camembert */
.sp-progress-theme-row--analyse .sp-progress-theme-bar__done { background: linear-gradient(90deg, #5f8fee, #8db4ff) !important; }
.sp-progress-theme-row--algebre .sp-progress-theme-bar__done { background: linear-gradient(90deg, #9b7aea, #c4a7ff) !important; }
.sp-progress-theme-row--probabilites .sp-progress-theme-bar__done { background: linear-gradient(90deg, #38bdf8, #8bdcf8) !important; }
.sp-progress-theme-row--informatique .sp-progress-theme-bar__done { background: linear-gradient(90deg, #34d399, #9decc8) !important; }
.sp-work-distribution { --sp-work-analyse:#6d95ef; --sp-work-algebre:#a889ee; --sp-work-probabilites:#69c7e8; }
.sp-work-pie-wrap { display:flex; align-items:center; gap:28px; }
.sp-work-pie { width:150px; height:150px; border-radius:999px; flex:0 0 auto; box-shadow: inset 0 0 0 1px rgba(15,23,42,.06), 0 10px 24px rgba(15,23,42,.06); position:relative; }
.sp-work-pie::after { content:""; position:absolute; inset:42px; border-radius:999px; background:#fff; box-shadow: inset 0 0 0 1px rgba(15,23,42,.06); }
.sp-work-dot--analyse { background: var(--sp-work-analyse) !important; }
.sp-work-dot--algebre { background: var(--sp-work-algebre) !important; }
.sp-work-dot--probabilites { background: var(--sp-work-probabilites) !important; }
@media (max-width: 760px) {
  .sp-work-pie-wrap { align-items:flex-start; flex-direction:column; gap:16px; }
  .sp-work-pie { width:132px; height:132px; }
  .sp-work-pie::after { inset:37px; }
}


/* Dashboard 0.6.44 — équilibrage graphiques + mini À refaire scrollable */
@media (min-width: 981px){
  .sp-page--dashboard .sp-dash2__data{
    grid-template-columns: minmax(0, 2fr) minmax(0, 1fr) !important;
    align-items: stretch !important;
  }
}

.sp-page--dashboard .sp-real-progress{
  display:grid !important;
  grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  gap:18px 22px !important;
  align-content:center !important;
}

.sp-page--dashboard .sp-progress-theme-row{
  min-width:0 !important;
}

.sp-page--dashboard .sp-progress-theme-row__head{
  gap:8px !important;
}

.sp-page--dashboard .sp-progress-theme-row__head strong{
  font-size:.86rem !important;
}

.sp-page--dashboard .sp-progress-theme-row__foot{
  font-size:.80rem !important;
}

.sp-page--dashboard .sp-work-distribution{
  min-height:220px !important;
  height:100% !important;
  align-items:center !important;
  justify-content:center !important;
}

.sp-page--dashboard .sp-work-pie-wrap{
  width:100% !important;
  min-height:190px !important;
  display:flex !important;
  flex-direction:column !important;
  align-items:center !important;
  justify-content:center !important;
  gap:16px !important;
  text-align:left !important;
}

.sp-page--dashboard .sp-work-pie{
  width:140px !important;
  height:140px !important;
}

.sp-page--dashboard .sp-work-pie::after{
  inset:39px !important;
}

.sp-page--dashboard .sp-work-list{
  width:min(260px, 100%) !important;
}

.sp-page--dashboard .sp-redo-mini{
  max-height:142px !important;
  min-height:0 !important;
  overflow-y:auto !important;
  overflow-x:hidden !important;
  padding-right:4px !important;
  scrollbar-width:thin !important;
}

.sp-page--dashboard .sp-redo-mini__title,
.sp-page--dashboard .sp-redo-mini__meta{
  white-space:nowrap !important;
  overflow:hidden !important;
  text-overflow:ellipsis !important;
}

@media (max-width: 980px){
  .sp-page--dashboard .sp-real-progress{
    grid-template-columns:1fr !important;
  }
  .sp-page--dashboard .sp-work-pie-wrap{
    flex-direction:row !important;
    justify-content:flex-start !important;
  }
}

@media (max-width: 760px){
  .sp-page--dashboard .sp-work-pie-wrap{
    flex-direction:column !important;
    align-items:flex-start !important;
  }
}

/* Annales: progressive loading controls */
.sp-annales-loadmore{
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  gap:10px;
  margin-top:18px;
}
.sp-annales-loadmore__count{
  color:#4b5563;
  font-size:14px;
  font-weight:700;
}
.sp-annales-loadmore .sp-btn[disabled]{
  opacity:.65;
  cursor:wait;
}

/* Annales item left column: softer content + clearer vertical rhythm */
body.sp-theme-annales .spa6-left--annales .spa6-annales-meta{
  margin-bottom: 18px;
}
body.sp-theme-annales .spa6-left--annales .spa6-left__section--after-love{
  margin-top: 18px;
}
body.sp-theme-annales .spa6-left--annales .spa6-left__section--spaced{
  margin-top: 20px;
}
body.sp-theme-annales .spa6-left--annales .spa6-left__sectionBody--soft{
  font-size: 13px;
  font-weight: 400;
  line-height: 1.35;
}
body.sp-theme-annales .spa6-left--annales .spa6-left__sectionBody--soft .spa6-chapitres__item,
body.sp-theme-annales .spa6-left--annales .spa6-left__sectionBody--soft .spa6-similaires__link{
  font-size: 13px;
  font-weight: 430;
  line-height: 1.35;
}
body.sp-theme-annales .spa6-left--annales .spa6-chapitres__link{
  color: rgba(15,23,42,0.86);
  text-decoration: none;
  border-bottom: 1px solid color-mix(in srgb, var(--sp-annales) 35%, transparent);
}
body.sp-theme-annales .spa6-left--annales .spa6-chapitres__link:hover{
  color: color-mix(in srgb, var(--sp-annales-ink) 92%, #000);
  border-bottom-color: color-mix(in srgb, var(--sp-annales) 70%, transparent);
}
body.sp-theme-annales .spa6-left--annales .spa6-tags-list{
  gap: 6px;
}


/* Annales item v3: narrower left column, cleaner chapter links and block rhythm */
body.sp-theme-annales .spa6-split--annales .spa6-left--annales{
  flex: 0 0 270px;
  width: 270px;
  max-width: 28%;
}
body.sp-theme-annales .spa6-split--annales .spa6-right--annales{
  min-width: 0;
}
body.sp-theme-annales .spa6-left--annales .spa6-left__sectionTitle{
  margin-bottom: 8px;
}
body.sp-theme-annales .spa6-left--annales .spa6-left__sectionBody--soft{
  padding-top: 2px;
}
body.sp-theme-annales .spa6-left--annales .spa6-chapitres{
  gap: 7px;
}
body.sp-theme-annales .spa6-left--annales .spa6-chapitres__link,
body.sp-theme-annales .spa6-left--annales .spa6-chapitres__link:visited{
  color: rgba(15,23,42,0.86);
  text-decoration: none !important;
  border-bottom: 0 !important;
  box-shadow: none !important;
}
body.sp-theme-annales .spa6-left--annales .spa6-chapitres__link:hover{
  color: color-mix(in srgb, var(--sp-annales-ink) 92%, #000);
  text-decoration: none !important;
  border-bottom: 0 !important;
}
@media (max-width: 980px){
  body.sp-theme-annales .spa6-split--annales .spa6-left--annales{
    flex: 0 0 auto;
    width: 100%;
    max-width: 100%;
  }
}

/* Annales: correction panel is displayed below the statement split, so it does not reduce the visible statement height. */
.spa6-annales-corrige-panel{
  margin-top: 18px;
  border: 1px solid rgba(15,23,42,.08);
  border-radius: 18px;
  overflow: hidden;
}
.spa6-annales-corrige-panel .spa6-scrollbox--corrige{
  max-height: 76vh;
  overflow: auto;
  padding-right: 8px;
}
.spa6-qnav__actions .spa6-actionbtn[disabled]{
  opacity: .55;
  cursor: not-allowed;
}

/* Annales: question correction toggle should remain neutral, only the text changes. */
body.sp-theme-annales .spa6-qnav__actions [data-sp-annales-qcorr].is-active,
body.sp-theme-annales .spa6-qnav__actions [data-sp-annales-qcorr][aria-expanded="true"]{
  background:#fff !important;
  color:rgba(15,23,42,.55) !important;
  border-color:rgba(15,23,42,.12) !important;
  box-shadow:none !important;
}

/* Annales: correction panel is now below the statement; give it a real reading height. */
body.sp-theme-annales .spa6-annales-corrige-panel .spa6-scrollbox--corrige{
  height:72vh;
  min-height:620px;
  max-height:82vh;
  overflow:auto;
  padding:22px 28px 28px;
}
@media (max-width: 980px){
  body.sp-theme-annales .spa6-annales-corrige-panel .spa6-scrollbox--corrige{
    height:66vh;
    min-height:460px;
  }
}

/* Annales: targeted question correction must use the full width of the correction area. */
body.sp-theme-annales .spa6-annales-qcorr-only,
body.sp-theme-annales .spa6-annales-qcorr-only > *{
  width:100%;
  max-width:100%;
  box-sizing:border-box;
}
body.sp-theme-annales .spa6-annales-qcorr-only > li{
  display:block;
  list-style-position:inside;
  padding-left:0;
}
body.sp-theme-annales .spa6-annales-qcorr-only .MathJax_Display,
body.sp-theme-annales .spa6-annales-qcorr-only mjx-container[display="true"]{
  max-width:100%;
  overflow-x:auto;
  overflow-y:hidden;
}

/* Annales: pedagogical blocks from LaTeX/Pandoc exports, with annales colors. */
body.sp-theme-annales .spa6-right__content div.cclt,
body.sp-theme-annales .spa6-right__content div.cclm,
body.sp-theme-annales .spa6-right__content div.ccltl,
body.sp-theme-annales .spa6-right__corrigeContent div.cclt,
body.sp-theme-annales .spa6-right__corrigeContent div.cclm,
body.sp-theme-annales .spa6-right__corrigeContent div.ccltl{
  border:1.35px solid rgba(139,21,63,.36);
  border-radius:10px;
  padding:.75em 1.55em;
  margin:1.35em auto;
  background:rgba(139,21,63,.055);
  text-align:center;
  display:table;
  max-width:100%;
  box-shadow:0 8px 22px rgba(139,21,63,.055);
}
body.sp-theme-annales .spa6-right__content div.cclt p,
body.sp-theme-annales .spa6-right__content div.cclm p,
body.sp-theme-annales .spa6-right__content div.ccltl p,
body.sp-theme-annales .spa6-right__corrigeContent div.cclt p,
body.sp-theme-annales .spa6-right__corrigeContent div.cclm p,
body.sp-theme-annales .spa6-right__corrigeContent div.ccltl p{
  margin:.15em 0;
}
body.sp-theme-annales .spa6-right__content div.Cours,
body.sp-theme-annales .spa6-right__corrigeContent div.Cours,
body.sp-theme-annales .spa6-right__content div.coursblock,
body.sp-theme-annales .spa6-right__corrigeContent div.coursblock{
  margin:1.35em 0;
  padding:1em 1.15em;
  border:1px solid rgba(139,21,63,.22);
  border-left:5px solid rgba(139,21,63,.72);
  border-radius:14px;
  background:rgba(139,21,63,.05);
  box-shadow:0 8px 22px rgba(15,23,42,.045);
}
body.sp-theme-annales .spa6-right__content div.methodeblock,
body.sp-theme-annales .spa6-right__corrigeContent div.methodeblock{
  margin:1.35em 0;
  padding:1em 1.15em;
  border:1px solid rgba(190,24,93,.24);
  border-left:5px solid rgba(190,24,93,.72);
  border-radius:14px;
  background:rgba(190,24,93,.055);
  box-shadow:0 8px 22px rgba(15,23,42,.045);
}
body.sp-theme-annales .spa6-right__content div.Cours > h4,
body.sp-theme-annales .spa6-right__corrigeContent div.Cours > h4,
body.sp-theme-annales .spa6-right__content div.coursblock > h4,
body.sp-theme-annales .spa6-right__corrigeContent div.coursblock > h4,
body.sp-theme-annales .spa6-right__content div.methodeblock > h4,
body.sp-theme-annales .spa6-right__corrigeContent div.methodeblock > h4{
  margin:0 0 .55em;
  font-size:1.02em;
  font-weight:900;
  color:var(--sp-annales-ink, #7a1539);
}
body.sp-theme-annales .spa6-right__content details.remarqueblock,
body.sp-theme-annales .spa6-right__corrigeContent details.remarqueblock,
body.sp-theme-annales .spa6-right__content details.Explication,
body.sp-theme-annales .spa6-right__corrigeContent details.Explication,
body.sp-theme-annales .spa6-right__content details.coursblock,
body.sp-theme-annales .spa6-right__corrigeContent details.coursblock{
  margin:1.1em 0;
  border:1px solid rgba(139,21,63,.18);
  border-radius:13px;
  background:rgba(255,255,255,.76);
  overflow:hidden;
  box-shadow:0 6px 16px rgba(15,23,42,.035);
}
body.sp-theme-annales .spa6-right__content details.remarqueblock > summary,
body.sp-theme-annales .spa6-right__corrigeContent details.remarqueblock > summary,
body.sp-theme-annales .spa6-right__content details.Explication > summary,
body.sp-theme-annales .spa6-right__corrigeContent details.Explication > summary,
body.sp-theme-annales .spa6-right__content details.coursblock > summary,
body.sp-theme-annales .spa6-right__corrigeContent details.coursblock > summary{
  cursor:pointer;
  padding:.72em 1em;
  font-weight:850;
  color:var(--sp-annales-ink, #7a1539);
  background:rgba(139,21,63,.065);
}
body.sp-theme-annales .spa6-right__content details.remarqueblock > :not(summary),
body.sp-theme-annales .spa6-right__corrigeContent details.remarqueblock > :not(summary),
body.sp-theme-annales .spa6-right__content details.Explication > :not(summary),
body.sp-theme-annales .spa6-right__corrigeContent details.Explication > :not(summary),
body.sp-theme-annales .spa6-right__content details.coursblock > :not(summary),
body.sp-theme-annales .spa6-right__corrigeContent details.coursblock > :not(summary){
  margin-left:1em;
  margin-right:1em;
}
body.sp-theme-annales .spa6-right__content details.remarqueblock[open],
body.sp-theme-annales .spa6-right__corrigeContent details.remarqueblock[open],
body.sp-theme-annales .spa6-right__content details.Explication[open],
body.sp-theme-annales .spa6-right__corrigeContent details.Explication[open],
body.sp-theme-annales .spa6-right__content details.coursblock[open],
body.sp-theme-annales .spa6-right__corrigeContent details.coursblock[open]{
  padding-bottom:.75em;
}
body.sp-theme-annales .spa6-right__content details.remarqueblock,
body.sp-theme-annales .spa6-right__corrigeContent details.remarqueblock{
  border-color:rgba(180,83,9,.24);
  background:rgba(180,83,9,.055);
}
body.sp-theme-annales .spa6-right__content details.remarqueblock > summary,
body.sp-theme-annales .spa6-right__corrigeContent details.remarqueblock > summary{
  background:rgba(180,83,9,.085);
}

/* Annales: les sous-listes directes dans un item ne doivent pas se dimensionner au contenu.
   Le inline-block global était utile pour certains énoncés, mais dans les corrigés complets
   il provoquait des largeurs variables d'une question à l'autre. */
body.sp-theme-annales .spa6-right__corrige li.sp-li-nested-first > ol:first-child,
body.sp-theme-annales .spa6-right__corrige li.sp-li-nested-first > ul:first-child,
body.sp-theme-annales .spa6-right__corrigeContent li.sp-li-nested-first > ol:first-child,
body.sp-theme-annales .spa6-right__corrigeContent li.sp-li-nested-first > ul:first-child,
body.sp-theme-annales .spa6-annale-corrige-panel li.sp-li-nested-first > ol:first-child,
body.sp-theme-annales .spa6-annale-corrige-panel li.sp-li-nested-first > ul:first-child {
  display: block !important;
  width: 100% !important;
  max-width: 100% !important;
  box-sizing: border-box !important;
  margin: 0 !important;
}

/* Annales — aide progressive sur la question */
.spa6-helpmodal[hidden]{display:none!important}
.spa6-helpmodal{position:fixed;inset:0;z-index:999999;display:flex;align-items:center;justify-content:center;padding:24px}
.spa6-helpmodal__backdrop{position:absolute;inset:0;background:rgba(17,24,39,.42);backdrop-filter:blur(3px)}
.spa6-helpmodal__panel{position:relative;width:min(760px,calc(100vw - 32px));max-height:min(82vh,760px);overflow:auto;background:#fff;border:1px solid rgba(160,96,96,.18);border-radius:24px;box-shadow:0 28px 80px rgba(33,24,24,.22);padding:0}
.spa6-helpmodal__head{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:18px 22px;border-bottom:1px solid rgba(160,96,96,.14);background:linear-gradient(135deg,#fff7f4,#fff)}
.spa6-helpmodal__title{font-weight:850;font-size:1.08rem;color:#5f2f35}
.spa6-helpmodal__x{border:0;background:rgba(95,47,53,.08);color:#5f2f35;border-radius:999px;width:36px;height:36px;font-size:24px;line-height:1;cursor:pointer}
.spa6-helpmodal__body{padding:20px 22px;color:#322629;line-height:1.55}
.spa6-helpmodal__actions{display:flex;justify-content:flex-end;gap:12px;padding:16px 22px;border-top:1px solid rgba(160,96,96,.12);background:#fffafa}

.spa6-helpmodal__btn{appearance:none;border:0;border-radius:999px;padding:11px 18px;font-weight:850;font-size:.96rem;line-height:1;cursor:pointer;transition:transform .12s ease, box-shadow .12s ease, background .12s ease, opacity .12s ease;display:inline-flex;align-items:center;justify-content:center;min-height:42px}
.spa6-helpmodal__btn:hover:not(:disabled){transform:translateY(-1px)}
.spa6-helpmodal__btn:disabled{opacity:.62;cursor:not-allowed}
.spa6-helpmodal__btn--ghost{background:#fff;border:1px solid rgba(95,47,53,.18);color:#6b3539;box-shadow:0 6px 18px rgba(95,47,53,.06)}
.spa6-helpmodal__btn--ghost:hover:not(:disabled){background:#fff7f4;border-color:rgba(95,47,53,.26)}
.spa6-helpmodal__btn--primary{background:linear-gradient(135deg,#7b3740,#a84f55);color:#fff;box-shadow:0 12px 26px rgba(123,55,64,.22)}
.spa6-helpmodal__btn--primary:hover:not(:disabled){box-shadow:0 15px 30px rgba(123,55,64,.28)}

.spa6-helpmodal__label{font-weight:750;margin-bottom:10px;color:#5f2f35}
.spa6-helpmodal__choices{display:grid;gap:8px;margin-bottom:16px}
.spa6-helpmodal__choice{border:1px solid rgba(160,96,96,.20);background:#fff;border-radius:14px;padding:10px 12px;text-align:left;cursor:pointer;color:#4a3438;font-weight:650}
.spa6-helpmodal__choice.is-active{background:#fff1ec;border-color:rgba(190,76,69,.45);box-shadow:0 0 0 3px rgba(190,76,69,.10)}
.spa6-helpmodal__subq{border:1px solid rgba(160,96,96,.16);background:#fffaf8;border-radius:16px;padding:12px 14px;margin-bottom:14px}
.spa6-helpmodal__subqtitle{font-weight:800;color:#6b3539;margin-bottom:4px}
.spa6-helpmodal__enonce{font-size:.94rem;color:#5c4a4d}
.spa6-helpmodal__hint{border-radius:18px;background:#f8fbff;border:1px solid rgba(76,110,180,.14);padding:16px 18px}
.spa6-helpmodal__hintkicker{font-size:.86rem;text-transform:uppercase;letter-spacing:.04em;font-weight:850;color:#526b9a;margin-bottom:8px}
.spa6-helpmodal__hinttext{font-size:1.02rem;color:#263247}
.spa6-helpmodal__hintslist{display:grid;gap:12px}
.spa6-helpmodal__done{margin-top:12px;padding:10px 12px;border-radius:14px;background:#f7f3f3;color:#6b3539;font-weight:750;text-align:center}


/* Explication du corrigé dans les annales */
.spa6-helpmodal--explanation .spa6-helpmodal__panel{
  max-width: min(1120px, calc(100vw - 64px));
}
.spa6-helpmodal__explanation{
  color:#263247;
  font-size:1.03rem;
  line-height:1.65;
}
.spa6-helpmodal__explanation h4{
  margin:1.15em 0 .45em;
  color:#733842;
  font-size:1.08rem;
  font-weight:900;
}
.spa6-helpmodal__explanation h4:first-child{
  margin-top:0;
}
.spa6-helpmodal__explanation p{
  margin:.55em 0;
}
.spa6-helpmodal__explanation ol,
.spa6-helpmodal__explanation ul{
  margin:.55em 0 .75em 1.4em;
}
.spa6-helpmodal__explanation li{
  margin:.3em 0;
}

/* Annales — sélection directe d'une question par clic */
.spa6-q-clickable{
  cursor:pointer;
  border-radius:12px;
  transition:background .12s ease, box-shadow .12s ease;
}
.spa6-q-clickable:hover{
  background:rgba(123,55,64,.055);
  box-shadow:0 0 0 4px rgba(123,55,64,.035);
}
.spa6-qactionmodal__panel{
  max-width:min(520px, calc(100vw - 32px));
}
.spa6-qactionmodal__intro{
  font-weight:750;
  color:#5f2f35;
  margin-bottom:14px;
}
.spa6-qactionmodal__buttons{
  display:flex;
  flex-wrap:wrap;
  gap:10px;
}
.spa6-qactionmodal__buttons .spa6-helpmodal__btn{
  min-height:44px;
}

/* Annales PDF buttons: keep hidden attribute effective despite action button display override. */
.spa6-right .spa6-actionbtn[hidden]{
  display:none !important;
}

/* --- Unified bottom breadcrumb colors by universe --- */
body.sp-page--train .sp-breadcrumb__link,
body.sp-page--train-collections .sp-breadcrumb__link,
body.sp-page--train-playlist .sp-breadcrumb__link,
body.sp-page--train-playlist-overview .sp-breadcrumb__link{ color: color-mix(in srgb, #2563eb 88%, #000); }
body.sp-page--dashboard .sp-breadcrumb__link,
body.sp-page--dashboard-redo .sp-breadcrumb__link,
body.sp-page--dashboard-redo-reader .sp-breadcrumb__link,
body.sp-page--dashboard-exercices .sp-breadcrumb__link,
body.sp-page--dashboard-annales .sp-breadcrumb__link,
body.sp-page--dashboard-evaluations .sp-breadcrumb__link,
body.sp-page--dashboard-infos .sp-breadcrumb__link{ color: color-mix(in srgb, var(--sp-dashboard) 55%, #1e3a8a); }
body.sp-theme-cours .sp-breadcrumb__link{ color: var(--sp-cours-ink); }
body.sp-theme-tester .sp-breadcrumb__link{ color: var(--sp-tester-ink); }
body.sp-theme-code .sp-breadcrumb__link{ color: color-mix(in srgb, var(--sp-code-ink) 88%, #000); }
body.sp-theme-annales .sp-breadcrumb__link{ color: var(--sp-annales-ink); }

/* Notes personnelles — annales */
.spa6-annales-notes{
  margin: 12px auto 0;
  max-width: 760px;
  width: min(760px, 100%);
  padding: 14px;
  border: 1px solid color-mix(in srgb, var(--sp-annales) 18%, white);
  border-radius: 18px;
  background: rgba(255,255,255,.72);
  box-shadow: 0 12px 26px rgba(15,23,42,.06);
}
.spa6-annales-notes__label{
  display:block;
  margin-bottom: 8px;
  font-weight: 800;
  color: var(--sp-annales-ink);
}
.spa6-annales-notes__textarea{
  width:100%;
  min-height: 110px;
  resize: vertical;
  border: 1px solid rgba(139,29,61,.20);
  border-radius: 14px;
  padding: 12px 14px;
  background: rgba(255,255,255,.96);
  color: rgba(15,23,42,.88);
  font: inherit;
  line-height: 1.45;
  outline: none;
}
.spa6-annales-notes__textarea:focus{
  border-color: rgba(139,29,61,.46);
  box-shadow: 0 0 0 4px rgba(139,29,61,.10);
}
.spa6-annales-notes__actions{
  display:flex;
  align-items:center;
  gap: 12px;
  margin-top: 10px;
  flex-wrap:wrap;
}
.spa6-annales-notes__status{
  font-size: 13px;
  font-weight: 700;
  color: rgba(15,23,42,.62);
}


/* Train playlist — notes personnelles + navigation harmonisée */
.sp-page--train-playlist .spa6-left{
  width:280px;
  max-width:30%;
}
.sp-page--train-playlist .spa6-right__toolbar-row--actions{
  justify-content:center;
}
.sp-page--train-playlist .spa6-notes-panel{
  margin: 18px auto 18px;
  max-width: 760px;
  border: 1px solid rgba(37,99,235,.18);
  background: rgba(248,251,255,.96);
  border-radius: 22px;
  padding: 18px 20px;
  box-shadow: 0 16px 34px rgba(37,99,235,.08);
}
.sp-page--train-playlist .spa6-notes-panel[hidden]{ display:none !important; }
.sp-page--train-playlist .spa6-notes-panel__title{
  font-weight: 900;
  font-size: 18px;
  color: #1e3a8a;
  margin-bottom: 12px;
}
.sp-page--train-playlist .spa6-notes-panel__textarea{
  width:100%;
  box-sizing:border-box;
  min-height:110px;
  resize:vertical;
  border:1px solid rgba(37,99,235,.20);
  border-radius:18px;
  background:#fff;
  padding:14px 16px;
  font: inherit;
  color:#0f172a;
  outline:none;
}
.sp-page--train-playlist .spa6-notes-panel__textarea:focus{
  border-color:rgba(37,99,235,.48);
  box-shadow:0 0 0 4px rgba(37,99,235,.10);
}
.sp-page--train-playlist .spa6-notes-panel__actions{
  display:flex;
  align-items:center;
  justify-content:flex-start;
  gap:12px;
  margin-top:12px;
}
.sp-page--train-playlist .spa6-notes-panel__status{
  margin-left:0;
  color:rgba(15,23,42,.64);
  font-weight:700;
}
.sp-page--train-playlist .spa6-actionbtn--primary{
  border-color: rgba(15,23,42,.16) !important;
  background: #fff !important;
  color: rgba(15,23,42,.88) !important;
  box-shadow:none !important;
}
.sp-page--train-playlist .spa6-right__nav{
  grid-template-columns: minmax(180px, auto) 1fr minmax(180px, auto);
  gap:18px;
  padding:22px 0 20px;
  margin-top:18px;
}
.sp-page--train-playlist .spa6-right__navcenter{
  display:flex;
  justify-content:center;
  align-items:center;
  gap:14px;
  flex-wrap:wrap;
}
.sp-page--train-playlist .spa6-reader-navbtn{
  min-height:64px;
  padding:0 24px;
  border-radius:18px;
  gap:18px;
  color:#1e3a8a;
  background:rgba(255,255,255,.96);
  border-color:rgba(37,99,235,.16);
  box-shadow:0 10px 22px rgba(37,99,235,.06);
}
.sp-page--train-playlist .spa6-reader-navbtn--prev{ justify-self:start; }
.sp-page--train-playlist .spa6-reader-navbtn--next{ justify-self:end; }
.sp-page--train-playlist .spa6-reader-navbtn__icon{
  width:38px;
  height:38px;
  border-radius:999px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  background:rgba(37,99,235,.10);
  color:#1d4ed8;
  font-size:24px;
  line-height:1;
}
.sp-page--train-playlist .spa6-reader-navbtn:hover{
  border-color:rgba(37,99,235,.28);
  box-shadow:0 14px 28px rgba(37,99,235,.10);
}
.sp-page--train-playlist .spa6-actionbtn--soft[disabled]{
  opacity:.58;
  cursor:not-allowed;
  border-color:rgba(37,99,235,.16) !important;
  color:rgba(30,64,175,.82) !important;
  background:rgba(239,246,255,.74) !important;
  box-shadow:none !important;
}
.sp-page--train-playlist [data-spa6-action="toggle-notes"].is-active{
  border-color: rgba(15,23,42,.16) !important;
  background: rgba(255,255,255,.92) !important;
  color: rgba(15,23,42,.88) !important;
  box-shadow:none !important;
}
@media (max-width: 900px){
  .sp-page--train-playlist .spa6-right__nav{ grid-template-columns:1fr; }
  .sp-page--train-playlist .spa6-reader-navbtn--prev,
  .sp-page--train-playlist .spa6-reader-navbtn--next{ justify-self:stretch; }
}


/* Train playlist notes/nav polish v0.7.13 */
.sp-page--train-playlist .spa6-reader-navbtn{
  column-gap:22px !important;
}
.sp-page--train-playlist .spa6-reader-navbtn--prev .spa6-reader-navbtn__icon{
  margin-right:6px !important;
}
.sp-page--train-playlist .spa6-reader-navbtn--next .spa6-reader-navbtn__icon{
  margin-left:6px !important;
}
.sp-page--train-playlist .spa6-notes-panel__actions{
  justify-content:flex-start !important;
}
.sp-page--train-playlist .spa6-notes-panel__actions .spa6-actionbtn--primary{
  order:0 !important;
  margin-left:0 !important;
  margin-right:0 !important;
}
.sp-page--train-playlist .spa6-notes-panel__status{
  order:1 !important;
  margin-left:12px !important;
}

/* Train playlist layout tweaks v0.7.14 */
.sp-page--train-playlist .spa6-split{
  gap:14px !important;
}
.sp-page--train-playlist .spa6-left,
[data-page="train-playlist"] .spa6-left{
  flex:0 0 300px !important;
  width:300px !important;
  max-width:28% !important;
}
.sp-page--train-playlist .spa6-left__head{
  padding-left:16px !important;
  padding-right:16px !important;
}
.sp-page--train-playlist .spa6-left__body{
  padding-left:14px !important;
  padding-right:14px !important;
}
.sp-page--train-playlist .spa6-right__toolbar-row--rating-with-nav{
  display:grid !important;
  grid-template-columns:minmax(160px, auto) minmax(320px, 1fr) minmax(160px, auto);
  align-items:center !important;
  gap:18px !important;
  padding-top:16px !important;
  padding-bottom:16px !important;
}
.sp-page--train-playlist .spa6-rating-wrap{
  display:flex;
  justify-content:center;
  align-items:center;
  gap:12px;
  min-width:0;
}
.sp-page--train-playlist .spa6-rating-wrap .spa6-rating__label{
  margin:0;
}
.sp-page--train-playlist .spa6-reader-navbtn--exercise-prev{
  justify-self:start !important;
}
.sp-page--train-playlist .spa6-reader-navbtn--exercise-next{
  justify-self:end !important;
}
.sp-page--train-playlist .spa6-reader-navbtn--exercise-prev,
.sp-page--train-playlist .spa6-reader-navbtn--exercise-next,
.sp-page--train-playlist .spa6-right__nav--question-tools .spa6-reader-navbtn{
  min-height:56px;
  padding-left:20px !important;
  padding-right:20px !important;
}
.sp-page--train-playlist .spa6-reader-navbtn--exercise-prev .spa6-reader-navbtn__icon,
.sp-page--train-playlist .spa6-reader-navbtn--question-prev .spa6-reader-navbtn__icon{
  margin-right:10px !important;
}
.sp-page--train-playlist .spa6-reader-navbtn--exercise-next .spa6-reader-navbtn__icon,
.sp-page--train-playlist .spa6-reader-navbtn--question-next .spa6-reader-navbtn__icon{
  margin-left:10px !important;
}
.sp-page--train-playlist .spa6-right__nav--question-tools{
  margin-top:14px !important;
  padding-top:18px !important;
  padding-bottom:18px !important;
}
.sp-page--train-playlist .spa6-right__nav--question-tools .spa6-reader-navbtn[disabled]{
  opacity:.54;
  cursor:not-allowed;
  pointer-events:none;
}
@media (max-width: 1100px){
  .sp-page--train-playlist .spa6-right__toolbar-row--rating-with-nav{
    grid-template-columns:1fr;
  }
  .sp-page--train-playlist .spa6-reader-navbtn--exercise-prev,
  .sp-page--train-playlist .spa6-reader-navbtn--exercise-next{
    justify-self:center !important;
  }
}
@media (max-width: 900px){
  .sp-page--train-playlist .spa6-left,
  [data-page="train-playlist"] .spa6-left{
    flex:0 0 auto !important;
    width:100% !important;
    max-width:100% !important;
  }
}


/* train header tighten v0.7.15 */
.sp-page--train-playlist .spa6-right__toolbar-row--actions-with-nav{
  display:grid;
  grid-template-columns:minmax(170px,auto) repeat(4,auto) minmax(170px,auto);
  align-items:center;
  gap:14px;
}
.sp-page--train-playlist .spa6-right__toolbar-row--actions-with-nav .spa6-reader-navbtn{
  background:transparent !important;
  border-color:rgba(37,99,235,.10) !important;
  box-shadow:none !important;
}
.sp-page--train-playlist .spa6-right__toolbar-row--actions-with-nav .spa6-reader-navbtn--next{
  justify-self:end;
}
.sp-page--train-playlist .spa6-right__toolbar-row--rating-with-nav{
  grid-template-columns:1fr !important;
  padding-top:4px !important;
  padding-bottom:10px !important;
}
.sp-page--train-playlist .spa6-rating-wrap{
  margin-top:-4px;
}

/* Train header final alignment v0.7.16 */
.sp-page--train-playlist .spa6-right__toolbar{
  margin-top:22px !important;
}
.sp-page--train-playlist .spa6-right__toolbar-row--actions-with-nav{
  align-items:center !important;
}
.sp-page--train-playlist .spa6-right__toolbar-row--actions-with-nav .spa6-reader-navbtn{
  border:0 !important;
  outline:0 !important;
  background:transparent !important;
  box-shadow:none !important;
  min-height:52px !important;
  padding-top:0 !important;
  padding-bottom:0 !important;
  display:inline-flex !important;
  align-items:center !important;
  justify-content:center !important;
  line-height:1 !important;
}
.sp-page--train-playlist .spa6-right__toolbar-row--actions-with-nav .spa6-reader-navbtn:hover,
.sp-page--train-playlist .spa6-right__toolbar-row--actions-with-nav .spa6-reader-navbtn:focus{
  border:0 !important;
  box-shadow:none !important;
  background:rgba(37,99,235,.04) !important;
}
.sp-page--train-playlist .spa6-right__toolbar-row--actions-with-nav .spa6-reader-navbtn > span:not(.spa6-reader-navbtn__icon){
  display:inline-flex !important;
  align-items:center !important;
  line-height:1 !important;
  transform:translateY(-1px);
}
.sp-page--train-playlist .spa6-right__toolbar-row--actions-with-nav .spa6-reader-navbtn__icon{
  flex:0 0 auto !important;
  line-height:1 !important;
}
.sp-page--train-playlist .spa6-right__toolbar-row--rating-with-nav{
  padding-top:0 !important;
}
.sp-page--train-playlist .spa6-rating-wrap{
  margin-top:0 !important;
}

/* Train playlist question navigation/highlight — restored from the older stable system.
   No overlay, no absolute positioning, no generated pseudo-pill.
   The active class is applied by JS to the real question element, preferably the <li>. */
.sp-page--train-playlist .spa6-train-question-detectable{
  scroll-margin-top: 180px;
}
.sp-page--train-playlist .spa6-train-question-active{
  outline: 2px solid color-mix(in srgb, #2563eb 35%, white);
  background: color-mix(in srgb, #2563eb 10%, white);
  border-radius: 10px;
  padding: 6px 8px;
  box-shadow: none;
}
.sp-page--train-playlist li.spa6-train-question-active{
  display: list-item;
  list-style-position: outside;
}
.sp-page--train-playlist .question-block.question-block-single.spa6-train-question-active{
  display: block;
}

.sp-page--train-playlist .spa6-right__nav--question-tools [data-spa6-action="question-help"]{
  opacity:1 !important;
  cursor:pointer !important;
  pointer-events:auto !important;
  color:#1e3a8a !important;
  border-color:rgba(37,99,235,.22) !important;
  background:#fff !important;
}
.sp-page--train-playlist .spa6-right__nav--question-tools [data-spa6-action="question-help"]:hover{
  border-color:rgba(37,99,235,.38) !important;
  box-shadow:0 12px 24px rgba(37,99,235,.10) !important;
}
.sp-page--train-playlist .spa6-right__nav--question-tools .spa6-reader-navbtn:not([disabled]){
  opacity:1;
  cursor:pointer;
  pointer-events:auto;
}



/* Active question highlight — annales/extraits: restored from V7000-4. */
body.sp-theme-annales .spa6-q--active{
  outline: 2px solid color-mix(in srgb, var(--sp-annales) 35%, white);
  background: color-mix(in srgb, var(--sp-annales) 10%, white);
  border-radius: 10px;
  padding: 6px 8px;
}
body.sp-theme-annales li.spa6-q--active{
  display: list-item;
  list-style-position: outside;
}


/* ======================================================================
   Stable question highlight — final li-based pill
   Scope: train playlists + annales/extraits.
   The active class may be on a <li> or on a non-list single-question block.
   Do not use absolute overlays or negative offsets: the pill is the element box.
   ====================================================================== */
.sp-page--train-playlist .spa6-train-question-active,
body.sp-theme-annales .spa6-q--active{
  box-sizing: border-box !important;
  width: 100% !important;
  max-width: 100% !important;
  background: color-mix(in srgb, var(--sp-annales, #2563eb) 10%, white) !important;
  border: 2px solid color-mix(in srgb, var(--sp-annales, #2563eb) 35%, white) !important;
  outline: none !important;
  outline-offset: 0 !important;
  border-radius: 18px !important;
  box-shadow: 0 14px 34px rgba(37,99,235,.08) !important;
  transform: none !important;
}

.sp-page--train-playlist li.spa6-train-question-active,
body.sp-theme-annales li.spa6-q--active{
  display: list-item !important;
  list-style-position: inside !important;
  margin: 10px 0 !important;
  padding: 10px 16px !important;
  text-indent: 0 !important;
}

.sp-page--train-playlist .question-block.question-block-single.spa6-train-question-active,
body.sp-theme-annales .question-block.question-block-single.spa6-q--active,
body.sp-theme-annales div.spa6-q--active:not(li){
  display: block !important;
  margin: 10px 0 !important;
  padding: 10px 16px !important;
  text-indent: 0 !important;
}

.sp-page--train-playlist li.spa6-train-question-active > *,
body.sp-theme-annales li.spa6-q--active > *{
  text-indent: 0 !important;
}

/* V7000-13-7 question highlight v10
   Correction ciblée : on garde le marqueur natif du <li> en position outside.
   Cela supprime le décalage bas/gauche provoqué par list-style-position: inside
   quand le <li> contient des blocs (<p>, <div>, MathJax, etc.). */
.sp-page--train-playlist li.spa6-train-question-active,
body.sp-theme-annales li.spa6-q--active{
  display:list-item !important;
  list-style-position:outside !important;
  box-sizing:border-box !important;
  width:100% !important;
  max-width:100% !important;
  margin:10px 0 10px 0 !important;
  padding:10px 18px !important;
  text-indent:0 !important;
  transform:none !important;
  vertical-align:baseline !important;
}

.sp-page--train-playlist li.spa6-train-question-active > :first-child,
body.sp-theme-annales li.spa6-q--active > :first-child{
  margin-top:0 !important;
}
.sp-page--train-playlist li.spa6-train-question-active > :last-child,
body.sp-theme-annales li.spa6-q--active > :last-child{
  margin-bottom:0 !important;
}

/* Couleur train : bleu, indépendante du monde Annales. */
.sp-page--train-playlist .spa6-train-question-active{
  background:color-mix(in srgb, #2563eb 10%, white) !important;
  border:2px solid color-mix(in srgb, #2563eb 35%, white) !important;
  border-radius:18px !important;
  outline:none !important;
  box-shadow:0 14px 34px rgba(37,99,235,.08) !important;
}

/* Couleur annales/extraits : dominante annales. */
body.sp-theme-annales .spa6-q--active{
  background:color-mix(in srgb, var(--sp-annales, #9f163d) 10%, white) !important;
  border:2px solid color-mix(in srgb, var(--sp-annales, #9f163d) 35%, white) !important;
  border-radius:18px !important;
  outline:none !important;
  box-shadow:0 14px 34px rgba(159,22,61,.08) !important;
}

/* Blocs mono-question : pleine largeur, sans toucher aux listes. */
.sp-page--train-playlist .question-block.question-block-single.spa6-train-question-active,
.sp-page--train-playlist div.spa6-train-question-active:not(li),
body.sp-theme-annales div.spa6-q--active:not(li),
body.sp-theme-annales .question-block.spa6-q--active{
  display:block !important;
  box-sizing:border-box !important;
  width:100% !important;
  max-width:100% !important;
  margin:10px 0 !important;
  padding:10px 18px !important;
  text-indent:0 !important;
  transform:none !important;
}

/* V7000-13-7-9 — surbrillance interne au contenu des <li>.
   Le <li> n'est plus la pilule : son marqueur/numéro reste natif et stable. */
.sp-page--train-playlist li.spa6-train-question-detectable,
body.sp-theme-annales li.spa6-q-detectable{
  list-style-position: outside !important;
}
.sp-page--train-playlist li.spa6-train-question-active,
body.sp-theme-annales li.spa6-q--active{
  background: transparent !important;
  border: 0 !important;
  outline: 0 !important;
  box-shadow: none !important;
  padding: 0 !important;
  margin: revert !important;
  width: auto !important;
  max-width: none !important;
  border-radius: 0 !important;
}
.sp-page--train-playlist .spa6-li-highlight-inner.spa6-train-question-active,
.sp-page--train-playlist div.spa6-train-question-active:not(li),
body.sp-theme-annales .spa6-li-highlight-inner.spa6-q--active,
body.sp-theme-annales div.spa6-q--active:not(li){
  display: block !important;
  box-sizing: border-box !important;
  width: 100% !important;
  max-width: 100% !important;
  margin: 10px 0 !important;
  padding: 10px 18px !important;
  text-indent: 0 !important;
  border-radius: 18px !important;
  outline: none !important;
  transform: none !important;
}
.sp-page--train-playlist .spa6-li-highlight-inner.spa6-train-question-active,
.sp-page--train-playlist div.spa6-train-question-active:not(li){
  background: color-mix(in srgb, #2563eb 10%, white) !important;
  border: 2px solid color-mix(in srgb, #2563eb 35%, white) !important;
  box-shadow: 0 14px 34px rgba(37,99,235,.08) !important;
}
body.sp-theme-annales .spa6-li-highlight-inner.spa6-q--active,
body.sp-theme-annales div.spa6-q--active:not(li){
  background: color-mix(in srgb, var(--sp-annales, #9f163d) 10%, white) !important;
  border: 2px solid color-mix(in srgb, var(--sp-annales, #9f163d) 35%, white) !important;
  box-shadow: 0 14px 34px rgba(159,22,61,.08) !important;
}
.sp-page--train-playlist .spa6-li-highlight-inner.spa6-train-question-active > :first-child,
body.sp-theme-annales .spa6-li-highlight-inner.spa6-q--active > :first-child{ margin-top:0 !important; }
.sp-page--train-playlist .spa6-li-highlight-inner.spa6-train-question-active > :last-child,
body.sp-theme-annales .spa6-li-highlight-inner.spa6-q--active > :last-child{ margin-bottom:0 !important; }

/* Train playlist — help/explanation modals use the train blue universe, not annales red.
   Scoped to train modals only: annales modals keep their own red styling. */
.spa6-helpmodal--train .spa6-helpmodal__panel,
.spa6-helpmodal--train-explanation .spa6-helpmodal__panel{
  border-color: rgba(59,130,246,.18);
  box-shadow: 0 28px 80px rgba(30,64,175,.18);
}
.spa6-helpmodal--train .spa6-helpmodal__head,
.spa6-helpmodal--train-explanation .spa6-helpmodal__head{
  border-bottom-color: rgba(59,130,246,.14);
  background: linear-gradient(135deg,#eff6ff,#fff);
}
.spa6-helpmodal--train .spa6-helpmodal__title,
.spa6-helpmodal--train-explanation .spa6-helpmodal__title,
.spa6-helpmodal--train .spa6-helpmodal__label,
.spa6-helpmodal--train-explanation .spa6-helpmodal__label,
.spa6-helpmodal--train .spa6-helpmodal__subqtitle,
.spa6-helpmodal--train-explanation .spa6-helpmodal__subqtitle,
.spa6-helpmodal--train .spa6-helpmodal__explanation h4,
.spa6-helpmodal--train-explanation .spa6-helpmodal__explanation h4{
  color:#1e3a8a;
}
.spa6-helpmodal--train .spa6-helpmodal__x,
.spa6-helpmodal--train-explanation .spa6-helpmodal__x{
  background:rgba(37,99,235,.08);
  color:#1e3a8a;
}
.spa6-helpmodal--train .spa6-helpmodal__body,
.spa6-helpmodal--train-explanation .spa6-helpmodal__body{
  color:#1e293b;
  font-size:.94rem;
  line-height:1.58;
}
.spa6-helpmodal--train .spa6-helpmodal__actions,
.spa6-helpmodal--train-explanation .spa6-helpmodal__actions{
  border-top-color: rgba(59,130,246,.12);
  background:#f8fbff;
}
.spa6-helpmodal--train .spa6-helpmodal__btn--ghost,
.spa6-helpmodal--train-explanation .spa6-helpmodal__btn--ghost{
  border-color:rgba(37,99,235,.18);
  color:#1e3a8a;
  box-shadow:0 6px 18px rgba(37,99,235,.06);
}
.spa6-helpmodal--train .spa6-helpmodal__btn--ghost:hover:not(:disabled),
.spa6-helpmodal--train-explanation .spa6-helpmodal__btn--ghost:hover:not(:disabled){
  background:#eff6ff;
  border-color:rgba(37,99,235,.28);
}
.spa6-helpmodal--train .spa6-helpmodal__btn--primary,
.spa6-helpmodal--train-explanation .spa6-helpmodal__btn--primary{
  background:linear-gradient(135deg,#2563eb,#60a5fa);
  color:#fff;
  box-shadow:0 12px 26px rgba(37,99,235,.22);
}
.spa6-helpmodal--train .spa6-helpmodal__btn--primary:hover:not(:disabled),
.spa6-helpmodal--train-explanation .spa6-helpmodal__btn--primary:hover:not(:disabled){
  box-shadow:0 15px 30px rgba(37,99,235,.28);
}
.spa6-helpmodal--train .spa6-helpmodal__choice,
.spa6-helpmodal--train-explanation .spa6-helpmodal__choice{
  border-color:rgba(59,130,246,.18);
  color:#1e293b;
}
.spa6-helpmodal--train .spa6-helpmodal__choice.is-active,
.spa6-helpmodal--train-explanation .spa6-helpmodal__choice.is-active{
  background:#eff6ff;
  border-color:rgba(37,99,235,.42);
  box-shadow:0 0 0 3px rgba(37,99,235,.10);
}
.spa6-helpmodal--train .spa6-helpmodal__subq,
.spa6-helpmodal--train-explanation .spa6-helpmodal__subq{
  border-color:rgba(59,130,246,.14);
  background:#f8fbff;
}
.spa6-helpmodal--train .spa6-helpmodal__enonce,
.spa6-helpmodal--train-explanation .spa6-helpmodal__enonce{
  color:#334155;
  font-size:.90rem;
}
.spa6-helpmodal--train .spa6-helpmodal__hint{
  background:#f8fbff;
  border-color:rgba(59,130,246,.16);
}
.spa6-helpmodal--train .spa6-helpmodal__hintkicker{
  color:#2563eb;
  font-size:.80rem;
}
.spa6-helpmodal--train .spa6-helpmodal__hinttext{
  color:#1e293b;
  font-size:.95rem;
  line-height:1.55;
}
.spa6-helpmodal--train .spa6-helpmodal__done{
  background:#eff6ff;
  color:#1e3a8a;
}

/* Train playlist — calmer typography inside modals only. */
.spa6-helpmodal--train-explanation .spa6-helpmodal__explanation{
  color:#1e293b;
  font-size:.94rem;
  line-height:1.58;
}
.spa6-helpmodal--train-explanation .spa6-helpmodal__explanation h4{
  font-size:1rem;
  margin:1.05em 0 .38em;
}
.spa6-helpmodal--train-explanation .spa6-helpmodal__explanation p{
  margin:.48em 0;
}
.spa6-helpmodal--train .MathJax,
.spa6-helpmodal--train-explanation .MathJax,
.spa6-helpmodal--train mjx-container,
.spa6-helpmodal--train-explanation mjx-container{
  font-size:.88em !important;
}
.spa6-helpmodal--train .MathJax_Display,
.spa6-helpmodal--train-explanation .MathJax_Display,
.spa6-helpmodal--train mjx-container[display="true"],
.spa6-helpmodal--train-explanation mjx-container[display="true"]{
  font-size:.86em !important;
  margin:.65em 0 !important;
}

/* Train playlist — corrigé global sous toute la zone lecteur (gauche + énoncé), comme pour les annales */
[data-page="train-playlist"] .spa6-train-corrige-panel{
  margin-top:16px !important;
  width:100% !important;
  max-width:100% !important;
  border:1px solid rgba(59,130,246,.16) !important;
  border-radius:18px !important;
  box-shadow:0 12px 36px rgba(15,23,42,.07) !important;
  overflow:visible !important;
}

[data-page="train-playlist"] .spa6-train-corrige-panel .spa6-right__corrigeContent{
  height:auto !important;
  max-height:none !important;
  overflow:visible !important;
}

[data-page="train-playlist"] [data-spa6-action="question-corrige"]:disabled{
  opacity:.52;
  cursor:not-allowed;
  filter:saturate(.75);
}


/* Evaluation landing cards: cleaner, left-aligned layout (scoped to /assistant/evaluation/) */
body.sp-theme-tester .sp-modegrid--two-by-two{
  margin-top: 28px;
  margin-bottom: 30px;
  gap: 28px;
}
body.sp-theme-tester .sp-modegrid--two-by-two .sp-mode{
  align-items: flex-start;
  justify-content: center;
  text-align: left;
  padding: 30px 32px;
}
body.sp-theme-tester .sp-modegrid--two-by-two .sp-mode__kicker{
  display: none !important;
}
body.sp-theme-tester .sp-modegrid--two-by-two .sp-mode__title{
  margin-top: 0;
  text-align: left;
  font-size: 20px;
  line-height: 1.2;
  font-weight: 720;
  letter-spacing: -0.012em;
  color: color-mix(in srgb, var(--sp-tester-ink) 82%, #0f172a);
}
body.sp-theme-tester .sp-modegrid--two-by-two .sp-mode__desc{
  text-align: left;
  margin-top: 14px;
  max-width: 58ch;
  font-size: 15px;
  line-height: 1.65;
  font-weight: 430;
  color: color-mix(in srgb, var(--sp-text-secondary) 92%, #0f172a);
}
body.sp-theme-tester .sp-modegrid--two-by-two .sp-mode__desc p{
  margin: 0;
}
body.sp-theme-tester .sp-modegrid--two-by-two .sp-mode__desc p + p{
  margin-top: 8px;
}
body.sp-theme-tester .sp-modegrid--two-by-two .sp-mode__badge{
  margin-left: 0;
  margin-right: 0;
  margin-top: 22px;
}
body.sp-theme-tester .sp-cta--tester{
  margin-top: 6px;
  text-align: center;
  font-weight: 520;
}

/* Evaluation theme page: explanatory intro + breathing room around selectors */
body.sp-theme-tester[data-page="me-tester-theme"] .sp-theme-eval-info,
body.sp-theme-tester .sp-theme-eval-info{
  margin: 22px 0 28px;
  padding: 18px 20px;
  border: 1px solid color-mix(in srgb, var(--sp-tester) 18%, rgba(15,23,42,.10));
  border-radius: 18px;
  background: linear-gradient(180deg, rgba(255,255,255,.86), color-mix(in srgb, var(--sp-tester) 5%, white));
  color: color-mix(in srgb, var(--sp-text-secondary) 92%, #0f172a);
  font-size: 15px;
  line-height: 1.62;
  box-shadow: 0 16px 34px rgba(139,92,246,.06);
}
body.sp-theme-tester .sp-theme-eval-info p{
  margin: 0;
  max-width: 92ch;
}
body.sp-theme-tester .sp-theme-eval-info p + p{
  margin-top: 8px;
}
body.sp-theme-tester .sp-theme-eval-field--theme{
  margin-top: 22px;
}
body.sp-theme-tester .sp-theme-eval-field--chapitre{
  margin-top: 24px;
  margin-bottom: 28px;
}
body.sp-theme-tester .sp-actions--center{
  margin-top: 8px;
}

/* Theme evaluation page — cleaner full-width card and lighter intro */
body.sp-theme-tester[data-page="me-tester-theme"] .sp-container{
  max-width: none;
  width: 100%;
}
body.sp-theme-tester[data-page="me-tester-theme"] .sp-panel--theme-eval{
  width: 100%;
  border-color: transparent;
  background:
    radial-gradient(900px 300px at 16% 0%, rgba(139,92,246,.085), rgba(139,92,246,0) 62%),
    radial-gradient(900px 340px at 84% 8%, rgba(167,139,250,.075), rgba(167,139,250,0) 64%),
    linear-gradient(180deg, rgba(255,255,255,.96), rgba(255,255,255,.88));
  box-shadow: 0 20px 52px rgba(139,92,246,.09), 0 1px 0 rgba(255,255,255,.92) inset;
}
body.sp-theme-tester[data-page="me-tester-theme"] .sp-theme-eval-intro{
  margin: 0 0 34px;
  max-width: none;
  color: color-mix(in srgb, var(--sp-text-secondary) 88%, #0f172a);
  font-size: 15px;
  line-height: 1.62;
  font-weight: 430;
}
body.sp-theme-tester[data-page="me-tester-theme"] .sp-theme-eval-intro p{
  margin: 0;
  max-width: 96ch;
}
body.sp-theme-tester[data-page="me-tester-theme"] .sp-theme-eval-intro p:first-child{
  font-size: 16px;
  color: color-mix(in srgb, var(--sp-text-secondary) 94%, #0f172a);
}
body.sp-theme-tester[data-page="me-tester-theme"] .sp-theme-eval-intro p + p{
  margin-top: 8px;
}
body.sp-theme-tester[data-page="me-tester-theme"] .sp-theme-eval-info{
  display: contents;
}
body.sp-theme-tester[data-page="me-tester-theme"] .sp-theme-eval-field--theme{
  margin-top: 30px;
}
body.sp-theme-tester[data-page="me-tester-theme"] .sp-theme-eval-field--chapitre{
  margin-top: 26px;
  margin-bottom: 34px;
}
body.sp-theme-tester[data-page="me-tester-theme"] .sp-actions--center{
  display: flex;
  justify-content: center;
  margin-top: 12px;
}
body.sp-theme-tester[data-page="me-tester-theme"] .sp-actions--center .sp-btn{
  min-width: 210px;
  justify-content: center;
}

/* Theme evaluation page — full-width intro as key points */
body.sp-theme-tester[data-page="me-tester-theme"] .sp-theme-eval-intro{
  width: 100%;
  max-width: none;
  margin: 0 0 36px;
  color: color-mix(in srgb, var(--sp-text-secondary) 90%, #0f172a);
  font-size: 15px;
  line-height: 1.62;
  font-weight: 430;
}
body.sp-theme-tester[data-page="me-tester-theme"] .sp-theme-eval-intro > p{
  margin: 0 0 18px;
  max-width: none;
  font-size: 15px;
  line-height: 1.62;
  font-weight: 430;
  color: color-mix(in srgb, var(--sp-text-secondary) 92%, #0f172a);
}
body.sp-theme-tester[data-page="me-tester-theme"] .sp-theme-eval-intro__list{
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 14px;
  margin: 0;
  padding: 0;
  list-style: none;
}
body.sp-theme-tester[data-page="me-tester-theme"] .sp-theme-eval-intro__list li{
  position: relative;
  margin: 0;
  padding: 15px 18px 15px 40px;
  min-height: 86px;
  border-radius: 18px;
  background: rgba(255,255,255,.58);
  box-shadow: 0 14px 34px rgba(139,92,246,.055), inset 0 0 0 1px rgba(139,92,246,.075);
  color: color-mix(in srgb, var(--sp-text-secondary) 90%, #0f172a);
  font-size: 14px;
  line-height: 1.55;
  font-weight: 420;
}
body.sp-theme-tester[data-page="me-tester-theme"] .sp-theme-eval-intro__list li::before{
  content: "";
  position: absolute;
  left: 18px;
  top: 22px;
  width: 8px;
  height: 8px;
  border-radius: 999px;
  background: color-mix(in srgb, var(--sp-tester) 76%, #ffffff);
  box-shadow: 0 0 0 5px color-mix(in srgb, var(--sp-tester) 12%, transparent);
}
@media (max-width: 980px){
  body.sp-theme-tester[data-page="me-tester-theme"] .sp-theme-eval-intro__list{
    grid-template-columns: 1fr;
  }
  body.sp-theme-tester[data-page="me-tester-theme"] .sp-theme-eval-intro__list li{
    min-height: auto;
  }
}

/* ======================================================
   Évaluation → Annale : refonte filtres + cartes
   ====================================================== */
body.sp-theme-tester[data-page="me-tester-annale"] .sp-container--wide{
  max-width: 1480px;
}
body.sp-theme-tester[data-page="me-tester-annale"] .sp-eval-annale-head .sp-pagehead__subtitle{
  max-width: 680px;
  line-height: 1.55;
}
body.sp-theme-tester[data-page="me-tester-annale"] .sp-eval-annale-panel{
  padding: 24px 26px 26px;
  border: 0;
  background:
    radial-gradient(circle at 14% 8%, rgba(139,92,246,.11), transparent 34%),
    linear-gradient(180deg, rgba(255,255,255,.96), rgba(255,255,255,.86));
  box-shadow: 0 22px 58px rgba(91,33,182,.09), inset 0 1px 0 rgba(255,255,255,.88);
}
body.sp-theme-tester[data-page="me-tester-annale"] .sp-eval-annale-intro{
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 14px;
  margin: 0 0 24px;
  padding: 0;
  list-style: none;
}
body.sp-theme-tester[data-page="me-tester-annale"] .sp-eval-annale-intro li{
  position: relative;
  padding: 14px 16px 14px 42px;
  border-radius: 18px;
  background: rgba(255,255,255,.72);
  border: 1px solid rgba(139,92,246,.13);
  color: #4b5563;
  font-size: 14.5px;
  font-weight: 520;
  line-height: 1.5;
}
body.sp-theme-tester[data-page="me-tester-annale"] .sp-eval-annale-intro li::before{
  content: "✓";
  position: absolute;
  left: 16px;
  top: 14px;
  width: 18px;
  height: 18px;
  border-radius: 999px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  color: color-mix(in srgb, var(--sp-tester-ink) 92%, #000);
  background: color-mix(in srgb, var(--sp-tester) 16%, white);
  font-size: 12px;
  font-weight: 900;
}
body.sp-theme-tester[data-page="me-tester-annale"] .sp-eval-annale-filters{
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 20px 22px;
  margin-top: 8px;
}
body.sp-theme-tester[data-page="me-tester-annale"] .sp-eval-annale-filterblock--search{
  grid-column: 1 / -1;
}
body.sp-theme-tester[data-page="me-tester-annale"] .sp-field__label{
  margin-bottom: 9px;
}
body.sp-theme-tester[data-page="me-tester-annale"] .sp-help{
  margin-top: 6px;
  color: #64748b;
  font-size: 12.5px;
  font-weight: 500;
  line-height: 1.4;
}
body.sp-theme-tester[data-page="me-tester-annale"] .sp-pillbar{
  display: flex;
  flex-wrap: wrap;
  gap: 9px;
  align-items: center;
}
body.sp-theme-tester[data-page="me-tester-annale"] .sp-pillbar__btn{
  appearance: none;
  border: 1px solid rgba(15,23,42,.10);
  background: rgba(255,255,255,.78);
  color: #334155;
  border-radius: 999px;
  padding: 10px 14px;
  font-weight: 720;
  font-size: 13.5px;
  cursor: pointer;
  transition: background .15s ease, border-color .15s ease, transform .15s ease, box-shadow .15s ease;
}
body.sp-theme-tester[data-page="me-tester-annale"] .sp-pillbar__btn:hover{
  transform: translateY(-1px);
  border-color: color-mix(in srgb, var(--sp-tester) 30%, rgba(15,23,42,.10));
  box-shadow: 0 10px 24px rgba(91,33,182,.08);
}
body.sp-theme-tester[data-page="me-tester-annale"] .sp-pillbar__btn.is-active{
  color: color-mix(in srgb, var(--sp-tester-ink) 92%, #000);
  background: color-mix(in srgb, var(--sp-tester) 16%, white);
  border-color: color-mix(in srgb, var(--sp-tester) 36%, rgba(15,23,42,.10));
  box-shadow: 0 12px 28px rgba(139,92,246,.11);
}
body.sp-theme-tester[data-page="me-tester-annale"] .sp-tagsearch{
  min-height: 48px;
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  align-items: center;
  padding: 7px 10px;
  border-radius: 16px;
  background: rgba(255,255,255,.82);
  border: 1px solid rgba(15,23,42,.10);
  box-shadow: inset 0 1px 0 rgba(255,255,255,.9);
}
body.sp-theme-tester[data-page="me-tester-annale"] .sp-tagsearch:focus-within{
  border-color: color-mix(in srgb, var(--sp-tester) 34%, rgba(15,23,42,.10));
  box-shadow: 0 0 0 4px color-mix(in srgb, var(--sp-tester) 12%, transparent);
}
body.sp-theme-tester[data-page="me-tester-annale"] .sp-tagsearch__chips{
  display: flex;
  flex-wrap: wrap;
  gap: 7px;
}
body.sp-theme-tester[data-page="me-tester-annale"] .sp-tagsearch__input{
  min-width: 230px;
  flex: 1 1 260px;
  border: 0;
  outline: 0;
  background: transparent;
  color: #0f172a;
  font-size: 14px;
  font-weight: 520;
  padding: 8px 4px;
}
body.sp-theme-tester[data-page="me-tester-annale"] .sp-tagchip{
  display: inline-flex;
  align-items: center;
  gap: 7px;
  border: 1px solid color-mix(in srgb, var(--sp-tester) 22%, rgba(15,23,42,.10));
  background: color-mix(in srgb, var(--sp-tester) 10%, white);
  color: color-mix(in srgb, var(--sp-tester-ink) 90%, #111827);
  border-radius: 999px;
  padding: 7px 9px 7px 11px;
  font-size: 13px;
  font-weight: 760;
  cursor: pointer;
}
body.sp-theme-tester[data-page="me-tester-annale"] .sp-eval-annale-toolbar{
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 14px;
  margin-top: 22px;
  padding-top: 18px;
  border-top: 1px solid rgba(139,92,246,.12);
}
body.sp-theme-tester[data-page="me-tester-annale"] .sp-eval-annale-count{
  color: color-mix(in srgb, var(--sp-tester-ink) 82%, #111827);
  font-weight: 760;
  font-size: 14px;
}
body.sp-theme-tester[data-page="me-tester-annale"] .sp-eval-annale-results-panel{
  margin-top: 18px;
  padding: 24px 26px;
}
body.sp-theme-tester[data-page="me-tester-annale"] .sp-eval-annale-results-head{
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 16px;
  margin-bottom: 16px;
}
body.sp-theme-tester[data-page="me-tester-annale"] .sp-eval-annale-results{
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 16px;
}
body.sp-theme-tester[data-page="me-tester-annale"] .sp-annale-eval-card{
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  gap: 18px;
  min-height: 230px;
  border-radius: 24px;
  padding: 20px;
  background: linear-gradient(180deg, rgba(255,255,255,.98), rgba(248,250,255,.94));
  border: 1px solid rgba(15,23,42,.10);
  box-shadow: 0 16px 40px rgba(15,23,42,.055);
  transition: transform .15s ease, box-shadow .15s ease, border-color .15s ease;
}
body.sp-theme-tester[data-page="me-tester-annale"] .sp-annale-eval-card:hover{
  transform: translateY(-2px);
  border-color: color-mix(in srgb, var(--sp-tester) 28%, rgba(15,23,42,.10));
  box-shadow: 0 24px 58px rgba(91,33,182,.10);
}
body.sp-theme-tester[data-page="me-tester-annale"] .sp-annale-eval-card.is-done{
  background: linear-gradient(180deg, rgba(235,231,255,.98), rgba(226,232,240,.96));
  border-color: rgba(91,33,182,.24);
  box-shadow: 0 18px 48px rgba(49,46,129,.12);
}
body.sp-theme-tester[data-page="me-tester-annale"] .sp-annale-eval-card.is-done .sp-annale-eval-card__title{
  color: #312e81;
}
body.sp-theme-tester[data-page="me-tester-annale"] .sp-annale-eval-card__top{
  display: flex;
  justify-content: space-between;
  gap: 16px;
  align-items: flex-start;
}
body.sp-theme-tester[data-page="me-tester-annale"] .sp-annale-eval-card__eyebrow{
  display: inline-flex;
  align-items: center;
  width: fit-content;
  border-radius: 999px;
  padding: 6px 10px;
  background: rgba(15,23,42,.05);
  border: 1px solid rgba(15,23,42,.08);
  color: #64748b;
  font-size: 12px;
  font-weight: 840;
  margin-bottom: 12px;
}
body.sp-theme-tester[data-page="me-tester-annale"] .sp-annale-eval-card__credits{
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-bottom: 12px;
}
body.sp-theme-tester[data-page="me-tester-annale"] .sp-annale-eval-card__credit,
body.sp-theme-tester[data-page="me-tester-annale"] .sp-annale-eval-card__status{
  display: inline-flex;
  align-items: center;
  width: fit-content;
  border-radius: 999px;
  padding: 6px 10px;
  font-size: 12px;
  font-weight: 840;
  background: rgba(91,33,182,.08);
  border: 1px solid rgba(91,33,182,.16);
  color: #5b21b6;
}
body.sp-theme-tester[data-page="me-tester-annale"] .sp-annale-eval-card__status{
  background: rgba(15,23,42,.08);
  border-color: rgba(15,23,42,.14);
  color: #334155;
}
body.sp-theme-tester[data-page="me-tester-annale"] .sp-annale-eval-card__title{
  margin: 0;
  color: color-mix(in srgb, var(--sp-tester-ink) 92%, #000);
  font-size: 20px;
  line-height: 1.2;
  font-weight: 860;
  letter-spacing: -0.02em;
}
body.sp-theme-tester[data-page="me-tester-annale"] .sp-annale-eval-card__subtitle{
  margin-top: 8px;
  color: #475569;
  line-height: 1.45;
  font-size: 14.5px;
  font-weight: 540;
}
body.sp-theme-tester[data-page="me-tester-annale"] .sp-annale-eval-card__difficulty{
  flex: 0 0 auto;
  display: inline-flex;
  align-items: center;
  justify-content: flex-end;
  gap: 3px;
  min-width: 112px;
  padding-top: 2px;
  font-size: 20px;
  line-height: 1;
  white-space: nowrap;
}
body.sp-theme-tester[data-page="me-tester-annale"] .sp-annale-eval-card__flame{
  display: inline-block;
  filter: grayscale(1) saturate(.35);
  opacity: .22;
  transform: translateY(-1px);
}
body.sp-theme-tester[data-page="me-tester-annale"] .sp-annale-eval-card__flame.is-on{
  filter: none;
  opacity: 1;
}
body.sp-theme-tester[data-page="me-tester-annale"] .sp-annale-eval-card__badges{
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-top: 16px;
}
body.sp-theme-tester[data-page="me-tester-annale"] .sp-annale-eval-card__badge{
  display: inline-flex;
  align-items: center;
  border-radius: 999px;
  padding: 6px 9px;
  background: rgba(99,102,241,.07);
  color: #475569;
  font-size: 12.5px;
  font-weight: 720;
  border: 1px solid rgba(99,102,241,.10);
}
body.sp-theme-tester[data-page="me-tester-annale"] .sp-annale-eval-card__actions{
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding-top: 14px;
  border-top: 1px solid rgba(15,23,42,.07);
}
body.sp-theme-tester[data-page="me-tester-annale"] .sp-annale-eval-card__link{
  color: color-mix(in srgb, var(--sp-tester-ink) 90%, #000);
  font-weight: 800;
  text-decoration: none;
}
body.sp-theme-tester[data-page="me-tester-annale"] .sp-annale-eval-card__link:hover{
  text-decoration: underline;
}
@media (max-width: 980px){
  body.sp-theme-tester[data-page="me-tester-annale"] .sp-eval-annale-intro,
  body.sp-theme-tester[data-page="me-tester-annale"] .sp-eval-annale-filters,
  body.sp-theme-tester[data-page="me-tester-annale"] .sp-eval-annale-results{
    grid-template-columns: 1fr;
  }
}
@media (max-width: 640px){
  body.sp-theme-tester[data-page="me-tester-annale"] .sp-eval-annale-panel,
  body.sp-theme-tester[data-page="me-tester-annale"] .sp-eval-annale-results-panel{
    padding: 18px;
  }
  body.sp-theme-tester[data-page="me-tester-annale"] .sp-annale-eval-card__top,
  body.sp-theme-tester[data-page="me-tester-annale"] .sp-annale-eval-card__actions,
  body.sp-theme-tester[data-page="me-tester-annale"] .sp-eval-annale-toolbar{
    flex-direction: column;
    align-items: stretch;
  }
  body.sp-theme-tester[data-page="me-tester-annale"] .sp-annale-eval-card__count{
    text-align: left;
  }
}


/* Annales index — texte et cartes allégés */
body.sp-page--annales .sp-pagehead__subtitle{
  max-width: 760px;
  line-height: 1.55;
}
body.sp-page--annales .sp-panel__subtitle,
body.sp-page--annales .sp-field .sp-cta,
body.sp-page--annales .sp-cta{
  color: #647084;
  font-weight: 500;
}
body.sp-page--annales .sp-mode__desc{
  max-width: 520px;
  margin-left: auto;
  margin-right: auto;
  line-height: 1.55;
  font-weight: 500;
}
body.sp-page--annales .sp-cardmini--annales{
  background:
    radial-gradient(850px 240px at 10% 0%, rgba(139,29,61,.055), transparent 62%),
    radial-gradient(720px 220px at 110% 28%, rgba(239,68,68,.045), transparent 58%),
    linear-gradient(180deg, rgba(255,246,249,.72) 0%, rgba(255,255,255,.96) 100%);
  border-color: rgba(139,29,61,.14);
}
body.sp-page--annales .sp-cardmini--annales:hover{
  border-color: rgba(139,29,61,.24);
  box-shadow: 0 14px 34px rgba(139,29,61,.075);
}
body.sp-page--annales .sp-cardmini__sub{
  display:none !important;
}
body.sp-page--annales .sp-cardmini__icons--difficulty{
  gap: 0;
  font-size: 15px;
  opacity: .95;
}
body.sp-page--annales .sp-scale--hearts{
  display:none !important;
}

/* Annales page refinements: restore likes, lighter helper text, no redundant badge */
body.sp-page--annales .sp-pagehead__subtitle{
  max-width: 720px;
  font-size: 16px;
  line-height: 1.5;
  font-weight: 500;
  color: #4b5567;
}
body.sp-page--annales .sp-cta{
  font-size: 13px;
  line-height: 1.35;
  font-weight: 500;
  color: #7a8293;
}
body.sp-page--annales .sp-cardmini__top{
  justify-content: flex-end;
  min-height: 20px;
}
body.sp-page--annales .sp-cardmini__badge{
  display: none !important;
}
body.sp-page--annales .sp-cardmini__title{
  color: #7f1d3a;
}
body.sp-page--annales .sp-cardmini__icons{
  display: inline-flex;
  align-items: center;
  gap: 10px;
}
body.sp-page--annales .sp-cardmini__icons--difficulty,
body.sp-page--annales .sp-cardmini__icons--love{
  display: inline-flex;
  gap: 0;
  font-size: 15px;
  line-height: 1;
  opacity: .95;
}
body.sp-page--annales .sp-scale--hearts{
  display: inline-flex !important;
}

/* Annales cards: move difficulty and “on aime” to a clean footer */
body.sp-page--annales .sp-cardmini--annales{
  display: flex;
  flex-direction: column;
  min-height: 178px;
}
body.sp-page--annales .sp-cardmini__rating-footer{
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  margin-top: auto;
  padding-top: 12px;
  border-top: 1px solid rgba(139, 29, 61, .10);
}
body.sp-page--annales .sp-cardmini__rating-left,
body.sp-page--annales .sp-cardmini__rating-right{
  display: inline-flex;
  align-items: center;
  min-height: 20px;
}
body.sp-page--annales .sp-cardmini__rating-left{
  justify-content: flex-start;
}
body.sp-page--annales .sp-cardmini__rating-right{
  justify-content: flex-end;
  margin-left: auto;
}
body.sp-page--annales .sp-cardmini__rating-footer .sp-scale{
  gap: 3px;
}
body.sp-page--annales .sp-cardmini__rating-footer .sp-scale__icon{
  font-size: 15px;
  line-height: 1;
}
body.sp-page--annales .sp-cardmini__rating-footer .sp-scale__icon--dull{
  opacity: .20;
  filter: saturate(.45);
}
@media (max-width: 640px){
  body.sp-page--annales .sp-cardmini__rating-footer{
    padding-top: 10px;
  }
  body.sp-page--annales .sp-cardmini__rating-footer .sp-scale__icon{
    font-size: 14px;
  }
}

/* === 2026-05-20 — Code page modern soft green + active mode clarity === */
body.sp-theme-code{
  --sp-code:#7a9488;
  --sp-code-soft:#f4faf7;
  --sp-code-ink:#3f6658;
  --sp-focus-border:rgba(122,148,136,.34);
  --sp-focus-ring:rgba(122,148,136,.14);
  background:
    radial-gradient(1100px 480px at 50% -180px, rgba(122,148,136,.10), transparent 64%),
    radial-gradient(760px 340px at 8% 6%, rgba(110,139,128,.07), transparent 58%),
    linear-gradient(180deg,#f7faf8 0%,#f5f8f7 100%) !important;
}
body.sp-theme-code .sp-panel{
  border-color:rgba(122,148,136,.16) !important;
  box-shadow:0 14px 38px rgba(15,23,42,.045),0 0 0 1px rgba(255,255,255,.72) !important;
}
body.sp-theme-code .sp-mode{
  background:rgba(255,255,255,.86) !important;
  border-color:rgba(15,23,42,.10) !important;
  box-shadow:0 10px 30px rgba(15,23,42,.035) !important;
}
body.sp-theme-code .sp-mode:hover{
  background:linear-gradient(180deg,rgba(255,255,255,.98),rgba(248,251,250,.96)) !important;
  border-color:rgba(122,148,136,.24) !important;
  box-shadow:0 18px 42px rgba(63,102,88,.10) !important;
  transform:translateY(-1px);
}
body.sp-theme-code .sp-mode.is-active{
  background:
    radial-gradient(680px 260px at 12% 0%,rgba(122,148,136,.16),transparent 64%),
    linear-gradient(180deg,rgba(244,250,247,.96),rgba(255,255,255,.90)) !important;
  border-color:rgba(122,148,136,.32) !important;
  box-shadow:0 18px 44px rgba(63,102,88,.12) !important;
}
body.sp-theme-code .sp-mode__kicker,
body.sp-theme-code .sp-mini-chip{
  background:rgba(122,148,136,.10) !important;
  color:#3f6658 !important;
  border-color:rgba(122,148,136,.16) !important;
}
body.sp-theme-code .sp-mode__title,
body.sp-theme-code .sp-mode__go,
body.sp-theme-code .sp-panel__title,
body.sp-theme-code .sp-field__label,
body.sp-theme-code .sp-train-group__title{
  color:#3f6658 !important;
}
body.sp-theme-code .sp-mode__go{
  background:rgba(122,148,136,.10) !important;
  border-color:rgba(122,148,136,.18) !important;
}
body.sp-theme-code .sp-tabs__indicator,
body.sp-theme-code .sp-tabs__btn.is-active{
  color:#3f6658 !important;
}
body.sp-theme-code .sp-tabs__indicator{
  background:rgba(122,148,136,.14) !important;
  box-shadow:inset 0 0 0 1px rgba(122,148,136,.16) !important;
}

/* === 2026-05-20 — Annales mode selection: selected mode uses the same soft red family as result cards === */
body.sp-theme-annales .sp-mode.is-active{
  background:
    radial-gradient(760px 260px at 12% 0%,rgba(139,29,61,.12),transparent 62%),
    linear-gradient(180deg,rgba(253,233,239,.70),rgba(255,255,255,.92)) !important;
  border-color:rgba(139,29,61,.22) !important;
  box-shadow:0 18px 42px rgba(139,29,61,.10) !important;
}
body.sp-theme-annales .sp-mode:not(.is-active){
  background:rgba(255,255,255,.88) !important;
}

/* === 2026-05-20 — Code world: brighter sage, modern glow, harmonised docs === */
body.sp-theme-code{
  --sp-code:#4f8a70;
  --sp-code-soft:#eef8f2;
  --sp-code-ink:#235f45;
  --sp-focus-border:rgba(79,138,112,.34);
  --sp-focus-ring:rgba(79,138,112,.15);
  background:
    radial-gradient(1000px 420px at 8% -8%, rgba(79,138,112,.13), transparent 58%),
    radial-gradient(780px 360px at 96% 4%, rgba(142,199,160,.16), transparent 58%),
    linear-gradient(180deg,#f8fbf9 0%,#f3f8f5 100%) !important;
}
body.sp-theme-code .sp-pagehead__title{
  color:#0f172a;
}
body.sp-theme-code .sp-pagehead__subtitle,
body.sp-theme-code .sp-panel__subtitle{
  color:rgba(15,23,42,.74) !important;
}
body.sp-theme-code .sp-panel{
  background:linear-gradient(180deg,rgba(255,255,255,.96),rgba(253,255,254,.92)) !important;
  border-color:rgba(79,138,112,.12) !important;
  box-shadow:
    0 18px 46px rgba(35,95,69,.055),
    inset 0 1px 0 rgba(255,255,255,.90) !important;
}
body.sp-theme-code .sp-panel__title,
body.sp-theme-code .sp-field__label,
body.sp-theme-code .sp-train-group__title{
  color:#235f45 !important;
}
body.sp-theme-code .sp-mode{
  transition:transform .18s ease, box-shadow .18s ease, border-color .18s ease, background .18s ease;
  background:linear-gradient(180deg,rgba(255,255,255,.98),rgba(250,253,251,.96)) !important;
  border-color:rgba(15,23,42,.08) !important;
  box-shadow:0 8px 22px rgba(15,23,42,.035), inset 0 1px 0 rgba(255,255,255,.92) !important;
}
body.sp-theme-code .sp-mode:hover{
  transform:translateY(-2px);
  background:
    radial-gradient(640px 240px at 18% 0%,rgba(79,138,112,.10),transparent 62%),
    linear-gradient(180deg,rgba(255,255,255,1),rgba(247,252,249,.98)) !important;
  border-color:rgba(79,138,112,.22) !important;
  box-shadow:0 18px 42px rgba(35,95,69,.105), inset 0 1px 0 rgba(255,255,255,.95) !important;
}
body.sp-theme-code .sp-mode.is-active{
  background:
    radial-gradient(720px 280px at 14% -6%,rgba(79,138,112,.20),transparent 60%),
    linear-gradient(180deg,rgba(238,248,242,.98),rgba(255,255,255,.92)) !important;
  border-color:rgba(79,138,112,.32) !important;
  box-shadow:
    0 20px 48px rgba(35,95,69,.13),
    inset 0 1px 0 rgba(255,255,255,.9) !important;
}
body.sp-theme-code .sp-mode__title{
  color:#235f45 !important;
  letter-spacing:-.01em;
}
body.sp-theme-code .sp-mode__go,
body.sp-theme-code .sp-btn--primary,
body.sp-theme-code .sp-btn--ghost{
  color:#235f45 !important;
}
body.sp-theme-code .sp-mode__go,
body.sp-theme-code .sp-btn--primary{
  background:linear-gradient(180deg,rgba(238,248,242,1),rgba(229,243,235,.96)) !important;
  border-color:rgba(79,138,112,.22) !important;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.82);
}
body.sp-theme-code .sp-mode__go:hover,
body.sp-theme-code .sp-btn--primary:hover{
  background:linear-gradient(180deg,rgba(225,242,232,1),rgba(213,235,222,.98)) !important;
  border-color:rgba(79,138,112,.34) !important;
}
body.sp-theme-code .sp-mode__kicker,
body.sp-theme-code .sp-mini-chip{
  background:rgba(79,138,112,.11) !important;
  color:#235f45 !important;
  border-color:rgba(79,138,112,.14) !important;
}
body.sp-theme-code .sp-tabs{
  background:rgba(255,255,255,.82) !important;
  box-shadow:0 10px 26px rgba(15,23,42,.035);
}
body.sp-theme-code .sp-tabs__indicator{
  background:linear-gradient(180deg,rgba(219,241,228,.98),rgba(236,248,240,.98)) !important;
  box-shadow:inset 0 0 0 1px rgba(79,138,112,.22), 0 8px 18px rgba(35,95,69,.08) !important;
}
body.sp-theme-code .sp-tabs__btn.is-active{
  color:#235f45 !important;
}
body.sp-theme-code .sp-select,
body.sp-theme-code .sp-dropdown__btn{
  background:rgba(255,255,255,.94) !important;
  border-color:rgba(79,138,112,.16) !important;
}
body.sp-theme-code .sp-dropdown__btn:hover,
body.sp-theme-code .sp-select:focus{
  border-color:rgba(79,138,112,.30) !important;
  box-shadow:0 0 0 4px rgba(79,138,112,.10) !important;
}
body.sp-theme-code .sp-train-group{
  background:
    radial-gradient(720px 240px at 4% 0%,rgba(79,138,112,.08),transparent 64%),
    rgba(255,255,255,.72) !important;
  border-color:rgba(79,138,112,.12) !important;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.86) !important;
}
body.sp-theme-code .sp-mini-card{
  min-height:118px;
  padding:16px 16px 14px;
  background:linear-gradient(180deg,rgba(255,255,255,.98),rgba(250,253,251,.96)) !important;
  border-color:rgba(79,138,112,.13) !important;
  box-shadow:0 8px 22px rgba(15,23,42,.035), inset 0 1px 0 rgba(255,255,255,.88) !important;
  transition:transform .18s ease, box-shadow .18s ease, border-color .18s ease, background .18s ease;
}
body.sp-theme-code .sp-mini-card:hover{
  transform:translateY(-2px);
  background:
    radial-gradient(500px 180px at 10% 0%,rgba(79,138,112,.09),transparent 62%),
    linear-gradient(180deg,#fff,#f9fdfa) !important;
  border-color:rgba(79,138,112,.26) !important;
  box-shadow:0 16px 34px rgba(35,95,69,.10), inset 0 1px 0 rgba(255,255,255,.94) !important;
}
body.sp-theme-code .sp-mini-card__title{
  color:#0f172a !important;
  font-weight:850;
  line-height:1.25;
}
body.sp-theme-code .sp-mini-card__meta{
  gap:7px;
}
body.sp-theme-code .sp-mini-chip{
  font-size:11px;
  line-height:1.15;
  padding:4px 9px;
}

/* Harmonisation des fiches Python/SQL avec le vert sauge lumineux */
body.sp-theme-code.sp-page--code-doc{
  background:
    radial-gradient(960px 380px at 8% -6%,rgba(79,138,112,.13),transparent 58%),
    radial-gradient(860px 360px at 100% 0%,rgba(142,199,160,.16),transparent 58%),
    linear-gradient(180deg,#f8fbf9 0%,#f3f8f5 100%) !important;
}
.sp-page--code-doc .sp-panel--code-doc-shell{
  background:linear-gradient(180deg,rgba(255,255,255,.97),rgba(253,255,254,.94)) !important;
  border-color:rgba(79,138,112,.12) !important;
  box-shadow:0 18px 46px rgba(35,95,69,.06), inset 0 1px 0 rgba(255,255,255,.90) !important;
}
.sp-page--code-doc .sp-python-navpanel,
.sp-page--code-doc .sp-python-meta{
  background:
    radial-gradient(540px 220px at 10% 0%,rgba(79,138,112,.13),transparent 62%),
    linear-gradient(180deg,#eef8f2 0%,#fbfefc 100%) !important;
  border-color:rgba(79,138,112,.18) !important;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.92), 0 10px 24px rgba(35,95,69,.045) !important;
}
.sp-page--code-doc .sp-python-doc-right{
  border-color:rgba(79,138,112,.11) !important;
  box-shadow:0 14px 36px rgba(15,23,42,.045), inset 0 1px 0 rgba(255,255,255,.88) !important;
}
.sp-page--code-doc .sp-python-meta .sp-course-meta__title,
.sp-page--code-doc .sp-course-nav .sp-course-nav__sectiontitle,
.sp-page--code-doc .sp-python-navgroup__title{
  color:#0f172a !important;
}
.sp-page--code-doc .sp-course-nav__link.is-active{
  background:linear-gradient(180deg,rgba(219,241,228,.98),rgba(236,248,240,.96)) !important;
  border-color:rgba(79,138,112,.22) !important;
  color:#235f45 !important;
  box-shadow:0 8px 16px rgba(35,95,69,.07), inset 0 1px 0 rgba(255,255,255,.84);
}
.sp-page--code-doc .sp-course-nav__link:hover{
  background:rgba(79,138,112,.07) !important;
  color:#235f45 !important;
}
.sp-page--code-doc .sp-python-doc-body .bloc-title,
.sp-page--code-doc .sp-python-doc-body h3{
  color:#235f45 !important;
}
.sp-page--code-doc .sp-python-content-shell,
.sp-page--code-doc .sp-course-contentcard > .sp-course-scroll > .sp-course-chunk > .sp-course-chunk__body,
.sp-page--code-doc .sp-python-sectionnav{
  background:#fff !important;
}
.sp-page--code-doc .sp-python-doc-body pre:not(.sp-python-codebox),
.sp-page--code-doc .sp-python-codebox,
.sp-page--code-sql-doc .sp-sql-course-content pre,
.sp-page--code-sql-doc .sp-sql-example-commentaire pre,
.sp-page--code-sql-doc .sp-sql-explication pre,
.sp-page--code-sql-doc .sp-sql-enonce pre{
  background:linear-gradient(180deg,#f8fcfa,#f3f9f6) !important;
  border-color:rgba(79,138,112,.16) !important;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.84) !important;
}
.sp-page--code-doc .sp-python-corrige{
  background:linear-gradient(180deg,#eef8f2 0%,#fbfefc 100%) !important;
  border-top-color:rgba(79,138,112,.18) !important;
}


/* --- Code page final typography: calmer chips and selector labels --- */
body.sp-theme-code .sp-field__label,
body.sp-theme-code .sp-tabs__btn,
body.sp-theme-code .sp-tabs__btn.is-active{
  color: #111827 !important;
}
body.sp-theme-code .sp-field__label{
  font-weight: 700;
}
body.sp-theme-code .sp-tabs__btn{
  font-weight: 700;
}
body.sp-theme-code .sp-mini-chip,
body.sp-theme-code .sp-mini-chip--soft,
body.sp-theme-code .sp-code-preview-block .sp-mini-chip,
body.sp-theme-code .sp-code-preview-meta .sp-mini-chip{
  background: #f3f6f5 !important;
  border-color: rgba(15,23,42,.08) !important;
  color: #111827 !important;
  font-weight: 500 !important;
  box-shadow: none !important;
}
body.sp-theme-code .sp-mini-card__meta{
  gap: 7px;
}
body.sp-theme-code .sp-mini-card:hover .sp-mini-chip,
body.sp-theme-code .sp-mini-card:hover .sp-mini-chip--soft{
  background: #eef4f1 !important;
  border-color: rgba(95,127,115,.16) !important;
}
body.sp-theme-code .sp-train-group__title{
  color: #2f5f4d !important;
}

/* --- Python fiche: colonne de gauche plus compacte et scrollable --- */
.sp-page--code-doc .sp-python-doc-layout{
  align-items:start !important;
}
.sp-page--code-doc .sp-python-doc-layout > .sp-course-nav{
  align-self:start !important;
}
.sp-page--code-doc .sp-python-navpanel{
  background:
    radial-gradient(520px 220px at 8% 0%, rgba(79,138,112,.12), transparent 62%),
    linear-gradient(180deg, #eef8f2 0%, #fbfefc 100%) !important;
  border-color:rgba(79,138,112,.18) !important;
  max-height:min(650px, calc(100vh - 220px));
  min-height:0 !important;
  overflow-y:auto;
  overscroll-behavior:contain;
  scrollbar-width:thin;
  scrollbar-color:rgba(79,138,112,.35) transparent;
}
.sp-page--code-doc .sp-python-navpanel::-webkit-scrollbar{
  width:8px;
}
.sp-page--code-doc .sp-python-navpanel::-webkit-scrollbar-track{
  background:transparent;
}
.sp-page--code-doc .sp-python-navpanel::-webkit-scrollbar-thumb{
  background:rgba(79,138,112,.28);
  border-radius:999px;
}
@media (min-width:981px){
  .sp-page--code-doc .sp-python-doc-right{
    min-height:0 !important;
  }
}
@media (max-width:980px){
  .sp-page--code-doc .sp-python-navpanel{
    max-height:none;
    overflow:visible;
  }
}

/* --- Python fiche: hauteur synchronisée gauche/droite + sidebar verte scrollable (v0.5.32) --- */
@media (min-width:981px){
  .sp-page--code-doc .sp-panel--code-doc-shell{
    --sp-python-doc-h: min(760px, calc(100vh - 190px));
  }
  .sp-page--code-doc .sp-python-doc-layout{
    display:grid !important;
    grid-template-columns:340px minmax(0,1fr) !important;
    column-gap:22px !important;
    align-items:stretch !important;
  }
  .sp-page--code-doc .sp-python-doc-layout > .sp-course-nav{
    height:var(--sp-python-doc-h) !important;
    min-height:0 !important;
    align-self:stretch !important;
    margin:0 !important;
    padding:0 !important;
    border-radius:24px !important;
    background:
      radial-gradient(520px 220px at 8% 0%, rgba(79,138,112,.13), transparent 62%),
      linear-gradient(180deg, #eef8f2 0%, #fbfefc 100%) !important;
    border:1px solid rgba(79,138,112,.18) !important;
    box-shadow:inset 0 1px 0 rgba(255,255,255,.92), 0 10px 24px rgba(35,95,69,.045) !important;
    overflow:hidden !important;
  }
  .sp-page--code-doc .sp-python-navpanel{
    height:100% !important;
    max-height:none !important;
    min-height:0 !important;
    overflow-y:auto !important;
    overscroll-behavior:contain;
    background:transparent !important;
    border:0 !important;
    border-radius:24px !important;
    box-shadow:none !important;
  }
  .sp-page--code-doc .sp-python-doc-right{
    height:var(--sp-python-doc-h) !important;
    min-height:0 !important;
    align-self:stretch !important;
    display:flex !important;
    flex-direction:column !important;
    margin:0 !important;
    padding:0 !important;
    overflow:hidden !important;
  }
  .sp-page--code-doc .sp-python-doc-right > .sp-python-meta,
  .sp-page--code-doc .sp-python-doc-right > .sp-python-sectionnav{
    flex:0 0 auto !important;
  }
  .sp-page--code-doc .sp-python-doc-right > .sp-course-contentcard{
    flex:1 1 auto !important;
    min-height:0 !important;
    overflow:hidden !important;
  }
  .sp-page--code-doc .sp-python-doc-right .sp-course-scroll{
    height:100% !important;
    max-height:none !important;
    min-height:0 !important;
    overflow-y:auto !important;
    overscroll-behavior:contain;
    scrollbar-width:thin;
    scrollbar-color:rgba(79,138,112,.32) transparent;
  }
  .sp-page--code-doc .sp-python-doc-right .sp-course-scroll::-webkit-scrollbar,
  .sp-page--code-doc .sp-python-navpanel::-webkit-scrollbar{
    width:8px;
  }
  .sp-page--code-doc .sp-python-doc-right .sp-course-scroll::-webkit-scrollbar-track,
  .sp-page--code-doc .sp-python-navpanel::-webkit-scrollbar-track{
    background:transparent;
  }
  .sp-page--code-doc .sp-python-doc-right .sp-course-scroll::-webkit-scrollbar-thumb,
  .sp-page--code-doc .sp-python-navpanel::-webkit-scrollbar-thumb{
    background:rgba(79,138,112,.26);
    border-radius:999px;
  }
}

/* --- Correctif Python fiche: restaurer le scroll naturel du contenu principal --- */
@media (min-width:981px){
  .sp-page--code-doc .sp-python-doc-layout{
    align-items:start !important;
  }
  .sp-page--code-doc .sp-python-doc-layout > .sp-course-nav{
    height:auto !important;
    max-height:min(760px, calc(100vh - 190px)) !important;
    min-height:0 !important;
    align-self:start !important;
    overflow:hidden !important;
  }
  .sp-page--code-doc .sp-python-navpanel{
    max-height:min(760px, calc(100vh - 190px)) !important;
    height:auto !important;
    overflow-y:auto !important;
  }
  .sp-page--code-doc .sp-python-doc-right{
    height:auto !important;
    min-height:0 !important;
    display:block !important;
    overflow:visible !important;
    align-self:start !important;
  }
  .sp-page--code-doc .sp-python-doc-right > .sp-course-contentcard{
    height:auto !important;
    overflow:visible !important;
  }
  .sp-page--code-doc .sp-python-doc-right .sp-course-scroll{
    height:auto !important;
    max-height:none !important;
    overflow:visible !important;
  }
}

/* --- Correctif Python fiche: sidebar haute + scrollable, contenu principal en scroll naturel (v0.5.34) --- */
@media (min-width:981px){
  .sp-page--code-doc .sp-python-doc-layout{
    display:grid !important;
    grid-template-columns:340px minmax(0,1fr) !important;
    column-gap:22px !important;
    align-items:start !important;
  }
  .sp-page--code-doc .sp-python-doc-layout > .sp-course-nav{
    height:clamp(640px, calc(100vh - 150px), 860px) !important;
    max-height:clamp(640px, calc(100vh - 150px), 860px) !important;
    min-height:0 !important;
    align-self:start !important;
    margin:0 !important;
    padding:0 !important;
    border-radius:24px !important;
    background:
      radial-gradient(520px 220px at 8% 0%, rgba(79,138,112,.13), transparent 62%),
      linear-gradient(180deg, #eef8f2 0%, #fbfefc 100%) !important;
    border:1px solid rgba(79,138,112,.18) !important;
    box-shadow:inset 0 1px 0 rgba(255,255,255,.92), 0 10px 24px rgba(35,95,69,.045) !important;
    overflow:hidden !important;
  }
  .sp-page--code-doc .sp-python-navpanel{
    height:100% !important;
    max-height:none !important;
    min-height:0 !important;
    overflow-y:auto !important;
    overscroll-behavior:contain !important;
    background:transparent !important;
    border:0 !important;
    border-radius:24px !important;
    box-shadow:none !important;
    scrollbar-width:thin;
    scrollbar-color:rgba(79,138,112,.32) transparent;
  }
  .sp-page--code-doc .sp-python-doc-right{
    height:auto !important;
    min-height:0 !important;
    display:block !important;
    overflow:visible !important;
    align-self:start !important;
  }
  .sp-page--code-doc .sp-python-doc-right > .sp-course-contentcard,
  .sp-page--code-doc .sp-python-doc-right .sp-course-scroll{
    height:auto !important;
    max-height:none !important;
    overflow:visible !important;
  }
}

/* Dashboard redo reader — align with train playlist reader v0.7.36 */
.sp-page--dashboard-redo-reader .sp-pagehead{
  display:none !important;
}
.sp-page--dashboard-redo-reader .sp-panel{
  padding:18px !important;
}
.sp-page--dashboard-redo-reader .spa6-split{
  gap:14px !important;
  align-items:flex-start !important;
}
.sp-page--dashboard-redo-reader .spa6-left,
[data-page="dashboard-redo-reader"] .spa6-left{
  flex:0 0 300px !important;
  width:300px !important;
  max-width:28% !important;
  height:calc(100vh - 170px) !important;
  min-height:520px !important;
  max-height:900px !important;
  position:sticky !important;
  top:18px !important;
}
.sp-page--dashboard-redo-reader .spa6-left__head{
  padding-left:16px !important;
  padding-right:16px !important;
}
.sp-page--dashboard-redo-reader .spa6-left__body{
  padding-left:14px !important;
  padding-right:14px !important;
  overflow-y:auto !important;
  overflow-x:hidden !important;
  min-height:0 !important;
  flex:1 1 auto !important;
}
.sp-page--dashboard-redo-reader .spa6-left .spa6-item{
  width:100% !important;
  box-sizing:border-box !important;
  text-align:left !important;
  display:block !important;
}
.sp-page--dashboard-redo-reader .spa6-item__top,
.sp-page--dashboard-redo-reader .spa6-item__title,
.sp-page--dashboard-redo-reader .spa6-item__subtitle,
.sp-page--dashboard-redo-reader .spa6-item__meta,
.sp-page--dashboard-redo-reader .spa6-item__badges{
  text-align:left !important;
  align-items:flex-start !important;
  justify-content:flex-start !important;
}
.sp-page--dashboard-redo-reader .spa6-item__title{
  width:100% !important;
  font-weight:900 !important;
  overflow-wrap:anywhere !important;
}
.sp-page--dashboard-redo-reader .spa6-item__subtitle{
  width:100% !important;
  margin-top:4px !important;
  font-size:11px !important;
  line-height:1.25 !important;
  opacity:.68 !important;
  overflow-wrap:anywhere !important;
}
.sp-page--dashboard-redo-reader .spa6-right__title-main{
  font-size:22px !important;
  line-height:1.15 !important;
  font-weight:900 !important;
}
.sp-page--dashboard-redo-reader .spa6-right__title-id,
.sp-page--dashboard-redo-reader .spa6-right__title-sub{
  margin-top:4px !important;
  font-size:13px !important;
  line-height:1.2 !important;
  font-weight:800 !important;
  color:rgba(15,23,42,.56) !important;
}
.sp-page--dashboard-redo-reader .spa6-right__toolbar{
  margin-top:22px !important;
}
.sp-page--dashboard-redo-reader .spa6-right__toolbar-row--actions-with-nav{
  display:grid !important;
  grid-template-columns:minmax(170px,auto) repeat(4,auto) minmax(170px,auto) !important;
  align-items:center !important;
  gap:14px !important;
  justify-content:center !important;
}
.sp-page--dashboard-redo-reader .spa6-right__toolbar-row--actions-with-nav .spa6-reader-navbtn{
  border:0 !important;
  outline:0 !important;
  background:transparent !important;
  box-shadow:none !important;
  min-height:52px !important;
  padding-top:0 !important;
  padding-bottom:0 !important;
  display:inline-flex !important;
  align-items:center !important;
  justify-content:center !important;
  line-height:1 !important;
  color:#1e3a8a !important;
}
.sp-page--dashboard-redo-reader .spa6-right__toolbar-row--actions-with-nav .spa6-reader-navbtn:hover,
.sp-page--dashboard-redo-reader .spa6-right__toolbar-row--actions-with-nav .spa6-reader-navbtn:focus{
  border:0 !important;
  box-shadow:none !important;
  background:rgba(37,99,235,.04) !important;
}
.sp-page--dashboard-redo-reader .spa6-right__toolbar-row--actions-with-nav .spa6-reader-navbtn > span:not(.spa6-reader-navbtn__icon){
  display:inline-flex !important;
  align-items:center !important;
  line-height:1 !important;
  transform:translateY(-1px);
}
.sp-page--dashboard-redo-reader .spa6-right__toolbar-row--actions-with-nav .spa6-reader-navbtn--next{
  justify-self:end !important;
}
.sp-page--dashboard-redo-reader .spa6-right__toolbar-row--actions-with-nav .spa6-reader-navbtn--prev{
  justify-self:start !important;
}
.sp-page--dashboard-redo-reader .spa6-right__toolbar-row--rating-with-nav{
  display:grid !important;
  grid-template-columns:1fr !important;
  align-items:center !important;
  gap:18px !important;
  padding-top:0 !important;
  padding-bottom:10px !important;
}
.sp-page--dashboard-redo-reader .spa6-rating-wrap{
  display:flex !important;
  justify-content:center !important;
  align-items:center !important;
  gap:12px !important;
  min-width:0 !important;
  margin-top:0 !important;
}
.sp-page--dashboard-redo-reader .spa6-rating-wrap .spa6-rating__label{
  margin:0 !important;
}
.sp-page--dashboard-redo-reader .spa6-notes-panel{
  margin:18px auto 18px !important;
  max-width:760px !important;
  border:1px solid rgba(37,99,235,.18) !important;
  background:rgba(248,251,255,.96) !important;
  border-radius:22px !important;
  padding:18px 20px !important;
  box-shadow:0 16px 34px rgba(37,99,235,.08) !important;
}
.sp-page--dashboard-redo-reader .spa6-notes-panel[hidden]{ display:none !important; }
.sp-page--dashboard-redo-reader .spa6-notes-panel__title{
  font-weight:900 !important;
  font-size:18px !important;
  color:#1e3a8a !important;
  margin-bottom:12px !important;
}
.sp-page--dashboard-redo-reader .spa6-notes-panel__textarea{
  width:100% !important;
  box-sizing:border-box !important;
  min-height:110px !important;
  resize:vertical !important;
  border:1px solid rgba(37,99,235,.20) !important;
  border-radius:18px !important;
  background:#fff !important;
  padding:14px 16px !important;
  font:inherit !important;
  color:#0f172a !important;
  outline:none !important;
}
.sp-page--dashboard-redo-reader .spa6-notes-panel__textarea:focus{
  border-color:rgba(37,99,235,.48) !important;
  box-shadow:0 0 0 4px rgba(37,99,235,.10) !important;
}
.sp-page--dashboard-redo-reader .spa6-notes-panel__actions{
  display:flex !important;
  align-items:center !important;
  justify-content:flex-start !important;
  gap:12px !important;
  margin-top:12px !important;
}
.sp-page--dashboard-redo-reader .spa6-actionbtn--primary{
  border-color:rgba(15,23,42,.16) !important;
  background:#fff !important;
  color:rgba(15,23,42,.88) !important;
  box-shadow:none !important;
}
.sp-page--dashboard-redo-reader .spa6-right__nav{
  grid-template-columns:minmax(180px,auto) 1fr minmax(180px,auto) !important;
  gap:18px !important;
  padding:18px 0 !important;
  margin-top:14px !important;
}
.sp-page--dashboard-redo-reader .spa6-right__navcenter{
  display:flex !important;
  justify-content:center !important;
  align-items:center !important;
  gap:14px !important;
  flex-wrap:wrap !important;
}
.sp-page--dashboard-redo-reader .spa6-reader-navbtn{
  min-height:56px !important;
  padding-left:20px !important;
  padding-right:20px !important;
  border-radius:18px !important;
  gap:18px !important;
  color:#1e3a8a !important;
  background:rgba(255,255,255,.96) !important;
  border-color:rgba(37,99,235,.16) !important;
  box-shadow:0 10px 22px rgba(37,99,235,.06) !important;
}
.sp-page--dashboard-redo-reader .spa6-reader-navbtn--prev{ justify-self:start !important; }
.sp-page--dashboard-redo-reader .spa6-reader-navbtn--next{ justify-self:end !important; }
.sp-page--dashboard-redo-reader .spa6-reader-navbtn__icon{
  width:38px !important;
  height:38px !important;
  border-radius:999px !important;
  display:inline-flex !important;
  align-items:center !important;
  justify-content:center !important;
  background:rgba(37,99,235,.10) !important;
  color:#1d4ed8 !important;
  font-size:24px !important;
  line-height:1 !important;
  flex:0 0 auto !important;
}
.sp-page--dashboard-redo-reader .spa6-reader-navbtn--question-prev .spa6-reader-navbtn__icon,
.sp-page--dashboard-redo-reader .spa6-reader-navbtn--exercise-prev .spa6-reader-navbtn__icon{ margin-right:10px !important; }
.sp-page--dashboard-redo-reader .spa6-reader-navbtn--question-next .spa6-reader-navbtn__icon,
.sp-page--dashboard-redo-reader .spa6-reader-navbtn--exercise-next .spa6-reader-navbtn__icon{ margin-left:10px !important; }
.sp-page--dashboard-redo-reader .spa6-reader-navbtn:hover{
  border-color:rgba(37,99,235,.28) !important;
  box-shadow:0 14px 28px rgba(37,99,235,.10) !important;
}
.sp-page--dashboard-redo-reader .spa6-right__nav--question-tools .spa6-reader-navbtn[disabled]{
  opacity:.54 !important;
  cursor:not-allowed !important;
  pointer-events:none !important;
}
.sp-page--dashboard-redo-reader .spa6-actionbtn--soft[disabled]{
  opacity:.58 !important;
  cursor:not-allowed !important;
  border-color:rgba(37,99,235,.16) !important;
  color:rgba(30,64,175,.82) !important;
  background:rgba(239,246,255,.74) !important;
  box-shadow:none !important;
}
.sp-page--dashboard-redo-reader [data-spa6-redo-action="toggle-notes"].is-active{
  border-color:rgba(15,23,42,.16) !important;
  background:rgba(255,255,255,.92) !important;
  color:rgba(15,23,42,.88) !important;
  box-shadow:none !important;
}
.sp-page--dashboard-redo-reader .spa6-right__content{
  overflow-y:auto !important;
  overflow-x:hidden !important;
  box-sizing:border-box !important;
}
.sp-page--dashboard-redo-reader .spa6-right__corrige{
  overflow:hidden !important;
  box-sizing:border-box !important;
  display:flex !important;
  flex-direction:column !important;
}
.sp-page--dashboard-redo-reader .spa6-right__corrige[hidden]{ display:none !important; }
.sp-page--dashboard-redo-reader .spa6-right__corrigeContent{
  overflow-y:auto !important;
  overflow-x:hidden !important;
  min-height:0 !important;
  box-sizing:border-box !important;
}
.sp-page--dashboard-redo-reader .spa6-train-question-detectable{ scroll-margin-top:180px; }
.sp-page--dashboard-redo-reader .spa6-train-question-active{
  outline:2px solid color-mix(in srgb, #2563eb 35%, white) !important;
  background:color-mix(in srgb, #2563eb 10%, white) !important;
  border-radius:10px !important;
  padding:6px 8px !important;
  box-shadow:none !important;
}
.sp-page--dashboard-redo-reader li.spa6-train-question-active{
  display:list-item !important;
  list-style-position:outside !important;
}
@media (max-width: 1100px){
  .sp-page--dashboard-redo-reader .spa6-right__toolbar-row--actions-with-nav{
    grid-template-columns:1fr !important;
  }
  .sp-page--dashboard-redo-reader .spa6-reader-navbtn--exercise-prev,
  .sp-page--dashboard-redo-reader .spa6-reader-navbtn--exercise-next{
    justify-self:center !important;
  }
}
@media (max-width: 900px){
  .sp-page--dashboard-redo-reader .spa6-left,
  [data-page="dashboard-redo-reader"] .spa6-left{
    position:relative !important;
    top:auto !important;
    flex:0 0 auto !important;
    width:100% !important;
    max-width:100% !important;
    height:auto !important;
    max-height:none !important;
    min-height:0 !important;
  }
  .sp-page--dashboard-redo-reader .spa6-left__body{ overflow:visible !important; }
  .sp-page--dashboard-redo-reader .spa6-right__nav{ grid-template-columns:1fr !important; }
  .sp-page--dashboard-redo-reader .spa6-reader-navbtn--prev,
  .sp-page--dashboard-redo-reader .spa6-reader-navbtn--next{ justify-self:stretch !important; }
  .sp-page--dashboard-redo-reader .spa6-right__content,
  .sp-page--dashboard-redo-reader .spa6-right__corrige,
  .sp-page--dashboard-redo-reader .spa6-right__corrigeContent{
    height:auto !important;
    max-height:none !important;
    overflow:visible !important;
  }
}

/* Comprendre > Cours : titres de chapitres plus sobres */
body.sp-page--comprendre-cours .sp-mini-card__title{
  color:#111827 !important;
}


/* Code index cleanup: clearer copy, neutral titles, normalized option chips. */
body.sp-theme-code.sp-page--code-index .sp-mode__title{
  color: var(--sp-text-primary) !important;
}
body.sp-theme-code.sp-page--code-index .sp-mode__desc{
  max-width: 560px;
}

/* Dashboard exercices : cartes réellement ouvrables */
.sp-page--dashboard-exercices .sp-exo-card--clickable{
  cursor:pointer;
  transition:transform .16s ease, box-shadow .16s ease, border-color .16s ease;
}
.sp-page--dashboard-exercices .sp-exo-card--clickable:hover{
  transform:translateY(-1px);
  box-shadow:0 14px 32px rgba(15,23,42,.08);
  border-color:rgba(79,70,229,.25);
}
.sp-page--dashboard-exercices .sp-exo-card__title a{
  color:inherit;
  text-decoration:none;
}
.sp-page--dashboard-exercices .sp-exo-card__title a:hover{
  text-decoration:underline;
}


/* Dashboard : carte recommandations compacte et lisible */
body.sp-page--dashboard .sp-card-plan--compact .sp-card__title{
  margin-bottom:12px !important;
}
body.sp-page--dashboard .sp-card-plan--compact .sp-card__body{
  display:flex;
  flex-direction:column;
  gap:12px;
}
body.sp-page--dashboard .sp-reco-compact{
  display:grid;
  gap:8px;
  margin:0;
}
body.sp-page--dashboard .sp-reco-compact__row{
  display:grid;
  grid-template-columns:12px minmax(0,1fr);
  gap:10px;
  align-items:start;
  padding:0 0 8px 0;
  border-bottom:1px solid rgba(15,23,42,.07);
}
body.sp-page--dashboard .sp-reco-compact__row:last-child{
  border-bottom:0;
  padding-bottom:0;
}
body.sp-page--dashboard .sp-reco-compact__dot{
  width:9px;
  height:9px;
  border-radius:999px;
  margin-top:6px;
  background:#7c3aed;
  box-shadow:0 0 0 4px rgba(124,58,237,.10);
}
body.sp-page--dashboard .sp-reco-compact__dot--review{
  background:#2563eb;
  box-shadow:0 0 0 4px rgba(37,99,235,.10);
}
body.sp-page--dashboard .sp-reco-compact__dot--solid{
  background:#16a34a;
  box-shadow:0 0 0 4px rgba(22,163,74,.10);
}
body.sp-page--dashboard .sp-reco-compact__row strong{
  display:block;
  color:#111827;
  font-weight:850;
  font-size:.98rem;
  line-height:1.15;
}
body.sp-page--dashboard .sp-reco-compact__row em{
  display:block;
  margin-top:2px;
  color:#64748b;
  font-style:normal;
  font-weight:650;
  font-size:.82rem;
  line-height:1.25;
}
body.sp-page--dashboard .sp-reco-compact__actions{
  margin-top:2px !important;
}
body.sp-page--dashboard .sp-card-plan--compact .sp-btn{
  background:#6d28d9 !important;
  color:#fff !important;
  border-color:rgba(109,40,217,.20) !important;
  box-shadow:0 12px 24px rgba(109,40,217,.16) !important;
}
body.sp-page--dashboard .sp-card-plan--compact:hover .sp-btn{
  background:#5b21b6 !important;
}

/* Session/access UX */
.sp-session-status{
  display:inline-flex;
  align-items:center;
  gap:7px;
  padding:9px 12px;
  border-radius:999px;
  font-size:12.5px;
  line-height:1;
  font-weight:850;
  border:1px solid rgba(148,163,184,.35);
  background:rgba(255,255,255,.86);
  color:#475569;
  white-space:nowrap;
}
.sp-session-status::before{
  content:"";
  width:8px;
  height:8px;
  border-radius:999px;
  background:#94a3b8;
  box-shadow:0 0 0 3px rgba(148,163,184,.16);
}
.sp-session-status.is-ok{color:#166534;border-color:rgba(22,101,52,.20);background:rgba(240,253,244,.92)}
.sp-session-status.is-ok::before{background:#22c55e;box-shadow:0 0 0 3px rgba(34,197,94,.16)}
.sp-session-status.is-off,.sp-session-status.is-noaccess{color:#9a3412;border-color:rgba(234,88,12,.24);background:rgba(255,247,237,.94)}
.sp-session-status.is-off::before,.sp-session-status.is-noaccess::before{background:#f97316;box-shadow:0 0 0 3px rgba(249,115,22,.16)}

.sp-access-modal[hidden]{display:none!important}
.sp-access-modal{position:fixed;inset:0;z-index:99999;display:flex;align-items:center;justify-content:center;padding:24px}
.sp-access-modal__backdrop{position:absolute;inset:0;background:rgba(15,23,42,.48);backdrop-filter:blur(4px)}
.sp-access-modal__dialog{position:relative;width:min(560px,100%);background:#fff;border:1px solid rgba(148,163,184,.45);border-radius:26px;box-shadow:0 24px 70px rgba(15,23,42,.24);padding:30px}
.sp-access-modal__dialog h2{margin:12px 0 8px;font-family:Lexend,Open Sans,sans-serif;font-size:30px;line-height:1.15;color:#111827}
.sp-access-modal__dialog p{margin:0;color:#475569;font-size:17px;line-height:1.65}
.sp-access-modal__actions{display:flex;gap:12px;flex-wrap:wrap;margin-top:24px}
.sp-access-modal__close{position:absolute;right:18px;top:15px;border:0;background:transparent;font-size:34px;line-height:1;color:#64748b;cursor:pointer}
.sp-access-modal .sp-btn{display:inline-flex;align-items:center;justify-content:center;border-radius:16px;padding:13px 18px;font-weight:850;text-decoration:none;border:1px solid transparent;line-height:1.1}
.sp-access-modal .sp-btn--primary{background:#dbeafe;border-color:#a7c4ff;color:#1e3a8a;box-shadow:0 10px 22px rgba(37,99,235,.10)}
.sp-access-modal .sp-btn--primary:hover{background:#cfe0ff;border-color:#93b4ff}
.sp-access-modal .sp-btn--ghost{background:#fff;border-color:rgba(148,163,184,.45);color:#334155;box-shadow:none}
.sp-access-modal .sp-btn--ghost:hover{background:#f8fafc;border-color:rgba(100,116,139,.55)}

@media (max-width: 720px){
  .sp-session-status{order:5;width:100%;justify-content:center}
  .sp-access-modal__dialog h2{font-size:25px}
}

/* Annales filters: validated include/exclude chips under autocomplete inputs. */
body.sp-theme-annales[data-page="annales"] .sp-annales-filterchips{
  display:flex;
  flex-wrap:wrap;
  gap:8px;
  margin-top:10px;
}
body.sp-theme-annales[data-page="annales"] .sp-annales-filterchip{
  display:inline-flex;
  align-items:center;
  gap:7px;
  border:1px solid rgba(145,33,73,.18);
  background:rgba(255,245,248,.92);
  color:#8a1538;
  border-radius:999px;
  padding:7px 10px 7px 12px;
  font-size:13px;
  font-weight:760;
  cursor:pointer;
  box-shadow:0 6px 16px rgba(145,33,73,.06);
}
body.sp-theme-annales[data-page="annales"] .sp-annales-filterchip:hover{
  background:rgba(255,236,243,.98);
  border-color:rgba(145,33,73,.28);
}


/* 260611 patch — train playlist: les sous-listes directes doivent occuper
   toute la largeur du panneau, sinon les formules hors ligne se centrent dans
   une largeur variable selon la question. */
.sp-page--train-playlist .spa6-right__content li.sp-li-nested-first > ol:first-child,
.sp-page--train-playlist .spa6-right__content li.sp-li-nested-first > ul:first-child{
  display:block !important;
  width:100% !important;
  max-width:100% !important;
  box-sizing:border-box !important;
  margin:0 !important;
}
.sp-page--train-playlist .spa6-right__content .MathJax_Display,
.sp-page--train-playlist .spa6-right__content .MathJax_SVG_Display,
.sp-page--train-playlist .spa6-right__content mjx-container[display="true"]{
  width:100% !important;
  max-width:100% !important;
  text-align:center !important;
}

/* === Vacances day reader: blocs pédagogiques alignés sur le lecteur playlist === */
[data-page="vacances-day-reader"] .spa6-right__content div.cclt,
[data-page="vacances-day-reader"] .spa6-right__content div.cclm,
[data-page="vacances-day-reader"] .spa6-right__content div.ccltl,
[data-page="vacances-day-reader"] .spa6-right__corrigeContent div.cclt,
[data-page="vacances-day-reader"] .spa6-right__corrigeContent div.cclm,
[data-page="vacances-day-reader"] .spa6-right__corrigeContent div.ccltl{
  border:1.3px solid #3297db;
  border-radius:9px;
  padding:.7em 1.5em;
  margin:1.3em auto;
  background:rgba(50,151,219,.045);
  text-align:center;
  display:table;
  max-width:100%;
  box-shadow:0 6px 18px rgba(15,23,42,.04);
}

[data-page="vacances-day-reader"] .spa6-right__content div.cclt p,
[data-page="vacances-day-reader"] .spa6-right__content div.cclm p,
[data-page="vacances-day-reader"] .spa6-right__content div.ccltl p,
[data-page="vacances-day-reader"] .spa6-right__corrigeContent div.cclt p,
[data-page="vacances-day-reader"] .spa6-right__corrigeContent div.cclm p,
[data-page="vacances-day-reader"] .spa6-right__corrigeContent div.ccltl p{
  margin:.15em 0;
}

[data-page="vacances-day-reader"] .spa6-right__content div.Cours,
[data-page="vacances-day-reader"] .spa6-right__content div.coursblock,
[data-page="vacances-day-reader"] .spa6-right__corrigeContent div.Cours,
[data-page="vacances-day-reader"] .spa6-right__corrigeContent div.coursblock{
  margin:1.35em 0;
  padding:1em 1.15em;
  border:1px solid rgba(37,99,235,.20);
  border-left:5px solid #3297db;
  border-radius:14px;
  background:rgba(50,151,219,.055);
  box-shadow:0 8px 22px rgba(15,23,42,.045);
}

[data-page="vacances-day-reader"] .spa6-right__content div.methodeblock,
[data-page="vacances-day-reader"] .spa6-right__corrigeContent div.methodeblock{
  margin:1.35em 0;
  padding:1em 1.15em;
  border:1px solid rgba(16,185,129,.22);
  border-left:5px solid #10b981;
  border-radius:14px;
  background:rgba(16,185,129,.055);
  box-shadow:0 8px 22px rgba(15,23,42,.045);
}

[data-page="vacances-day-reader"] .spa6-right__content div.Cours > h4,
[data-page="vacances-day-reader"] .spa6-right__content div.coursblock > h4,
[data-page="vacances-day-reader"] .spa6-right__corrigeContent div.Cours > h4,
[data-page="vacances-day-reader"] .spa6-right__corrigeContent div.coursblock > h4,
[data-page="vacances-day-reader"] .spa6-right__content div.methodeblock > h4,
[data-page="vacances-day-reader"] .spa6-right__corrigeContent div.methodeblock > h4{
  margin:0 0 .55em;
  font-size:1.02em;
  font-weight:900;
  color:#102a43;
}

[data-page="vacances-day-reader"] .spa6-right__content details.remarqueblock,
[data-page="vacances-day-reader"] .spa6-right__corrigeContent details.remarqueblock,
[data-page="vacances-day-reader"] .spa6-right__content details.Explication,
[data-page="vacances-day-reader"] .spa6-right__corrigeContent details.Explication,
[data-page="vacances-day-reader"] .spa6-right__content details.coursblock,
[data-page="vacances-day-reader"] .spa6-right__corrigeContent details.coursblock{
  margin:1.1em 0;
  border:1px solid rgba(15,23,42,.12);
  border-radius:13px;
  background:rgba(255,255,255,.72);
  overflow:hidden;
  box-shadow:0 6px 16px rgba(15,23,42,.035);
}

[data-page="vacances-day-reader"] .spa6-right__content details.remarqueblock > summary,
[data-page="vacances-day-reader"] .spa6-right__corrigeContent details.remarqueblock > summary,
[data-page="vacances-day-reader"] .spa6-right__content details.Explication > summary,
[data-page="vacances-day-reader"] .spa6-right__corrigeContent details.Explication > summary,
[data-page="vacances-day-reader"] .spa6-right__content details.coursblock > summary,
[data-page="vacances-day-reader"] .spa6-right__corrigeContent details.coursblock > summary{
  cursor:pointer;
  padding:.72em 1em;
  font-weight:850;
  color:#1f2937;
  background:rgba(15,23,42,.035);
}

[data-page="vacances-day-reader"] .spa6-right__content details.remarqueblock > :not(summary),
[data-page="vacances-day-reader"] .spa6-right__corrigeContent details.remarqueblock > :not(summary),
[data-page="vacances-day-reader"] .spa6-right__content details.Explication > :not(summary),
[data-page="vacances-day-reader"] .spa6-right__corrigeContent details.Explication > :not(summary),
[data-page="vacances-day-reader"] .spa6-right__content details.coursblock > :not(summary),
[data-page="vacances-day-reader"] .spa6-right__corrigeContent details.coursblock > :not(summary){
  margin-left:1em;
  margin-right:1em;
}

[data-page="vacances-day-reader"] .spa6-right__content details.remarqueblock[open],
[data-page="vacances-day-reader"] .spa6-right__corrigeContent details.remarqueblock[open],
[data-page="vacances-day-reader"] .spa6-right__content details.Explication[open],
[data-page="vacances-day-reader"] .spa6-right__corrigeContent details.Explication[open],
[data-page="vacances-day-reader"] .spa6-right__content details.coursblock[open],
[data-page="vacances-day-reader"] .spa6-right__corrigeContent details.coursblock[open]{
  padding-bottom:.75em;
}

[data-page="vacances-day-reader"] .spa6-right__content details.remarqueblock,
[data-page="vacances-day-reader"] .spa6-right__corrigeContent details.remarqueblock{
  border-color:rgba(245,158,11,.24);
  background:rgba(245,158,11,.055);
}

[data-page="vacances-day-reader"] .spa6-right__content details.remarqueblock > summary,
[data-page="vacances-day-reader"] .spa6-right__corrigeContent details.remarqueblock > summary{
  background:rgba(245,158,11,.09);
}

[data-page="vacances-day-reader"] .spa6-right__content details.Explication,
[data-page="vacances-day-reader"] .spa6-right__corrigeContent details.Explication{
  border-color:rgba(99,102,241,.20);
  background:rgba(99,102,241,.045);
}

[data-page="vacances-day-reader"] .spa6-right__content details.Explication > summary,
[data-page="vacances-day-reader"] .spa6-right__corrigeContent details.Explication > summary{
  background:rgba(99,102,241,.075);
}

body.sp-theme-tester[data-page="me-tester-annale"] .sp-annale-eval-card{
  cursor: pointer;
}
body.sp-theme-tester[data-page="me-tester-annale"] .sp-annale-eval-card:focus-visible{
  outline: 3px solid rgba(91,33,182,.35);
  outline-offset: 3px;
}
body.sp-theme-tester[data-page="me-tester-annale"] .sp-annale-eval-card__link,
body.sp-theme-tester[data-page="me-tester-annale"] .sp-annale-eval-card .sp-btn{
  position: relative;
  z-index: 2;
}

/* ============================================================
   Compte rendu d'évaluation (dashboard + rapport final) :
   styliser énoncé/corrigé comme la playlist (cclm/cclt/ccltl,
   Cours, methodeblock, remarqueblock, Explication + maths).
   Les conteneurs concernés : .sp-inline-resource (énoncé/corrigé
   injectés) et, plus largement, .sp-report-html / .sp-eval-proto__feedback_box.
   ============================================================ */
.sp-inline-resource div.cclt,
.sp-inline-resource div.cclm,
.sp-inline-resource div.ccltl,
.sp-report-html div.cclt,
.sp-report-html div.cclm,
.sp-report-html div.ccltl,
.sp-eval-proto__feedback_box div.cclt,
.sp-eval-proto__feedback_box div.cclm,
.sp-eval-proto__feedback_box div.ccltl{
  border:1.3px solid #3297db;
  border-radius:9px;
  padding:.7em 1.5em;
  margin:1.3em auto;
  background:rgba(50,151,219,.045);
  text-align:center;
  display:table;
  max-width:100%;
  box-shadow:0 6px 18px rgba(15,23,42,.04);
}
.sp-inline-resource div.cclt p,
.sp-inline-resource div.cclm p,
.sp-inline-resource div.ccltl p,
.sp-report-html div.cclt p,
.sp-report-html div.cclm p,
.sp-report-html div.ccltl p,
.sp-eval-proto__feedback_box div.cclt p,
.sp-eval-proto__feedback_box div.cclm p,
.sp-eval-proto__feedback_box div.ccltl p{
  margin:.15em 0;
}
.sp-inline-resource div.Cours,
.sp-report-html div.Cours,
.sp-eval-proto__feedback_box div.Cours{
  margin:1.35em 0;padding:1em 1.15em;
  border:1px solid rgba(37,99,235,.20);border-left:5px solid #3297db;border-radius:14px;
  background:rgba(50,151,219,.055);box-shadow:0 8px 22px rgba(15,23,42,.045);
}
.sp-inline-resource div.methodeblock,
.sp-report-html div.methodeblock,
.sp-eval-proto__feedback_box div.methodeblock{
  margin:1.35em 0;padding:1em 1.15em;
  border:1px solid rgba(16,185,129,.22);border-left:5px solid #10b981;border-radius:14px;
  background:rgba(16,185,129,.055);box-shadow:0 8px 22px rgba(15,23,42,.045);
}
.sp-inline-resource div.Cours > h4,
.sp-inline-resource div.methodeblock > h4,
.sp-report-html div.Cours > h4,
.sp-report-html div.methodeblock > h4,
.sp-eval-proto__feedback_box div.Cours > h4,
.sp-eval-proto__feedback_box div.methodeblock > h4{
  margin:0 0 .55em;font-size:1.02em;font-weight:900;color:#102a43;
}
.sp-inline-resource details.remarqueblock,
.sp-inline-resource details.Explication,
.sp-report-html details.remarqueblock,
.sp-report-html details.Explication,
.sp-eval-proto__feedback_box details.remarqueblock,
.sp-eval-proto__feedback_box details.Explication{
  margin:1.1em 0;border:1px solid rgba(15,23,42,.12);border-radius:13px;
  background:rgba(255,255,255,.72);overflow:hidden;box-shadow:0 6px 16px rgba(15,23,42,.035);
}
.sp-inline-resource details.remarqueblock > summary,
.sp-inline-resource details.Explication > summary,
.sp-report-html details.remarqueblock > summary,
.sp-report-html details.Explication > summary,
.sp-eval-proto__feedback_box details.remarqueblock > summary,
.sp-eval-proto__feedback_box details.Explication > summary{
  cursor:pointer;padding:.72em 1em;font-weight:850;color:#1f2937;background:rgba(15,23,42,.035);
}
.sp-inline-resource details.remarqueblock > :not(summary),
.sp-inline-resource details.Explication > :not(summary),
.sp-report-html details.remarqueblock > :not(summary),
.sp-report-html details.Explication > :not(summary),
.sp-eval-proto__feedback_box details.remarqueblock > :not(summary),
.sp-eval-proto__feedback_box details.Explication > :not(summary){
  margin-left:1em;margin-right:1em;
}
.sp-inline-resource details.remarqueblock[open],
.sp-inline-resource details.Explication[open],
.sp-report-html details.remarqueblock[open],
.sp-report-html details.Explication[open],
.sp-eval-proto__feedback_box details.remarqueblock[open],
.sp-eval-proto__feedback_box details.Explication[open]{
  padding-bottom:.75em;
}
.sp-inline-resource details.remarqueblock,
.sp-report-html details.remarqueblock,
.sp-eval-proto__feedback_box details.remarqueblock{
  border-color:rgba(245,158,11,.24);background:rgba(245,158,11,.055);
}
.sp-inline-resource details.remarqueblock > summary,
.sp-report-html details.remarqueblock > summary,
.sp-eval-proto__feedback_box details.remarqueblock > summary{
  background:rgba(245,158,11,.09);
}
.sp-inline-resource details.Explication,
.sp-report-html details.Explication,
.sp-eval-proto__feedback_box details.Explication{
  border-color:rgba(99,102,241,.20);background:rgba(99,102,241,.045);
}
.sp-inline-resource details.Explication > summary,
.sp-report-html details.Explication > summary,
.sp-eval-proto__feedback_box details.Explication > summary{
  background:rgba(99,102,241,.075);
}
