/* Présentation de la maquette validée, limitée à la page entraînement. */

:root{--dark:var(--encre);--darker:#102f37;--teal:#2e6767;--ochre:#be8650;--paper:var(--fond);--ivory:var(--surface);--sand:#f0e5d4;--line:#e3d7c4;--muted:#687771;--good:#347758;--bad:#a95442;--shadow:0 15px 36px rgba(31,48,44,.065)}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--paper);color:var(--dark);font:15px/1.5 -apple-system,BlinkMacSystemFont,'Segoe UI',Arial,sans-serif}button,a{font:inherit}button{cursor:pointer}button:focus-visible,a:focus-visible{outline:3px solid #cf9a56;outline-offset:4px}button:disabled{cursor:not-allowed;opacity:.6}h1,h2,h3,p{margin-top:0}h1,h2,.serif{font-family:Georgia,'Times New Roman',serif;letter-spacing:-.035em}h1{font-size:clamp(37px,5vw,64px);font-weight:600;line-height:1.07;margin:16px 0 15px;max-width:740px}h2{font-size:clamp(26px,3vw,40px);line-height:1.18;font-weight:600;margin-bottom:12px}h3{font-size:18px;margin-bottom:8px}p{line-height:1.7;color:#586b65}.overline{font-weight:850;letter-spacing:.15em;text-transform:uppercase;color:#a67843;font-size:11px}.overline:before{content:'';display:inline-block;vertical-align:middle;margin-right:9px;width:18px;height:2px;background:#c28e58}.muted{color:var(--muted)}.fine{font-size:12px}.top{background:var(--dark);color:#fff9ec}.topbar{max-width:1160px;margin:auto;padding:16px 30px;min-height:80px;display:flex;justify-content:space-between;align-items:center;gap:18px}.logo{display:flex;gap:13px;align-items:center}.mark{width:37px;height:37px;border:2px solid #e0a769;border-radius:8px;transform:rotate(45deg);display:grid;place-items:center;flex-shrink:0}.mark:after{content:'';width:13px;height:13px;border:2px solid #e0a769;border-radius:2px}.brandname{font-size:24px;font-weight:850;letter-spacing:-.045em;line-height:1}.brandsub{font-size:10px;letter-spacing:.13em;text-transform:uppercase;color:#dac5a7;margin-top:4px}.nav{display:flex;align-items:center;gap:21px}.nav button,.nav a{color:#f9f1df;border:0;background:transparent;font-size:13px;font-weight:750;text-decoration:none;padding:10px 3px}.nav a{color:#c7d4d0}.nav .current{color:#f4bf7f}.stripe{height:5px;background:repeating-linear-gradient(90deg,#d6a166 0 24px,#f1d4ac 24px 30px,#315e5b 30px 50px,#c48354 50px 60px)}
.container{max-width:1160px;margin:0 auto;padding:46px 30px 65px}.view{display:none}.view.active{display:block;animation:appear .17s ease-out}@keyframes appear{from{opacity:.55;transform:translateY(3px)}to{opacity:1;transform:translateY(0)}}.intro{display:grid;grid-template-columns:1fr .92fr;gap:58px;align-items:center}.intro .lead{max-width:550px;font-size:16px}.intro h1 em{font-style:normal;color:#ad7647}.actions{display:flex;gap:11px;flex-wrap:wrap;align-items:center;margin-top:22px}.btn{border:0;padding:13px 19px;min-height:48px;border-radius:11px;font-weight:800;font-size:14px;display:inline-flex;align-items:center;gap:10px;justify-content:center;text-decoration:none}.btn.primary{background:var(--dark);color:#fff9ef}.btn.outline{background:var(--ivory);color:var(--dark);border:1px solid #dbcbb3}.btn.ghost{background:#efe5d6;color:#654e35}.btn.light{background:#fffaf1;color:var(--dark)}.btn:hover{filter:brightness(.97)}.btn:active{transform:translateY(1px)}.note{font-size:12px;color:#718078;margin-top:15px}.preview{background:#fffaf1;border:1px solid #e1d2b9;border-radius:19px;box-shadow:0 20px 42px #192c2d15;padding:15px;transform:rotate(1deg)}.preview-head{display:flex;justify-content:space-between;align-items:center;padding:11px 10px 15px;border-bottom:1px solid #e8dcc8;font-size:12px;font-weight:800}.small-chip{font-size:11px;font-weight:750;border-radius:99px;background:#f1e4cc;padding:6px 10px;color:#916438;white-space:nowrap}.demo-map{height:288px;display:grid;place-items:center;position:relative;overflow:hidden;background:radial-gradient(circle,#f7eddc 5%,#fff9ee 75%);border-radius:12px;margin-top:12px}.demo-map:before,.figure-area:before{content:'';position:absolute;inset:0;background-image:linear-gradient(#665c3b0b 1px,transparent 1px),linear-gradient(90deg,#665c3b0b 1px,transparent 1px);background-size:31px 31px}.shape{width:85%;max-width:430px;height:90%;filter:drop-shadow(0 14px 12px rgba(43,70,65,.13));position:relative;z-index:1}.shape path{fill:#315d57;stroke:#204a4a;stroke-width:2}.shape .edge{fill:none;stroke:#c99b62;stroke-width:1.7;stroke-dasharray:4 6}.preview-bottom{padding:14px 9px 6px;display:flex;gap:12px;justify-content:space-between;color:#6b766e;font-size:11px}.three{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;margin-top:42px}.point{border-top:1px solid #d9ceb9;padding-top:17px}.point span{font-size:11px;color:#ac7944;font-weight:900}.point strong{display:block;margin:6px 0}.point p{font-size:12px;margin:0}.setup{margin-top:42px;background:var(--ivory);border:1px solid var(--line);border-radius:17px;padding:27px 28px;box-shadow:var(--shadow)}.setup-header{display:flex;gap:20px;justify-content:space-between;align-items:start}.setup p{margin-bottom:0}.region-row{display:flex;flex-wrap:wrap;gap:9px;margin:21px 0 0}.region{background:#f7f0e4;border:1px solid #ddceb8;color:#445f57;border-radius:10px;padding:11px 15px;font-size:13px;font-weight:750}.region[aria-pressed='true']{background:var(--dark);border-color:var(--dark);color:white}.set-foot{border-top:1px solid #ebdfcb;margin-top:21px;padding-top:18px;display:flex;align-items:center;justify-content:space-between;gap:15px}.set-foot p{font-size:12px;margin:0}.card{border:1px solid var(--line);background:var(--ivory);border-radius:16px;box-shadow:var(--shadow)}.play-title{display:flex;justify-content:space-between;align-items:end;gap:18px;margin-bottom:25px}.play-title h1{font-size:clamp(28px,3.5vw,44px);margin:9px 0 0}.progress-detail{font-size:12px;font-weight:750;color:#835a34;text-align:right}.progressbar{height:7px;background:#e7ddce;border-radius:99px;overflow:hidden;margin-top:9px;min-width:145px}.progressbar span{height:100%;display:block;background:#c08a55;width:0;transition:width .2s}.playgrid{display:grid;grid-template-columns:1.1fr .9fr;gap:20px;align-items:stretch}.visual{overflow:hidden;display:flex;flex-direction:column}.visual-top{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:17px 21px;border-bottom:1px solid #ede1d0;font-size:12px;font-weight:800}.figure-area{position:relative;min-height:346px;background:radial-gradient(circle,#f7e9d3 2%,#fffaf1 76%);display:grid;place-items:center;overflow:hidden}.figure-area svg{position:relative;z-index:1;display:block;width:min(86%,450px);max-height:320px;filter:drop-shadow(0 14px 12px rgba(43,70,65,.13))}.compass{position:absolute;top:17px;right:17px;border-radius:50%;height:34px;width:34px;display:grid;place-items:center;border:1px solid #d7c2a4;background:#fff9ed;color:#95703f;z-index:3;font-family:Georgia,serif}.figure-foot{display:flex;gap:12px;justify-content:space-between;align-items:center;padding:14px 20px;font-size:12px;color:#6e7770;border-top:1px solid #ebdfcd}.answercard{padding:23px}.answercard h2{font-size:29px;margin:9px 0 9px}.answercard .sub{font-size:13px;margin-bottom:17px}.choices{display:grid;grid-template-columns:1fr 1fr;gap:10px}.choice{background:#fbf6ec;text-align:left;padding:15px 15px;min-height:69px;border-radius:11px;border:1px solid #ddd0bd;color:var(--dark);font-weight:790;font-size:14px;line-height:1.3}.choice small{display:block;font-weight:600;font-size:11px;color:#8c8a7a;margin-top:5px}.choice:hover:not(:disabled){background:#f1e5d3;border-color:#c69b67}.choice.correct{background:#e8f2e9;border-color:#6caa80;color:#256346}.choice.wrong{background:#f8e5df;border-color:#cb8675;color:#913e38}.choice:disabled{opacity:1}.hint{margin-top:18px;padding:14px 15px;background:#f5ead9;border:1px solid #e9d9c0;border-radius:11px}.hint strong{font-size:12px}.hint p{font-size:12px;margin:4px 0 0}.hint button{background:transparent;color:#8c5f31;border:0;padding:3px 0;font-size:12px;font-weight:850;text-decoration:underline;text-underline-offset:3px}.hint .revealed{color:#2e654f;font-weight:750}.skip{background:none;border:0;padding:10px 0;color:#6e7468;text-decoration:underline;text-underline-offset:3px;font-weight:650;font-size:12px;margin-top:8px}.result{margin-top:15px;border-radius:13px;padding:17px 18px;border:1px solid #e4d5bb;background:#f8f1e3}.result.good{border-color:#c3dcc8;background:#eef5ee}.result.bad{border-color:#e4c2af;background:#fff1e9}.result h3{font-size:17px;margin-bottom:5px}.result p{font-size:13px;margin:0}.result .large{font-size:20px;font-family:Georgia,serif;color:var(--dark);margin:9px 0 5px}.result .buttons{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-top:17px;flex-wrap:wrap}.result button{min-width:140px}.guide{background:#f2e7d6;border:1px solid #dfcdb2;padding:17px 20px;margin-top:17px;border-radius:13px;display:flex;align-items:center;justify-content:space-between;gap:20px}.guide strong{font-size:13px}.guide p{margin:3px 0 0;font-size:12px}.guide .guide-right{white-space:nowrap;font-size:12px;font-weight:750;color:#557167}.summary-head{text-align:center;max-width:680px;margin:0 auto 30px}.summary-head h1{max-width:none}.summary-head p{margin:0 auto;max-width:570px}.score-strip{display:grid;grid-template-columns:repeat(3,1fr);gap:15px;margin-bottom:24px}.stat{padding:20px}.stat b{font:normal 36px Georgia,serif;display:block;line-height:1.15}.stat span{font-size:12px;color:#6d766e}.review{padding:21px}.review-list{display:grid;grid-template-columns:1fr 1fr;gap:9px;margin:15px 0 0}.review-item{border-radius:10px;border:1px solid #e7dac4;padding:12px 14px;background:#faf6ee;display:flex;justify-content:space-between;align-items:center;gap:8px}.review-item strong{font-size:14px}.review-item small{font-size:11px;color:#748078;display:block;margin-top:3px}.review-item em{font-size:11px;font-weight:800;font-style:normal;color:#8a5f36}.review-item em.ok{color:#337354}.summary-actions{display:flex;justify-content:center;gap:10px;flex-wrap:wrap;margin-top:24px}.footer{border-top:1px solid #e0d1b9;margin-top:40px;padding-top:20px;display:flex;gap:16px;align-items:center;justify-content:space-between;color:#728078;font-size:11px}.demo-note{background:#e6dbca;color:#6a5640;text-align:center;padding:8px 14px;font-size:11px;border-bottom:1px solid #d8c5aa}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
@media(max-width:850px){.intro{grid-template-columns:1fr;gap:28px}.intro .preview{max-width:530px;transform:none}.playgrid{grid-template-columns:1fr}.play-title{align-items:start}.figure-area{min-height:305px}.guide{margin-top:12px}}
@media(max-width:550px){.topbar{padding:13px 19px;min-height:67px}.brandname{font-size:21px}.brandsub{font-size:9px}.mark{width:31px;height:31px}.nav{gap:10px}.nav button,.nav a{font-size:11px}.nav a{display:inline}.container{padding:28px 17px 45px}h1{font-size:clamp(36px,10vw,44px)}.intro{gap:20px}.intro .lead{font-size:14px}.three{grid-template-columns:1fr;gap:13px;margin-top:25px}.point{padding-top:12px}.preview{padding:10px}.demo-map{height:230px}.setup{margin-top:27px;padding:20px 17px}.setup-header,.set-foot{display:block}.set-foot .btn{width:100%;margin-top:15px}.region-row{gap:7px}.region{padding:10px 12px;font-size:12px}.play-title{margin-bottom:16px}.play-title h1{font-size:31px}.progressbar{min-width:92px}.visual-top{padding:13px 15px}.figure-area{min-height:210px}.figure-area svg{max-height:192px}.figure-foot{padding:11px 15px}.answercard{padding:17px}.answercard h2{font-size:26px}.answercard .sub{margin-bottom:13px}.choice{padding:12px 11px;min-height:63px;font-size:13px}.hint{margin-top:13px}.guide{padding:13px 14px}.guide-right{display:none}.score-strip{gap:7px}.stat{padding:13px}.stat b{font-size:29px}.stat span{font-size:10px}.review{padding:16px}.review-list{grid-template-columns:1fr}.summary-head h1{font-size:38px}.footer{display:block}.footer span{display:block;margin-bottom:7px}}
@media(max-width:340px){.nav button,.nav a{font-size:10px}.brandsub{display:none}.topbar{padding-left:12px;padding-right:12px}.container{padding-left:12px;padding-right:12px}.choices{gap:7px}.choice{padding:11px 8px;font-size:12px}.progress-detail{font-size:11px}.figure-area{min-height:215px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{animation:none!important;transition:none!important}}

/* Intégration aux composants et aux données réels de Taddart 2.1. */
.brand{text-decoration:none}.nav-actions a{color:var(--sur-email);text-decoration:none;font-size:13px;font-weight:750;min-height:44px;display:flex;align-items:center}.nav-actions [aria-current=page]{color:#f4bf7f}
.container{max-width:1180px;min-width:0}.mode-entrainement h1{overflow-wrap:anywhere;text-wrap:balance}.mode-entrainement h2{overflow-wrap:anywhere}.mode-entrainement .intro{grid-template-columns:minmax(0,1fr) minmax(0,.92fr)}
.mode-entrainement .intro>div{min-width:0}.mode-entrainement .lead{max-width:550px}.preview{transform:none}.demo-map svg{width:94%;height:94%;position:relative;fill:#315d57;stroke:#204a4a;stroke-width:1.2;stroke-linejoin:round}
.figure-area{height:346px;min-height:0}.figure-area svg{width:88%;height:88%;max-height:none}.figure-area path{fill:#315d57;stroke:#244a4b;stroke-width:1.4;stroke-linejoin:round;vector-effect:non-scaling-stroke}
.figure-foot{flex-wrap:wrap;font-size:11px}.figure-foot .echelle{color:var(--encre-2)}.playgrid{grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr);align-items:start}.play-title h1{max-width:760px}
.answercard{min-width:0}.choices{grid-template-columns:repeat(2,minmax(0,1fr))}.choice{min-width:0;overflow-wrap:anywhere}.choice small{color:#6b6256}.choice.correct small,.choice.wrong small{color:inherit}.choice .etat-choix{display:block;font-size:12px;margin-top:7px}
.hint button{min-height:44px;padding:8px 0}.hint .revealed{margin-top:8px}.skip{min-height:44px}.result .large{overflow-wrap:anywhere}.result .buttons .btn{min-width:0}.result dl{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:14px 0}.result dl div{min-width:0}.result dt{font-size:10px;color:#52695f}.result dd{margin:2px 0 0;font-size:12px;overflow-wrap:anywhere;font-weight:650}.result .source-note{margin-top:12px;font-size:10px;line-height:1.5}
.train-message{margin:0 0 18px;padding:12px 15px;border-radius:10px;background:#f2e5d1;border:1px solid var(--bordure-forte);font-size:13px;color:var(--encre)}.train-message:empty{display:none}.train-progression{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-top:24px}.train-progression .stat b{font-size:30px}.train-reprise{padding:18px 20px;margin-top:22px;display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap}.train-reprise p{margin:0;font-size:13px}.train-reprise .actions{margin:0}.score-strip{grid-template-columns:repeat(3,minmax(0,1fr))}.score-strip .stat{min-width:0}.score-strip .stat b{overflow-wrap:anywhere}.review-list{grid-template-columns:repeat(2,minmax(0,1fr))}.review-item{min-width:0}.review-item>div{min-width:0}.review-item strong,.review-item small{overflow-wrap:anywhere}.review-item em{flex:none}.region{min-height:44px}.region-row{margin-left:0;padding:0;border:0}.set-foot .btn{min-width:0}.region:focus-visible{outline:3px solid var(--ocre-texte);outline-offset:3px}.footer a{color:inherit}.train-attente{padding:30px;max-width:650px}.train-attente p{margin-bottom:0}
@media(max-width:850px){.mode-entrainement .intro,.playgrid{grid-template-columns:1fr}.figure-area{height:305px}.mode-entrainement .intro .preview{max-width:none}.review-list{grid-template-columns:1fr}}
@media(max-width:550px){.container{padding:24px 16px 38px}.nav-actions{gap:9px}.nav-actions a,.nav-actions button{font-size:11px}.mode-entrainement .brand-subtitle{max-width:120px}.play-title{flex-wrap:wrap;gap:12px}.progress-detail{text-align:left;flex:1 1 120px}.progressbar{width:100%;min-width:0}.figure-area{height:210px}.figure-area svg{max-height:none}.figure-foot{padding:10px 14px}.train-progression{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.train-progression .stat b{font-size:27px}.score-strip{grid-template-columns:1fr}.score-strip .stat{display:flex;align-items:center;gap:14px}.score-strip .stat span{font-size:12px}.score-strip .stat b{font-size:30px}.train-reprise{padding:16px}.train-reprise .actions{width:100%}.train-reprise .btn{flex:1}.result .buttons{align-items:stretch}.result .buttons .btn{width:100%}.review-item{align-items:flex-start}.guide{display:block}.mode-entrainement .brand-emblem{margin-left:4px}.mode-entrainement .nav-shell{gap:12px}.summary-head h1{font-size:34px}.result dl{grid-template-columns:1fr}.preview-head{flex-wrap:wrap;gap:10px}}
@media(max-width:359px){.choices{grid-template-columns:1fr}.mode-entrainement .nav-shell{padding:12px}.mode-entrainement .brand-name{font-size:20px}.mode-entrainement .brand-subtitle{display:none}.mode-entrainement .nav-actions{gap:7px}.mode-entrainement .nav-actions a{font-size:10px}}
/* Contrastes des petits textes et retours à la ligne avec texte agrandi. */
.overline,.point span{color:var(--ocre-texte)}.note,.muted,.review-item small{color:var(--doux)}.footer{color:#5f695f}.small-chip{white-space:normal}.play-title>div{min-width:0}.stat span{color:#5f695f}.btn{overflow-wrap:anywhere}.progress-detail{min-width:0}.choices{grid-template-columns:repeat(2,minmax(min(100%,10em),1fr))}
@media(max-width:359px){.choices{grid-template-columns:1fr}}
.choices{display:flex;flex-wrap:wrap}.choice{flex:1 1 calc(50% - 5px);min-width:min(100%,12ch)}
@media(max-width:359px){.choice{flex-basis:100%}}
.mode-entrainement h1:focus,.mode-entrainement h2:focus{outline:none}
.progress-detail{width:145px;max-width:100%}.progressbar{min-width:0;width:100%}
.hint .revealed:focus{outline:none}
.mode-entrainement button:focus-visible,.mode-entrainement a:focus-visible{outline:3px solid var(--ocre-texte);outline-offset:4px}
.mode-entrainement h1,.mode-entrainement h2{hyphens:none;word-break:normal;overflow-wrap:normal}
@media(max-width:550px){.play-title h1{font-size:clamp(26px,7.5vw,31px)}}

/* Garder les mots des titres entiers, y compris à 320 px avec texte doublé. */
@media(max-width:550px){.intro h1{font-size:clamp(28px,8.8vw,44px)}.summary-head h1{font-size:clamp(28px,8.8vw,38px)}.setup h2,.review h2{font-size:clamp(21px,6.5vw,30px)}}
/* Le statut passe sous le nom quand le texte agrandi exige davantage de place. */
.review-item{flex-wrap:wrap}.review-item>div{flex:1 1 12ch}
