/* Atelier 2 : mêmes repères visuels que la visite des onze zones. */
html:has(.interface-ribbon){height:auto;min-height:100%;overflow:auto}
body.interface-ribbon{--u:8px!important;height:auto;min-height:100vh;overflow:visible;font-size:18px;line-height:1.5}
.interface-ribbon.th-clair{--bg:#edf3f7;--panel:#fff;--panel2:#f4f8fb;--ink:#142d45;--mut:#3a566b;--line:#c3d2dc;--or:#d99a15;--accent:#174b65;--vert:#126451;--viol:#245a90;--barbg:#edf3f7;--dim:rgba(16,30,46,.58)}
.interface-ribbon .app{min-height:100vh;height:auto;display:flex;flex-direction:column}
.interface-ribbon main{padding:0 18px 20px;flex:1}
.interface-ribbon .v{height:auto}
.interface-ribbon header .statut{display:none}
.interface-ribbon #bar{margin:14px 18px 12px;padding:14px 18px;min-height:70px;gap:12px;flex-wrap:wrap;border:1px solid var(--line);border-radius:12px;background:var(--panel);color:var(--ink);font:600 18px/1.45 "Segoe UI",Arial,sans-serif}
.interface-ribbon #bar #barText{flex:1 1 460px;color:var(--ink)}
.interface-ribbon #bar #barTag{font:800 14px/1.3 "Segoe UI",Arial,sans-serif;letter-spacing:.03em;padding:8px 10px;background:#ffca43;color:#142d45}
.interface-ribbon #bar.question #barTag{background:#dceafa;color:#174b65}
.interface-ribbon #bar.constat #barTag{background:#d7efe5;color:#126451}
.interface-ribbon #bar.erreur #barTag{background:#ffe3e3;color:#922b2b}
.interface-ribbon .caret{display:none}
.interface-ribbon :is(#barBtn,#barBtn2,.abtn,.navb,.sbtn,select){min-height:44px;border:1px solid var(--line);border-radius:10px;padding:9px 14px;font:700 16px/1.35 "Segoe UI",Arial,sans-serif;background:var(--panel);color:var(--ink);cursor:pointer}
.interface-ribbon :is(#barBtn,#btnNext){background:#ffca43;color:#142d45;border-color:#d99a15}
.interface-ribbon :is(button,a,select,[tabindex]):focus-visible{outline:3px solid #2c75b5;outline-offset:3px}
.interface-ribbon #v-intro.on{padding:22px 12px 12px;gap:18px;align-content:start;justify-items:stretch}
.interface-ribbon .hero{font-size:clamp(30px,2.6vw,44px);text-align:left;line-height:1.15;color:var(--ink)}
.interface-ribbon .hero .pt{color:#d99a15}
.interface-ribbon .herosub{font-size:20px;line-height:1.5;text-align:left;max-width:1050px}
.interface-ribbon #introThumb{max-width:none;border-radius:12px;background:#192a39;margin-top:10px}
.interface-ribbon .introGrid{max-width:none;gap:14px;grid-template-columns:repeat(4,minmax(0,1fr));margin-top:4px}
.interface-ribbon .icard{padding:20px;border:1px solid var(--line);border-top:4px solid #ffca43;border-radius:12px;box-shadow:none;gap:10px;background:var(--panel);justify-content:flex-start}
.interface-ribbon .icard b{font-size:16px;color:var(--accent)}
.interface-ribbon .icard p{font-size:18px;line-height:1.5;text-align:left}
.interface-ribbon .regle{font-size:18px;text-align:left;align-self:flex-start;padding:10px 0}
.interface-ribbon #v-stage.on{grid-template-columns:minmax(0,1fr);border:1px solid var(--line);border-radius:12px;overflow:hidden;background:var(--panel)}
.interface-ribbon .stage-wrap{height:clamp(260px,34vh,420px);background:#192a39}
.interface-ribbon.chasse-active .stage-wrap{height:clamp(240px,28vh,330px)}
.interface-ribbon .focus-box{border:3px solid #ffca43;border-radius:8px;box-shadow:0 0 0 200vmax rgba(5,17,30,.34)}
.interface-ribbon .focus-label{font-size:18px;padding:6px 12px;line-height:1.2;max-width:90vw;white-space:normal;background:#ffca43;color:#142d45}
.interface-ribbon .side{display:grid;grid-template-columns:minmax(200px,.8fr) minmax(0,1.6fr) minmax(210px,.7fr);gap:6px 24px;padding:20px 24px;border:0;border-top:1px solid var(--line);background:var(--panel)}
.interface-ribbon .sideTag{grid-column:1;font-size:14px;color:var(--accent);letter-spacing:.04em}
.interface-ribbon .side h2{grid-column:1;font-size:28px;line-height:1.2}
.interface-ribbon .side .subtitle{grid-column:1;font-size:18px;line-height:1.45}
.interface-ribbon #sBadge{display:none}
.interface-ribbon #sAtt{grid-column:2;grid-row:1/4;font-size:20px;font-style:normal;line-height:1.5;border-left:3px solid #dfaa2a;padding:8px 0 8px 20px;color:var(--mut)}
.interface-ribbon #sExp{display:none;opacity:1;grid-column:2;grid-row:1/4;font-size:20px;line-height:1.5;text-align:left;border-left:3px solid #dfaa2a;padding:8px 0 8px 20px}
.interface-ribbon #sExp.vu{display:block}
.interface-ribbon #sAtt:empty{display:none}
.interface-ribbon .autoRow{grid-column:3;grid-row:1/4;flex-wrap:wrap;align-content:start;align-items:center;gap:8px;margin:0;padding:0;border:0}
.interface-ribbon .autoRow button{width:100%;text-align:left}
.interface-ribbon .autoRow .lbl{font-size:16px}
.interface-ribbon .rail{grid-column:1/-1;display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:8px;margin-top:16px;overflow:visible}
.interface-ribbon .railT{grid-column:1/-1;font-size:14px;letter-spacing:.03em;margin:0 0 4px}
.interface-ribbon .ritem{min-height:48px;display:flex;font:600 16px/1.3 "Segoe UI",Arial,sans-serif;padding:8px 10px;text-align:left;border:1px solid var(--line);border-radius:9px;background:var(--panel2);color:var(--ink);box-shadow:none}
.interface-ribbon .ritem .p{width:25px;height:25px;font-size:13px;flex-shrink:0}
.interface-ribbon .ritem.ici{background:#fff4d4;border-color:#d99a15;color:#142d45;box-shadow:none}
.interface-ribbon .ritem:hover{background:var(--panel2);border-color:#d99a15}
.interface-ribbon .score{grid-column:2/4;grid-row:1/4;align-self:center;font-size:22px}
.interface-ribbon .score .found-count{color:var(--vert)}
.interface-ribbon .stage-wrap:has(#simWrap.on){height:clamp(460px,58vh,720px)}
.interface-ribbon #simWrap{background:var(--panel2);padding:16px}
.interface-ribbon .simcard{width:min(940px,100%);max-height:100%;border:1px solid #d99a15;border-radius:12px;box-shadow:none}
.interface-ribbon .simhead{font-size:18px;line-height:1.4;padding:12px 16px}
.interface-ribbon #simArea{padding:12px 16px;gap:12px}
.interface-ribbon #simArea svg{max-height:340px}
.interface-ribbon #simTemoin{background:var(--panel2);color:var(--ink);font-size:16px;padding:10px 16px;min-height:44px}
.interface-ribbon #v-retenir.on{grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);gap:18px;padding:8px 0}
.interface-ribbon :is(.colG,.colD){justify-content:flex-start;gap:18px}
.interface-ribbon .bloc{padding:22px;border:1px solid var(--line);border-radius:12px;background:var(--panel);box-shadow:none}
.interface-ribbon .bloc h3{font-size:20px;line-height:1.4;color:var(--accent)}
.interface-ribbon table{font-size:18px;line-height:1.45}
.interface-ribbon :is(th,td){padding:10px;font-size:17px}
.interface-ribbon th{background:#174b65;color:white}
.interface-ribbon .tstep{font-size:18px;line-height:1.5;text-align:left}
.interface-ribbon .tstep .n{width:32px;height:32px;font-size:16px;background:#ffca43}
.interface-ribbon #phraseBox{text-align:left;background:var(--panel2)}
.interface-ribbon #phrase{font-size:28px;line-height:1.3}
.interface-ribbon #phraseInfo{font-size:17px;line-height:1.5}
.interface-ribbon footer{position:sticky;bottom:0;z-index:12;grid-template-columns:auto 1fr auto;gap:12px;padding:12px 18px;background:var(--panel)!important;border:0;border-top:1px solid var(--line);border-image:none;box-shadow:0 -3px 16px rgba(19,45,65,.05)}
.interface-ribbon footer :is(.navb,.pos){color:var(--ink)}
.interface-ribbon footer .pos{display:none}
.interface-ribbon footer .midf{gap:8px}
.interface-ribbon .jalons{gap:6px;flex-wrap:wrap;justify-content:center}
.interface-ribbon .jal{font:700 14px/1.3 "Segoe UI",Arial,sans-serif;min-height:40px;padding:8px 12px;letter-spacing:0;background:var(--panel);border:1px solid var(--line);color:var(--mut)}
.interface-ribbon .jal.ici{background:#fff4d4;border-color:#d99a15;color:#142d45}
.interface-ribbon .hs:focus-visible{outline:4px solid #ffca43;outline-offset:-4px}
.interface-ribbon .hs{border:0;background:transparent;padding:0}
.interface-ribbon .app:fullscreen{overflow:auto;background:var(--bg)}
.interface-ribbon .app:fullscreen .stage-wrap{height:clamp(280px,40vh,480px)}
.interface-ribbon .app:fullscreen .stage-wrap:has(#simWrap.on){height:clamp(460px,58vh,720px)}
.interface-ribbon.th-contraste :is(.side,.stage-wrap,.icard,.bloc,#bar){background:#000;color:#fff;border-color:#fff}
.interface-ribbon.th-sombre :is(.side,.icard,.bloc){background:var(--panel)}
@media(max-width:1100px){.interface-ribbon .side{grid-template-columns:minmax(0,1fr) minmax(0,1.4fr)}.interface-ribbon .autoRow{grid-column:1/-1;grid-row:auto;justify-content:flex-end;margin-top:12px}.interface-ribbon .autoRow button{width:auto}.interface-ribbon .rail{grid-template-columns:repeat(4,minmax(0,1fr))}.interface-ribbon .score{grid-column:2}.interface-ribbon .introGrid{grid-template-columns:repeat(2,minmax(0,1fr))}.interface-ribbon #v-retenir.on{grid-template-columns:1fr}.interface-ribbon footer{grid-template-columns:1fr 1fr}.interface-ribbon footer .midf{grid-column:1/-1;grid-row:1}.interface-ribbon footer>div:last-child{justify-content:flex-end}.interface-ribbon header .hbtns{flex-wrap:wrap}}
@media(max-width:650px){.interface-ribbon main{padding:0 8px 12px}.interface-ribbon #bar{margin:8px;padding:12px;font-size:17px}.interface-ribbon #bar #barText{flex-basis:100%}.interface-ribbon #v-intro.on{padding:16px 8px;gap:14px}.interface-ribbon .herosub{font-size:18px}.interface-ribbon .introGrid{grid-template-columns:1fr}.interface-ribbon .icard{padding:16px}.interface-ribbon .side{display:flex;flex-direction:column;padding:16px;gap:10px}.interface-ribbon .side h2{font-size:25px}.interface-ribbon :is(#sExp,#sAtt){font-size:18px}.interface-ribbon .rail{grid-template-columns:repeat(2,minmax(0,1fr));gap:6px;width:100%;margin-top:10px}.interface-ribbon .ritem{font-size:14px}.interface-ribbon .autoRow{justify-content:flex-start}.interface-ribbon .autoRow button{width:100%}.interface-ribbon .stage-wrap{height:260px}.interface-ribbon #simWrap{padding:8px}.interface-ribbon .simhead{font-size:16px}.interface-ribbon #simArea{padding:8px}.interface-ribbon .bloc{padding:14px}.interface-ribbon :is(th,td){font-size:14px;padding:6px}.interface-ribbon footer{padding:8px;gap:8px}.interface-ribbon .jal{font-size:13px;padding:6px 8px}.interface-ribbon .navb{font-size:15px;padding:8px 10px}.interface-ribbon header .hbtns{margin-left:64px}.interface-ribbon .simrow{gap:6px}}
@media(prefers-reduced-motion:reduce){.interface-ribbon *{transition:none!important;animation:none!important}}
/* Neutralise les anciennes règles du thème clair, plus spécifiques. */
body.interface-ribbon #bar:is(.consigne,.question,.constat,.erreur) #barText{color:var(--ink)}
body.interface-ribbon #bar.constat #barTag{background:#d7efe5;color:#126451}
body.interface-ribbon #bar #barBtn{color:#142d45}
body.interface-ribbon.th-clair :is(.side,.icard,.bloc){background:var(--panel);box-shadow:none}
body.interface-ribbon.th-clair .icard{border-top-color:#ffca43}
@media(max-width:650px){.interface-ribbon header .hbtns{flex:1 1 auto;max-width:calc(100% - 64px);gap:6px}}
/* Lecture confortable à distance et gestes explicités pour une première utilisation. */
.interface-ribbon #bar{padding:20px 24px;align-items:flex-start;gap:16px;font-size:clamp(24px,1.45vw,44px);line-height:1.4}
.interface-ribbon .bar-message{flex:1 1 620px;min-width:0}
.interface-ribbon #bar #barTag{font-size:clamp(16px,.8vw,24px);padding:10px 14px}
.interface-ribbon #barHint{margin:10px 0 0;font-size:clamp(18px,1vw,30px);font-weight:400;line-height:1.45;color:var(--mut)}
.interface-ribbon #barHint:empty{display:none}
.interface-ribbon :is(#barBtn,#barBtn2,.abtn,.navb,.sbtn,select){font-size:clamp(18px,1vw,28px);min-height:50px;padding:12px 16px}
.interface-ribbon .side{padding:clamp(22px,1.5vw,40px);gap:12px 30px}
.interface-ribbon .side h2{font-size:clamp(30px,1.6vw,46px)}
.interface-ribbon .sideTag{font-size:clamp(16px,.85vw,25px)}
.interface-ribbon .side .subtitle{font-size:clamp(20px,1.1vw,32px)}
.interface-ribbon :is(#sExp,#sAtt){font-size:clamp(22px,1.2vw,36px);line-height:1.5}
.interface-ribbon .rail{gap:12px}
.interface-ribbon .railT{font-size:clamp(16px,.8vw,24px)}
.interface-ribbon .ritem{font-size:clamp(18px,1vw,28px);min-height:58px;padding:12px}
.interface-ribbon .ritem .p{width:30px;height:30px;font-size:16px}
.interface-ribbon .autoRow .lbl{font-size:18px}
.interface-ribbon .focus-label{font-size:clamp(22px,1.3vw,38px)}
.interface-ribbon .simhead{font-size:clamp(20px,1.2vw,34px)}
.interface-ribbon #simTemoin{font-size:clamp(18px,1vw,28px)}
.interface-ribbon .hunt-choices{grid-column:1/-1;display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:12px;margin-top:8px}
.interface-ribbon .hunt-choice{font:750 clamp(20px,1.15vw,34px)/1.3 "Segoe UI",Arial,sans-serif;min-height:72px;padding:16px 18px;background:var(--panel2);color:var(--ink);border:2px solid var(--line);border-radius:12px;text-align:left;cursor:pointer}
.interface-ribbon .hunt-choice:hover:not(:disabled){border-color:#b27a09;background:#fff4d4;color:#142d45}
.interface-ribbon .hunt-choice.correct-choice{border-color:#126451;background:#d7efe5;color:#0d483a;opacity:1}
.interface-ribbon .hunt-choice:disabled{cursor:default;opacity:.7}
.interface-ribbon #mRail{grid-template-columns:repeat(8,minmax(0,1fr));gap:8px}
.interface-ribbon #mRail .ritem{min-height:48px;font-size:clamp(16px,.85vw,24px);cursor:default}
.interface-ribbon .score{font-size:clamp(24px,1.3vw,38px)}
.interface-ribbon #btnNext.help-action{background:var(--panel);color:var(--mut);border-color:var(--line)}
.interface-ribbon .jal{font-size:clamp(16px,.8vw,23px)}
.interface-ribbon .stage-wrap{height:clamp(260px,28vh,500px)}
.interface-ribbon.chasse-active .stage-wrap{height:clamp(220px,23vh,420px)}
@media(max-width:1100px){.interface-ribbon .hunt-choices{grid-template-columns:repeat(3,minmax(0,1fr))}.interface-ribbon #mRail{grid-template-columns:repeat(4,minmax(0,1fr))}.interface-ribbon .rail{grid-template-columns:repeat(3,minmax(0,1fr))}.interface-ribbon .side{gap:12px 18px}.interface-ribbon #bar{font-size:24px}}
@media(max-width:650px){.interface-ribbon #bar{padding:14px;font-size:22px;gap:10px}.interface-ribbon .bar-message{flex-basis:100%}.interface-ribbon #barHint{font-size:18px}.interface-ribbon .side{padding:16px}.interface-ribbon :is(#sExp,#sAtt){font-size:20px}.interface-ribbon .side h2{font-size:28px}.interface-ribbon .hunt-choices{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.interface-ribbon .hunt-choice{font-size:18px;padding:12px;min-height:68px}.interface-ribbon .rail{grid-template-columns:repeat(2,minmax(0,1fr))}.interface-ribbon #mRail{grid-template-columns:repeat(2,minmax(0,1fr))}.interface-ribbon .ritem{font-size:17px;padding:10px}.interface-ribbon footer .navb{font-size:16px;padding:10px}.interface-ribbon .jal{font-size:14px}.interface-ribbon .stage-wrap:has(#simWrap.on){height:520px}}
.interface-ribbon .compact-picker{display:none}
/* Exercice des onglets : de vraies commandes nommées, sans cases vides. */
.interface-ribbon .simcard:has(.home-tab-exercise){width:min(1320px,100%)}
.interface-ribbon .home-tab-exercise{display:flex;flex-direction:column;gap:10px;min-width:0;font:400 16px/1.35 "Segoe UI",Arial,sans-serif}
.interface-ribbon .home-tab-progress{display:flex;justify-content:space-between;gap:8px;flex-wrap:wrap;color:var(--mut)}
.interface-ribbon .home-tab-progress strong{color:var(--ink)}
.interface-ribbon .home-tab-tabs{display:flex;gap:6px;border-bottom:3px solid #e2ae23}
.interface-ribbon .home-tab-tabs .sbtn{border-radius:8px 8px 0 0;min-height:44px;padding:8px 18px;font-size:18px}
.interface-ribbon #simArea .home-tab-tabs .sbtn[aria-selected="true"]{background:#ffca43;color:#142d45;border-color:#e2ae23}
.interface-ribbon #home-ribbon{display:grid;gap:8px;min-width:0}
.interface-ribbon .home-tab-heading{font-size:17px;font-weight:750;color:var(--ink)}
.interface-ribbon .home-tab-panels{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
.interface-ribbon .home-tab-panel{display:flex;flex-direction:column;gap:6px;padding:10px;background:var(--panel2);border:1px solid var(--line);border-radius:8px;min-width:0}
.interface-ribbon .home-tab-panel h3{font-size:16px;line-height:1.35;margin:0 0 2px;color:var(--ink)}
.interface-ribbon .home-tab-tool{display:flex;align-items:baseline;justify-content:space-between;gap:8px;flex-wrap:wrap;width:100%;min-height:44px;padding:8px 10px;text-align:left;border:1px solid var(--line);border-radius:6px;background:var(--panel);color:var(--ink);font:400 16px/1.35 "Segoe UI",Arial,sans-serif;cursor:pointer}
.interface-ribbon .home-tab-tool strong{font-size:18px}
.interface-ribbon .home-tab-tool span{color:var(--mut)}
.interface-ribbon .home-tab-tool:hover:not(:disabled){border-color:#d99a15;background:#fff4d4;color:#142d45}
.interface-ribbon .home-tab-tool:disabled{cursor:default;opacity:.7}
.interface-ribbon .home-tab-note{color:var(--mut);font-size:14px}
.interface-ribbon #simArea .home-tab-next{align-self:flex-start;background:#ffca43;color:#142d45;font-size:16px;min-height:44px;padding:8px 14px}
.interface-ribbon .home-tab-next[hidden]{display:none}
.interface-ribbon .simcard:has(.home-tab-exercise) #simTemoin{font-family:"Segoe UI",Arial,sans-serif;line-height:1.4}
.interface-ribbon .simcard:has(.home-tab-exercise) #simTemoin[data-home-feedback="error"]{background:#fff0eb;color:#842a13}
.interface-ribbon .simcard:has(.home-tab-exercise) #simTemoin[data-home-feedback="success"]{background:#e2f3ea;color:#14533e}
.interface-ribbon.in-stage:has(#simWrap.on .home-tab-exercise) .side{display:none}
@media(min-width:1100px) and (min-height:650px){.interface-ribbon.in-stage:has(#simWrap.on .home-tab-exercise) #v-stage.on{grid-template-rows:minmax(150px,1fr)}}
@media(min-width:1700px){.interface-ribbon .home-tab-exercise{font-size:18px;gap:14px}.interface-ribbon .home-tab-tool{padding:12px;font-size:18px}.interface-ribbon .home-tab-tool strong{font-size:22px}.interface-ribbon .home-tab-panel h3{font-size:18px}.interface-ribbon .home-tab-tabs .sbtn{font-size:22px}.interface-ribbon .home-tab-heading{font-size:20px}}
@media(max-width:650px){.interface-ribbon .home-tab-panels{grid-template-columns:1fr}.interface-ribbon .home-tab-tabs .sbtn{padding:8px 12px;font-size:17px}.interface-ribbon .home-tab-progress span{font-size:14px}.interface-ribbon .stage-wrap:has(.home-tab-exercise){height:760px}.interface-ribbon .simcard:has(.home-tab-exercise){height:100%;max-height:100%}.interface-ribbon #simArea:has(.home-tab-exercise){flex:1}.interface-ribbon .home-tab-progress{position:sticky;top:0;background:var(--panel);padding:4px 0;z-index:1}}
/* Sur ordinateur, image, consigne, annotation et navigation partagent le même écran. */
@media(min-width:1100px) and (min-height:650px){
 .interface-ribbon.in-stage .app{height:100dvh;min-height:0}
 .interface-ribbon.in-stage main{min-height:0;display:flex;padding-bottom:12px}
 .interface-ribbon #v-stage.on{flex:1;min-height:0;grid-template-rows:minmax(150px,1fr) auto}
 .interface-ribbon.in-stage .stage-wrap,.interface-ribbon.in-stage .app:fullscreen .stage-wrap{height:auto;min-height:0}
 .interface-ribbon.in-stage footer{position:relative;flex:none}
 .interface-ribbon.in-stage .side{min-height:0}
 .interface-ribbon #simWrap{padding:8px}
 .interface-ribbon .simcard{height:100%;max-height:100%}
 .interface-ribbon #simArea{flex:1;min-height:0;overflow:auto}
 .interface-ribbon #simArea svg{min-height:80px;flex:1 1 0;max-height:100%;width:100%}
 .interface-ribbon .simhead,.interface-ribbon #simTemoin,.interface-ribbon .simrow{flex:none}
}
@media(min-width:1100px) and (max-height:1150px){
 .interface-ribbon #sRail{display:none}
 .interface-ribbon .compact-picker{display:grid;font-size:16px;width:100%;gap:4px}
 .interface-ribbon .compact-picker select{max-width:100%;width:100%;font-size:16px;padding:8px;min-height:42px}
 .interface-ribbon .side{grid-template-columns:minmax(210px,.85fr) minmax(0,1.5fr) minmax(250px,.8fr);padding:16px 20px;gap:8px 22px}
 .interface-ribbon #bar{padding:14px 18px;margin:10px 18px}
 .interface-ribbon .autoRow{gap:6px}
 .interface-ribbon #mRail{display:none}
 .interface-ribbon .hunt-choice{min-height:58px;padding:10px 14px}
 .interface-ribbon .hunt-choices{gap:8px}
 .interface-ribbon .simhead{padding:8px 12px;font-size:18px}
 .interface-ribbon #simTemoin{padding:7px 12px;font-size:16px}
}
