:root{--principal: #C2410C;--principal-clair: #FF5A14;--jaune: #F2B51F;--texte: #222222;--texte-secondaire: #5D574C;--accent: #9A3412;--reussite: #166534;--bien: #155E75;--attention: #9A3412;--alerte: #B91C1C;--special: #7E22CE;--classe: #78716C;--fond: #F3EBDF;--surface: #FBF7F0;--trait: rgba(34, 34, 34, .12);--encre: #222222;--cadre: 2px solid #222222;--mono: "JetBrains Mono", ui-monospace, monospace;--titre: "Archivo Black", "Archivo", sans-serif;--ombre: none;--rayon: 0px;--barre: 64px;color-scheme:light}*{box-sizing:border-box}html,body{margin:0;background:var(--fond);color:var(--texte)}body{font-family:Archivo,ui-rounded,SF Pro Rounded,system-ui,-apple-system,Segoe UI,Roboto,sans-serif;font-size:17px;line-height:1.35;-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:transparent}button{font:inherit;color:inherit;background:none;border:0;padding:0;cursor:pointer}button:disabled{opacity:.5;cursor:default}:focus-visible{outline:3px solid var(--jaune);outline-offset:2px;border-radius:8px}.chiffres{font-variant-numeric:tabular-nums}.secondaire{color:var(--texte-secondaire)}.petit{font-size:13px}.moyen{font-size:15px}.gras{font-weight:600}.tres-gras{font-weight:700}.ligne{display:flex;align-items:center;gap:8px;min-width:0}.pousse{flex:1;min-width:0}.tronque{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.visuellement-cache{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}.app{max-width:640px;margin:0 auto;min-height:100dvh;padding-bottom:calc(var(--barre) + env(safe-area-inset-bottom) + 16px)}.entete{position:sticky;top:0;z-index:5;display:flex;align-items:center;gap:8px;padding:calc(env(safe-area-inset-top) + 10px) 16px 10px;background:color-mix(in srgb,var(--fond) 88%,transparent);backdrop-filter:saturate(1.6) blur(16px);-webkit-backdrop-filter:saturate(1.6) blur(16px)}.entete h1{margin:0;font-size:32px;font-weight:900;letter-spacing:-.01em;flex:1}.entete h1.compact{font-size:17px;font-weight:700;text-align:center}.bouton-icone{width:44px;height:44px;display:grid;place-items:center;border-radius:12px;color:var(--principal)}.bouton-icone:active{background:var(--trait)}.bouton-texte{color:var(--principal);font-weight:600;min-height:44px;padding:0 6px}.contenu{padding:0 16px;display:flex;flex-direction:column;gap:20px}.barre-onglets{position:fixed;left:0;right:0;bottom:0;z-index:10;display:flex;justify-content:center;background:color-mix(in srgb,var(--surface) 92%,transparent);backdrop-filter:saturate(1.6) blur(16px);-webkit-backdrop-filter:saturate(1.6) blur(16px);border-top:1px solid var(--trait);padding-bottom:env(safe-area-inset-bottom)}.barre-onglets nav{display:flex;width:100%;max-width:640px}.onglet{flex:1;height:var(--barre);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;font-size:11px;font-weight:600;color:var(--texte-secondaire)}.onglet-icone{width:60px;height:32px;border-radius:999px;display:grid;place-items:center;transition:background .2s}.onglet[aria-current=page]{color:var(--principal)}.onglet[aria-current=page] .onglet-icone{background:color-mix(in srgb,var(--principal) 14%,transparent)}.onglet[aria-current=page] .onglet-icone svg{fill:color-mix(in srgb,var(--principal) 22%,transparent)}.carte{background:var(--surface);border-radius:var(--rayon);padding:18px;display:flex;flex-direction:column;gap:14px;box-shadow:var(--ombre)}.titre-carte{display:flex;align-items:center;gap:8px;font-weight:800;font-size:19px}.icone-ronde{width:32px;height:32px;border-radius:50%;display:grid;place-items:center;flex:none}.section-titre{font-size:13px;text-transform:uppercase;letter-spacing:.03em;color:var(--texte-secondaire);font-weight:600;margin:4px 16px -8px;display:flex;justify-content:space-between}.liste{background:var(--surface);border-radius:var(--rayon);overflow:hidden;box-shadow:var(--ombre)}.liste>*+*{border-top:1px solid var(--trait)}.rangee{display:flex;align-items:center;gap:12px;padding:12px 16px;min-height:52px;width:100%;text-align:left}button.rangee:active,.rangee.cliquable:active{background:var(--fond)}.chevron{color:#b5ac9c;flex:none}.pied-section{font-size:13px;color:var(--texte-secondaire);margin:-8px 16px 0}.badge{display:inline-flex;align-items:center;font-size:12px;font-weight:600;padding:2px 8px;border-radius:999px;white-space:nowrap;flex:none}.pastille-matiere{width:32px;height:32px;border-radius:50%;flex:none;display:grid;place-items:center;color:#fff;font-size:15px;font-weight:900}.bouton-plein{width:100%;min-height:50px;border-radius:14px;background:var(--principal);color:#fff;font-weight:700;font-size:17px}.bouton-plein:active{filter:brightness(.92)}.bouton-doux{width:100%;min-height:44px;border-radius:12px;background:color-mix(in srgb,var(--principal) 12%,transparent);color:var(--principal);font-weight:600;font-size:15px}.bouton-doux.ambre{background:color-mix(in srgb,var(--accent) 12%,transparent);color:var(--accent)}.bouton-danger{color:var(--alerte);font-weight:600}.bandeau-erreur{background:color-mix(in srgb,var(--attention) 12%,transparent);color:var(--attention);border-radius:12px;padding:12px;font-size:14px}.etat-vide{text-align:center;padding:48px 24px}.etat-vide h2{margin:0 0 6px;font-size:20px}.chargement{display:flex;flex-direction:column;align-items:center;gap:12px;padding:40px 0;color:var(--texte-secondaire);font-weight:600;font-size:15px}.roue{width:28px;height:28px;border-radius:50%;border:3px solid var(--trait);border-top-color:var(--principal);animation:tourne .8s linear infinite}.roue.petite{width:18px;height:18px;border-width:2px}@keyframes tourne{to{transform:rotate(360deg)}}.bandeau-accueil{position:relative;overflow:hidden;border-radius:26px;padding:16px;color:#fff;background:var(--principal);display:flex;flex-direction:column;gap:12px}.bandeau-accueil .date{font-size:15px;font-weight:600;opacity:.92}.bandeau-accueil h2{margin:0;font-size:32px;font-weight:900;line-height:1.1}.phrase-jour{background:#fff;color:var(--principal);border-radius:16px;padding:12px;font-size:15px;font-weight:500;position:relative}.avatar{width:72px;height:72px;border-radius:50%;flex:none;overflow:hidden;background:#ffffff38;display:grid;place-items:center;font-size:30px;font-weight:800;color:#fff;border:3px solid rgba(255,255,255,.7);position:relative}.avatar img{width:100%;height:100%;object-fit:cover}.avatar .crayon{position:absolute;right:0;bottom:0;width:24px;height:24px;border-radius:50%;background:#fff;color:var(--principal);display:grid;place-items:center}.bloc-moyenne{display:flex;flex-direction:column;gap:16px}.anneaux-valeurs{display:flex;align-items:center;gap:16px}.valeur-anneau .titre{font-size:15px;font-weight:600}.valeur-anneau .nombre{font-size:26px;font-weight:800;font-variant-numeric:tabular-nums}.valeur-anneau .sur{font-size:15px;font-weight:700}.ecart{display:inline-flex;align-items:center;gap:4px;padding:4px 8px;border-radius:999px;font-size:15px;font-weight:700;font-variant-numeric:tabular-nums}.ecart small{font-size:12px;font-weight:500}.anneau-progres{transition:stroke-dashoffset 1s ease-out}@media (prefers-reduced-motion: reduce){.anneau-progres{transition:none}}.courbe{background:var(--fond);border-radius:16px;padding:12px}.courbe svg{display:block;width:100%;height:auto;overflow:visible}.legende{display:flex;gap:16px;font-size:12px;color:var(--texte-secondaire)}.legende span{display:inline-flex;align-items:center;gap:4px}.selecteur{display:flex;background:#7676801f;border-radius:10px;padding:2px}.selecteur button{flex:1;min-height:34px;border-radius:8px;font-size:14px;font-weight:600;color:var(--texte)}.selecteur button[aria-pressed=true]{background:var(--surface);box-shadow:0 1px 3px #0000001f}.case{width:44px;height:44px;display:grid;place-items:center;flex:none;margin:-4px -6px -4px -10px}.case svg{transition:transform .2s}.case:active svg{transform:scale(.85)}.devoir{display:flex;align-items:flex-start;gap:8px;padding:6px 16px 6px 12px}.devoir-corps{flex:1;min-width:0;padding:4px 0;display:flex;flex-direction:column;gap:4px;cursor:pointer}.devoir-corps .contenu-devoir{font-size:15px;white-space:pre-line}.devoir-corps .contenu-devoir.replie{display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}.encadre{background:var(--fond);border-radius:12px;padding:8px;font-size:13px;white-space:pre-line}.source-mail{color:var(--principal);font-size:13px;display:flex;gap:4px;align-items:baseline}.fiche{display:flex;align-items:center;gap:10px;padding:8px;border-radius:12px;background:var(--fond);width:100%;text-align:left;min-height:44px}.barre-semaine{display:flex;align-items:center;gap:4px;padding:6px 8px;background:color-mix(in srgb,var(--surface) 80%,transparent);border-radius:var(--rayon)}.jour-semaine{flex:1;min-height:52px;border-radius:12px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1px}.jour-semaine .nom{font-size:12px;text-transform:capitalize}.jour-semaine .num{font-size:17px;font-weight:700;font-variant-numeric:tabular-nums}.jour-semaine.choisi{background:var(--jaune);color:var(--texte)}.jour-semaine.aujourdhui:not(.choisi){box-shadow:inset 0 0 0 1.5px var(--principal);color:var(--principal)}.heures{min-width:50px;text-align:right;font-variant-numeric:tabular-nums}.barre{text-decoration:line-through;color:var(--texte-secondaire)}.voile{position:fixed;top:0;right:0;bottom:0;left:0;z-index:20;background:#22222259;display:flex;align-items:flex-end;justify-content:center;animation:apparait .2s ease-out}.feuille{background:var(--fond);width:100%;max-width:640px;max-height:calc(100dvh - env(safe-area-inset-top) - 24px);border-radius:20px 20px 0 0;display:flex;flex-direction:column;animation:monte .28s cubic-bezier(.2,.9,.3,1)}.feuille-entete{display:flex;align-items:center;padding:10px 8px 10px 16px;gap:8px;border-bottom:1px solid var(--trait)}.feuille-entete h2{margin:0;flex:1;font-size:17px;font-weight:700;text-align:center;padding-left:44px}.feuille-corps>*{flex-shrink:0}.feuille-corps{overflow-y:auto;padding:16px 16px calc(env(safe-area-inset-bottom) + 24px);display:flex;flex-direction:column;gap:16px;-webkit-overflow-scrolling:touch}@keyframes apparait{0%{opacity:0}}@keyframes monte{0%{transform:translateY(40px);opacity:.5}}@media (min-width: 700px){.voile{align-items:center}.feuille{border-radius:20px}}@media (prefers-reduced-motion: reduce){.voile,.feuille{animation:none}}.champ{width:100%;min-height:50px;border:0;padding:0 16px;font:inherit;background:var(--surface);color:var(--texte)}.champ:focus{outline:none;background:#fffdf8}input[type=range]{width:100%;accent-color:var(--principal);height:32px}select.champ{-webkit-appearance:none;-moz-appearance:none;appearance:none;background-image:linear-gradient(45deg,transparent 50%,var(--texte-secondaire) 50%),linear-gradient(135deg,var(--texte-secondaire) 50%,transparent 50%);background-position:calc(100% - 22px) 50%,calc(100% - 16px) 50%;background-size:6px 6px;background-repeat:no-repeat}.pas-a-pas{display:flex;align-items:center;gap:8px}.pas-a-pas button{width:40px;height:34px;border-radius:8px;background:#7676801f;font-size:20px;font-weight:600}.interrupteur{position:relative;width:51px;height:31px;flex:none}.interrupteur input{opacity:0;width:100%;height:100%;margin:0;position:absolute;cursor:pointer;z-index:1}.interrupteur span{position:absolute;top:0;right:0;bottom:0;left:0;border-radius:999px;background:#7878803d;transition:background .2s}.interrupteur span:after{content:"";position:absolute;top:2px;left:2px;width:27px;height:27px;border-radius:50%;background:#fff;box-shadow:0 2px 4px #0003;transition:transform .2s}.interrupteur input:checked+span{background:var(--principal)}.interrupteur input:checked+span:after{transform:translate(20px)}.interrupteur input:focus-visible+span{outline:3px solid var(--jaune);outline-offset:2px}.confettis{position:fixed;top:0;right:0;bottom:0;left:0;pointer-events:none;z-index:30}.bravo{position:fixed;left:50%;top:40%;transform:translate(-50%,-50%);z-index:31;background:#fffffff2;-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);border-radius:24px;padding:24px;text-align:center;box-shadow:0 8px 40px #0000001f;animation:rebond .4s cubic-bezier(.3,1.6,.5,1);width:min(320px,calc(100% - 48px))}.bravo h2{margin:8px 0 4px}@keyframes rebond{0%{transform:translate(-50%,-50%) scale(.8);opacity:0}}.jour-devoirs{display:flex;flex-direction:column;gap:10px;margin-top:8px}.jour-devoirs+.jour-devoirs{padding-top:12px;border-top:2px dashed rgba(34,34,34,.12)}.titre-jour{position:sticky;top:calc(env(safe-area-inset-top) + 62px);z-index:4;margin:0 -16px;padding:8px 16px;display:flex;align-items:baseline;gap:8px;background:color-mix(in srgb,var(--fond) 92%,transparent);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px)}.titre-jour .principal{font-size:22px;font-weight:800;text-transform:capitalize;color:var(--principal)}.titre-jour .date{font-size:15px;font-weight:600;color:var(--texte-secondaire);flex:1}.titre-jour .compte{font-size:13px;font-weight:700;padding:3px 10px;border-radius:999px;background:var(--jaune);color:var(--texte)}.tirer{display:flex;align-items:center;justify-content:center;gap:8px;overflow:hidden;font-size:13px;font-weight:600;color:var(--texte-secondaire);padding-top:env(safe-area-inset-top);transition:height .15s}.apercu{width:100%;min-height:60vh;border:0;border-radius:12px;background:var(--surface)}.apercu-image{width:100%;height:auto;border-radius:12px;display:block}.titre-bloc{margin:0 0 10px;font-size:19px;font-weight:800}.defile-cours{display:flex;gap:12px;overflow-x:auto;scroll-snap-type:x mandatory;margin:0 -16px;padding:2px 16px 10px;scrollbar-width:none}.defile-cours::-webkit-scrollbar{display:none}.carte-cours{flex:none;width:150px;scroll-snap-align:start;background:var(--surface);border-radius:var(--rayon);padding:14px;display:flex;flex-direction:column;gap:8px;box-shadow:var(--ombre)}.carte-cours.annule{opacity:.7}body{background:var(--fond)}.entete{background:color-mix(in srgb,var(--fond) 94%,transparent);border-bottom:var(--cadre)}.entete h1{font-family:var(--titre);font-weight:400;font-size:30px;letter-spacing:-.01em;text-transform:none}.entete h1.compact{font-size:18px}.bouton-icone{border-radius:0;color:var(--encre)}.bouton-texte{font-family:var(--mono);font-size:12px;letter-spacing:.12em;text-transform:uppercase;color:var(--encre);border:var(--cadre);padding:0 10px;min-height:36px}.carte,.liste,.carte-cours{border:var(--cadre);border-radius:0;box-shadow:none;background:var(--surface)}.titre-carte{font-family:var(--titre);font-weight:400;font-size:19px}.titre-carte .icone-ronde{border-radius:0}.liste>*+*{border-top:var(--cadre)}.section-titre,.titre-bloc{font-family:var(--mono);font-size:11px;font-weight:700;letter-spacing:.18em;text-transform:uppercase;color:var(--encre)}.badge{border-radius:0;font-family:var(--mono);font-size:10px;letter-spacing:.12em;text-transform:uppercase}.pastille-matiere{font-family:var(--titre);font-weight:400}.bouton-plein{border-radius:0;background:var(--encre);color:var(--fond);font-family:var(--mono);font-size:13px;letter-spacing:.18em;text-transform:uppercase}.bouton-doux,.bouton-doux.ambre{border-radius:0;background:var(--surface);color:var(--encre);border:var(--cadre);font-family:var(--mono);font-size:12px;letter-spacing:.14em;text-transform:uppercase}.bandeau-erreur{border-radius:0;border:2px solid var(--attention)}.champ:focus{background:#fffdf8}.selecteur{border-radius:0;background:transparent;border:var(--cadre);padding:0}.selecteur button{border-radius:0;font-family:var(--mono);font-size:11px;letter-spacing:.02em;text-transform:uppercase}.selecteur button[aria-pressed=true]{background:var(--encre);color:var(--fond);box-shadow:none}.encadre,.fiche{border-radius:0;border:1.5px solid var(--encre);background:var(--surface)}.feuille{border-radius:0;border-top:var(--cadre)}@media (min-width: 700px){.feuille{border-radius:0;border:var(--cadre)}}.courbe{border-radius:0;background:transparent;padding:0}.ecart{border-radius:0;font-family:var(--mono);font-size:13px}.valeur-anneau .titre{font-family:var(--mono);font-size:11px;letter-spacing:.18em;text-transform:uppercase;font-weight:400}.valeur-anneau .nombre{font-family:var(--titre);font-weight:400}.bravo{border-radius:0;border:var(--cadre);background:var(--surface)}.barre-onglets{background:var(--fond);border-top:var(--cadre);backdrop-filter:none;-webkit-backdrop-filter:none}.onglet{font-family:var(--mono);font-size:10px;letter-spacing:.1em;text-transform:uppercase;font-weight:400;color:var(--texte-secondaire)}.onglet[aria-current=page]{background:var(--encre);color:var(--fond)}.onglet-icone{border-radius:0;height:28px}.onglet[aria-current=page] .onglet-icone{background:transparent}.onglet[aria-current=page] .onglet-icone svg{fill:none}.salut{display:flex;flex-direction:column;gap:14px;padding-top:4px}.salut-titre{margin:0;font-family:var(--titre);font-weight:400;font-size:60px;line-height:.88;letter-spacing:-.03em;text-transform:uppercase;display:flex;flex-direction:column;gap:4px}.salut-ligne{display:flex;align-items:center;gap:6px}.salut-ligne.petit-titre{font-size:min(52px,12vw)}.demi-rond{width:.45em;height:.9em;border-radius:0 1em 1em 0;background:#4e4793;flex:none}.rond-o{display:inline-block;width:.8em;height:.8em;border-radius:50%;background:#ff5a14;margin:0 .03em}.salut-date{font-family:var(--mono);font-size:12px;letter-spacing:.16em;text-transform:uppercase}.tuiles{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.tuile{min-height:124px;padding:14px;display:flex;flex-direction:column;gap:6px;color:var(--encre)}.tuile-label{font-family:var(--mono);font-size:10px;letter-spacing:.16em;text-transform:uppercase}.tuile-valeur{font-family:var(--titre);font-size:40px;line-height:1}.tuile-valeur.moyenne-taille{font-size:22px}.tuile-pied{margin-top:auto;font-family:var(--mono);font-size:12px}.phrase-jour{border:var(--cadre);border-radius:0;background:var(--surface);color:var(--encre);font-size:15px;line-height:1.45}.avatar{width:52px;height:52px;border:var(--cadre);background:var(--jaune);color:var(--encre);font-family:var(--titre);font-size:24px;font-weight:400}.avatar .crayon{background:var(--encre);color:var(--fond);width:20px;height:20px}.titre-jour{border-bottom:var(--cadre)}.titre-jour .principal{font-family:var(--titre);font-weight:400;color:var(--encre)}.titre-jour .date{font-family:var(--mono);font-size:12px;letter-spacing:.12em;text-transform:uppercase}.titre-jour .compte{border-radius:0;font-family:var(--mono);font-size:11px;letter-spacing:.1em;text-transform:uppercase}.jour-devoirs+.jour-devoirs{border-top:0}.barre-semaine{border-radius:0;background:transparent;padding:0;gap:4px}.jour-semaine{border-radius:0;border:var(--cadre);font-family:var(--mono)}.jour-semaine .num{font-family:var(--titre);font-weight:400;font-size:20px}.jour-semaine.choisi{background:var(--encre);color:var(--fond)}.jour-semaine.aujourdhui:not(.choisi){box-shadow:inset 0 -5px #ff5a14;color:var(--encre)}.edt-resume{font-family:var(--mono);font-size:12px;letter-spacing:.14em;text-transform:uppercase}.edt-liste{display:flex;flex-direction:column;gap:6px}.edt-ligne{display:flex;gap:10px;align-items:stretch}.edt-ligne.passe .edt-heure{opacity:.45}.edt-ligne.passe .edt-bloc{filter:saturate(.55)}.edt-heure{width:52px;flex:none;display:flex;flex-direction:column;font-family:var(--mono);padding-top:2px}.edt-heure b{font-size:16px}.edt-heure span{font-size:12px;color:var(--texte-secondaire);margin-top:auto}.edt-bloc{flex:1;min-width:0;min-height:76px;padding:12px 14px;display:flex;flex-direction:column;gap:4px;border:2px solid transparent}.edt-bloc.annule{background:var(--surface);border-style:dashed;color:var(--texte-secondaire)}.edt-ligne.en-cours .edt-bloc{outline:3px solid var(--encre);outline-offset:2px}.edt-titre{display:flex;align-items:baseline;gap:8px;font-family:var(--titre);font-size:20px;line-height:1.1}.edt-titre>span:first-child{flex:1;min-width:0}.edt-duree{font-family:var(--mono);font-size:11px;letter-spacing:.08em;flex:none}.edt-infos{display:flex;flex-wrap:wrap;gap:4px 14px;font-family:var(--mono);font-size:12px}.edt-etiquettes{display:flex;gap:6px;margin-top:2px}.edt-etiquette{font-family:var(--mono);font-size:10px;letter-spacing:.14em;text-transform:uppercase;padding:3px 6px;background:var(--surface);color:var(--encre)}.edt-etiquette.noire{background:var(--encre);color:var(--fond)}.edt-etiquette.alerte{background:var(--alerte);color:#fff}.edt-pause{margin-left:62px;display:flex;justify-content:space-between;padding:8px 12px;border:1.5px dashed var(--encre);font-family:var(--mono);font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--texte-secondaire)}
