:root{font-family:ui-rounded,"Trebuchet MS",system-ui,-apple-system,sans-serif;color:#15334a;background:#f6faf6;font-size:17px;line-height:1.52}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;min-width:300px}
button,input,select{font:inherit}
button{cursor:pointer}
button:disabled{cursor:not-allowed;opacity:.45}
a{color:inherit}
a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,summary:focus-visible{outline:3px solid #d99b23;outline-offset:3px}
[hidden]{display:none!important}
.skip{position:absolute;left:10px;top:-150px;padding:9px;background:#fff;z-index:30}
.skip:focus{top:10px}
.topbar{max-width:1180px;margin:auto;padding:16px 23px;display:flex;justify-content:space-between;align-items:center;gap:10px}
.brand{display:flex;align-items:center;gap:10px;text-decoration:none;font-size:16px;font-weight:750;line-height:1.08}
.brand strong{color:#18734d}
.brand small{display:block;font-size:11px;font-weight:650;color:#5b6c73;margin-top:3px}
.brand-panda{display:grid;place-items:center;width:48px;height:48px;border-radius:15px;background:#e4f1de;font-size:29px}
.back{font-size:13px;font-weight:750;text-decoration:none;background:#fff;border:1px solid #dce7de;padding:9px 14px;border-radius:40px}
.back:hover{background:#eaf5e8}
.shell{max-width:1130px;margin:auto;padding:12px 22px 45px}
.intro{position:relative;display:grid;grid-template-columns:minmax(0,1fr) 220px;align-items:center;gap:20px;background:linear-gradient(120deg,#dff3e2,#eaf8f9 85%);border:1px solid #c8e5d5;border-radius:30px;padding:27px 43px;overflow:hidden}
.eyebrow{font-size:11px;letter-spacing:.115em;font-weight:850;color:#247357;display:inline-block}
.intro h1{font-size:clamp(31px,4.1vw,47px);letter-spacing:-1.8px;line-height:1.12;margin:7px 0 15px}
.intro h1 em{font-style:normal;color:#25835c}
.intro p{font-size:15px;max-width:620px;margin:0;color:#3b5c63;line-height:1.6}
.intro-art{width:185px;height:170px;position:relative;justify-self:center;display:grid;place-items:center}
.panda-portrait{width:133px;height:133px;border:8px solid #fdf9e9;border-radius:50%;background:#bee8d8;display:grid;place-items:center;font-size:78px;box-shadow:0 12px 22px #194e3924}
.float-symbol{position:absolute;display:grid;place-items:center;border-radius:16px;font-weight:950;font-size:27px;box-shadow:0 4px 14px #2b544029}
.sym-plus{left:-6px;top:9px;color:#176ab0;background:#fff}
.sym-minus{right:-3px;bottom:14px;color:#d17b27;background:#fff1d1}
.small-bamboo{position:absolute;right:2px;top:0;color:#36895a;letter-spacing:4px}
.section-heading{display:flex;justify-content:space-between;align-items:end;gap:20px;margin:26px 0 15px}
.section-heading h2,.history-head h2{font-size:24px;letter-spacing:-.6px;margin:4px 0}
.quiet-tag{font-size:12px;color:#547066;background:#e8f3e9;border-radius:30px;padding:7px 11px;font-weight:700}
.mode-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.mode-card{position:relative;display:flex;gap:16px;padding:24px;background:#fff;border:2px solid #d6eadb;border-radius:24px;box-shadow:0 5px 18px #164b3510}
.practice-mode{background:#fffaf1;border-color:#f0e2c5}
.mode-icon{display:grid;place-items:center;background:#e5f5e6;color:#27784d;border-radius:18px;width:62px;height:62px;flex:0 0 62px;font-size:37px;font-weight:900}
.practice-mode .mode-icon{background:#f8e7bb;color:#98671d}
.mode-content{min-width:0;display:flex;flex-direction:column;align-items:start;flex:1}
.mode-content h3{font-size:25px;letter-spacing:-.8px;line-height:1.2;margin:5px 0 10px}
.mode-content>p{color:#52706b;font-size:14px;line-height:1.55;margin:0 0 14px}
.mode-pills{display:flex;gap:7px;flex-wrap:wrap;margin:auto 0 18px}
.mode-pills span{background:#eaf4ee;color:#316b4b;border-radius:25px;padding:5px 10px;font-size:11px;font-weight:800}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:46px;border-radius:14px;border:2px solid transparent;padding:10px 19px;text-align:center;font-size:14px;font-weight:800;line-height:1.3;transition:background .15s,transform .15s}
.btn:not(:disabled):hover{transform:translateY(-1px)}
.primary{background:#217f58;color:white;box-shadow:0 4px 0 #176143}
.primary:hover{background:#186a49}
.secondary{background:#fff5dc;border-color:#dfbe7d;color:#785016}
.secondary:hover{background:#ffebbc}
.ghost{background:#fff;border-color:#d5e3dd;color:#2b5650}
.ghost:hover{background:#f0f7f2}
.btn.small{min-height:38px;padding:8px 12px;font-size:12px;border-radius:10px}
.topic-label{display:block;margin-top:auto;font-weight:800;font-size:12px;color:#604d34}
.mode-content select{min-height:45px;width:100%;border-radius:12px;background:white;border:1.5px solid #d9cba9;color:#283b3e;padding:8px 11px;margin:5px 0 15px}
.history-card{margin-top:18px;padding:20px 25px 17px;border:1px solid #dceadf;border-radius:24px;background:white}
.history-head{display:flex;justify-content:space-between;align-items:center}
.history-head h2{font-size:20px}
.history-star{font-size:29px;color:#d4a032}
.history{margin-top:10px}
.history-empty{border-radius:15px;padding:17px;background:#f3f8f4;color:#526761;font-size:14px}
.history-row{display:flex;align-items:center;gap:12px;border-top:1px solid #e4ece6;padding:10px 0;font-size:13px}
.history-row strong{font-size:19px;color:#237c58;min-width:70px}
.history-row span{color:#627778}
.history-row em{font-style:normal;margin-left:auto;color:#4d7970;font-weight:800}
.history-best{padding:10px 0;font-weight:800;color:#2d7758}
.storage-note{margin:10px 0 0;color:#71847e;font-size:11px}
.resume-card{margin-top:18px;background:#e7f5e6;border:1px solid #cde6cf;border-radius:17px;padding:16px 19px;display:flex;justify-content:space-between;align-items:center;gap:14px}
.resume-card strong{font-size:17px}
.resume-card p{font-size:13px;color:#566b63;margin:4px 0 0}
.resume-actions{display:flex;flex-wrap:wrap;gap:8px}
.session-meta{display:flex;justify-content:space-between;align-items:center;gap:10px;margin:26px 0 10px}
.session-kind{font-size:13px;color:#21795b;font-weight:850}
.question-counter{font-size:13px;color:#536f70;font-weight:800}
.meter{background:#e2ece9;border-radius:30px;height:10px;overflow:hidden}
.meter span{display:block;width:0;height:100%;background:#2e9776;border-radius:30px;transition:width .2s}
.question-card{padding:31px 40px 32px;margin-top:17px;background:#fff;border:1px solid #dce8e1;border-radius:25px;box-shadow:0 8px 30px #184c3810}
.question-meta{display:flex;align-items:center;flex-wrap:wrap;gap:8px}
.skill-pill{padding:6px 10px;background:#e7f4e8;color:#237353;border-radius:20px;font-size:11px;font-weight:850}
.points-pill{font-size:12px;font-weight:850;margin-left:auto;color:#9b6519;background:#fff4d9;padding:6px 11px;border-radius:20px}
.question-card h2{font-size:clamp(20px,2.7vw,29px);letter-spacing:-.5px;line-height:1.42;margin:19px 0 20px;max-width:760px;font-weight:850}
.question-tip{background:#f5f8f7;border-left:4px solid #73a899;border-radius:4px 12px 12px 4px;padding:10px 14px;font-size:13px;color:#4c6964;margin:0 0 21px}
.answer-title{font-size:13px;color:#48655d;font-weight:800;margin:15px 0 8px}
.choice-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.choice{min-height:58px;border:2px solid #dbe6df;border-radius:14px;background:#fbfdfb;text-align:left;padding:12px 17px;color:#213e42;font-size:16px;font-weight:750}
.choice.selected{background:#e7f5eb;border-color:#238056;box-shadow:inset 0 0 0 1px #238056}
.choice:hover{border-color:#85ae9a}
.choice:disabled{opacity:1}
.number-input{width:230px;max-width:100%;min-height:60px;border-radius:14px;border:2px solid #bedbd0;padding:10px 16px;color:#153c3d;background:#fff;font-weight:850;font-size:25px;font-variant-numeric:tabular-nums}
.number-input:disabled{background:#f1f4f1;color:#596d67}
.number-unit{font-size:14px;font-weight:700;color:#627473;margin-left:10px}
.pose-wrap{max-width:385px;margin:12px auto 8px;text-align:center}
.pose-wrap .instruction{font-size:12px;font-weight:750;color:#516f6a;margin-bottom:11px}
.pose-table{margin:0 auto;border-collapse:separate;border-spacing:4px 3px;table-layout:fixed;font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-variant-numeric:tabular-nums}
.pose-table th{color:#62807e;font-size:13px;font-weight:800}
.pose-table th,.pose-table td{width:51px;height:54px;text-align:center}
.pose-table .symbol{width:29px;font-size:30px;font-weight:800;color:#237f59}
.pose-table .num{border:1px solid #dfebe5;border-radius:9px;background:#f9fcfa;font-size:30px;font-weight:800;color:#1f4c47}
.pose-table .result-digit{border-top:3px solid #3d6b63;padding-top:9px}
.digit{border:2px solid #bddbcf;border-radius:10px;width:48px;height:54px;font-size:28px;text-align:center;color:#225947;background:white;font-weight:850;outline-offset:1px}
.digit:disabled{background:#eff5f1;color:#31514a}
.pose-note{margin:11px auto 0;font-size:12px;color:#617977;max-width:350px}
.problem-options{display:flex;gap:10px;flex-wrap:wrap}
.op-btn{border:2px solid #dae6df;border-radius:15px;min-height:53px;background:white;padding:9px 15px;color:#254c43;font-weight:850;display:flex;align-items:center;gap:8px}
.op-btn strong{font-size:25px}
.op-btn.selected{background:#eaf7eb;border-color:#21865d}
.op-btn:disabled{opacity:1}
.jumps{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin:10px 0 20px}
.jump{display:grid;gap:4px;min-width:85px;background:#ecf8f1;border:1px solid #d1e7d9;padding:9px 13px;border-radius:13px;text-align:center}
.jump .jump-step{font-size:13px;color:#28734c;font-weight:850}
.jump strong{font-size:17px}
.jump-arrow{color:#7b9588;font-weight:900;font-size:21px}
.answer-feedback{margin:17px 0 10px;border:1px solid #c8e6d3;background:#eaf8ee;border-radius:20px;padding:18px 22px;color:#265d45}
.answer-feedback.mistake{background:#fff6e8;border-color:#ebd8b4;color:#785123}
.answer-feedback strong{display:block;font-size:18px;margin-bottom:5px}
.answer-feedback p{font-size:13px;line-height:1.6;margin:9px 0}
.session-bottom{display:flex;justify-content:space-between;align-items:center;gap:8px;margin:17px 0 4px}
.answered-counter{font-size:11px;text-align:center;color:#627876;font-weight:750}
.session-bottom .btn{min-width:135px}
.session-message{min-height:19px;font-size:13px;color:#a34730;text-align:center;margin:8px 0}
.text-link{display:block;margin:20px auto 8px;border:0;background:transparent;color:#537a70;text-decoration:underline;text-underline-offset:4px;font-weight:750;font-size:12px;padding:8px}
.missing-notice{padding:18px;border:2px solid #e4c98f;border-radius:16px;background:#fff8e7;margin-top:17px}
.missing-notice p{margin:0 0 12px;font-weight:800;color:#75541c;font-size:14px}
.session-buttons{display:flex;flex-wrap:wrap;gap:10px}
.results{margin-top:24px}
.results-hero{padding:30px;border-radius:25px;background:linear-gradient(120deg,#dff2df,#e5f4f0);text-align:center;border:1px solid #c8e5d3}
.results-hero h2{font-size:28px;margin:8px 0}
.results-hero p{color:#40665a;margin:10px auto;max-width:600px}
.result-score{font-size:64px;line-height:1.12;font-weight:900;color:#197250;letter-spacing:-3px}
.result-score small{font-size:29px;letter-spacing:0}
.result-actions{display:flex;flex-wrap:wrap;justify-content:center;gap:9px;margin-top:20px}
.result-panel{background:#fff;border:1px solid #dce9e1;border-radius:22px;padding:21px 25px;margin-top:15px}
.result-panel h3{font-size:20px;margin:0 0 15px}
.skill-row{display:grid;grid-template-columns:minmax(170px,1fr) 65px 170px;align-items:center;gap:12px;margin:10px 0;font-size:14px}
.skill-score{font-weight:850;text-align:right;color:#315e55}
.skill-bar{background:#e6eeeb;border-radius:20px;height:9px;overflow:hidden}
.skill-bar i{display:block;height:100%;background:#52aa7e;border-radius:20px}
.advice{color:#42635b;font-size:14px}
.advice li{margin:7px 0}
.review details{border-top:1px solid #e1ebe6;padding:13px 0}
.review details summary{cursor:pointer;font-weight:800;color:#294e46;font-size:14px}
.review details p{margin:7px 0;font-size:13px;color:#4c635e;line-height:1.6}
.review .check-ok{color:#258155}
.review .check-bad{color:#b46c31}
.review .review-score{margin-left:9px;color:#597c72;font-weight:700;font-size:12px}
.no-script{padding:20px;background:#fff4dd;border-radius:14px;margin:20px 0}
footer{padding:19px;text-align:center;color:#82918a;font-size:12px;border-top:1px solid #e6ece6}
@media(max-width:820px){.intro{padding:25px 27px;grid-template-columns:minmax(0,1fr) 160px}
.intro-art{transform:scale(.83)}
.mode-card{padding:18px;gap:11px}
.mode-icon{width:45px;height:45px;flex-basis:45px;font-size:26px}
.mode-content h3{font-size:22px}
.skill-row{grid-template-columns:minmax(150px,1fr) 55px 90px}}
@media(max-width:650px){.topbar{padding:11px 13px}
.back{font-size:11px;padding:8px 9px}
.brand{font-size:12px}
.brand-panda{width:42px;height:42px;font-size:25px}
.brand small{font-size:10px}
.shell{padding:7px 12px 30px}
.intro{grid-template-columns:minmax(0,1fr) 100px;gap:0;padding:21px 14px;border-radius:20px}
.intro h1{font-size:30px;letter-spacing:-1px}
.intro p{font-size:12px}
.intro-art{transform:scale(.66);transform-origin:center}
.eyebrow{font-size:10px}
.section-heading h2{font-size:23px}
.quiet-tag{font-size:10px}
.mode-grid{grid-template-columns:1fr;gap:12px}
.mode-card{border-radius:19px;padding:17px}
.mode-pills{margin-top:5px}
.mode-content>p{font-size:13px}
.history-card{padding:17px;border-radius:19px}
.resume-card{align-items:start;flex-direction:column}
.question-card{border-radius:20px;padding:22px 14px 24px}
.question-card h2{font-size:21px;margin:16px 0}
.choice-list{grid-template-columns:1fr;gap:8px}
.choice{min-height:52px;padding:10px 12px;font-size:15px}
.pose-table{border-spacing:2px 3px}
.pose-table th,.pose-table td{width:48px;height:49px}
.pose-table .num{font-size:27px}
.digit{width:43px;height:49px;font-size:24px}
.pose-table .symbol{width:24px;font-size:23px}
.session-bottom .btn{min-width:100px;font-size:12px;padding:8px 10px}
.session-bottom .answered-counter{font-size:10px}
.result-panel{padding:19px 16px}
.result-score{font-size:53px}
.skill-row{grid-template-columns:minmax(100px,1fr) 48px 55px;gap:8px;font-size:12px}
.result-actions .btn{width:100%}
.session-buttons .btn{width:100%}}
@media(max-width:355px){.intro-art{display:none}
.intro{grid-template-columns:1fr}
.pose-table th,.pose-table td{width:44px}
.digit{width:39px}
.session-bottom{flex-wrap:wrap;justify-content:space-between}
.answered-counter{order:3;flex-basis:100%}}
@media print{body{background:#fff}
.topbar,.intro,#home,#session,.result-actions,.text-link,footer{display:none!important}
.shell{max-width:none;padding:0}
.results{margin:0}
.results-hero{padding:15px}
.result-panel{break-inside:avoid}
.review details{break-inside:avoid}
.review details:not([open])>*:not(summary){display:block}}


/* Carnet des parents : historique détaillé et corrections réutilisables. */
.header-links{display:flex;align-items:center;gap:9px;flex-wrap:wrap}
.top-parent{min-height:40px;padding:8px 15px;border:1.5px solid #90c4ae;border-radius:40px;background:#e7f5e9;color:#1e7450;font-size:13px;font-weight:850}
.top-parent:hover{background:#d9eedf}
.history-intro{font-size:14px;color:#546e63;margin:4px 0 19px;max-width:740px}
.history-insights{margin-bottom:11px}
.history-summary{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin:12px 0 15px}
.history-summary>div{display:flex;flex-direction:column;gap:3px;padding:14px 17px;border:1px solid #d4e9dc;border-radius:15px;background:#f3faf4}
.history-summary strong{font-size:23px;color:#216c4f;line-height:1.25}
.history-summary span{font-size:12px;font-weight:750;color:#57746a}
.diagnostic{padding:16px 18px;margin:11px 0;border:1px solid #f1dfa9;border-radius:15px;background:#fffbf0}
.diagnostic>strong{color:#735620;font-size:15px}
.diagnostic p{font-size:12px;color:#735f3d;line-height:1.5;margin:4px 0 10px}
.diagnostic-items{display:flex;flex-wrap:wrap;gap:7px}
.diagnostic-items span{padding:7px 10px;border-radius:10px;background:white;font-size:12px;color:#6c5430;border:1px solid #e8dcbd}
.diagnostic-items b{white-space:nowrap;margin-left:5px;color:#85591f}
.diagnostic.all-clear{background:#eef8ef;border-color:#cde9d3;color:#286c4c}
.history-entry{display:grid;grid-template-columns:128px minmax(0,1fr) auto;align-items:center;gap:13px;padding:14px 3px;border-top:1px solid #e4eee6}
.history-score{display:flex;flex-direction:column;gap:1px}
.history-score strong{font-size:22px;color:#1d7651}
.history-score small{font-size:14px;font-weight:750}
.history-score span{font-size:11px;color:#677d74}
.history-entry-copy{display:flex;flex-direction:column;gap:2px}
.history-entry-copy strong{font-size:14px;color:#334f45}
.history-entry-copy span,.history-no-copy{font-size:11px;color:#728479}
.history-no-copy{max-width:128px;text-align:right}
.history-legacy-note{background:#fff7e8;border:1px solid #efd9a9;color:#795d32;font-size:13px;border-radius:13px;padding:13px 16px}
.history-more{margin-top:13px}
.archived-date{font-size:13px!important;color:#496c62!important;font-weight:750}
.review-header{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap;margin-bottom:12px}
.review-header h3{margin:0}
.review-header .storage-note{margin:7px 0 0}
.review-header button[aria-pressed=true]{color:white;background:#27845c;border-color:#27845c}
.review .explain-title{background:#f0f8f3;border-radius:10px;padding:10px 13px;color:#2d5e49}
.review .parent-coaching{border-left:4px solid #d9aa53;background:#fffbf2;border-radius:0 10px 10px 0;padding:9px 13px;color:#765b28}
.save-warning{border:1px solid #dcad62;border-radius:13px;background:#fff5dc;color:#8e5113!important;padding:14px;font-size:13px!important;font-weight:750}
@media(max-width:750px){
 .history-entry{grid-template-columns:110px minmax(0,1fr);gap:8px}
 .history-entry .btn,.history-no-copy{grid-column:2;justify-self:start;margin:4px 0 0}
}
@media(max-width:650px){
 .topbar{flex-wrap:wrap}
 .header-links{width:100%;justify-content:space-between;gap:7px}
 .top-parent{font-size:12px;min-height:39px}
 .history-summary{gap:5px}
 .history-summary>div{padding:11px 8px}
 .history-summary strong{font-size:19px}
 .history-summary span{font-size:10px}
 .history-card{padding:15px}
 .history-intro{font-size:13px}
 .history-entry{grid-template-columns:95px minmax(0,1fr)}
 .history-score strong{font-size:20px}
 .history-score span{font-size:10px}
 .history-entry-copy strong{font-size:12px}
 .history-entry-copy span{font-size:11px}
 .history-entry .btn{min-height:38px}
 .diagnostic{padding:13px}
 .review-header button{width:100%}
}
@media print{
 .top-parent,.header-links,.review-header button,.save-warning{display:none!important}
 .review details{display:block!important}
 .review details>summary{padding:0 0 5px}
 .review .parent-coaching,.review .explain-title{background:#fff;color:#333}
}

/* Aide aux calculs posés : distinguer la colonne erronée dans le corrigé. */
.parent-next{display:block;margin-top:8px}
.history-export{margin:13px 0 0 9px}
.work-comparison{max-width:100%;overflow-x:auto;margin:13px 0;padding:13px 15px;border:1px solid #cce3d6;background:#f8fcf9;border-radius:15px}
.work-comparison>p{margin:0 0 9px;color:#41665a;font-size:12px}
.correction-table{border-collapse:separate;border-spacing:3px;width:auto;max-width:100%;font-variant-numeric:tabular-nums}
.correction-table th,.correction-table td{padding:6px 10px;border:1px solid #dcebe2;text-align:center;font-family:ui-monospace,monospace;font-size:15px;border-radius:5px}
.correction-table thead th{background:#e7f1eb;color:#4d7161;font-size:12px}
.correction-table tbody th{font:750 12px ui-rounded,system-ui,sans-serif;color:#3f6655}
.correction-table .operation-sign{border:0;color:#286b50;font-weight:850}
.correction-table .wrong-cell{background:#ffe5de;border:2px solid #d57a62;color:#9d361f;font-weight:900}
.correction-table .right-cell{background:#dff4e8;border:2px solid #79b99b;color:#166541;font-weight:900}
@media(max-width:650px){.history-export{margin-left:0}.correction-table th,.correction-table td{padding:5px 7px;font-size:13px}.work-comparison{padding:10px}}
@media print{.work-comparison{background:#fff;break-inside:avoid}.correction-table .wrong-cell{color:#802f20;border-color:#a5695d}.correction-table .right-cell{color:#14513a;border-color:#558e70}}
