:root{--paper: #faf7f0;--ink: #1c1a17;--violet: #6d5dd3;--faded: #9a958a;--fadedText: #6b675f;--hair: #ddd6c6;--fs-display: 34px;--fs-wordmark: 23px;--fs-une: 21px;--fs-titre: 16px;--fs-corps: 14px;--fs-bouton: 13.5px;--fs-soustitre: 13px;--fs-statut: 12.5px;--fs-caption: 12px;--fs-etiquette: 10.5px;--tracking-etiquette: .09em;--stroke-icon: 1.7;--hit-min: 44px;--font-body: "Tiempos Text", "Source Serif 4", "Iowan Old Style", ui-serif, Charter, Georgia, serif;--font-display: Georgia, "Source Serif 4", ui-serif, serif}:root[data-theme=nuit]{--paper: #1c1a17;--ink: #e9e5dc;--violet: #a793ff;--faded: #8a8578;--fadedText: #8a8578;--hair: #3a362f}@media(prefers-color-scheme:dark){:root:not([data-theme]){--paper: #1c1a17;--ink: #e9e5dc;--violet: #a793ff;--faded: #8a8578;--fadedText: #8a8578;--hair: #3a362f}}:root{color-scheme:light dark;--accent: #3b6ef6;--card: light-dark(#f4f5f7, #26282d);--muted: light-dark(#667085, #9aa1ac);font-family:-apple-system,SF Pro Text,Segoe UI,sans-serif}body{margin:0;background:light-dark(#ffffff,#17181c);color:light-dark(#1a1c20,#e8eaee)}.shell{max-width:760px;margin:0 auto;padding:2.5rem 1.25rem 4rem}h1{margin:.2rem 0 .3rem;font-size:1.7rem}.subtitle{color:var(--muted);margin-top:0}.error{color:#d44}.link{background:none;border:none;color:var(--accent);font-size:1rem;padding:0;cursor:pointer}.lesson-list{list-style:none;padding:0;display:grid;gap:.6rem}.lesson-card{width:100%;text-align:left;border:none;cursor:pointer;background:var(--card);border-radius:12px;padding:.9rem 1.1rem;display:grid;gap:.25rem;font:inherit;color:inherit}.lesson-card:hover{outline:2px solid var(--accent)}.lesson-title{font-weight:600}.lesson-meta{color:var(--muted);font-size:.85rem}.steps{display:flex;gap:.5rem;margin:1.2rem 0}.step{border:none;border-radius:999px;padding:.45rem 1rem;background:var(--card);color:inherit;font:inherit;cursor:pointer}.step.active{background:var(--accent);color:#fff}.vocab-grid{display:grid;gap:.7rem}.vocab-card{background:var(--card);border-radius:12px;padding:.9rem 1.1rem}.vocab-head{display:flex;justify-content:space-between;gap:1rem;align-items:baseline}.fr{font-weight:650;font-size:1.12rem}.en{color:var(--muted)}.note{color:var(--muted);font-size:.88rem;margin:.35rem 0 0}.sentence{font-style:italic;margin:.4rem 0 .5rem}.play{border:none;background:none;color:var(--accent);font:inherit;font-size:.9rem;padding:0;cursor:pointer}.hint{color:var(--muted)}.quiz{display:grid;gap:.8rem;justify-items:start}.question{font-size:1.15rem;font-weight:600;margin:0}.choices{display:grid;gap:.5rem;width:100%}.choice{text-align:left;border:none;border-radius:10px;background:var(--card);color:inherit;font:inherit;padding:.7rem 1rem;cursor:pointer}.choice:hover:not(:disabled){outline:2px solid var(--accent)}.choice.correct{background:light-dark(#d8f2dd,#1e4a2a)}.choice.wrong{background:light-dark(#f8dcdc,#55272b)}.score{font-size:2.2rem;font-weight:700;margin:0}.dictee{display:grid;gap:.8rem;justify-items:start}.dictee-input{width:100%;box-sizing:border-box;border-radius:10px;border:1px solid light-dark(#d5d9e0,#3a3d44);background:var(--card);color:inherit;font:inherit;padding:.7rem .9rem;resize:vertical}.dictee-ref{font-size:1.15rem;line-height:1.7;margin:0}.tok.ok{color:light-dark(#177a3d,#6fd695)}.tok.accent{color:light-dark(#b26a00,#f0b35c);font-weight:600}.tok.miss{color:light-dark(#c22f3b,#f28089);font-weight:600;text-decoration:underline}.legend{font-size:.82rem}.inbox{display:flex;gap:.5rem;margin:.4rem 0 1rem}.inbox-input{flex:1;border-radius:10px;border:1px solid light-dark(#d5d9e0,#3a3d44);background:var(--card);color:inherit;font:inherit;padding:.55rem .9rem}.jobs{list-style:none;padding:0;margin:0 0 1rem;display:grid;gap:.3rem}.job{font-size:.9rem;color:var(--muted)}.job-status{display:inline-block;min-width:7.5em;font-weight:600;color:var(--accent)}.job-status.err,.job-err{color:#d44}.inbox-error{margin:-.5rem 0 1rem;font-size:.9rem}.shadow{display:grid;gap:.9rem;justify-items:start}.shadow-sentence{font-size:1.25rem;line-height:1.6;margin:0}.shadow-controls{display:flex;gap:.5rem;flex-wrap:wrap}.step.recording{background:#d44;color:#fff;animation:pulse 1.2s infinite}@keyframes pulse{50%{opacity:.6}}.shadow-nav{display:flex;gap:1rem;align-items:center;margin-top:.4rem}.topnav{display:flex;gap:.5rem;margin-bottom:1rem}.ecrire{display:grid;gap:.4rem;justify-items:start}.consigne{background:var(--card);border-radius:12px;padding:.9rem 1.1rem;font-size:1.05rem;margin:.2rem 0 .6rem;width:100%;box-sizing:border-box}.ecrire-input{min-height:10rem}.feedback{display:grid;gap:.5rem;width:100%}.feedback h2{font-size:1.05rem;margin:.8rem 0 0}.corrections{margin:0;padding-left:1.2rem;display:grid;gap:.35rem}.model-text{background:var(--card);border-radius:10px;padding:.8rem 1rem;margin:0;line-height:1.6}.coaching{font-weight:600;margin:.6rem 0 .4rem}.rhythm{width:100%;display:grid;gap:.4rem}.rhythm-svg{width:100%;height:90px;background:var(--card);border-radius:10px}.resume-card{display:grid;gap:.15rem;justify-items:start;width:100%;text-align:left;cursor:pointer;font:inherit;color:inherit;background:var(--card);border:1px solid var(--accent);border-radius:12px;padding:.8rem 1.1rem;margin:0 0 1.2rem}.resume-label{font-size:.75rem;font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:var(--accent)}.resume-title{font-weight:600}.resume-step{font-size:.9rem;color:var(--muted)}.level-group{margin:0 0 .8rem}.level-group summary{display:flex;gap:.8rem;align-items:baseline;cursor:pointer;padding:.4rem .2rem;font-size:1.05rem}.level-name{font-weight:700}.level-count{font-size:.85rem;color:var(--muted)}.dots{display:inline-flex;gap:4px;margin-top:.35rem}.dot{width:8px;height:8px;border-radius:50%;background:light-dark(#d5d9e0,#3a3d44)}.dot.done{background:var(--accent)}.review{display:grid;gap:1rem;justify-items:start;max-width:560px}.review-card{width:100%;background:var(--card);border-radius:14px;padding:1.6rem 1.4rem;display:grid;gap:.6rem;justify-items:start;cursor:pointer;min-height:9rem;align-content:start}.review-fr{font-size:1.5rem;font-weight:650;margin:0}.review-en{font-size:1.1rem;margin:0;color:var(--muted)}.review-grades{display:flex;gap:.5rem;flex-wrap:wrap}.grade-key{display:inline-block;font-size:.75rem;font-weight:700;border:1px solid currentColor;border-radius:4px;padding:0 .35em;margin-right:.35em;opacity:.7}.badge-new{color:var(--accent);font-weight:600}.pieges{margin-top:1.6rem;width:100%}.piege{margin:.5rem 0 .9rem}.piege-head{margin:0 0 .25rem}
