:root{--couleur-marine:#1c2b39;--couleur-fond:#f7f6f3;--couleur-vert:#3d6b5c;--couleur-vert-fonce:#345d50;--couleur-gris-texte:#6b675c;--couleur-erreur:#c9432e;--couleur-bordure:#e3e0d8;--couleur-blanc:#fff;--couleur-electif:#2e5f8a;--couleur-electif-fond:#eaf1f7;--couleur-electif-texte:#1f4e6b;--police-titres:"Source Serif 4", serif;--police-texte:"Inter", sans-serif;--espace-1:4px;--espace-2:8px;--espace-3:12px;--espace-4:16px;--espace-6:24px;--espace-8:32px;--espace-10:40px;--rayon-petit:6px;--rayon-moyen:8px;--rayon-grand:10px}*{box-sizing:border-box}body{background:var(--couleur-fond);font-family:var(--police-texte);color:var(--couleur-marine);margin:0}.page-connexion{min-height:100vh;padding:var(--espace-6);justify-content:center;align-items:center;display:flex}.cadre-connexion{width:100%;max-width:400px}.identite{text-align:center;margin-bottom:var(--espace-10)}.logo-connexion{width:72px;height:72px;margin:0 auto var(--espace-4);object-fit:contain;display:block}.nom-institution{font-family:var(--police-titres);letter-spacing:-.01em;margin:0 0 var(--espace-1);font-size:22px;font-weight:600}.sous-titre{color:var(--couleur-gris-texte);margin:0;font-size:13px}.carte-connexion{background:var(--couleur-blanc);border:1px solid var(--couleur-bordure);border-radius:var(--rayon-grand);padding:var(--espace-8) var(--espace-8)}.carte-connexion h1{margin:0 0 var(--espace-6);font-size:17px;font-weight:600}.champ input{width:100%;font-family:var(--police-texte);border:1px solid var(--couleur-bordure);border-radius:var(--rayon-petit);background:var(--couleur-fond);color:var(--couleur-marine);padding:10px 12px;font-size:14px}.champ-mot-de-passe{position:relative}.champ-mot-de-passe input{padding-right:76px}.bouton-afficher-mot-de-passe{color:var(--couleur-vert-fonce);cursor:pointer;background:0 0;border:none;padding:4px 6px;font-size:12px;font-weight:500;position:absolute;top:50%;right:8px;transform:translateY(-50%)}.bouton-afficher-mot-de-passe:hover{text-decoration:underline}.champ input:focus{border-color:var(--couleur-vert);outline:none;box-shadow:0 0 0 3px #3d6b5c1f}.champ input:disabled{opacity:.6;cursor:not-allowed}.message-erreur{color:var(--couleur-erreur);margin:0 0 var(--espace-4);font-size:13px}.bouton-connexion{width:100%;font-family:var(--police-texte);color:var(--couleur-blanc);background:var(--couleur-vert);border-radius:var(--rayon-petit);cursor:pointer;margin-top:var(--espace-2);border:none;padding:11px;font-size:14px;font-weight:600}.bouton-connexion:hover:not(:disabled){background:var(--couleur-vert-fonce)}.bouton-connexion:disabled{opacity:.7;cursor:not-allowed}.pied-connexion{text-align:center;color:var(--couleur-gris-texte);margin-top:var(--espace-6);font-size:12px}.selecteur-annee-global{font-family:var(--police-texte);border-radius:var(--rayon-petit);color:#fff;cursor:pointer;background:#ffffff14;border:1px solid #ffffff4d;padding:6px 12px;font-size:13px;font-weight:500}.selecteur-annee-global option{color:var(--couleur-marine);background:#fff}.superposition-panneau{z-index:10;background:#1c2b3966;justify-content:center;align-items:flex-start;padding-top:80px;display:flex;position:fixed;inset:0}.panneau-creation{background:var(--couleur-blanc);color:var(--couleur-marine);border:1px solid var(--couleur-bordure);border-radius:var(--rayon-moyen);width:100%;max-width:480px;padding:28px 32px}.panneau-creation h2{margin:0 0 4px;font-size:16px;font-weight:600}.panneau-sous-titre{color:var(--couleur-gris-texte);margin:0 0 var(--espace-6);font-size:13px}.champ{margin-bottom:var(--espace-4)}.champ label{margin-bottom:var(--espace-2);font-size:13px;font-weight:500;display:block}.champ select,.champ input{width:100%;font-family:var(--police-texte);border:1px solid var(--couleur-bordure);border-radius:var(--rayon-petit);background:var(--couleur-fond);color:var(--couleur-marine);padding:9px 12px;font-size:14px}.champ select:disabled,.champ input:disabled{opacity:.5;cursor:not-allowed}.champ select:focus,.champ input:focus{border-color:var(--couleur-vert);outline:none;box-shadow:0 0 0 3px #3d6b5c1f}.rangee-deux-champs{gap:var(--espace-3);display:flex}.rangee-deux-champs .champ{flex:1}.message-erreur-panneau{color:var(--couleur-erreur);margin:0 0 var(--espace-4);font-size:13px}.boutons-panneau{margin-top:var(--espace-6);gap:10px;display:flex}.en-tete{z-index:5;background:var(--couleur-marine);color:#fff;flex-direction:column;display:flex;position:sticky;top:0;box-shadow:0 2px 8px #00000026}.en-tete-ligne-haute{justify-content:space-between;align-items:center;gap:24px;padding:18px 40px;display:flex}.en-tete-identite{flex-shrink:0;align-items:center;gap:14px;display:flex}.en-tete-logo{background:#fff;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:40px;height:40px;display:flex;overflow:hidden;box-shadow:0 1px 3px #0003}.en-tete-logo img{object-fit:contain;width:100%;height:100%;padding:3px}.en-tete-nom{font-family:var(--police-titres);letter-spacing:.01em;white-space:nowrap;font-size:17px;font-weight:600}.en-tete-groupe-annee{align-items:center;gap:10px;display:flex;position:relative}.en-tete-bouton-nouvelle-annee{font-family:var(--police-texte);border-radius:var(--rayon-petit);color:#ffffffe6;cursor:pointer;white-space:nowrap;background:#ffffff14;border:1px solid #ffffff40;padding:8px 14px;font-size:13px;font-weight:500;transition:background .15s,border-color .15s}.en-tete-bouton-nouvelle-annee:hover{color:#fff;background:#ffffff26;border-color:#fff6}.en-tete-bouton-danger{color:#ffdcd2f2;background:#c9432e26;border-color:#f0826e66}.en-tete-bouton-danger:hover{color:#fff;background:#c9432e4d;border-color:#f0826eb3}.en-tete-bulle-erreur{z-index:20;max-width:340px;color:var(--couleur-erreur);border:1px solid var(--couleur-bordure);border-radius:var(--rayon-petit);background:#fff;padding:10px 14px;font-size:13px;line-height:1.4;position:absolute;top:calc(100% + 8px);left:0;box-shadow:0 4px 12px #00000026}.en-tete-utilisateur{color:#ffffffbf;white-space:nowrap;flex-shrink:0;align-items:center;gap:16px;font-size:14px;display:flex}.en-tete-bouton-deconnexion{border-radius:var(--rayon-petit);color:#ffffffd9;font-family:var(--police-texte);cursor:pointer;background:#ffffff14;border:1px solid #fff3;padding:6px 12px;font-size:13px;font-weight:500}.en-tete-bouton-deconnexion:hover{color:#fff;background:#ffffff29}.en-tete-navigation{background:#00000026;border-top:1px solid #ffffff14;justify-content:center;gap:32px;padding:0 40px;display:flex}.en-tete-navigation a{color:#ffffffa6;border-bottom:2px solid #0000;padding:12px 2px;font-size:14px;font-weight:500;text-decoration:none;transition:color .15s}.en-tete-navigation a:hover{color:#ffffffe6}.en-tete-navigation a.lien-actif{color:#fff;border-bottom-color:var(--couleur-vert)}.page-dashboard-contenu{max-width:1000px;margin:0 auto;padding:40px 32px}.page-dashboard-contenu h1{font-family:var(--police-titres);margin:0 0 var(--espace-8);font-size:24px;font-weight:600}.bande-chiffres{border:1px solid var(--couleur-bordure);border-radius:var(--rayon-moyen);margin-bottom:var(--espace-10);background:var(--couleur-blanc);display:flex}.chiffre-bloc{padding:var(--espace-6);flex:1}.chiffre-bloc:not(:last-child){border-right:1px solid var(--couleur-bordure)}.chiffre-valeur{font-family:var(--police-titres);margin-bottom:var(--espace-2);font-size:32px;font-weight:600;line-height:1}.chiffre-label{color:var(--couleur-gris-texte);font-size:13px}.section-dashboard{margin-bottom:var(--espace-10)}.section-dashboard h2{margin:0 0 4px;font-size:16px;font-weight:600}.section-sous-titre{color:var(--couleur-gris-texte);margin:0 0 var(--espace-4);font-size:13px}table.tableau-saisie{border-collapse:collapse;background:var(--couleur-blanc);border:1px solid var(--couleur-bordure);border-radius:var(--rayon-moyen);width:100%;overflow:hidden}.tableau-saisie th{text-align:left;color:var(--couleur-gris-texte);padding:var(--espace-3) var(--espace-4);border-bottom:1px solid var(--couleur-bordure);background:#fafaf8;font-size:12px;font-weight:600}.tableau-saisie td{padding:var(--espace-3) var(--espace-4);border-bottom:1px solid var(--couleur-bordure);font-size:14px}.tableau-saisie tr:last-child td{border-bottom:none}.statut-complet{color:var(--couleur-vert);font-weight:500}.statut-incomplet{color:#b8863b;font-weight:500}.deux-colonnes{gap:var(--espace-6);display:flex}.deux-colonnes .section-dashboard{flex:1}.liste-repartition{background:var(--couleur-blanc);border:1px solid var(--couleur-bordure);border-radius:var(--rayon-moyen);padding:4px 0}.repartition-ligne{padding:10px var(--espace-4);justify-content:space-between;font-size:14px;display:flex}.repartition-ligne:not(:last-child){border-bottom:1px solid var(--couleur-bordure)}.repartition-valeur{color:var(--couleur-gris-texte)}.etat-chargement,.etat-erreur{padding:var(--espace-10);text-align:center;color:var(--couleur-gris-texte);font-size:14px}.etat-erreur{color:var(--couleur-erreur)}.page-contenu{max-width:1000px;margin:0 auto;padding:40px 32px}.entete-page{margin-bottom:var(--espace-8);justify-content:space-between;align-items:center;display:flex}.entete-page h1{font-family:var(--police-titres);margin:0;font-size:24px;font-weight:600}.bouton-principal{background:var(--couleur-vert);color:var(--couleur-blanc);border-radius:var(--rayon-petit);font-family:var(--police-texte);text-align:center;cursor:pointer;border:none;padding:10px 18px;font-size:14px;font-weight:600;text-decoration:none;display:inline-block}.bouton-principal:hover:not(:disabled){background:var(--couleur-vert-fonce)}.bouton-principal:disabled{opacity:.6;cursor:not-allowed}.bouton-secondaire{border:1px solid var(--couleur-bordure);color:var(--couleur-marine);border-radius:var(--rayon-petit);font-family:var(--police-texte);text-align:center;cursor:pointer;background:0 0;padding:10px 18px;font-size:14px;text-decoration:none;display:inline-block}table.tableau-liste{border-collapse:collapse;background:var(--couleur-blanc);border:1px solid var(--couleur-bordure);border-radius:var(--rayon-moyen);width:100%;overflow:hidden}.tableau-liste th{text-align:left;color:var(--couleur-gris-texte);padding:var(--espace-3) var(--espace-4);border-bottom:1px solid var(--couleur-bordure);background:#fafaf8;font-size:12px;font-weight:600}.tableau-liste td{padding:var(--espace-3) var(--espace-4);border-bottom:1px solid var(--couleur-bordure);font-size:14px}.tableau-liste tr:last-child td{border-bottom:none}.tableau-liste tr.ligne-cliquable:hover{cursor:pointer;background:#fafaf8}.badge{color:var(--couleur-vert-fonce);background:#eef3f1;border-radius:100px;padding:2px 10px;font-size:12px;font-weight:500;display:inline-block}.ligne-vide{text-align:center;color:var(--couleur-gris-texte);padding:var(--espace-8)}.badge-statut{border-radius:100px;padding:2px 10px;font-size:12px;font-weight:500}.badge-manquante{color:#b8863b;background:#fbf0dc}.badge-saisie{color:var(--couleur-vert-fonce);background:#eef3f1}.badge-non-validee{color:var(--couleur-erreur);background:#fbeae7}.badge-bloque{color:#b0392a;background:#fbeae7;border-radius:100px;padding:2px 10px;font-size:12px;font-weight:500}.entete-fiche{background:var(--couleur-blanc);border:1px solid var(--couleur-bordure);border-radius:var(--rayon-moyen);padding:var(--espace-6);margin-bottom:var(--espace-8)}.entete-fiche h1{font-family:var(--police-titres);margin:0 0 var(--espace-2);font-size:22px;font-weight:600}.entete-fiche-matricule{color:var(--couleur-gris-texte);font-family:monospace;font-size:13px}.metadonnees-fiche{gap:var(--espace-8);margin-top:var(--espace-3);display:flex}.metadonnees-fiche>div{flex-direction:column;gap:2px;display:flex}.metadonnee-label{color:var(--couleur-gris-texte);text-transform:uppercase;letter-spacing:.03em;font-size:11px}.informations-etudiant{gap:var(--espace-4) var(--espace-6);margin-top:var(--espace-6);padding-top:var(--espace-4);border-top:1px solid var(--couleur-bordure);flex:0 0 100%;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));display:grid}.information-etudiant{overflow-wrap:anywhere;flex-direction:column;gap:2px;min-width:0;font-size:14px;display:flex}.information-etudiant-vide{color:var(--couleur-gris-texte);font-style:italic}.section-fiche{margin-bottom:var(--espace-8)}.section-fiche h2{margin:0 0 var(--espace-4);font-size:16px;font-weight:600}.bloc-passage-annee{border:1px solid var(--couleur-bordure);border-radius:var(--rayon-moyen);padding:var(--espace-4) var(--espace-5);margin-bottom:var(--espace-3)}.entete-bloc-passage{justify-content:space-between;align-items:center;display:flex}.resultat-passage{margin-top:var(--espace-3);padding-top:var(--espace-3);border-top:1px solid var(--couleur-bordure);font-size:14px}.resultat-passage-accorde{color:#2e6b45}.resultat-passage-refuse{color:#b0392a}.moyenne-annuelle-texte{margin-top:4px;font-weight:600}.statut-passage-texte{margin-top:4px;font-size:15px;font-weight:600}.bandeau-bloque{color:#b0392a;border-radius:var(--rayon-moyen);background:#fbeae7;border:1px solid #f0c9c2;margin-bottom:20px;padding:12px 16px;font-size:14px}.electifs-resume{border:1px solid var(--couleur-bordure);border-radius:var(--rayon-moyen);background:#fff;align-items:center;gap:12px;margin-bottom:24px;padding:14px 18px;display:flex}.electifs-resume-chiffre{font-family:var(--police-titres);color:var(--couleur-electif);font-size:22px;font-weight:600}.electifs-resume-texte{color:var(--couleur-gris-texte);font-size:14px}.electifs-barre-progression{background:#edebe4;border-radius:100px;flex:1;max-width:240px;height:8px;margin-left:auto;overflow:hidden}.electifs-barre-progression-remplie{background:var(--couleur-electif);border-radius:100px;height:100%;transition:width .25s}.select-electif{width:100%;max-width:380px;font-family:var(--police-texte);border-radius:var(--rayon-petit);cursor:pointer;padding:9px 12px;font-size:14px;transition:border-color .15s,background .15s}.select-electif-choisi{border:1.5px solid var(--couleur-electif);background:var(--couleur-electif-fond);color:var(--couleur-electif-texte);font-weight:500}.select-electif-non-choisi{border:1.5px dashed var(--couleur-bordure);background:var(--couleur-fond);color:var(--couleur-gris-texte)}.select-electif:disabled{opacity:.6;cursor:wait}.electifs-libelle-enregistrement{color:var(--couleur-electif);margin-left:10px;font-size:12px;font-weight:500}.carte-etudiant{background:var(--couleur-blanc);border:1px solid var(--couleur-bordure);border-radius:var(--rayon-moyen);padding:var(--espace-6);margin-bottom:var(--espace-4)}.carte-etudiant h3{margin:0 0 var(--espace-3)}.ligne-badges{gap:var(--espace-2);margin-bottom:var(--espace-4);flex-wrap:wrap;display:flex}.badge-etat{white-space:nowrap;border-radius:999px;align-items:center;gap:4px;padding:3px 10px;font-size:13px;font-weight:500;display:inline-flex}.badge-valide{color:var(--couleur-vert-fonce);background:#e8f0ec}.badge-en-attente{background:var(--couleur-electif-fond);color:var(--couleur-electif-texte)}.badge-echoue{color:var(--couleur-erreur);background:#fbeae7}.badge-souhaite{background:var(--couleur-fond);border:1px dashed var(--couleur-gris-texte);color:var(--couleur-marine);border-radius:999px;align-items:center;gap:6px;padding:3px 6px 3px 10px;font-size:13px;font-weight:500;display:inline-flex}.bouton-retirer-souhait{color:var(--couleur-gris-texte);cursor:pointer;background:0 0;border:none;padding:0 2px;font-size:16px;line-height:1}.bouton-retirer-souhait:hover{color:var(--couleur-erreur)}.section-titre{text-transform:uppercase;letter-spacing:.03em;color:var(--couleur-gris-texte);margin:var(--espace-4) 0 var(--espace-2);font-size:13px;font-weight:600}.ligne-cours-actionnable{align-items:center;gap:var(--espace-3);padding:var(--espace-2) 0;border-bottom:1px solid var(--couleur-bordure);display:flex}.ligne-cours-actionnable:last-child{border-bottom:none}.case-souhait{align-items:center;gap:var(--espace-2);cursor:pointer;flex:1;display:flex}.case-souhait input{width:18px;height:18px;accent-color:var(--couleur-vert);cursor:pointer}.etiquette-a-reprendre{color:var(--couleur-erreur);font-size:12px;font-weight:500}.section-verrouillee{margin-top:var(--espace-4)}.section-verrouillee summary{color:var(--couleur-gris-texte);cursor:pointer;padding:var(--espace-2) 0;font-size:13px}.ligne-verrouillee{justify-content:space-between;align-items:center;gap:var(--espace-3);padding:var(--espace-2) var(--espace-3);color:var(--couleur-gris-texte);background:var(--couleur-fond);border-radius:var(--rayon-petit);margin-bottom:4px;font-size:14px;display:flex}.ligne-verrouillee .raison{font-size:12px}.etapes{gap:var(--espace-2);margin-bottom:var(--espace-6);display:flex}.etape-puce{background:var(--couleur-bordure);border-radius:2px;flex:1;height:3px}.etape-puce.active{background:var(--couleur-vert)}.confirmation-etudiant{border-radius:var(--rayon-petit);margin-bottom:var(--espace-5);background:#eef3f1;border:1px solid #d3e3dc;padding:12px 14px;font-size:13px}.confirmation-etudiant strong{color:var(--couleur-vert-fonce)}.selecteurs-notes{gap:var(--espace-4);margin-bottom:var(--espace-6);background:var(--couleur-blanc);border:1px solid var(--couleur-bordure);border-radius:var(--rayon-moyen);padding:var(--espace-5) var(--espace-6);display:flex}.champ-selecteur select{width:100%;font-family:var(--police-texte);border:1px solid var(--couleur-bordure);border-radius:var(--rayon-petit);background:var(--couleur-fond);color:var(--couleur-marine);padding:9px 12px;font-size:14px}.compteur-manquantes{color:#b8863b;font-weight:500}.compteur-complet{color:var(--couleur-vert-fonce);font-weight:500}table.tableau-saisie-notes{border-collapse:collapse;background:var(--couleur-blanc);border:1px solid var(--couleur-bordure);border-radius:var(--rayon-moyen);width:100%;overflow:hidden}.tableau-saisie-notes th{text-align:left;color:var(--couleur-gris-texte);padding:var(--espace-3) var(--espace-4);border-bottom:1px solid var(--couleur-bordure);background:#fafaf8;font-size:12px;font-weight:600}.tableau-saisie-notes td{padding:10px var(--espace-4);border-bottom:1px solid var(--couleur-bordure);font-size:14px}.tableau-saisie-notes tr:last-child td{border-bottom:none}.cellule-note input{width:70px;font-family:var(--police-texte);border:1px solid var(--couleur-bordure);border-radius:var(--rayon-petit);text-align:center;padding:7px 10px;font-size:14px;transition:border-color .2s,background-color .2s}.cellule-note input:focus{border-color:var(--couleur-vert);outline:none;box-shadow:0 0 0 3px #3d6b5c1f}.cellule-note input.non-saisie{background:#fbf6ec;border-color:#e8d4a8}.cellule-note input.saisie{background:var(--couleur-blanc)}.cellule-note input.vient-d-etre-sauvegardee{border-color:var(--couleur-vert);background:#eef3f1}.cellule-note input.erreur{border-color:var(--couleur-erreur)}.message-erreur-cellule{color:var(--couleur-erreur);margin-top:4px;font-size:11px}.cellule-moyenne{font-weight:600;font-family:var(--police-titres)}.cellule-session2-inactive{color:var(--couleur-bordure);text-align:center;font-size:13px}.entete-cycle{color:var(--couleur-gris-texte);margin-bottom:var(--espace-4);font-size:13px}.selecteurs-absences{gap:var(--espace-4);margin-bottom:var(--espace-6);background:var(--couleur-blanc);border:1px solid var(--couleur-bordure);border-radius:var(--rayon-moyen);padding:var(--espace-5) var(--espace-6);display:flex}.champ-selecteur{flex:1}.champ-selecteur label{margin-bottom:var(--espace-2);font-size:13px;font-weight:500;display:block}.champ-selecteur select,.champ-selecteur input{width:100%;font-family:var(--police-texte);border:1px solid var(--couleur-bordure);border-radius:var(--rayon-petit);background:var(--couleur-fond);color:var(--couleur-marine);padding:9px 12px;font-size:14px}.champ-selecteur select:disabled{opacity:.5;cursor:not-allowed}.bandeau-progression{margin-bottom:var(--espace-4);color:var(--couleur-gris-texte);justify-content:space-between;align-items:center;font-size:13px;display:flex}.compteur-absents{color:#b8863b;font-weight:500}.compteur-tous-presents{color:var(--couleur-vert-fonce);font-weight:500}table.tableau-presence{border-collapse:collapse;background:var(--couleur-blanc);border:1px solid var(--couleur-bordure);border-radius:var(--rayon-moyen);width:100%;overflow:hidden}.tableau-presence th{text-align:left;color:var(--couleur-gris-texte);padding:var(--espace-3) var(--espace-4);border-bottom:1px solid var(--couleur-bordure);background:#fafaf8;font-size:12px;font-weight:600}.tableau-presence td{padding:10px var(--espace-4);border-bottom:1px solid var(--couleur-bordure);font-size:14px}.tableau-presence tr:last-child td{border-bottom:none}.case-presence{align-items:center;gap:var(--espace-2);cursor:pointer;width:fit-content;display:flex}.case-presence input[type=checkbox]{accent-color:#b8863b;cursor:pointer;width:18px;height:18px}.bouton-enregistrer{margin-top:var(--espace-5)}.message-confirmation{color:var(--couleur-vert-fonce);margin-top:var(--espace-3);font-size:13px}.message-erreur-lot{color:var(--couleur-erreur);margin-top:var(--espace-3);font-size:13px}.liste-seances-historique{flex-direction:column;gap:12px;display:flex}.carte-seance{border:1px solid var(--couleur-bordure);border-radius:var(--rayon-moyen);background:#fff;padding:14px 18px}.carte-seance-entete{justify-content:space-between;align-items:center;display:flex}.carte-seance-date{text-transform:capitalize;font-weight:500}.liste-absents-seance{color:var(--couleur-gris-texte);margin:10px 0 0;padding-left:20px;font-size:14px}.liste-absents-seance li{margin-bottom:4px}.onglets-terme{gap:var(--espace-2);margin-bottom:var(--espace-4);border-bottom:1px solid var(--couleur-bordure);display:flex}.onglet-terme{font-family:var(--police-texte);color:var(--couleur-gris-texte);cursor:pointer;background:0 0;border:none;border-bottom:2px solid #0000;margin-bottom:-1px;padding:9px 16px;font-size:14px;font-weight:500}.onglet-terme:hover{color:var(--couleur-marine)}.onglet-terme-actif{color:var(--couleur-marine);border-bottom-color:var(--couleur-vert)}.bouton-telechargement-terme{margin-left:auto;margin-bottom:var(--espace-2)}.selecteurs-bulletin{gap:var(--espace-4);margin-bottom:var(--espace-6);background:var(--couleur-blanc);border:1px solid var(--couleur-bordure);border-radius:var(--rayon-moyen);padding:var(--espace-5) var(--espace-6);align-items:flex-end;display:flex}.selecteurs-bulletin .champ-selecteur{flex:1}.selecteurs-bulletin .champ-selecteur label{margin-bottom:var(--espace-2);font-size:13px;font-weight:500;display:block}.selecteurs-bulletin select{width:100%;font-family:var(--police-texte);border:1px solid var(--couleur-bordure);border-radius:var(--rayon-petit);background:var(--couleur-fond);color:var(--couleur-marine);padding:9px 12px;font-size:14px}.bouton-telecharger{white-space:nowrap}.entete-bulletin-etudiant{margin-bottom:var(--espace-4)}.entete-bulletin-etudiant h2{margin:0 0 4px;font-size:18px;font-weight:600}.entete-bulletin-etudiant span{color:var(--couleur-gris-texte);font-family:monospace;font-size:13px}table.tableau-bulletin td,table.tableau-bulletin th{text-align:center}table.tableau-bulletin td:first-child,table.tableau-bulletin th:first-child{text-align:left}.ligne-groupe-ue td{color:var(--couleur-marine);background:#f4f3ef;font-size:13px;font-weight:600}.ligne-groupe-ue-validee td{color:#2e6b45;background:#eaf3ec}.ligne-groupe-ue-non-validee td{color:#b0392a;background:#fbeae7}.bandeau-moyenne-semestre{border:1px solid var(--couleur-bordure);border-radius:var(--rayon-petit);margin-top:var(--espace-4);color:var(--couleur-marine);background:#f4f3ef;justify-content:space-between;align-items:center;padding:12px 16px;font-size:15px;font-weight:600;display:flex}.bandeau-semestre-valide{color:#2e6b45;background:#eaf3ec;border-color:#c7e0d0}.bandeau-semestre-non-valide{color:#b0392a;background:#fbeae7;border-color:#f0c9c2}.statut-semestre-texte{font-size:14px}.avertissement-bulletin{color:var(--couleur-gris-texte);margin-top:var(--espace-3);font-size:12px}.groupe-parcours{margin-bottom:var(--espace-8)}.groupe-parcours h2{font-family:var(--police-titres);margin:0 0 var(--espace-4);padding-bottom:var(--espace-2);border-bottom:1px solid var(--couleur-bordure);font-size:19px;font-weight:600}.groupe-niveau{margin-bottom:var(--espace-6)}.groupe-niveau h3{color:var(--couleur-gris-texte);margin:0 0 var(--espace-3);font-size:14px;font-weight:600}.groupe-classe{margin-bottom:var(--espace-4);margin-left:var(--espace-4)}.groupe-classe h4{font-family:var(--police-titres);color:var(--couleur-marine);margin:0 0 var(--espace-3);font-size:15px;font-weight:600}.groupe-cours{margin-bottom:var(--espace-4);margin-left:var(--espace-4)}.groupe-cours-titre{color:var(--couleur-vert-fonce);margin:0 0 var(--espace-2);font-size:13px;font-weight:500}.moyenne-proche{color:#b8863b;font-weight:500}.superposition-premaster{z-index:10;background:#1c2b3966;justify-content:center;align-items:flex-start;padding:60px 16px 40px;display:flex;position:fixed;inset:0;overflow-y:auto}.panneau-premaster{background:var(--couleur-blanc);color:var(--couleur-marine);border:1px solid var(--couleur-bordure);border-radius:var(--rayon-moyen);width:100%;max-width:540px;padding:28px 32px}.panneau-premaster-large{max-width:980px}.panneau-premaster h2{font-family:var(--police-titres);margin:0 0 4px;font-size:18px;font-weight:600}.panneau-premaster h3{margin:var(--espace-6) 0 var(--espace-2);font-size:14px;font-weight:600}.entete-panneau-premaster{justify-content:space-between;align-items:flex-start;gap:var(--espace-4);margin-bottom:var(--espace-4);display:flex}.entete-panneau-premaster .panneau-sous-titre{margin-bottom:0}.encart-premaster{border-radius:var(--rayon-petit);margin-bottom:var(--espace-4);background:#eef3f1;border:1px solid #d3e3dc;padding:12px 14px;font-size:13px;line-height:1.5}.encart-premaster strong{color:var(--couleur-vert-fonce)}.encart-premaster-info{background:var(--couleur-electif-fond);color:var(--couleur-electif-texte);border-color:#cfdde9}.encart-premaster-alerte{color:#7a5a1e;background:#fbf6ec;border-color:#e8d4a8}.panneau-premaster .confirmation-etudiant{margin-bottom:var(--espace-4)}.grille-infos-premaster{gap:var(--espace-3) var(--espace-6);margin-bottom:var(--espace-4);grid-template-columns:repeat(auto-fit,minmax(220px,1fr));display:grid}.info-premaster dt{color:var(--couleur-gris-texte);margin-bottom:2px;font-size:12px}.info-premaster dd{margin:0;font-size:14px}.liste-raisons-premaster{margin:0;padding-left:18px;font-size:13px}.choix-decision{gap:var(--espace-2);margin-bottom:var(--espace-4);flex-direction:column;display:flex}.choix-decision label{align-items:flex-start;gap:var(--espace-2);border:1px solid var(--couleur-bordure);border-radius:var(--rayon-petit);cursor:pointer;padding:10px 12px;font-size:14px;display:flex}.choix-decision label.choix-actif{border-color:var(--couleur-vert);background:#f3f7f5}.choix-decision input{margin-top:3px}.choix-decision small{color:var(--couleur-gris-texte);margin-top:2px;font-size:12px;display:block}.champ textarea{width:100%;min-height:84px;font-family:var(--police-texte);border:1px solid var(--couleur-bordure);border-radius:var(--rayon-petit);background:var(--couleur-fond);color:var(--couleur-marine);resize:vertical;padding:9px 12px;font-size:14px}.champ textarea:focus{border-color:var(--couleur-vert);outline:none;box-shadow:0 0 0 3px #3d6b5c1f}.historique-premaster td.motif-historique{color:var(--couleur-gris-texte);font-size:13px}.page-contenu.page-premaster{max-width:1100px}.sous-titre-premaster{color:var(--couleur-gris-texte);margin:calc(-1 * var(--espace-4)) 0 var(--espace-6);max-width:760px;font-size:13px;line-height:1.5}.indicateurs-premaster{border:1px solid var(--couleur-bordure);border-radius:var(--rayon-moyen);background:var(--couleur-blanc);margin-bottom:var(--espace-8);grid-template-columns:repeat(5,1fr);display:grid}.indicateur-premaster{padding:var(--espace-4) var(--espace-6)}.indicateur-premaster:not(:last-child){border-right:1px solid var(--couleur-bordure)}.indicateur-valeur{font-family:var(--police-titres);margin-bottom:var(--espace-2);font-size:30px;font-weight:600;line-height:1}.indicateur-label{color:var(--couleur-gris-texte);font-size:13px}.indicateur-attention .indicateur-valeur{color:#b8863b}.indicateur-affectes .indicateur-valeur{color:var(--couleur-vert)}@media (width<=860px){.indicateurs-premaster{grid-template-columns:repeat(2,1fr)}.indicateur-premaster:not(:last-child){border-right:none}.indicateur-premaster{border-bottom:1px solid var(--couleur-bordure)}}.onglets-premaster{gap:var(--espace-2);margin-bottom:var(--espace-6);border-bottom:1px solid var(--couleur-bordure);display:flex;overflow-x:auto}.onglet-premaster{font-family:var(--police-texte);color:var(--couleur-gris-texte);cursor:pointer;white-space:nowrap;background:0 0;border:none;border-bottom:2px solid #0000;margin-bottom:-1px;padding:10px 16px;font-size:14px;font-weight:500}.onglet-premaster:hover{color:var(--couleur-marine)}.onglet-premaster-actif{color:var(--couleur-marine);border-bottom-color:var(--couleur-vert)}.sous-onglets-premaster{margin-bottom:var(--espace-4);border-radius:var(--rayon-moyen);background:#efede7;gap:2px;padding:3px;display:inline-flex}.sous-onglets-premaster button{font-family:var(--police-texte);color:var(--couleur-gris-texte);border-radius:var(--rayon-petit);cursor:pointer;background:0 0;border:none;padding:7px 14px;font-size:13px;font-weight:500}.sous-onglets-premaster button.sous-onglet-actif{background:var(--couleur-blanc);color:var(--couleur-marine);box-shadow:0 1px 2px #00000014}.barre-filtres-premaster{gap:var(--espace-3);margin-bottom:var(--espace-4);flex-wrap:wrap;display:flex}.barre-filtres-premaster input,.barre-filtres-premaster select,.champ-premaster select,.select-compact{font-family:var(--police-texte);border:1px solid var(--couleur-bordure);border-radius:var(--rayon-petit);background:var(--couleur-blanc);color:var(--couleur-marine);padding:9px 12px;font-size:14px}.barre-filtres-premaster input{flex:1;min-width:220px}.barre-filtres-premaster input:focus,.barre-filtres-premaster select:focus,.champ-premaster select:focus,.select-compact:focus{border-color:var(--couleur-vert);outline:none;box-shadow:0 0 0 3px #3d6b5c1f}.select-compact{padding:6px 10px;font-size:13px}.select-compact:disabled,.champ-premaster select:disabled{opacity:.5;cursor:not-allowed}.carte-premaster{gap:var(--espace-4);background:var(--couleur-blanc);border:1px solid var(--couleur-bordure);border-radius:var(--rayon-moyen);padding:var(--espace-4) var(--espace-6);margin-bottom:var(--espace-4);display:flex}.carte-filtres-premaster{flex-wrap:wrap}.champ-premaster{flex:1;min-width:200px}.champ-large-premaster{flex:2;min-width:280px}.champ-premaster label{margin-bottom:var(--espace-2);font-size:13px;font-weight:500;display:block}.champ-premaster select{width:100%}.titre-section-premaster{margin:var(--espace-8) 0 var(--espace-3);font-size:16px;font-weight:600}.resume-dossier-premaster{justify-content:space-between;align-items:flex-start;gap:var(--espace-4);background:var(--couleur-blanc);border:1px solid var(--couleur-bordure);border-radius:var(--rayon-moyen);padding:var(--espace-4) var(--espace-6);margin-bottom:var(--espace-4);display:flex}.resume-dossier-detail{color:var(--couleur-gris-texte);margin-top:2px;font-size:13px}.sous-texte-premaster{color:var(--couleur-gris-texte);font-size:12px}.note-bas-premaster{color:var(--couleur-gris-texte);margin:var(--espace-2) 0 0;font-size:12px}.message-erreur-premaster{color:var(--couleur-erreur);border-radius:var(--rayon-petit);margin:0 0 var(--espace-4);background:#fbeae7;border:1px solid #f0cfc8;padding:10px 14px;font-size:13px}.badge-neutre-premaster{color:var(--couleur-gris-texte);background:#efede7}.compteur-alerte-premaster{color:var(--couleur-erreur);font-weight:500}.ligne-indisponible-premaster td{color:var(--couleur-gris-texte);background:#fafaf8}.barre-action-premaster{margin-top:var(--espace-4);justify-content:flex-end;display:flex}.bouton-compact{padding:6px 12px;font-size:13px}.actions-premaster{gap:var(--espace-2);white-space:nowrap;flex-wrap:nowrap;justify-content:flex-end;display:flex}.zone-defilement-premaster{border:1px solid var(--couleur-bordure);border-radius:var(--rayon-moyen);background:var(--couleur-blanc);max-height:460px;overflow-y:auto}.zone-defilement-premaster table.tableau-liste{border:none;border-radius:0}.zone-defilement-premaster .tableau-liste th{z-index:1;position:sticky;top:0}.lien-bouton-premaster{font-family:var(--police-texte);color:var(--couleur-marine);text-align:left;cursor:pointer;background:0 0;border:none;padding:0;font-size:14px;font-weight:500}.lien-bouton-premaster:hover{color:var(--couleur-vert-fonce);text-decoration:underline}.liste-raisons-premaster{color:var(--couleur-gris-texte);margin:0;padding-left:18px;font-size:13px}
