:root{--fond: #f6f7fb;--surface: #ffffff;--texte: #23232a;--texte-doux: #5f6070;--trait: #dcdde6;--accent: #225ec4;--accent-texte: #ffffff;--acquis: #2f7d43;--en-cours: #225ec4;--a-revoir: #ff3b00;--nouveau: #9aa0b0;--danger: #a3241f;--ombre: 0 1px 2px rgba(20, 22, 40, 0.08)}@media(prefers-color-scheme: dark){:root{--fond: #15161c;--surface: #1e2028;--texte: #e8e9ef;--texte-doux: #a3a6b5;--trait: #32343f;--accent: #6f9bf0;--accent-texte: #10121a;--acquis: #5fb97a;--en-cours: #6f9bf0;--a-revoir: #ff7d55;--nouveau: #6c7080;--danger: #ef8b84;--ombre: none}}*{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{margin:0;background:var(--fond);color:var(--texte);font-family:system-ui,-apple-system,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;font-size:1rem;line-height:1.5}h1,h2,h3{line-height:1.25;margin:0}.view{display:flex;flex-direction:column;gap:1rem;margin:0 auto;max-width:44rem;padding:1rem 1rem calc(2rem + env(safe-area-inset-bottom, 0px))}.app-header{align-items:center;display:grid;gap:.5rem;grid-template-columns:auto 1fr auto}.app-header h1{font-size:1.15rem;overflow:hidden;text-align:center;text-overflow:ellipsis;white-space:nowrap}.app-header .bar{grid-column:1/-1}.app-header.app-header-simple{grid-template-columns:1fr auto}.app-header.app-header-simple h1{text-align:left}.app-header.app-header-liens{grid-template-columns:1fr}.app-header.app-header-liens .liens{flex-wrap:wrap;gap:1rem}.label{color:var(--texte-doux);font-size:.8rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase}.hint{color:var(--texte-doux);font-size:.85rem;margin:0}.toast{background:var(--surface);border:1px solid var(--trait);border-radius:12px;margin:0;padding:.5rem 1rem;text-align:center}.compteur{color:var(--texte-doux);font-variant-numeric:tabular-nums}:focus-visible{outline:3px solid var(--accent);outline-offset:2px}button{font:inherit}.primary,.secondary{border-radius:12px;border:1px solid rgba(0,0,0,0);cursor:pointer;font-weight:700;min-height:48px;padding:.5rem 1rem;width:100%}.primary{background:var(--accent);color:var(--accent-texte)}.primary:disabled{background:var(--trait);color:var(--texte-doux);cursor:default}.secondary{background:var(--surface);border-color:var(--trait);color:var(--texte)}.secondary.danger{color:var(--danger)}.link,.lien-danger{background:none;border:0;color:var(--accent);cursor:pointer;font-weight:600;min-height:48px;padding:0 .25rem;text-align:left}.lien-danger{color:var(--danger);font-size:.85rem}.segmented{display:flex;flex-direction:column;gap:.25rem}.segments{background:var(--surface);border:1px solid var(--trait);border-radius:12px;display:grid;gap:2px;grid-auto-columns:1fr;grid-auto-flow:column;padding:3px}.segment{background:none;border:0;font-size:.9rem;white-space:nowrap;border-radius:calc(12px - 4px);color:var(--texte-doux);cursor:pointer;font-weight:600;min-height:calc(48px - 8px);padding:0 .25rem}.segment.is-active{background:var(--accent);color:var(--accent-texte)}.bar{background:var(--trait);border-radius:999px;display:flex;height:8px;overflow:hidden;width:100%}.bar-part{display:block;height:100%}.bar-acquis{background:var(--acquis)}.bar-enCours{background:var(--en-cours)}.bar-aRevoir{background:var(--a-revoir)}.bar-nouveau{background:var(--nouveau)}.chips{display:flex;flex-wrap:wrap;gap:.25rem .5rem;margin:0}.chip{border-radius:999px;border:1px solid var(--trait);color:var(--texte-doux);font-size:.78rem;padding:1px .5rem;white-space:nowrap}.chip-acquis{border-color:var(--acquis);color:var(--acquis)}.chip-enCours{border-color:var(--en-cours);color:var(--en-cours)}.chip-aRevoir{border-color:var(--a-revoir);color:var(--a-revoir)}.resume{background:var(--surface);border:1px solid var(--trait);border-radius:12px;box-shadow:var(--ombre);display:flex;flex-direction:column;gap:.5rem;padding:1rem}.resume-texte{color:var(--texte-doux);font-size:.9rem;margin:0}.decks{display:flex;flex-direction:column;gap:.5rem}@media(min-width: 48rem){.decks{display:grid;grid-template-columns:1fr 1fr}}.deck{background:var(--surface);border:1px solid var(--trait);border-radius:12px;box-shadow:var(--ombre);color:inherit;cursor:pointer;display:flex;flex-direction:column;gap:.5rem;padding:1rem;text-align:left;width:100%}.deck.is-empty{cursor:default;opacity:.55}.deck-head{align-items:baseline;display:flex;gap:.5rem;justify-content:space-between}.deck-titre{font-size:1.05rem;font-weight:700}.deck-compte{background:var(--accent);border-radius:999px;color:var(--accent-texte);font-variant-numeric:tabular-nums;font-weight:700;min-width:2rem;padding:0 .5rem;text-align:center}.deck-desc{color:var(--texte-doux);font-size:.88rem;margin:0}.jour-carte{background:var(--surface);border:2px solid var(--accent);border-radius:12px;box-shadow:var(--ombre);display:flex;flex-direction:column;gap:.5rem;padding:1rem}.jour-carte h2{font-size:1.1rem}.jour-tete{align-items:center;display:flex;flex-wrap:wrap;gap:.5rem;margin:0}.jour-jm{background:var(--accent);border-radius:999px;color:var(--accent-texte);font-size:.8rem;font-weight:700;padding:1px .5rem}.phase{border:1px solid var(--trait);border-radius:999px;color:var(--texte-doux);font-size:.78rem;padding:1px .5rem}.jour-consigne{margin:0}.jour-fait{color:var(--texte-doux);font-size:.85rem;margin:0}.jours{display:flex;flex-direction:column;gap:.5rem;list-style:none;margin:0;padding:0}.jour{background:var(--surface);border:1px solid var(--trait);border-left:4px solid var(--trait);border-radius:12px;display:flex;flex-direction:column;gap:.25rem;padding:.5rem 1rem}.jour.is-aujourdhui{border-left-color:var(--accent)}.jour.is-fait{border-left-color:var(--acquis)}.jour-date{font-weight:700;text-transform:capitalize}.resume-titre{font-weight:700;margin:0}.note-bloc{display:flex;flex-direction:column;gap:.5rem}.note-champ{background:var(--surface);border:1px solid var(--trait);border-radius:12px;color:var(--texte);font-family:system-ui,-apple-system,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;font-size:1rem;padding:.5rem;resize:vertical;width:100%}.note-actions{display:grid;gap:.5rem;grid-template-columns:1fr auto;align-items:center}.note-texte{background:var(--surface);border:1px solid var(--trait);border-left:4px solid var(--a-revoir);border-radius:12px;margin:0;padding:.5rem 1rem;white-space:pre-wrap}.note-groupe{display:flex;flex-direction:column;gap:.5rem}.note-fiche{background:var(--surface);border:1px solid var(--trait);border-radius:12px;display:flex;flex-direction:column;gap:.25rem;padding:1rem}.note-question{font-weight:700;margin:0}.note-meta{color:var(--texte-doux);font-size:.78rem;margin:0}.lien-bouton{display:block;text-align:center;text-decoration:none;line-height:48px}.liens{display:flex;gap:.5rem}.documents{display:flex;flex-direction:column;gap:.5rem}.doc-duree{color:var(--texte-doux);font-size:.85rem;white-space:nowrap}.bar-doc{height:4px}.view-lecture{padding-top:0}.lecture-tete{background:var(--fond);padding-top:.5rem;position:sticky;top:0;z-index:3}.jauge{background:var(--trait);border-radius:999px;height:4px;margin-top:.25rem;overflow:hidden}.jauge-part{background:var(--accent);display:block;height:100%;width:0}.sommaire{background:var(--surface);border:1px solid var(--trait);border-radius:12px;padding:.5rem 1rem}.sommaire summary{cursor:pointer;font-weight:700;min-height:48px;line-height:48px}.sommaire ol{list-style:none;margin:0 0 .5rem;padding:0}.sommaire li.niveau-3{padding-left:1rem}.sommaire .link{min-height:2.2rem;text-align:left}.reprise{bottom:1rem;left:1rem;position:fixed;right:1rem;z-index:3}.doc{font-size:1.02rem;line-height:1.6;overflow-wrap:break-word}.doc h2{border-top:1px solid var(--trait);font-size:1.25rem;margin:2rem 0 .5rem;padding-top:1rem;scroll-margin-top:4.5rem}.doc h3{font-size:1.05rem;margin:1.5rem 0 .25rem;scroll-margin-top:4.5rem}.doc h4{font-size:1rem;margin:1rem 0 .25rem}.doc p,.doc ul,.doc ol,.doc blockquote{margin:0 0 1rem}.doc ul,.doc ol{padding-left:1.2rem}.doc li+li{margin-top:.25rem}.doc strong{color:var(--texte)}.doc code{background:var(--surface);border:1px solid var(--trait);border-radius:4px;font-family:ui-monospace,"SFMono-Regular","Cascadia Mono",Consolas,monospace;font-size:.88em;padding:0 3px}.doc pre{background:var(--surface);border:1px solid var(--trait);border-radius:12px;overflow-x:auto;padding:.5rem}.doc table{border-collapse:collapse;display:block;font-size:.9rem;margin:0 0 1rem;width:100%}.doc thead{display:none}.doc tbody,.doc tr,.doc td{display:block;width:100%}.doc tr{background:var(--surface);border:1px solid var(--trait);border-radius:12px;margin-bottom:.5rem;padding:.5rem 1rem}.doc td{border:0;padding:1px 0}.doc td:first-child{font-weight:700}.doc td[data-libelle]::before{color:var(--texte-doux);content:attr(data-libelle) " : ";font-weight:600}@media(min-width: 48rem){.doc table{display:table;font-size:.86rem;overflow-x:auto}.doc thead{display:table-header-group}.doc tbody{display:table-row-group}.doc tr{background:none;border:0;border-radius:0;display:table-row;margin:0;padding:0}.doc th,.doc td{border:1px solid var(--trait);display:table-cell;padding:.25rem .5rem;text-align:left;vertical-align:top;width:auto}.doc th{background:var(--surface)}.doc td[data-libelle]::before{content:none}}.doc figure{margin:0 0 1rem}.doc img{background:#fff;border:1px solid var(--trait);border-radius:12px;display:block;height:auto;max-width:100%;padding:.5rem}.doc figcaption{color:var(--texte-doux);font-size:.85rem;margin-top:.25rem}.doc hr{border:0;border-top:1px solid var(--trait);margin:1.5rem 0}.doc .tag,.doc .lvl,.doc .crit{border-radius:999px;display:inline-block;font-size:.78rem;font-weight:700;padding:0 .5rem;white-space:nowrap}.doc .tag{background:var(--accent);color:var(--accent-texte)}.doc .tag-should{background:var(--en-cours)}.doc .tag-could{background:var(--nouveau)}.doc .lvl-bon,.doc .crit-faible{background:#ded;color:#245a2a}.doc .lvl-moyen,.doc .crit-moderee{background:#faf0c8;color:#6b5a12}.doc .lvl-faible,.doc .crit-elevee{background:#f5dcc0;color:#7a3d0a}.doc .lvl-critique,.doc .crit-critique{background:#e8c4c8;color:#6b1a22}.doc .lvl-nm{background:#eceef2;color:#555a66}.doc .risk-matrix{display:grid;font-size:.75rem;gap:2px;grid-template-columns:auto repeat(3, 1fr);margin-bottom:1rem}.doc .rm-axis{align-items:center;color:var(--texte-doux);display:flex;font-weight:700;padding:2px}.doc .rm-cell{border-radius:4px;color:#321;min-height:2.2rem;padding:.25rem}.doc .z-faible{background:#ded}.doc .z-moderee{background:#faf0c8}.doc .z-elevee{background:#f5dcc0}.doc .z-critique{background:#e8c4c8}.doc .surligne{animation:surlignage 2.5s ease-out;scroll-margin-top:4.5rem}@keyframes surlignage{from{background:rgba(255,59,0,.22)}to{background:rgba(0,0,0,0)}}.doc tr[id]{scroll-margin-top:4.5rem}.lien-doc{align-self:flex-start}.view-session{min-height:100svh;padding-bottom:calc(48px + 2rem + env(safe-area-inset-bottom, 0px))}.carte{background:var(--surface);border:1px solid var(--trait);border-radius:12px;box-shadow:var(--ombre);display:flex;flex-direction:column;gap:1rem;padding:1rem}.carte-meta{color:var(--texte-doux);font-size:.78rem;margin:0;text-transform:lowercase}.carte-question{font-size:1.3rem;font-weight:700}.carte-masque{color:var(--texte-doux);font-style:italic;margin:0}.carte-reponse{font-size:1rem}.carte-reponse>:first-child{margin-top:0}.carte-reponse>:last-child{margin-bottom:0}.carte-reponse p,.carte-reponse ul,.carte-reponse ol{margin:0 0 .5rem}.carte-reponse ul,.carte-reponse ol{padding-left:1.2rem}.carte-reponse li+li{margin-top:.25rem}.carte-reponse code{background:var(--fond);border-radius:4px;font-family:ui-monospace,"SFMono-Regular","Cascadia Mono",Consolas,monospace;font-size:.9em;padding:0 3px}.carte-reponse strong{color:var(--texte)}.carte-reponse table{border-collapse:collapse;display:block;font-size:.88rem;overflow-x:auto;width:100%}.carte-reponse th,.carte-reponse td{border:1px solid var(--trait);padding:.25rem .5rem;text-align:left;vertical-align:top}.carte-reponse th{background:var(--fond)}.actions{background:var(--fond);bottom:0;display:grid;gap:.5rem;margin:0 -1rem;padding:.5rem 1rem calc(0.5rem + env(safe-area-inset-bottom, 0px));position:sticky}.actions.actions-notes{grid-template-columns:repeat(3, 1fr)}.note{border-radius:12px;border:1px solid var(--trait);background:var(--surface);color:var(--texte);cursor:pointer;font-weight:700;min-height:48px;padding:0 .25rem}.note:disabled{opacity:.6}.note-revoir{border-color:var(--a-revoir);color:var(--a-revoir)}.note-hesitant{border-color:var(--en-cours);color:var(--en-cours)}.note-acquis{border-color:var(--acquis);color:var(--acquis)}.bilan{background:var(--surface);border:1px solid var(--trait);border-radius:12px;display:flex;flex-direction:column;gap:1rem;padding:1rem;text-align:center}.deck-stat{cursor:default}.deck-stat .deck-compte{background:var(--a-revoir)}