/* V78 — Composants partagés. Les noms historiques sont l'API publique CSS.
   Les compositions d'écrans restent dans paddock.css. */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--ui-space-2);min-height:var(--ui-control-height);padding:14px var(--ui-space-6);border:var(--ui-border-width) solid transparent;border-radius:var(--ui-radius-md);background:var(--ui-action);color:#160a02;font:700 var(--ui-type-button)/1.3 var(--display);letter-spacing:.055em;text-transform:uppercase;white-space:normal;cursor:pointer;touch-action:manipulation;user-select:none;box-shadow:var(--ui-shadow-flat);transition:background-color var(--ui-duration-fast) var(--ui-easing),border-color var(--ui-duration-fast) var(--ui-easing);}
.btn.pleine{width:100%;}
.btn.secondaire{background:var(--ui-surface-2);color:var(--ui-text);border-color:var(--ui-border);}
/* Compatibilité : or/vert n'imposent plus une couleur de contexte à une action. */
.btn.or,.btn.vert{background:var(--ui-action);color:#160a02;}
.btn:active:not(:disabled):not([aria-busy="true"]){filter:brightness(.92);transform:none;}
.btn:disabled{background:var(--ui-surface-1);color:var(--ui-muted);border-color:var(--ui-border);cursor:not-allowed;opacity:1;pointer-events:auto;box-shadow:none;filter:none;}
.btn[aria-busy="true"]{cursor:progress;}
.btn[aria-busy="true"]::after{content:'…';margin-left:var(--ui-space-2);}
@media(hover:hover) and (pointer:fine){.btn:hover:not(:disabled):not([aria-busy="true"]){background:var(--ui-action-hover);}.btn.secondaire:hover:not(:disabled):not([aria-busy="true"]){background:var(--ui-surface-3);border-color:var(--ui-muted);}}
.btn:focus-visible,.choix:focus-visible,.offre:focus-visible,.onglet:focus-visible,summary:focus-visible,.saisie:focus-visible{outline:3px solid var(--ui-preparation);outline-offset:4px;}
h1.titre{font-size:var(--ui-type-hero);line-height:var(--ui-leading-title);}
h2.titre{font-size:var(--ui-type-page);line-height:var(--ui-leading-title);}
h3{font-size:var(--ui-type-section);line-height:1.2;letter-spacing:.025em;}
.choix .titre-choix{font-size:var(--ui-type-card);}
.chapo,.recit{font-size:var(--ui-type-body);line-height:var(--ui-leading-body);}
.choix .desc,.offre-surnom,.offre-rumeur{font-size:var(--ui-type-secondary);line-height:var(--ui-leading-body);}
.champ-label,.eyebrow{font-size:var(--ui-type-label);}
.mini,.pastille,.choix .tag,.effet{font-size:var(--ui-type-badge);}
.panneau,.chiffre,.choix,.offre,.repli{border-radius:var(--ui-radius-md);border-color:var(--ui-border);}
.chiffre{background:var(--ui-surface-1);padding:var(--ui-space-4);}
.chiffre b{font-variant-numeric:tabular-nums;}.chiffre span{font-size:var(--ui-type-label);}
.choix,.offre{padding:var(--ui-space-5);}
.choix,.offre,.onglet{transition:background-color var(--ui-duration-fast) var(--ui-easing),border-color var(--ui-duration-fast) var(--ui-easing);}
.choix:active:not(:disabled),.offre:active:not(:disabled){border-color:var(--ui-action);background:var(--ui-surface-3);transform:none;}
.financement73 .choix .desc{font-size:var(--ui-type-secondary);}
.radio69{border-left-color:var(--ui-preparation);padding:var(--ui-space-4) var(--ui-space-5);border-radius:0 var(--ui-radius-md) var(--ui-radius-md) 0;}
.radio69>span,.choix-reglage69 summary{color:var(--ui-preparation);}
.repere76{border-radius:var(--ui-radius-lg);}
.repere76.phase76-finance{--phase76:var(--ui-finance);}.repere76.phase76-preparation{--phase76:var(--ui-preparation);}.repere76.phase76-resultat{--phase76:var(--ui-reward);}
.pastille,.effet{border-radius:var(--ui-radius-pill);}
.jauge{height:6px;background:var(--ui-surface-3);border-radius:var(--ui-radius-pill);}
.jauge i{background:var(--ui-positive);box-shadow:none;transition:width var(--ui-duration-screen) var(--ui-easing);}
progress{accent-color:var(--ui-positive);max-width:100%;}
.onglets{gap:var(--ui-space-2);padding:var(--ui-space-2);scrollbar-width:thin;}
.onglets::-webkit-scrollbar{display:block;height:4px;}
.onglet{min-height:var(--ui-touch-min);border-radius:var(--ui-radius-md);font-size:var(--ui-type-secondary);}
.onglet.actif{background:var(--ui-surface-2);color:var(--ui-text);border-color:var(--ui-action);box-shadow:inset 0 -2px var(--ui-action);}
.onglet:active{transform:none;}.onglet:disabled{opacity:1;cursor:not-allowed;color:var(--ui-muted);}
.repli>summary,.question-contexte>summary,.choix-reglage69>summary{min-height:var(--ui-touch-min);font-size:var(--ui-type-secondary);}
.saisie{font-size:var(--ui-type-body);min-height:var(--ui-control-height);border-radius:var(--ui-radius-md);transition:border-color var(--ui-duration-fast) var(--ui-easing);}
.saisie:disabled{color:var(--ui-muted);cursor:not-allowed;}.saisie[aria-invalid="true"]{border-color:var(--ui-negative);}
table.tour{font-size:var(--ui-type-secondary);table-layout:auto;}table.tour th{font-size:var(--ui-type-label);}table.tour td{overflow-wrap:anywhere;}table.tour .pts{font-variant-numeric:tabular-nums;}
.effet.pos{color:var(--ui-positive);}.effet.neg{color:var(--ui-negative);}
.ecran{animation-duration:var(--ui-duration-screen);}
@media(max-width:640px){.choix,.offre{padding:var(--ui-space-4);}.choix .titre-choix{font-size:20px;}table.tour{font-size:12px;}table.tour th,table.tour td{padding:8px 4px;}.btn{padding-inline:var(--ui-space-4);}}
@media(prefers-reduced-motion:reduce){.ecran,.btn,.choix,.offre,.jauge i,.onglet,.saisie{animation:none;transition:none;}}
body.mouvement-reduit .ecran,body.mouvement-reduit .btn,body.mouvement-reduit .choix,body.mouvement-reduit .offre,body.mouvement-reduit .jauge i{animation:none;transition:none;}
/* V80 — Affordances et retours visuels, sur les états et durées existants. */
.interaction80{display:block;margin-top:var(--ui-space-3);font:600 var(--ui-type-label)/1.5 var(--texte);color:var(--ui-muted);}
[data-interaction="ouvrir"] .interaction80{color:var(--ui-preparation);}
[data-interaction="decision"] .interaction80{color:var(--ui-action-hover);}
.ecran details>summary{display:flex;align-items:center;justify-content:space-between;gap:var(--ui-space-3);min-height:var(--ui-touch-min);padding:var(--ui-space-3);list-style:none;cursor:pointer;border-radius:var(--ui-radius-sm);transition:background-color var(--ui-duration-fast) var(--ui-easing);}
.ecran details>summary::-webkit-details-marker{display:none;}
.ecran details>summary::after{content:'›';flex:0 0 auto;color:var(--ui-muted);font:600 22px/1 var(--texte);transform:rotate(0);transition:transform var(--ui-duration-fast) var(--ui-easing);}
.ecran details[open]>summary::after{transform:rotate(90deg);color:var(--ui-action);}
.ecran details[open]>summary{background:var(--ui-surface-2);}
.ecran details[open]>:not(summary){animation:ouvrir80 var(--ui-duration-screen) var(--ui-easing);}
@keyframes ouvrir80{from{opacity:.65}to{opacity:1}}
.ecran details>summary:active{background:var(--ui-surface-3);}
@media(hover:hover) and (pointer:fine){
 .ecran details>summary:hover{background:var(--ui-surface-2);}
 .onglet:hover:not(:disabled){border-color:var(--ui-muted);}
 .article:hover:not(:disabled):not(.bloque){border-color:var(--ui-action);box-shadow:none;}
}
.parcours79 .choix.urgent:active:not(:disabled),.choix[data-reglage]:active:not(:disabled),.destination-card:active:not(:disabled),.article:active:not(:disabled):not(.bloque){background:var(--ui-surface-3);border-color:var(--ui-action);transform:none;box-shadow:none;}
.geste-action[aria-pressed="true"]{background:var(--ui-action-hover);box-shadow:inset 0 0 0 2px var(--ui-text);}
.confort69 button[aria-pressed="true"]{border-color:var(--ui-action);background:var(--ui-surface-3);}
.article.bloque:disabled{opacity:1;color:var(--ui-muted);background:var(--ui-surface-1);cursor:not-allowed;pointer-events:auto;box-shadow:none;transform:none;}
.article.bloque:disabled .prix{color:var(--ui-muted);}
.retour-etape,.lien{min-height:var(--ui-touch-min);}
.dialogue80{width:min(520px,calc(100% - 32px));max-height:calc(100dvh - 32px);overflow:auto;padding:var(--ui-space-6);border:1px solid var(--ui-border);border-radius:var(--ui-radius-lg);background:var(--ui-surface-1);color:var(--ui-text);box-shadow:var(--ui-shadow-raised);font-family:var(--texte);}
.dialogue80::backdrop{background:#0009;}
.dialogue80 .titre{font:900 var(--ui-type-page)/var(--ui-leading-title) var(--display);margin:0 0 var(--ui-space-4);}
.dialogue80 p{line-height:var(--ui-leading-body);color:var(--ui-muted);}
.dialogue80 #confirmer80{border-color:var(--ui-negative);}
@media(max-width:520px){.dialogue80 .actions{flex-direction:column;}.dialogue80 .actions .btn{width:100%;}}
@media(prefers-reduced-motion:reduce){.ecran details[open]>:not(summary){animation:none;}.ecran details>summary::after{transition:none;}}
body.mouvement-reduit .ecran details[open]>:not(summary){animation:none;}body.mouvement-reduit .ecran details>summary::after{transition:none;}
/* V81 — Composition business, exclusivement sur les composants existants. */
main:has(>.business81){max-width:1100px;}
.business81 .grille,.business81 .sponsors73{grid-template-columns:repeat(2,minmax(0,1fr));align-items:stretch;gap:var(--ui-space-4);}
.contrat81{display:flex;flex-direction:column;gap:var(--ui-space-3);min-width:0;text-align:left;}
.contrat81 .offre-haut{width:100%;flex-wrap:wrap;}
.contrat81 .offre-ecurie{overflow-wrap:anywhere;}
.contrat81 .offre-cat{color:var(--ui-muted);}
.contrat-ligne81{display:flex;justify-content:space-between;align-items:baseline;gap:var(--ui-space-4);width:100%;padding-bottom:var(--ui-space-2);border-bottom:1px solid var(--ui-border);font:400 var(--ui-type-secondary)/var(--ui-leading-body) var(--texte);}
.contrat-ligne81>span{color:var(--ui-muted);}
.contrat-ligne81>b{text-align:right;min-width:0;overflow-wrap:anywhere;}
.contrat-ligne81 small{font-size:inherit;font-weight:400;}
.contrat-fin81{display:flex;flex-direction:column;gap:var(--ui-space-2);width:100%;padding:var(--ui-space-4);background:var(--ui-surface-2);border-radius:var(--ui-radius-sm);font:400 var(--ui-type-secondary)/var(--ui-leading-body) var(--texte);}
.contrat-fin81 strong{font:700 clamp(22px,3vw,30px)/1.2 var(--display);font-variant-numeric:tabular-nums;}
.contrat81 .interaction80{margin-top:auto;padding-top:var(--ui-space-3);color:var(--ui-text);}
.contrat81 .offre-rumeur{margin:0;line-height:var(--ui-leading-body);}
.resume-fin81{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.5fr);gap:var(--ui-space-5);border-top:3px solid var(--ui-finance);}
.apport81{display:flex;flex-direction:column;align-items:flex-start;gap:var(--ui-space-3);}
.apport81>strong{font:800 clamp(36px,5vw,52px)/1.1 var(--display);font-variant-numeric:tabular-nums;}
.apport81>span:first-child,.ressources81 span,.garanti81>span,.prime81>span{font:400 var(--ui-type-secondary)/var(--ui-leading-body) var(--texte);color:var(--ui-muted);}
.ressources81{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--ui-space-4);}
.ressources81>div{display:flex;flex-direction:column;gap:var(--ui-space-2);}
.ressources81 b{font:600 22px/1.3 var(--display);font-variant-numeric:tabular-nums;}
.couverture81,.resume-fin81>p{grid-column:1/-1;margin:0;}
.couverture81>span{font:400 var(--ui-type-secondary)/var(--ui-leading-body) var(--texte);}
.contrat-programme81{margin-top:var(--ui-space-4);}
.business81 .sponsor81{height:100%;align-items:stretch;}
.sponsor81>.corps{display:flex;flex-direction:column;min-width:0;width:100%;}
.sponsor81 .titre-choix{overflow-wrap:anywhere;}
.sponsor81 .selection77{margin:var(--ui-space-2) 0 var(--ui-space-4);}
.garanti81{display:flex;flex-direction:column;gap:var(--ui-space-1);border-top:1px solid var(--ui-border);padding-top:var(--ui-space-3);}
.garanti81 strong{font:800 32px/1.2 var(--display);font-variant-numeric:tabular-nums;color:var(--ui-text);}
.prime81{display:flex;justify-content:space-between;flex-wrap:wrap;gap:var(--ui-space-2);padding:var(--ui-space-3) 0;border-bottom:1px solid var(--ui-border);}
.prime81>b{color:var(--ui-finance);font-variant-numeric:tabular-nums;}
.sponsor81 .tag{margin-top:var(--ui-space-4);}
.business81 .fin-l{flex-wrap:wrap;}
.business81 .fin-l b{white-space:normal;}
.business81 .negatif{color:var(--ui-negative);}
.business81 .conditions81{margin-bottom:var(--ui-space-5);}
.business81 .conditions81 p{line-height:var(--ui-leading-body);color:var(--ui-muted);}
@media(max-width:640px){
 .business81 .grille,.business81 .sponsors73,.resume-fin81{grid-template-columns:minmax(0,1fr);}
 .business81 .panneau{padding:var(--ui-space-4);}
 .ressources81{gap:var(--ui-space-4) var(--ui-space-3);}
 .contrat-ligne81{gap:var(--ui-space-3);}
 .contrat-fin81{padding:var(--ui-space-3);}
 .apport81>strong{font-size:40px;}
}
/* V82 — Préparation, bilan et progression : compositions locales. */
main:has(>.saison82){max-width:1000px;}
.saison82 .equipe82{border-left:3px solid var(--ui-preparation);margin-bottom:var(--ui-space-5);}
.saison82 .equipe82 .offre-ecurie{font-size:var(--ui-type-page);overflow-wrap:anywhere;}
.saison82 .developpement82,.saison82 .progression82,.saison82 .finances82{margin:var(--ui-space-6) 0;padding-top:var(--ui-space-4);border-top:1px solid var(--ui-border);}
.saison82 .progression82{border-top-color:var(--ui-positive);}
.saison82 .finances82{border-top-color:var(--ui-finance);}
.saison82 .ovr-bloc{margin-top:0!important;}
.saison82 .ovr-cotes{min-width:0;}
.saison82 .ovr-cotes b,.saison82 .chiffre b{overflow-wrap:anywhere;}
.saison82 .repli{margin-top:var(--ui-space-4);}
.saison82 .repli>summary{font-weight:600;}
.saison82 .contexte82 .panneau{margin-top:var(--ui-space-3);}
.saison82 .finances82 .chiffres{grid-template-columns:repeat(2,minmax(0,1fr));}
.saison82 .finances82 .chiffre b{font:700 clamp(24px,4vw,36px)/1.2 var(--display);font-variant-numeric:tabular-nums;}
.saison82 table.tour{width:100%;table-layout:fixed;}
.saison82 table.tour th,.saison82 table.tour td{white-space:normal;overflow-wrap:anywhere;}
.saison82 table.tour .pos{width:42px;}
.saison82 table.tour .pts{width:58px;}
.saison82 .offre-haut,.saison82 .offre-bas,.saison82 .pastilles{flex-wrap:wrap;}
.saison82 .fin-l{flex-wrap:wrap;gap:var(--ui-space-2);}
.saison82 .fin-l b{white-space:normal;}
.saison82 .succes .corps{min-width:0;}
.saison82 .succes .pastille{margin:var(--ui-space-2) 0;}
@media(max-width:640px){
 .saison82 .grille{grid-template-columns:minmax(0,1fr);}
 .saison82 .panneau{padding:var(--ui-space-4);}
 .saison82 .ovr-bloc{flex-wrap:wrap;gap:var(--ui-space-4);}
 .saison82 .ovr-cotes{width:100%;}
 .saison82 .finances82 .chiffres{grid-template-columns:minmax(0,1fr);}
 .saison82 .course-ligne{gap:var(--ui-space-2);}
 .saison82 .course-ligne .lieu{min-width:0;overflow-wrap:anywhere;}
 .saison82 .passport-grid{grid-template-columns:repeat(2,minmax(0,1fr));}
}
/* V83 — Propagation légère aux écrans secondaires existants. */
.secondaire83 .succes,.secondaire83 .article,.secondaire83 .codex-trait{border-radius:var(--ui-radius-md);padding:var(--ui-space-4);gap:var(--ui-space-3);}
.secondaire83 .nom-s,.secondaire83 .nom-a,.secondaire83 .titre-choix{overflow-wrap:anywhere;}
.secondaire83 .succes .desc,.secondaire83 .article .desc{font:400 var(--ui-type-secondary)/var(--ui-leading-body) var(--texte);}
.secondaire83 .recompense,.secondaire83 .prix{font-variant-numeric:tabular-nums;flex-shrink:0;}
.secondaire83 .recompense small{display:block;color:var(--ui-muted);font:400 var(--ui-type-label)/1.5 var(--texte);}
.secondaire83 .onglets{display:flex;flex-wrap:wrap;gap:var(--ui-space-2);}
.secondaire83 .onglet{flex:1 1 130px;white-space:normal;}
.secondaire83 .etat-defi83{border-left:2px solid var(--ui-border);padding-left:var(--ui-space-3);margin-top:var(--ui-space-2);}
.cal-etat83{display:block;font:400 var(--ui-type-label)/1.5 var(--texte);color:var(--ui-muted);}
.cal-manche.prochaine .cal-etat83{color:var(--ui-preparation);}
.cal-manche .cal-nom{min-width:0;overflow-wrap:anywhere;}
.cal-manche{cursor:default;}
.reglages-contenu72 .destructif83{border-color:var(--ui-negative);color:var(--ui-negative);margin-top:var(--ui-space-3);}
.classement83{width:100%;table-layout:fixed;}
.classement83 caption{text-align:left;color:var(--ui-muted);font:400 var(--ui-type-secondary)/1.5 var(--texte);padding-bottom:var(--ui-space-4);}
.classement83 th:first-child{width:48px;}
.classement83 th:last-child{width:100px;text-align:right;}
.classement83 td,.classement83 th{white-space:normal;overflow-wrap:anywhere;vertical-align:top;}
.classement83 small{display:block;color:var(--ui-muted);font:400 var(--ui-type-label)/1.5 var(--texte);margin-top:var(--ui-space-1);}
.classement83 .pts{font-variant-numeric:tabular-nums;}
@media(max-width:640px){
 .secondaire83 .grille{grid-template-columns:minmax(0,1fr);}
 .secondaire83 .article,.secondaire83 .succes{display:grid;grid-template-columns:32px minmax(0,1fr);}
 .secondaire83 .article .prix,.secondaire83 .succes .recompense{grid-column:2;text-align:left;white-space:normal;overflow-wrap:anywhere;}
 .secondaire83 .article .ico,.secondaire83 .succes .ico{width:32px;}
 .classement83 th:first-child{width:38px;}.classement83 th:last-child{width:76px;}
 .secondaire83 .actions .btn{width:100%;}
}
/* V84 — Finition ciblée, sans nouvelle composition. */
.article .prix small{font:400 var(--ui-type-label)/1.5 var(--texte);color:var(--ui-muted);}
.btn,.choix,.offre,.article,.onglet{overflow-wrap:anywhere;}
.ecran .titre{overflow-wrap:anywhere;}
.choix .corps,.offre-haut>span,.destination-card{min-width:0;}
.pastille,.mini,.tag{max-width:100%;white-space:normal;overflow-wrap:anywhere;}
.reglages-contenu72 button{min-height:var(--ui-touch-min);white-space:normal;}
.reglages-contenu72{max-width:calc(100vw - 32px);}
@media(max-width:640px){
 .actions{flex-wrap:wrap;}
 .actions>.btn{min-width:0;}
 .repere76 h3,.repere76 p{overflow-wrap:anywhere;}
}

/* Le focus de navigation reste sur le titre pour les lecteurs d’écran.
   Son contour ne doit pas faire passer ce texte pour une action. */
#app :is(h1,h2)[tabindex="-1"]:focus{outline:none;}

/* V87 — Réglage intégré au moment clé, conséquence affichée avec le résultat */
.reglage87{margin-top:12px}
.reglage87 .grille{margin-top:10px}
.reglage87 .choix.selectionne{border-color:var(--signal)}
.consequence87{margin:0 0 14px}
.consequence87 .eyebrow{margin-bottom:6px}
.consequence87 .recit{margin:0}
