:root{
  --bg:#f4f8fb;--panel:#fff;--ink:#0b2240;--muted:#58708a;--line:#d7e5ee;
  --primary:#16446f;--primary-dark:#071f3a;--accent:#12b6b0;--green:#76bf43;--yellow:#f6c343;
  --ok:#157347;--warn:#b54708;--ko:#b42318;--shadow:0 18px 42px rgba(7,31,58,.10)
}
*{box-sizing:border-box}
body{margin:0;font-family:Arial,Helvetica,sans-serif;color:var(--ink);background:linear-gradient(180deg,#f7fbfd,#edf4f8)}
button,input,select{font:inherit}
button{border:0;border-radius:14px;padding:12px 15px;background:linear-gradient(135deg,var(--primary),#0b2f52);color:white;font-weight:700;cursor:pointer}
button:disabled{opacity:.5;cursor:not-allowed}.hidden{display:none!important}
.landing{position:fixed;inset:0;z-index:1000;display:grid;place-items:center;padding:24px;background:radial-gradient(circle at top right,rgba(246,195,67,.24),transparent 30%),linear-gradient(135deg,#071f3a,#16446f)}
.landing-card{width:min(950px,100%);background:white;border-radius:32px;padding:42px;box-shadow:0 38px 90px rgba(3,18,34,.34)}
.brand-row{display:flex;align-items:center;gap:18px;margin-bottom:30px}.logo{width:68px;height:68px;border-radius:22px;background:linear-gradient(135deg,var(--accent),var(--green),var(--yellow));display:grid;place-items:center;color:#071f3a;font-weight:900;font-size:36px}.logo.mini{width:48px;height:48px;font-size:26px;border-radius:17px}
.landing h1{margin:0;font-size:42px}.landing p{color:var(--muted)}.access-grid{display:grid;grid-template-columns:1fr 1fr;gap:22px}.access-card{min-height:185px;text-align:left;display:flex;flex-direction:column;justify-content:space-between;padding:28px;border-radius:24px}.access-card strong{font-size:28px}.access-card span{font-size:16px;line-height:1.55}.admin-card{background:linear-gradient(135deg,#071f3a,#16446f)}.learner-card{background:linear-gradient(135deg,#008c86,#12b6b0,#2f8f46)}.notice{margin-top:22px;padding:14px;background:#f6fffd;border:1px solid #c7ebe7;border-radius:16px}
.modal{position:fixed;inset:0;z-index:2000;display:grid;place-items:center;background:rgba(7,31,58,.55);padding:20px}.modal-card{background:white;border-radius:24px;padding:28px;position:relative;box-shadow:var(--shadow)}.small-modal{width:min(520px,100%)}.close{position:absolute;top:14px;right:16px;width:42px;height:42px;border-radius:50%;padding:0}
.app{min-height:100vh}.sidebar{position:fixed;inset:0 auto 0 0;width:292px;background:linear-gradient(180deg,#071f3a,#0b2f52,#103f68);color:white;padding:24px;display:flex;flex-direction:column;gap:26px;border-right:4px solid var(--accent)}.brand-mini{display:flex;align-items:center;gap:14px;padding-bottom:18px;border-bottom:1px solid rgba(255,255,255,.12)}.brand-mini span{display:block;color:#d8f3ef;font-size:13px;margin-top:4px}
nav{display:grid;gap:10px}nav button,.sidebar-footer button{background:rgba(255,255,255,.07);border:1px solid rgba(255,255,255,.10);text-align:left}nav button.active,nav button:hover{background:white;color:#071f3a;box-shadow:inset 4px 0 0 var(--accent)}.sidebar-footer{margin-top:auto;display:grid;gap:10px}.logout{background:#fff6df!important;color:#7a4a00!important;border:1px solid var(--yellow)!important;text-align:center!important}
.main{margin-left:292px;width:calc(100% - 292px);padding:32px 38px}.page-header{display:flex;justify-content:space-between;gap:20px;align-items:flex-start;margin-bottom:26px}.page-header h1{font-size:38px;margin:0 0 8px}.page-header p{color:var(--muted)}.pill{background:white;border:1px solid #bfe9e4;border-radius:999px;padding:12px 16px;box-shadow:var(--shadow);white-space:nowrap}.pill strong{color:#008c86}
.admin-view,.learner-view{display:none}.admin-view.active,.learner-view.active{display:block}.panel,.kpis article,.item{background:var(--panel);border:1px solid var(--line);border-radius:22px;box-shadow:var(--shadow)}.panel{padding:26px;margin-bottom:22px}.kpis{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;margin-bottom:22px}.kpis article{padding:22px;position:relative;overflow:hidden}.kpis article:before{content:"";position:absolute;left:0;top:0;bottom:0;width:6px;background:linear-gradient(180deg,var(--accent),var(--green))}.kpis span{display:block;color:var(--muted);font-size:14px}.kpis strong{display:block;font-size:32px;color:var(--primary);margin-top:8px}.grid-2{display:grid;grid-template-columns:1fr 1fr;gap:24px}.toolbar{display:grid;grid-template-columns:1fr 1fr 1fr;gap:12px}.form{display:grid;gap:14px}label{font-weight:700;color:#344054;font-size:14px}input,select{width:100%;margin-top:7px;padding:12px 13px;border:1px solid var(--line);border-radius:14px;background:white;color:var(--ink)}input:focus,select:focus{outline:3px solid rgba(18,182,176,.22);border-color:var(--accent)}.list{display:grid;gap:13px}.item{padding:18px}.item-title{font-weight:800;font-size:17px}.small{font-size:13px;color:var(--muted)}.alert{background:#fdecea;color:var(--ko);padding:10px;border-radius:12px}.button-row{display:flex;gap:10px;flex-wrap:wrap;margin:14px 0}.badge,.type-badge,.role-pill{display:inline-flex;border-radius:999px;padding:5px 10px;font-size:12px;font-weight:800;margin:7px 7px 0 0}.badge{background:#e6f7f5;color:#006c67}.ok,.score-ok{background:#e8f5ee!important;color:var(--ok)!important}.warn,.score-warn{background:#fff4e5!important;color:var(--warn)!important}.ko,.score-ko{background:#fdecea!important;color:var(--ko)!important}.type-rncp{background:#e6f7f5;color:#006c67}.type-diplome{background:#eaf2ff;color:#16446f}.type-rs{background:#f4f8e8;color:#4d7c0f}.type-transversal{background:#fff4e5;color:#b54708}.role-super{background:#fef3c7;color:#92400e}.role-admin{background:#dbeafe;color:#1e40af}
.chart-row{display:grid;grid-template-columns:160px 1fr 52px;gap:12px;align-items:center;margin:12px 0}.chart-bar{height:16px;background:#e8eef5;border-radius:999px;overflow:hidden}.chart-bar span{display:block;height:100%;background:linear-gradient(90deg,var(--accent),var(--green))}
.comparison-wrapper{overflow:auto;border:1px solid var(--line);border-radius:16px;background:white}.comparison-table{width:100%;min-width:900px;border-collapse:separate;border-spacing:0;font-size:13px}.comparison-table th,.comparison-table td{border-bottom:1px solid var(--line);border-right:1px solid var(--line);padding:10px;text-align:center}.comparison-table th{background:#f8fafc}.comparison-table th:first-child,.comparison-table td:first-child{position:sticky;left:0;background:white;text-align:left;z-index:2;min-width:220px}.comparison-table th:first-child{background:#f8fafc}.score-cell{display:inline-flex;min-width:58px;justify-content:center;border-radius:10px;padding:5px 8px;font-weight:800}.score-empty{background:#f2f4f7;color:#667085}
.learner-question{background:#fbfdff;border:1px solid var(--line);border-radius:18px;padding:20px;margin:18px 0}.learner-choice{display:block;width:100%;text-align:left;background:white;color:var(--ink);border:1px solid var(--line);margin-top:10px;box-shadow:none}.learner-choice.selected{outline:3px solid rgba(18,182,176,.25);border-color:var(--accent)}.adaptive-status{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin:16px 0}.adaptive-status div{border:1px solid var(--line);border-radius:14px;padding:12px;background:white}.adaptive-status span{display:block;color:var(--muted);font-size:12px}.adaptive-status strong{display:block;margin-top:5px;color:var(--primary)}.difficulty-pill{display:inline-flex;border-radius:999px;padding:6px 11px;font-size:12px;font-weight:800}.diff-1{background:#e8f5ee;color:#157347}.diff-2{background:#fff4e5;color:#b54708}.diff-3{background:#fdecea;color:#b42318}.adaptive-path{margin-top:14px;border:1px solid var(--line);border-radius:14px;overflow:hidden}.adaptive-path-row{display:grid;grid-template-columns:60px 90px 1fr 90px;gap:8px;padding:8px 10px;border-bottom:1px solid var(--line);font-size:12px;align-items:center}.adaptive-path-row:nth-child(odd){background:#fbfdff}
.rgpd-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:12px}.danger-button{background:#b42318!important}.warning-button{background:#fff6df!important;color:#7a4a00!important;border:1px solid var(--yellow)!important}.time-spent-pill{display:inline-flex;border-radius:999px;padding:5px 10px;background:#eaf2ff;color:#16446f;font-size:12px;font-weight:800;margin:7px 7px 0 0}.timer-box{display:inline-flex;align-items:center;gap:8px;border-radius:999px;padding:8px 12px;background:#fff4e5;color:#b54708;font-weight:800;margin:8px 0}.timer-box.warning{background:#fdecea;color:#b42318}
.subject-pill{display:inline-flex;border-radius:999px;padding:5px 10px;font-size:12px;font-weight:800;margin:7px 7px 0 0}.subject-francais{background:#eaf2ff;color:#16446f}.subject-mathematiques{background:#e8f5ee;color:#157347}.subject-raisonnement,.subject-raisonnement_logique{background:#fff4e5;color:#b54708}.subject-anglais{background:#e0f2fe;color:#0369a1}.subject-numerique{background:#ecfdf5;color:#065f46}.subject-comecrite{background:#fef3c7;color:#92400e}.level-pill{display:inline-flex;border-radius:999px;padding:5px 10px;font-size:12px;font-weight:800;background:#f4f8e8;color:#4d7c0f;margin:7px 7px 0 0}
.metric-table{width:100%;border-collapse:separate;border-spacing:0;font-size:13px;border:1px solid var(--line);border-radius:14px;overflow:hidden}.metric-table th,.metric-table td{padding:10px;border-bottom:1px solid var(--line);text-align:left}.metric-table th{background:#f8fafc}.block-card,.recommendation-box{border:1px solid var(--line);border-radius:18px;padding:16px;background:#fbfdff;margin-bottom:13px}.recommendation-summary{border-left:4px solid var(--accent);padding:10px 12px;background:#f6fffd;border-radius:12px}
@media(max-width:1050px){.sidebar{position:static;width:auto}.main{margin-left:0;width:auto;padding:22px}.grid-2,.kpis,.toolbar,.adaptive-status,.adaptive-path-row{grid-template-columns:1fr}.access-grid{grid-template-columns:1fr}.page-header{display:grid}}


/* =====================================================
   THEME POSITioNN LOGO 2026
   Modification strictement visuelle : couleurs, logo, relief,
   arrondis et rendu premium SaaS. Aucune fonctionnalité modifiée.
   ===================================================== */
:root{
  --bg:#f7f7ff;
  --panel:#ffffff;
  --ink:#111036;
  --muted:#6d6b8f;
  --line:#e7e3f5;
  --primary:#3217d9;
  --primary-dark:#17106d;
  --accent:#7d2cff;
  --accent-2:#d733ff;
  --accent-pink:#ff2f8a;
  --accent-orange:#ff7b2f;
  --green:#16a56f;
  --yellow:#ffb545;
  --ok:#16a56f;
  --warn:#f28a1a;
  --ko:#e8325d;
  --shadow:0 22px 58px rgba(45,22,139,.12);
  --soft-shadow:0 12px 34px rgba(23,16,109,.08);
}

body{
  background:
    radial-gradient(circle at 92% 0%, rgba(125,44,255,.10), transparent 31%),
    radial-gradient(circle at 0% 100%, rgba(255,123,47,.08), transparent 28%),
    linear-gradient(180deg,#ffffff 0%,#f7f6ff 100%);
  color:var(--ink);
}

.logo{
  width:68px;
  height:68px;
  border-radius:22px;
  object-fit:cover;
  background:#fff;
  box-shadow:0 18px 42px rgba(50,23,217,.22), inset 0 0 0 1px rgba(255,255,255,.65);
  display:block;
}
.logo.mini{
  width:52px;
  height:52px;
  border-radius:16px;
  font-size:0;
}

.landing{
  background:
    radial-gradient(circle at 86% 8%, rgba(255,123,47,.28), transparent 26%),
    radial-gradient(circle at 25% 88%, rgba(255,47,138,.24), transparent 30%),
    linear-gradient(135deg,#11106c 0%,#2b13c9 48%,#7a22ff 100%);
}
.landing-card{
  background:rgba(255,255,255,.94);
  backdrop-filter:blur(18px);
  border:1px solid rgba(255,255,255,.75);
  box-shadow:0 42px 110px rgba(20,13,92,.32);
}
.landing h1{
  color:#111036;
  letter-spacing:-.04em;
}
.access-card{
  box-shadow:0 20px 48px rgba(36,17,151,.18);
  transition:transform .18s ease, box-shadow .18s ease, filter .18s ease;
}
.access-card:hover{
  transform:translateY(-2px);
  box-shadow:0 28px 64px rgba(36,17,151,.24);
  filter:saturate(1.05);
}
.admin-card,.centre-card{
  background:linear-gradient(135deg,#14106b 0%,#3217d9 54%,#7d2cff 100%);
}
.learner-card,.student-card{
  background:linear-gradient(135deg,#711bff 0%,#d733ff 48%,#ff7b2f 100%);
}
.notice{
  background:#fff7fb;
  border-color:#ffd5ea;
  color:#6c5574;
}
.info-box{
  background:#f0f7ff;
  border:1px solid #bdd9f5;
  border-left:4px solid #3b82f6;
  border-radius:8px;
  padding:10px 14px;
  font-size:12px;
  line-height:1.7;
  color:#1e3a5f;
  margin-bottom:10px;
}
.info-box strong{ color:#1d4ed8; }
.info-box .info-kpi{
  display:inline-flex;
  align-items:center;
  gap:4px;
  background:#dbeafe;
  border-radius:6px;
  padding:2px 8px;
  font-weight:700;
  font-size:13px;
  color:#1d4ed8;
}
.admin-discreet-row{
  text-align:center;
  margin-top:10px;
}
.btn-admin-discreet{
  background:none;
  border:none;
  color:#b0b8d0;
  font-size:12px;
  font-weight:400;
  padding:4px 10px;
  cursor:pointer;
  border-radius:8px;
  opacity:.7;
  transition:opacity .15s;
}
.btn-admin-discreet:hover{
  opacity:1;
  background:rgba(0,0,0,.06);
  color:#444;
}

.sidebar{
  background:
    radial-gradient(circle at 82% 0%, rgba(255,47,138,.22), transparent 28%),
    linear-gradient(180deg,#17106d 0%,#2210a8 48%,#4c18dd 100%);
  border-right:0;
  box-shadow:10px 0 34px rgba(33,16,116,.20);
}
.brand-mini{
  border-bottom:1px solid rgba(255,255,255,.16);
}
.brand-mini strong{
  letter-spacing:-.02em;
}
.brand-mini span{
  color:#efeaff;
}
nav button,.sidebar-footer button{
  background:rgba(255,255,255,.08);
  border:1px solid rgba(255,255,255,.12);
  color:#fff;
  border-radius:16px;
  transition:background .18s ease, transform .18s ease, color .18s ease, box-shadow .18s ease;
}
nav button:hover{
  transform:translateX(2px);
  background:rgba(255,255,255,.14);
}
nav button.active{
  background:linear-gradient(90deg,#ffffff 0%,#faf8ff 100%);
  color:#17106d;
  box-shadow:inset 5px 0 0 #ff7b2f, 0 14px 30px rgba(23,16,109,.22);
}
.logout{
  background:rgba(255,255,255,.09)!important;
  color:#fff!important;
  border:1px solid rgba(255,255,255,.24)!important;
}
.logout:hover{
  background:rgba(255,255,255,.18)!important;
}

.main{
  background:
    radial-gradient(circle at 86% 0%, rgba(125,44,255,.05), transparent 28%),
    linear-gradient(180deg,#ffffff 0%,#f8f7ff 100%);
}
.page-header h1{
  color:#111036;
  letter-spacing:-.04em;
}
.page-header p,.small{
  color:var(--muted);
}
.pill{
  background:#fff;
  border-color:#eee9ff;
  box-shadow:var(--soft-shadow);
}
.pill strong{
  color:#7d2cff;
}

.panel,.kpis article,.item,.modal-card{
  background:rgba(255,255,255,.96);
  border-color:var(--line);
  box-shadow:var(--shadow);
}
.panel,.kpis article,.item{
  border-radius:26px;
}
.kpis article:before{
  background:linear-gradient(180deg,#3217d9,#d733ff,#ff7b2f);
}
.kpis strong{
  color:#17106d;
}

button{
  background:linear-gradient(135deg,#3217d9,#7d2cff);
  box-shadow:0 12px 26px rgba(50,23,217,.18);
}
button:hover{
  filter:saturate(1.08) brightness(1.03);
}

input,select{
  border-color:#dfdcf0;
  background:#fff;
}
input:focus,select:focus{
  outline:4px solid rgba(125,44,255,.16);
  border-color:#7d2cff;
}

.badge{
  background:#f0eaff;
  color:#3217d9;
}

/* ── Grille multi-colonnes pour la vue "Score par bloc" ── */
.bloc-heatmap-grid{
  display:grid;
  grid-template-columns:repeat(auto-fill, minmax(320px, 1fr));
  gap:14px;
  align-items:start;
}
/* ── Heatmap blocs/compétences ── */
.heat-bloc{
  margin-bottom:0;
  border-radius:12px;
  overflow:hidden;
  border:1px solid #e8e4f5;
  break-inside:avoid;
}
.heat-bloc-header{
  display:flex;
  justify-content:space-between;
  align-items:flex-start;
  padding:10px 14px;
  background:#f7f4ff;
  font-weight:700;
  font-size:15px;
  gap:12px;
}
.heat-bloc-title{ flex:1; }
.heat-bloc-score{ font-size:18px; font-weight:800; }
.heat-grid{
  display:grid;
  grid-template-columns:repeat(auto-fill, minmax(160px, 1fr));
  gap:2px;
  background:#e8e4f5;
}
.heat-cell{
  display:flex;
  flex-direction:column;
  justify-content:space-between;
  padding:10px 12px;
  min-height:72px;
  cursor:default;
  transition:filter .15s;
}
.heat-cell:hover{ filter:brightness(1.06); }
.heat-cell-empty{ background:#f3f3f3 !important; color:#aaa !important; }
.heat-cell-score{
  font-size:20px;
  font-weight:800;
  line-height:1;
}
.heat-cell-label{
  font-size:11px;
  line-height:1.3;
  opacity:.9;
  margin-top:4px;
}

/* ── Badge résultat individuel large ── */
.result-badge-large{
  display:inline-flex;
  flex-direction:column;
  align-items:center;
  border-radius:14px;
  padding:12px 20px;
  margin:8px 0;
  min-width:160px;
  text-align:center;
}
.result-badge-large.result-ok{
  background:#e8f8f1;
  border:2px solid #0b8f5d;
  color:#07603d;
}
.result-badge-large.result-warn{
  background:#fff8e8;
  border:2px solid #f59e0b;
  color:#92590a;
}
.result-badge-large.result-ko{
  background:#fff0f0;
  border:2px solid #dc2626;
  color:#991b1b;
}
.result-pct{
  font-size:36px;
  font-weight:900;
  line-height:1;
}
.result-status{
  font-size:13px;
  font-weight:700;
  margin-top:4px;
}
.result-rank{
  font-size:11px;
  margin-top:6px;
  opacity:.75;
  background:rgba(0,0,0,.06);
  border-radius:999px;
  padding:2px 8px;
}
/* Radar dans carte individuelle */
.learner-card-inner{
  display:flex;
  align-items:flex-start;
  gap:16px;
  flex-wrap:wrap;
}
.learner-card-inner svg{
  flex-shrink:0;
}
/* Histogramme */
.histogram-box{
  display:flex;
  flex-direction:column;
  align-items:center;
}
.histogram-box svg{
  display:block;
}
.histogram-legend{
  display:flex;
  gap:12px;
  font-size:10px;
  color:#888;
  margin-top:4px;
}
.histogram-legend span{
  display:flex;
  align-items:center;
  gap:4px;
}
.histogram-legend span::before{
  content:"";
  display:inline-block;
  width:10px;
  height:10px;
  border-radius:2px;
}
.badge-site{
  background:#e8f4ff;
  color:#0b5394;
  font-size:12px;
  margin-bottom:4px;
  display:inline-block;
}
.ok,.score-ok{
  background:#e8f8f1!important;
  color:#0b8f5d!important;
}
.warn,.score-warn{
  background:#fff2df!important;
  color:#c16700!important;
}
.ko,.score-ko{
  background:#ffe7f0!important;
  color:#cf1c5e!important;
}

.type-rncp{
  background:#ede8ff;
  color:#3217d9;
}
.type-diplome{
  background:#f7e8ff;
  color:#8a18d8;
}
.type-rs{
  background:#fff0f7;
  color:#c21873;
}
.type-transversal{
  background:#fff1e7;
  color:#d55b00;
}

.chart-bar{
  background:#eeeaf8;
}
.chart-bar span{
  background:linear-gradient(90deg,#3217d9 0%,#7d2cff 45%,#d733ff 76%,#ff7b2f 100%);
}
.comparison-wrapper{
  border-color:#ece8f8;
  box-shadow:var(--soft-shadow);
}
.comparison-table th{
  background:#f8f6ff;
  color:#111036;
}
.comparison-table th:first-child{
  background:#f8f6ff;
}
.comparison-table td:first-child{
  background:#fff;
}

/* ── Parcours multi-tests ── */
.session-tests-block{
  background:#f8f6ff;
  border:1px solid #e4dfff;
  border-radius:10px;
  padding:10px 14px;
  margin:10px 0;
}
.session-tests-header{
  display:flex;
  align-items:center;
  gap:10px;
  margin-bottom:8px;
}
.session-tests-list{
  display:flex;
  flex-direction:column;
  gap:4px;
}
.session-test-item{
  display:flex;
  align-items:center;
  gap:8px;
  background:#fff;
  border:1px solid #ece8f8;
  border-radius:6px;
  padding:6px 10px;
  font-size:13px;
}
.session-test-num{
  background:#3217d9;
  color:#fff;
  border-radius:50%;
  width:20px;
  height:20px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  font-size:11px;
  font-weight:700;
  flex-shrink:0;
}
.session-test-name{
  flex:1;
  font-weight:600;
}
.session-test-dur{
  color:#888;
  font-size:12px;
}
.btn-icon{
  background:none;
  border:1px solid currentColor;
  border-radius:4px;
  cursor:pointer;
  font-size:11px;
  padding:2px 6px;
  line-height:1.4;
}
.btn-icon.btn-danger{ color:#cf1c5e; }
.btn-icon.btn-danger:hover{ background:#ffe7f0; }

/* ── Multi-test : vue stagiaire ── */
.multi-test-banner{
  background:#f0f7ff;
  border:1px solid #bdd9f5;
  border-radius:8px;
  padding:10px 14px;
  margin-bottom:14px;
  font-size:13px;
}
.mt-steps{
  margin-top:6px;
  display:flex;
  flex-wrap:wrap;
  gap:6px;
  font-size:13px;
}
.mt-step{
  white-space:nowrap;
}
.mt-results-summary{
  background:#f0fdf4;
  border:1px solid #bbf7d0;
  border-radius:10px;
  padding:12px 16px;
  margin-bottom:14px;
}
.mt-results-summary h3{
  margin:0 0 10px;
  font-size:15px;
  color:#166534;
}
.mt-result-row{
  display:flex;
  align-items:center;
  gap:10px;
  margin-bottom:6px;
}
.mt-result-label{
  font-weight:600;
  min-width:180px;
  font-size:13px;
}

/* ── Résultats multi-tests (vue admin) ── */
.multi-result-test-block{
  background:#f8f6ff;
  border:1px solid #e4dfff;
  border-radius:10px;
  padding:10px 14px;
  margin:8px 0;
}
.multi-result-test-header{
  display:flex;
  align-items:center;
  gap:8px;
  flex-wrap:wrap;
  margin-bottom:4px;
}
.trans-two-col{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:20px;
  align-items:start;
}
@media(max-width:900px){
  .trans-two-col{ grid-template-columns:1fr; }
}

/* ── Dashboard redesign ── */
.dash-alert-group{ margin:0; }
.dash-alert-title{
  font-size:11px;
  font-weight:800;
  text-transform:uppercase;
  letter-spacing:.06em;
  color:#888;
  margin-bottom:8px;
}
.dash-alert-row{
  display:flex;
  align-items:center;
  gap:10px;
  padding:8px 0;
  border-bottom:1px solid #f3f0ff;
  font-size:13px;
}
.dash-alert-row:last-child{ border-bottom:none; }
.dash-alert-icon{ font-size:16px; flex-shrink:0; }
.dash-skill-bar-mini{
  width:60px;
  height:8px;
  background:#e5e7eb;
  border-radius:4px;
  overflow:hidden;
  flex-shrink:0;
}
.dash-session-row{
  display:flex;
  align-items:center;
  gap:14px;
  padding:10px 0;
  border-bottom:1px solid #f3f0ff;
}
.dash-session-row:last-child{ border-bottom:none; }
.dash-recent-row{
  display:flex;
  align-items:center;
  gap:10px;
  padding:7px 0;
  border-bottom:1px solid #f3f0ff;
  font-size:13px;
}
.dash-recent-row:last-child{ border-bottom:none; }

.learner-question,.student-question{
  background:linear-gradient(180deg,#ffffff,#fbf9ff);
  border-color:#eee9ff;
}
.learner-choice,.student-choice{
  border-color:#e6e0f5;
}
.learner-choice:hover,.student-choice:hover{
  border-color:#7d2cff;
}
.learner-choice.selected,.student-choice.selected{
  outline:4px solid rgba(125,44,255,.18);
  border-color:#7d2cff;
}
.adaptive-status div{
  border-color:#eee9ff;
}
.difficulty-pill.diff-1,.diff-1{
  background:#e9f8ef;
  color:#148955;
}
.difficulty-pill.diff-2,.diff-2{
  background:#fff0f7;
  color:#c21873;
}
.difficulty-pill.diff-3,.diff-3{
  background:#fff0e5;
  color:#d95c00;
}
.timer-box{
  background:#fff0e5;
  color:#d95c00;
}
.timer-box.warning{
  background:#ffe7f0;
  color:#cf1c5e;
}
.time-spent-pill{
  background:#ede8ff;
  color:#3217d9;
}

.recommendation-box{
  background:linear-gradient(180deg,#ffffff,#fbf9ff);
  border-color:#eee9ff;
}
.recommendation-summary{
  background:#fff7fb;
  border-left-color:#d733ff;
}
.block-card{
  background:linear-gradient(180deg,#ffffff,#fbf9ff);
  border-color:#eee9ff;
}
.metric-table{
  border-color:#eee9ff;
}
.metric-table th{
  background:#f8f6ff;
}

.subject-francais{
  background:#ede8ff;
  color:#3217d9;
}
.subject-mathematiques{
  background:#f7e8ff;
  color:#8a18d8;
}
.subject-raisonnement{
  background:#fff0e5;
  color:#d95c00;
}
/* Rétrocompatibilité ancienne classe */
.subject-raisonnement_logique{
  background:#fff0e5;
  color:#d95c00;
}
.subject-anglais{
  background:#e0f2fe;
  color:#0369a1;
}
.subject-numerique{
  background:#ecfdf5;
  color:#065f46;
}
.subject-comecrite{
  background:#fef3c7;
  color:#92400e;
}
.level-pill{
  background:#fff0f7;
  color:#c21873;
}

.alert{
  background:#ffe7f0;
  color:#cf1c5e;
}
.close{
  background:linear-gradient(135deg,#3217d9,#d733ff);
}

@media(max-width:1050px){
  .sidebar{box-shadow:none}
}
.sync-box{
  margin-top:18px;
  padding:18px;
  border:1px solid #e4defd;
  border-radius:22px;
  background:linear-gradient(135deg,#ffffff,#f7f3ff);
}
.sync-box h3{margin:0 0 6px 0;color:#05083f;}
.sync-box input[type="file"]{
  border:1px dashed #b9a8ff;
  border-radius:14px;
  padding:12px;
  background:#fff;
}
.sync-status-banner{
  background:#f0ebff;
  border:1px solid #d4c8ff;
  border-radius:14px;
  padding:10px 14px;
  margin:0 0 14px 0;
  line-height:1.55;
}
.sync-status-banner .sync-ok{color:#0a7c4a;font-weight:500;}
.sync-status-banner .sync-warn{color:#a23a00;font-weight:500;}

/* v17 : la sélection d'une certification et la création de test doivent être visibles immédiatement. */
.cert-card{cursor:pointer;}
.cert-card .always-visible-actions{margin:10px 0 12px;}
.cert-card:focus{outline:3px solid rgba(122,43,255,.45);outline-offset:3px;}
#selectedCertificationPanel{border:2px solid rgba(122,43,255,.25);box-shadow:0 12px 28px rgba(38,14,92,.10);}

/* ─── Banque de questions ───────────────────────────────────────── */
.question-item{padding:14px;border:1px solid #e4defd;border-radius:14px;background:#fff;margin-bottom:10px;}
.question-header{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:8px;}
.question-text{font-size:15px;color:#05083f;margin-bottom:6px;line-height:1.45;}
.question-meta{color:#5a4f7a;margin-bottom:10px;}
.question-actions{display:flex;gap:6px;}
.badge-qcm{background:#eee9ff;color:#4a3aae;}
.badge-vf{background:#dde9ff;color:#1e3a87;}
.badge-multi{background:#ffd9ed;color:#7d2851;}
.badge-published{background:#d8f0e2;color:#0a7c4a;}
.badge-draft{background:#f0eee5;color:#5e5a4d;}
.btn-small{padding:5px 12px;font-size:12px;border-radius:8px;}
.btn-danger{background:#fff;color:#a23a00;border:1px solid #f0c0a8;}
.btn-danger:hover{background:#fbeae0;}
.btn-primary{background:#5a37e0;color:#fff;border:none;}
.btn-primary:hover{background:#4525c2;}
.role-gestionnaire{background:#fff7e0;color:#86570b;border:1px solid #f0d488;}

/* Modale grande pour l'éditeur */
.modal-card{max-width:680px;}
.modal-card-wide{max-width:960px;overflow-x:auto;}
.form h2{margin:0 0 2px;}
.form-row{display:flex;gap:12px;}
.form-row label{flex:1;}

/* Choix multiples côté stagiaire */
.learner-choices{display:flex;flex-direction:column;gap:8px;margin:14px 0;}
.learner-choice-multi{display:flex;align-items:center;gap:10px;padding:12px 16px;border:2px solid #e0d8f8;border-radius:14px;cursor:pointer;background:#fff;transition:all .15s;}
.learner-choice-multi:hover{border-color:#a89cf0;background:#f8f5ff;}
.learner-choice-multi input[type=checkbox]{width:20px;height:20px;cursor:pointer;}
.learner-choice-multi input:checked + span{font-weight:500;color:#05083f;}
.learner-choice-multi:has(input:checked){border-color:#5a37e0;background:#f3eeff;}
.learner-question-helper{color:#5a4f7a;font-size:14px;margin:0 0 12px 0;font-style:italic;}

/* ── Dossiers longitudinaux ──────────────────────────────────────────────── */
.dossier-suggest-list{border:1px solid var(--line);border-radius:12px;overflow:hidden;margin-top:4px;box-shadow:var(--shadow);}
.dossier-suggest-item{padding:10px 14px;cursor:pointer;background:white;border-bottom:1px solid var(--line);}
.dossier-suggest-item:last-child{border-bottom:none;}
.dossier-suggest-item:hover{background:#f4f8fb;}
.dossier-timeline{display:flex;flex-direction:column;gap:10px;}
.dossier-pos-card{display:flex;gap:12px;border:1px solid var(--line);border-radius:14px;overflow:hidden;background:white;}
.dossier-pos-badge{writing-mode:vertical-rl;text-orientation:mixed;transform:rotate(180deg);padding:12px 8px;color:#fff;font-size:10px;font-weight:700;text-align:center;flex-shrink:0;min-width:32px;}
.dossier-pos-body{flex:1;padding:12px 14px;}

/* ── RGPD avancé ─────────────────────────────────────────────────────────── */
.rgpd-session-row{display:flex;align-items:center;gap:14px;padding:12px 16px;border:1px solid var(--line);border-radius:14px;background:white;margin-bottom:10px;flex-wrap:wrap;}
.rgpd-session-info{display:flex;align-items:center;gap:12px;flex:1;min-width:0;}
.rgpd-session-name{font-weight:700;font-size:14px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.rgpd-session-counts{display:flex;flex-direction:column;gap:3px;align-items:flex-end;min-width:140px;}
.rgpd-progress{width:120px;height:6px;background:#e8eef5;border-radius:999px;overflow:hidden;}
.rgpd-progress-bar{height:100%;background:linear-gradient(90deg,var(--accent),var(--green));border-radius:999px;transition:width .3s;}

/* ── Archivage sessions ──────────────────────────────────────────────────── */
.item-archived{opacity:.75;background:#f9fbfd!important;border-style:dashed!important;}
.item-archived .item-title{color:#58708a;}

/* ── Identité organisme ──────────────────────────────────────────────────── */
.org-identity-grid{display:grid;grid-template-columns:200px 1fr;gap:24px;align-items:start;}
@media(max-width:700px){.org-identity-grid{grid-template-columns:1fr;}}
.org-logo-zone{display:flex;flex-direction:column;align-items:center;gap:6px;}
.org-logo-preview{width:180px;height:140px;border:2px dashed var(--line);border-radius:16px;display:flex;align-items:center;justify-content:center;background:#f8fafc;overflow:hidden;padding:8px;}
.org-logo-preview img{max-width:100%;max-height:100%;object-fit:contain;}
.org-contact-form{display:grid;gap:12px;}

/* ── Module Organisation & Antennes ─────────────────────────────────────── */
.antenna-row{display:flex;align-items:center;gap:10px;padding:10px 14px;border:1px solid var(--line);border-radius:14px;background:white;margin-bottom:8px;}
.antenna-dot{width:14px;height:14px;border-radius:50%;flex-shrink:0;}
.antenna-name{font-weight:700;font-size:14px;flex:1;}
.antenna-code{font-size:12px;color:#888;background:#f0f4f8;border-radius:8px;padding:2px 8px;}
.antenna-status{font-size:11px;font-weight:700;border-radius:999px;padding:3px 10px;}
.antenna-status.active{background:#e8f5ee;color:#157347;}
.antenna-status.inactive{background:#fdecea;color:#b42318;}

.antenna-stats-table{width:100%;border-collapse:collapse;font-size:13px;}
.antenna-stats-table th{text-align:left;padding:8px 10px;background:#f4f8fb;border-bottom:2px solid var(--line);font-size:12px;color:var(--muted);}
.antenna-stats-table td{padding:8px 10px;border-bottom:1px solid var(--line);vertical-align:middle;}
.antenna-stats-table tr:last-child td{border-bottom:none;}
.antenna-stats-table tr:hover td{background:#f9fbfd;}

.antenna-bar-wrap{display:inline-block;width:80px;height:8px;background:#e8eef5;border-radius:999px;overflow:hidden;vertical-align:middle;margin-right:6px;}
.antenna-bar{height:100%;background:linear-gradient(90deg,var(--accent),var(--green));border-radius:999px;}
