:root{--fond: #f3f4f7;--surface: #ffffff;--encre: #172033;--discret: #556079;--ligne: #dde1ea;--accent: #2f3e9e;--ok: #1f8a4c;--ko: #a3272f;font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif;color:var(--encre);background:var(--fond)}*{box-sizing:border-box}body{margin:0;background:var(--fond)}h1{font-size:1.6rem;margin:0 0 .5rem}h2{font-size:1.1rem;margin:0 0 .75rem}code{background:#eef0f4;padding:0 4px;border-radius:4px}.page{min-height:100vh}.centre{display:flex;align-items:center;justify-content:center;padding:24px 16px}.carte{background:var(--surface);border:1px solid var(--ligne);border-radius:14px;padding:28px 24px;width:100%;max-width:420px;display:flex;flex-direction:column;gap:12px}.carte.large{max-width:640px}.logo{width:48px;height:48px;border-radius:12px;background:var(--encre);color:#fff;display:flex;align-items:center;justify-content:center;font-weight:800;font-size:24px}.logo.petit{width:32px;height:32px;font-size:16px;border-radius:8px}.formulaire{display:flex;flex-direction:column;gap:10px}label{font-weight:700;font-size:.95rem}input{min-height:46px;padding:0 12px;font:inherit;border:1px solid #c9ceda;border-radius:10px;background:#fff;color:var(--encre)}input:focus-visible,button:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.bouton{min-height:46px;padding:0 18px;border:0;border-radius:10px;background:var(--encre);color:#fff;font:inherit;font-weight:700;cursor:pointer}.bouton:disabled{opacity:.6;cursor:wait}.bouton.secondaire{background:#fff;color:var(--encre);border:1px solid #c9ceda}.discret{color:var(--discret);font-size:.92rem;margin:0}.erreur{color:var(--ko);margin:0}.entete{background:var(--surface);border-bottom:1px solid var(--ligne);display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px max(16px,env(safe-area-inset-right)) 12px max(16px,env(safe-area-inset-left))}.marque{display:flex;align-items:center;gap:10px;font-weight:800}.contenu{max-width:720px;margin:0 auto;padding:24px 16px 48px;display:flex;flex-direction:column;gap:16px}.verifs{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px}.verifs li{display:flex;gap:10px}.verifs li.ok span:first-child{color:var(--ok);font-weight:800}.verifs li.ko span:first-child{color:var(--ko);font-weight:800}a{color:var(--accent)}.marque{color:var(--encre);text-decoration:none}.contenu.large{max-width:1100px}.pile{display:flex;flex-direction:column;gap:14px}.ligne{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.ligne.entre{justify-content:space-between}.ligne>input{flex:1 1 180px;min-width:0}.visuellement-cache{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}select{min-height:46px;padding:0 10px;font:inherit;color:var(--encre);border:1px solid #c9ceda;border-radius:10px;background:#fff;width:100%}select:focus-visible,a:focus-visible{outline:2px solid var(--accent);outline-offset:2px}fieldset{border:0;margin:0;padding:0;min-width:0;display:flex;flex-direction:column;gap:8px}legend{font-weight:700;font-size:.95rem;padding:0;margin-bottom:6px}p{margin:0}.bloc{background:var(--surface);border:1px solid var(--ligne);border-radius:14px;padding:18px 16px;display:flex;flex-direction:column;gap:12px}.carte-ecole{border-left:6px solid var(--ligne)}.titre-ecole{font-weight:800;font-size:1.1rem}.sous-titre{font-weight:700}.rappel{background:#fff7e0;border:1px solid #ecd9a0;border-radius:10px;padding:10px 12px;font-size:.92rem}.etat{min-height:1.2em}a.bouton{display:inline-flex;align-items:center;text-decoration:none}.bouton.petit{min-height:36px;padding:0 10px;font-size:.9rem}.discret-bouton{background:transparent;color:var(--ko);border:1px solid transparent;font-weight:600}.discret-bouton:hover{border-color:#e7c2c5}.bouton-icone{min-width:40px;min-height:40px;border:1px solid transparent;border-radius:10px;background:transparent;color:var(--discret);font:inherit;font-size:1.05rem;cursor:pointer}.bouton-icone:hover{background:#eef0f4}.lien{background:none;border:0;padding:4px 0;color:var(--accent);font:inherit;cursor:pointer;text-decoration:underline}.choix{display:flex;flex-wrap:wrap;gap:8px}.bouton-choix{flex:1 1 200px;min-height:52px;display:flex;align-items:center;gap:10px;text-align:left;padding:10px 14px;border:2px solid #c9ceda;border-radius:12px;background:#fff;font:inherit;color:var(--encre);cursor:pointer}.bouton-choix .coche{width:24px;height:24px;flex:none;border-radius:50%;border:2px solid #c9ceda;display:flex;align-items:center;justify-content:center;font-weight:800;font-size:.85rem}.bouton-choix.actif{border-color:var(--accent);background:#eef0fb;font-weight:700}.bouton-choix.actif .coche{background:var(--accent);border-color:var(--accent);color:#fff}.apercu-semaines{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:8px}.apercu-semaines li{display:flex;align-items:center;gap:8px;border:1px solid var(--ligne);border-radius:10px;padding:6px 10px}.pastille-lettre{display:inline-flex;align-items:center;justify-content:center;min-width:22px;height:22px;border-radius:6px;background:var(--encre);color:#fff;font-weight:800;font-size:.8rem}.puces,.annees{display:flex;flex-wrap:wrap;gap:6px;align-items:center}.puce{min-height:40px;padding:0 12px;border-radius:999px;border:1px solid #c9ceda;background:#fff;font:inherit;font-size:.92rem;color:var(--encre);cursor:pointer}.puce.actif{background:var(--encre);border-color:var(--encre);color:#fff;font-weight:700}.couleurs{flex-direction:row;flex-wrap:wrap;gap:8px}.couleurs legend{width:100%}.pastille-couleur{width:40px;height:40px;border-radius:50%;border:3px solid #fff;box-shadow:0 0 0 1px #c9ceda;color:#fff;font-weight:800;cursor:pointer}.pastille-couleur.actif{box-shadow:0 0 0 3px var(--encre)}.sonnerie{display:flex;align-items:center;gap:8px}.sonnerie{flex-wrap:wrap}.sonnerie .numero{width:30px;font-weight:700;color:var(--discret)}.liste-classes{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px}.classe{display:flex;flex-direction:column;gap:6px}.ajout-classe{display:flex;flex-direction:column;gap:8px;border-top:1px dashed var(--ligne);padding-top:12px}.progression{list-style:none;display:flex;gap:6px;padding:0;margin:10px 0 0}.progression li{flex:1;height:6px;border-radius:3px;background:var(--ligne)}.progression li.fait{background:var(--ok)}.progression li.actuel{background:var(--accent)}.navigation-etapes{padding-top:6px}.discret-titre{font-weight:400;color:var(--discret);font-size:1.1rem}.onglets{display:flex;gap:4px;border-bottom:1px solid var(--ligne);overflow-x:auto}.onglets a{padding:10px 14px;text-decoration:none;color:var(--discret);font-weight:700;border-bottom:3px solid transparent;white-space:nowrap}.onglets a.actif{color:var(--encre);border-bottom-color:var(--accent)}.bandeau{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;background:#eef0fb;border:1px solid #c9cff0;border-radius:12px;padding:12px 14px}.semaine .grand{font-size:1.8rem;font-weight:800}.resume{list-style:none;margin:0;padding:0;display:flex;gap:18px;flex-wrap:wrap}.resume strong{font-size:1.3rem}.fenetre{width:min(560px,calc(100vw - 24px));max-height:calc(100vh - 24px);overflow-y:auto;border:0;border-radius:16px;padding:20px 18px;color:var(--encre)}.fenetre::backdrop{background:#17203373}.champ{display:flex;flex-direction:column;gap:6px}.heures{flex-wrap:nowrap}.heures input{flex:1 1 120px;min-width:0;padding:0 8px}.actions{border-top:1px solid var(--ligne);padding-top:12px}.barre-horaire{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}.segment{display:inline-flex;border:1px solid #c9ceda;border-radius:12px;overflow:hidden}.segment button{min-height:44px;padding:0 18px;border:0;background:#fff;font:inherit;font-weight:700;color:var(--discret);cursor:pointer}.segment button.actif{background:var(--encre);color:#fff}.legende{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:14px;font-size:.9rem}.legende li{display:flex;align-items:center;gap:6px}.carre{width:14px;height:14px;border-radius:4px}.jours-mobile,.indice-mobile{display:none}.choix-heure{position:relative;display:inline-flex}.bouton-heure{min-height:42px;min-width:76px;padding:0 12px;border:1px solid #c9ceda;border-radius:10px;background:#fff;font:inherit;font-weight:700;font-variant-numeric:tabular-nums;color:var(--encre);cursor:pointer}.bouton-heure.vide{color:var(--discret);font-weight:400}.bouton-heure[aria-expanded=true]{border-color:var(--accent)}.panneau-heure{position:absolute;top:calc(100% + 6px);left:0;z-index:20;display:flex;flex-direction:column;gap:10px;background:#fff;border:1px solid #c9ceda;border-radius:14px;padding:12px;box-shadow:0 8px 24px #1720332e}.choix-heure.a-droite .panneau-heure{left:auto;right:0}.roues{display:flex;align-items:center;gap:6px;justify-content:center}.deux-points{font-weight:800;font-size:1.2rem}.roue{display:block;width:72px;height:180px;overflow-y:auto;overscroll-behavior:contain;scroll-snap-type:y mandatory;scrollbar-width:none;border:1px solid var(--ligne);border-radius:10px;background:linear-gradient(to bottom,transparent 72px,#eef0fb 72px,#eef0fb 108px,transparent 108px);touch-action:pan-y}.roue::-webkit-scrollbar{display:none}.roue:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.marge-roue{display:block;height:72px}.cran{display:flex;align-items:center;justify-content:center;height:36px;scroll-snap-align:center;font-variant-numeric:tabular-nums;color:var(--discret);cursor:pointer;-webkit-user-select:none;user-select:none}.cran.actif{color:var(--encre);font-weight:800;font-size:1.1rem}.copie{border-top:1px dashed var(--ligne);padding-top:12px}.grille{display:grid;grid-template-columns:48px repeat(5,minmax(0,1fr));gap:6px;background:var(--surface);border:1px solid var(--ligne);border-radius:14px;padding:10px}.tete-colonne{height:40px;display:flex;align-items:center;justify-content:space-between;font-weight:800;text-transform:capitalize;padding-left:6px}.tete-colonne .ajouter{font-size:1.4rem;font-weight:700;color:var(--accent)}.corps{position:relative;height:var(--hauteur)}.colonne .corps{border-radius:10px;cursor:copy;background-color:#fafbfc;background-image:linear-gradient(to bottom,var(--ligne) 1px,transparent 1px)}.axe .corps span{position:absolute;right:4px;transform:translateY(-50%);font-size:.78rem;color:var(--discret)}.axe .corps span:first-child{transform:none}.creneau{position:absolute;left:3px;right:3px;overflow:hidden;text-align:left;cursor:pointer;display:flex;flex-direction:column;gap:1px;padding:4px 6px 4px 8px;font:inherit;font-size:.82rem;line-height:1.2;color:var(--encre);border:1px solid color-mix(in srgb,var(--couleur) 45%,white);border-left:5px solid var(--couleur);border-radius:8px;background:color-mix(in srgb,var(--couleur) 13%,white)}.creneau:hover{box-shadow:0 2px 8px #1720332e;z-index:1}.creneau .heure{color:var(--discret);font-size:.75rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;padding-right:22px}.creneau .ecole{font-weight:700}.creneau .detail,.creneau strong{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.creneau .detail{color:var(--discret)}.creneau .pastille-lettre{position:absolute;top:4px;right:4px}.creneau.type-fourche{background:repeating-linear-gradient(135deg,#f1f2f5 0,#f1f2f5 6px,#fff 6px,#fff 12px);border-color:#c9ceda;border-left-color:#9aa3b5;color:var(--discret)}.creneau.type-autre{border-style:dashed;border-left-style:solid}@media (max-width: 720px){.jours-mobile{display:flex;gap:4px}.indice-mobile{display:block}.grille{touch-action:pan-y}.jours-mobile button{flex:1;min-height:44px;border:1px solid #c9ceda;border-radius:10px;background:#fff;font:inherit;font-weight:700;color:var(--discret);cursor:pointer}.jours-mobile button.actif{background:var(--encre);border-color:var(--encre);color:#fff}.grille{grid-template-columns:44px minmax(0,1fr)}.colonne{display:none}.colonne.jour-actif{display:block}.creneau{font-size:.9rem}}.lien-reglages{display:inline-flex;align-items:center;justify-content:center;color:var(--encre)}.avec-icone{gap:8px}textarea{font:inherit;color:var(--encre);padding:10px 12px;border:1px solid #c9ceda;border-radius:10px;background:#fff;resize:vertical;width:100%}textarea:focus-visible{outline:2px solid var(--accent);outline-offset:2px}input[type=date]{min-height:42px}.case{display:flex;align-items:center;gap:10px;font-weight:400;cursor:pointer}.case input{width:20px;height:20px;min-height:0}.info{background:#eef0fb;border:1px solid #c9cff0;border-radius:10px;padding:10px 12px;font-size:.92rem}.tete-journal{display:flex;align-items:flex-end;justify-content:space-between;gap:12px;flex-wrap:wrap}.tete-journal h1{margin-bottom:4px}.tete-journal .pastille-lettre{vertical-align:1px}.navigation-semaine .bouton{min-width:46px;font-size:1.05rem}.date-jour{font-weight:400;color:var(--discret);text-transform:none}.colonne.aujourdhui .tete-colonne>span:first-child{color:var(--accent)}.colonne.aujourdhui .corps{box-shadow:inset 0 0 0 2px #c9cff0}.colonne.sans-cours .corps{background-color:#eef0f4;background-image:none;cursor:default}.mention-conge{position:absolute;top:12px;left:6px;right:6px;text-align:center;font-weight:700;color:var(--discret)}.creneau.seance{padding:0;display:block;cursor:grab}.ouvrir-seance{all:unset;box-sizing:border-box;display:flex;flex-direction:column;gap:1px;width:100%;height:100%;padding:4px 30px 4px 8px;cursor:pointer;overflow:hidden}.ouvrir-seance:focus-visible{outline:2px solid var(--accent);outline-offset:-2px;border-radius:6px}.etiquette-etat{font-size:.75rem;font-weight:700;color:var(--encre);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.seance.statut-fait{background:color-mix(in srgb,var(--couleur) 22%,white)}.seance.statut-annule,.seance.statut-reporte{opacity:.65;border-style:dashed;border-left-style:solid}.seance.statut-annule strong,.seance.statut-annule .detail{text-decoration:line-through}.seance.type-fourche,.seance.type-fourche .ouvrir-seance{cursor:default}.creneau.a-cote-evenement{right:41%}.evenement.seul{left:3px}.evenement{position:absolute;left:60%;right:3px;overflow:hidden;text-align:left;cursor:pointer;display:flex;flex-direction:column;gap:1px;padding:4px 6px;font:inherit;font-size:.78rem;line-height:1.2;color:var(--encre);background:repeating-linear-gradient(45deg,#fff4d6 0,#fff4d6 8px,#fffaf0 8px,#fffaf0 16px);border:1px solid #e3c675;border-radius:8px;z-index:2}.evenement .heure,.evenement .detail{color:var(--discret);font-size:.72rem}.evenement>span,.evenement strong{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.evenements-journee{position:absolute;top:3px;left:3px;right:3px;z-index:3;display:flex;flex-direction:column;gap:3px}.evenement-journee{font:inherit;font-size:.8rem;font-weight:700;text-align:left;padding:4px 8px;cursor:pointer;background:#fff4d6;border:1px solid #e3c675;border-radius:8px;color:var(--encre);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.legende-etats{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:16px;font-size:.88rem;color:var(--discret)}.legende-etats li{display:flex;align-items:center;gap:6px}.evenement-exemple{background:#fff4d6;border:1px solid #e3c675}.message-flottant{position:fixed;left:50%;bottom:20px;transform:translate(-50%);z-index:30;max-width:calc(100vw - 24px);display:flex;align-items:center;gap:10px;background:var(--encre);color:#fff;border-radius:12px;padding:10px 12px 10px 16px;box-shadow:0 8px 24px #1720334d}.message-flottant .bouton-icone{color:#fff}.message-flottant .bouton-icone:hover{background:#ffffff1f}.fenetre.petite{width:min(420px,calc(100vw - 24px))}details.deplacer{border-top:1px dashed var(--ligne);padding-top:10px;display:flex;flex-direction:column;gap:8px}details.deplacer summary{font-weight:700;cursor:pointer;padding:4px 0}details.deplacer[open]{gap:10px}details.deplacer>*+*{margin-top:8px}.liste-notes{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:4px}.liste-notes li{display:flex;align-items:center;justify-content:space-between;gap:8px}.liste-notes li.faite span{text-decoration:line-through;color:var(--discret)}.choix-dates{display:flex;flex-direction:column;gap:8px;max-height:280px;overflow-y:auto;padding-right:4px}.mois{display:flex;gap:10px;align-items:baseline}.nom-mois{width:78px;flex:none;font-size:.85rem;font-weight:700;color:var(--discret);text-transform:capitalize}.petite-puce{min-height:34px;min-width:38px;padding:0 8px}@media (max-width: 720px){.tete-journal h1{font-size:1.25rem}.jours-mobile button{font-size:.85rem;padding:0 2px}.creneau.seance{cursor:default}}.entete>.ligne{flex-wrap:nowrap}.marque span{white-space:nowrap}@media (max-width: 480px){.entete .bouton.secondaire{min-height:40px;padding:0 10px;font-size:.85rem}.marque span{font-size:.95rem}}.ouvrir-seance{padding-right:34px}.ouvrir-seance>*{flex-shrink:0}.seance strong{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;line-height:17px}.seance .heure{line-height:15px}.seance .detail{white-space:normal;overflow:hidden;display:-webkit-box;-webkit-box-orient:vertical;line-height:15px;font-size:.8rem}.boule-etat{position:absolute;top:4px;right:4px;width:26px;height:26px;border-radius:50%;padding:0;display:flex;align-items:center;justify-content:center;font:inherit;font-weight:800;font-size:.85rem;line-height:1;cursor:pointer;border:2px solid #9aa3b5;background:#fff;color:var(--discret)}.boule-etat:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.boule-etat.etat-a_preparer{color:transparent}.boule-etat.etat-prepare{border-color:#2f5da8;background:#e3ecfa;color:#2f5da8}.boule-etat.etat-fait{border-color:var(--ok);background:var(--ok);color:#fff}.boule-etat.etat-annule{border-color:var(--ko);background:#fbe9ea;color:var(--ko)}.boule-etat.etat-reporte{border-color:#b07a12;background:#fbf1dc;color:#8a5f0d}.boule-etat.mini{position:static;width:20px;height:20px;font-size:.72rem;cursor:inherit;flex:none}.legende-etats .boule-etat.etat-a_preparer{color:transparent}.seance.statut-annule .boule-etat,.seance.statut-reporte .boule-etat,.seance.statut-annule,.seance.statut-reporte{opacity:1}.seance.statut-annule .ouvrir-seance,.seance.statut-reporte .ouvrir-seance{opacity:.6}.menu-etat{position:absolute;top:32px;right:4px;z-index:25;min-width:170px;display:flex;flex-direction:column;background:#fff;border:1px solid #c9ceda;border-radius:12px;padding:6px;box-shadow:0 8px 24px #17203333}.menu-etat button{display:flex;align-items:center;gap:10px;min-height:40px;padding:0 10px;border:0;border-radius:8px;background:transparent;font:inherit;font-size:.92rem;color:var(--encre);cursor:pointer;text-align:left}.menu-etat button:hover,.menu-etat button:focus-visible{background:#eef0f4;outline:none}.menu-etat button.actif{font-weight:800}.colonne:has(.menu-etat){z-index:5}.creneau.seance:has(.menu-etat){overflow:visible;z-index:6}.evenement.avec-discipline,.evenement-journee.avec-discipline{border-color:var(--couleur);background:repeating-linear-gradient(45deg,color-mix(in srgb,var(--couleur) 18%,white) 0,color-mix(in srgb,var(--couleur) 18%,white) 8px,#fff 8px,#fff 16px)}.evenement.avec-discipline{border-left:4px solid var(--couleur)}.liste-couleurs{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px}.ligne-couleur{padding:0;gap:0}.tete-couleur{display:flex;align-items:center;gap:12px;width:100%;min-height:52px;padding:8px 14px;border:0;background:transparent;font:inherit;color:var(--encre);cursor:pointer;text-align:left}.nom-discipline{font-weight:700}.chevron{margin-left:auto;color:var(--discret)}.grand-carre{width:24px;height:24px;border-radius:6px;flex:none}.nuancier{display:flex;flex-wrap:wrap;gap:8px;padding:4px 14px 14px;align-items:center}@media (min-width: 721px){.colonne{transform:none!important;opacity:1!important}}@media (max-width: 720px){.grille{overflow:hidden}.colonne.jour-actif{will-change:transform}}.ecole-jour{display:block;font-size:.78rem;font-weight:600;color:var(--discret);text-transform:none;line-height:1.1}.journal .tete-colonne{height:46px}.grille.journal{grid-template-columns:48px repeat(var(--nb-jours, 5),minmax(0,1fr))}.colonne.weekend .corps{background-color:#f3f1ea}.colonne.weekend .tete-colonne>span:first-child{color:var(--discret)}.petit-segment button{min-height:46px;padding:0 12px;font-size:.9rem}.bandeau.weekend{background:#fff7e0;border-color:#ecd9a0}.compte-a-rebours ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:6px}.ligne-rebours{display:flex;align-items:center;gap:12px;width:100%;padding:8px 10px;text-align:left;cursor:pointer;font:inherit;color:var(--encre);background:#fff;border:1px solid var(--ligne);border-left:5px solid var(--couleur);border-radius:10px}.ligne-rebours:hover{background:#fafbfc}.nombre-jours{min-width:46px;height:46px;border-radius:10px;display:flex;align-items:center;justify-content:center;font-size:1.3rem;font-weight:800;color:#fff;background:var(--couleur);font-variant-numeric:tabular-nums}@media (max-width: 720px){.grille.journal{grid-template-columns:44px minmax(0,1fr)}.tete-journal .navigation-semaine,.petit-segment{width:100%}.petit-segment button{flex:1}}@media (max-width: 720px){.jours-mobile.sept{gap:2px}.jours-mobile.sept button{font-size:.72rem;padding:0 1px}}.invisible{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}.navigation{display:flex;gap:4px;margin-right:auto;margin-left:20px}.navigation a{color:var(--discret);text-decoration:none;font-weight:600;padding:8px 12px;border-radius:10px;min-height:40px;display:inline-flex;align-items:center}.navigation a:hover{background:#eef0f4;color:var(--encre)}.navigation a.actif{background:var(--encre);color:#fff}.fiche{gap:14px}.barre-fiche{position:sticky;top:0;z-index:5;background:var(--fond);padding:8px 0}.sauvegarde{font-size:.9rem;color:var(--discret)}.sauvegarde.ok{color:var(--ok)}.sauvegarde.erreur{color:var(--ko);font-weight:700}.carte-fiche{background:var(--surface);border:1px solid var(--ligne);border-radius:14px;padding:16px;display:flex;flex-direction:column;gap:12px}.carte-fiche h2{margin:0}.entete-fiche{border-top:6px solid var(--couleur)}.titre-fiche{font-size:1.35rem;font-weight:800;border:1px solid transparent;border-radius:10px;padding:6px 8px;margin:-6px -8px 0;background:transparent;color:var(--encre)}.titre-fiche:hover,.titre-fiche:focus{border-color:#c9ceda;background:#fff}.grille-entete{display:grid;grid-template-columns:1fr 1fr;gap:12px}.grille-entete fieldset{grid-column:1 / -1;border:0;padding:0;margin:0}.carte-fiche textarea{field-sizing:content;min-height:4.5em;resize:vertical}.attendus-choisis{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px}.attendus-choisis li{display:flex;gap:10px;align-items:flex-start;padding:8px 10px;border:1px solid var(--ligne);border-radius:10px}.texte-attendu{flex:1;display:flex;flex-direction:column;gap:2px}.texte-attendu small,.case-attendu small{color:var(--discret);font-size:.8rem}.type-attendu{flex:none;font-size:.72rem;font-weight:700;padding:3px 7px;border-radius:999px;border:1px solid;margin-top:1px}.type-attendu.t-s{color:#2f5da8;border-color:#a9c0e6;background:#eef3fb}.type-attendu.t-sf{color:#3f7d2e;border-color:#b4d3a9;background:#eff7ec}.type-attendu.t-c{color:#8e3b8a;border-color:#d9b2d7;background:#f8eef7}.total-minutes{margin:0;color:var(--discret);font-size:.92rem}.total-minutes .depasse{color:var(--ko);font-weight:700}.etapes{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:10px}.etape{border:1px solid var(--ligne);border-left:4px solid var(--couleur);border-radius:10px;padding:10px;display:flex;flex-direction:column;gap:8px}.tete-etape{display:flex;align-items:center;gap:8px}.tete-etape .numero{flex:none;width:26px;height:26px;border-radius:50%;background:var(--couleur);color:#fff;font-weight:700;font-size:.85rem;display:flex;align-items:center;justify-content:center}.titre-etape{flex:1;min-width:0;font-weight:700;text-transform:uppercase;letter-spacing:.02em}.duree{display:flex;align-items:center;gap:4px;color:var(--discret);font-size:.9rem}.duree input{width:4.2em;text-align:right}.outils-etape{display:flex}.outils-etape .bouton-icone{width:36px;height:36px;min-height:36px}.outils-etape .bouton-icone:disabled{opacity:.3;cursor:default}.ajout-etape{border:1px dashed #c9ceda;border-radius:10px;padding:10px}.seances-liees{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:6px}.seances-liees li{display:flex;align-items:center;gap:10px;flex-wrap:wrap;padding:6px 0;border-bottom:1px solid var(--ligne)}.seances-liees li:last-child{border-bottom:0}.seances-liees .quand{min-width:12em}.seances-liees li>button{margin-left:auto}.actions-fiche{padding-top:4px}.fenetre.grande{width:min(760px,calc(100vw - 24px));max-height:calc(100vh - 24px)}.filtres-attendus{display:grid;grid-template-columns:1fr 1fr;gap:12px;align-items:start}.filtres-attendus fieldset{border:0;padding:0;margin:0}.puce.lien{background:transparent;border-style:dashed}.liste-attendus,.liste-seances{max-height:52vh;overflow-y:auto;display:flex;flex-direction:column;gap:12px;padding-right:4px}.domaine-attendus h3{margin:4px 0;font-size:1rem;position:sticky;top:0;background:var(--surface);padding:4px 0;z-index:1}.domaine-attendus h4{margin:8px 0 4px;font-size:.85rem;color:var(--discret);text-transform:uppercase;letter-spacing:.03em}.domaine-attendus ul,.semaine-choix ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:4px}.case-attendu,.case-seance{display:flex;gap:10px;align-items:flex-start;padding:8px;border-radius:10px;border:1px solid transparent;cursor:pointer}.case-attendu:hover,.case-seance:hover{background:#f6f7fa}.case-attendu.coche{background:#eef0fb;border-color:#c7cdee}.case-attendu input,.case-seance input{width:20px;height:20px;margin:1px 0 0;flex:none;accent-color:var(--accent)}.case-attendu,.case-seance{font-weight:400}.corps-attendu{display:flex;flex-direction:column;gap:2px}.annee-attendu{display:inline-block;font-size:.75rem;font-weight:700;background:#eef0f4;border-radius:6px;padding:1px 5px;margin-right:4px}.semaine-choix h3{margin:0 0 4px;font-size:.95rem}.case-seance{align-items:center;flex-wrap:wrap;border-left:4px solid var(--couleur)}.case-seance .quand{min-width:8.5em;font-variant-numeric:tabular-nums}.case-seance .sujet{color:var(--discret);font-size:.88rem}.case-seance .mention{margin-left:auto;font-size:.8rem;color:var(--discret);font-style:italic}.case-seance.deja{opacity:.65;cursor:default}.bloc-preparation{border:1px solid var(--ligne);border-radius:12px;padding:10px 12px}.bloc-preparation legend{padding:0 4px}.titre-prepa{font-weight:700}.liste-choix-prepa{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:6px;max-height:40vh;overflow-y:auto}.liste-choix-prepa .bouton-choix{display:flex;flex-direction:column;align-items:flex-start;gap:2px;width:100%}.filtres-preparations{display:flex;flex-direction:column;gap:8px}.liste-preparations{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px}.carte-preparation{display:flex;align-items:center;gap:10px;background:var(--surface);border:1px solid var(--ligne);border-left:6px solid var(--couleur);border-radius:12px;padding:10px 12px}.lien-preparation{flex:1;display:flex;flex-direction:column;gap:2px;color:var(--encre);text-decoration:none;min-width:0}.lien-preparation:hover strong{text-decoration:underline}.petit-texte{font-size:.85rem;color:var(--discret)}@media (max-width: 720px){.navigation{margin-left:8px}.navigation a{padding:6px 8px;font-size:.9rem}.grille-entete,.filtres-attendus{grid-template-columns:1fr}.tete-etape{flex-wrap:wrap}.titre-etape{flex-basis:calc(100% - 40px)}.outils-etape{margin-left:auto}}@media (max-width: 560px){.entete{flex-wrap:wrap;row-gap:6px}.navigation{order:3;width:100%;margin:0}.navigation a{flex:1;justify-content:center}}.champ-texte{display:flex;flex-direction:column;gap:4px}.outils-texte{display:flex;gap:4px}.bouton-outil{font:inherit;font-size:.8rem;font-weight:600;color:var(--discret);background:#f3f4f7;border:1px solid var(--ligne);border-radius:8px;padding:3px 9px;min-height:30px;cursor:pointer}.bouton-outil:hover{color:var(--encre);border-color:#c9ceda}.champ-texte textarea{field-sizing:content;min-height:4.5em;resize:vertical}.texte-lu{line-height:1.5}.texte-lu p{margin:0 0 .5em}.texte-lu ul,.texte-lu ol{margin:0 0 .5em;padding-left:1.4em}.texte-lu li{margin:.15em 0}.texte-lu>:last-child{margin-bottom:0}.lecture-prepa{display:flex;flex-direction:column;gap:18px}.lecture-prepa h2{font-size:1.35rem;margin:0}.lecture-prepa h3{font-size:.85rem;text-transform:uppercase;letter-spacing:.04em;color:var(--discret);margin:0 0 8px}.nb-periodes{text-transform:none;letter-spacing:0;font-weight:600}.attendus-lus{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:6px}.attendus-lus li{display:flex;gap:8px;align-items:flex-start;line-height:1.4}.etapes-lues{list-style:none;margin:0;padding:0;display:flex;flex-direction:column}.etapes-lues>li{padding:10px 0 10px 12px;border-left:4px solid var(--couleur, var(--ligne));margin-bottom:6px;border-radius:0 8px 8px 0}.etapes-lues>li.periode-courante{background:color-mix(in srgb,var(--couleur, #2f3e9e) 8%,white)}.etapes-lues>li.faite .titre-etape-lu{color:var(--discret);text-decoration:line-through;text-decoration-thickness:1px}.etapes-lues>li.faite .texte-etape-lu{opacity:.6}.tete-etape-lue{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.tete-etape-lue .numero{width:24px;height:24px;border-radius:50%;background:var(--couleur, var(--encre));color:#fff;font-size:.8rem;font-weight:700;display:inline-flex;align-items:center;justify-content:center}.titre-etape-lu{font-weight:800;text-transform:uppercase;letter-spacing:.02em}.duree-lue{margin-left:auto;color:var(--discret);font-size:.9rem;padding-right:8px}.fait-le{font-size:.8rem;color:var(--ok);font-weight:600}.texte-etape-lu{margin:6px 8px 0 34px}.case-etape{display:inline-flex;align-items:center;gap:10px;cursor:pointer}.case-etape input{width:24px;height:24px;accent-color:var(--ok);margin:0}.fin-periode{display:flex;align-items:center;gap:8px;margin:12px 0 2px -16px;color:#8a5f0d;font-size:.82rem;font-weight:700}.fin-periode:before,.fin-periode:after{content:"";flex:1;border-top:2px dashed #d9b46a}.etape .fin-periode{margin-left:0}.fenetre.lecture-cours{width:min(820px,calc(100vw - 24px));padding:22px 24px}.tete-fenetre{margin-bottom:12px;align-items:flex-start;flex-wrap:nowrap}.tete-fenetre>div{min-width:0}.bandeau-cours{display:flex;align-items:center;gap:10px;flex-wrap:wrap;padding:8px 12px;border-radius:10px;background:#f3f4f7}.rang-periode{margin-left:auto;font-weight:700;font-size:.9rem;color:#8a5f0d;background:#fbf1dc;border-radius:999px;padding:3px 10px}.sujet-lu{font-size:1.15rem;font-weight:700;margin:0}.remarque-lue{color:var(--discret);font-style:italic}.prepa-du-cours{border:1px solid var(--ligne);border-radius:14px;padding:14px 16px;display:flex;flex-direction:column;gap:12px}.prepa-du-cours.vide{background:#fafbfc}.etiquette-section{margin:0;font-size:.8rem;font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:var(--discret)}.suite-lecon{display:flex;flex-direction:column;gap:10px;align-items:flex-start;background:#fbf1dc;border:1px solid #ecd9a0;border-radius:12px;padding:12px 14px}.suite-lecon p{margin:0}.cours-proposes{margin:0;padding-left:1.2em}.confirmer-suppression{border:1px solid #e7c2c5;background:#fdf3f4;border-radius:12px;padding:12px 14px;display:flex;flex-direction:column;gap:10px;align-items:flex-start}.confirmer-suppression p{margin:0}.confirmer-suppression .choix,.fenetre .choix{display:flex;flex-direction:column;gap:8px;width:100%}.bouton-choix .discret{display:block;font-weight:400;font-size:.85rem;margin-top:2px}.rappel-sauvegarde{margin:0;text-align:center;font-size:.9rem;color:var(--ok)}.rappel-sauvegarde.erreur{color:var(--ko);font-weight:700}.message-flottant .bouton-annuler{background:#fff;color:var(--encre);font-weight:800;border-color:#fff}.seance.en-parallele{font-size:.75rem}.seance.en-parallele .heure{display:none}@media (max-width: 720px){.fenetre.lecture-cours{padding:16px 14px;width:100vw;max-width:100vw;height:100dvh;max-height:100dvh;margin:0;border-radius:0}.texte-etape-lu{margin-left:8px}.rang-periode{margin-left:0}}.creneau .titre-lecon{white-space:normal;display:-webkit-box;-webkit-box-orient:vertical;overflow:hidden;line-height:1.2}.creneau .sous-titre{color:var(--discret);font-size:.72rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.bandeau.placement{position:sticky;top:8px;z-index:6;background:#fbf1dc;border-color:#ecd9a0;box-shadow:0 6px 18px #1720331f}.seance.candidat{outline:3px dashed #B07A12;outline-offset:1px}.debut-periode{display:flex;align-items:center;gap:8px;margin:0 0 8px;color:#8a5f0d;font-size:.82rem;font-weight:700}.debut-periode:after{content:"";flex:1;border-top:2px dashed #d9b46a}.fin-periode.non-placee{color:var(--ko)}.choix-horaire .puce{min-height:40px}.bandeau.horaire-date{background:#eef3fb;border-color:#a9c0e6}.dates-horaire{align-items:flex-start}.dates-horaire .champ{flex:1 1 140px}.choix .bouton-choix input[type=radio]{position:absolute;opacity:0;pointer-events:none}.choix .bouton-choix{position:relative;cursor:pointer}.horaire-semaine{color:#2f5da8;font-weight:600}.fenetre .choix .bouton-choix,.confirmer-suppression .choix .bouton-choix{flex:0 0 auto;flex-direction:column;align-items:flex-start;gap:2px;min-height:0}.choix-vue{display:flex;gap:4px;overflow-x:auto;padding-bottom:2px;scrollbar-width:thin}.choix-vue a{flex:none;padding:7px 12px;border-radius:999px;border:1px solid #c9ceda;background:#fff;color:var(--encre);text-decoration:none;font-weight:600;font-size:.9rem;min-height:38px;display:inline-flex;align-items:center}.choix-vue a.actif{background:var(--encre);border-color:var(--encre);color:#fff}.mois-apercu h2{text-transform:capitalize;margin:8px 0}.semaines-apercu{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:10px}.carte-semaine{display:flex;flex-direction:column;gap:6px;height:100%;padding:12px;border-radius:12px;border:1px solid var(--ligne);background:var(--surface);color:var(--encre);text-decoration:none;font-size:.88rem}.carte-semaine:hover{box-shadow:0 3px 10px #1720331f;border-color:#c9ceda}.carte-semaine.courante{border:2px solid var(--accent)}.carte-semaine.passee{background:#fafbfc}.carte-semaine.conge{background:#f1f2f5;border-style:dashed}.tete-carte-semaine{display:flex;align-items:center;gap:8px;font-size:.95rem}.etiquette-courante{margin-left:auto;font-size:.72rem;font-weight:700;color:var(--accent);background:#eef0fb;border-radius:999px;padding:2px 8px}.nom-conge{color:var(--discret);font-weight:700}.barre-avancement{display:flex;height:8px;border-radius:999px;overflow:hidden;background:#eef0f4}.barre-avancement .part.faits{background:var(--ok)}.barre-avancement .part.prepares{background:#2f5da8}.barre-avancement .part.reste{background:#d5d9e2}.chiffres{color:var(--discret)}.txt-fait{color:var(--ok);font-weight:700}.txt-prepare{color:#2f5da8;font-weight:700}.txt-reste{color:var(--discret)}.lecons-semaine{font-weight:600;overflow:hidden;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}.jour-ferie{color:#8a5f0d;font-size:.8rem}.evenements-semaine{font-size:.8rem;color:var(--discret);border-left:3px solid #e3c24a;padding-left:6px}.carte-semaine .horaire-semaine{font-size:.8rem}.legende-etats .carre{display:inline-block;width:12px;height:12px;border-radius:3px;vertical-align:middle}@media (max-width: 720px){.semaines-apercu{grid-template-columns:1fr}}.tete-carte-semaine strong{white-space:nowrap}.barre-plan{margin:10px 0 6px;flex-wrap:wrap}.barre-plan .puces{display:flex;align-items:center;gap:6px;flex-wrap:wrap}.rebours-apercu{list-style:none;margin:6px 0 12px;padding:0;display:flex;gap:8px;flex-wrap:wrap}.rebours-apercu a{display:flex;align-items:center;gap:8px;padding:6px 12px 6px 6px;border-radius:999px;background:var(--surface);border:1px solid var(--ligne);color:var(--encre);text-decoration:none;font-size:.88rem}.rebours-apercu .nombre-jours{min-width:34px;height:34px;padding:0 6px;border-radius:999px;display:inline-flex;align-items:center;justify-content:center;background:var(--couleur);color:#fff;font-weight:800}.plan-defile{overflow:clip;border:1px solid var(--ligne);border-radius:12px;background:var(--surface)}.plan-matieres{display:grid;gap:0;padding:0 0 6px;min-width:min-content;position:relative}.coin-plan,.tete-groupe{position:sticky;top:0;z-index:3;background:var(--surface);padding:10px 8px;border-bottom:2px solid var(--ligne)}.coin-plan{left:0;z-index:4;font-weight:700;color:var(--discret);font-size:.85rem}.tete-groupe{display:flex;flex-direction:column;gap:2px;border-bottom:3px solid var(--couleur)}.tete-groupe strong{font-size:.98rem}.tete-groupe .discret{font-size:.78rem}.semaine-plan{position:sticky;left:0;z-index:2;display:flex;flex-direction:column;gap:3px;padding:8px 10px;background:var(--surface);border-top:1px solid var(--ligne);color:var(--encre);text-decoration:none;font-size:.82rem}.semaine-plan:hover{background:#f5f6fa}.semaine-plan.courante{box-shadow:inset 4px 0 0 var(--accent)}.semaine-plan.debut-mois,.fond-plan.debut-mois{border-top:2px solid #b9bfcc}.semaine-plan .tete-carte-semaine{font-size:.9rem}.semaine-plan .etiquette-courante{margin-left:0}.mois-plan{text-transform:capitalize;font-weight:800;font-size:.8rem;color:var(--accent)}.fond-plan{z-index:0;border-top:1px solid var(--ligne)}.fond-plan.courante{background:#f2f4fd}.fond-plan.conge{background:repeating-linear-gradient(135deg,#f1f2f5 0,#f1f2f5 10px,#e9ebf0 10px,#e9ebf0 20px);display:flex;align-items:center;justify-content:center}.fond-plan.conge span{color:var(--discret);font-weight:700;font-size:.85rem}.semaine-plan.conge{background:#f1f2f5}.evenement-plan{font-size:.76rem;color:var(--discret);border-left:3px solid #e3c24a;padding-left:5px}.evenement-plan.rebours{color:#7a5408;font-weight:700}.lecon-plan{z-index:1;margin:4px 3px;display:flex;flex-direction:column;align-items:flex-start;gap:2px;text-align:left;padding:7px 9px;border-radius:8px;border:1px solid color-mix(in srgb,var(--couleur) 35%,white);border-left:5px solid var(--couleur);background:color-mix(in srgb,var(--couleur) 10%,white);color:var(--encre);font:inherit;font-size:.82rem;cursor:pointer;min-width:0;overflow:hidden}.lecon-plan:hover{box-shadow:0 3px 10px #17203326}.lecon-plan.terminee{background:color-mix(in srgb,var(--couleur) 4%,white)}.titre-lecon-plan{font-size:.92rem;line-height:1.25;overflow-wrap:anywhere}.detail-lecon-plan,.dates-lecon-plan{color:var(--discret);font-size:.78rem}.avancement-lecon-plan{margin-top:auto;font-size:.76rem;color:var(--ok);font-weight:700}.aide-plan{margin-top:10px;font-size:.82rem}.cartes-plan .carte-semaine{gap:8px}.lien-semaine-plan{display:flex;flex-direction:column;gap:4px;color:var(--encre);text-decoration:none}.groupe-carte{border-left:4px solid var(--couleur);padding-left:8px}.nom-groupe-carte{font-weight:700;font-size:.8rem;color:var(--discret)}.groupe-carte ul{list-style:none;margin:2px 0 0;padding:0;display:flex;flex-direction:column;gap:2px}.groupe-carte button{display:flex;gap:8px;align-items:baseline;width:100%;text-align:left;background:none;border:0;padding:5px 0;font:inherit;font-size:.88rem;color:var(--encre);cursor:pointer;min-height:36px}.symbole-moment{flex:none;width:1.1em;text-align:center;color:var(--couleur);font-weight:800}.groupe-carte .sans-cours{opacity:.7}:root{--agenda: #6c5fc7;--agenda-fond: #eeecfc;--agenda-bord: #b3abe8}.evenement.date-agenda,.evenement-journee.date-agenda{background:var(--agenda-fond);border:1px solid var(--agenda-bord);border-left:4px solid var(--agenda)}.evenement-journee.date-agenda{font-weight:600}.date-agenda .ecole-agenda,.date-agenda .precision-agenda{font-weight:400;color:var(--discret)}.agenda-exemple{background:var(--agenda-fond);border:1px solid var(--agenda-bord);border-left:4px solid var(--agenda)}.pastille-agenda{display:inline-block;width:12px;height:12px;border-radius:3px;background:var(--agenda);vertical-align:1px}.evenement-plan.agenda{border-left-color:var(--agenda)}.agendas-ecole{border-top:1px dashed var(--ligne);padding-top:12px;display:flex;flex-direction:column;gap:10px}.titre-agendas{margin:0;font-size:1rem;display:flex;align-items:center;gap:8px}.agenda-relie{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap;background:var(--agenda-fond);border:1px solid var(--agenda-bord);border-radius:10px;padding:8px 12px}.relier-agenda input{width:100%;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.85rem}.aide-agenda{background:#f7f7fb;border-radius:10px;padding:8px 12px}.aide-agenda summary{font-weight:700;cursor:pointer}.aide-agenda ol{margin:8px 0;padding-left:20px;display:flex;flex-direction:column;gap:4px}.petit-texte{font-size:.85rem;margin:4px 0 0}.zone-journee{box-sizing:border-box}.evenements-journee.zone-journee{position:static;padding:3px 3px 0;overflow:hidden}
