
/* Navigation contextuelle DIAG — v0.5.15.2 */
.diag-navigation{position:sticky;top:0;z-index:1000;margin:0 0 18px;padding:8px 0;background:rgba(255,255,255,.96);border-bottom:1px solid #e5e7eb;backdrop-filter:blur(8px)}
.diag-navigation-inner{display:flex;gap:10px;align-items:center;justify-content:space-between;max-width:1100px;margin:0 auto;padding:0 12px}
.diag-navigation-link{display:inline-flex;align-items:center;justify-content:center;min-height:42px;padding:9px 14px;border:1px solid #d1d5db;border-radius:9px;text-decoration:none;font-weight:600;line-height:1.2;background:#fff;box-sizing:border-box;flex:1 1 0}
.diag-navigation-link:hover,.diag-navigation-link:focus{text-decoration:none}
.diag-navigation-primary{font-weight:700}
@media(max-width:600px){.diag-navigation{margin-left:-10px;margin-right:-10px;padding:7px 0}.diag-navigation-inner{gap:8px;padding:0 10px}.diag-navigation-link{min-height:40px;padding:8px 10px;font-size:.92rem}}

/* ==========================================================
   DIAG - Lecture d'une fiche
   ========================================================== */

.diag-fiche{
    max-width:900px;
    margin:40px auto;
    padding:30px;
    background:#fff;
}

.diag-retour{
    margin-bottom:25px;
}

.diag-retour a{
    text-decoration:none;
    font-weight:600;
}

.diag-header{
    margin-bottom:30px;
}

.diag-numero{
    display:inline-block;
    padding:4px 10px;
    border-radius:20px;
    background:#e9ecef;
    font-size:.85rem;
    font-weight:700;
    margin-bottom:12px;
}

.diag-titre{
    margin:0;
    font-size:2rem;
    line-height:1.25;
}

/* Nom de la compétence affiché avant le premier bloc de contenu. */
.diag-competence-title{
    margin:0 0 24px;
    font-size:1.7rem;
    line-height:1.25;
    color:#123b67;
}
@media(max-width:768px){
    .diag-competence-title{font-size:1.45rem;margin-bottom:20px;}
}

.diag-image{
    margin:35px 0;
    text-align:center;
}

.diag-image img{
    max-width:100%;
    height:auto;
    border-radius:10px;
}

.diag-section{
    margin:40px 0;
}

.diag-section h2{
    margin-bottom:15px;
    padding-bottom:10px;
    border-bottom:2px solid #e5e5e5;
    font-size:1.35rem;
}

.diag-contenu{
    font-size:1.05rem;
    line-height:1.8;
}

.diag-actions{
    display:flex;
    gap:15px;
    justify-content:space-between;
    margin-top:50px;
}

.diag-actions .button{
    min-width:180px;
    text-align:center;
}

/* ===========================
   Mobile
   =========================== */

@media(max-width:768px){

    .diag-fiche{
        margin:0;
        padding:20px;
    }

    .diag-titre{
        font-size:1.6rem;
    }

    .diag-actions{
        flex-direction:column;
    }

    .diag-actions .button{
        width:100%;
    }

}
/* QCM DIAG — pilote F01 */
.diag-qcm {
    margin-top: 2rem;
    padding: 1.25rem;
    border: 1px solid #ddd;
    border-radius: 12px;
}

.diag-qcm[hidden],
.diag-qcm-quiz[hidden],
.diag-qcm-result[hidden] {
    display: none;
}

.diag-qcm-option {
    display: block;
    width: 100%;
    margin: .6rem 0;
    padding: .8rem 1rem;
    text-align: left;
    cursor: pointer;
}

.diag-qcm-option.is-correct {
    font-weight: 700;
}

.diag-qcm-option.is-incorrect {
    text-decoration: line-through;
}

.diag-qcm-recovery-notice{margin-top:1rem;padding:1rem;border-left:4px solid #2f6fed;border-radius:8px;background:#f5f5f5}
.diag-qcm-recovery-notice[hidden]{display:none}
.diag-qcm-error {
    margin-top: .5rem;
}
.diag-qcm-explanation{
    margin-top:1rem;
    padding:1rem;
    border-left:4px solid #2f6fed;
    border-radius:8px;
    background:#f5f5f5;
}
.diag-qcm-explanation[hidden]{display:none}
.diag-qcm-explanation p{margin:.5rem 0 0}


/* QCM — résultats et progression */
.diag-qcm-stats{
    margin:1rem 0;
    padding:1rem;
    border-radius:10px;
    background:#f5f5f5;
}
.diag-qcm-stats h4{
    margin-top:0;
}
.diag-qcm-stats p{
    margin:.35rem 0;
}
.diag-qcm-result [data-qcm-restart]{
    margin-top:1rem;
}

.diag-qcm-actions{display:flex;gap:.75rem;flex-wrap:wrap;margin-top:1rem}
.diag-qcm-actions .button{margin-top:0}

.diag-fiche-progression{margin:.65rem 0;font-size:.95rem}
.diag-fiche-progression.is-work{color:#b42318}
.diag-fiche-progression.is-review{color:#b54708}
.diag-fiche-progression.is-mastered{color:#067647}

/* DIAG — vue diagnostic */
.diag-diagnostic-header{margin-bottom:1.25rem}
.diag-diagnostic-header h2{margin-bottom:.4rem}
.diag-diagnostic-summary{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin:1rem 0 1.5rem}
.diag-diagnostic-summary>div{padding:14px;border:1px solid #ddd;border-radius:10px;text-align:center}
.diag-diagnostic-summary strong{display:block;font-size:1.5rem}
.diag-diagnostic-summary span{font-size:.9rem}
.diag-diagnostic-card{padding:16px;margin:12px 0;border:1px solid #ddd;border-radius:10px}
.diag-diagnostic-card-head{display:flex;gap:10px;align-items:baseline;flex-wrap:wrap}
.diag-diagnostic-card h3{margin:.25rem 0}
.diag-diagnostic-code{font-weight:700}
.diag-diagnostic-status{margin:.6rem 0}
.diag-diagnostic-status.is-work{color:#b42318}
.diag-diagnostic-status.is-review{color:#b54708}
.diag-diagnostic-status.is-mastered{color:#067647}
@media (max-width:600px){
  .diag-diagnostic-summary{grid-template-columns:1fr}
}

/* DIAG — page Diagnostic */
.diag-diagnostic{
    max-width:1100px;
    margin:0 auto;
}
.diag-diagnostic-summary{
    align-items:stretch;
}
.diag-diagnostic-summary>div{
    line-height:1.35;
}
.diag-diagnostic-summary strong{
    margin-bottom:.25rem;
}
.diag-diagnostic-card-head{
    margin-bottom:.25rem;
}

/* DIAG — parcours A/B */
.diag-probleme{max-width:900px;margin:0 auto}
.diag-probleme-header{margin-bottom:1.5rem}
.diag-probleme-code{font-weight:700;letter-spacing:.04em}
.diag-step,.diag-diagnostic-result{padding:24px;border:1px solid #ddd;border-radius:14px;margin:14px 0}
.diag-step-label,.diag-result-badge{display:inline-block;font-weight:700;margin-bottom:.5rem}
.diag-choices{display:flex;gap:10px;flex-wrap:wrap;margin-top:1rem}
.diag-result-fiche{display:flex;align-items:center;gap:12px;flex-wrap:wrap;padding:12px 0;border-top:1px solid #eee}
.diag-result-fiche-role{font-size:.9rem}
.diag-result-fiche strong{margin-right:auto}
@media(max-width:600px){.diag-step,.diag-diagnostic-result{padding:18px}.diag-result-fiche{display:block}.diag-result-fiche .button{margin-top:8px}}

/* DIAG — parcours A/B/C */
.diag-step[data-step="c"]{border-left:4px solid #e5a000}

/* DIAG — moteur complet 44 problèmes */
.diag-moteur{max-width:1100px;margin:0 auto}
.diag-moteur-header{margin-bottom:1.25rem}
.diag-moteur-search{margin:1rem 0 1.25rem}
.diag-moteur-search label{display:block;font-weight:700;margin-bottom:.45rem}
.diag-moteur-search-input{width:100%;box-sizing:border-box;padding:12px 14px;border:1px solid #ccc;border-radius:10px;font-size:1rem}
.diag-moteur-kicker{font-size:.8rem;font-weight:700;letter-spacing:.08em}
.diag-moteur-summary{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin:1rem 0 1.5rem}
.diag-moteur-summary>div{padding:14px;border:1px solid #ddd;border-radius:10px;text-align:center}
.diag-moteur-summary strong{display:block;font-size:1.5rem}
.diag-moteur-summary span{font-size:.9rem}
.diag-moteur-filters{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:1.25rem}
.diag-moteur-filters .button.is-active{font-weight:700}
.diag-moteur-card{padding:16px;margin:12px 0;border:1px solid #ddd;border-radius:12px}
.diag-moteur-card-head{display:flex;gap:10px;align-items:center;flex-wrap:wrap}
.diag-moteur-code{font-weight:700}
.diag-moteur-family{font-size:.85rem;opacity:.75}
.diag-moteur-card h3{margin:.4rem 0}
.diag-moteur-status{margin:.6rem 0;font-size:.95rem}
.diag-moteur-status.is-a{font-weight:700}
.diag-moteur-status.is-b{font-weight:700}
.diag-moteur-status.is-c{font-weight:700}
.diag-moteur-status.is-ok{font-weight:700}
.diag-moteur-workspace{margin-top:1rem}
.diag-moteur-back{margin-bottom:1rem}
.diag-moteur-result{padding:24px;border:1px solid #ddd;border-radius:14px;margin:14px 0}
.diag-moteur-fiche{display:flex;align-items:center;gap:12px;flex-wrap:wrap;padding:12px 0;border-top:1px solid #eee}
.diag-moteur-fiche span{font-size:.9rem}
.diag-moteur-fiche strong{margin-right:auto}
.diag-moteur-fiche-missing{opacity:.7}
@media(max-width:600px){
 .diag-moteur-summary{grid-template-columns:1fr}
 .diag-moteur-card{padding:14px}
 .diag-moteur-fiche{display:block}
 .diag-moteur-fiche .button{margin-top:8px}
}

/* ==========================
   PAGE PROGRESSION
   ========================== */
.diag-progression{max-width:1100px;margin:0 auto;padding:24px}.diag-progression-header{text-align:center;margin-bottom:24px}.diag-progression-kicker{font-weight:700;letter-spacing:.08em}.diag-progression-header h2{margin:.25rem 0 .5rem}.diag-progression-header p{margin:0 auto;max-width:760px}.diag-progression-summary{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin:24px 0}.diag-progression-summary>div{border:1px solid #ddd;border-radius:10px;padding:18px;text-align:center}.diag-progression-summary strong{display:block;font-size:30px}.diag-progression-summary span{display:block;margin-top:6px}.diag-progression-list{display:grid;gap:14px}.diag-progression-card{border:1px solid #ddd;border-radius:10px;padding:18px;background:#fff}.diag-progression-card-head{display:flex;align-items:baseline;gap:12px}.diag-progression-code{font-weight:700}.diag-progression-card h3{margin:0}.diag-progression-status{margin:12px 0;font-size:15px}.diag-progression-status.is-neutral{color:#666}.diag-progression-status.is-work{color:#a33}.diag-progression-status.is-review{color:#a66a00}.diag-progression-status.is-mastered{color:#28733c}@media(max-width:700px){.diag-progression-summary{grid-template-columns:repeat(2,minmax(0,1fr))}.diag-progression-card-head{display:block}.diag-progression-code{display:block;margin-bottom:4px}}

/* QCM général — sélection puis validation */
.diag-qcm-page{max-width:1000px;margin:0 auto;padding:2rem 1rem}
.diag-qcm-header{text-align:center;margin-bottom:1.5rem}
.diag-qcm-header h1{margin:.25rem 0 .5rem}
.diag-qcm-header p{margin:0}
.diag-qcm-general{border-top:3px solid #2f6fed}
.diag-qcm-progress{text-align:center;font-weight:700;margin:.25rem 0 1rem}
.diag-qcm-question-box{padding:1rem;border:1px solid #ddd;border-radius:12px;margin-bottom:1rem;text-align:center}
.diag-qcm-question-box h2{margin:0;font-size:1.25rem}
.diag-qcm-options .diag-qcm-option{text-align:center;border:0;border-radius:10px;background:#2f6fed;color:#fff;font-weight:600}
.diag-qcm-options .diag-qcm-option.is-selected{outline:4px solid rgba(47,111,237,.25)}
.diag-qcm-options .diag-qcm-option.is-correct{background:#16a34a;color:#fff;text-decoration:none}
.diag-qcm-options .diag-qcm-option.is-incorrect{background:#dc2626;color:#fff;text-decoration:none}
.diag-qcm-actions{display:flex;gap:.75rem;justify-content:center;margin-top:1rem;flex-wrap:wrap}
.diag-qcm-actions button{min-width:180px}
.diag-qcm-actions button[hidden]{display:none !important}

/* DIAG — séparateurs de fiches : une seule ligne, responsive */
.diag-contenu hr.diag-separateur {
    display: block;
    width: 100%;
    height: 1px;
    margin: 1.2rem 0;
    border: 0;
    border-top: 1px solid currentColor;
    overflow: hidden;
}


/* Sous-fiches : contenu d'approfondissement, séparé de la progression mère. */
.diag-sous-fiches-list {
    display: grid;
    gap: 12px;
}
.diag-sous-fiche-card {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    padding: 14px;
    border: 1px solid #ddd;
    border-radius: 10px;
}
.diag-sous-fiche-card h3 {
    margin: 4px 0;
}
.diag-sous-fiche-card span {
    font-size: .9em;
    opacity: .75;
}
.diag-reading-progress {
    font-size: .9em;
    opacity: .8;
}
@media (max-width: 640px) {
    .diag-sous-fiche-card {
        flex-direction: column;
        align-items: stretch;
    }
    .diag-sous-fiche-card .button {
        width: 100%;
        text-align: center;
    }
}


/* Retour explicite vers la fiche mère des sous-fiches */
.diag-sous-fiche-retour{margin:0 0 20px;}
.diag-sous-fiche-retour .button{display:inline-block;}

/* DIAG — entrée pratique du tableau de bord apprenant */
.diag-pratique-dashboard{margin:0 0 2.5rem}
.diag-pratique-intro{margin-bottom:1rem}
.diag-pratique-intro h2{margin-bottom:.35rem}
.diag-pratique-intro p{margin:0;color:#555}
.diag-pratique-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}
.diag-pratique-card{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:105px;padding:12px;border:1px solid #d7d7d7;border-radius:14px;background:#fff;text-decoration:none;text-align:center;box-shadow:0 2px 8px rgba(0,0,0,.05);transition:transform .12s ease,box-shadow .12s ease}
.diag-pratique-card:hover,.diag-pratique-card:focus{transform:translateY(-1px);box-shadow:0 4px 12px rgba(0,0,0,.08);text-decoration:none}
.diag-pratique-icon{font-size:1.7rem;line-height:1;margin-bottom:.3rem}
.diag-pratique-code{font-size:.78rem;font-weight:700;letter-spacing:.06em;color:#666}
.diag-pratique-title{margin-top:.15rem;font-size:1rem;color:inherit}
.diag-pratique-stats{display:flex;flex-wrap:wrap;justify-content:center;gap:.45rem .85rem;margin-top:.9rem;font-size:.9rem;line-height:1.45;color:#333}
.diag-pratique-stat{white-space:nowrap}
.diag-pratique-reading.is-read{font-weight:700;color:#176b2c}
@media(max-width:600px){.diag-pratique-grid{grid-template-columns:1fr}.diag-pratique-card{min-height:130px}}

/* DIAG — séparation visuelle des blocs de contenu riche */
.diag-rich-block{
    box-sizing:border-box;
    margin:0 0 14px;
    padding:14px 16px;
    border:1px solid #dfe3e8;
    border-radius:9px;
    background:#fff;
}

.diag-rich-block:last-child{
    margin-bottom:0;
}

.diag-rich-block > :first-child{
    margin-top:0;
}

.diag-rich-block > :last-child{
    margin-bottom:0;
}

/* DIAG — contenu riche issu d'un document LibreOffice/ODT */
.diag-rich-document{font-size:1.05rem;line-height:1.8;margin:35px 0}
.diag-rich-paragraph{margin:0 0 1rem}
.diag-rich-style-P1{font-size:2rem;line-height:1.25;font-weight:700;text-align:center;margin-bottom:.4rem}
.diag-rich-style-P2{font-style:italic;text-align:center;margin-bottom:2rem}
.diag-rich-style-P3{font-size:1.35rem;font-weight:700;line-height:1.3;margin-top:1.5rem}
.diag-rich-style-P4{font-size:1.25rem;font-weight:700;line-height:1.3;margin-top:1.4rem}
.diag-rich-list-item{display:flex;gap:.6rem;margin:.2rem 0;padding-left:1rem}
.diag-rich-list-item>span:first-child{flex:0 0 auto}
.diag-rich-spacer{height:.65rem}
.diag-rich-image{margin:1.2rem 0 1.8rem;text-align:center}
.diag-rich-image img{display:inline-block;max-width:100%;height:auto;border-radius:10px}
.diag-rich-page-break{height:1.5rem;margin:2rem 0;border-top:1px dashed #ddd}
@media(max-width:768px){.diag-rich-document{font-size:1rem}.diag-rich-style-P1{font-size:1.6rem}.diag-rich-image{margin:1rem 0 1.4rem}}

.diag-rich-audio{margin:1.2rem 0 1.8rem}
.diag-rich-audio audio{display:block;width:100%;max-width:700px}
.diag-rich-video{margin:1.2rem 0 1.8rem;text-align:center}
.diag-rich-video video{display:block;width:100%;max-width:900px;height:auto;margin:0 auto;border-radius:10px}

.diag-pratique-recommendation{margin:0 0 1.25rem;padding:18px 20px;border:2px solid #d7d7d7;border-radius:14px;background:#fff}.diag-pratique-recommendation h3{margin:0 0 .4rem}.diag-pratique-recommendation p{margin:.35rem 0}.diag-pratique-recommendation-actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:12px}.diag-pratique-recommendation-note{font-size:.85rem;color:#666;margin-top:12px!important}@media(max-width:600px){.diag-pratique-recommendation-actions{flex-direction:column}.diag-pratique-recommendation-actions .button{width:100%;box-sizing:border-box;text-align:center}}

.diag-rich-table-wrap{width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch;margin:1rem 0 1.4rem}
.diag-rich-table{border-collapse:collapse;width:100%;min-width:620px;font-size:.95rem;line-height:1.35;background:#fff}
.diag-rich-table th,.diag-rich-table td{border:1px solid #d7d7d7;padding:.55rem .65rem;text-align:center;vertical-align:middle}
.diag-rich-table th{font-weight:700;background:#f4f4f4;white-space:nowrap}
.diag-rich-table td:first-child,.diag-rich-table th:first-child{text-align:left;font-weight:600;white-space:nowrap}
@media(max-width:768px){.diag-rich-table{font-size:.9rem}.diag-rich-table th,.diag-rich-table td{padding:.45rem .55rem}}

/* Message de lecture trop rapide : toujours visible dans la zone QCM. */
.diag-qcm-early-message{margin:0 0 1rem;padding:1rem 1.2rem;border-left:4px solid #2f6fed;background:#f3f6fb;border-radius:4px;font-size:1.05rem;line-height:1.5;}
.diag-qcm-early-message strong{display:block;margin-bottom:.35rem;}

/* DIAG 0.5.16.154 — feu plus compact, voyants agrandis */
.diag-pratique-status{display:flex;align-items:center;justify-content:center;gap:10px;margin-top:.45rem;min-height:74px;}
.diag-pratique-status .diag-traffic-light{display:flex;flex:0 0 24px;flex-direction:column;align-items:center;justify-content:space-between;width:24px;height:72px;padding:6px 0;box-sizing:border-box;margin:0;border-radius:18px;background:#222;border:1px solid #555;}
.diag-pratique-status .diag-traffic-bulb{display:block;width:16px;height:16px;border-radius:50%;background:#3a3a3a;box-shadow:inset 0 1px 2px rgba(0,0,0,.35);}
.diag-pratique-status .diag-traffic-light.is-unread .diag-traffic-bulb.is-red{background:#e52525;box-shadow:0 0 3px rgba(229,37,37,.65);}
.diag-pratique-status .diag-traffic-light.is-orange .diag-traffic-bulb.is-orange{background:#f59e0b;box-shadow:0 0 3px rgba(245,158,11,.65);}
.diag-pratique-status .diag-traffic-light.is-green .diag-traffic-bulb.is-green{background:#16a34a;box-shadow:0 0 3px rgba(22,163,74,.65);}
.diag-pratique-status-text{font-size:.9rem;line-height:1.25;color:#444;text-align:left;white-space:nowrap;position:relative;}

/* Le centre du texte correspond au centre du voyant allumé : rouge / orange / vert. */
.diag-pratique-status.is-unread .diag-pratique-status-text{top:-19px;}
.diag-pratique-status.is-orange .diag-pratique-status-text{top:0;}
.diag-pratique-status.is-green .diag-pratique-status-text{top:19px;}

@media(max-width:700px){
    .diag-pratique-status-text{font-size:.84rem;}
}

.diag-pratique-card-construction{cursor:default;opacity:.78}
.diag-pratique-card-construction:hover,.diag-pratique-card-construction:focus{transform:none;box-shadow:0 2px 8px rgba(0,0,0,.05)}
.diag-pratique-status.is-construction{font-weight:600}


/* ==========================================================
   DIAG 0.5.16.150 — affichage accordéon des blocs Studio + médias
   Le contenu JSON et la progression restent inchangés.
   ========================================================== */
.diag-rich-studio-document{margin:30px 0}
.diag-rich-accordion-section{margin:0 0 12px}
.diag-rich-intro{padding:20px 22px;border:1px solid #ddd;border-radius:12px;background:#fff}
.diag-rich-intro-title{margin:0 0 14px;font-size:1.35rem;line-height:1.3}
.diag-rich-accordion-item{border:1px solid #ddd;border-radius:12px;background:#fff;overflow:hidden}
.diag-rich-accordion-item>summary{display:flex;align-items:center;justify-content:space-between;gap:16px;cursor:pointer;list-style:none;padding:17px 20px;font-weight:700;font-size:1.08rem}
.diag-rich-accordion-item>summary::-webkit-details-marker{display:none}
.diag-rich-accordion-item>summary:hover{background:#f7f7f7}
.diag-rich-accordion-item[open]>summary{border-bottom:1px solid #e5e5e5}
.diag-rich-accordion-summary-title{flex:1}
.diag-rich-accordion-icon{font-size:1.4rem;line-height:1;font-weight:400;min-width:20px;text-align:center}
.diag-rich-accordion-item[open] .diag-rich-accordion-icon{transform:rotate(45deg)}
.diag-rich-accordion-body{padding:18px 20px 20px}
.diag-rich-accordion-body>.diag-rich-paragraph:first-child{margin-top:0}
.diag-rich-accordion-body>.diag-rich-paragraph:last-child{margin-bottom:0}
.diag-rich-accordion-media{margin:18px 0 4px}
.diag-rich-accordion-item .diag-rich-accordion-media{margin-left:20px;margin-right:20px}
.diag-rich-intro .diag-rich-accordion-media{margin-bottom:0}
@media(max-width:600px){
    .diag-rich-intro{padding:17px 16px}
    .diag-rich-accordion-item>summary{padding:15px 16px;font-size:1rem}
    .diag-rich-accordion-body{padding:16px}
    .diag-rich-accordion-item .diag-rich-accordion-media{margin-left:16px;margin-right:16px}
}

/* DIAG 0.5.16.155 — accueil apprenant et parcours */
.diag-pratique-home{margin:0 0 2rem}
.diag-pratique-home-intro{margin-bottom:1rem}
.diag-pratique-home-intro h2{margin:0;font-size:1.45rem;line-height:1.3}
.diag-pratique-home-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}
.diag-pratique-home-card[hidden]{display:none !important}
.diag-pratique-home-card{display:flex;flex-direction:column;align-items:flex-start;justify-content:center;min-height:112px;padding:18px 20px;border:1px solid #d7d7d7;border-radius:14px;background:#fff;color:inherit;text-decoration:none;box-shadow:0 2px 8px rgba(0,0,0,.04);transition:transform .12s ease,box-shadow .12s ease}
.diag-pratique-home-card:hover,.diag-pratique-home-card:focus{transform:translateY(-1px);box-shadow:0 4px 12px rgba(0,0,0,.08);text-decoration:none}
.diag-pratique-home-card-primary{border-width:2px}
.diag-pratique-home-icon{font-size:1.35rem;line-height:1;margin-bottom:.5rem}
.diag-pratique-home-card strong{font-size:1.05rem;line-height:1.3}
.diag-pratique-home-card>span:last-child{margin-top:.3rem;color:#555;font-size:.92rem;line-height:1.4}
@media(max-width:600px){.diag-pratique-home-grid{grid-template-columns:1fr}.diag-pratique-home-card{min-height:96px;padding:16px}}

/* QCM — choix entraînement / validation */
.diag-qcm-choice-grid{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:1rem;
    margin:1rem 0;
}
.diag-qcm-choice-card{
    padding:1rem;
    border:1px solid #ddd;
    border-radius:10px;
}
.diag-qcm-choice-card h3{margin-top:0}
.diag-qcm-choice-card .button{margin-top:.5rem}
@media(max-width:768px){
    .diag-qcm-choice-grid{grid-template-columns:1fr}
}

/* QCM adaptatif — interface pédagogique */
.diag-adaptatif-early-access {
    display:flex;
    align-items:center;
    gap:.85rem;
    margin:1rem 0 1.5rem;
    padding:.9rem 1rem;
    border:1px solid #d7e2f2;
    border-radius:10px;
    background:#f7faff;
}
.diag-adaptatif-early-access .button { margin:0; }
.diag-adaptatif-early-access span { color:#475467; }

.diag-qcm-adaptatif {
    margin: 2rem 0 2.5rem;
    padding: 0;
    overflow: hidden;
    border: 1px solid #dfe5ec;
    border-radius: 16px;
    background: #fff;
    box-shadow: 0 4px 18px rgba(16,24,40,.06);
}
.diag-adaptatif-header {
    padding: 1.4rem 1.5rem 1.25rem;
    border-bottom: 1px solid #e8edf3;
    background: linear-gradient(180deg,#f8fbff 0%,#fff 100%);
}
.diag-adaptatif-kicker,.diag-adaptatif-reading-label,.diag-adaptatif-result-label {
    display:block; font-size:.72rem; font-weight:800; letter-spacing:.11em; color:#2f6fed; margin-bottom:.35rem;
}
.diag-adaptatif-header h2 { margin:.1rem 0 .35rem; }
.diag-adaptatif-header p { margin:0; max-width:760px; color:#5d6877; }
.diag-qcm-adaptatif > [data-adapt-start] { margin:1.25rem 1.5rem 1.5rem; }
.diag-qcm-adaptatif-error { margin:0 1.5rem 1rem; color:#b42318; font-weight:600; }
.diag-qcm-adaptatif-panel { margin:0; padding:1.4rem 1.5rem 1.5rem; }
.diag-adaptatif-topline { display:flex; align-items:center; justify-content:space-between; gap:1rem; margin-bottom:.65rem; }
.diag-adaptatif-stage { display:inline-flex; align-items:center; min-height:28px; padding:.2rem .65rem; border-radius:999px; background:#eef4ff; color:#2459bd; font-size:.78rem; font-weight:800; }
.diag-adaptatif-count { color:#667085; font-size:.88rem; font-weight:700; }
.diag-adaptatif-progressbar { height:5px; margin-bottom:1.5rem; overflow:hidden; border-radius:999px; background:#e9edf3; }
.diag-adaptatif-progressbar span { display:block; height:100%; width:0; border-radius:inherit; background:#2f6fed; transition:width .25s ease; }
.diag-adaptatif-question { margin:0 0 1.2rem; font-size:clamp(1.15rem,2.2vw,1.45rem); line-height:1.35; }
.diag-qcm-adaptatif [data-adapt-options] { display:grid; gap:.65rem; }
.diag-qcm-adaptatif .diag-qcm-option {
    position:relative; display:flex; width:100%; box-sizing:border-box; margin:0; padding:.95rem 1rem .95rem 3rem;
    border:1px solid #d9e0e8; border-radius:11px; background:#fff; color:#243042; text-align:left;
    cursor:pointer; font:inherit; line-height:1.35; transition:border-color .15s,background .15s,box-shadow .15s,transform .08s;
}
.diag-qcm-adaptatif .diag-qcm-option::before {
    content:attr(data-letter); position:absolute; left:.85rem; top:50%; transform:translateY(-50%);
    width:26px; height:26px; display:grid; place-items:center; border:1px solid #cbd5e1; border-radius:50%;
    color:#667085; font-size:.8rem; font-weight:800; background:#f8fafc;
}
.diag-qcm-adaptatif .diag-qcm-option:hover:not(:disabled) { border-color:#8bb0f5; background:#f8fbff; }
.diag-qcm-adaptatif .diag-qcm-option.is-selected { border:2px solid #2f6fed; padding:.89rem 1rem .89rem 2.94rem; background:#f3f7ff; box-shadow:0 0 0 2px rgba(47,111,237,.08); }
.diag-qcm-adaptatif .diag-qcm-option.is-selected::before { border-color:#2f6fed; background:#2f6fed; color:#fff; }
.diag-qcm-adaptatif .diag-qcm-option.is-correct { border-color:#16a34a; background:#f0fdf4; color:#166534; }
.diag-qcm-adaptatif .diag-qcm-option.is-correct::before { border-color:#16a34a; background:#16a34a; color:#fff; }
.diag-qcm-adaptatif .diag-qcm-option.is-incorrect { border-color:#dc2626; background:#fef2f2; color:#991b1b; }
.diag-qcm-adaptatif .diag-qcm-option:disabled { cursor:default; opacity:1; }
.diag-qcm-adaptatif [data-adapt-info] {
    margin-top:1rem; padding:.9rem 1rem; border-left:4px solid #2f6fed; border-radius:8px; background:#f5f8fc; color:#344054;
}
.diag-qcm-adaptatif [data-adapt-info] p { margin:0; }
.diag-qcm-adaptatif .diag-qcm-actions { justify-content:center; margin-top:1.25rem; }
.diag-qcm-adaptatif .diag-qcm-actions .button { min-width:190px; }
.diag-qcm-adaptatif-reading { margin:0; padding:1.5rem; border-top:1px solid #e8edf3; background:#fffaf0; }
.diag-qcm-adaptatif-reading h3 { margin:.15rem 0 .65rem; }
.diag-qcm-adaptatif-reading h4 { margin:.2rem 0 .75rem; color:#344054; }
.diag-qcm-adaptatif-reading p { line-height:1.65; }
.diag-qcm-adaptatif-reading .button { margin-top:.5rem; }
.diag-qcm-adaptatif-result { margin:0; padding:1.5rem; border-top:1px solid #e8edf3; background:#f3fbf6; }
.diag-qcm-adaptatif-result h3 { margin:.15rem 0 .5rem; }
@media(max-width:600px){
    .diag-adaptatif-header,.diag-qcm-adaptatif-panel,.diag-qcm-adaptatif-reading,.diag-qcm-adaptatif-result { padding-left:1rem; padding-right:1rem; }
    .diag-qcm-adaptatif > [data-adapt-start],.diag-qcm-adaptatif-error { margin-left:1rem; margin-right:1rem; }
    .diag-adaptatif-topline { align-items:flex-start; }
    .diag-qcm-adaptatif .diag-qcm-actions .button { width:100%; }
}


/* QCM adaptatif — finition V2 */
.diag-qcm-adaptatif {
    border-color: #d8dee8;
    box-shadow: 0 8px 28px rgba(16,24,40,.07);
}
.diag-adaptatif-header {
    padding: 1.5rem 1.75rem 1.35rem;
}
.diag-adaptatif-kicker,
.diag-adaptatif-reading-label,
.diag-adaptatif-result-label {
    color: #475467;
    font-size: .7rem;
    letter-spacing: .12em;
}
.diag-adaptatif-header h2 {
    font-size: clamp(1.35rem, 2.5vw, 1.7rem);
    margin-bottom: .45rem;
}
.diag-adaptatif-intro {
    margin: 0 1.75rem 1rem;
    padding: .9rem 1rem;
    border: 1px solid #e4e7ec;
    border-radius: 10px;
    background: #f8fafc;
    color: #475467;
    font-size: .94rem;
    line-height: 1.55;
}
.diag-adaptatif-intro p { margin: 0; }
.diag-adaptatif-intro p + p { margin-top: .3rem; }
.diag-qcm-adaptatif .diag-adaptatif-start {
    margin: .5rem 1.75rem 1.65rem;
    min-width: 180px;
}
.diag-qcm-adaptatif-panel { padding: 1.5rem 1.75rem 1.75rem; }
.diag-adaptatif-stage {
    background: #f2f4f7;
    color: #344054;
    border: 1px solid #e4e7ec;
}
.diag-adaptatif-count { font-variant-numeric: tabular-nums; }
.diag-adaptatif-progressbar {
    height: 6px;
    margin-bottom: 1.35rem;
    background: #eaecf0;
}
.diag-adaptatif-progressbar span { background: #344054; }
.diag-adaptatif-question-card {
    margin-bottom: 1rem;
    padding: 1.15rem 1.25rem;
    border: 1px solid #e4e7ec;
    border-radius: 12px;
    background: #fff;
}
.diag-adaptatif-question { margin: 0; font-size: clamp(1.15rem, 2vw, 1.4rem); }
.diag-qcm-adaptatif .diag-qcm-option {
    min-height: 58px;
    padding-top: .9rem;
    padding-bottom: .9rem;
}
.diag-qcm-adaptatif .diag-qcm-option:hover:not(:disabled) {
    transform: translateY(-1px);
}
.diag-qcm-adaptatif [data-adapt-info] {
    border-left: 0;
    border: 1px solid #d0d5dd;
    background: #f8fafc;
}
.diag-qcm-adaptatif-reading,
.diag-qcm-adaptatif-result { padding: 1.6rem 1.75rem; }
.diag-qcm-adaptatif-reading { background: #fffbeb; border-top: 1px solid #f2e8c9; }
.diag-qcm-adaptatif-result { background: #f6fef9; border-top: 1px solid #d1fadf; }
.diag-adaptatif-result-label { color: #067647; }
.diag-adaptatif-result-success {
    margin: .7rem 0;
    font-size: 1.15rem;
    color: #067647;
}
.diag-qcm-adaptatif-result .diag-qcm-actions {
    justify-content: flex-start;
    flex-wrap: wrap;
}
@media(max-width:600px){
    .diag-adaptatif-header,
    .diag-qcm-adaptatif-panel,
    .diag-qcm-adaptatif-reading,
    .diag-qcm-adaptatif-result { padding-left: 1rem; padding-right: 1rem; }
    .diag-adaptatif-intro { margin-left: 1rem; margin-right: 1rem; }
    .diag-qcm-adaptatif .diag-adaptatif-start { margin-left: 1rem; margin-right: 1rem; width: calc(100% - 2rem); }
}

/* QCM adaptatif : mise en évidence de la partie de fiche utilisée en remédiation */
.diag-rich-accordion-section.is-adaptatif-targeted{
    box-shadow:0 0 0 3px rgba(37,99,235,.18);
    scroll-margin-top:24px;
}
.diag-rich-accordion-section.is-adaptatif-targeted>summary{
    background:#eef4ff;
}
.diag-adaptatif-fiche-resume{
    margin-top:18px;
}

/* Sections imbriquées issues de STUDIO V2 */
.diag-rich-hierarchical-document .diag-rich-accordion-body>.diag-rich-accordion-item{margin:12px 0 0 12px;border-color:#d8dce3;border-radius:9px;}
.diag-rich-hierarchical-document .diag-rich-accordion-subsection>summary{font-size:.98rem;padding:13px 16px;background:#faf9ff;}
.diag-rich-hierarchical-document .diag-rich-accordion-section[open]>.diag-rich-accordion-body{min-width:0;}
