:root{--rose: #f06a9b;--vert: #12805a;--vert-fonce: #0f2a1f;--blanc: #ffffff;--rose-clair: #fde7ef;--vert-clair: #e3f4ec;--rose-fonce: #8a2453;--carreaux: #f6e6ec;--gold: #b7791f;--gold-clair: #fdf3dc;--muted: #5b6b63;--line: #ecdfe4;--radius: 18px;--shadow: 0 1px 0 rgba(15, 42, 31, .04), 0 8px 24px -12px rgba(15, 42, 31, .18);--font-title: "Poppins", system-ui, sans-serif;--font: "Inter", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif}*{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{margin:0;font-family:var(--font);color:var(--vert-fonce);font-size:16px;line-height:1.55;background-color:var(--blanc);background-image:linear-gradient(var(--carreaux) 1px,transparent 1px),linear-gradient(90deg,var(--carreaux) 1px,transparent 1px);background-size:28px 28px;min-height:100vh}h1,h2,h3{font-family:var(--font-title);font-weight:800;letter-spacing:-.02em;line-height:1.15;margin:0 0 8px}h1{font-size:clamp(1.6rem,4.5vw,2.3rem)}h2{font-size:1.3rem}h3{font-size:1.08rem;font-weight:700}p{margin:0 0 12px}a{color:var(--vert);font-weight:600;text-decoration:none}a:hover{text-decoration:underline}button{font:inherit;color:inherit}input,select{font:inherit}.muted{color:var(--muted)}.small{font-size:.87rem}.center{text-align:center}.row{display:flex;align-items:center}.between{justify-content:space-between}.end{justify-content:flex-end}.center-row{justify-content:center}.wrap{flex-wrap:wrap}.gap-s{gap:10px}.grow{flex:1;min-width:0}.stack{display:grid;gap:12px}.stack-s{display:grid;gap:10px}.mono{font-family:ui-monospace,SF Mono,Menlo,Consolas,monospace;font-size:.92rem}.hl{color:var(--rose)}.lead{font-size:1.08rem;color:var(--muted)}.big-emoji{font-size:3rem;line-height:1;margin-bottom:8px}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;border:0;border-radius:999px;padding:12px 22px;cursor:pointer;font-family:var(--font-title);font-weight:700;font-size:.98rem;text-decoration:none!important;transition:transform .12s ease,box-shadow .12s ease,background .12s}.btn:active{transform:scale(.97)}.btn:disabled{opacity:.55;cursor:not-allowed}.btn-primary{background:var(--vert);color:#fff;box-shadow:0 6px 0 -2px #0b5a3f}.btn-primary:hover{background:#0f7351}.btn-rose{background:var(--rose);color:#fff;box-shadow:0 6px 0 -2px var(--rose-fonce)}.btn-ghost{background:#fff;color:var(--vert-fonce);border:1.5px solid var(--line)}.btn-ghost:hover{border-color:var(--vert)}.btn-sm{padding:8px 14px;font-size:.86rem;box-shadow:none}.btn-lg{padding:15px 28px;font-size:1.05rem}.btn-block{width:100%}.link-btn{background:none;border:0;color:var(--vert);font-weight:600;cursor:pointer;padding:6px 0}.card{background:#fff;border:1.5px solid var(--line);border-radius:var(--radius);padding:18px;box-shadow:var(--shadow)}a.card{color:inherit;font-weight:400;display:block;text-decoration:none}a.card:hover{border-color:var(--vert)}.badge{display:inline-flex;align-items:center;gap:4px;border-radius:8px;padding:3px 9px;font-size:.78rem;font-weight:700;white-space:nowrap}.badge-vert{background:var(--vert-clair);color:var(--vert)}.badge-rose{background:var(--rose-clair);color:var(--rose-fonce)}.badge-dark{background:var(--vert-fonce);color:#fff}.badge-gold{background:var(--gold-clair);color:var(--gold)}.pill{display:inline-block;background:var(--rose-clair);color:var(--rose-fonce);padding:8px 16px;border-radius:999px;font-weight:700;font-size:.9rem;margin-bottom:14px}.alert{padding:12px 14px;border-radius:12px;font-size:.92rem}.alert-error{background:var(--rose-clair);color:var(--rose-fonce)}.alert-ok{background:var(--vert-clair);color:var(--vert)}.logo{display:inline-flex;align-items:center;gap:10px;font-family:var(--font-title);color:var(--vert-fonce)}.logo-mark{width:38px;height:38px;border-radius:50%;background:var(--rose);box-shadow:4px 4px 0 var(--vert);display:grid;place-items:center;flex-shrink:0}.logo-mark span{color:#fff;font-weight:800;font-size:1.25rem}.logo-text{font-weight:600;font-size:1.02rem;white-space:nowrap}.logo-text b{color:var(--vert);font-weight:800}.logo-sm .logo-mark{width:30px;height:30px;box-shadow:3px 3px 0 var(--vert)}.logo-sm .logo-mark span{font-size:1rem}.logo-sm .logo-text{font-size:.95rem}.demo-banner{background:var(--vert-fonce);color:#fff;text-align:center;font-size:.78rem;padding:6px 10px}.topbar{position:sticky;top:0;z-index:20;display:flex;align-items:center;gap:16px;padding:10px 18px;background:#ffffffeb;backdrop-filter:blur(8px);border-bottom:1.5px solid var(--line)}.topbar-logo{text-decoration:none!important}.topnav{display:none;gap:4px;margin-left:auto}.topnav-link{padding:8px 14px;border-radius:999px;color:var(--vert-fonce);font-weight:600;font-size:.93rem}.topnav-link.active{background:var(--vert-clair);color:var(--vert)}.topbar>.btn,.topbar>.badge{margin-left:auto}.main{max-width:860px;margin:0 auto;padding:22px 16px 110px}.main-quiz{padding-bottom:40px}.page>h1{margin-top:4px}.h2{margin:28px 0 12px;font-size:1.15rem}.back{display:inline-block;margin-bottom:10px;font-size:.92rem}.bottomnav{position:fixed;bottom:0;left:0;right:0;z-index:20;display:flex;justify-content:space-around;background:#fff;border-top:1.5px solid var(--line);padding:6px 4px calc(6px + env(safe-area-inset-bottom))}.bottomnav-link{display:flex;flex-direction:column;align-items:center;gap:1px;font-size:.7rem;font-weight:600;color:var(--muted);padding:4px 8px;border-radius:12px;text-decoration:none!important}.bottomnav-link.active{color:var(--vert);background:var(--vert-clair)}.bn-icon{font-size:1.25rem}@media (min-width: 860px){.topnav{display:flex}.topbar>.btn,.topbar>.badge{margin-left:8px}.bottomnav{display:none}.main{padding-bottom:60px}}.loading{display:flex;align-items:center;justify-content:center;gap:10px;padding:60px 20px;color:var(--muted)}.spinner{width:20px;height:20px;border-radius:50%;border:3px solid var(--vert-clair);border-top-color:var(--vert);animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.grid-2,.grid-3{display:grid;gap:14px}.grid-subjects{display:grid;grid-template-columns:repeat(2,1fr);gap:12px}.grid-lessons{display:grid;gap:12px}@media (min-width: 680px){.grid-2{grid-template-columns:1fr 1fr}.grid-3{grid-template-columns:repeat(3,1fr)}.grid-subjects{grid-template-columns:repeat(5,1fr)}.grid-lessons{grid-template-columns:1fr 1fr}}.landing{max-width:1080px;margin:0 auto;padding:0 18px}.landing-top{display:flex;align-items:center;justify-content:space-between;padding:18px 0;gap:10px}.landing-top .logo-text{display:none}@media (min-width: 520px){.landing-top .logo-text{display:inline}}.hero{display:grid;gap:36px;padding:28px 0 40px;align-items:center}.hero h1{font-size:clamp(2.1rem,7vw,3.6rem)}@media (min-width: 900px){.hero{grid-template-columns:1.15fr .85fr;padding:50px 0 60px}}.hero-card{position:relative;padding:30px 10px 10px 40px}.serie-bubble{position:absolute;left:0;top:0;width:96px;height:96px;border-radius:50%;background:var(--rose);box-shadow:8px 8px 0 var(--vert);display:grid;place-items:center;z-index:2}.serie-bubble span{color:#fff;font:800 3rem var(--font-title)}.speech{position:absolute;right:0;bottom:-14px;background:var(--vert);color:#fff;font:800 1rem var(--font-title);padding:12px 20px;border-radius:999px;transform:rotate(4deg);box-shadow:4px 4px 0 var(--vert-fonce)}.mock-q{background:#fff;border:1.5px solid var(--line);border-radius:22px;padding:26px 20px 30px;box-shadow:var(--shadow);margin-left:30px}.mock-tag{margin-left:56px;display:inline-block;background:var(--vert-clair);color:var(--vert);font-weight:700;font-size:.8rem;padding:4px 10px;border-radius:8px;margin-bottom:10px}.mock-text{font:700 1.05rem var(--font-title);margin-bottom:12px}.mock-opt{border:1.5px solid var(--line);border-radius:12px;padding:9px 14px;margin-bottom:8px;font-weight:600}.mock-opt.ok{border-color:var(--vert);background:var(--vert-clair);color:var(--vert)}.mock-expl{font-size:.88rem;background:var(--rose-clair);padding:10px 12px;border-radius:12px;color:var(--rose-fonce)}.stats-strip{display:grid;grid-template-columns:repeat(2,1fr);gap:12px;margin-bottom:30px}.stats-strip>div{background:var(--vert-fonce);color:#fff;border-radius:var(--radius);padding:18px;display:flex;flex-direction:column}.stats-strip b{font:800 1.8rem var(--font-title);color:var(--rose)}.stats-strip span{font-size:.88rem;opacity:.9}@media (min-width: 720px){.stats-strip{grid-template-columns:repeat(4,1fr)}}.section{padding:30px 0}.section-title{text-align:center;font-size:clamp(1.5rem,4vw,2.1rem);margin-bottom:22px}.feature .f-emoji,.mode-card .f-emoji{font-size:2rem;margin-bottom:8px}.feature p{color:var(--muted);font-size:.95rem;margin:0}.pricing{display:grid;gap:18px;max-width:760px;margin:0 auto}@media (min-width: 720px){.pricing{grid-template-columns:1fr 1fr}}.price-card{position:relative;display:flex;flex-direction:column;gap:10px;padding:26px}.price-card.featured{border:2.5px solid var(--vert)}.price{font:800 2.2rem var(--font-title);color:var(--vert)}.ribbon{position:absolute;top:-13px;right:20px;background:var(--rose);color:#fff;font-weight:700;font-size:.8rem;padding:4px 12px;border-radius:999px}.checks{list-style:none;padding:0;margin:6px 0 10px;display:grid;gap:8px}.checks li{padding-left:28px;position:relative}.checks li:before{content:"✓";position:absolute;left:0;top:0;width:20px;height:20px;border-radius:50%;background:var(--vert-clair);color:var(--vert);font-weight:800;font-size:.78rem;display:grid;place-items:center}.faq{max-width:720px;margin:0 auto;display:grid;gap:10px}.faq details{background:#fff;border:1.5px solid var(--line);border-radius:14px;padding:14px 18px}.faq summary{font-weight:700;cursor:pointer}.faq p{margin:10px 0 0;color:var(--muted)}.cta-band{background:var(--vert);color:#fff;border-radius:26px;padding:34px 24px;text-align:center;margin:30px 0}.cta-band h2{font-size:clamp(1.2rem,3.5vw,1.7rem)}.cta-band p{opacity:.9}.footer{padding:20px 0 40px;text-align:center;display:grid;gap:10px;justify-items:center}.auth-page{min-height:100vh;display:flex;flex-direction:column;align-items:center;padding:30px 16px}.auth-logo{margin-bottom:20px;text-decoration:none!important}.auth-card,.form-card{width:100%;max-width:440px;display:grid;gap:14px}.form-card{max-width:none;margin-bottom:14px}label{display:grid;gap:6px;font-weight:600;font-size:.92rem}input[type=email],input[type=password],input:not([type]),input[type=text]{border:1.5px solid var(--line);border-radius:12px;padding:12px 14px;background:#fff;outline:none}input:focus{border-color:var(--vert);box-shadow:0 0 0 3px var(--vert-clair)}input[type=range]{accent-color:var(--vert)}.serie-picker{display:flex;flex-wrap:wrap;gap:8px}.serie-chip{width:46px;height:46px;border-radius:50%;border:1.5px solid var(--line);background:#fff;font:800 1rem var(--font-title);cursor:pointer}.serie-chip:last-child{width:auto;padding:0 14px;border-radius:999px}.serie-chip.on{background:var(--rose);color:#fff;border-color:var(--rose);box-shadow:3px 3px 0 var(--vert)}.hello{display:flex;justify-content:space-between;align-items:flex-start;gap:10px;margin-bottom:14px}.streak{background:var(--rose-clair);color:var(--rose-fonce);font-weight:800;padding:8px 14px;border-radius:999px;white-space:nowrap}.goal-card{display:flex;gap:16px;align-items:center}.goal-card p{margin-bottom:8px}.ring{position:relative;flex-shrink:0}.ring-label{position:absolute;inset:0;display:grid;place-items:center;font:800 1.1rem var(--font-title);text-align:center}.ring-label small{font-size:.7em;color:var(--muted);font-weight:600}.bar{height:9px;background:var(--vert-clair);border-radius:999px;overflow:hidden;margin-top:6px}.bar-fill{height:100%;border-radius:999px;transition:width .5s ease}.upsell{display:flex!important;align-items:center;gap:14px;margin-top:14px;background:var(--vert-fonce)!important;color:#fff!important;border:0!important}.upsell .small{opacity:.85}.upsell-emoji{font-size:1.8rem}.upsell-arrow{font-size:1.4rem;color:var(--rose);font-weight:800}.theme-row{display:flex;align-items:center;gap:14px;flex-wrap:wrap}.subject-card{padding:14px;display:grid;gap:2px}.subject-emoji{font-size:1.4rem}.attempt-row{display:flex;align-items:center;gap:12px;padding:14px 16px}.score-chip{background:var(--vert-clair);color:var(--vert);font:800 1rem var(--font-title);padding:6px 12px;border-radius:12px;white-space:nowrap}.exam-card{display:flex!important;align-items:center;gap:16px}.exam-card .year{font:800 1.3rem var(--font-title);background:var(--vert);color:#fff;border-radius:14px;padding:14px 10px;min-width:76px;text-align:center}.exam-card.locked .year{background:var(--rose-clair);color:var(--rose-fonce)}.chev{font-size:1.6rem;color:var(--muted)}.concours-card{display:flex;align-items:center;gap:14px;background:var(--rose-clair);border-color:#f6c9da}.lock-inline{display:flex;align-items:center;gap:14px;font-size:1.4rem}.lock-inline b,.lock-inline .small{font-size:initial}.section-row{display:flex;align-items:center;gap:14px;padding:14px 16px}.subject-dot{width:42px;height:42px;border-radius:12px;display:grid;place-items:center;font-size:1.2rem;flex-shrink:0}.lock-card{text-align:center;padding:30px 22px;margin-top:16px}.lock-emoji{font-size:2.6rem}.quiz{max-width:720px;margin:0 auto}.quiz-top{display:flex;align-items:center;gap:12px;margin-bottom:14px}.quiz-top .link-btn{font-size:1.2rem;color:var(--muted)}.quiz-progress{flex:1;height:10px;background:var(--vert-clair);border-radius:999px;overflow:hidden}.quiz-progress div{height:100%;background:var(--vert);border-radius:999px;transition:width .3s}.quiz-count{font-weight:700;font-size:.9rem;color:var(--muted)}.timer{font:700 .95rem var(--font-title);background:var(--vert-fonce);color:#fff;padding:5px 11px;border-radius:999px}.timer.urgent{background:var(--rose);animation:pulse 1s infinite}@keyframes pulse{50%{opacity:.7}}.quiz-meta{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin-bottom:12px}.question{font-family:var(--font-title);font-weight:700;font-size:1.2rem;line-height:1.4;margin:6px 0 16px;letter-spacing:-.01em}.options{display:grid;gap:10px}.option{display:flex;align-items:center;gap:12px;width:100%;text-align:left;background:#fff;border:2px solid var(--line);border-radius:16px;padding:13px 14px;cursor:pointer;font-weight:500;transition:border-color .12s,background .12s,transform .08s}.option:hover{border-color:var(--vert)}.option:active{transform:scale(.99)}.opt-letter{width:30px;height:30px;border-radius:9px;background:var(--vert-clair);color:var(--vert);display:grid;place-items:center;font:800 .9rem var(--font-title);flex-shrink:0}.option.selected{border-color:var(--vert);background:var(--vert-clair)}.option.selected .opt-letter{background:var(--vert);color:#fff}.option.correct{border-color:var(--vert);background:var(--vert-clair)}.option.correct .opt-letter{background:var(--vert);color:#fff}.option.wrong{border-color:var(--rose);background:var(--rose-clair)}.option.wrong .opt-letter{background:var(--rose);color:#fff}.option.dim{opacity:.55}.feedback{margin-top:14px;border-radius:16px;padding:14px 16px;animation:up .25s ease}.feedback.ok{background:var(--vert-clair)}.feedback.ko{background:var(--rose-clair)}.feedback-title{font:800 1.05rem var(--font-title);margin-bottom:4px}.feedback.ok .feedback-title{color:var(--vert)}.feedback.ko .feedback-title{color:var(--rose-fonce)}.feedback>div:last-child{margin-top:8px}@keyframes up{0%{opacity:0;transform:translateY(6px)}}.quiz-actions{display:flex;gap:10px;margin-top:18px;position:sticky;bottom:0;padding:12px 0 calc(12px + env(safe-area-inset-bottom));background:linear-gradient(transparent,#fff 30%)}.quiz-actions .btn-ghost{flex:0 0 auto}.quiz-actions .btn-primary,.quiz-actions .btn-rose{flex:1}.passage{margin-bottom:14px;padding:0;overflow:hidden}.passage-toggle{width:100%;text-align:left;background:var(--vert-fonce);color:#fff;border:0;padding:12px 16px;font-weight:700;cursor:pointer}.passage-text{max-height:230px;overflow-y:auto;padding:14px 16px;font-size:.93rem}.grid-nav{display:grid;grid-template-columns:repeat(auto-fill,minmax(40px,1fr));gap:6px;margin-top:12px}.gn{height:40px;border-radius:10px;border:1.5px solid var(--line);background:#fff;font-weight:700;cursor:pointer}.gn.filled{background:var(--vert-clair);border-color:var(--vert);color:var(--vert)}.gn.cur{outline:2.5px solid var(--rose)}.quiz-intro .mode-card{text-align:left;cursor:pointer;display:grid;gap:4px}.quiz-intro .mode-card:hover{border-color:var(--vert)}.mode-concours{background:var(--rose-clair);border-color:#f6c9da}.modal-bg{position:fixed;inset:0;background:#0f2a1f73;display:grid;place-items:center;z-index:50;padding:16px}.modal{max-width:420px;width:100%;animation:up .2s ease}.result-hero{display:flex;gap:22px;align-items:center;flex-wrap:wrap;margin-bottom:14px}.review{padding:12px 16px}.review summary{display:flex;gap:10px;cursor:pointer;list-style:none;font-weight:500}.review summary::-webkit-details-marker{display:none}.review.ko{border-left:5px solid var(--rose)}.review.ok{border-left:5px solid var(--vert)}.review-body{margin-top:10px;padding-top:10px;border-top:1px dashed var(--line)}.expl{background:var(--vert-clair);border-radius:12px;padding:10px 12px;margin-bottom:8px;font-size:.93rem}.lesson-card{display:flex!important;gap:14px;align-items:flex-start}.lesson-card.locked{background:#fffafc}.lesson-emoji{font-size:1.8rem;width:52px;height:52px;border-radius:14px;background:var(--vert-clair);display:grid;place-items:center;flex-shrink:0}.lesson-emoji.big{width:64px;height:64px;font-size:2.2rem;background:var(--rose-clair)}.lesson-head{display:flex;gap:14px;align-items:center;margin-bottom:12px}.lesson-body{background:#fff;border:1.5px solid var(--line);border-radius:var(--radius);padding:20px 18px}.lesson-body h2{font-size:1.2rem;margin:22px 0 10px;color:var(--vert)}.lesson-body h2:first-child{margin-top:0}.lesson-body ul,.lesson-body ol{padding-left:22px;margin:0 0 12px;display:grid;gap:6px}.steps{counter-reset:s;list-style:none;padding-left:0!important}.steps li{counter-increment:s;position:relative;padding-left:40px}.steps li:before{content:counter(s);position:absolute;left:0;top:0;width:28px;height:28px;border-radius:50%;background:var(--rose);color:#fff;font:800 .85rem var(--font-title);display:grid;place-items:center}.callout{border-radius:14px;padding:12px 14px;margin:0 0 14px;font-size:.95rem}.callout-title{font-weight:800;margin-bottom:4px;font-family:var(--font-title)}.callout-example{background:#f7f9f8;border:1.5px dashed #cfe3d9}.callout-tip{background:var(--vert-clair)}.callout-trap{background:var(--rose-clair);color:var(--rose-fonce)}.callout-remember{background:var(--vert-fonce);color:#fff}.table-wrap{overflow-x:auto;margin:0 0 14px;border-radius:12px;border:1.5px solid var(--line)}table{border-collapse:collapse;width:100%;font-size:.9rem;background:#fff}th{background:var(--vert-clair);color:var(--vert);text-align:left;padding:9px 10px;font-weight:700;white-space:nowrap}td{padding:8px 10px;border-top:1px solid var(--line);vertical-align:top}.lesson-end{margin-top:18px;background:var(--rose-clair);border-color:#f6c9da}.next-lesson{display:block;text-align:center;margin:20px 0}.kpis{display:grid;grid-template-columns:repeat(2,1fr);gap:12px;margin-bottom:14px}@media (min-width: 680px){.kpis{grid-template-columns:repeat(4,1fr)}}.kpi{display:flex;flex-direction:column;padding:14px 16px}.kpi b{font:800 1.45rem var(--font-title);color:var(--vert)}.kpi span{font-size:.85rem;color:var(--muted)}.page>.card{margin-bottom:14px}.linechart{width:100%;height:auto}.heatmap{display:grid;grid-template-columns:repeat(7,1fr);gap:4px;max-width:230px;margin:8px 0}.hm{aspect-ratio:1;border-radius:6px;background:#f3eef0}.hm-1{background:#bfe5d3}.hm-2{background:#5dbb93}.hm-3{background:var(--vert)}.theme-line .bar{margin-top:4px}.attempt-line{padding:6px 0;border-top:1px solid var(--line);gap:10px}.premium-hero{display:grid;gap:12px;border:2.5px solid var(--vert)}.pay-logos{display:flex;flex-wrap:wrap;gap:6px;justify-content:center}.pay-logos span{background:#f7f9f8;border:1px solid var(--line);border-radius:8px;padding:4px 9px;font-size:.78rem;font-weight:600}.pay-methods{display:grid;grid-template-columns:repeat(auto-fill,minmax(130px,1fr));gap:8px}.pay-method{display:flex;align-items:center;gap:8px;border:2px solid var(--line);background:#fff;border-radius:14px;padding:11px 12px;font-weight:600;cursor:pointer;text-align:left}.pay-method.on{border-color:var(--vert);background:var(--vert-clair)}.pm-dot{width:14px;height:14px;border-radius:50%;flex-shrink:0;box-shadow:0 0 0 2px #fff,0 0 0 3px var(--line)}
