/* « Teste ton niveau » — utilise les couleurs de theme.css (--pt-*), mode sombre compris. */
@import url('https://fonts.googleapis.com/css2?family=Poppins:wght@300;400;500;600;700&display=swap');

/* Variables attendues par nav.css et footer.css (comme sur les autres pages) */
:root { --nav-color: #2F5285; --side-nav: #010718; --text-color: #FFF; --body-color: #E4E9F7; }
body.dark { --nav-color: #242526; --side-nav: #242526; --text-color: #CCC; --body-color: #18191A; }
.pt-tn-page, .pt-tn-page button, .pt-tn-page input { font-family: 'Poppins', sans-serif; }
.pt-tn-page { margin: 0; }
.pt-tn-page *, .pt-tn-page *::before, .pt-tn-page *::after { box-sizing: border-box; }
.pt-tn-page { background: var(--pt-bg); color: var(--pt-text); }
.pt-tn { max-width: 980px; }
.pt-tn h1, .pt-tn h2, .pt-tn h3 { color: var(--pt-text); }
.pt-tn-muted { color: var(--pt-muted); }
.pt-tn-petit { font-size: .88rem; }

.pt-tn-note {
    display: flex; gap: .5rem; align-items: flex-start;
    background: var(--pt-primary-soft); color: var(--pt-text);
    border-radius: var(--pt-radius-sm); padding: .75rem 1rem; margin: 0 0 1.25rem;
}
.pt-tn-note i { color: var(--pt-primary); font-size: 1.25rem; flex-shrink: 0; }
.pt-tn-note a { color: var(--pt-primary); font-weight: 600; }
.pt-tn-note--admin { background: var(--pt-warning-soft); }

.pt-tn-etape { margin: 0 0 1.5rem; }
.pt-card.pt-tn-etape { padding: 1.25rem; }
.pt-tn-etape h2 { font-size: 1.2rem; font-weight: 600; margin: 0 0 1rem; display: flex; align-items: center; gap: .55rem; flex-wrap: wrap; }
.pt-tn-etape h2 i { color: var(--pt-primary); }
.pt-tn-num {
    display: inline-grid; place-items: center; width: 1.8rem; height: 1.8rem; border-radius: 50%;
    background: var(--pt-primary); color: #fff; font-size: .95rem;
}
.pt-tn-sous { color: var(--pt-muted); font-weight: 400; font-size: 1rem; }

/* Classes : pastilles neutres (pas de couleur par niveau) */
.pt-tn-classes { display: flex; flex-wrap: wrap; gap: .5rem; }
.pt-tn-classe {
    padding: .55rem 1.05rem; border-radius: 999px; border: 1px solid var(--pt-border);
    background: var(--pt-surface); color: var(--pt-text) !important; text-decoration: none !important; font-weight: 500;
}
.pt-tn-classe:hover { border-color: var(--pt-primary); }
.pt-tn-classe.is-active { background: var(--pt-primary); border-color: var(--pt-primary); color: #fff !important; }

.pt-tn-matieres { display: grid; gap: 1rem; grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)); }
.pt-tn-matiere { padding: 1.1rem; display: flex; flex-direction: column; gap: .8rem; }
.pt-tn-matiere-tete { display: flex; justify-content: space-between; align-items: baseline; gap: .5rem; }
.pt-tn-matiere-tete h3 { font-size: 1.1rem; font-weight: 600; margin: 0; }
.pt-tn-matiere-tete span { font-size: .85rem; white-space: nowrap; }
.pt-tn-btn-matiere { width: 100%; }
.pt-tn-btn-matiere small { font-weight: 400; opacity: .85; }
.pt-tn-lecons { list-style: none; margin: 0; padding: 0; border-top: 1px solid var(--pt-border); }
.pt-tn-lecons a {
    display: flex; justify-content: space-between; align-items: center; gap: .75rem;
    padding: .65rem 0; border-bottom: 1px solid var(--pt-border);
    color: var(--pt-text); text-decoration: none;
}
.pt-tn-lecons a:hover span { color: var(--pt-primary); text-decoration: underline; }
.pt-tn-lecons small { color: var(--pt-muted); white-space: nowrap; display: inline-flex; align-items: center; }

.pt-tn-historique { list-style: none; margin: 0; padding: 0; }
.pt-tn-historique a { display: flex; justify-content: space-between; align-items: center; gap: 1rem; padding: .6rem 0; border-bottom: 1px solid var(--pt-border); color: var(--pt-text); text-decoration: none; }
.pt-tn-historique a span:first-child { display: flex; flex-direction: column; }
.pt-tn-historique small { color: var(--pt-muted); }
.pt-tn-badge { font-weight: 700; padding: .2rem .65rem; border-radius: 999px; background: var(--pt-surface-2); }
.pt-tn-badge--ok { background: var(--pt-success-soft); color: var(--pt-success); }
.pt-tn-badge--moyen { background: var(--pt-warning-soft); color: #8A5A00; }
.pt-tn-badge--faible { background: #FDECEC; color: #9B1C1C; }

.pt-tn-vide { padding: 2.5rem 1.5rem; text-align: center; }
.pt-tn-vide i { font-size: 2.5rem; color: var(--pt-primary); }
.pt-tn-vide a:not(.pt-btn) { color: var(--pt-primary); font-weight: 600; }

/* ---------- Déroulé du test ---------- */
.pt-tn-test { max-width: 760px; }
.pt-tn-retour { display: inline-flex; align-items: center; gap: .3rem; color: var(--pt-primary); text-decoration: none; font-weight: 600; margin-bottom: 1rem; }
.pt-tn-test-tete p { margin: 0; }
.pt-tn-test-tete h1 { font-size: 1.6rem; font-weight: 600; margin: .1rem 0 1rem; }
.pt-tn-carte { padding: 1.5rem; scroll-margin-top: 90px; }
.pt-tn-chargement { display: flex; align-items: center; gap: .6rem; color: var(--pt-muted); justify-content: center; padding: 2rem 0; }
.pt-tn-tourne { width: 18px; height: 18px; border-radius: 50%; border: 3px solid var(--pt-primary-soft); border-top-color: var(--pt-primary); animation: pt-tn-tourne .8s linear infinite; }
@keyframes pt-tn-tourne { to { transform: rotate(360deg); } }
.pt-tn-intro, .pt-tn-erreur { text-align: center; padding: 1rem 0; }
.pt-tn-intro i, .pt-tn-erreur i { font-size: 2.6rem; color: var(--pt-primary); }
.pt-tn-erreur i { color: var(--pt-danger); }
.pt-tn-intro h2 { margin: .4rem 0; font-size: 1.4rem; }
.pt-tn-intro p { max-width: 52ch; margin: .4rem auto 1rem; }

.pt-tn-progres { display: flex; align-items: center; gap: .8rem; color: var(--pt-muted); font-size: .9rem; margin-bottom: 1.1rem; }
.pt-tn-progres span { white-space: nowrap; }
.pt-tn-barre { flex: 1; height: 8px; border-radius: 999px; background: var(--pt-primary-soft); overflow: hidden; }
.pt-tn-barre div { height: 100%; background: var(--pt-primary); border-radius: 999px; transition: width .3s; }
.pt-tn-enonce { font-size: 1.15rem; font-weight: 600; line-height: 1.5; white-space: pre-wrap; margin: 0 0 1rem; }
.pt-tn-choix { display: grid; gap: .6rem; }
.pt-tn-option {
    display: flex; align-items: center; gap: .75rem; padding: .8rem 1rem; cursor: pointer;
    border: 2px solid var(--pt-border); border-radius: var(--pt-radius-sm); background: var(--pt-surface);
}
.pt-tn-option:hover { border-color: var(--pt-primary); }
.pt-tn-option input { position: absolute; opacity: 0; pointer-events: none; }
.pt-tn-option:has(input:checked) { border-color: var(--pt-primary); background: var(--pt-primary-soft); }
.pt-tn-option:has(input:focus-visible) { box-shadow: var(--pt-focus); }
.pt-tn-lettre {
    flex-shrink: 0; display: grid; place-items: center; width: 2rem; height: 2rem; border-radius: 50%;
    border: 2px solid var(--pt-border); font-weight: 700; color: var(--pt-muted);
}
.pt-tn-option:has(input:checked) .pt-tn-lettre { background: var(--pt-primary); border-color: var(--pt-primary); color: #fff; }
.pt-tn-libelle { white-space: pre-wrap; }
.pt-tn-champ { display: grid; gap: .35rem; font-weight: 600; }
.pt-tn-champ input {
    font-size: 1.1rem; padding: .8rem 1rem; border: 2px solid var(--pt-border); border-radius: var(--pt-radius-sm);
    background: var(--pt-surface); color: var(--pt-text);
}
.pt-tn-champ input:focus { border-color: var(--pt-primary); outline: none; box-shadow: var(--pt-focus); }
.pt-tn-actions { display: flex; justify-content: space-between; align-items: center; gap: 1rem; margin-top: 1.4rem; flex-wrap: wrap; }
.pt-tn-actions--gauche { justify-content: flex-start; }

/* ---------- Résultat ---------- */
.pt-tn-score { display: flex; gap: 1.75rem; align-items: center; padding: 1.5rem; margin-bottom: 1.25rem; }
.pt-tn-score h1 { font-size: 1.5rem; font-weight: 600; margin: .1rem 0 .3rem; }
.pt-tn-score p { margin: .25rem 0; }
.pt-tn-mention { font-weight: 700; font-size: 1.05rem; }
.pt-tn-cercle {
    --c: var(--pt-primary);
    flex-shrink: 0; width: 132px; height: 132px; border-radius: 50%; display: grid; place-items: center;
    background: conic-gradient(var(--c) calc(var(--p) * 1%), var(--pt-primary-soft) 0);
}
.pt-tn-cercle span { width: 104px; height: 104px; border-radius: 50%; background: var(--pt-surface); display: flex; align-items: center; justify-content: center; gap: 2px; font-size: 2rem; font-weight: 700; }
.pt-tn-cercle small { font-size: .9rem; font-weight: 600; margin-top: .5rem; }
.pt-tn-score--ok .pt-tn-cercle { --c: var(--pt-success); }
.pt-tn-score--ok .pt-tn-mention { color: var(--pt-success); }
.pt-tn-score--moyen .pt-tn-cercle { --c: #C98A00; }
.pt-tn-score--moyen .pt-tn-mention { color: #8A5A00; }
.pt-tn-score--faible .pt-tn-cercle { --c: var(--pt-danger); }
.pt-tn-score--faible .pt-tn-mention { color: var(--pt-danger); }
body.dark .pt-tn-score--moyen .pt-tn-mention { color: #F0C060; }

.pt-tn-epreuves { display: grid; gap: .75rem; grid-template-columns: repeat(auto-fill, minmax(200px, 1fr)); }
.pt-tn-epreuve { padding: .9rem 1rem; display: flex; flex-direction: column; gap: .15rem; color: var(--pt-text); text-decoration: none; }
.pt-tn-epreuve:hover { border-color: var(--pt-primary); }
.pt-tn-epreuve span, .pt-tn-epreuve small { color: var(--pt-muted); }

.pt-tn-correction { list-style: none; margin: 0; padding: 0; display: grid; gap: .9rem; }
.pt-tn-corr { padding: 1.1rem 1.2rem; border-left: 5px solid var(--pt-border); }
.pt-tn-corr.is-ok { border-left-color: var(--pt-success); }
.pt-tn-corr.is-ko { border-left-color: var(--pt-danger); }
.pt-tn-corr .pt-tn-enonce { font-size: 1.02rem; }
.pt-tn-corr-tete { display: flex; justify-content: space-between; align-items: center; margin-bottom: .5rem; font-size: .88rem; }
.pt-tn-pastille { display: inline-flex; align-items: center; gap: .2rem; font-weight: 700; padding: .15rem .6rem; border-radius: 999px; }
.is-ok .pt-tn-pastille { background: var(--pt-success-soft); color: var(--pt-success); }
.is-ko .pt-tn-pastille { background: #FDECEC; color: #9B1C1C; }
body.dark .is-ko .pt-tn-pastille { background: #3A1F1F; color: #F5B5B5; }
.pt-tn-corr-choix { list-style: none; padding: 0; margin: 0 0 .6rem; display: grid; gap: .3rem; }
.pt-tn-corr-choix li { display: flex; gap: .45rem; align-items: flex-start; padding: .35rem .5rem; border-radius: 8px; }
.pt-tn-corr-choix li i { margin-top: .2rem; color: var(--pt-muted); }
.pt-tn-corr-choix li.bonne { background: var(--pt-success-soft); }
.pt-tn-corr-choix li.bonne i { color: var(--pt-success); }
.pt-tn-corr-choix li.fausse { background: #FDECEC; }
body.dark .pt-tn-corr-choix li.fausse { background: #3A1F1F; }
.pt-tn-corr-choix li.fausse i { color: var(--pt-danger); }
.pt-tn-corr-choix small { color: var(--pt-muted); }
.pt-tn-bonne { color: var(--pt-success); }
.pt-tn-explication { display: flex; gap: .45rem; background: var(--pt-surface-2); border-radius: 8px; padding: .6rem .75rem; margin: .4rem 0; }
.pt-tn-explication i { color: var(--pt-primary); margin-top: .2rem; }
.pt-tn-source { font-size: .85rem; color: var(--pt-muted); margin: .5rem 0 0; }
.pt-tn-source a { color: var(--pt-primary); }

/* ---------- Version 2 : parcours classe → matière → leçon, habiletés, exercice, maîtrise ---------- */
.pt-tn-fil { list-style: none; display: flex; flex-wrap: wrap; gap: .4rem 1.2rem; padding: 0; margin: 0 0 1.1rem; color: var(--pt-muted); font-size: .92rem; }
.pt-tn-fil li { display: inline-flex; align-items: center; gap: .4rem; }
.pt-tn-fil span { display: inline-grid; place-items: center; width: 1.45rem; height: 1.45rem; border-radius: 50%; border: 2px solid var(--pt-border); font-size: .8rem; font-weight: 700; }
.pt-tn-fil .is-active { color: var(--pt-text); font-weight: 600; }
.pt-tn-fil .is-active span { border-color: var(--pt-primary); color: var(--pt-primary); }
.pt-tn-fil .is-done span { background: var(--pt-primary); border-color: var(--pt-primary); color: #fff; }
.pt-tn-fil b { color: var(--pt-text); }
.pt-tn-classe small { font-weight: 400; opacity: .75; margin-left: .2rem; }
.pt-tn-etape { scroll-margin-top: 90px; }

.pt-tn-bilan { padding: 1rem 1.2rem; margin-bottom: 1rem; display: grid; gap: .5rem; }
.pt-tn-bilan b { font-size: 1.4rem; color: var(--pt-primary); }
.pt-tn-bilan p { margin: 0; }

.pt-tn-lecons2 { list-style: none; margin: 0; padding: 0; display: grid; gap: .6rem; }
.pt-tn-theme { font-size: .8rem; font-weight: 700; letter-spacing: .04em; text-transform: uppercase; color: var(--pt-muted); margin: .9rem 0 .1rem; }
.pt-tn-theme:first-child { margin-top: 0; }
.pt-tn-lecon { display: flex; align-items: center; gap: .9rem; padding: .8rem 1rem; }
.pt-tn-lecon.is-off { opacity: .6; }
.pt-tn-lecon.is-maitrisee { border-color: var(--pt-success); }
.pt-tn-lecon-num { flex-shrink: 0; display: grid; place-items: center; width: 2rem; height: 2rem; border-radius: 50%; background: var(--pt-primary-soft); color: var(--pt-primary); font-weight: 700; font-size: .9rem; }
.pt-tn-lecon.is-maitrisee .pt-tn-lecon-num { background: var(--pt-success-soft); color: var(--pt-success); }
.pt-tn-lecon-titre { flex: 1; min-width: 0; display: flex; flex-direction: column; }
.pt-tn-lecon-titre b { font-weight: 600; }
.pt-tn-lecon-titre small { color: var(--pt-muted); }
.pt-tn-etat { display: inline-flex; align-items: center; gap: .45rem; white-space: nowrap; }
.pt-tn-etat small { color: var(--pt-muted); }
.pt-tn-go { white-space: nowrap; padding-left: 1rem; padding-right: .8rem; }

/* Série de tests réussis : 3 pastilles */
.pt-tn-serie { display: inline-flex; gap: .25rem; vertical-align: middle; }
.pt-tn-serie i { width: .8rem; height: .8rem; border-radius: 50%; border: 2px solid var(--pt-success); background: transparent; }
.pt-tn-serie i.is-on { background: var(--pt-success); }
.pt-tn-suivi { display: flex; align-items: center; justify-content: center; gap: .6rem; flex-wrap: wrap; font-size: .95rem; }

/* Pendant le test */
.pt-tn-etiquette { display: inline-flex; align-items: center; gap: .35rem; margin: 0 0 .6rem; padding: .2rem .65rem; border-radius: 999px; background: var(--pt-primary-soft); color: var(--pt-primary); font-size: .85rem; font-weight: 600; }
.pt-tn-etiquette--exo { background: var(--pt-warning-soft); color: #8A5A00; }
body.dark .pt-tn-etiquette--exo { color: #F0C060; }
.pt-tn-situation { white-space: pre-wrap; line-height: 1.55; background: var(--pt-surface-2); border-left: 4px solid #C98A00; border-radius: 8px; padding: .8rem 1rem; margin: 0 0 1rem; }
.pt-tn-habs { margin-top: 1rem; border-top: 1px solid var(--pt-border); padding-top: .8rem; }
.pt-tn-habs summary { cursor: pointer; color: var(--pt-primary); font-weight: 600; }
.pt-tn-habs ul { margin: .5rem 0 0; padding-left: 1.2rem; display: grid; gap: .25rem; }

/* Résultat */
.pt-tn-maitrise { display: flex; align-items: center; gap: 1rem; flex-wrap: wrap; padding: 1.1rem 1.3rem; margin-bottom: 1.25rem; }
.pt-tn-maitrise > div { flex: 1; min-width: 220px; }
.pt-tn-maitrise h2 { font-size: 1.1rem; margin: 0 0 .2rem; }
.pt-tn-maitrise p { margin: 0; }
.pt-tn-maitrise > i { font-size: 2.4rem; color: var(--pt-primary); }
.pt-tn-maitrise.is-ok { border-color: var(--pt-success); background: var(--pt-success-soft); }
.pt-tn-maitrise.is-ok > i { color: var(--pt-success); }
.pt-tn-maitrise .pt-tn-serie i { width: 1.1rem; height: 1.1rem; }
.pt-tn-bilan-habs { list-style: none; margin: 0; padding: .4rem 1.1rem; }
.pt-tn-bilan-habs li { display: flex; justify-content: space-between; align-items: center; gap: 1rem; padding: .55rem 0; border-bottom: 1px solid var(--pt-border); }
.pt-tn-bilan-habs li:last-child { border-bottom: 0; }
.pt-tn-autre { margin: -.5rem 0 1.5rem; }
.pt-tn-autre a { color: var(--pt-primary); font-weight: 600; }
.pt-tn-corr-exo { padding: 1.1rem 1.2rem; }
.pt-tn-corr-exo .pt-tn-situation { margin: 0; }

.pt-tn-diff { display: inline-flex; align-items: center; gap: .35rem; white-space: nowrap; font-size: .8rem; font-weight: 600; padding: .15rem .55rem; border-radius: 999px; }
.pt-tn-diff-barres { display: inline-flex; align-items: flex-end; gap: 2px; height: 12px; }
.pt-tn-diff-barres i { width: 4px; border-radius: 2px; background: currentColor; opacity: .25; }
.pt-tn-diff-barres i:nth-child(1) { height: 5px; } .pt-tn-diff-barres i:nth-child(2) { height: 8px; } .pt-tn-diff-barres i:nth-child(3) { height: 12px; }
.pt-tn-diff-barres i.is-on { opacity: 1; }
.pt-tn-diff--1 { background: var(--pt-success-soft); color: var(--pt-success); }
.pt-tn-diff--2 { background: var(--pt-warning-soft); color: #8A5A00; }
.pt-tn-diff--3 { background: #FDECEC; color: #9B1C1C; }
body.dark .pt-tn-diff--2 { color: #F0C060; }
body.dark .pt-tn-diff--3 { background: #3A1F1F; color: #F5B5B5; }
#go { display: inline-flex; align-items: center; gap: .45rem; }
.pt-tn-intro a { color: var(--pt-primary); font-weight: 600; }
.pt-tn-figure { margin: .2rem 0 1rem; display: flex; justify-content: center; color: var(--pt-text); }
.pt-tn-figure svg { width: 100%; max-width: 360px; height: auto; overflow: visible; }
.pt-tn-situation .pt-tn-figure { margin: .8rem 0 0; }
@media (max-width: 640px) {
    .pt-tn-lecon { flex-wrap: wrap; }
    .pt-tn-lecon-titre { flex-basis: calc(100% - 3rem); }
    .pt-tn-etat { margin-left: 2.9rem; }
    .pt-tn-go { margin-left: auto; }
    .pt-tn-maitrise .pt-btn { width: 100%; }
}

@media (max-width: 640px) {
    .pt-tn-carte { padding: 1.1rem; }
    .pt-tn-score { flex-direction: column; text-align: center; }
    .pt-tn-actions--gauche { justify-content: center; }
    .pt-tn-actions .pt-btn { flex: 1 1 100%; }
    .pt-tn-actions .pt-link { order: 2; margin: 0 auto; }
}

/* Invités : un seul test sans compte (01/11) */
.pt-tn-compte { text-align: center; padding: 1rem 0; }
.pt-tn-compte svg { color: var(--pt-primary); }
.pt-tn-compte h2 { margin: .4rem 0; }
.pt-tn-compte p { max-width: 52ch; margin: .4rem auto 1rem; }
.pt-tn-compte .pt-tn-actions { display: flex; flex-wrap: wrap; gap: .6rem; justify-content: center; }
.pt-tn-compte--fin { padding: 1.4rem 1rem; border-top: 4px solid var(--pt-primary); }

/* ========== Couleurs (02/11) : matières colorées, bandeau, bilan par habileté lisible sur mobile ========== */
/* Couleur par matière, reprise de l'accueil (« Explore par matière ») : chaque bloc .pt-tn-m--<cle> remplace la couleur principale */
.pt-tn-m--maths { --m: #A15C00; --m-soft: #FFF4D6; --m-txt: #A15C00; --pt-primary: #A15C00; --pt-primary-hover: #804900; --pt-primary-soft: #FFF4D6; }
.pt-tn-m--physique { --m: #C62828; --m-soft: #FDECEA; --m-txt: #C62828; --pt-primary: #C62828; --pt-primary-hover: #A11F1F; --pt-primary-soft: #FDECEA; }
.pt-tn-m--svt { --m: #6A3FB5; --m-soft: #EFE7FB; --m-txt: #6A3FB5; --pt-primary: #6A3FB5; --pt-primary-hover: #563293; --pt-primary-soft: #EFE7FB; }
.pt-tn-m--francais { --m: #00727F; --m-soft: #E0F5F7; --m-txt: #00727F; --pt-primary: #00727F; --pt-primary-hover: #005A64; --pt-primary-soft: #E0F5F7; }
.pt-tn-m--hg { --m: #1565C0; --m-soft: #E3EEFB; --m-txt: #1565C0; --pt-primary: #1565C0; --pt-primary-hover: #0F4F99; --pt-primary-soft: #E3EEFB; }
.pt-tn-m--anglais { --m: #1B7A3D; --m-soft: #E6F4EA; --m-txt: #1B7A3D; --pt-primary: #1B7A3D; --pt-primary-hover: #145F2F; --pt-primary-soft: #E6F4EA; }
.pt-tn-m--espagnol { --m: #1B7A3D; --m-soft: #E6F4EA; --m-txt: #1B7A3D; --pt-primary: #1B7A3D; --pt-primary-hover: #145F2F; --pt-primary-soft: #E6F4EA; }
.pt-tn-m--allemand { --m: #C62828; --m-soft: #FDECEA; --m-txt: #C62828; --pt-primary: #C62828; --pt-primary-hover: #A11F1F; --pt-primary-soft: #FDECEA; }
.pt-tn-m--philo { --m: #1565C0; --m-soft: #E3EEFB; --m-txt: #1565C0; --pt-primary: #1565C0; --pt-primary-hover: #0F4F99; --pt-primary-soft: #E3EEFB; }
.pt-tn-m--edhc { --m: #A15C00; --m-soft: #FFF4D6; --m-txt: #A15C00; --pt-primary: #A15C00; --pt-primary-hover: #804900; --pt-primary-soft: #FFF4D6; }
.pt-tn-m--tice { --m: #00727F; --m-soft: #E0F5F7; --m-txt: #00727F; --pt-primary: #00727F; --pt-primary-hover: #005A64; --pt-primary-soft: #E0F5F7; }
.pt-tn-m--arts { --m: #C62828; --m-soft: #FDECEA; --m-txt: #C62828; --pt-primary: #C62828; --pt-primary-hover: #A11F1F; --pt-primary-soft: #FDECEA; }
.pt-tn-m--musique { --m: #6A3FB5; --m-soft: #EFE7FB; --m-txt: #6A3FB5; --pt-primary: #6A3FB5; --pt-primary-hover: #563293; --pt-primary-soft: #EFE7FB; }
.pt-tn-m--eps { --m: #1B7A3D; --m-soft: #E6F4EA; --m-txt: #1B7A3D; --pt-primary: #1B7A3D; --pt-primary-hover: #145F2F; --pt-primary-soft: #E6F4EA; }
.pt-tn-m--autre { --m: #1565C0; --m-soft: #E3EEFB; --m-txt: #1565C0; --pt-primary: #1565C0; --pt-primary-hover: #0F4F99; --pt-primary-soft: #E3EEFB; }
body.dark .pt-tn-m--maths { --m: #F2C46B; --m-soft: #3A3220; --m-txt: #F2C46B; --pt-primary: #F2C46B; --pt-primary-hover: #F6D493; --pt-primary-soft: #3A3220; }
body.dark .pt-tn-m--physique { --m: #F2A7A0; --m-soft: #3A2323; --m-txt: #F2A7A0; --pt-primary: #F2A7A0; --pt-primary-hover: #F6C0BB; --pt-primary-soft: #3A2323; }
body.dark .pt-tn-m--svt { --m: #C7AEF2; --m-soft: #2D2440; --m-txt: #C7AEF2; --pt-primary: #C7AEF2; --pt-primary-hover: #D6C3F5; --pt-primary-soft: #2D2440; }
body.dark .pt-tn-m--francais { --m: #7FD6DF; --m-soft: #1C3436; --m-txt: #7FD6DF; --pt-primary: #7FD6DF; --pt-primary-hover: #A0E1E8; --pt-primary-soft: #1C3436; }
body.dark .pt-tn-m--hg { --m: #8FBDF4; --m-soft: #1E2B40; --m-txt: #8FBDF4; --pt-primary: #8FBDF4; --pt-primary-hover: #ADD0F7; --pt-primary-soft: #1E2B40; }
body.dark .pt-tn-m--anglais { --m: #8FD9A8; --m-soft: #1F3326; --m-txt: #8FD9A8; --pt-primary: #8FD9A8; --pt-primary-hover: #ADE4C0; --pt-primary-soft: #1F3326; }
body.dark .pt-tn-m--espagnol { --m: #8FD9A8; --m-soft: #1F3326; --m-txt: #8FD9A8; --pt-primary: #8FD9A8; --pt-primary-hover: #ADE4C0; --pt-primary-soft: #1F3326; }
body.dark .pt-tn-m--allemand { --m: #F2A7A0; --m-soft: #3A2323; --m-txt: #F2A7A0; --pt-primary: #F2A7A0; --pt-primary-hover: #F6C0BB; --pt-primary-soft: #3A2323; }
body.dark .pt-tn-m--philo { --m: #8FBDF4; --m-soft: #1E2B40; --m-txt: #8FBDF4; --pt-primary: #8FBDF4; --pt-primary-hover: #ADD0F7; --pt-primary-soft: #1E2B40; }
body.dark .pt-tn-m--edhc { --m: #F2C46B; --m-soft: #3A3220; --m-txt: #F2C46B; --pt-primary: #F2C46B; --pt-primary-hover: #F6D493; --pt-primary-soft: #3A3220; }
body.dark .pt-tn-m--tice { --m: #7FD6DF; --m-soft: #1C3436; --m-txt: #7FD6DF; --pt-primary: #7FD6DF; --pt-primary-hover: #A0E1E8; --pt-primary-soft: #1C3436; }
body.dark .pt-tn-m--arts { --m: #F2A7A0; --m-soft: #3A2323; --m-txt: #F2A7A0; --pt-primary: #F2A7A0; --pt-primary-hover: #F6C0BB; --pt-primary-soft: #3A2323; }
body.dark .pt-tn-m--musique { --m: #C7AEF2; --m-soft: #2D2440; --m-txt: #C7AEF2; --pt-primary: #C7AEF2; --pt-primary-hover: #D6C3F5; --pt-primary-soft: #2D2440; }
body.dark .pt-tn-m--eps { --m: #8FD9A8; --m-soft: #1F3326; --m-txt: #8FD9A8; --pt-primary: #8FD9A8; --pt-primary-hover: #ADE4C0; --pt-primary-soft: #1F3326; }
body.dark .pt-tn-m--autre { --m: #8FBDF4; --m-soft: #1E2B40; --m-txt: #8FBDF4; --pt-primary: #8FBDF4; --pt-primary-hover: #ADD0F7; --pt-primary-soft: #1E2B40; }

/* ---------- Bandeau d'en-tête ---------- */
.pt-tn-hero {
    position: relative; overflow: hidden; color: #fff;
    background: linear-gradient(125deg, #2B4C7E 0%, #3A64A6 55%, #5B5BD6 100%);
    border-radius: var(--pt-radius); padding: 1.6rem 1.6rem 1.4rem; margin-bottom: 1.4rem;
}
.pt-tn-hero::before, .pt-tn-hero::after { content: ""; position: absolute; border-radius: 50%; pointer-events: none; }
.pt-tn-hero::before { width: 220px; height: 220px; right: -60px; top: -90px; background: rgba(255, 255, 255, .10); }
.pt-tn-hero::after { width: 120px; height: 120px; right: 90px; bottom: -70px; background: rgba(255, 200, 87, .28); }
.pt-tn-hero > * { position: relative; }
.pt-tn .pt-tn-hero h1 { color: #fff; font-size: 1.9rem; font-weight: 700; margin: 0 0 .4rem; display: flex; align-items: center; gap: .55rem; }
.pt-tn-hero h1 i { font-size: 1.6rem; color: #FFC857; }
.pt-tn-hero p { color: rgba(255, 255, 255, .9); margin: 0 0 .9rem; max-width: 62ch; }
.pt-tn-hero-puces { display: flex; flex-wrap: wrap; gap: .45rem; list-style: none; margin: 0; padding: 0; }
.pt-tn-hero-puces li { display: inline-flex; align-items: center; gap: .3rem; padding: .25rem .7rem; border-radius: 999px; background: rgba(255, 255, 255, .16); font-size: .85rem; font-weight: 500; }
.pt-tn-hero-puces i { color: #FFC857; }
body.dark .pt-tn-hero { background: linear-gradient(125deg, #1C2C47 0%, #243960 55%, #2E2E6B 100%), #1C2C47; }

/* Étapes : pastilles numérotées colorées */
.pt-tn-fil .is-done span { background: var(--pt-success); border-color: var(--pt-success); }
.pt-tn-etape > h2 .pt-tn-num { background: var(--m, var(--pt-primary)); box-shadow: 0 0 0 4px var(--m-soft, var(--pt-primary-soft)); }

/* ---------- Matières en tuiles de couleur ---------- */
.pt-tn-mats { display: grid; gap: .65rem; grid-template-columns: repeat(auto-fill, minmax(200px, 1fr)); }
.pt-tn-mat {
    display: flex; align-items: center; gap: .7rem; padding: .7rem .8rem; min-width: 0;
    border-radius: var(--pt-radius-sm); border: 2px solid transparent; background: var(--m-soft);
    color: var(--pt-text) !important; text-decoration: none !important; transition: transform .12s, box-shadow .12s;
}
.pt-tn-mat:hover { transform: translateY(-2px); box-shadow: var(--pt-shadow); border-color: var(--m); }
.pt-tn-mat.is-active { background: var(--m); border-color: var(--m); color: #fff !important; }
.pt-tn-mat-ico { flex-shrink: 0; display: grid; place-items: center; width: 2.4rem; height: 2.4rem; border-radius: 10px; background: #fff; color: var(--m); font-size: 1.35rem; box-shadow: 0 4px 12px rgba(16, 24, 40, .08); }
.pt-tn-mat:not(.is-active) .pt-tn-mat-nom b { color: var(--m-txt); }
body.dark .pt-tn-mat-ico { background: var(--pt-surface, #242526); }
.pt-tn-mat.is-active .pt-tn-mat-ico { background: rgba(255, 255, 255, .22); color: #fff; box-shadow: none; }
body.dark .pt-tn-mat.is-active .pt-tn-mat-ico { background: rgba(0, 0, 0, .18); color: #18191A; }
.pt-tn-mat-nom { display: flex; flex-direction: column; min-width: 0; line-height: 1.25; }
.pt-tn-mat-nom b { font-weight: 600; overflow-wrap: normal; word-break: normal; hyphens: auto; }
.pt-tn-mat-nom small { color: var(--m-txt); font-weight: 600; font-size: .8rem; }
.pt-tn-mat.is-active .pt-tn-mat-nom small { color: rgba(255, 255, 255, .9); }
body.dark .pt-tn-mat.is-active { color: #18191A !important; }
body.dark .pt-tn-mat.is-active .pt-tn-mat-nom small { color: rgba(0, 0, 0, .7); }

/* ---------- Liste des leçons, aux couleurs de la matière ---------- */
.pt-tn-m-entete { display: flex; align-items: center; gap: .55rem; }
.pt-tn-m-puce { display: inline-flex; align-items: center; gap: .3rem; padding: .2rem .65rem; border-radius: 999px; background: var(--m-soft); color: var(--m-txt); font-size: .85rem; font-weight: 600; }
.pt-tn-m-puce i { font-size: 1.05rem; }
.pt-tn-bilan { border-top: 4px solid var(--m, var(--pt-primary)); }
.pt-tn-bilan b { color: var(--m-txt, var(--pt-primary)); }
.pt-tn-theme { display: flex; align-items: center; gap: .5rem; color: var(--m-txt, var(--pt-muted)); }
.pt-tn-theme::before { content: ""; width: 1.1rem; height: 4px; border-radius: 4px; background: var(--m, var(--pt-primary)); }
.pt-tn-lecon { border-left: 5px solid var(--m, var(--pt-primary)); }
.pt-tn-lecon.is-off { border-left-color: var(--pt-border); }
.pt-tn-lecon.is-maitrisee { border-left-color: var(--pt-success); background: linear-gradient(90deg, var(--pt-success-soft), var(--pt-surface) 45%); }
.pt-tn-lecon-num { background: var(--m-soft, var(--pt-primary-soft)); color: var(--m-txt, var(--pt-primary)); }

/* ---------- Pendant le test ---------- */
.pt-tn-test-tete > p:first-child { display: flex; flex-wrap: wrap; align-items: center; gap: .3rem .6rem; }
.pt-tn-test-tete .pt-tn-m-theme { color: var(--pt-muted); font-size: .9rem; }
.pt-tn-test .pt-tn-carte { border-top: 5px solid var(--m, var(--pt-primary)); }
.pt-tn-intro > i { display: inline-grid; place-items: center; width: 4.2rem; height: 4.2rem; border-radius: 50%; background: var(--m-soft, var(--pt-primary-soft)); color: var(--m-txt, var(--pt-primary)); font-size: 2.2rem; }
.pt-tn-etiquette { background: var(--m-soft, var(--pt-primary-soft)); color: var(--m-txt, var(--pt-primary)); }
.pt-tn-barre div { background: linear-gradient(90deg, var(--m, var(--pt-primary)), #FFC857 260%); }
.pt-tn-habs summary { color: var(--m-txt, var(--pt-primary)); }

/* ---------- Résultat ---------- */
.pt-tn-score { border-top: 5px solid var(--pt-primary); }
.pt-tn-score--ok { border-top-color: var(--pt-success); background: linear-gradient(160deg, var(--pt-success-soft) 0%, var(--pt-surface) 55%); }
.pt-tn-score--moyen { border-top-color: #C98A00; background: linear-gradient(160deg, var(--pt-warning-soft) 0%, var(--pt-surface) 55%); }
.pt-tn-score--faible { border-top-color: var(--pt-danger); background: linear-gradient(160deg, #FDECEC 0%, var(--pt-surface) 55%); }
body.dark .pt-tn-score--faible { background: linear-gradient(160deg, #3A1F1F 0%, var(--pt-surface) 55%); }
.pt-tn-score .pt-tn-m-puce { margin-bottom: .2rem; }
.pt-tn-maitrise { border-left: 5px solid var(--pt-primary); }
.pt-tn-maitrise.is-ok { border-left-color: var(--pt-success); }

/* Bilan par habileté : nom, barre de réussite et score sur une ligne (ordinateur) ou deux (mobile) */
.pt-tn-bh-resume { display: flex; flex-wrap: wrap; gap: .4rem; margin: -.4rem 0 .8rem; }
.pt-tn-bh-resume span { display: inline-flex; align-items: center; gap: .3rem; padding: .2rem .65rem; border-radius: 999px; font-size: .85rem; font-weight: 600; }
.pt-tn-bh-resume .is-ok { background: var(--pt-success-soft); color: var(--pt-success); }
.pt-tn-bh-resume .is-moyen { background: var(--pt-warning-soft); color: #8A5A00; }
.pt-tn-bh-resume .is-faible { background: #FDECEC; color: #9B1C1C; }
.pt-tn-bilan-habs { padding: .3rem 1.1rem; }
.pt-tn-bilan-habs li {
    display: grid; grid-template-columns: 1.6rem minmax(0, 1fr) minmax(150px, 34%); align-items: center;
    gap: .35rem .7rem; padding: .7rem 0;
}
.pt-tn-bh-ico { font-size: 1.35rem; line-height: 1; }
.pt-tn-bh-nom { min-width: 0; overflow-wrap: anywhere; line-height: 1.35; }
.pt-tn-bh-score { display: flex; align-items: center; gap: .6rem; }
.pt-tn-bh-barre { flex: 1; height: 10px; border-radius: 999px; background: var(--pt-surface-2); box-shadow: inset 0 0 0 1px var(--pt-border); overflow: hidden; }
.pt-tn-bh-barre i { display: block; height: 100%; min-width: 6px; border-radius: 999px; background: currentColor; }
.pt-tn-bh-score b { white-space: nowrap; font-size: .95rem; min-width: 2.6rem; text-align: right; }
.pt-tn-bilan-habs .is-ok { color: var(--pt-success); }
.pt-tn-bilan-habs .is-moyen { color: #C98A00; }
.pt-tn-bilan-habs .is-faible { color: var(--pt-danger); }
.pt-tn-bilan-habs .is-ok .pt-tn-bh-nom, .pt-tn-bilan-habs .is-moyen .pt-tn-bh-nom, .pt-tn-bilan-habs .is-faible .pt-tn-bh-nom { color: var(--pt-text); }
.pt-tn-bilan-habs .is-moyen b { color: #8A5A00; }
body.dark .pt-tn-bilan-habs .is-moyen b, body.dark .pt-tn-bh-resume .is-moyen { color: #F0C060; }
body.dark .pt-tn-bh-resume .is-faible { background: #3A1F1F; color: #F5B5B5; }
.pt-tn-bilan-habs .is-faible .pt-tn-bh-barre i { min-width: 0; }

.pt-tn-corr-exo { border-left: 5px solid var(--m, #C98A00); }

@media (max-width: 640px) {
    .pt-tn-hero { padding: 1.2rem 1.1rem 1.1rem; }
    .pt-tn .pt-tn-hero h1 { font-size: 1.5rem; }
    .pt-tn-mats { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .5rem; }
    /* Tuiles en colonne (icône au-dessus) pour que les noms longs ne soient pas coupés au milieu d'un mot */
    .pt-tn-mat { flex-direction: column; align-items: flex-start; padding: .65rem .7rem; gap: .45rem; }
    .pt-tn-mat-ico { width: 2.1rem; height: 2.1rem; font-size: 1.2rem; }
    .pt-tn-mat-nom b { font-size: .92rem; overflow-wrap: normal; hyphens: auto; }
    /* Bilan par habileté : nom en entier, puis la barre et le score dessous */
    .pt-tn-bilan-habs { padding: .2rem .9rem; }
    .pt-tn-bilan-habs li { grid-template-columns: 1.5rem minmax(0, 1fr); padding: .75rem 0; }
    .pt-tn-bh-score { grid-column: 2; }
    .pt-tn-maitrise { flex-direction: column; align-items: flex-start; text-align: left; }
    .pt-tn-maitrise > div { min-width: 0; width: 100%; }
}

/* ---------- Crédits (02/11/2026) ---------- */
.pt-tn-piece {
    display: inline-grid; place-items: center; flex-shrink: 0; width: 1.9rem; height: 1.9rem; border-radius: 50%;
    background: radial-gradient(circle at 35% 30%, #FFE08A, #F5B301 60%, #D99100); color: #6B4500;
    font-weight: 700; font-size: .9rem; box-shadow: inset 0 -2px 0 rgba(0,0,0,.15);
}
.pt-tn-piece--grand { width: 3.2rem; height: 3.2rem; font-size: 1.25rem; }
.pt-btn--petit { padding: .45rem .9rem; font-size: .9rem; }
.pt-btn--wa { background: #25D366 !important; border-color: #25D366 !important; color: #fff !important; display: inline-flex; align-items: center; gap: .4rem; }
.pt-btn--wa:hover { background: #1EBE5A !important; }

.pt-tn-credits {
    display: flex; flex-wrap: wrap; align-items: center; gap: .75rem 1rem; margin: 0 0 1.25rem;
    padding: .85rem 1rem; border-radius: var(--pt-radius-sm); border: 1px solid var(--pt-border); background: var(--pt-surface);
}
.pt-tn-credits-txt { flex: 1 1 220px; display: grid; }
.pt-tn-credits-txt b { font-size: 1.1rem; }
.pt-tn-credits-txt small { color: var(--pt-muted); }
.pt-tn-credits-act { display: flex; flex-wrap: wrap; gap: .5rem; }

.pt-tn-cout {
    display: flex; align-items: center; gap: .6rem; justify-content: center; text-align: left;
    margin: .75rem auto 1rem; padding: .6rem .9rem; border-radius: var(--pt-radius-sm); background: var(--pt-primary-soft); max-width: 34rem;
}
.pt-tn-cout a { color: var(--pt-primary); font-weight: 600; }
.pt-tn-cout.is-ok { background: var(--pt-success-soft); }
.pt-tn-cout .pt-tn-piece { width: 1.6rem; height: 1.6rem; font-size: .8rem; }

.pt-tn-manque .pt-tn-piece--grand { margin: 0 auto .5rem; }
.pt-tn-options { display: grid; grid-template-columns: repeat(auto-fit, minmax(170px, 1fr)); gap: .6rem; margin: 1rem 0; text-align: left; }
.pt-tn-option-cr {
    display: grid; gap: .15rem; padding: .8rem 1rem; border-radius: var(--pt-radius-sm); border: 1px solid var(--pt-border);
    background: var(--pt-surface); color: var(--pt-text) !important; text-decoration: none !important;
}
.pt-tn-option-cr:hover { border-color: var(--pt-primary); }
.pt-tn-option-cr b { color: var(--pt-primary); }
.pt-tn-option-cr small { color: var(--pt-muted); }

/* Pages « Mes crédits » et « Proposer un sujet » */
.pt-cr { max-width: 860px; }
.pt-cr-flash { padding: .8rem 1rem; border-radius: var(--pt-radius-sm); margin: 0 0 1rem; background: var(--pt-primary-soft); }
.pt-cr-flash--ok { background: var(--pt-success-soft); }
.pt-cr-flash--err { background: var(--pt-warning-soft); }
.pt-cr-flash a { color: var(--pt-primary); font-weight: 600; }
.pt-cr-solde { display: flex; gap: 1rem; align-items: flex-start; padding: 1.25rem; margin: 0 0 1.25rem; }
.pt-cr-solde h1 { margin: .1rem 0 .4rem; font-size: 1.9rem; }
.pt-cr-solde p { margin: .25rem 0; }
.pt-cr-pass { font-weight: 600; color: var(--pt-success); }
.pt-cr-bloc { padding: 1.25rem; margin: 0 0 1.25rem; }
.pt-cr-bloc h2 { font-size: 1.15rem; margin: 0 0 1rem; display: flex; gap: .5rem; align-items: center; }
.pt-cr-bloc h2 i { color: var(--pt-primary); }
.pt-cr-bloc h3 { font-size: 1rem; margin: 0 0 .4rem; }

.pt-cr-packs { display: grid; grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); gap: .75rem; margin: 0 0 1rem; }
.pt-cr-pack {
    position: relative; display: grid; gap: .15rem; padding: 1rem; border-radius: var(--pt-radius-sm);
    border: 2px solid var(--pt-border); background: var(--pt-surface); cursor: pointer; text-align: center;
}
.pt-cr-pack input { position: absolute; opacity: 0; pointer-events: none; }
.pt-cr-pack:has(input:checked) { border-color: var(--pt-primary); background: var(--pt-primary-soft); }
.pt-cr-pack:has(input:focus-visible) { outline: 3px solid var(--pt-focus, var(--pt-primary)); outline-offset: 2px; }
.pt-cr-pack-nom { font-weight: 600; }
.pt-cr-pack-prix { font-size: 1.5rem; font-weight: 700; color: var(--pt-primary); }
.pt-cr-pack-cr { font-weight: 500; }
.pt-cr-pack small { color: var(--pt-muted); }
.pt-cr-ruban {
    position: absolute; top: -.7rem; left: 50%; transform: translateX(-50%); white-space: nowrap;
    background: #F5B301; color: #3d2800; font-size: .72rem; font-weight: 600; padding: .1rem .55rem; border-radius: 999px;
}
.pt-cr-auto { margin: 0 0 1rem; }
.pt-cr-manuel { border-top: 1px solid var(--pt-border); padding-top: 1rem; }
.pt-cr-etapes { padding-left: 1.2rem; margin: 0 0 1rem; }
.pt-cr-etapes li { margin: .35rem 0; }
.pt-cr-numeros { list-style: none; padding: 0; margin: .5rem 0; display: flex; flex-wrap: wrap; gap: .5rem; }
.pt-cr-numeros li { padding: .4rem .75rem; border-radius: var(--pt-radius-sm); background: var(--pt-primary-soft); }
.pt-cr-numeros span { font-family: monospace; font-size: 1.05rem; margin-left: .3rem; }

.pt-cr-champs { display: grid; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); gap: .75rem; margin: 0 0 1rem; }
.pt-cr-champs label > span, .pt-cr-large > span { display: block; font-size: .88rem; font-weight: 500; margin-bottom: .25rem; }
.pt-cr input:not([type=radio]):not([type=file]), .pt-cr select, .pt-cr textarea {
    width: 100%; padding: .6rem .7rem; border-radius: var(--pt-radius-sm); border: 1px solid var(--pt-border);
    background: var(--pt-surface); color: var(--pt-text); font: inherit;
}
.pt-cr-large { grid-column: 1 / -1; display: block; margin: 0 0 1rem; }

.pt-cr-gagner { display: grid; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); gap: 1.25rem; }
.pt-cr-gagner p { margin: 0 0 .75rem; }
.pt-cr-lien { display: flex; gap: .5rem; margin: 0 0 .6rem; }
.pt-cr-lien input { flex: 1; min-width: 0; font-size: .85rem !important; }

.pt-cr-liste { list-style: none; padding: 0; margin: 0; }
.pt-cr-liste li { display: flex; justify-content: space-between; align-items: center; gap: .75rem; padding: .6rem 0; border-bottom: 1px solid var(--pt-border); }
.pt-cr-liste li:last-child { border-bottom: 0; }
.pt-cr-liste li > span:first-child { min-width: 0; overflow-wrap: anywhere; }
.pt-cr-liste small { display: block; color: var(--pt-muted); }
.pt-cr-statut { flex-shrink: 0; font-size: .78rem; font-weight: 600; padding: .15rem .6rem; border-radius: 999px; background: var(--pt-primary-soft); color: var(--pt-primary); white-space: nowrap; }
.pt-cr-statut.ok { background: var(--pt-success-soft); color: var(--pt-success); }
.pt-cr-statut.ko { background: var(--pt-warning-soft); color: var(--pt-danger); }
.pt-cr-montant { flex-shrink: 0; font-weight: 700; }
.pt-cr-montant.plus { color: var(--pt-success); }
.pt-cr-montant.moins { color: var(--pt-danger); }

.pt-cr-fichiers { display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: .75rem; margin: 0 0 1rem; }
.pt-cr-depot {
    position: relative; display: grid; justify-items: center; gap: .2rem; text-align: center; padding: 1.25rem 1rem;
    border: 2px dashed var(--pt-border); border-radius: var(--pt-radius-sm); background: var(--pt-surface); cursor: pointer;
}
.pt-cr-depot:hover, .pt-cr-depot.is-plein { border-color: var(--pt-primary); background: var(--pt-primary-soft); }
.pt-cr-depot i { font-size: 1.8rem; color: var(--pt-primary); }
.pt-cr-depot small { color: var(--pt-muted); }
.pt-cr-depot input[type=file] { position: absolute; inset: 0; opacity: 0; cursor: pointer; }
.pt-cr-choisis { font-size: .85rem; font-weight: 600; color: var(--pt-primary); overflow-wrap: anywhere; }

@media (max-width: 560px) {
    .pt-cr-solde { flex-direction: column; }
    .pt-cr-packs { grid-template-columns: 1fr 1fr; }
    .pt-tn-credits-act { width: 100%; }
    .pt-tn-credits-act .pt-btn { flex: 1; text-align: center; }
}

/* Fréquence des leçons aux examens (03/11/2026) */
.pt-tn-tri { display: flex; flex-wrap: wrap; align-items: center; gap: .4rem; margin: 0 0 .4rem; font-size: .9rem; }
.pt-tn-tri > span { color: var(--pt-muted); margin-right: .2rem; }
.pt-tn-tri a { display: inline-flex; align-items: center; gap: .3rem; padding: .3rem .8rem; border-radius: 999px; border: 1px solid var(--pt-border, #D6DEE8); color: var(--pt-text, #1F2A37); text-decoration: none; background: #fff; }
.pt-tn-tri a.is-active { background: #2B4C7E; border-color: #2B4C7E; color: #fff; }
.pt-tn-tri-note { margin: 0 0 .8rem; }
.pt-tn-freq { align-self: flex-start; display: inline-flex; align-items: center; gap: .25rem; margin: .25rem 0 .15rem; padding: .1rem .55rem; border-radius: 999px; font-size: .78rem; font-weight: 600; line-height: 1.5; }
.pt-tn-freq--tres { background: #FDEBD8; color: #9A4A06; }
.pt-tn-freq--freq { background: #E6EDF7; color: #2B4C7E; }
.pt-tn-freq--occ { background: #F1F3F6; color: #4B5563; }
.pt-tn-freq--jamais { background: transparent; color: var(--pt-muted); font-weight: 500; padding-left: 0; }
