/* Généré par scripts/split_css_public.py depuis world-academy.css.
   NE PAS ÉDITER : modifiez world-academy.css puis régénérez. */
.rev-page select,.rev-filters select,.rev-exam-fields select{
  display: block;
  box-sizing: border-box;
  width: 100%;
  max-width: 100%;
  min-height: 48px;
  padding: 13px 40px 13px 16px;
  border: 1.5px solid var(--line);
  border-radius: var(--radius-sm);
  font-size: .9375rem;
  font-family: var(--font);
  line-height: 1.3;
  color: var(--ink);
  transition: border-color var(--transition), box-shadow var(--transition);
  -webkit-appearance: none;
  -moz-appearance: none;
  appearance: none;
  background-color: var(--surface);
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath fill='%2364748b' d='M1.4 0 6 4.6 10.6 0 12 1.4 6 7.4 0 1.4z'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: right 14px center;
  background-size: 12px 8px;
  cursor: pointer;
}.char-count{
  font-size: .75rem;
  font-weight: 600;
  color: var(--ink-muted);
  white-space: nowrap;
}.ia-prose--plain{
  font-family: inherit;
  font-weight: 400;
}.ia-chat-h{
  font-size: .92rem;
  margin: 14px 0 6px;
  font-weight: 500;
  color: var(--ink, #0f172a);
  font-family: inherit;
}.site-header-wrap{
  position: sticky;
  top: 0;
  z-index: 10050;
  background: rgba(255, 255, 255, 0.97);
  border-bottom: 1px solid rgba(226, 232, 240, 0.9);
}@media (min-width: 993px){.site-header-wrap{
    backdrop-filter: blur(20px) saturate(180%);
    -webkit-backdrop-filter: blur(20px) saturate(180%);
    background: rgba(255, 255, 255, 0.92);
  }}.site-header-row{
  display: flex;
  align-items: center;
  gap: 8px;
  height: var(--nav-h);
  width: 100%;
  min-width: 0;
}.navbar-nav{
  display: flex;
  align-items: center;
  gap: 2px;
}/* ── Espace cours (programme + lecteur) ── */
.cours-workspace{
  display: grid; grid-template-columns: minmax(260px, 300px) 1fr;
  gap: 24px; align-items: start;
}@media (max-width: 960px){.cours-workspace{ grid-template-columns: 1fr; }}.cours-main{ min-width: 0; }.lecteur-nav-buttons{
  display: flex; justify-content: space-between; align-items: center;
  gap: 12px; margin-top: 8px; flex-wrap: wrap;
}.lecteur-nav-primary{
  display: flex; align-items: center; gap: 8px; flex-wrap: wrap; margin-left: auto;
}.topbar-search{
  flex: 1; max-width: 520px; min-width: 0; margin: 0;
  display: flex; align-items: center; gap: 8px;
  padding: 6px 10px 6px 12px;
  border: 1.5px solid var(--line);
  border-radius: var(--radius-lg);
  background: var(--surface);
}.topbar-search input[type="search"]{
  flex: 1; min-width: 80px;
  padding: 8px 10px;
  border: none; border-radius: var(--radius);
  background: var(--bg-subtle); font-size: .875rem;
}.topbar-search input[type="search"]:focus{
  outline: none; background: var(--surface);
  box-shadow: 0 0 0 2px rgba(74, 98, 135, .15);
}.topbar-search-domain{
  max-width: 130px; min-width: 0;
  padding: 8px 10px; font-size: .8125rem;
  border: 1px solid var(--line); border-radius: var(--radius);
  background: var(--bg-subtle);
}.topbar-search-submit{
  flex-shrink: 0; padding: 8px 12px;
}@media (max-width: 900px){.topbar-search-domain{ display: none; }}.dashboard-content-inner{
  width: 100%;
  animation: pageEnter .48s var(--ease-soft) both;
}.explorer-subnav-hint{ display: none; }/* ── Course curriculum (page leçons) ── */
.curriculum-chapter{ margin-bottom: 32px; }.lesson-list{ display: flex; flex-direction: column; gap: 12px; }.lesson-row{
  display: grid; grid-template-columns: 44px 1fr auto; gap: 16px; align-items: center;
  transition: border-color var(--duration) var(--ease-soft), box-shadow var(--duration) var(--ease-soft);
}.lesson-row-current{ border-color: var(--brand) !important; box-shadow: 0 0 0 1px var(--brand-light); }.lesson-row-locked{ opacity: .72; }.lesson-row-num{
  width: 44px; height: 44px; border-radius: 12px;
  background: var(--brand-muted); color: var(--brand);
  display: grid; place-items: center; font-weight: 800; font-size: .9375rem;
}.lesson-row-title{ font-weight: 700; font-size: .9375rem; margin-bottom: 6px; }.lesson-row-meta{
  display: flex; flex-wrap: wrap; gap: 8px; align-items: center;
  font-size: .75rem; color: var(--ink-muted);
}.lesson-row-desc{ font-size: .8125rem; color: var(--ink-muted); margin: 8px 0 0; line-height: 1.5; }.lesson-row-actions{ display: flex; flex-wrap: wrap; gap: 6px; justify-content: flex-end; }@media (max-width: 768px){.lesson-row{ grid-template-columns: 1fr; }.lesson-row-num{ display: none; }.lesson-row-actions{ justify-content: flex-start; }}/* ── Éditeur QCM (structure du cours) ── */
.qcm-editor{ margin-top: 4px; }.qcm-editor-toolbar{
  display: flex; align-items: center; justify-content: space-between;
  gap: 10px; flex-wrap: wrap; margin-bottom: 12px;
}.qcm-editor-count{ margin: 0; font-size: .875rem; font-weight: 700; color: var(--ink); }.qcm-list{ display: flex; flex-direction: column; gap: 12px; }.qcm-opts{ display: flex; flex-direction: column; gap: 8px; margin-bottom: 8px; }.qcm-advanced{ margin-top: 14px; font-size: .8125rem; color: var(--ink-muted); }.qcm-advanced summary{ cursor: pointer; font-weight: 600; margin-bottom: 8px; }.qcm-advanced textarea{ font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace; font-size: .8rem; }/* ── Lecteur vidéo (grand écran) ── */
.lecteur-page{
  display: flex;
  flex-direction: column;
  gap: 28px;
  width: 100%;
  max-width: 100%;
}.lecteur-cinema{
  position: relative;
  width: 100%;
  border-radius: var(--radius-lg);
  overflow: hidden;
  background: #0a0f1a;
  box-shadow: 0 12px 48px rgba(12, 18, 34, .22);
}.lecteur-cinema-stage{
  width: 100%;
  min-height: clamp(280px, 56vh, 640px);
  display: flex;
  align-items: center;
  justify-content: center;
  background: #0c1222;
}.lecteur-cinema-fs{
  position: absolute;
  right: 16px;
  bottom: 16px;
  z-index: 4;
  width: 44px;
  height: 44px;
  border: none;
  border-radius: 10px;
  background: rgba(15, 23, 42, .82);
  color: #fff;
  cursor: pointer;
  display: grid;
  place-items: center;
  font-size: 1rem;
  transition: background .2s, transform .15s;
}.lecteur-cinema-fs:hover{
  background: var(--brand);
  transform: scale(1.05);
}.lecteur-cinema-stage:fullscreen,.lecteur-cinema-stage:fullscreen video{
  width: 100vw;
  height: 100vh;
  max-height: 100vh;
  min-height: 100vh;
}.cours-workspace--lecteur{
  align-items: start;
}.lecteur-details-head{
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  align-items: flex-start;
  gap: 16px;
  margin-bottom: 20px;
}.lecteur-details-head--brand{
  align-items: center;
  padding: 16px 18px;
  border-radius: 16px;
  background: linear-gradient(135deg, var(--brand, #4a6287) 0%, color-mix(in srgb, var(--brand, #4a6287) 75%, #0f172a) 100%);
  color: #fff;
  box-shadow: 0 12px 32px color-mix(in srgb, var(--brand, #4a6287) 28%, transparent);
}.lecteur-details-head--brand .lecteur-details-title{
  color: #fff;
  margin-bottom: 4px;
}.lecteur-details-head--brand .lecteur-details-meta{
  color: rgba(255, 255, 255, 0.82);
}.lecteur-details-head--brand .lecteur-qa-input{
  background: rgba(255, 255, 255, 0.12);
  border-color: rgba(255, 255, 255, 0.28);
  color: #fff;
}.lecteur-details-head--brand .lecteur-qa-input::placeholder{
  color: rgba(255, 255, 255, 0.65);
}.lecteur-details-title{
  font-size: 1.25rem;
  font-weight: 700;
  margin: 0 0 6px;
}.lecteur-details-meta{
  font-size: .875rem;
  color: var(--ink-muted);
  margin: 0;
}.lecteur-details-actions{
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  align-items: center;
  position: relative;
  z-index: 2;
}.lecteur-note-status{
  font-size: .8125rem;
  color: var(--success, #15803d);
  font-weight: 600;
}.lecteur-note-preview{
  margin-top: 14px;
  padding: 12px 14px;
  border-radius: 12px;
  background: var(--bg-subtle, #f8fafc);
  border: 1px solid var(--line, #e2e8f0);
}.lecteur-note-preview-label{
  margin: 0 0 6px;
  font-size: .75rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: .04em;
  color: var(--ink-muted);
}.lecteur-note-preview-body{
  font-size: .9rem;
  line-height: 1.55;
  white-space: normal;
  color: var(--ink);
}.lecteur-qa-input{
  max-width: 220px;
  min-width: 140px;
  font-size: .8rem;
}.lecteur-video-controls{
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
  align-items: center;
  margin-bottom: 16px;
}.lecteur-speed-label{
  font-size: .8125rem;
  font-weight: 600;
  display: flex;
  align-items: center;
  gap: 8px;
}.lecteur-section-title{
  font-size: .9375rem;
  font-weight: 700;
  margin: 0 0 10px;
}.lecteur-description{
  font-size: .875rem;
  color: var(--ink-muted);
  line-height: 1.65;
  margin: 0;
}.lecteur-empty-hint{
  font-size: .875rem;
  color: var(--ink-muted);
  margin: 0;
}.lecteur-signets-list{
  list-style: none;
  padding: 0;
  margin: 0;
  display: flex;
  flex-direction: column;
  gap: 8px;
}.lecon-contenu-texte{
  font-size: .9375rem;
  line-height: 1.7;
  white-space: pre-wrap;
}@media (max-width: 960px){.lecteur-cinema-stage{
    min-height: clamp(220px, 52vw, 420px);
    height: clamp(220px, 56vw, 440px);
  }}.lecteur-layout{
  display: grid; grid-template-columns: 1fr 300px; gap: 24px; align-items: start;
}@media (max-width: 960px){.lecteur-layout{ grid-template-columns: 1fr; }}.lecteur-curriculum{ max-height: 70vh; overflow-y: auto; }.lecteur-curriculum-item{
  display: flex; align-items: center; gap: 10px; padding: 10px 12px;
  border-radius: var(--radius-xs); font-size: .8125rem; color: var(--ink-muted);
  text-decoration: none; transition: background .2s;
}.lecteur-curriculum-item:hover{ background: var(--brand-muted); color: var(--brand); }.adm-kpi-row,.kpi-row{
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(200px, 1fr));
  gap: 16px;
  margin-bottom: 28px;
}.adm-kpi{
  position: relative;
  display: flex;
  align-items: center;
  gap: 14px;
  padding: 18px 18px 16px;
  background: var(--surface);
  border: 1px solid color-mix(in srgb, var(--line) 80%, transparent);
  border-radius: 16px;
  box-shadow: 0 1px 2px rgba(15, 23, 42, 0.04), 0 8px 24px rgba(15, 23, 42, 0.05);
  overflow: hidden;
  transition: transform 0.2s ease, box-shadow 0.2s ease, border-color 0.2s ease;
}.adm-kpi::before,.adm-kpi::after{
  display: none !important;
  content: none !important;
}.adm-kpi:hover{
  transform: translateY(-3px);
  box-shadow: 0 4px 12px rgba(15, 23, 42, 0.06), 0 16px 32px rgba(15, 23, 42, 0.08);
  border-color: color-mix(in srgb, var(--kpi-accent, var(--brand)) 24%, var(--line));
}.adm-kpi__icon{
  width: 44px;
  height: 44px;
  border-radius: 12px;
  flex-shrink: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 17px;
  margin-bottom: 0;
  background: var(--kpi-icon-bg, var(--brand-muted));
  color: var(--kpi-icon-fg, var(--brand));
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.35);
}.stat-card__text,.adm-kpi__body{
  min-width: 0;
  flex: 1;
  display: flex;
  flex-direction: column;
  gap: 4px;
  padding-top: 2px;
}.adm-kpi__label,.adm-kpi__body > span:first-child:not(.stat-hint):not(.adm-kpi__hint){
  display: block;
  font-size: 11px;
  font-weight: 600;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--ink-muted);
  margin-top: 0;
  order: 0;
}.adm-kpi__value,.adm-kpi__body > strong{
  font-family: "Outfit", var(--font-display);
  font-size: 1.5rem;
  font-weight: 700;
  letter-spacing: -0.03em;
  line-height: 1.1;
  color: var(--ink);
}.stat-hint,.adm-kpi__hint,.adm-kpi__body > small{
  font-size: 11px;
  font-weight: 500;
  color: var(--ink-faint);
  text-transform: none;
  letter-spacing: 0;
}.stat-card--brand,.adm-kpi--brand{ --kpi-accent: var(--brand); --kpi-icon-bg: var(--brand-muted); --kpi-icon-fg: var(--brand); }.stat-card--success,.adm-kpi--success{ --kpi-accent: var(--success); --kpi-icon-bg: var(--success-bg); --kpi-icon-fg: var(--success); }.stat-card--warning,.adm-kpi--warning{ --kpi-accent: #d97706; --kpi-icon-bg: #fffbeb; --kpi-icon-fg: #d97706; }.stat-card--info,.adm-kpi--info{ --kpi-accent: #0284c7; --kpi-icon-bg: #e0f2fe; --kpi-icon-fg: #0284c7; }.stat-card--purple,.adm-kpi--purple{ --kpi-accent: #9333ea; --kpi-icon-bg: #f3e8ff; --kpi-icon-fg: #9333ea; }.stat-card--orange,.adm-kpi--orange{ --kpi-accent: #ea580c; --kpi-icon-bg: #ffedd5; --kpi-icon-fg: #ea580c; }.stat-card--pink,.adm-kpi--pink{ --kpi-accent: #db2777; --kpi-icon-bg: #fce7f3; --kpi-icon-fg: #db2777; }.stat-card--slate,.adm-kpi--slate{ --kpi-accent: #64748b; --kpi-icon-bg: #f1f5f9; --kpi-icon-fg: #475569; }.adm-kpi__icon[style*="--kpi-bg"]{
  background: var(--kpi-bg) !important;
  color: var(--kpi-fg) !important;
}.scoro-kpi--brand{ --kpi-theme: var(--brand, #696cff); --kpi-theme-soft: var(--brand-muted, rgba(105, 108, 255, 0.12)); }.scoro-kpi--success{ --kpi-theme: var(--success, #16a34a); --kpi-theme-soft: var(--success-bg, rgba(22, 163, 74, 0.12)); }.scoro-kpi--warning{ --kpi-theme: #d97706; --kpi-theme-soft: #fffbeb; }.scoro-kpi--pink{ --kpi-theme: #db2777; --kpi-theme-soft: #fce7f3; }.scoro-kpi--info{ --kpi-theme: #0284c7; --kpi-theme-soft: #e0f2fe; }.scoro-kpi--purple{ --kpi-theme: #9333ea; --kpi-theme-soft: #f3e8ff; }.scoro-kpi--orange{ --kpi-theme: #ea580c; --kpi-theme-soft: #ffedd5; }.scoro-kpi--slate{ --kpi-theme: #64748b; --kpi-theme-soft: #f1f5f9; }/* ── Statistiques finances instructeur ── */
.finances-kpi-grid{
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 16px;
  margin-bottom: 28px;
}.finances-charts-grid{
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 20px;
  margin-bottom: 24px;
}.finances-chart-panel--full{
  grid-column: 1 / -1;
}.finances-chart-panel{
  background: var(--surface);
  border: 1px solid var(--line);
  border-radius: var(--radius-lg);
  padding: 20px 22px;
  min-width: 0;
  overflow: hidden;
}.finances-chart-panel h2,.finances-chart-panel h3{
  font-size: 1rem;
  font-weight: 700;
  margin: 0 0 16px;
}.chart-caption{
  font-size: .75rem;
  color: var(--ink-muted);
  margin: -10px 0 12px;
  line-height: 1.45;
}.chart-drill-bar{
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 10px 14px;
}.chart-drill-label{
  font-size: .8125rem;
  font-weight: 700;
  color: var(--ink);
  white-space: nowrap;
}.chart-drill-label i{ color: var(--brand); margin-right: 6px; }.chart-drill-nav{
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 6px;
  flex: 1;
}.chart-drill-crumb{
  border: 1px solid var(--line);
  background: var(--bg-subtle);
  color: var(--brand);
  font-size: .75rem;
  font-weight: 600;
  padding: 4px 10px;
  border-radius: 999px;
  cursor: pointer;
}.chart-drill-hint{
  width: 100%;
  margin: 0;
  font-size: .72rem;
  color: var(--ink-muted);
}.chart-box{
  position: relative;
  width: 100%;
  height: 280px;
}.chart-box canvas{
  display: block;
  max-width: 100%;
}.finances-section{
  margin-top: 32px;
}.finances-section-title{
  font-size: 1.0625rem;
  font-weight: 700;
  margin: 0 0 16px;
}.finances-info-bar{
  display: flex;
  flex-wrap: wrap;
  gap: 10px 16px;
  align-items: center;
  padding: 14px 18px;
  background: var(--bg-subtle);
  border: 1px solid var(--line-soft);
  border-radius: var(--radius);
  margin-bottom: 28px;
  font-size: .8125rem;
  color: var(--ink-muted);
}.finances-info-chip{
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 6px 12px;
  background: var(--surface);
  border: 1px solid var(--line);
  border-radius: 100px;
  font-weight: 600;
  color: var(--ink);
}.finances-info-chip i{ color: var(--brand); }.finances-section-subtitle{
  font-size: .8125rem;
  color: var(--ink-muted);
  margin: -8px 0 16px;
}@media (max-width: 1100px){.finances-kpi-grid{ grid-template-columns: repeat(2, minmax(0, 1fr)); }.finances-charts-grid{ grid-template-columns: 1fr; }}@media (max-width: 640px){.finances-kpi-grid{ grid-template-columns: 1fr; }}/* ── Hero (Landing) ── */
.hero{
  padding: 72px 0 80px;
  background: linear-gradient(160deg, #1a2332 0%, #2d3f5c 40%, #3d5a80 100%);
  color: #fff; position: relative; overflow: hidden;
}.hero.hero--home{
  padding-top: 64px;
}.hero::before{
  content: ''; position: absolute; inset: 0;
  background:
    radial-gradient(ellipse 70% 50% at 20% 40%, rgba(74, 98, 135,.35), transparent),
    radial-gradient(ellipse 50% 40% at 80% 20%, rgba(2,132,199,.25), transparent);
}.hero-grid-bg{
  position: absolute; inset: 0; opacity: .04;
  background-image: linear-gradient(rgba(255,255,255,.1) 1px, transparent 1px),
    linear-gradient(90deg, rgba(255,255,255,.1) 1px, transparent 1px);
  background-size: 60px 60px;
}.hero--home .hero-home-layout{
  display: grid;
  grid-template-columns: 1.1fr 1fr;
  gap: 64px;
  align-items: center;
}.landing-page--minimal > main{
  min-height: calc(100vh - var(--nav-h, 72px));
  display: flex;
  flex-direction: column;
}.landing-page--minimal .hero--home{
  flex: 1;
  display: flex;
  align-items: center;
  padding: clamp(48px, 8vh, 100px) 0;
}@media (max-width: 900px){.hero--home .hero-home-layout{
    grid-template-columns: 1fr;
    gap: 40px;
  }.landing-page--minimal .hero-visual{
    max-width: 420px;
    margin: 0 auto;
  }}.hero-badge{
  display: inline-flex; align-items: center; gap: 8px;
  background: rgba(255,255,255,.08); border: 1px solid rgba(255,255,255,.15);
  border-radius: 100px; padding: 8px 16px; font-size: .8125rem;
  font-weight: 500; margin-bottom: 24px; backdrop-filter: blur(8px);
}.hero-badge .pulse{
  width: 8px; height: 8px; border-radius: 50%; background: #34d399;
  animation: pulse 2s infinite;
}.hero h1{
  font-size: clamp(2.25rem, 5.5vw, 3.75rem); font-weight: 800;
  margin-bottom: 24px; color: #fff; line-height: 1.08;
}.hero h1 .gradient-text{
  background: linear-gradient(135deg, #9bb4d4 0%, #6b9fd4 50%, #d4a574 100%);
  -webkit-background-clip: text; -webkit-text-fill-color: transparent;
  background-clip: text;
}.hero-desc{
  font-size: 1.125rem; color: rgba(255,255,255,.9); margin-bottom: 36px;
  max-width: 520px; line-height: 1.7;
}.hero-actions{ display: flex; gap: 14px; flex-wrap: wrap; margin-bottom: 48px; }.hero-stats{
  display: grid; grid-template-columns: repeat(4, 1fr); gap: 16px;
  margin-top: 0;
}.hero-stat{
  text-align: center; padding: 20px 12px;
  background: rgba(255,255,255,.05); border: 1px solid rgba(255,255,255,.08);
  border-radius: var(--radius); backdrop-filter: blur(8px);
}.hero-stat .num{
  font-size: 1.75rem; font-weight: 800; font-family: var(--font-display);
  color: #fff; letter-spacing: -.02em;
}.hero-stat .lbl{ font-size: .6875rem; color: rgba(255,255,255,.72); margin-top: 4px; text-transform: uppercase; letter-spacing: .06em; }/* Hero visual mockup */
.hero-visual{ position: relative; }.hero-mockup{
  background: rgba(255,255,255,.06); border: 1px solid rgba(255,255,255,.12);
  border-radius: var(--radius-xl); padding: 20px;
  backdrop-filter: blur(20px); box-shadow: var(--shadow-glow);
}.hero-mockup-header{
  display: flex; gap: 6px; margin-bottom: 16px;
}.hero-mockup-header span{
  width: 10px; height: 10px; border-radius: 50%;
  background: rgba(255,255,255,.2);
}.hero-mockup-header span:first-child{ background: #ef4444; }.hero-mockup-header span:nth-child(2){ background: #f59e0b; }.hero-mockup-header span:nth-child(3){ background: #22c55e; }.hero-mockup-course{
  background: rgba(255,255,255,.08); border-radius: var(--radius);
  padding: 16px; margin-bottom: 12px;
  display: flex; gap: 14px; align-items: center;
}.hero-mockup-thumb{
  width: 64px; height: 48px; border-radius: 8px;
  background: var(--accent-gradient); flex-shrink: 0;
  display: grid; place-items: center; color: #fff;
}.hero-mockup-info h4{ font-size: .875rem; color: #fff; margin-bottom: 4px; }.hero-mockup-info p{ font-size: .75rem; color: #64748b; }.section-dark{ background: var(--ink); color: #fff; }/* ── Features ── */
.features-grid{
  display: grid; grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); gap: 24px;
}.features-grid-6{
  grid-template-columns: repeat(3, 1fr);
  max-width: 1100px;
  margin: 0 auto;
}@media (max-width: 900px){.features-grid-6{ grid-template-columns: repeat(2, 1fr); }}@media (max-width: 560px){.features-grid-6{ grid-template-columns: 1fr; }}.feature-card{
  padding: 32px; border-radius: var(--radius-lg);
  border: 1px solid var(--line); background: var(--surface);
  transition: transform var(--duration-slow) var(--ease-soft),
              box-shadow var(--duration-slow) var(--ease-soft),
              border-color var(--duration) var(--ease-soft);
  position: relative;
}.feature-card:hover{
  border-color: var(--brand-light); box-shadow: var(--shadow);
  transform: translateY(-3px);
}.feature-icon{
  width: 56px; height: 56px; border-radius: 16px;
  background: var(--brand-muted); color: var(--brand);
  display: grid; place-items: center; font-size: 1.375rem; margin-bottom: 20px;
  transition: all var(--transition);
}.feature-card:hover .feature-icon{
  background: var(--accent-gradient); color: #fff;
  transform: scale(1.05);
}.feature-card h3{ font-size: 1.0625rem; font-weight: 700; margin-bottom: 10px; }.feature-card p{ font-size: .9375rem; color: var(--ink-muted); line-height: 1.65; margin-bottom: 14px; }.feature-learn-more{
  display: inline-flex; align-items: center; gap: 6px;
  font-size: .8125rem; font-weight: 600; color: var(--brand);
  text-decoration: none; transition: gap .2s var(--ease-soft);
}.feature-learn-more:hover{ gap: 10px; }/* ── Steps ── */
.steps-grid{ display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px; max-width: 1000px; margin: 0 auto; }.step-card{ padding: 0; }.step-card-inner{
  text-align: center; padding: 32px 24px; height: 100%;
  border-radius: var(--radius-lg); border: 1px solid var(--line);
  background: var(--surface);
  transition: transform var(--duration-slow) var(--ease-soft),
              box-shadow var(--duration-slow) var(--ease-soft),
              border-color var(--duration) var(--ease-soft);
}.step-card:hover .step-card-inner{
  border-color: var(--brand-light); box-shadow: var(--shadow);
  transform: translateY(-3px);
}.step-num{
  width: 56px; height: 56px; border-radius: 50%;
  background: var(--accent-gradient); color: #fff;
  display: grid; place-items: center; font-size: 1.25rem; font-weight: 800;
  margin: 0 auto 20px; box-shadow: 0 8px 24px rgba(74, 98, 135,.3);
}.step-card h3{ font-size: 1.0625rem; font-weight: 700; margin-bottom: 8px; }.step-card p{ font-size: .875rem; color: var(--ink-muted); line-height: 1.65; }/* ── Trust bar ── */
.trust-bar{
  padding: 32px 0; border-bottom: 1px solid var(--line);
  background: var(--surface);
}.trust-bar-inner{
  display: flex; align-items: center; justify-content: center;
  gap: 48px; flex-wrap: wrap;
}.trust-stat{ text-align: center; }.trust-stat strong{ display: block; font-size: 1.5rem; font-weight: 800; font-family: var(--font-display); color: var(--brand); }.trust-stat span{ font-size: .8125rem; color: var(--ink-muted); }.auth-notice--error{
  background: rgba(220, 53, 69, 0.08);
  color: var(--danger);
}.auth-notice--error i{ color: var(--danger); }.auth-notice--success{
  background: rgba(25, 135, 84, 0.08);
  color: #146c43;
}.auth-notice--success i{ color: #198754; }.entreprise-equipes-split .entreprise-assign-form{
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-bottom: 10px;
  align-items: center;
}.entreprise-equipes-split .entreprise-assign-form__who,.entreprise-equipes-split .entreprise-assign-form span{
  flex: 1 1 auto;
  min-width: 140px;
  font-size: 0.875rem;
}.entreprise-equipes-split .entreprise-assign-form select{
  flex: 1 1 160px;
  min-width: 140px;
  max-width: 240px;
}.entreprise-equipe-list{
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 10px;
}.entreprise-equipe-item{
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 12px;
  padding: 12px 14px;
  border: 1px solid var(--border, #e2e8f0);
  border-radius: 10px;
  background: var(--bg-subtle, #f8fafc);
}.entreprise-equipe-item__main strong{
  font-size: 0.9375rem;
}.entreprise-equipe-item__desc{
  margin: 4px 0 0;
  font-size: 0.8rem;
}.entreprise-empty{
  font-size: 0.875rem;
  margin: 0;
  padding: 8px 0;
}.entreprise-form-stack{
  display: flex;
  flex-direction: column;
  gap: 4px;
}.entreprise-rh-stack{
  display: flex;
  flex-direction: column;
  gap: 20px;
}.entreprise-form-grid{
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
  gap: 12px 16px;
  align-items: end;
}.entreprise-form-grid__actions{
  display: flex;
  align-items: end;
}.entreprise-mini-progress{
  display: inline-block;
  vertical-align: middle;
  width: 72px;
  height: 6px;
  margin-right: 8px;
  border-radius: 99px;
  background: var(--bg-subtle, #eef2f7);
  overflow: hidden;
}.entreprise-mini-progress > span{
  display: block;
  height: 100%;
  background: var(--brand, #4a6287);
  border-radius: 99px;
}.entreprise-color-palette{
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  margin-top: 6px;
}.entreprise-swatch{
  width: 36px;
  height: 36px;
  border-radius: 999px;
  border: 2px solid transparent;
  background: var(--swatch, #94a3b8);
  cursor: pointer;
  padding: 0;
  box-shadow: inset 0 0 0 1px rgba(15, 23, 42, 0.12);
  transition: transform 0.15s ease, box-shadow 0.15s ease;
}.entreprise-swatch:hover{
  transform: scale(1.06);
}.entreprise-charts-grid{
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
  gap: 16px;
}.entreprise-chart-panel{
  border: 1px solid var(--border, #e2e8f0);
  border-radius: 12px;
  padding: 14px 16px 10px;
  background: var(--surface, #fff);
  min-height: 260px;
}.entreprise-chart-panel .chart-caption{
  margin: 0 0 10px;
  font-size: 0.8125rem;
  font-weight: 600;
  color: var(--ink-muted, #64748b);
}.entreprise-chart-panel canvas{
  width: 100% !important;
  max-height: 220px;
}.entreprise-tab-panel[hidden]{
  display: none !important;
}@media (max-width: 768px){.hero--home .hero-home-copy{ text-align: center; }.hero--home .hero-desc{ margin-left: auto; margin-right: auto; }.hero--home .hero-actions{ justify-content: center; }.entreprise-equipes-split{ grid-template-columns: 1fr; }.entreprise-equipes-split .entreprise-assign-form{
    flex-direction: column;
    align-items: stretch;
  }.entreprise-equipes-split .entreprise-assign-form select,.entreprise-equipes-split .entreprise-assign-form__who{
    width: 100%;
    max-width: none;
    min-width: 0;
    overflow-wrap: break-word;
  }}/* ── Domain pills ── */
.domain-pills{ display: flex; flex-wrap: wrap; gap: 10px; margin-bottom: 36px; justify-content: center; }/* ── CTA Banner ── */
.cta-banner{
  padding: 80px 0; text-align: center;
  background: linear-gradient(135deg, #2d3f5c 0%, #4a6287 50%, #3d6a9e 100%);
  color: #fff; position: relative; overflow: hidden;
}.cta-banner::before{
  content: ''; position: absolute; inset: 0;
  background: radial-gradient(circle at 30% 50%, rgba(94,234,212,.18), transparent 50%);
}.cta-banner h2{ font-size: clamp(1.75rem, 4vw, 2.25rem); color: #fff; margin-bottom: 16px; }.cta-banner p{ color: #c5d4e8; margin-bottom: 32px; font-size: 1.0625rem; }.avatar-lg{ width: 88px; height: 88px; font-size: 1.75rem; }/* ── Tabs ── */
.tabs{
  display: flex; gap: 4px; margin-bottom: 28px; flex-wrap: wrap;
  background: var(--bg-subtle); padding: 4px; border-radius: var(--radius-sm);
  width: fit-content;
}.tab-link{
  padding: 10px 20px; font-size: .875rem; font-weight: 600; color: var(--ink-muted);
  border-radius: var(--radius-xs); transition: all var(--transition); border: none;
  background: transparent; cursor: pointer; font-family: var(--font);
}.tab-link:hover{ color: var(--ink); }.tab-panels{ display: grid; }.tab-panel{
  grid-area: 1 / 1;
  opacity: 0; visibility: hidden; pointer-events: none;
  transition: opacity .3s var(--ease-soft), visibility .3s var(--ease-soft), transform .3s var(--ease-soft);
  transform: translateY(6px);
}.tab-panels > .tab-panel{ display: block; }/* ── Page toolbar ── */
.page-toolbar{
  display: flex; align-items: flex-end; justify-content: space-between;
  gap: 20px; margin-bottom: 28px; flex-wrap: wrap;
}.page-toolbar h2{ font-size: 1.375rem; font-weight: 800; font-family: var(--font-display); }.page-toolbar p{ font-size: .875rem; color: var(--ink-muted); margin-top: 4px; }.toolbar-actions{ display: flex; gap: 10px; flex-wrap: wrap; }/* ── Profile ── */
.profile-hero{
  background: var(--accent-gradient); border-radius: var(--radius-xl);
  padding: 40px; color: #fff; display: flex; align-items: center;
  gap: 28px; margin-bottom: 28px; flex-wrap: wrap; position: relative; overflow: hidden;
}.profile-hero::before{
  content: ''; position: absolute; width: 300px; height: 300px;
  border-radius: 50%; background: rgba(255,255,255,.1);
  top: -100px; right: -50px;
}.profile-hero > *{ position: relative; z-index: 1; }.profile-hero h1{ color: #fff; font-size: 1.75rem; }.profile-hero .avatar-lg{ background: rgba(255,255,255,.2); border-color: rgba(255,255,255,.3); }.info-grid{ display: grid; grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); gap: 24px; }.info-item{
  display: flex; gap: 14px; padding: 16px;
  background: var(--bg-subtle); border-radius: var(--radius-sm);
  border: 1px solid var(--line-soft);
}.info-item i{ color: var(--brand); width: 20px; margin-top: 3px; }.info-item-label{ font-size: .6875rem; color: var(--ink-muted); text-transform: uppercase; font-weight: 700; letter-spacing: .06em; }.info-item-value{ font-size: .9375rem; font-weight: 500; margin-top: 2px; }.notif-item{
  padding: 14px 18px; border-bottom: 1px solid var(--line-soft);
  font-size: .8125rem; cursor: pointer; transition: background var(--transition);
}.notif-item:hover{ background: var(--brand-muted); }.notif-item-corps{
  color: var(--ink-muted);
  font-size: .75rem;
  margin-top: 2px;
}.notif-item-date{
  display: block;
  font-size: .68rem;
  color: var(--ink-faint);
  margin-top: 4px;
}/* ── Chat ── */
.chat-layout{
  display: grid;
  grid-template-columns: minmax(220px, 320px) minmax(0, 1fr);
  grid-template-rows: minmax(0, 1fr);
  gap: 0;
  min-height: 0; height: 100%;
  border: 1px solid var(--line); border-radius: var(--radius-lg);
  overflow: hidden; background: var(--surface); box-shadow: var(--shadow-sm);
}.chat-layout > .chat-sidebar{ grid-column: 1; grid-row: 1; }.chat-layout > .chat-main{ grid-column: 2; grid-row: 1; }.chat-list-backdrop{
  display: none;
  grid-column: 1 / -1;
  grid-row: 1;
  z-index: 22;
  border: 0;
  padding: 0;
  background: rgba(15, 23, 42, .4);
}.chat-sidebar{
  display: flex; flex-direction: column;
  border-right: 1px solid var(--line);
  background: var(--bg-subtle);
  min-height: 0; min-width: 0; overflow: hidden;
}.chat-sidebar-search{
  flex-shrink: 0;
  padding: 12px 14px;
  border-bottom: 1px solid var(--line);
  display: flex;
  flex-direction: column;
  gap: 8px;
}.chat-search-row{
  display: flex;
  gap: 8px;
  align-items: center;
}.chat-sidebar-actions{
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
}.chat-mode-hint{
  margin: 0;
  font-size: .72rem;
  color: var(--ink-muted);
  line-height: 1.35;
}.chat-sidebar-list{
  display: flex; flex-direction: column;
  flex: 1; min-height: 0;
  overflow-x: hidden; overflow-y: auto;
}.chat-sidebar-empty{ padding: 24px; text-align: center; color: var(--ink-muted); }.chat-main{ display: flex; flex-direction: column; min-width: 0; min-height: 0; background: var(--surface); }.chat-main-header{
  flex-shrink: 0;
  padding: 16px 20px;
  border-bottom: 1px solid var(--line);
  font-weight: 700;
  display: flex; align-items: center; gap: 10px; min-width: 0;
}.chat-main-header #chatHeaderTitle{
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}.chat-list-toggle{ display: none; }.chat-messages{ flex: 1; min-height: 0; overflow-y: auto; padding: 24px; }.chat-empty{ padding: 40px; text-align: center; color: var(--ink-muted); }.chat-empty > i{ font-size: 2rem; margin-bottom: 12px; display: block; }.chat-input-bar{ padding: 18px 20px; border-top: 1px solid var(--line); display: flex; gap: 10px; background: var(--surface); flex-shrink: 0; }.conv-item{
  flex: 0 0 auto;
  border-bottom: 1px solid var(--line-soft);
  transition: background var(--transition);
  cursor: pointer;
}.conv-item-btn{
  display: flex; flex-direction: column; align-items: stretch; gap: 4px;
  width: 100%; padding: 14px 16px;
  border: 0; background: transparent; color: inherit; text-align: left;
  pointer-events: none;
  font: inherit;
}.conv-item-top{
  display: flex; justify-content: space-between; align-items: center; gap: 8px;
}.conv-item-top strong{ font-size: .875rem; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }.conv-item-preview{ font-size: .75rem; color: var(--ink-muted); }.conv-item:hover{ background: var(--brand-muted); }.conv-item:focus-visible{
  outline: 2px solid var(--brand);
  outline-offset: -2px;
}.chat-list-backdrop:focus-visible{
  outline: 2px solid var(--brand);
}@media (prefers-reduced-motion: reduce){.chat-sidebar{ transition: none; }}.cours-hero{ margin-bottom: 24px; }.cours-hero-actions{
  flex: 1 1 100%;
  justify-content: flex-start;
  max-width: 100%;
}.lives-manage-toolbar{ margin-bottom: 16px; align-items: center; }.lives-manage-count{ margin: 0; font-size: .9375rem; font-weight: 700; }.lives-manage-list{ gap: 8px; }.lives-manage-row{ padding: 12px 16px; }.lives-manage-row .course-row-title{
  display: flex; align-items: center; gap: 8px; flex-wrap: wrap; margin-bottom: 2px;
}.lives-manage-row .course-row-meta{ margin-bottom: 0; }.lives-manage-actions{ display: flex; gap: 6px; align-items: center; flex-wrap: wrap; }.lives-replay{ margin-top: 8px; font-size: .8125rem; color: var(--ink-muted); }.lives-replay summary{ cursor: pointer; font-weight: 600; }.lives-replay-form{ display: flex; gap: 8px; flex-wrap: wrap; margin-top: 8px; align-items: center; }.lives-form-grid{ display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }.dash-tab-count{
  display: inline-flex; min-width: 1.25rem; justify-content: center;
  font-size: .7rem; font-weight: 700; opacity: .75;
}.pulse-dot{
  display: inline-block; width: 8px; height: 8px; background: #ef4444;
  border-radius: 50%; animation: pulseDot 1.5s infinite; margin-right: 4px;
}@media (max-width: 640px){.lives-form-grid{ grid-template-columns: 1fr; }.lives-manage-row{ grid-template-columns: 1fr; }.lives-manage-actions{ justify-content: flex-start; }}.learner-space-heading{
  font-size: 1.05rem;
  font-weight: 700;
  font-family: var(--font-display);
  margin: 0 0 16px;
}.learner-space-section{ margin-bottom: 28px; }.learner-space-panel .learner-space-heading{ margin-bottom: 0; }.learner-hero{
  display: grid;
  grid-template-columns: minmax(0, 1.35fr) minmax(0, 1fr);
  gap: clamp(18px, 3vw, 28px);
  align-items: stretch;
  margin-bottom: 28px;
  padding: clamp(20px, 3vw, 28px);
  border-radius: 22px;
  border: 1px solid var(--line);
  background:
    radial-gradient(1200px 280px at 0% 0%, rgba(74, 98, 135, 0.14), transparent 55%),
    linear-gradient(135deg, var(--surface) 0%, var(--bg-subtle, #f8fafc) 100%);
  box-shadow: 0 10px 36px rgba(15, 23, 42, 0.05);
}.learner-hero-kicker{
  margin: 0 0 6px;
  font-size: .8rem;
  font-weight: 700;
  letter-spacing: .04em;
  text-transform: uppercase;
  color: var(--brand);
}.learner-hero-title{
  margin: 0 0 10px;
  font-family: var(--font-display);
  font-size: clamp(1.35rem, 2.4vw, 1.85rem);
  line-height: 1.2;
}.learner-hero-text{
  margin: 0 0 16px;
  color: var(--ink-muted);
  max-width: 42rem;
  line-height: 1.55;
}.learner-hero-actions{
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}.learner-hero-stats{
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 10px;
}@media (max-width: 900px){.learner-hero{ grid-template-columns: 1fr; }}.learner-events-grid{
  display: grid;
  grid-template-columns: 1fr;
  gap: 12px;
}.cours-cree-item{
  display: flex;
  flex-direction: column;
  min-width: 0;
}.cours-cree-toolbar{
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  margin-top: 10px;
}.cours-cree-stats{
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
  font-size: .8125rem;
  color: var(--ink-muted);
}.cours-cree-actions{
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 8px;
}.cours-cree-actions form{ display: inline; }.learner-event-card{ padding: 14px; }.learner-event-card strong{ display: block; font-size: .875rem; }@media (min-width: 700px){.learner-events-grid{ grid-template-columns: repeat(2, minmax(0, 1fr)); }}@media (min-width: 1100px){.learner-events-grid{ grid-template-columns: repeat(3, minmax(0, 1fr)); }}.instructeurs-directory{
  display: grid;
  grid-template-columns: 1fr;
  gap: 16px;
}.instructeur-dir-card{
  padding: 0;
  overflow: hidden;
  transition: border-color .2s ease, box-shadow .2s ease, transform .2s ease;
}.instructeur-dir-card:hover{
  border-color: var(--brand-light, var(--brand));
  box-shadow: var(--shadow-md, var(--shadow));
  transform: translateY(-3px);
}.instructeur-dir-link{
  display: block;
  text-decoration: none;
  color: inherit;
  padding: 20px;
  transition: background .15s ease;
}.instructeur-dir-link:hover{ background: transparent; }.instructeur-dir-head{
  display: flex;
  align-items: center;
  gap: 14px;
  margin-bottom: 12px;
}.instructeur-dir-head h3{ margin: 0; font-size: 1.05rem; transition: color .15s ease; }.instructeur-dir-card:hover .instructeur-dir-head h3{ color: var(--brand); }.instructeur-dir-avatar{
  width: 56px; height: 56px; border-radius: 50%; overflow: hidden;
  background: var(--brand-muted); color: var(--brand);
  display: grid; place-items: center; font-weight: 700; flex-shrink: 0;
}.instructeur-dir-avatar img{ width: 100%; height: 100%; object-fit: cover; }.instructeur-dir-bio{ font-size: .875rem; color: var(--ink-muted); margin: 0 0 12px; }.instructeur-dir-stats{
  display: flex; flex-wrap: wrap; gap: 12px;
  font-size: .8125rem; color: var(--ink-muted); margin-bottom: 10px;
}.instructeur-dir-tags{ display: flex; flex-wrap: wrap; gap: 6px; margin-bottom: 10px; }.instructeur-dir-featured{ font-size: .8125rem; margin: 0 0 14px; }.instructeur-dir-cta{ pointer-events: none; }.settings-notif-group{
  font-size: .9rem;
  font-weight: 700;
  margin: 18px 0 10px;
  padding-top: 12px;
  border-top: 1px solid var(--border, var(--line));
}.settings-check{
  display: flex;
  align-items: flex-start;
  gap: 10px;
  margin-bottom: 10px;
  font-size: .9rem;
  line-height: 1.4;
}@media (min-width: 700px){.instructeurs-directory{ grid-template-columns: repeat(2, minmax(0, 1fr)); }}@media (min-width: 1100px){.instructeurs-directory{ grid-template-columns: repeat(3, minmax(0, 1fr)); }}.course-list{ display: flex; flex-direction: column; gap: 12px; }.course-row{
  display: grid; grid-template-columns: 120px 1fr auto; gap: 20px; align-items: center;
  padding: 16px; background: var(--surface); border: 1px solid var(--line);
  border-radius: var(--radius-lg); transition: all var(--transition);
}.course-row:hover{
  box-shadow: var(--shadow); border-color: var(--brand-light); transform: translateX(4px);
}.course-row-thumb{
  aspect-ratio: 16/10; border-radius: var(--radius-sm); overflow: hidden;
  background: linear-gradient(135deg, #ccfbf1, #e0f2fe);
}.course-row-thumb img{ width: 100%; height: 100%; object-fit: cover; }.course-row-title{ font-weight: 700; font-size: .9375rem; margin-bottom: 4px; }.course-row-meta{ font-size: .8125rem; color: var(--ink-muted); margin-bottom: 10px; }.course-row-btn{ flex-shrink: 0; }/* Variante sans vignette (ex. cartes lives/sessions) : body + action seulement. */
.course-row:not(:has(.course-row-thumb)){
  grid-template-columns: 1fr auto;
  align-items: center;
}.profile-stats{
  display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 16px; margin-bottom: 24px;
}@media (max-width: 900px){.profile-stats{ grid-template-columns: repeat(2, 1fr); }}.profile-stat{
  background: var(--surface); border: 1px solid var(--line); border-radius: var(--radius);
  padding: 18px; text-align: center;
}.profile-stat strong{ display: block; font-size: 1.5rem; color: var(--brand); font-family: var(--font-display); }.profile-stat span{ font-size: .75rem; color: var(--ink-muted); font-weight: 600; }.profile-section-title{ font-size: .95rem; font-weight: 700; margin-bottom: 14px; display: flex; align-items: center; gap: 8px; }.course-mini-list{ display: flex; flex-direction: column; gap: 10px; }.course-mini{
  display: flex; align-items: center; justify-content: space-between; gap: 12px;
  padding: 12px 14px; background: var(--bg-subtle); border-radius: var(--radius-sm); border: 1px solid var(--line-soft);
}.course-mini-title{ font-size: .8125rem; font-weight: 600; }.course-mini-meta{ font-size: .72rem; color: var(--ink-muted); }/* Chat bulles */
.chat-bubble-row{ margin-bottom: 12px; display: flex; }.chat-bubble-row.mine{ justify-content: flex-end; }.chat-layout-full{ margin: 0; height: 100%; flex: 1; min-height: 0; width: 100%; border: none; border-radius: 0; }.chat-page-root{
  display: flex; flex-direction: column; flex: 1; min-height: 0; width: 100%;
}@media (min-width: 769px){.chat-layout{
    grid-template-columns: minmax(220px, 320px) minmax(0, 1fr);
    grid-template-rows: minmax(0, 1fr);
  }.chat-layout > .chat-sidebar{
    position: relative; inset: auto; width: auto; transform: none; box-shadow: none;
  }.chat-list-toggle{ display: none; }.chat-list-backdrop{ display: none; }}.domain-list{ display: flex; flex-direction: column; gap: 8px; margin-bottom: 24px; }.domain-arrow{ margin-left: auto; color: var(--ink-faint); font-size: .75rem; }.adm-topbar{
  animation: pageEnterFade .4s var(--ease-soft) both;
  animation-delay: .03s;
}.page-transition{
  animation: pageEnter .52s var(--ease-soft) both;
}.adm-app .adm-topbar,.adm-app .page-transition{
  animation: none !important;
}@media (prefers-reduced-motion: reduce){.dashboard-content-inner,.adm-topbar,.page-transition{
    animation: none !important;
  }}/* Legacy admin / page compat */
.adm-header{ margin-bottom: 24px; }.adm-header h2{ font-size: 1.375rem; font-weight: 800; font-family: var(--font-display); }.adm-header p{ font-size: .875rem; color: var(--ink-muted); }.stat-row{ display: grid; grid-template-columns: repeat(auto-fit, minmax(180px, 1fr)); gap: 16px; margin-bottom: 24px; }.stat-box{ background: var(--surface); border: 1px solid var(--line); border-radius: var(--radius); padding: 18px 20px; display: flex; align-items: center; gap: 14px; transition: transform .35s var(--ease), box-shadow .35s var(--ease); }.stat-box:hover{ transform: translateY(-3px); box-shadow: var(--shadow); }.stat-ico{ width: 44px; height: 44px; border-radius: 12px; background: var(--brand-muted); display: flex; align-items: center; justify-content: center; color: var(--brand); }.stat-num{ font-size: 1.5rem; font-weight: 800; font-family: var(--font-display); }.stat-lbl{ font-size: .75rem; color: var(--ink-muted); }.adm-card-header{ padding: 14px 20px; border-bottom: 1px solid var(--line-soft); display: flex; align-items: center; justify-content: space-between; background: var(--bg-subtle); }.adm-card-title{ font-size: .9375rem; font-weight: 700; }.page-wrap{ display: flex; flex-direction: column; gap: 24px; }.page-hero{ background: var(--accent-gradient); border-radius: var(--radius-lg); padding: 28px 32px; color: #fff; display: flex; align-items: center; justify-content: space-between; gap: 20px; flex-wrap: wrap; }.activity-icon--success{ background: var(--success-bg); color: var(--success); }.activity-icon--danger{ background: #fee2e2; color: var(--danger); }/* Accueil — résumé compte & panneaux info */
.accueil-compte-strip{
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
  gap: 12px;
  margin-bottom: 24px;
}.accueil-compte-item{
  display: flex; align-items: center; gap: 12px;
  padding: 14px 16px; background: var(--surface);
  border: 1px solid var(--line); border-radius: var(--radius-sm);
  text-decoration: none; color: inherit;
  transition: border-color var(--duration) var(--ease-soft), box-shadow var(--duration) var(--ease-soft);
}.accueil-compte-item:hover{ border-color: var(--brand); box-shadow: var(--shadow-sm); color: inherit; }.accueil-compte-item i{
  width: 36px; height: 36px; border-radius: 10px;
  background: var(--brand-muted); color: var(--brand);
  display: grid; place-items: center; flex-shrink: 0;
}.accueil-compte-item strong{ display: block; font-size: 1rem; font-weight: 800; color: var(--ink); }.accueil-compte-item span{ font-size: .72rem; color: var(--ink-muted); }.accueil-info-grid{
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
  gap: 20px;
}.accueil-defis-list{ display: flex; flex-direction: column; gap: 10px; }.accueil-defi-item{
  display: block; padding: 12px 14px;
  border: 1px solid var(--line); border-radius: var(--radius-sm);
  text-decoration: none; color: inherit;
  transition: border-color var(--duration) var(--ease-soft);
}.accueil-defi-item:hover{ border-color: var(--brand); color: inherit; }.accueil-defi-head{
  display: flex; align-items: flex-start; justify-content: space-between; gap: 10px;
}.accueil-defi-head strong{ font-size: .875rem; line-height: 1.35; }.accueil-pulse{
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(160px, 1fr));
  gap: 14px;
  background: linear-gradient(135deg, var(--brand-muted), var(--surface));
}.accueil-pulse-item{
  display: flex; align-items: center; gap: 12px;
}.accueil-pulse-item i{
  width: 40px; height: 40px; border-radius: 10px;
  background: var(--surface); color: var(--brand);
  display: grid; place-items: center; flex-shrink: 0;
}.accueil-pulse-item strong{ display: block; font-size: 1.15rem; font-weight: 800; color: var(--ink); }.accueil-pulse-item span{ font-size: .72rem; color: var(--ink-muted); }.accueil-discovery-section--hero{
  padding: 24px;
  border-radius: var(--radius-lg);
  background: linear-gradient(135deg, var(--brand-muted), var(--surface));
  border: 1px solid var(--line);
}.course-grid-horizontal{
  display: flex; gap: 16px; overflow-x: auto;
  padding-bottom: 8px; scroll-snap-type: x proximity;
  -webkit-overflow-scrolling: touch;
}@media (max-width: 1024px){.hero-desc{ margin-left: auto; margin-right: auto; }.hero-actions{ justify-content: center; }.hero-stats{ grid-template-columns: repeat(2, 1fr); }.hero-visual{ display: none; }.steps-grid{ grid-template-columns: 1fr; }}@media (max-width: 768px){.hero{ padding: 48px 0 56px; }.hero.hero--home{
    padding-top: 40px;
    padding-bottom: 48px;
  }.topbar-search{ display: none; }.course-row{
    grid-template-columns: minmax(0, 72px) minmax(0, 1fr);
    gap: 14px;
    padding: 12px;
  }.course-row:not(:has(.course-row-thumb)){
    grid-template-columns: minmax(0, 1fr);
    align-items: stretch;
  }.course-row:hover{ transform: none; }.course-row-btn{ display: none; }.page-toolbar{ flex-direction: column; align-items: stretch; }.toolbar-actions{ width: 100%; }}@media (max-width: 640px){.hero.hero--home{
    padding-top: 28px;
    padding-bottom: 40px;
  }.hero-actions{ flex-direction: column; width: 100%; }.hero-stats{ grid-template-columns: 1fr 1fr; }.finances-info-bar{ flex-direction: column; align-items: stretch; }}@media (max-width: 992px){.site-header-wrap{
    backdrop-filter: none;
    -webkit-backdrop-filter: none;
  }.site-header-row{
    gap: 10px;
  }}@media (max-width: 768px){.adm-table-card,.adm-dash-table-wrap{
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: thin;
  }.adm-table-card::-webkit-scrollbar,.adm-dash-table-wrap::-webkit-scrollbar{
    height: 8px;
    display: block;
  }.adm-table-card::-webkit-scrollbar-thumb{
    background: rgba(67, 89, 113, .35);
    border-radius: 99px;
  }.course-row,.course-row-body{ min-width: 0; }.course-row-title,.course-row-meta{ overflow-wrap: break-word; word-break: normal; }.chat-layout{
    grid-template-columns: minmax(0, 1fr);
    grid-template-rows: minmax(0, 1fr);
    position: relative;
  }.chat-layout > .chat-sidebar,.chat-layout > .chat-main{ grid-column: 1; grid-row: 1; }.chat-sidebar{
    position: absolute; inset: 0 auto 0 0; width: min(88vw, 320px); z-index: 24;
    transform: translateX(-110%); transition: transform .22s ease;
    border-right: 1px solid var(--line); border-bottom: none;
    background: var(--surface); box-shadow: none;
  }.chat-list-toggle{ display: inline-flex !important; }.chat-list-backdrop{
    display: none; position: absolute; inset: 0; z-index: 22;
  }.chat-layout-full{ margin: 0; height: 100%; }}.checkout-panel{ position: sticky; top: calc(var(--nav-h) + 16px); }.panier-lignes{
  display: flex;
  flex-direction: column;
  gap: 10px;
  max-height: min(72vh, calc(100dvh - 240px));
  overflow-y: auto;
  overflow-x: hidden;
  padding-right: 6px;
  scrollbar-width: thin;
  scrollbar-color: rgba(74, 98, 135, .45) transparent;
}.panier-lignes::-webkit-scrollbar{
  width: 8px;
  height: 8px;
  display: block;
}.panier-lignes::-webkit-scrollbar-thumb{
  background: rgba(74, 98, 135, .4);
  border-radius: 8px;
}.checkout-line{
  display: flex; justify-content: space-between; align-items: center;
  padding: 8px 0; font-size: .875rem; color: var(--ink-muted);
  border-bottom: 1px solid var(--line-soft);
}.checkout-discount{ color: var(--success); }.checkout-total{
  border-bottom: none; padding-top: 12px;
  font-size: 1rem; color: var(--ink);
}.checkout-total strong{ font-size: 1.25rem; color: var(--brand); }.notif-page-list{ display: flex; flex-direction: column; gap: 10px; }.notif-page-item{
  display: flex; align-items: flex-start; gap: 14px; padding: 16px 18px !important;
}.notif-page-icon{
  width: 40px; height: 40px; border-radius: 10px;
  background: var(--brand-muted); color: var(--brand);
  display: grid; place-items: center; flex-shrink: 0;
}.notif-page-body{ flex: 1; min-width: 0; }.notif-page-body p{ font-size: .8125rem; color: var(--ink-muted); margin: 4px 0 0; }.notif-page-date{ font-size: .72rem; color: var(--ink-faint); }.notif-page-actions{
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  gap: 6px;
  flex-shrink: 0;
}.notif-inline-form{
  display: inline;
  margin: 0;
}.notif-page-toolbar .toolbar-actions{
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}/* Reprise de lecture */
.continue-banner{
  display: flex; align-items: center; gap: 20px; flex-wrap: wrap;
  margin-bottom: 24px; padding: 20px 24px !important;
  background: linear-gradient(135deg, var(--brand-muted) 0%, var(--surface) 100%);
  border: 1px solid var(--line);
}.continue-banner-thumb{ width: 120px; height: 72px; border-radius: var(--radius-sm); overflow: hidden; flex-shrink: 0; }.continue-banner-thumb img{ width: 100%; height: 100%; object-fit: cover; }.continue-banner-body{ flex: 1; min-width: 200px; }.continue-banner-label{ font-size: .72rem; font-weight: 700; text-transform: uppercase; letter-spacing: .08em; color: var(--brand); }.continue-banner-body h3{ font-size: 1.05rem; margin: 4px 0; }.continue-banner-body p{ font-size: .875rem; color: var(--ink-muted); margin: 0; }/* Grille utilisateurs */
.users-grid{ display: grid; grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)); gap: 16px; }.user-card-head{ display: flex; align-items: center; gap: 14px; margin-bottom: 12px; }.user-card-name{ font-weight: 700; font-size: .9375rem; margin-bottom: 4px; }.user-card-meta{ font-size: .8125rem; color: var(--ink-muted); margin-bottom: 14px; }.user-card-meta div{ margin-bottom: 4px; }.user-card-meta i{ width: 16px; color: var(--brand); }.user-card-actions{ display: flex; gap: 8px; flex-wrap: wrap; }.parcours-steps-preview{
  list-style: none; padding: 0; margin: 0 0 14px; font-size: .78rem; color: var(--ink-muted);
}.parcours-steps-preview li{
  display: flex; align-items: flex-start; gap: 8px; padding: 4px 0;
  border-bottom: 1px dashed var(--line-soft, var(--line));
}.parcours-steps-preview li:last-child{ border-bottom: none; }.parcours-step-num{
  flex-shrink: 0; width: 20px; height: 20px; border-radius: 50%;
  background: var(--brand-muted); color: var(--brand);
  font-size: .65rem; font-weight: 700; display: grid; place-items: center;
}.parcours-steps-more{ font-style: italic; color: var(--ink-muted); padding-left: 28px; }.parcours-catalog{
  max-width: none;
  width: 100%;
}.parcours-catalog-title{
  font-size: 1.65rem;
  font-weight: 800;
  letter-spacing: -0.03em;
  line-height: 1.25;
  margin: 4px 0 20px;
  color: var(--ink, #0f172a);
}.parcours-catalog-count{
  font-size: 0.9rem;
  font-weight: 600;
  color: var(--ink);
  margin: 16px 0 18px;
}.parcours-catalog-list{
  display: grid;
  grid-template-columns: 1fr;
  gap: 20px;
}@media (min-width: 700px){.parcours-catalog-list{ grid-template-columns: repeat(2, minmax(0, 1fr)); }}@media (min-width: 1100px){.parcours-catalog{ max-width: none; }.parcours-catalog-title{ font-size: 1.85rem; }.parcours-catalog-list{ grid-template-columns: repeat(3, minmax(0, 1fr)); }}/* ── Mentorat ── */
.mentorat-form-card{ max-width: 640px; margin-bottom: 24px; }.mentorat-form-grid{
  display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px;
}@media (max-width: 640px){.mentorat-form-grid{ grid-template-columns: 1fr; }}/* ── Certificat (aperçu & impression) ── */
.cert-page{
  max-width: 920px;
  margin: 0 auto;
  --cert-brand: var(--brand);
  --cert-brand-dark: var(--brand-hover);
  --cert-brand-light: var(--brand-light);
}.cert-official__platform{
  position: relative;
  z-index: 1;
}.cert-official__platform{
  font-family: var(--font-display);
  font-size: 1.15rem;
  font-weight: 800;
  letter-spacing: .1em;
  text-transform: uppercase;
  color: #fff;
  margin-bottom: 18px;
}.cert-official__mention--excellent{ background: rgba(255, 255, 255, .22); }.cert-official__mention--tres-bien{ background: rgba(39, 174, 96, .45); }.cert-official__mention--bien{ background: rgba(255, 255, 255, .18); }.cert-official__mention--assez-bien{ background: rgba(243, 156, 18, .45); }.cert-official__mention--passable{ background: rgba(255, 255, 255, .12); }.cert-official__mention--insuffisant{ background: rgba(231, 76, 60, .4); }simplement plus grande ── */
.cert-apercu-page{
  min-height: 100vh;
  min-height: 100dvh;
  margin: 0;
  padding: 32px 20px;
  box-sizing: border-box;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  background: var(--bg-subtle, #f0f4f9);
}.cert-apercu-demo{
  flex: 0 0 auto;
  text-align: center;
  font-size: .75rem;
  color: #64748b;
  margin: 0 0 12px;
}.cert-official__sig-name{
  font-family: var(--font-display);
  font-style: italic;
  font-size: 1.05rem;
  color: #fff;
  margin: 0;
}/* Liste — format contracté (cartes Voir / Partager) */
.cert-page-toolbar{
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  margin-bottom: 16px;
  flex-wrap: wrap;
}.cert-page-toolbar__count{
  margin: 0;
  font-size: .8125rem;
}.cert-view-toggle{
  display: inline-flex;
  align-items: center;
  gap: 4px;
  padding: 4px;
  border-radius: 10px;
  border: 1px solid var(--line);
  background: var(--bg-subtle);
}.cert-view-toggle__btn{
  width: 36px;
  height: 32px;
  border: none;
  border-radius: 8px;
  background: transparent;
  color: var(--ink-muted);
  cursor: pointer;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  transition: background .15s, color .15s, box-shadow .15s;
}.cert-view-toggle__btn:hover{
  color: var(--brand);
  background: var(--surface);
}.cert-list-grid{
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(300px, 1fr));
  gap: 20px;
}.cert-list-card{
  background: var(--surface);
  border: 1.5px solid var(--line);
  border-radius: 16px;
  overflow: hidden;
  display: flex;
  flex-direction: column;
  transition: border-color .2s, box-shadow .2s, transform .2s;
}.cert-list-card:hover{
  border-color: var(--brand);
  box-shadow: 0 8px 32px color-mix(in srgb, var(--brand) 14%, transparent);
  transform: translateY(-3px);
}.cert-list-card__banner{
  height: 110px;
  background: linear-gradient(135deg, var(--brand-light) 0%, var(--brand-muted) 100%);
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  border-bottom: 1px solid var(--line);
}.cert-list-card__banner::before{
  content: '';
  position: absolute;
  inset: 0;
  background: repeating-linear-gradient(45deg, transparent, transparent 20px, color-mix(in srgb, var(--brand) 5%, transparent) 20px, color-mix(in srgb, var(--brand) 5%, transparent) 40px);
}.cert-list-card__ribbon{
  position: absolute;
  top: 12px;
  left: 0;
  background: var(--brand-hover);
  color: #fff;
  font-size: .62rem;
  font-weight: 700;
  padding: 4px 10px 4px 12px;
  clip-path: polygon(0 0, calc(100% - 8px) 0, 100% 50%, calc(100% - 8px) 100%, 0 100%);
  text-transform: uppercase;
  letter-spacing: .05em;
  z-index: 2;
  display: inline-flex;
  align-items: center;
  gap: 4px;
}.cert-list-card__ribbon i{ font-size: .55rem; }.cert-list-card__ribbon--excellent{ background: #2e5c86; }.cert-list-card__ribbon--tres-bien{ background: #15803d; }.cert-list-card__ribbon--bien{ background: var(--brand-hover); }.cert-list-card__ribbon--assez-bien{ background: #b45309; }.cert-list-card__ribbon--passable{ background: #64748b; }.cert-list-card__ribbon--insuffisant{ background: #b91c1c; }.cert-list-card__seal{
  width: 64px;
  height: 64px;
  background: var(--brand);
  border-radius: 50%;
  display: grid;
  place-items: center;
  border: 3px solid rgba(255, 255, 255, .55);
  position: relative;
  z-index: 1;
  box-shadow: 0 4px 16px color-mix(in srgb, var(--brand) 35%, transparent);
  color: #fff;
  font-size: 1.5rem;
}.cert-list-card__body{
  padding: 16px 18px 12px;
  flex: 1;
  display: flex;
  flex-direction: column;
  gap: 8px;
}.cert-list-card__label{
  font-size: .65rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: .12em;
  color: var(--brand);
  margin: 0;
}.cert-list-card__title{
  font-family: var(--font-display);
  font-size: 1.02rem;
  font-weight: 700;
  line-height: 1.3;
  margin: 0;
  color: var(--ink);
}.cert-list-card__meta{
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
}.cert-list-card__tag{
  font-size: .68rem;
  color: var(--ink-muted);
  background: var(--bg-subtle);
  border: 1px solid var(--line);
  padding: 3px 8px;
  border-radius: 6px;
  display: inline-flex;
  align-items: center;
  gap: 4px;
}.cert-list-card__tag i{ color: var(--brand); font-size: .58rem; }.cert-list-card__footer{
  padding: 12px 14px;
  border-top: 1px solid var(--line);
  background: var(--brand-muted);
  display: flex;
  gap: 8px;
}.cert-list-card__btn{
  flex: 1;
  padding: 9px 10px;
  border-radius: 8px;
  font-size: .78rem;
  font-weight: 600;
  text-decoration: none;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 5px;
  transition: .2s;
  border: 1.5px solid var(--line);
  background: var(--surface);
  color: var(--ink-muted);
}.cert-list-card__btn:hover{ border-color: var(--brand); color: var(--brand); }.cert-list-card__btn--share,.cert-list-card__btn--view{
  flex: 1;
}.cert-list-card__btn--view{
  background: linear-gradient(135deg, var(--brand), var(--brand-hover));
  border-color: transparent;
  color: #fff;
}.cert-list-card__btn--view:hover{
  color: #fff;
  box-shadow: 0 4px 14px color-mix(in srgb, var(--brand) 35%, transparent);
}.cert-list-card__btn--dl{
  flex: 0 0 auto;
  width: 40px;
  padding: 9px;
}@media print{.dash-footer{ display: none !important; }.cert-page{ max-width: none; margin: 0; padding: 0; }}/* ── Certificat public & vérification ── */
.cert-public{
  max-width: 640px;
  margin: 0 auto;
  text-align: center;
  padding: 32px 24px;
  background: var(--surface);
  border: 1px solid var(--line);
  border-radius: 20px;
  box-shadow: 0 20px 48px rgba(15, 23, 42, .08);
}.cert-public__badge{
  width: 72px; height: 72px;
  margin: 0 auto 16px;
  border-radius: 50%;
  background: var(--success-bg);
  color: var(--success);
  display: grid; place-items: center;
  font-size: 2rem;
}.cert-public__brand{
  font-size: .75rem;
  font-weight: 700;
  letter-spacing: .12em;
  text-transform: uppercase;
  color: var(--ink-muted);
  margin: 0 0 4px;
}.cert-public__title{
  font-family: var(--font-display);
  font-size: 1.75rem;
  font-weight: 800;
  margin: 0 0 6px;
}.cert-public__sub{ color: var(--ink-muted); margin: 0 0 20px; }.cert-public__divider{
  width: 80px; height: 3px;
  margin: 0 auto 20px;
  background: linear-gradient(90deg, transparent, #b8923c, transparent);
  border-radius: 2px;
}.cert-public__label{
  font-size: .75rem;
  text-transform: uppercase;
  letter-spacing: .08em;
  color: var(--ink-muted);
  margin: 0;
}.cert-public__name{
  font-size: 1.5rem;
  font-weight: 700;
  margin: 6px 0 16px;
}.cert-public__course{
  font-size: 1.15rem;
  font-weight: 600;
  margin: 6px 0 12px;
}.cert-public__date{ font-size: .875rem; margin-bottom: 24px; }.cert-public__verify-row{
  display: flex;
  gap: 20px;
  align-items: center;
  justify-content: center;
  flex-wrap: wrap;
  padding: 20px;
  background: var(--bg-subtle);
  border-radius: 14px;
  margin-bottom: 24px;
  text-align: left;
}.cert-public__qr{
  border-radius: 10px;
  border: 1px solid var(--line);
  background: #fff;
  padding: 6px;
}.cert-public__code-label{
  display: block;
  font-size: .7rem;
  font-weight: 700;
  text-transform: uppercase;
  color: var(--ink-muted);
  margin-bottom: 6px;
}.cert-public__code{
  display: block;
  font-size: .8125rem;
  padding: 8px 10px;
  background: #fff;
  border-radius: 8px;
  border: 1px dashed var(--line);
  word-break: break-all;
}.cert-public__sig{
  font-size: .72rem;
  color: var(--ink-muted);
  margin: 10px 0 0;
}.cert-public__sig code{ font-size: .68rem; }.cert-public__actions{
  display: flex;
  gap: 8px;
  justify-content: center;
  flex-wrap: wrap;
}.cert-verify__result{ margin-top: 28px; }.cert-verify__actions{
  display: flex;
  gap: 8px;
  flex-wrap: wrap;
  margin-top: 20px;
}/* ── Offres plateforme Gratuit / Premium / Master ── */
.platform-offers-grid{
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 16px;
  max-width: 1240px;
  width: 100%;
  margin: 0 auto 36px;
  align-items: stretch;
}.platform-offers-grid > *{
  min-width: 0;
  max-width: none;
  width: auto;
}.platform-plans-row--abo{
  grid-template-columns: repeat(3, minmax(0, 1fr));
  max-width: 100%;
  width: 100%;
}.platform-plans-row--abo{
  margin-bottom: 32px;
}.platform-offer-badge--active{
  background: #dcfce7;
  color: #166534;
  border: 1px solid #86efac;
}.platform-offer-features{
  flex: 1 1 auto;
  margin: 12px 0 20px !important;
  text-align: left;
  width: 100%;
}.platform-offer-features li{
  align-items: flex-start;
  gap: 10px;
  line-height: 1.4;
  font-size: .875rem;
}.platform-offer-features li i{
  flex-shrink: 0;
  margin-top: 0.2em;
}@media (max-width: 1100px){.platform-offers-grid,.platform-plans-row--abo{
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }}@media (max-width: 640px){.platform-offers-grid,.platform-plans-row--abo{
    grid-template-columns: 1fr;
    max-width: min(400px, 100%);
  }}.fin-report-chart-locked{
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 8px;
  min-height: 180px;
  padding: 20px 16px;
  text-align: center;
  border-radius: 12px;
  background: color-mix(in srgb, #ef4444 6%, var(--surface));
  border: 1px dashed color-mix(in srgb, #ef4444 35%, var(--line-soft));
}.fin-report-chart-locked__icon{
  width: 36px;
  height: 36px;
  font-size: .85rem;
}.fin-report-chart-locked__title{
  margin: 0;
  font-size: .8125rem;
  font-weight: 700;
  color: #b91c1c;
}.fin-report-chart-locked__label,.fin-report-chart-locked__hint{
  margin: 0;
  font-size: .75rem;
  color: var(--ink-muted);
}/* ── Admin dashboard (World Academy) ── */
.adm-dash-hero{
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 24px;
  flex-wrap: wrap;
  padding: 24px 28px;
  margin-bottom: 20px;
  background: linear-gradient(135deg, var(--brand) 0%, var(--brand-hover) 100%);
  border: none;
  color: #fff;
}.adm-dash-hero__eyebrow{
  font-size: .72rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: .08em;
  opacity: .85;
  margin-bottom: 8px;
}.adm-dash-hero__title{
  font-family: var(--font-display);
  font-size: 1.5rem;
  font-weight: 800;
  margin: 0 0 6px;
}.adm-dash-hero__sub{ font-size: .875rem; opacity: .88; margin: 0; max-width: 420px; }.adm-dash-hero__kpis{ display: flex; gap: 12px; flex-wrap: wrap; }.adm-dash-hero-kpi{
  background: rgba(255,255,255,.14);
  border: 1px solid rgba(255,255,255,.22);
  border-radius: 12px;
  padding: 12px 18px;
  min-width: 120px;
}.adm-dash-hero-kpi span{ display: block; font-size: .65rem; text-transform: uppercase; letter-spacing: .06em; opacity: .8; margin-bottom: 4px; }.adm-dash-hero-kpi strong{ font-size: 1.25rem; font-weight: 800; }.adm-dash-kpi-grid{
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(160px, 1fr));
  gap: 14px;
  margin-bottom: 20px;
}.adm-dash-kpi{ padding: 18px 16px; text-align: center; }.adm-dash-kpi__icon{
  width: 44px; height: 44px; border-radius: 12px;
  background: var(--kpi-bg, var(--brand-muted));
  color: var(--kpi-fg, var(--brand));
  display: grid; place-items: center; margin: 0 auto 10px; font-size: 1rem;
}.adm-dash-kpi__val{ font-family: var(--font-display); font-size: 1.75rem; font-weight: 800; line-height: 1; }.adm-dash-kpi__lbl{ font-size: .72rem; color: var(--ink-muted); margin-top: 6px; font-weight: 600; }.adm-dash-section{ padding: 20px 22px; margin-bottom: 20px; }.adm-dash-split{
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 20px;
  margin-bottom: 20px;
}@media (max-width: 900px){.adm-dash-split{ grid-template-columns: 1fr; }}.adm-dash-mini-grid{
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 10px;
}@media (max-width: 640px){.adm-dash-mini-grid{ grid-template-columns: repeat(2, 1fr); }}.adm-dash-mini{
  padding: 12px; background: var(--bg-subtle); border-radius: 10px; border: 1px solid var(--line);
}.adm-dash-mini span{ display: block; font-size: .65rem; color: var(--ink-muted); margin-bottom: 4px; }.adm-dash-mini strong{ font-size: 1.1rem; font-weight: 800; color: var(--ink); }.adm-dash-links{
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 8px;
}.adm-dash-link{
  display: flex; align-items: center; gap: 8px;
  padding: 10px 12px; border-radius: 10px;
  border: 1px solid var(--line); background: var(--bg-subtle);
  font-size: .8125rem; font-weight: 600; color: var(--ink);
  transition: border-color .2s, color .2s;
}.adm-dash-link:hover{ border-color: var(--brand); color: var(--brand); }.adm-dash-link i{ color: var(--brand); width: 16px; text-align: center; }.adm-dash-table-wrap{ overflow-x: auto; }.adm-dash-table{ width: 100%; border-collapse: collapse; font-size: .8125rem; }.adm-dash-table th{
  text-align: left; padding: 8px 10px; font-size: .65rem; text-transform: uppercase;
  letter-spacing: .06em; color: var(--ink-muted); border-bottom: 1px solid var(--line);
}.adm-dash-table td{ padding: 10px; border-bottom: 1px solid var(--line-soft, var(--line)); }.adm-dash-empty{ color: var(--ink-muted); font-size: .875rem; padding: 12px 0; }/* ── Studio certificats entreprise ── */
.entreprise-cert-studio__head{
  display: flex; align-items: flex-start; justify-content: space-between;
  gap: 16px; margin-bottom: 20px; flex-wrap: wrap;
}.entreprise-cert-studio__title{ font-size: 1.15rem; font-weight: 800; margin: 0 0 6px; }.entreprise-cert-studio__lead{ font-size: .875rem; margin: 0; max-width: 52ch; }.entreprise-cert-studio__layout{
  display: grid; grid-template-columns: minmax(280px, 400px) 1fr;
  gap: 20px; align-items: start;
}@media (max-width: 1024px){.entreprise-cert-studio__layout{ grid-template-columns: 1fr; }}.entreprise-cert-studio__section{ margin-bottom: 16px; }.entreprise-cert-studio__section-title{
  font-size: .9rem; font-weight: 700; margin: 0 0 10px;
}.entreprise-cert-studio__actions{
  display: flex; flex-wrap: wrap; gap: 8px; margin-top: 8px;
}.entreprise-cert-studio__sig-preview{
  max-height: 48px; display: block; margin-bottom: 8px;
}.entreprise-cert-studio__preview-wrap{
  position: sticky; top: 12px;
  border: 1px solid var(--line); border-radius: 14px;
  background: var(--bg-subtle); overflow: hidden;
}.entreprise-cert-studio__preview-toolbar{
  display: flex; align-items: center; justify-content: space-between;
  gap: 8px; padding: 10px 14px; border-bottom: 1px solid var(--line);
  font-size: .8125rem; background: var(--bg);
}.entreprise-cert-studio__preview-frame{
  width: 100%; min-height: 520px; height: 62vh; border: 0; display: block;
  background: #e8ecf1;
}.cert-template-grid{
  display: grid; grid-template-columns: repeat(auto-fill, minmax(130px, 1fr)); gap: 10px;
}.cert-template-card{
  display: flex; flex-direction: column; align-items: center; text-align: center;
  gap: 6px; padding: 12px 10px; border-radius: 12px;
  border: 2px solid var(--line); background: var(--bg);
  cursor: pointer; transition: border-color .15s, box-shadow .15s;
}.cert-template-card:hover{ border-color: color-mix(in srgb, var(--brand) 40%, var(--line)); }.cert-template-card__thumb{
  width: 64px; height: 44px; border-radius: 8px;
  display: flex; align-items: center; justify-content: center;
  font-size: 1.1rem; color: #fff;
}.cert-template-card__thumb--classique{ background: linear-gradient(135deg, #4a6287, #334155); }.cert-template-card__thumb--moderne{ background: linear-gradient(135deg, #1e293b 30%, #f8fafc 30%); color: #334155; }.cert-template-card__thumb--elegant{ background: linear-gradient(135deg, #1a1f2e, #b8860b); }.cert-template-card__thumb--minimal{ background: #fff; color: #4a6287; border: 2px solid #4a6287; }.cert-template-card__thumb--corporate{ background: linear-gradient(180deg, #4a6287 45%, #f1f5f9 45%); }.cert-template-card__label{ font-size: .78rem; font-weight: 700; color: var(--ink); }.cert-template-card__lock{
  position: absolute;
  top: 8px;
  right: 8px;
  width: 22px;
  height: 22px;
  border-radius: 50%;
  background: var(--bg-subtle);
  border: 1px solid var(--line);
  display: grid;
  place-items: center;
  font-size: .65rem;
  color: var(--ink-muted);
  z-index: 2;
}.entreprise-cert-studio__banner{
  display: flex;
  align-items: center;
  gap: 12px;
  flex-wrap: wrap;
  padding: 12px 16px;
  margin-bottom: 16px;
  border-radius: 12px;
  border: 1px solid color-mix(in srgb, var(--brand) 25%, var(--line));
  background: color-mix(in srgb, var(--brand) 8%, var(--bg-subtle));
  font-size: .8125rem;
  color: var(--ink-secondary);
}.entreprise-cert-studio__banner i{ color: var(--brand); }.fin-report-chart-locked{ display: none; }/* Image manquante : remplacée par un repli plein cadre (voir
   initImagesManquantes dans world-academy.js). Le conteneur garde sa taille{
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  height: 100%;
  min-height: inherit;
  font-weight: 700;
  line-height: 1;
  color: var(--brand, #0f766e);
  background: var(--brand-muted, #f1f5f9);
}puis une correction. Ces deux moments ont chacun leur bloc. */
.challenge-rendu-block{ margin-top: 20px; }.challenge-rendu-consigne{ font-size: .9rem; margin-bottom: 8px; }.challenge-rendu-mode{ font-size: .82rem; margin-bottom: 14px; }.challenge-rendu-etat{
  border: 1px solid var(--line); border-left-width: 3px;
  border-radius: var(--radius); padding: 12px 14px; margin-bottom: 14px;
}.challenge-rendu-etat--valide{ border-left-color: var(--success); }.challenge-rendu-etat--a_corriger{ border-left-color: #d97706; }.challenge-rendu-etat--en_attente{ border-left-color: var(--brand); }.challenge-rendu-etat-head{
  display: flex; gap: 10px; align-items: center; flex-wrap: wrap;
  font-size: .82rem; margin-bottom: 8px;
}.challenge-rendu-recap{ list-style: none; padding: 0; margin: 0; font-size: .85rem; }.challenge-rendu-recap li{ margin-bottom: 6px; }.challenge-rendu-retour{
  margin-top: 10px; padding-top: 10px; border-top: 1px solid var(--line);
  font-size: .85rem;
}.challenge-rendu-form{ margin-top: 14px; }.rendus-head{
  display: flex; justify-content: space-between; gap: 16px;
  flex-wrap: wrap; align-items: flex-start; margin-bottom: 18px;
}.rendus-filtres{ display: flex; gap: 6px; flex-wrap: wrap; }.rendus-liste{ display: flex; flex-direction: column; gap: 14px; }.rendu-item{
  border: 1px solid var(--line); border-left-width: 3px;
  border-radius: var(--radius); padding: 14px 16px;
}.rendu-item--en_attente{ border-left-color: var(--brand); }.rendu-item--valide{ border-left-color: var(--success); }.rendu-item--a_corriger{ border-left-color: #d97706; }.rendu-item-head{
  display: flex; justify-content: space-between; gap: 12px;
  flex-wrap: wrap; align-items: center; margin-bottom: 10px;
}.rendu-item-contenu{ list-style: none; padding: 0; margin: 0 0 12px; font-size: .85rem; }.rendu-item-contenu li{ margin-bottom: 6px; }.rendu-item-form{ display: grid; gap: 10px; }@media (min-width: 720px){.rendu-item-form{ grid-template-columns: 180px 120px 1fr; align-items: start; }.rendu-item-form button{ grid-column: 1 / -1; justify-self: start; }}communautés) ─────────────────── */
.hub-search{
  display: flex;
  align-items: center;
  gap: 8px;
  position: relative;
  margin-bottom: 20px;
  flex-wrap: wrap;
}.hub-search-icon{
  position: absolute;
  left: 14px;
  color: var(--ink-faint);
  pointer-events: none;
}