.module-header{background:var(--gradient-hero);color:#fff;border-radius:var(--r-xl);padding:var(--sp-8);margin-bottom:var(--sp-8);position:relative;overflow:hidden}
.module-header::before{content:'';position:absolute;top:-50%;right:-10%;width:60%;height:200%;background:radial-gradient(circle,rgba(255,255,255,.15),transparent 60%);pointer-events:none}
.module-header h1{color:#fff;margin-bottom:var(--sp-2)}
.module-header p{color:rgba(255,255,255,.9);max-width:700px;line-height:1.6}
.module-meta{display:flex;gap:var(--sp-4);margin-top:var(--sp-5);flex-wrap:wrap}
.module-meta-item{display:flex;align-items:center;gap:var(--sp-2);padding:var(--sp-2) var(--sp-3);background:rgba(255,255,255,.15);border-radius:var(--r-full);font-size:var(--fs-sm);font-weight:var(--fw-medium);backdrop-filter:blur(8px)}

.lesson-list{display:flex;flex-direction:column;gap:var(--sp-3)}
.lesson-item{display:flex;align-items:center;gap:var(--sp-4);padding:var(--sp-4) var(--sp-5);background:var(--surface);border:1px solid var(--border);border-radius:var(--r-lg);cursor:pointer;transition:all var(--t-fast) var(--ease)}
.lesson-item:hover{border-color:var(--indigo-300);transform:translateX(4px);box-shadow:var(--shadow-sm)}
.lesson-item.done{border-color:var(--success-500);background:linear-gradient(90deg,var(--success-50),var(--surface) 50%)}
.lesson-item.current{border-color:var(--primary);box-shadow:var(--shadow-glow)}
.lesson-num{width:36px;height:36px;border-radius:var(--r-full);background:var(--surface-alt);display:flex;align-items:center;justify-content:center;font-weight:var(--fw-bold);font-size:var(--fs-sm);color:var(--text-muted);flex-shrink:0}
.lesson-item.done .lesson-num{background:var(--gradient-success);color:#fff}
.lesson-item.current .lesson-num{background:var(--gradient-primary);color:#fff}
.lesson-info{flex:1;min-width:0}
.lesson-title{font-weight:var(--fw-semibold);margin-bottom:2px;line-height:1.3}
.lesson-sub{font-size:var(--fs-sm);color:var(--text-muted);display:flex;gap:var(--sp-3);flex-wrap:wrap}
.lesson-action{color:var(--primary);font-size:var(--fs-sm);font-weight:var(--fw-semibold)}

.lesson-content{background:var(--surface);border-radius:var(--r-lg);padding:var(--sp-8);max-width:780px;margin:0 auto}
.lesson-content h1{margin-bottom:var(--sp-4)}
.lesson-content h2{margin-top:var(--sp-8);margin-bottom:var(--sp-3);font-size:var(--fs-2xl);padding-bottom:var(--sp-2);border-bottom:1px solid var(--border)}
.lesson-content h3{margin-top:var(--sp-6);margin-bottom:var(--sp-3);font-size:var(--fs-xl)}
.lesson-content p{margin-bottom:var(--sp-4)}
.lesson-content ul,.lesson-content ol{margin-bottom:var(--sp-4);padding-left:1.5rem}
.lesson-content li{margin-bottom:var(--sp-2);line-height:1.7}
.lesson-content .article-ref{color:var(--primary);font-weight:var(--fw-semibold);background:var(--indigo-50);padding:2px 6px;border-radius:var(--r-sm);font-size:.9em}
.lesson-content blockquote{margin:var(--sp-5) 0;padding-left:var(--sp-5);border-left:3px solid var(--indigo-300);color:var(--text-muted);font-style:italic}

.lesson-nav{display:flex;justify-content:space-between;gap:var(--sp-4);margin-top:var(--sp-8);padding-top:var(--sp-6);border-top:1px solid var(--border)}

.quiz-container{background:var(--surface);border-radius:var(--r-lg);padding:var(--sp-8);max-width:780px;margin:0 auto}
.quiz-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--sp-6);gap:var(--sp-4)}
.quiz-progress{font-size:var(--fs-sm);color:var(--text-muted);font-weight:var(--fw-semibold)}
.quiz-timer{display:inline-flex;align-items:center;gap:var(--sp-2);padding:var(--sp-2) var(--sp-4);background:var(--warning-50);border:1px solid var(--warning-100);border-radius:var(--r-full);font-weight:var(--fw-semibold);color:var(--warning-700);font-size:var(--fs-sm);font-variant-numeric:tabular-nums}

.question-text{font-size:var(--fs-xl);font-weight:var(--fw-semibold);line-height:1.4;margin-bottom:var(--sp-6);color:var(--text)}
.question-scenario{background:linear-gradient(135deg,#eef2ff,#fafafa);border-left:4px solid var(--primary);padding:var(--sp-5);border-radius:var(--r-md);margin-bottom:var(--sp-5);font-size:var(--fs-base);line-height:1.7}
.question-scenario-label{font-size:var(--fs-xs);font-weight:var(--fw-bold);text-transform:uppercase;letter-spacing:.05em;color:var(--indigo-700);margin-bottom:var(--sp-2);display:flex;align-items:center;gap:var(--sp-2)}

.answers{display:flex;flex-direction:column;gap:var(--sp-3);margin-bottom:var(--sp-6)}
.answer{padding:var(--sp-4) var(--sp-5);border:2px solid var(--border);border-radius:var(--r-md);cursor:pointer;transition:all var(--t-fast) var(--ease);display:flex;align-items:flex-start;gap:var(--sp-3);background:var(--surface);text-align:left;width:100%;font-size:var(--fs-base);line-height:1.5;font-family:inherit;color:var(--text)}
.answer:hover:not(:disabled){border-color:var(--indigo-300);background:var(--indigo-50)}
.answer.selected{border-color:var(--primary);background:var(--indigo-50)}
.answer.correct{border-color:var(--success-500);background:var(--success-50);color:var(--success-700)}
.answer.wrong{border-color:var(--danger-500);background:var(--danger-50);color:var(--danger-700)}
.answer.correct-reveal{border-color:var(--success-500);background:var(--success-50)}
.answer:disabled{cursor:default}
.answer-letter{width:28px;height:28px;border-radius:var(--r-full);background:var(--surface-alt);display:flex;align-items:center;justify-content:center;font-weight:var(--fw-bold);font-size:var(--fs-sm);flex-shrink:0;transition:all var(--t-fast) var(--ease)}
.answer.selected .answer-letter{background:var(--gradient-primary);color:#fff}
.answer.correct .answer-letter,.answer.correct-reveal .answer-letter{background:var(--success-500);color:#fff}
.answer.wrong .answer-letter{background:var(--danger-500);color:#fff}

.feedback{margin-top:var(--sp-5);padding:var(--sp-5);border-radius:var(--r-md);border:1px solid;animation:feedback-in var(--t-base) var(--ease-out)}
@keyframes feedback-in{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}
.feedback.correct{background:var(--success-50);border-color:#86efac;color:var(--success-700)}
.feedback.wrong{background:var(--danger-50);border-color:#fca5a5;color:var(--danger-700)}
.feedback-title{font-weight:var(--fw-bold);margin-bottom:var(--sp-2);display:flex;align-items:center;gap:var(--sp-2)}
.feedback-body{color:var(--slate-700);line-height:1.6;font-size:var(--fs-sm)}
.feedback-body strong{color:var(--text)}

.quiz-footer{display:flex;justify-content:space-between;align-items:center;gap:var(--sp-4);margin-top:var(--sp-6)}

.tf-buttons{display:grid;grid-template-columns:1fr 1fr;gap:var(--sp-3)}
.tf-btn{padding:var(--sp-6);font-size:var(--fs-xl);border:2px solid var(--border);border-radius:var(--r-lg);background:var(--surface);cursor:pointer;transition:all var(--t-fast) var(--ease);font-weight:var(--fw-bold)}
.tf-btn:hover:not(:disabled){border-color:var(--indigo-300);transform:translateY(-2px)}
.tf-btn.selected{border-color:var(--primary);background:var(--indigo-50)}
.tf-btn.true.correct,.tf-btn.false.correct{border-color:var(--success-500);background:var(--success-50);color:var(--success-700)}
.tf-btn.wrong{border-color:var(--danger-500);background:var(--danger-50);color:var(--danger-700)}

.dnd-zone{min-height:140px;padding:var(--sp-4);border:2px dashed var(--border);border-radius:var(--r-md);background:var(--surface);transition:all var(--t-fast) var(--ease)}
.dnd-zone.over{border-color:var(--primary);background:var(--indigo-50)}
.dnd-zone-title{font-size:var(--fs-sm);font-weight:var(--fw-bold);text-transform:uppercase;letter-spacing:.05em;margin-bottom:var(--sp-3);padding-bottom:var(--sp-2);border-bottom:1px solid var(--border)}
.dnd-bins{display:grid;grid-template-columns:repeat(4,1fr);gap:var(--sp-3);margin-bottom:var(--sp-5)}
.dnd-items{display:flex;flex-wrap:wrap;gap:var(--sp-2);min-height:60px;margin-bottom:var(--sp-5);padding:var(--sp-4);background:var(--surface-alt);border-radius:var(--r-md)}
.dnd-item{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-md);padding:var(--sp-3) var(--sp-4);cursor:grab;font-size:var(--fs-sm);box-shadow:var(--shadow-xs);user-select:none;transition:all var(--t-fast) var(--ease);max-width:260px;line-height:1.4}
.dnd-item:hover{box-shadow:var(--shadow-sm);border-color:var(--indigo-300)}
.dnd-item:active,.dnd-item.dragging{cursor:grabbing;opacity:.5;transform:scale(.98)}
.dnd-item-placed{margin-top:var(--sp-2)}
.dnd-bin-interdit{border-color:var(--danger-500)}
.dnd-bin-interdit .dnd-zone-title{color:var(--danger-700)}
.dnd-bin-haut{border-color:var(--warning-500)}
.dnd-bin-haut .dnd-zone-title{color:var(--warning-700)}
.dnd-bin-limite{border-color:var(--indigo-500)}
.dnd-bin-limite .dnd-zone-title{color:var(--indigo-700)}
.dnd-bin-minimal{border-color:var(--success-500)}
.dnd-bin-minimal .dnd-zone-title{color:var(--success-700)}
.dnd-item.correct{border-color:var(--success-500);background:var(--success-50)}
.dnd-item.wrong{border-color:var(--danger-500);background:var(--danger-50)}

@media(max-width:700px){.dnd-bins{grid-template-columns:1fr 1fr}}

.flashcard-container{perspective:1000px;max-width:600px;margin:0 auto}
.flashcard{position:relative;width:100%;min-height:280px;cursor:pointer;transform-style:preserve-3d;transition:transform var(--t-slow) var(--ease)}
.flashcard.flipped{transform:rotateY(180deg)}
.flashcard-face{position:absolute;inset:0;backface-visibility:hidden;border-radius:var(--r-lg);padding:var(--sp-8);display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;box-shadow:var(--shadow-lg)}
.flashcard-front{background:var(--gradient-primary);color:#fff}
.flashcard-back{background:var(--surface);color:var(--text);transform:rotateY(180deg);border:2px solid var(--border)}
.flashcard-label{font-size:var(--fs-xs);text-transform:uppercase;letter-spacing:.1em;opacity:.7;margin-bottom:var(--sp-4);font-weight:var(--fw-semibold)}
.flashcard-term{font-size:var(--fs-3xl);font-weight:var(--fw-bold);line-height:1.3}
.flashcard-def{font-size:var(--fs-base);line-height:1.7;max-width:420px}
.flashcard-actions{display:flex;gap:var(--sp-3);justify-content:center;margin-top:var(--sp-6);flex-wrap:wrap}
.flashcard-rate{padding:var(--sp-3) var(--sp-4);border-radius:var(--r-md);border:1px solid var(--border);background:var(--surface);cursor:pointer;font-weight:var(--fw-semibold);font-size:var(--fs-sm);transition:all var(--t-fast) var(--ease);min-width:100px}
.flashcard-rate:hover{transform:translateY(-1px);box-shadow:var(--shadow-sm)}
.flashcard-rate.r1{border-color:var(--danger-300,#fca5a5);color:var(--danger-700)}
.flashcard-rate.r2{border-color:var(--warning-500);color:var(--warning-700)}
.flashcard-rate.r3{border-color:var(--indigo-300);color:var(--indigo-700)}
.flashcard-rate.r4{border-color:var(--success-500);color:var(--success-700)}

.timeline{position:relative;padding:var(--sp-4) 0}
.timeline-track{position:absolute;top:50px;left:0;right:0;height:4px;background:linear-gradient(90deg,var(--indigo-200),var(--violet-200));border-radius:var(--r-full)}
.timeline-events{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:var(--sp-5);position:relative}
.timeline-event{text-align:center;padding-top:var(--sp-12);position:relative}
.timeline-dot{position:absolute;top:44px;left:50%;transform:translateX(-50%);width:20px;height:20px;border-radius:var(--r-full);background:var(--gradient-primary);border:3px solid var(--surface);box-shadow:var(--shadow-md);cursor:pointer;transition:transform var(--t-fast) var(--ease);z-index:2}
.timeline-dot:hover{transform:translateX(-50%) scale(1.3)}
.timeline-date{font-size:var(--fs-xs);font-weight:var(--fw-bold);color:var(--primary);margin-bottom:var(--sp-1);text-transform:uppercase;letter-spacing:.05em}
.timeline-label{font-size:var(--fs-sm);font-weight:var(--fw-semibold);line-height:1.3}
.timeline-event.passed .timeline-dot{background:var(--gradient-success)}
.timeline-event.passed .timeline-date{color:var(--success-600)}

.risktree-question{background:var(--surface);padding:var(--sp-6);border-radius:var(--r-lg);margin-bottom:var(--sp-4);border:1px solid var(--border)}
.risktree-qtext{font-size:var(--fs-lg);font-weight:var(--fw-semibold);margin-bottom:var(--sp-5);line-height:1.4}
.risktree-options{display:flex;flex-direction:column;gap:var(--sp-2)}
.risktree-opt{padding:var(--sp-4);border:2px solid var(--border);border-radius:var(--r-md);cursor:pointer;background:var(--surface);text-align:left;transition:all var(--t-fast) var(--ease);font-family:inherit;font-size:var(--fs-base);color:var(--text)}
.risktree-opt:hover{border-color:var(--primary);background:var(--indigo-50)}
.risktree-path{display:flex;flex-wrap:wrap;gap:var(--sp-2);padding:var(--sp-4);background:var(--indigo-50);border-radius:var(--r-md);margin-bottom:var(--sp-6);font-size:var(--fs-sm)}
.risktree-path-step{padding:var(--sp-1) var(--sp-3);background:var(--surface);border-radius:var(--r-full);border:1px solid var(--indigo-200);color:var(--indigo-700)}
.risktree-verdict{padding:var(--sp-8);border-radius:var(--r-lg);text-align:center}
.risktree-verdict.interdit{background:linear-gradient(135deg,var(--danger-50),#fff);border:2px solid var(--danger-500)}
.risktree-verdict.haut{background:linear-gradient(135deg,var(--warning-50),#fff);border:2px solid var(--warning-500)}
.risktree-verdict.limite{background:linear-gradient(135deg,var(--indigo-50),#fff);border:2px solid var(--primary)}
.risktree-verdict.minimal{background:linear-gradient(135deg,var(--success-50),#fff);border:2px solid var(--success-500)}

.glossary-entry{padding:var(--sp-5);border-bottom:1px solid var(--border);cursor:pointer}
.glossary-entry:last-child{border-bottom:none}
.glossary-term{font-weight:var(--fw-bold);font-size:var(--fs-lg);margin-bottom:var(--sp-2);color:var(--primary)}
.glossary-def{color:var(--text);line-height:1.6;font-size:var(--fs-sm)}
.glossary-ref{font-size:var(--fs-xs);color:var(--text-muted);margin-top:var(--sp-2);font-style:italic}

.article-card{padding:var(--sp-5);border:1px solid var(--border);border-radius:var(--r-md);margin-bottom:var(--sp-4);transition:all var(--t-fast) var(--ease)}
.article-card:hover{border-color:var(--indigo-300);box-shadow:var(--shadow-sm)}
.article-title{font-weight:var(--fw-bold);font-size:var(--fs-lg);margin-bottom:var(--sp-2);color:var(--indigo-700)}
.article-body{font-size:var(--fs-sm);color:var(--text);line-height:1.7}

.fiche-client{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-lg);overflow:hidden;margin-bottom:var(--sp-6)}
.fiche-header{padding:var(--sp-6);background:var(--gradient-hero);color:#fff}
.fiche-header h3{color:#fff;margin-bottom:var(--sp-2)}
.fiche-header p{color:rgba(255,255,255,.9);margin:0}
.fiche-body{padding:var(--sp-6)}
.fiche-section{margin-bottom:var(--sp-5)}
.fiche-section:last-child{margin-bottom:0}
.fiche-section h4{font-size:var(--fs-base);margin-bottom:var(--sp-2);color:var(--indigo-700)}
.fiche-section ul{padding-left:1.25rem}
.fiche-section li{margin-bottom:var(--sp-1)}

.quests{display:flex;flex-direction:column;gap:var(--sp-3)}
.quest{display:flex;align-items:center;gap:var(--sp-4);padding:var(--sp-4);background:var(--surface);border:1px solid var(--border);border-radius:var(--r-md)}
.quest-icon{width:40px;height:40px;border-radius:var(--r-md);background:var(--gradient-primary);display:flex;align-items:center;justify-content:center;color:#fff;font-size:var(--fs-lg);flex-shrink:0}
.quest-info{flex:1;min-width:0}
.quest-title{font-weight:var(--fw-semibold);font-size:var(--fs-sm)}
.quest-progress{display:flex;align-items:center;gap:var(--sp-2);margin-top:var(--sp-1);font-size:var(--fs-xs);color:var(--text-muted)}
.quest-reward{font-size:var(--fs-xs);font-weight:var(--fw-bold);color:var(--warning-600);padding:2px 8px;background:var(--warning-50);border-radius:var(--r-full);white-space:nowrap}
.quest.done{opacity:.6}
.quest.done .quest-icon{background:var(--gradient-success)}

.module-lock{display:inline-flex;align-items:center;gap:var(--sp-2);padding:var(--sp-1) var(--sp-2);background:var(--surface-alt);border-radius:var(--r-sm);font-size:var(--fs-xs);color:var(--text-muted)}
