.sidebar{position:fixed;top:0;left:0;height:100vh;width:80px;background-color:#2a9d8f;color:#fff;transition:width .3s ease;overflow-x:hidden;z-index:1000}.sidebar-logo{width:100%;text-align:center;overflow:hidden;height:120px;display:flex;justify-content:center;align-items:flex-start;padding:10px}.sidebar-logo img{width:55px;height:auto;object-fit:contain;transition:width .3s ease,opacity .3s ease;opacity:0;max-height:100%}.sidebar:hover .sidebar-logo img,.sidebar.pinned .sidebar-logo img{width:140px;opacity:1}.sidebar:hover .sidebar-logo-placeholder,.sidebar.pinned .sidebar-logo-placeholder{opacity:1}.logo{font-size:1.2rem;font-weight:700;padding:1rem;white-space:nowrap;opacity:0;transition:opacity .3s ease}.sidebar:hover .logo{opacity:1}nav{display:flex;margin-top:10px;flex-direction:column}.nav-item{display:flex;align-items:center;padding:1rem;color:#fff;text-decoration:none;transition:background .3s ease;white-space:nowrap;overflow:hidden}.nav-item:hover{background-color:#21867a}.icon{font-size:1.2rem;margin-right:1rem}.sidebar:hover .menu-text{opacity:1}.sidebar:hover,.sidebar.pinned{width:250px}.pin-btn{background:none;border:none;color:gray;cursor:pointer;font-size:1.5rem;position:absolute;top:10px;right:10px;z-index:2000;transition:color .3s ease}.pin-btn.active{color:#fff}.sidebar:hover~.main-content{margin-left:250px}.sidebar.pinned~.main-content{margin-left:250px}.nav-item.active{background-color:#1e6f63}.menu-text{opacity:0;white-space:nowrap;transition:opacity .3s ease}.sidebar.pinned .menu-text{opacity:1}.main-content p{color:#000}.main-content{margin-left:80px;transition:margin-left .3s ease;padding:20px}.sidebar:hover+.main-content,.sidebar.pinned+.main-content{margin-left:250px}.logout-btn{display:flex;align-items:center;padding:1rem;color:#fff;background:none;border:none;cursor:pointer;text-align:left;width:100%;transition:background .3s ease,color .3s ease;margin-left:0;padding-left:5px}.logout-btn .icon{font-size:1.2rem;margin-right:1rem;opacity:1}.logout-btn .menu-text{opacity:0;transition:opacity .3s ease;margin-left:-5px}.sidebar:hover .logout-btn .menu-text,.sidebar.pinned .logout-btn .menu-text{opacity:1}.logout-btn:hover{background-color:#c0392b;color:#fff}.logout-overlay{position:fixed;top:0;left:0;width:100vw;height:100vh;background:#00000073;display:flex;justify-content:center;align-items:center;z-index:99999}.logout-card{background:#fff;padding:25px;border-radius:12px;width:380px;max-width:90%;box-shadow:0 4px 20px #00000040;animation:logoutFadeIn .25s ease-out;color:#111}.logout-card h3{margin-bottom:10px;font-size:20px;font-weight:600}.logout-text{font-size:15px;margin-bottom:22px;line-height:1.4}.logout-actions{display:flex;justify-content:space-between;gap:10px}.logout-btn-danger{background:#dc2626;color:#fff;border:none;padding:10px 14px;border-radius:6px;cursor:pointer;font-size:14px;flex:1}.logout-btn-danger:hover{background:#b91c1c}.logout-btn-cancel{background:#6b7280;color:#fff;border:none;padding:10px 14px;border-radius:6px;cursor:pointer;font-size:14px;flex:1}.logout-btn-cancel:hover{background:#4b5563}@keyframes logoutFadeIn{0%{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}.sidebar-logo-placeholder{font-size:1.5rem;font-weight:600;line-height:1.2;white-space:normal;word-break:break-word;opacity:0;transition:opacity .3s ease;padding:0 10px;max-width:100%;text-align:left}.breadcrumb{font-size:.95rem;margin-bottom:16px;color:#555}.breadcrumb a{color:#2a9d8f;text-decoration:none;font-weight:700}.breadcrumb span{margin-left:4px}.user-header{position:absolute;top:12px;right:20px;z-index:20;width:auto;display:inline-flex;flex-direction:column;align-items:flex-end}.user-info{display:flex;align-items:center;gap:10px;background:#ffffff0f;padding:6px 12px;border-radius:8px;border:1px solid rgba(255,255,255,.12);color:#fff;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);cursor:pointer;transition:background .15s ease}.user-info:hover{background:#ffffff1f}.user-avatar{width:32px;height:32px;border-radius:50%;background:#007bff;display:flex;align-items:center;justify-content:center;font-weight:600;font-size:15px;color:#fff}.user-text{display:flex;flex-direction:column;line-height:1.1}.user-menu{margin-top:6px;background:#1e1e1ef2;border:1px solid rgba(255,255,255,.12);border-radius:8px;padding:6px 0;width:150px;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);animation:fadeIn .15s ease-out}.user-menu-item{padding:8px 12px;font-size:14px;color:#fff;cursor:pointer;transition:background .15s ease}.user-menu-item:hover{background:#ffffff1f}@keyframes fadeIn{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}.user-greeting{font-size:11px;opacity:.8;color:#000}.user-name{font-size:14px;font-weight:600;white-space:nowrap;color:#000}:root{--mc-bg: #ffffff;--mc-border: #d9d9d9;--mc-border-strong: #c7c7c7;--mc-text: #1a1a1a;--mc-text-light: #555;--mc-primary: #2f4bff;--mc-primary-hover: #243bd8;--mc-muted-bg: #f5f6f8;--mc-success-bg: #e8f5e9;--mc-success-border: #c8e6c9;--mc-success-text: #2e7d32;font-family:Inter,Segoe UI,sans-serif}.mc-container{max-width:720px;margin:50px auto;padding:0 20px;color:var(--mc-text)}.mc-title{font-size:30px;font-weight:600;text-align:center;margin-bottom:35px;letter-spacing:-.3px;color:#111}.mc-card{background:var(--mc-bg);border:1px solid var(--mc-border);border-radius:12px;padding:32px 36px;box-shadow:0 2px 8px #0000000a}.mc-section-title{font-size:18px;font-weight:600;margin-bottom:25px;color:#222;letter-spacing:-.2px}.mc-row{margin-bottom:26px}.mc-row-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:6px}.mc-label{font-size:14px;font-weight:500;color:#333}.mc-input{width:100%;padding:12px 14px;font-size:15px;border:1px solid var(--mc-border);border-radius:8px;background:#fff;transition:all .2s ease}.mc-input:focus{border-color:var(--mc-primary);background:#f9fbff;outline:none}.mc-readonly{background:var(--mc-muted-bg);border-color:var(--mc-border-strong);color:#666;cursor:not-allowed}.mc-edit-btn{background:none;border:none;cursor:pointer;font-size:18px;opacity:.65;transition:opacity .2s ease}.mc-edit-btn:hover{opacity:1}.mc-actions{display:flex;justify-content:flex-end;gap:14px;margin-top:30px}.mc-cancel-btn,.mc-save-btn{padding:11px 22px;font-size:14px;border-radius:8px;cursor:pointer;border:1px solid transparent;transition:all .2s ease;font-weight:500}.mc-cancel-btn{background:var(--mc-muted-bg);border-color:var(--mc-border);color:#444}.mc-cancel-btn:hover{background:#e8e9eb}.mc-save-btn{background:var(--mc-primary);color:#fff;border-color:var(--mc-primary)}.mc-save-btn:hover{background:var(--mc-primary-hover)}.mc-success{margin-top:25px;padding:14px;background:var(--mc-success-bg);border:1px solid var(--mc-success-border);color:var(--mc-success-text);border-radius:8px;font-size:14px;text-align:center}.mc-loading,.mc-error{text-align:center;margin-top:40px;font-size:16px;color:var(--mc-text-light)}.dash-page{display:flex;flex-direction:column;min-height:100vh}.dash-container{flex:1;padding:30px;animation:fadeIn .3s ease-in-out}.dash-main{max-width:1200px;margin-left:0}.dash-title{font-size:2rem;font-weight:700;margin-bottom:25px;color:#1a1a1a}.dash-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:20px;margin-bottom:30px}.dash-card{background:#fff;border-radius:12px;padding:20px;border:1px solid #e5e7eb;box-shadow:0 4px 14px #0000000f;transition:.25s ease}.dash-card:hover{transform:translateY(-4px);box-shadow:0 8px 20px #00000014}.dash-card h2{margin:0;font-size:1.1rem;font-weight:600;color:#000}.dash-card p{margin-top:10px;font-size:1.6rem;font-weight:700;color:#2563eb}.dash-grid2{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:25px}.dash-card-title{font-size:1rem;font-weight:600;color:#444}.dash-card-value{margin-top:8px;font-size:1.2rem;font-weight:700;color:#2563eb}.dash-error{color:red;margin-top:20px}.footer{background-color:#1e1e2f;color:#fff;display:flex;justify-content:space-around;flex-wrap:wrap;padding:20px 40px;border-top:1px solid #333}.footer-section{flex:1;min-width:180px;margin:10px}.footer-section h4{margin-bottom:8px;font-size:1rem;color:#00bcd4}.footer-section p{margin:4px 0;color:#ccc;cursor:pointer;transition:color .2s ease}.footer-section p:hover{color:#fff}.eleves-page{padding:30px}.eleves-header{margin-bottom:30px}.eleves-title{font-size:2.2rem;font-weight:700;color:#1e293b;margin:0}.eleves-subtitle{font-size:1rem;color:#64748b;margin-top:6px}.eleves-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:22px}.eleves-card{background:#fff;border-radius:14px;padding:22px;box-shadow:0 4px 12px #0000000f;cursor:pointer;transition:.25s ease;border:1px solid #e2e8f0}.eleves-card:hover{transform:translateY(-4px);box-shadow:0 8px 18px #0000001a}.eleves-card h3{margin:12px 0 6px;font-size:1.2rem;color:#1e293b}.eleves-card p{margin:0;color:#64748b;font-size:.95rem}.eleves-card-icon{width:55px;height:55px;border-radius:12px;display:flex;align-items:center;justify-content:center;font-size:1.6rem;color:#fff}.eleves-card-icon.blue{background:#2563eb}.eleves-card-icon.green{background:#16a34a}.eleves-card-icon.red{background:#dc2626}.eleves-card.danger:hover{box-shadow:0 8px 18px #dc262640}.accueil-page{position:relative;width:100%;min-height:100vh;display:flex;flex-direction:column;font-family:Inter,sans-serif;overflow:hidden}.header-accueil{position:absolute;top:20px;left:0;width:100%;padding:0 25px;display:flex;justify-content:space-between;align-items:center;z-index:20}.logo-accueil{width:250px;height:auto;object-fit:contain}.btn-connexion{padding:15px 25px;background-color:#d2545b;color:#fff;border:none;border-radius:6px;cursor:pointer;font-weight:600;transition:.2s}.btn-connexion:hover{background-color:#1b2e41}.accueil-bg{position:absolute;inset:0;background-image:url(/assets/image_page_accueil-BhuwbWHD.jpg);background-size:cover;background-position:center;filter:brightness(.65);z-index:1}.accueil-overlay{position:absolute;inset:0;background:#00000073;z-index:2}.accueil-container{position:relative;z-index:3;flex:1;display:flex;flex-direction:column;justify-content:center;align-items:center;color:#fff;text-align:center;padding:20px}.accueil-title{font-size:42px;font-weight:700;margin-bottom:5px}.accueil-subtitle{font-size:18px;opacity:.9;margin-bottom:40px}.accueil-container p{color:#fff}.footer{position:relative;z-index:20;background:#00000059;padding:25px 40px;display:flex;justify-content:space-between;flex-wrap:wrap;border-top:1px solid rgba(255,255,255,.25);color:#fff}.footer-section{min-width:180px;margin-bottom:15px}.footer-section h4{font-size:16px;font-weight:600;margin-bottom:8px;color:#fff}.footer-section p{margin:4px 0;color:#e5e7eb;font-size:14px;cursor:pointer}.footer-section p:hover{color:#93c5fd}.login-page{position:relative;width:100%;min-height:100vh;display:flex;justify-content:center;align-items:center;font-family:Inter,sans-serif;overflow:hidden}.login-bg{position:absolute;inset:0;background-image:url(/assets/image_page_accueil-BhuwbWHD.jpg);background-size:cover;background-position:center;filter:brightness(.65);z-index:1}.login-overlay{position:absolute;inset:0;background:#00000073;z-index:2}.login-container{position:relative;z-index:3}.login-box{background:#fff;padding:30px 35px;border-radius:12px;width:350px;box-shadow:0 8px 25px #00000040;display:flex;flex-direction:column;gap:15px}.login-box h2{margin-bottom:10px;color:#2563eb}.login-box input{padding:12px;border:1px solid #d1d5db;border-radius:8px;font-size:15px}.login-box button{background:#2563eb;color:#fff;padding:12px;border:none;border-radius:8px;font-size:16px;cursor:pointer;margin-top:10px}.login-box button:hover{background:#1d4ed8}.login-error{color:#dc2626;margin-top:5px;font-size:14px}.btn-retour-accueil{position:fixed;top:60px;left:120px;z-index:9999;background:#ffffff26;border:1px solid rgba(255,255,255,.4);color:#fff;padding:8px 14px;border-radius:6px;font-size:16px;cursor:pointer;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);transition:.2s}.btn-retour-accueil:hover{background:#ffffff4d}.edt-container{padding:35px;animation:fadeIn .3s ease-in-out;max-width:1200px;margin:0}@keyframes fadeIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.edt-title{font-size:2rem;font-weight:700;margin:0;color:#1a1a1a}.edt-subtitle{font-size:1rem;color:#555;margin-top:5px;margin-bottom:30px}.edt-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:25px}.edt-card{background:#fff;border-radius:14px;padding:22px;display:flex;gap:18px;align-items:flex-start;border:1px solid #e5e7eb;cursor:pointer;transition:.25s ease;box-shadow:0 4px 14px #0000000f}.edt-card:hover{transform:translateY(-4px);box-shadow:0 8px 20px #00000014}.edt-card-icon{width:55px;height:55px;border-radius:12px;display:flex;align-items:center;justify-content:center;font-size:26px;color:#fff;flex-shrink:0}.edt-card-icon.blue{background:#2563eb}.edt-card-icon.green{background:#10b981}.edt-card-content{position:relative;padding-bottom:45px;flex:1}.edt-card-content h3{margin:0;font-size:1.2rem;font-weight:600;color:#000}.edt-card-content p{margin:6px 0 14px;font-size:.9rem;color:#666}.edt-button{position:absolute;bottom:0;right:0;padding:8px 14px;background:#2563eb;color:#fff;border-radius:8px;text-decoration:none;font-weight:600;transition:background .2s ease}.edt-button:hover{background:#1d4ed8}.edtpopup-overlay{position:fixed;top:0;left:0;width:100%;height:100%;background:#00000073;display:flex;justify-content:center;align-items:center;z-index:999999;animation:edtpopup-fadeIn .2s ease-out}.edtpopup-box{background:#fff;width:420px;max-width:90%;padding:25px 30px;border-radius:12px;box-shadow:0 6px 20px #00000026;animation:edtpopup-slideDown .25s ease-out;font-family:sans-serif}.edtpopup-header{display:flex;align-items:center;gap:10px;margin-bottom:15px}.edtpopup-header h3{color:red}.edtpopup-icon{font-size:28px}.edtpopup-text{margin:0 0 10px;font-size:15px;color:#333}.edtpopup-list{list-style:none;padding:0;margin:10px 0 20px}.edtpopup-list li{margin-bottom:6px;font-size:14px;color:#333}.edtpopup-btn{background:#2563eb;color:#fff;padding:10px 16px;border-radius:6px;border:none;cursor:pointer;font-weight:600;width:100%;text-align:center}.edtpopup-btn:hover{background:#1d4ed8}@keyframes edtpopup-fadeIn{0%{opacity:0}to{opacity:1}}@keyframes edtpopup-slideDown{0%{transform:translateY(-15px);opacity:0}to{transform:translateY(0);opacity:1}}.edt-table-container{margin-top:20px;background:#fff;padding:20px;border-radius:12px;border:1px solid #e5e7eb;box-shadow:0 3px 10px #0000000d}.edt-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:18px}.edt-header h2{margin:0;font-size:22px;font-weight:700;color:#222}.btn-add{background:#2563eb;color:#fff;padding:10px 16px;border-radius:6px;border:none;cursor:pointer;font-weight:600;transition:background .2s ease}.btn-add:hover{background:#1d4ed8}.edt-table{width:100%;border-collapse:collapse;table-layout:fixed}.edt-table th{background:#2e7d32;padding:12px;border:1px solid #e5e7eb;font-weight:600;text-align:center;color:#fff}.edt-table td{border:1px solid #e5e7eb;height:90px;vertical-align:top;padding:4px;position:relative}.edt-hour{background:linear-gradient(to bottom,#f8faff,#eef2ff);color:#1e3a8a;font-weight:700;text-align:center;border-right:2px solid #dbeafe;width:120px;font-size:15px;letter-spacing:.3px;box-shadow:inset 0 0 4px #0000000d}.edt-cours{background:#eef2ff;border-left:4px solid #6366f1;padding:6px 8px;border-radius:6px;height:100%;display:flex;flex-direction:column;justify-content:space-between}.edt-cours strong{font-size:15px;color:#111}.teacher{font-size:13px;color:#444;margin-top:4px}.actions{display:flex;gap:6px;margin-top:6px}.actions button{background:#e5e7eb;border:none;padding:4px 6px;border-radius:4px;cursor:pointer;transition:background .2s ease}.actions button:hover{background:#d1d5db}.empty-slot{display:block;text-align:center;color:#bbb;font-size:20px;padding-top:20px}.mat-francais{background:#fde7e7;border-left-color:#dc2626}.mat-mathematiques{background:#e0f2fe;border-left-color:#0284c7}.mat-histoire{background:#fef3c7;border-left-color:#d97706}.mat-geographie{background:#ecfdf5;border-left-color:#059669}.mat-physique{background:#f3e8ff;border-left-color:#7c3aed}.mat-chimie{background:#fff7ed;border-left-color:#ea580c}.mat-biologie{background:#dcfce7;border-left-color:#16a34a}.mat-philosophie{background:#fce7f3;border-left-color:#db2777}.mat-anglais{background:#e0e7ff;border-left-color:#4338ca}[class^=mat-]{padding:6px 8px}.modal-overlay{position:fixed;top:0;left:0;width:100%;height:100%;background:#00000073;display:flex;justify-content:center;align-items:center;z-index:3000;animation:fadeIn .2s ease-out}.modal{background:#fff;width:420px;max-width:90%;padding:25px 30px;border-radius:12px;box-shadow:0 6px 20px #00000026;animation:slideDown .25s ease-out}.modal h2{margin-top:0;margin-bottom:20px;font-size:22px;font-weight:700;color:#222;text-align:center}.modal-form{display:flex;flex-direction:column;gap:14px}.modal-form label{font-weight:600;color:#333}.modal-form select,.modal-form input[type=time]{padding:10px;border:1px solid #d0d0d0;border-radius:6px;font-size:15px;background:#fafafa;transition:border .2s ease}.modal-form select:focus,.modal-form input[type=time]:focus{border-color:#3b82f6;outline:none;background:#fff}.modal-actions{display:flex;justify-content:flex-end;gap:12px;margin-top:20px}.btn-cancel{background:#e5e7eb;color:#333;padding:10px 16px;border-radius:6px;border:none;cursor:pointer;font-weight:600;transition:background .2s ease}.btn-cancel:hover{background:#d1d5db}.btn-save{background:#2563eb;color:#fff;padding:10px 18px;border-radius:6px;border:none;cursor:pointer;font-weight:600;transition:background .2s ease}.btn-save:hover{background:#1d4ed8}.supprimer-cours-overlay{position:fixed;top:0;left:0;width:100%;height:100%;background:#00000073;display:flex;justify-content:center;align-items:center;z-index:99999;animation:fadeIn .2s ease-out}.supprimer-cours-modal{background:#fff;width:420px;max-width:90%;padding:25px 30px;border-radius:12px;box-shadow:0 6px 20px #00000026;animation:slideDown .25s ease-out}.supprimer-cours-modal h2{margin-top:0;margin-bottom:20px;font-size:22px;font-weight:700;color:#222;text-align:center}.supprimer-cours-modal p{color:#000}.supprimer-cours-actions{display:flex;justify-content:flex-end;gap:12px;margin-top:20px}.supprimer-cours-actions .btn-danger{background:#dc2626;color:#fff;padding:10px 16px;border-radius:6px;border:none;cursor:pointer;font-weight:600}.supprimer-cours-actions .btn-danger:hover{background:#b91c1c}.supprimer-cours-actions button{background:#e5e7eb;color:#333;padding:10px 16px;border-radius:6px;border:none;cursor:pointer;font-weight:600}.supprimer-cours-actions button:hover{background:#d1d5db}:root{--edtpage-hour-height: 45px}@media(max-width:1199px){:root{--edtpage-hour-height: 38px}}@media(max-width:768px){:root{--edtpage-hour-height: 32px}}.edtpage-table-container{background:#fff;padding:20px;border-radius:10px;border:1px solid #dcdcdc;box-shadow:0 2px 6px #00000014;overflow-x:auto;margin-top:20px}.edtpage-header{color:#000;display:flex;justify-content:space-between;align-items:center;margin-bottom:15px}.edtpage-btn-add{background:#2563eb;color:#fff;padding:10px 16px;border-radius:6px;border:none;cursor:pointer;font-weight:600}.edtpage-grid{display:flex;width:100%}.edtpage-hours-wrapper{margin-top:40px}.edtpage-hours-column{width:80px;border-right:1px solid #e5e7eb}.edtpage-hour-line{height:var(--edtpage-hour-height);line-height:var(--edtpage-hour-height);border-bottom:1px solid #e5e7eb;display:flex;justify-content:flex-end;align-items:center;padding-right:6px;box-sizing:border-box;transform:translateZ(0);backface-visibility:hidden}.edtpage-hour-line span{font-size:12px;color:#555}.edtpage-days-wrapper{flex:1;overflow-x:auto}.edtpage-days-header{display:grid;grid-template-columns:repeat(6,minmax(140px,1fr));border-bottom:1px solid #e5e7eb}.edtpage-day-header-cell{text-align:center;padding:10px 0;font-weight:700;background:#2e7d32;color:#fff;border-right:1px solid #e5e7eb}.edtpage-days-body{display:grid;grid-template-columns:repeat(6,minmax(140px,1fr))}.edtpage-day-column{position:relative;border-right:1px solid #e5e7eb}.edtpage-hour-slot-bg{position:absolute;left:0;right:0;height:var(--edtpage-hour-height);line-height:var(--edtpage-hour-height);border-bottom:1px dashed #e5e7eb;background:#fafafa;box-sizing:border-box;transform:translateZ(0);backface-visibility:hidden}.edtpage-cours{position:absolute;left:4px;width:calc(100% - 6px);border-radius:6px;padding:14px 6px;font-size:12px;color:#111;border-left:3px solid #6366f1;display:flex;flex-direction:column;justify-content:center;align-items:center;text-align:center;gap:4px;box-shadow:0 1px 3px #0000000d;transform:translateZ(0);backface-visibility:hidden}.edtpage-cours strong{font-size:13px;font-weight:600}.edtpage-actions-top-right{position:absolute;top:4px;right:4px;display:flex;gap:4px;z-index:20;opacity:0;pointer-events:none;transition:opacity .15s ease-in-out}.edtpage-cours:hover .edtpage-actions-top-right{opacity:1;pointer-events:auto}.edtpage-actions-top-right button{background:#e5e7eb;border:none;padding:3px 4px;border-radius:3px;cursor:pointer;font-size:11px}.edtpage-actions-top-right button:hover{background:#d1d5db}[class^=edtpage-mat-]{padding:4px 6px}.edtpage-mat-francais{background:#fde7e7;border-left-color:#dc2626}.edtpage-mat-mathematiques{background:#e0f2fe;border-left-color:#0284c7}.edtpage-mat-histoire{background:#fef3c7;border-left-color:#d97706}.edtpage-mat-geographie{background:#ecfdf5;border-left-color:#059669}.edtpage-mat-physique{background:#f3e8ff;border-left-color:#7c3aed}.edtpage-mat-chimie{background:#fff7ed;border-left-color:#ea580c}.edtpage-mat-biologie{background:#dcfce7;border-left-color:#16a34a}.edtpage-mat-philosophie{background:#fce7f3;border-left-color:#db2777}.edtpage-mat-anglais{background:#e0e7ff;border-left-color:#4338ca}.edtpage-mat-economie{background:#f0e7e8;border-left-color:#3c7009}.edtpage-mat-science-d-observation{background:#e8f4ff;border-left-color:#3b82f6}.edtpage-mat-education-civique-et-morale{background:#fff7e6;border-left-color:#d97706}.edtpage-mat-orthographe{background:#ffecec;border-left-color:#ef4444}.edtpage-mat-grammaire{background:#fff0f0;border-left-color:#f87171}.edtpage-mat-vocabulaire{background:#fff5ed;border-left-color:#fb923c}.edtpage-mat-dictee-et-questions{background:#fff0e6;border-left-color:#ea580c}.edtpage-mat-conjugaison{background:#fff5f0;border-left-color:#f97316}.edtpage-mat-ecriture{background:#eef2ff;border-left-color:#6366f1}.edtpage-mat-eps{background:#ecfdf5;border-left-color:#10b981}.edtpage-mat-morale{background:#fefce8;border-left-color:#ca8a04}.edtpage-mat-langage{background:#f0f9ff;border-left-color:#0284c7}.edtpage-mat-numeration{background:#e0f2fe;border-left-color:#0284c7}.edtpage-mat-calcul-ecrit{background:#e0f7ff;border-left-color:#0ea5e9}.edtpage-mat-lecture{background:#f3e8ff;border-left-color:#7c3aed}.edtpage-mat-chant{background:#fff1f2;border-left-color:#e11d48}.edtpage-mat-recitation-et-chant{background:#fff7f7;border-left-color:#e11d48}.edtpage-mat-travaux-diriges{background:#f0fdf4;border-left-color:#16a34a}.edtpage-mat-instruction-civique{background:#fefce8;border-left-color:#ca8a04}.edtpage-mat-operations{background:#e0f2fe;border-left-color:#0284c7}.edtpage-mat-recitation{background:#fff1f2;border-left-color:#e11d48}.edtpage-mat-exercices-sensoriels{background:#ecfdf5;border-left-color:#059669}.edtpage-mat-geometrie{background:#e0f2fe;border-left-color:#0284c7}.edtpage-mat-mesure{background:#e0f7ff;border-left-color:#0ea5e9}.edtpage-mat-dessin{background:#fdf2f8;border-left-color:#db2777}.edtpage-mat-probleme{background:#ffe4e6;border-left-color:#e11d48}.edtpage-mat-calcul-probleme{background:#ffe8e8;border-left-color:#ef4444}.edtpage-mat-elocution{background:#f3e8ff;border-left-color:#7c3aed}.edtpage-mat-expression-ecrite{background:#fdf4ff;border-left-color:#a855f7}.edtpage-mat-redaction{background:#fce7f3;border-left-color:#db2777}.edtpage-mat-geologie{background:#ecfdf5;border-left-color:#059669}.edtpage-mat-biologie-geologie{background:#dcfce7;border-left-color:#16a34a}.edtpage-mat-default{background:#f3f4f6;border-left-color:#6b7280}.edtpage-teacher{display:flex;align-items:center;gap:4px;font-size:10px;color:#444}.edtpage-teacher-icon{font-size:14px;color:#1e3a8a}.edtpage-slot-plus{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);font-size:22px;font-weight:700;color:#2563eb;opacity:0;transition:opacity .15s ease-in-out;pointer-events:none}.edtpage-hour-slot-bg:hover .edtpage-slot-plus{opacity:1}.edtpage-hour-slot-bg:hover{background:#e8f0ff;border-bottom-color:#c7d7f7;cursor:pointer}.popup-overlay{position:fixed;top:0;left:0;width:100%;height:100%;background:#00000073;display:flex;justify-content:center;align-items:center;z-index:9999;animation:fadeIn .2s ease-out}.popup-conflit{background:#fff;width:420px;max-width:90%;padding:25px 30px;border-radius:12px;box-shadow:0 6px 20px #00000026;animation:slideDown .25s ease-out}.popup-header{display:flex;align-items:center;gap:10px;margin-bottom:15px}.popup-icon{font-size:28px}.popup-header h3{margin:0;font-size:20px;font-weight:700;color:#222}.popup-list{list-style:none;padding:0;margin:10px 0 20px}.popup-list li{margin-bottom:6px;font-size:14px;color:#333}.popup-btn{background:#2563eb;color:#fff;padding:10px 16px;border-radius:6px;border:none;cursor:pointer;font-weight:600;width:100%;text-align:center;transition:background .2s ease}.popup-btn:hover{background:#1d4ed8}@keyframes slideDown{0%{transform:translateY(-15px);opacity:0}to{transform:translateY(0);opacity:1}}.edtall-container{width:100%;max-width:1300px;margin:0 auto;padding:20px}.edtall-title{text-align:center;margin-bottom:30px;font-size:28px;font-weight:700;color:#222}.edtall-search{padding:10px;margin-bottom:20px;width:100%;max-width:400px;border-radius:6px;border:1px solid #ccc}.edtall-accordion-block{background:#fff;border:1px solid #ddd;border-radius:8px;margin-bottom:14px;overflow:hidden;box-shadow:0 2px 4px #0000000d}.edtall-accordion-header{display:flex;justify-content:space-between;align-items:center;padding:12px 16px;cursor:pointer;background:#b1cdf7;border-bottom:1px solid #e5e7eb;transition:background .2s ease}.edtall-accordion-header:hover{background:#d3e5fa}.edtall-accordion-header h2{margin:0;font-size:20px;font-weight:600;color:#333}.edtall-accordion-header span{font-size:20px;color:#555}.edtall-accordion-content{padding:16px;background:#fff;animation:edtallFadeIn .25s ease-out}@keyframes edtallFadeIn{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}.edtall-pagination{display:flex;justify-content:center;align-items:center;gap:14px;margin-top:25px}.edtall-button{padding:8px 14px;background:#2563eb;color:#fff;border-radius:8px;border:none;cursor:pointer;font-weight:600;transition:background .2s ease}.edtall-button:disabled{background:#9bb7f3;cursor:not-allowed}.edtall-button:hover:not(:disabled){background:#1d4ed8}.edtall-pagination-info{font-weight:600;color:#333}.compta-page{padding:50px;background-color:#fafafa;min-height:100vh;box-sizing:border-box;font-family:system-ui,sans-serif}.compta-header h1{margin:0 0 20px;font-size:1.8rem;color:#111827}.compta-nav-tabs{display:flex;justify-content:space-between;background-color:gray;border-radius:8px;overflow:hidden;white-space:nowrap;margin-bottom:10px}.compta-nav-tabs button{flex:1 1 auto;min-width:0;padding:16px 0;border:none;background-color:transparent;color:#fff;font-weight:700;font-size:1.1rem;cursor:pointer;transition:background-color .3s ease;text-align:center}.compta-nav-tabs button:hover{background-color:#21867a}.compta-nav-tabs button.active{background-color:#2a9d8f;color:#fff}.compta-green-line{width:100%;height:3px;background-color:#2a9d8f;border-radius:4px;margin-bottom:25px}.compta-content{background:#fff;padding:20px;border-radius:8px;box-shadow:0 2px 6px #0000001a}.compta-card{font-size:1rem;color:#555}.compta-card h2{margin-top:0;font-size:1.3rem;color:#111827}.compta-finance-page{font-family:Inter,system-ui,sans-serif;padding:30px;color:#0f172a;background:#f3f4f6}.finance-header{background:linear-gradient(135deg,#0f172a,#1e293b);padding:28px;border-radius:18px;display:grid;grid-template-columns:repeat(4,1fr);gap:22px;margin-bottom:40px;box-shadow:0 8px 25px #00000040;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.finance-kpi{padding:15px;border-radius:12px;background:#ffffff0f;border:1px solid rgba(255,255,255,.1);transition:.25s ease}.finance-kpi:hover{transform:translateY(-4px);background:#ffffff1f}.finance-kpi span{color:#cbd5e1;font-size:13px;text-transform:uppercase;letter-spacing:.6px}.finance-kpi strong{display:block;margin-top:8px;font-size:26px;color:#fff;font-weight:600}.finance-section-title{font-size:22px;font-weight:700;margin-bottom:18px;margin-top:15px;color:#0f172a;letter-spacing:-.3px}.cycle-tabs{display:flex;gap:12px;margin-bottom:25px}.cycle-tab{padding:10px 20px;border-radius:10px;background:#fff;border:1px solid #e2e8f0;cursor:pointer;font-size:14px;font-weight:500;transition:.25s ease;box-shadow:0 2px 6px #0000000d}.cycle-tab:hover{background:#f1f5f9;transform:translateY(-2px)}.cycle-tab.active{background:#2563eb;color:#fff;border-color:#2563eb;box-shadow:0 4px 12px #2563eb66}.cycle-panel{overflow:hidden;max-height:0;opacity:0;transform:translateY(20px);transition:max-height .45s ease,opacity .35s ease,transform .45s ease}.cycle-panel.open{max-height:2000px;opacity:1;transform:translateY(0)}.cycle-resume{display:grid;grid-template-columns:repeat(5,1fr);gap:18px;margin-bottom:30px}.cycle-resume div{background:#fff;padding:18px;border-radius:14px;border:1px solid #e2e8f0;box-shadow:0 4px 12px #0000000f;transition:.25s ease}.cycle-resume div:hover{transform:translateY(-3px);box-shadow:0 6px 18px #0000001a}.cycle-resume div span{font-size:12px;color:#64748b;text-transform:uppercase;letter-spacing:.5px}.cycle-resume div strong{display:block;margin-top:6px;font-size:20px;color:#0f172a;font-weight:600}.finance-table{width:100%;border-collapse:collapse;background:#fff;border-radius:14px;overflow:hidden;box-shadow:0 6px 18px #00000014}.finance-table thead{background:#f8fafc}.finance-table th{text-align:left;padding:14px 18px;font-size:13px;color:#475569;font-weight:600;border-bottom:1px solid #e2e8f0}.finance-table td{padding:14px 18px;font-size:14px;color:#0f172a;border-bottom:1px solid #f1f5f9;transition:.2s}.finance-table tr:hover td{background:#f8fafc}@media(max-width:900px){.finance-header,.cycle-resume{grid-template-columns:repeat(2,1fr)}}@media(max-width:600px){.finance-header,.cycle-resume{grid-template-columns:1fr}.finance-kpi strong{font-size:22px}}.popup-overlay{position:fixed;inset:0;background:#00000059;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:flex;justify-content:center;align-items:center;padding:20px;z-index:3000}.popup-container{background:#fff;width:100%;max-width:520px;max-height:90vh;border-radius:12px;display:flex;flex-direction:column;overflow:hidden;box-shadow:0 8px 30px #0000002e;animation:popupEnter .25s ease-out}@keyframes popupEnter{0%{opacity:0;transform:translateY(20px) scale(.97)}to{opacity:1;transform:translateY(0) scale(1)}}.popup-header{padding:20px 24px;border-bottom:1px solid #e5e7eb}.popup-header h2{margin:0;font-size:1.3rem;color:#0d1b2a}.popup-body{padding:20px 24px;overflow-y:auto;flex:1}.popup-body::-webkit-scrollbar{width:6px}.popup-body::-webkit-scrollbar-thumb{background:#cbd5e1;border-radius:4px}.form-group{display:flex;flex-direction:column;margin-bottom:18px}.form-group label{font-weight:600;margin-bottom:6px;color:#333}.form-group input,.form-group select,.form-group textarea{padding:11px;border:1px solid #d1d5db;border-radius:8px;background:#f9fafb;font-size:1rem}.form-group textarea{min-height:80px;resize:vertical}.two-columns{display:flex;gap:20px;margin-bottom:10px}.col{flex:1;display:flex;flex-direction:column;gap:18px}@media(max-width:600px){.two-columns{flex-direction:column}}.popup-footer{padding:16px 24px;border-top:1px solid #e5e7eb;display:flex;justify-content:flex-end;gap:12px}.btn-cancel{padding:10px 18px;background:#e5e7eb;border:none;border-radius:8px;cursor:pointer;font-weight:600}.btn-save{padding:10px 18px;background:#2a9d8f;color:#fff;border:none;border-radius:8px;cursor:pointer;font-weight:600}.btn-save:hover{background:#21867a}.compta-table{width:100%;table-layout:auto;border-collapse:collapse;display:table}.compta-card{overflow-x:hidden!important}.compta-table th,.compta-table td{padding:12px 14px;white-space:nowrap}.compta-table th:nth-child(1),.compta-table td:nth-child(1){width:20%}.compta-table th:nth-child(2),.compta-table td:nth-child(2){width:55%}.compta-table th:nth-child(3),.compta-table td:nth-child(3){width:25%}.depenses-table{width:100%;border-collapse:collapse;table-layout:auto}.depenses-table tr{height:60px}.depenses-table th,.depenses-table td{padding:10px;border-bottom:1px solid #eee;vertical-align:middle;text-align:left;white-space:nowrap}.notes-col{width:260px;max-width:260px;min-width:200px;white-space:normal}.notes-scroll{max-height:50px;overflow-y:auto;padding-right:5px;white-space:normal;word-break:break-word}.actions-col{width:150px;min-width:150px;white-space:nowrap;text-align:center}.actions-col button{margin-right:6px}.eleves-page h1,.titre-fiche{color:#0d1b2a;font-size:2rem;margin-bottom:2rem}.form-recherche-eleve{display:grid;grid-template-columns:1fr 1fr auto;gap:1.5rem 2rem;align-items:end;margin-top:2rem;max-width:900px}.form-row{flex:1 1 45%;display:flex;flex-direction:column;gap:.5rem}.form-row label{font-weight:700;margin-bottom:2px;color:#000;font-size:.9rem;margin-left:2mm}.form-row input{width:100%;padding:.6rem;border:1px solid #ccc;border-radius:6px;height:34px;font-size:.9rem}.form-submit{width:100%;display:flex;justify-content:flex-end;margin-top:2rem}.form-submit button{padding:.7rem 1.5rem;background-color:#2a9d8f;color:#fff;border:none;border-radius:4px;cursor:pointer;font-weight:700;transition:background .3s ease}.form-submit button:hover{background-color:#21867a}.resultats-eleve{margin-top:2rem}.eleves-page p{color:#000}.table-resultats{width:100%;border-collapse:collapse;margin-top:2rem;font-size:1rem;background-color:#fff;box-shadow:0 2px 6px #0000001a}.table-resultats th,.table-resultats td{border:1px solid #ddd;padding:.8rem 1rem;text-align:left;color:#222}.table-resultats th{background-color:#2a9d8f;color:#fff;font-weight:700}.table-resultats tr:nth-child(2n){background-color:#eafaf7}.table-resultats tr:nth-child(odd){background-color:#fff}.table-resultats tr:hover{background-color:#cce4ff;cursor:pointer}.row-clickable{cursor:pointer}.row-clickable:hover{background-color:#2a9d8f;color:#fff}.fade-slide{opacity:0;transform:translateY(12px);animation:fadeSlide .01s cubic-bezier(.16,1,.3,1) forwards}.nav-tabs button.active{background:#2a9d8f;color:#fff}.nav-tabs button:hover{background-color:#21867a}.nav-tabs .active{background-color:#2a9d8f;color:#fff}.nav-tabs{display:flex;justify-content:space-between;background-color:gray;border-radius:8px;overflow:hidden;margin-bottom:20px}.nav-tabs button{flex:1;min-width:160px;padding:16px 0;border:none;background-color:transparent;color:#fff;font-weight:700;font-size:1.1rem;cursor:pointer;transition:background-color .3s ease,color .3s ease;text-align:center}@media(max-width:768px){.nav-tabs{flex-direction:column}.nav-tabs button{min-width:100%;font-size:1rem;padding:12px 0}}.fiche-eleve-layout{padding:50px;background-color:#fafafa;min-height:100vh}.header-eleve{display:flex;justify-content:space-between;align-items:flex-start;border-bottom:3px solid #2a9d8f;padding-bottom:15px;margin-bottom:20px;gap:10px}.identite-eleve{flex:1;max-width:80%}.identite-eleve h1{margin:0;font-size:1.8rem;color:#000}.identite-eleve p{margin:5px 0;font-size:1rem;color:#555}.photo-eleve{width:140px;flex-shrink:0}.photo-eleve img{width:100%;height:140px;border-radius:8px;object-fit:cover;border:2px solid #ccc}.contenu-eleve{background:#fff;padding:20px;border-radius:8px;box-shadow:0 2px 6px #0000001a}@keyframes fadeInUp{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@keyframes scaleIn{0%{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}.profil-container{padding:20px;animation:fadeIn .4s ease-out}.fiche-section{background:#fff;padding:20px;border-radius:14px;margin-bottom:25px;box-shadow:0 4px 14px #00000014;animation:fadeInUp .45s ease-out;transition:box-shadow .25s ease;color:#000}.fiche-section:hover{box-shadow:0 6px 18px #0000001f}.section-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:14px}.section-header h2{font-size:1.4rem;font-weight:700;color:#0d1b2a;margin:0}.edit-icon{background:#2563eb;color:#fff;border:none;padding:6px 10px;border-radius:6px;cursor:pointer;font-size:1rem;transition:background .25s ease,transform .15s ease;position:relative;overflow:hidden}.edit-icon:hover{background:#1d4ed8;transform:translateY(-1px)}.edit-icon:after{content:"";position:absolute;background:#ffffff73;width:10px;height:10px;border-radius:50%;opacity:0;transform:scale(1);transition:transform .5s,opacity .6s}.edit-icon:active:after{opacity:1;transform:scale(18);transition:0s}label{display:flex;flex-direction:column;font-weight:600;color:#1e293b;margin-bottom:12px;animation:fadeIn .3s ease-out}input,select{padding:8px 10px;border:1px solid #cbd5e1;border-radius:6px;font-size:.95rem;height:36px;transition:border-color .25s ease,box-shadow .25s ease}input:focus,select:focus{border-color:#2563eb;box-shadow:0 0 0 3px #2563eb40;outline:none}.input-readonly{background:#f1f5f9;cursor:not-allowed}.fiche-section p{margin:6px 0;font-size:.95rem;animation:fadeInUp .35s ease-out}.edit-actions{display:flex;gap:12px;margin-top:12px}.edit-actions button{padding:10px 16px;border:none;border-radius:8px;font-weight:600;cursor:pointer;transition:background .25s ease,transform .15s ease;position:relative;overflow:hidden}.edit-actions button:first-child{background:#16a34a;color:#fff}.edit-actions button:first-child:hover{background:#15803d;transform:translateY(-1px)}.edit-actions button:last-child{background:#dc2626;color:#fff}.edit-actions button:last-child:hover{background:#b91c1c;transform:translateY(-1px)}.edit-actions button:after{content:"";position:absolute;background:#ffffff73;width:10px;height:10px;border-radius:50%;opacity:0;transform:scale(1);transition:transform .5s,opacity .6s}.edit-actions button:active:after{opacity:1;transform:scale(20);transition:0s}.popup-message{position:fixed;bottom:25px;right:25px;background:#2563eb;color:#fff;padding:14px 20px;border-radius:10px;font-weight:600;box-shadow:0 4px 14px #0003;animation:scaleIn .35s ease-out}.section-header h2{margin:0;color:#2563eb}.fade-slide{opacity:0;transform:translateY(12px);animation:fadeSlide .35s cubic-bezier(.16,1,.3,1) forwards}@keyframes fadeSlide{to{opacity:1;transform:translateY(0)}}.double-ring-loader-container{display:flex;flex-direction:column;align-items:center;margin-top:40px;color:#444;font-size:16px}:root{--bleu: #2563eb;--bleu-hover: #1d4ed8;--gris-clair: #f3f4f6;--gris: #e5e7eb;--gris-fonce: #6b7280;--vert: #16a34a;--orange: #f59e0b;--rouge: #dc2626;--bordure: #d1d5db;--fond-table: #fafafa}.paiement-eleve-container{padding:20px;font-family:Inter,sans-serif;color:#111}.header-eleve h2{margin:0;font-size:24px;font-weight:600}.header-eleve p{margin:2px 0;color:var(--gris-fonce)}.resume-financier{margin-top:20px;display:grid;grid-template-columns:repeat(4,1fr);gap:12px}.resume-card{background:#fff;border:1px solid var(--bordure);padding:14px;border-radius:6px}.resume-card span{font-size:13px;color:var(--gris-fonce)}.resume-card strong{display:block;margin-top:4px;font-size:18px}.material-table{width:100%;border-collapse:collapse;margin-top:15px;background:#fff;border-radius:6px;overflow:hidden}.material-table thead{background:var(--gris-clair)}.material-table th{padding:14px;text-align:left;font-weight:600;font-size:15px;border-bottom:1px solid var(--bordure)}.material-table td{padding:14px;font-size:15px;border-bottom:1px solid var(--gris)}.material-table tr:hover{background:#f9fafb}.statut-point{font-size:18px;vertical-align:middle}.table-tranche{width:100%;border-collapse:collapse;margin-top:15px;background:#fff;border:1px solid var(--bordure)}.table-tranche th,.table-tranche td{padding:12px;border:1px solid var(--bordure);font-size:14px}.form-compact{margin-top:20px;display:flex;flex-direction:column;gap:10px}.form-compact label{font-size:14px;font-weight:500}.form-compact input,.form-compact select,.form-compact textarea{padding:7px 10px;border:1px solid var(--bordure);border-radius:5px;font-size:14px}.form-compact textarea{min-height:60px;resize:vertical}.btn-primary{background:var(--bleu);color:#fff;padding:8px 16px;border:none;border-radius:6px;cursor:pointer}.btn-primary:hover{background:var(--bleu-hover)}.historique-section{margin-top:40px}.table-historique{width:100%;border-collapse:collapse;margin-top:10px;background:#fff}.table-historique th,.table-historique td{padding:12px;border:1px solid var(--bordure);font-size:14px}.no-paiement{text-align:center;padding:18px;font-size:1rem;font-weight:600;color:#6b7280;background:#f9fafb}.actions{display:flex;gap:6px}.actions button{padding:6px 12px;font-size:13px;border-radius:4px;cursor:pointer;border:none}.actions .modifier{background:var(--bleu);color:#fff}.actions .modifier:hover{background:var(--bleu-hover)}.actions .supprimer{background:var(--rouge);color:#fff}.actions .supprimer:hover{background:#b91c1c}.actions .recu{background:var(--vert);color:#fff}.actions .recu:hover{background:#0f9a3a}.btn-toggle-form{width:30%;background:var(--bleu);color:#fff;padding:12px 16px;border:none;border-radius:6px;cursor:pointer;font-size:15px;font-weight:600;margin:20px 0;transition:.2s ease}.btn-toggle-form:hover{background:var(--bleu-hover)}.btn-toggle-form:active{transform:scale(.97)}.onglets{margin-top:25px;display:flex;gap:10px}.onglets button{flex:1;padding:14px;border:1px solid var(--bordure);background:gray;border-radius:6px;cursor:pointer;font-size:15px;font-weight:600;transition:.2s ease}.onglets button:hover{background:var(--bleu-hover)}.onglets .actif{background:var(--bleu);color:#fff;border-color:var(--bleu)}.pagination-mensuel{margin-top:15px;display:flex;justify-content:flex-end;gap:10px}.pagination-mensuel button{padding:8px 14px;border:1px solid var(--bordure);background:#fff;border-radius:6px;cursor:pointer;font-size:14px;transition:.2s}.pagination-mensuel button:hover{background:var(--gris-clair)}.pagination-mensuel .actif{background:var(--bleu);color:#fff;border-color:var(--bleu)}.pe-modal-overlay{position:fixed;top:0;left:0;width:100%;height:100%;background:#00000073;display:flex;justify-content:center;align-items:center;z-index:3000;animation:fadeIn .2s ease-out}.modal{background:#fff;padding:25px;border-radius:10px;width:450px;max-height:90vh;overflow-y:auto;box-shadow:0 10px 25px #00000040;animation:modalFade .25s ease;position:relative;z-index:10000!important}@keyframes modalFade{0%{transform:scale(.9);opacity:0}to{transform:scale(1);opacity:1}}.modal-form .form-row{margin-bottom:15px;display:flex;flex-direction:column}.mois-checkboxes-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:8px}.checkbox-label{display:flex;justify-content:space-between;padding:6px 10px;border:1px solid var(--bordure);border-radius:6px;cursor:pointer}.modal-actions{display:flex;justify-content:flex-end;gap:10px}.btn-cancel{background:#ccc;padding:8px 14px;border-radius:6px}.btn-save{background:var(--bleu);color:#fff;padding:8px 14px;border-radius:6px}.btn-save:disabled,.btn-toggle-form:disabled{background:#9ca3af!important;cursor:not-allowed!important;opacity:.7}.alerte-montant{margin-top:6px;padding:6px 10px;background:#fee2e2;color:#b91c1c;border-left:4px solid #dc2626;border-radius:6px;font-size:13px;font-weight:600}.btn-action{display:inline-flex;align-items:center;gap:8px;padding:10px 16px;border:none;border-radius:6px;font-size:14px;font-weight:600;cursor:pointer;transition:.2s ease;color:#fff}.btn-recu-global{background-color:#16a34a}.btn-recu-global:hover{background-color:#0f9a3a}.btn-export-csv{background-color:#f59e0b}.btn-export-csv:hover{background-color:#d97706}.btn-rappel-paiement{background-color:#dc2626}.btn-rappel-paiement:hover{background-color:#b91c1c}.actions-globales{margin-top:20px;display:flex;gap:12px;flex-wrap:wrap}.popup-rappel{position:fixed;top:20px;right:20px;background:#000;color:#fff;padding:12px 18px;border-radius:6px;font-size:14px;z-index:9999;box-shadow:0 4px 12px #0003;animation:fadeIn .3s ease-out}@keyframes fadeIn{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}.badge-tout-paye{background:#1dbf73;color:#fff;font-size:1.4rem;font-weight:700;padding:10px 20px;border-radius:12px;display:inline-block;margin-top:10px;box-shadow:0 0 12px #1dbf7380;letter-spacing:.5px}.resultat-eleve-container{padding:24px;background:#fff;font-family:Helvetica,Arial,sans-serif;color:#1a1a1a;max-width:1100px;margin:0 auto}.titre-bulletin{text-align:center;font-size:24px;font-weight:700;margin-bottom:20px;color:#036;text-transform:uppercase;letter-spacing:1px}.onglets-periodes{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:18px}.onglet{padding:7px 16px;background:#e3ecfa;border:1px solid #b7c9e8;border-radius:4px;cursor:pointer;font-size:13px;color:#036;transition:background .2s,color .2s,border-color .2s}.onglet:hover{background:#d3e1f7}.onglet.actif{background:#036;color:#fff;border-color:#024}.table-wrapper{overflow-x:auto}.resultat-table{width:100%;table-layout:fixed;border-collapse:collapse;background:#fff;border:1px solid #b3c6e6;border-radius:6px;overflow:hidden}.resultat-table th{background:#d9e6f7;padding:10px;font-size:13px;border-bottom:1px solid #aac4e6;border-right:1px solid #aac4e6;text-align:center;color:#036;font-weight:600}.resultat-table td{padding:8px;border-bottom:1px solid #e6e6e6;border-right:1px solid #d0d7e6;text-align:center;font-size:13px}.resultat-table th:last-child,.resultat-table td:last-child{border-right:none}.resultat-table tr:nth-child(2n){background:#f7faff}@media(min-width:900px){.resultat-eleve-container .table-wrapper,.resultat-eleve-container .synthese-semestre{display:inline-block;vertical-align:top}.resultat-eleve-container .table-wrapper{width:68%;margin-right:2%}.resultat-eleve-container .synthese-semestre{width:30%}}.synthese-semestre{background:#e6f0ff;border:1px solid #b3c6e6;padding:14px;border-radius:6px;margin-top:14px}.synthese-semestre p{margin:5px 0;font-size:14px;color:#036}.synthese-eleve{background:#e6f0ff;padding:16px;border:1px solid #b3c6e6;border-radius:6px;margin-top:22px}.synthese-eleve p{margin:5px 0;font-size:14px}.btn-pdf{padding:9px 18px;background:#060;color:#fff;border:none;border-radius:4px;cursor:pointer;font-size:14px;transition:background .2s;display:block;margin-left:auto;margin-top:32px}.btn-pdf:hover{background:#004d00}.ligne-deco{width:100%;height:2px;background:#036;margin-top:32px;margin-bottom:16px;opacity:.4}.assiduite-eleve-container,.assiduite-eleve-container *{color:#000!important;opacity:1!important;filter:none!important;font-family:Inter,sans-serif}.assiduite-eleve-container{padding:20px}.ass-eleve-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:18px;gap:16px}.ass-eleve-stats{display:flex;gap:12px}.ass-stat-card{min-width:80px;padding:10px 14px;border-radius:10px;background:#fff;border:1px solid #e5e5e5;text-align:center;box-shadow:0 2px 6px #0000000d}.ass-stat-label{font-size:12px;color:#666}.ass-stat-value{font-size:18px;font-weight:700;color:#222}.ass-btn-primary{background:#0056b3;color:#fff;border:none;padding:10px 16px;border-radius:8px;cursor:pointer;font-weight:600;transition:.2s ease}.ass-btn-primary:hover{background:#004a9c}.ass-table-wrapper{margin-top:10px}.assiduite-eleve-table{width:100%;border-collapse:collapse;font-size:14px}.assiduite-eleve-table th{background:#f8f9fa;padding:10px 8px;font-weight:600;border-bottom:2px solid #e5e5e5;text-align:left}.assiduite-eleve-table td{padding:10px 8px;border-bottom:1px solid #f0f0f0}.ass-row:hover{background:#fafafa}.actions-col{white-space:nowrap}.ass-btn-link{background:none;border:none;color:#0056b3;cursor:pointer;padding:0 6px;font-size:13px;font-weight:600}.ass-btn-link:hover{text-decoration:underline}.ass-btn-link.danger{color:#c0392b}.badge{padding:4px 12px;border-radius:999px;font-size:12px;font-weight:600;color:#fff!important;display:inline-flex;align-items:center;gap:6px;text-transform:uppercase;letter-spacing:.3px}.badge-icon{font-size:14px;line-height:1}.badge-absence{background:#d9534f!important}.badge-retard{background:#f0ad4e!important}.badge-exclusion{background:#343a40!important}.commentaire-cell{max-width:260px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;position:relative;padding-right:45px}.voir-plus-icon{position:absolute;right:8px;top:50%;transform:translateY(-50%);cursor:pointer;color:#0056b3;font-weight:700;font-size:13px;background:#fff;padding-left:4px;z-index:20}.popover-commentaire{position:absolute;background:#fff;border:1px solid #ddd;padding:12px 14px;border-radius:8px;box-shadow:0 4px 12px #00000026;width:340px;z-index:9999;font-size:13px;line-height:1.4;white-space:normal;overflow-wrap:break-word}.popover-close{text-align:right;font-size:12px;cursor:pointer;color:#c0392b;margin-bottom:6px}.voir-plus-icon:hover{text-decoration:underline}.ass-popup-message{margin-top:12px;padding:10px;background:#e8f4ff;border-left:4px solid #0056b3;color:#0056b3;border-radius:6px;font-size:13px}.popup-overlay{position:fixed;inset:0;background:#00000059;display:flex;justify-content:center;align-items:center;z-index:3000;animation:fadeIn .2s ease-out}.popup-box{background:#fff;width:420px;max-width:92%;padding:22px;border-radius:12px;box-shadow:0 8px 25px #00000040;animation:popupScale .25s ease-out;position:relative}.popup-title{font-size:18px;font-weight:700;margin-bottom:14px;text-align:center}.popup-form{display:flex;flex-direction:column;gap:14px}.popup-form label{font-size:14px;font-weight:600}.popup-form input,.popup-form select,.popup-form textarea{width:100%;padding:9px 10px;border:1px solid #dcdcdc;border-radius:6px;font-size:14px;background:#fafafa}.popup-form textarea{resize:vertical;min-height:70px}.popup-buttons{display:flex;justify-content:flex-end;gap:10px;margin-top:18px}.popup-btn{padding:8px 16px;border-radius:6px;border:none;cursor:pointer;font-weight:600;font-size:14px}.popup-btn-cancel{background:#e5e5e5;color:#fff!important}.popup-btn-cancel:hover{background:#d8d8d8}.popup-btn-validate{background:#0056b3;color:#fff!important}.popup-btn-validate:hover{background:#004a9c}.popup-close{position:absolute;top:10px;right:12px;font-size:18px;cursor:pointer;color:#666}.popup-close:hover{color:#000}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes popupScale{0%{opacity:0;transform:scale(.92)}to{opacity:1;transform:scale(1)}}.popup-field{margin-bottom:14px}.popup-field label{font-weight:600;font-size:14px;margin-bottom:4px;display:block}.popup-readonly{background:#f4f4f4;padding:8px 10px;border-radius:6px;font-size:14px;border:1px solid #ddd}.popup-textarea{width:100%;min-height:120px;padding:10px;border-radius:6px;border:1px solid #ccc;resize:vertical;font-size:14px}.doc-eleve{padding:15px}.doc-eleve h2{margin-bottom:15px;color:#2a9d8f;font-size:1.2rem}.doc-list{display:flex;flex-direction:column;gap:10px}.doc-item{background:#fff;padding:12px;border-radius:6px;border:1px solid #ddd;display:flex;justify-content:space-between;align-items:center}.doc-label{font-weight:600;color:#333;font-size:.9rem}.doc-actions{display:grid;grid-template-columns:1fr 1fr;gap:6px;width:180px}.doc-actions button,.upload-btn{width:100%;margin:0;padding:5px 8px;border-radius:5px;border:none;cursor:pointer;background:#2a9d8f;color:#fff;font-size:.8rem;transition:.2s}.doc-actions button:hover,.upload-btn:hover{opacity:.9}.doc-actions .danger{background:#e63946}.upload-btn{background:#457b9d}.doc-message{padding:8px;background:#e8f5e9;border-left:3px solid #2a9d8f;margin-bottom:8px;font-size:.85rem}.doc-loading{color:#555;margin-bottom:8px;font-size:.85rem}.popup-doc{position:fixed;top:15px;right:15px;padding:10px 14px;border-radius:6px;color:#fff;font-weight:600;font-size:.85rem;box-shadow:0 3px 10px #00000026;animation:fadeSlide .3s ease-out;z-index:9999}.popup-doc.success{background:#2a9d8f}.popup-doc.error{background:#e63946;color:#fff}@keyframes fadeSlide{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}.sec1{padding:20px}.sec1-title{font-size:20px;font-weight:700;margin:20px 0 10px}.sec1-row{display:grid;grid-template-columns:repeat(3,1fr);gap:22px;margin-bottom:20px}.sec1-field label{font-weight:600;margin-bottom:4px;display:block}.sec1-req{color:#dc2626;font-weight:700}.sec1-field input,.sec1-field select{width:100%;padding:10px 12px;border:1px solid #ccc;border-radius:8px}.sec1-niveau-block{display:grid;grid-template-columns:1fr 1fr;gap:12px}.sec1-option-slot{min-height:75px}.sec1-actions{display:flex;justify-content:flex-end}.sec1-actions button{background:#2563eb;color:#fff;padding:12px 28px;border:none;border-radius:8px;font-weight:700;cursor:pointer}.sec-title-click{cursor:pointer;transition:.2s;color:#000}.sec2{padding:20px}.sec2-title{font-size:20px;font-weight:700;margin:20px 0 10px}.sec2-row{display:grid;grid-template-columns:repeat(3,1fr);gap:22px;margin-bottom:20px}.sec2-field label{font-weight:600;margin-bottom:4px;display:block}.sec2-req{color:#dc2626;font-weight:700}.sec2-field input,.sec2-field select{width:100%;padding:10px 12px;border:1px solid #ccc;border-radius:8px}.sec3{padding:20px}.sec3-title{font-size:20px;font-weight:700;margin:20px 0 10px}.sec3-row{display:grid;grid-template-columns:repeat(3,1fr);gap:22px;margin-bottom:20px}.sec3-field label{font-weight:600;margin-bottom:4px;display:block}.sec3-req{color:#dc2626;font-weight:700}.sec3-field input{width:100%;padding:10px;border:1px solid #ccc;border-radius:8px}.sec-title-click{cursor:pointer;transition:.2s}.sec-title-click:hover{color:#2563eb;text-decoration:underline}.add-container{width:100%;max-width:1150px;margin-left:0;margin-right:auto;padding:30px}.add-tabs{display:flex;margin-bottom:25px;border-bottom:2px solid #e5e7eb}.add-tab{padding:12px 22px;font-weight:600;cursor:pointer;color:#6b7280;border-bottom:3px solid transparent;display:flex;align-items:center;gap:10px}.add-tab.active{color:#2563eb;border-bottom:3px solid #2563eb}.add-tab.disabled{opacity:.4;cursor:not-allowed}.add-icon{font-size:1.3rem}.add-title{font-size:26px;font-weight:700;margin:10px 0 25px;color:#111827}.add-sections-wrapper{min-height:520px}.sec1-req,.sec3-req{color:#dc2626;font-weight:700}.input-error{border:1px solid #dc2626!important;background:#fff5f5!important}.pagination-premium{margin-top:30px;display:flex;justify-content:center;align-items:center;gap:22px;font-size:16px}.pg-btn{background:#2563eb;color:#fff;border:none;padding:8px 18px;border-radius:999px;cursor:pointer;font-weight:600;transition:.2s}.pg-btn:disabled{background:#9bbcf5;cursor:not-allowed}.pg-btn:hover:not(:disabled){background:#1d4ed8}.pg-pages{display:flex;gap:12px}.pg-dot{background:transparent;border:none;cursor:pointer;font-size:16px;color:#4b5563;transition:.2s}.pg-dot.active{color:#111827;font-weight:700}.pg-dot:hover{color:#2563eb}.sec3-field input[type=file]{color:#000!important;opacity:1!important}.sec3-field{color:#000!important}.sec3-row{display:grid;grid-template-columns:1fr 1fr 1fr;gap:25px}.photo-field{grid-row:span 2;display:flex;flex-direction:column}.sec3-photo-preview{width:160px;height:200px;object-fit:cover;border-radius:6px;border:1px solid #d1d5db;margin-bottom:10px}.sec3-photo-placeholder{width:160px;height:200px;background:#e5e7eb;border-radius:6px;border:1px solid #d1d5db;display:flex;align-items:center;justify-content:center;color:#6b7280;margin-bottom:10px}.suppr-eleve-container{background:#fff;padding:22px;border-radius:12px;border:1px solid #e5e7eb}.suppr-eleve-title{font-size:22px;font-weight:700;margin-bottom:18px;color:#1e3a8a}.suppr-eleve-filters{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin-bottom:20px}.suppr-eleve-field label{font-weight:600;font-size:14px;color:#333}.suppr-eleve-field input{width:100%;padding:8px 10px;border-radius:6px;border:1px solid #cbd5e1;margin-top:4px;background:#f8fafc}.suppr-eleve-actions-wrapper{display:flex;gap:10px;align-items:flex-end}.suppr-eleve-reset-btn{background:#6b7280;color:#fff;padding:10px 16px;border-radius:6px;border:none;cursor:pointer;font-weight:600;flex:1}.suppr-eleve-reset-btn:hover{background:#4b5563}.suppr-eleve-search-btn{background:#2563eb;color:#fff;padding:10px 16px;border-radius:6px;border:none;cursor:pointer;font-weight:600;flex:1}.suppr-eleve-search-btn:hover{background:#1d4ed8}.suppr-eleve-loader-wrapper{display:flex;flex-direction:column;align-items:center;margin:18px 0}.suppr-eleve-loader{width:38px;height:38px;border:4px solid #dbeafe;border-top-color:#2563eb;border-radius:50%;animation:suppr-eleve-spin .8s linear infinite;margin-bottom:8px}@keyframes suppr-eleve-spin{to{transform:rotate(360deg)}}.suppr-eleve-loader-text{font-size:14px;color:#1e3a8a;font-weight:600}.suppr-eleve-confirmation-3s{background:#d1fae5;color:#065f46;padding:12px;border-radius:6px;border:1px solid #10b981;font-weight:600;text-align:center;margin-bottom:14px}.suppr-eleve-table{width:100%;border-collapse:collapse}.suppr-eleve-table th{background:#2563eb;color:#fff;padding:10px;font-weight:700;font-size:14px;text-align:left}.suppr-eleve-table td{background:#fff;color:#222;padding:10px;border-bottom:1px solid #e5e7eb}.suppr-eleve-btn-danger{background:#dc2626;color:#fff;padding:8px 14px;border-radius:6px;border:none;cursor:pointer;font-weight:600}.suppr-eleve-btn-danger:hover{background:#b91c1c}.suppr-eleve-empty{text-align:center;padding:20px;color:#666;background:#fafafa}.suppr-eleve-popup-overlay{position:fixed;top:0;left:0;width:100%;height:100%;background:#0000008c;display:flex;align-items:center;justify-content:center;z-index:3000}.suppr-eleve-popup-box{background:#fff;padding:28px;border-radius:12px;width:420px;max-width:90%;text-align:center;box-shadow:0 6px 20px #00000040}.suppr-eleve-popup-icon{font-size:42px;margin-bottom:10px}.suppr-eleve-popup-title{font-size:20px;font-weight:700;margin-bottom:12px;color:red}.suppr-eleve-popup-text{font-size:15px;margin-bottom:22px;color:#444}.suppr-eleve-popup-actions{display:flex;justify-content:center;gap:14px}.suppr-eleve-popup-cancel{background:#e5e7eb;color:#111;padding:10px 16px;border-radius:6px;border:none;cursor:pointer;font-weight:600}.suppr-eleve-popup-cancel:hover{background:#d1d5db}.suppr-eleve-popup-confirm{background:#dc2626;color:#fff;padding:10px 16px;border-radius:6px;border:none;cursor:pointer;font-weight:600}.suppr-eleve-popup-confirm:hover{background:#b91c1c}.page-classes{padding:2rem;background-color:#f9f9f9;min-height:100vh}.page-classes{overflow-y:auto}.page-classes h1{color:#0d1b2a;font-size:2rem;margin-bottom:2rem}.filters{display:flex;flex-wrap:wrap;gap:1.5rem;margin-bottom:2rem;max-width:700px}.filters input,.filters select{flex:1 1 45%;padding:.6rem;border:1px solid #ccc;border-radius:6px;font-size:1rem}.table-classes{width:100%;border-collapse:collapse;margin-top:2rem;font-size:1rem;background-color:#fff;box-shadow:0 2px 6px #0000001a}.table-classes th,.table-classes td{border:1px solid #ddd;padding:.8rem 1rem;text-align:left;color:#222}.table-classes th{background-color:#2a9d8f;color:#fff;font-weight:700}.table-classes tr:nth-child(2n){background-color:#eafaf7}.table-classes tr:nth-child(odd){background-color:#fff}.table-classes tr:hover{background-color:#cce4ff;cursor:pointer}.table-classes tr{transition:background-color .2s ease}.pagination{display:flex;justify-content:center;align-items:center;gap:12px;margin-top:16px}.pagination button{padding:6px 12px;background:#2563eb;color:#fff;border:none;border-radius:6px;cursor:pointer}.pagination button:disabled{background:#9ca3af;cursor:not-allowed}.pagination span{color:#000}.filters-classes{background:#fff;padding:20px;border-radius:12px;box-shadow:0 2px 6px #0000001a;margin-bottom:25px;display:flex;flex-wrap:wrap;gap:15px}.filters-classes input,.filters-classes select{padding:10px 14px;border:1px solid #d1d5db;border-radius:8px;font-size:1rem;flex:1;min-width:220px;background:#f9fafb;transition:border-color .2s ease}.filters-classes input:focus,.filters-classes select:focus{border-color:#2a9d8f;outline:none}.filters-classes input::placeholder{color:#9ca3af}@media(max-width:600px){.filters-classes{flex-direction:column}}.nav-tabs{display:flex;gap:8px;background-color:gray;border-radius:8px;margin-bottom:20px;overflow-x:auto;white-space:nowrap;scroll-behavior:smooth;padding:0}.nav-tabs::-webkit-scrollbar{height:6px}.nav-tabs::-webkit-scrollbar-thumb{background:#2a9d8f;border-radius:4px}.nav-tabs a{flex:0 0 auto;min-width:180px;padding:16px 20px;background-color:transparent;color:#fff;font-weight:700;font-size:1.05rem;text-align:center;text-decoration:none;height:100%;display:flex;align-items:center;justify-content:center;transition:background-color .3s ease,color .3s ease;border-radius:0}.nav-tabs a:hover{background-color:#21867a}.nav-tabs a.active{background:#2a9d8f;color:#fff;border-bottom:2px solid #2ecc71}@media(max-width:768px){.nav-tabs{flex-direction:column;overflow-x:visible}.nav-tabs a{width:100%;min-width:100%;font-size:1rem;padding:12px 0}}.classe-detail-layout{padding:40px;background:linear-gradient(135deg,#e8fdf5,#f0faff);min-height:100vh;box-sizing:border-box}.header-classe{background:#fff;padding:20px;border-radius:10px;border-left:6px solid #2a9d8f;box-shadow:0 4px 12px #00000014;margin-bottom:25px}.identite-classe h1{margin:0;font-size:1.9rem;font-weight:700;color:#1f2937}.identite-classe p{margin:6px 0;font-size:1rem;color:#374151}.effectif-badge{display:inline-block;background-color:#2a9d8f;color:#fff!important;font-weight:700;padding:8px 14px;border-radius:20px;margin:8px 0;font-size:.95rem}.classe-tabs{position:relative;display:flex!important;flex-direction:row!important;align-items:center;gap:20px;padding-bottom:10px;margin-bottom:25px;border-bottom:2px solid #d1d5db}.classe-tabs .tab-link{display:inline-flex;align-items:center;gap:8px;padding:10px 18px;text-decoration:none;font-weight:600;color:#374151;border-radius:6px 6px 0 0;transition:background .2s,color .2s}.classe-tabs .tab-link:hover{background:#e0f2fe}.classe-tabs .tab-link.active{background:#2563eb;color:#fff}.classe-tabs:after{content:"";position:absolute;left:0;right:0;bottom:0;border-bottom:3px solid #2a9d8f}.contenu-classe{background:#fff;padding:25px;border-radius:10px;border:1px solid #e5e7eb;box-shadow:0 4px 12px #00000014}.classe-eleves{padding:20px}.ce-header h2{color:#2563eb;font-weight:700}.ce-subtitle{color:#555}.ce-select{padding:8px 12px;border-radius:6px;border:2px solid #2563eb;color:#2563eb;font-weight:600;background:#fff}.ce-btn-export{background:#2a9d8f;color:#fff;font-weight:600;border-radius:6px;padding:8px 14px}.ce-btn-export:hover:not(:disabled){background:#238b7d}.ce-table-wrapper{margin-top:20px}.ce-table{width:100%;border-collapse:collapse;background:#fff;border-radius:10px;overflow:hidden;border:2px solid #2563eb;font-size:1rem}.ce-table th{background:#2563eb;color:#fff!important;padding:14px;font-weight:600;border-right:1px solid #1e4db7}.ce-table th:last-child{border-right:none}.ce-table td{padding:12px 14px;border-bottom:1px solid #e5e7eb;border-right:1px solid #e5e7eb;background:#f8fbff}.ce-table td:last-child{border-right:none}.ce-table tbody tr:hover td{background:#e0f2fe}.ce-badge.ok{background:#2a9d8f;color:#fff;padding:4px 8px;border-radius:6px;font-weight:600;min-width:80px}.ce-badge.warn{background:#e63946;color:#fff;padding:4px 8px;border-radius:6px;font-weight:600;min-width:80px}.ce-badge.wait{background:#f4c430;color:#111;padding:4px 8px;border-radius:6px;font-weight:600;min-width:80px}.ce-actions{display:flex;gap:8px}.ce-btn.small{background:#2563eb;color:#fff;padding:4px 10px;border-radius:6px;font-size:.85rem}.ce-btn.small.secondary{background:#e5e7eb;color:#111}.ce-header{display:flex;justify-content:space-between;align-items:center;width:100%}.ce-controls{display:flex;gap:12px;align-items:center;margin-left:auto}.ce-table td:first-child,.ce-table td:nth-child(2){color:#000!important;font-weight:600}.ce-table td{color:#000!important}.popup-overlay{position:fixed;top:0;left:0;width:100%;height:100%;background:#00000073;display:flex;justify-content:center;align-items:center;z-index:999}.popup-box{background:#fff;padding:25px 30px;border-radius:10px;width:350px;text-align:center;box-shadow:0 6px 20px #0003;animation:popupFade .25s ease-out}.popup-box h3{margin-bottom:10px;color:#2563eb;font-weight:700}.popup-box p{margin-bottom:20px;color:#333;font-size:.95rem}.popup-box button{background:#2563eb;color:#fff;padding:8px 18px;border-radius:6px;border:none;font-weight:600;cursor:pointer;transition:.2s}.popup-box button:hover{background:#1e4db7}@keyframes popupFade{0%{transform:scale(.8);opacity:0}to{transform:scale(1);opacity:1}}.fade-slide-loader{opacity:0;transform:translateY(10px);animation:fadeSlideLoader .25s cubic-bezier(.16,1,.3,1) forwards}@keyframes fadeSlideLoader{to{opacity:1;transform:translateY(0)}}.double-ring-loader-container{display:flex;flex-direction:column;align-items:center;margin-top:60px;color:#444;font-size:16px}.double-ring{width:60px;height:60px;border:6px solid transparent;border-top:6px solid #3b82f6;border-right:6px solid #3b82f6;border-radius:50%;animation:double-ring-spin .9s linear infinite;margin-bottom:10px}@keyframes double-ring-spin{to{transform:rotate(360deg)}}.popup-container{background:#fff;padding:25px;width:480px;border-radius:8px;box-shadow:0 4px 12px #0003}.popup-item{margin-bottom:20px}.popup-item select{width:100%;padding:8px;margin-top:5px}.popup-actions{display:flex;justify-content:flex-end;gap:10px}.btn-cancel{background:#ccc;padding:8px 14px;border-radius:5px}.btn-validate{background:#0078ff;color:#fff;padding:8px 14px;border-radius:5px}.notes-container{padding:20px;font-family:Arial,sans-serif;color:#000}.filters{display:flex;gap:20px;margin-bottom:20px;align-items:center}.filters label{margin-right:6px;font-weight:700;color:#000}.save-btn{margin-left:auto;padding:8px 10px;background-color:#28a745;color:#fff;border:none;border-radius:4px;cursor:pointer;margin-top:8mm}.save-btn:disabled{background-color:#8ca893;cursor:not-allowed}.matiere-card{margin-bottom:30px;border:1px solid #ddd;border-radius:6px;padding:12px;background:#fff}.matiere-header{display:flex;align-items:center;gap:16px;margin-bottom:10px;color:#000}.matiere-header h3{margin:0}.coef{font-weight:700;color:#333}.notes-table{width:100%;border-collapse:collapse;background:#fff;color:#000}.notes-table th{border-bottom:2px solid #ccc;padding:8px;background:#f7f7f7;text-align:left;background:#28a745}.col-eleve{width:380px;min-width:200px;text-align:left}.notes-table td{border-bottom:1px solid #eee;padding:6px}.notes-table tbody tr:nth-child(2n){background:#eae8e8}.notes-table input[type=number],.notes-table input[type=text]{width:100%;padding:4px 6px;border:1px solid #ccc;border-radius:4px;background:#fff}.rang{text-align:center}.loading{padding:20px}.error{padding:20px;color:red}.note-input{width:100%;padding:4px 6px;border:1px solid #ccc;border-radius:4px;background:#fff;transition:border-color .2s,background-color .2s}.invalid-note{border-color:#d9534f!important;background-color:#ffe6e6!important;color:#a94442!important;font-weight:700}.crp-table tbody tr:nth-child(2n){background:#f7f7f7}input[type=number]::-webkit-inner-spin-button,input[type=number]::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}input[type=number]{-moz-appearance:textfield}.double-ring-loader-container{display:flex;flex-direction:column;align-items:center;margin:25px 0;color:#4a4a4a;font-size:14px;font-weight:500}.double-ring{width:45px;height:45px;border:4px solid transparent;border-top:4px solid #4a90e2;border-left:4px solid #4a90e2;border-radius:50%;animation:spin .9s linear infinite;margin-bottom:10px}.btn-import-pdf{background-color:#28a745;color:#fff;padding:8px 14px;border-radius:6px;cursor:pointer;font-weight:600;border:none;display:inline-flex;align-items:center;white-space:nowrap;margin-top:10mm}.btn-import-pdf:hover{background-color:#28a745}.import-overlay{position:fixed;inset:0;background:#00000073;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);display:flex;align-items:center;justify-content:center;z-index:9999}.import-popup{position:relative;background:#fff;padding:28px 36px;border-radius:10px;box-shadow:0 8px 25px #00000026;text-align:center;width:360px}.import-close-btn{position:absolute;top:8px;right:8px;background:#dc2626;color:#fff;border:none;width:26px;height:26px;border-radius:50%;font-size:16px;cursor:pointer;font-weight:700;display:flex;align-items:center;justify-content:center}.import-close-btn:hover{background:#b91c1c}.import-title{font-size:20px;font-weight:600;margin-bottom:18px;color:#1e3a8a}.import-text{font-size:14px;color:#4b5563;line-height:1.5}.MuiLinearProgress-bar{background-color:#1e3a8a!important}.MuiLinearProgress-root{background-color:#e5e7eb!important;border-radius:6px;height:8px}.table-loader-wrapper{margin-top:40px;display:flex;justify-content:center}.table-scroll-x{overflow-x:auto;overflow-y:hidden;width:100%}.table-scroll-x table{min-width:max-content}.notes-table{width:100%;border-collapse:collapse;table-layout:fixed}.notes-table th,.notes-table td{padding:4px 6px;font-size:.85rem;text-align:center}.notes-table .col-eleve{width:180px;text-align:left}.notes-table th:not(.col-eleve),.notes-table td:not(.col-eleve){width:90px}.note-input{width:100%;box-sizing:border-box;padding:2px 4px;font-size:.8rem}.assiduite-page{padding:28px;font-family:Inter,sans-serif;color:#1f2937;background:#fafafa}.ass-title{font-size:1.55rem;font-weight:700;margin-bottom:18px;color:#1f2937}.ass-header{background:#fff;padding:20px;border-radius:10px;border:1px solid #e5e7eb;box-shadow:0 2px 6px #0000000d;margin-bottom:30px}.ass-filters-row{display:flex;flex-wrap:wrap;gap:25px;margin-bottom:15px}.ass-field label{font-weight:600;margin-bottom:6px;display:block;color:#1f2937}.ass-field input,.ass-field select{padding:10px;border-radius:6px;border:1px solid #cbd5e1;background:#fff;font-size:.95rem;width:200px;transition:all .2s ease}.ass-field input:focus,.ass-field select:focus{border-color:#2563eb;box-shadow:0 0 0 2px #2563eb26}.ass-buttons{display:flex;justify-content:space-between;width:100%}.ass-btn-primary,.ass-btn-secondary{padding:10px 22px;border-radius:6px;cursor:pointer;font-weight:600;transition:all .2s ease;color:#fff}.ass-btn-primary{background:#2563eb;border:none}.ass-btn-primary:hover{background:#1e4fc7}.ass-btn-secondary{background:#2563eb;border:1px solid #d1d5db}.ass-btn-secondary:hover{background:#1e4fc7}.ass-btn-primary.disabled,.ass-btn-secondary.disabled{opacity:.5;cursor:not-allowed;background:#e5e7eb!important;color:#000!important;border-color:#d1d5db!important}.ass-table{width:100%;border-collapse:collapse;margin-top:15px;font-size:.95rem;background:#fff;border-radius:10px;overflow:hidden;box-shadow:0 2px 8px #0000000f}.ass-table th{background:#2563eb;color:#fff;font-weight:600;padding:10px;border-bottom:1px solid #1e4fc7;text-align:left}.ass-table td{padding-top:10px;padding-bottom:10px;height:45px;position:relative;overflow:visible}.ass-table td label.switch{margin-top:0;margin-bottom:0;display:inline-flex;align-items:center}.ass-table tr:last-child td{border-bottom:none}.ass-table tbody tr:hover td{background:#f3f4f6}.ass-row-clickable{cursor:pointer;transition:background .15s ease;position:relative;z-index:1}.ass-row-clickable:hover{background:#eef2ff!important}.ass-total-click{font-weight:700;color:#2563eb;text-decoration:underline;cursor:pointer;display:flex;gap:6px;align-items:center;position:relative;z-index:5}.switch input{display:none;pointer-events:auto}.switch .slider{position:relative;width:100%;height:100%;background-color:#a3aba6;border-radius:26px;display:flex;align-items:center;justify-content:center;font-weight:700;color:#000;font-size:12px;z-index:2;transition:all .25s ease;pointer-events:none}.switch .slider:before{content:"";position:absolute;left:4px;width:18px;height:18px;background:#fff;border-radius:50%;top:50%;transform:translateY(-50%);z-index:1;transition:all .25s ease}.switch input:checked+.slider{background-color:#dc2626}.switch input:checked+.slider:before{left:38px}.txt-on,.txt-off{position:absolute;z-index:3;pointer-events:none;transition:opacity .2s ease;font-size:12px}.txt-on{left:8px;opacity:0}.txt-off{right:8px;opacity:1}.switch input:checked+.slider .txt-on{opacity:1}.switch input:checked+.slider .txt-off{opacity:0}.ass-popup-overlay{position:fixed;inset:0;background:#00000040;display:flex;justify-content:center;align-items:center;z-index:9999}.ass-popup{background:#fff;padding:28px;border-radius:12px;width:650px;max-width:95vw;max-height:80vh;overflow-y:auto;border:1px solid #e2e8f0;box-shadow:0 6px 25px #00000026}.ass-btn-close{margin-top:15px;background:#2563eb;border:none;padding:10px 18px;border-radius:6px;cursor:pointer;font-weight:600;color:#fff}.ass-btn-close:hover{background:#1e4fc7}.loader{width:18px;height:18px;border:3px solid #ffffff;border-top-color:transparent;border-radius:50%;display:inline-block;animation:spin .7s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.switch{position:relative;z-index:2;pointer-events:auto;display:inline-block;width:60px;height:26px;cursor:pointer;z-index:1}.ass-total-number{font-weight:700;color:#2563eb;text-decoration:underline}.ass-total-link{color:#2563eb;text-decoration:underline;font-size:.85rem;font-weight:600}.popover-overlay{position:fixed;inset:0;z-index:999999}.popover-box{position:absolute;transform:translate(-100%) translateY(-100%);background:#fff;width:320px;max-width:90vw;border-radius:12px;box-shadow:0 8px 30px #00000040;animation:popoverFade .18s ease-out;overflow:hidden;border:1px solid #e5e5e5}@keyframes popoverFade{0%{opacity:0;transform:translate(-100%) translateY(-110%)}to{opacity:1;transform:translate(-100%) translateY(-100%)}}.popover-header{background:#f7f7f7;padding:10px 14px;font-weight:600;display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid #e5e5e5}.popover-close{background:none;border:none;font-size:18px;cursor:pointer;color:#444;transition:.2s}.popover-close:hover{color:#000}.popover-textarea{width:100%;height:120px;border:none;padding:12px;resize:none;outline:none;font-size:14px;background:#fff}.popover-textarea:focus{background:#fafafa}.popover-footer{padding:10px;display:flex;justify-content:flex-end;gap:10px;border-top:1px solid #e5e5e5}.popover-btn{padding:8px 14px;border-radius:8px;border:none;cursor:pointer;font-size:14px;transition:.2s}.popover-btn.primary{background:#2563eb;color:#fff}.popover-btn.primary:hover{background:#1d4ed8}.popover-btn.secondary{background:#e5e5e5}.popover-btn.secondary:hover{background:#d5d5d5}.popover-large{width:650px;max-width:95vw;min-height:200px;background:#fff;border-radius:12px;box-shadow:0 8px 30px #00000040;border:1px solid #e5e5e5;overflow:hidden}.popover-body{padding:15px;max-height:400px;overflow-y:auto}.ass-delete-btn{background:none;border:none;cursor:pointer;font-size:18px;color:#d11a2a;transition:.2s}.ass-delete-btn:hover{transform:scale(1.2);color:#a50e1c}.edt-classe-container{padding:30px;background:#fff}.edt-classe-container h1{text-align:center;margin-bottom:30px;font-size:1.8rem}.edt-filters{display:flex;gap:20px;margin-bottom:20px}.edt-filters input{padding:10px;border-radius:6px;border:1px solid #ccc;font-size:1rem}.edt-semaine-info{margin-bottom:20px;font-size:1.1rem;text-align:center}.edt-table{width:100%;border-collapse:collapse;margin-top:10px}.edt-table th,.edt-table td{border:1px solid #ddd;padding:12px;text-align:center;vertical-align:middle}.edt-table th{background:#2e7d32;font-weight:700}.edt-heure{background:#fafafa;font-weight:700}.edt-case{height:90px}.edt-cours{display:flex;flex-direction:column;gap:4px}.matiere{font-weight:700;font-size:.95rem}.enseignant{font-size:.85rem;color:#555}.edt-vide{color:#bbb;font-size:1.2rem}.etat{font-size:.8rem;font-weight:700}.etat-normal{color:#2e7d32}.etat-remplace{color:#ff9800}.etat-enseignant_absent{color:#d32f2f}.etat-annule{color:#9e9e9e}.edt-export-btn{background-color:#2a9d8f;color:#fff;border:none;padding:8px 14px;border-radius:6px;cursor:pointer;font-size:14px;font-weight:500;transition:.2s ease}.edt-export-btn:hover{background-color:#23877b}.crp-container{padding:20px;background:#f8f9fa;min-height:100vh}.crp-title{font-size:1.8rem;font-weight:700;margin-bottom:20px;color:#2c3e50}.crp-buttons{display:flex;gap:10px;margin-bottom:20px;flex-wrap:wrap}.crp-btn{padding:8px 16px;border-radius:6px;border:1px solid #d0d7de;background:#fff;cursor:pointer;font-weight:600;color:#34495e;transition:.2s}.crp-btn:hover{background:#ecf0f1}.crp-btn.active{background:#3498db;color:#fff;border-color:#2980b9}.crp-table{width:100%;border-collapse:collapse;background:#fff;border-radius:8px;overflow:hidden;box-shadow:0 2px 6px #00000014}.crp-table th{background:#34495e;color:#fff;padding:12px;font-size:.9rem;text-align:left}.crp-table td{padding:10px;border-bottom:1px solid #ecf0f1;font-size:.9rem;color:#000}.crp-table tr:nth-child(2n){background:#f9fbfc}.crp-table tr:hover{background:#eef5ff}.mention-badge{padding:4px 8px;border-radius:6px;font-weight:600;font-size:.85rem;color:#fff;display:inline-block;text-transform:capitalize}.mention-excellent{background-color:#2ecc71}.mention-très-bien{background-color:#3498db}.mention-bien{background-color:#9b59b6}.mention-passable{background-color:#f1c40f;color:#000}.mention-insuffisant{background-color:#e74c3c}.mention-none{background-color:#bdc3c7;color:#000}.crp-info{padding:10px;background:#dfe6e9;border-left:4px solid #636e72;margin-bottom:20px;border-radius:4px}.crp-error{padding:10px;background:#ffe6e6;border-left:4px solid #e74c3c;margin-bottom:20px;border-radius:4px;color:#c0392b;font-weight:600}.crp-row-clickable{cursor:pointer;transition:background .15s ease}.crp-row-clickable:hover{background:#e0f2fe!important}.export-periode{background:#16a34a!important}.export-periode:hover{background:#0f9a3a!important}.abs-page{padding:20px;font-family:system-ui,sans-serif;color:#222}.abs-title{font-size:24px;font-weight:700;margin-bottom:16px}.abs-table{width:100%;border-collapse:collapse;margin-top:10px;background:#fff;border:1px solid #e5e7eb;border-radius:8px;overflow:hidden}.abs-table th{background:#f3f4f6;padding:10px;font-size:13px;font-weight:600;text-align:left;border-bottom:1px solid #e5e7eb}.abs-table td{padding:10px;font-size:13px;border-bottom:1px solid #f0f0f0}.abs-table tr:last-child td{border-bottom:none}.abs-empty{text-align:center;padding:14px;color:#777}.abs-btn-danger{background:#fee2e2;color:#991b1b;border:1px solid #fecaca;padding:4px 8px;border-radius:6px;cursor:pointer;font-size:12px}.abs-btn-danger:hover{background:#fecaca}.abs-form{margin-top:30px;background:#fff;padding:18px;border:1px solid #e5e7eb;border-radius:8px}.abs-form h3{margin-top:0;font-size:18px;font-weight:600;margin-bottom:16px}.abs-form-row{display:flex;flex-direction:column;margin-bottom:14px}.abs-form-row label{font-size:13px;font-weight:600;margin-bottom:4px}.abs-form-row input[type=text],.abs-form-row input[type=date],.abs-form-row input[type=number],.abs-form-row input[type=file]{padding:8px 10px;border-radius:6px;border:1px solid #d4d4d4;font-size:13px}.abs-form-row input:focus{outline:none;border-color:#2563eb;box-shadow:0 0 0 1px #2563eb26}.abs-btn-primary{background:#2563eb;color:#fff;border:none;padding:8px 16px;border-radius:6px;cursor:pointer;font-weight:600;font-size:14px}.abs-btn-primary:hover{background:#1d4ed8}.form-ens-page{padding:20px;font-family:system-ui,sans-serif;color:#222}.form-ens-title{font-size:22px;font-weight:700;margin-bottom:20px}.form-ens-form{background:#fff;border:1px solid #e5e7eb;border-radius:10px;padding:20px;max-width:600px}.form-ens-form-row{display:flex;flex-direction:column;margin-bottom:16px}.form-ens-form-row label{font-size:13px;font-weight:600;margin-bottom:6px}.form-ens-form-row input{padding:8px 10px;border-radius:6px;border:1px solid #d4d4d4;font-size:14px}.form-ens-form-row input:focus{outline:none;border-color:#2563eb;box-shadow:0 0 0 1px #2563eb26}.form-ens-btn-primary{background:#2563eb;color:#fff;border:none;padding:10px 18px;border-radius:6px;font-weight:600;font-size:14px;cursor:pointer;margin-top:10px}.form-ens-btn-primary:hover{background:#1d4ed8}.form-ens-feedback{margin-top:20px;padding:12px 16px;border-radius:8px;font-size:14px;font-weight:600}.form-ens-feedback-success{background:#dcfce7;color:#166534;border:1px solid #86efac}.form-ens-feedback-error{background:#fee2e2;color:#991b1b;border:1px solid #fecaca}.co-ens-page{padding:20px;font-family:system-ui,sans-serif;color:#222}.co-ens-profile-card{background:#fff;border:1px solid #e5e7eb;border-radius:10px;padding:20px;margin-bottom:25px}.co-ens-profile-card h2{margin-top:0;font-size:20px;font-weight:700;margin-bottom:16px}.co-ens-profile-label{font-weight:600;font-size:14px;margin-right:6px}.co-ens-profile-value{font-size:14px;color:#374151}.co-ens-profile-card>div{margin-bottom:8px}.co-ens-profile-actions{margin-top:16px;display:flex;gap:10px}.co-ens-table{width:100%;border-collapse:collapse;background:#fff;border:1px solid #e5e7eb;border-radius:10px;overflow:hidden}.co-ens-table th{background:#f3f4f6;padding:10px;font-size:13px;font-weight:600;text-align:left;border-bottom:1px solid #e5e7eb}.co-ens-table td{padding:10px;font-size:13px;border-bottom:1px solid #f0f0f0}.co-ens-table tr:last-child td{border-bottom:none}.co-ens-status{display:inline-flex;align-items:center;gap:6px;font-size:13px;font-weight:600;color:#166534}.co-ens-status-dot{width:8px;height:8px;background:#16a34a;border-radius:50%}.co-ens-status-inactive{color:#991b1b}.co-ens-form{background:#fff;border:1px solid #e5e7eb;border-radius:10px;padding:20px;margin-top:25px}.co-ens-form-title{margin-top:0;font-size:18px;font-weight:700;margin-bottom:16px}.co-ens-form-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:16px}.co-ens-form-row{display:flex;flex-direction:column}.co-ens-form-row label{font-size:13px;font-weight:600;margin-bottom:4px}.co-ens-form-row input,.co-ens-form-row select{padding:8px 10px;border-radius:6px;border:1px solid #d4d4d4;font-size:13px}.co-ens-form-row input:focus,.co-ens-form-row select:focus{outline:none;border-color:#2563eb;box-shadow:0 0 0 1px #2563eb26}.co-ens-form-submit-btn{margin-top:20px}.co-ens-btn{padding:7px 14px;border-radius:6px;font-size:13px;font-weight:600;cursor:pointer;border:none}.co-ens-btn-primary{background:#2563eb;color:#fff}.co-ens-btn-primary:hover{background:#1d4ed8}.co-ens-btn-secondary{background:#f3f4f6;color:#111;border:1px solid #d4d4d4}.co-ens-btn-secondary:hover{background:#e5e7eb}.co-ens-btn-danger{background:#fee2e2;color:#991b1b;border:1px solid #fecaca}.co-ens-btn-danger:hover{background:#fecaca}.co-ens-modal-overlay{position:fixed;inset:0;background:#00000073;display:flex;justify-content:center;align-items:center;z-index:50}.co-ens-modal-box{background:#fff;padding:22px;border-radius:10px;width:350px;max-width:90%;border:1px solid #e5e7eb}.co-ens-modal-box h3{margin-top:0;margin-bottom:16px;font-size:18px;font-weight:700}.co-ens-modal-actions{margin-top:16px;display:flex;justify-content:flex-end;gap:10px}.ens-list-pagination button:hover:not(:disabled){background:#0653ee}.sal-ens-page{padding:20px;font-family:system-ui,sans-serif;color:#222}.sal-ens-title{font-size:22px;font-weight:700;margin-bottom:20px}.sal-ens-form{display:flex;gap:12px;align-items:center;background:#fff;border:1px solid #e5e7eb;padding:16px;border-radius:10px;max-width:450px}.sal-ens-form label{font-size:14px;font-weight:600}.sal-ens-form input{padding:8px 10px;border-radius:6px;border:1px solid #d4d4d4;font-size:14px}.sal-ens-form input:focus{outline:none;border-color:#2563eb;box-shadow:0 0 0 1px #2563eb26}.sal-ens-btn-primary{background:#2563eb;color:#fff;border:none;padding:8px 14px;border-radius:6px;font-weight:600;cursor:pointer}.sal-ens-btn-primary:hover{background:#1d4ed8}.sal-ens-card{margin-top:20px;background:#fff;border:1px solid #e5e7eb;padding:20px;border-radius:10px;max-width:450px}.sal-ens-card p{margin:6px 0;font-size:14px}.aff-ens-page{padding:20px;font-family:system-ui,sans-serif;color:#222}.aff-ens-title{font-size:22px;font-weight:700;margin-bottom:20px}.aff-ens-form{display:flex;gap:12px;flex-wrap:wrap;background:#fff;border:1px solid #e5e7eb;padding:16px;border-radius:10px;margin-bottom:20px}.aff-ens-form select,.aff-ens-form input{padding:8px 10px;border-radius:6px;border:1px solid #d4d4d4;font-size:14px}.aff-ens-form select:focus,.aff-ens-form input:focus{outline:none;border-color:#2563eb;box-shadow:0 0 0 1px #2563eb26}.aff-ens-btn-primary{background:#2563eb;color:#fff;border:none;padding:8px 14px;border-radius:6px;font-weight:600;cursor:pointer}.aff-ens-btn-primary:hover{background:#1d4ed8}.aff-ens-table{width:100%;border-collapse:collapse;background:#fff;border:1px solid #e5e7eb;border-radius:10px;overflow:hidden}.aff-ens-table th{background:#f3f4f6;padding:10px;font-size:13px;font-weight:600;border-bottom:1px solid #e5e7eb}.aff-ens-table td{padding:10px;font-size:14px;border-bottom:1px solid #f0f0f0}.aff-ens-empty{text-align:center;padding:14px;color:#777}.ens-fiche-layout{padding:50px;background-color:#fafafa;min-height:100vh;font-family:Inter,sans-serif}.nav-tabs{margin-bottom:25px}.ens-fiche-content{background:#fff;padding:25px;border-radius:10px;box-shadow:0 2px 6px #0000001a;color:#000}.ens-fiche-loading{padding:40px;text-align:center;font-size:1.2rem;color:#555}.ens-list-page{padding:2rem;background-color:#f9f9f9;min-height:100vh;font-family:Inter,sans-serif}.ens-list-title{color:#0d1b2a;font-size:2rem;margin-bottom:2rem;font-weight:700}.ens-list-filters{display:flex;flex-wrap:wrap;gap:1.2rem;margin-bottom:2rem;background:#fff;padding:20px;border-radius:12px;box-shadow:0 2px 6px #0000001a}.ens-list-filters input,.ens-list-filters select{padding:.7rem 1rem;border:1px solid #ccc;border-radius:6px;font-size:1rem;flex:1;min-width:200px}.ens-list-btn-primary{background-color:#2a9d8f;color:#fff;border:none;padding:.8rem 1.4rem;border-radius:8px;cursor:pointer;font-weight:700;transition:.3s ease}.ens-list-btn-primary:hover{background-color:#21867a}.ens-list-table{width:100%;border-collapse:collapse;background:#fff;box-shadow:0 2px 6px #0000001a;border-radius:10px;overflow:hidden;font-size:.95rem}.ens-list-table th{background-color:#2a9d8f;font-weight:700;color:#fff;padding:.55rem .7rem;text-align:left;font-weight:600;border-bottom:1px solid #d9d9d9}.ens-list-row:hover{background-color:#cce4ff;cursor:pointer}.ens-list-btn-secondary{background:#2563eb;color:#fff;border:none;padding:6px 10px;border-radius:6px;cursor:pointer}.ens-list-btn-secondary:hover{background:#1d4ed8}.ens-list-btn-danger{background:#dc2626;color:#fff;border:none;padding:4px 8px;border-radius:5px;cursor:pointer;font-size:.85rem}.ens-list-btn-danger:hover{background:#b91c1c}.ens-list-table td{padding:.55rem .7rem;border-bottom:1px solid #e5e7eb;color:#222}.ens-list-empty{text-align:center;padding:1rem;color:#555}.ens-list-actions{display:flex;gap:.35rem}.ens-list-pagination{display:flex;justify-content:center;align-items:center;gap:12px;margin-top:20px}.ens-list-pagination span{color:#000}.ens-list-pagination button{padding:6px 12px;background:#5183ed;color:#fff;border:none;border-radius:6px;cursor:pointer}.ens-list-pagination button:disabled{background:#9ca3af;cursor:not-allowed}.co-ens-page{padding:20px;max-width:1100px;margin:auto}.co-ens-profile-card{background:#fff;padding:25px;border-radius:12px;box-shadow:0 2px 6px #0000001a;margin-bottom:25px}.co-ens-profile-card h2{margin-bottom:15px;color:#0d1b2a}.co-ens-profile-label{font-weight:600;color:#1f2937;margin-right:8px}.co-ens-profile-value{color:#374151}.co-ens-profile-actions{margin-top:20px;display:flex;gap:10px}.co-ens-btn{padding:10px 16px;border-radius:8px;border:none;cursor:pointer;font-weight:600;transition:.2s}.co-ens-btn-primary{background:#2a9d8f;color:#fff}.co-ens-btn-primary:hover{background:#23877a}.co-ens-btn-secondary{background:#e5e7eb;color:#1f2937}.co-ens-btn-secondary:hover{background:#d1d5db}.co-ens-btn-danger{background:#dc2626;color:#fff}.co-ens-btn-danger:hover{background:#b91c1c}.co-ens-table{width:100%;border-collapse:collapse;margin-top:10px}.co-ens-table th{background:#f3f4f6;padding:12px;text-align:left;font-weight:600}.co-ens-table td{padding:12px;border-bottom:1px solid #e5e7eb}.co-ens-status{display:flex;align-items:center;gap:6px;color:#059669;font-weight:600}.co-ens-status-inactive{color:#9ca3af}.co-ens-status-dot{width:10px;height:10px;background:#059669;border-radius:50%}.co-ens-form{background:#fff;padding:25px;border-radius:12px;box-shadow:0 2px 6px #0000001a}.co-ens-form-title{margin-bottom:20px}.co-ens-form-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:20px}.co-ens-form-row label{display:block;margin-bottom:6px;font-weight:600}.co-ens-form-row input,.co-ens-form-row select{width:100%;padding:10px;border:1px solid #d1d5db;border-radius:8px;background:#f9fafb}.co-ens-form-submit-btn{margin-top:20px;width:100%}.co-ens-modal-overlay{position:fixed;inset:0;background:#0006;display:flex;justify-content:center;align-items:center}.co-ens-modal-box{background:#fff;padding:25px;border-radius:12px;width:350px;box-shadow:0 4px 12px #0003}.co-ens-modal-actions{margin-top:20px;display:flex;justify-content:space-between}.po-ens-btn-secondary,.po-ens-btn-primary{background:#16a34a;color:#111;border:1px solid #d4d4d4}.po-ens-btn-danger{background:#fee2e2;color:#991b1b;border:1px solid #fecaca}.confirm-dialog-backdrop{position:fixed;inset:0;background:#00000059;display:flex;align-items:center;justify-content:center;z-index:999}.confirm-dialog{background:#fff;border-radius:10px;padding:24px 28px;max-width:480px;width:100%;box-shadow:0 18px 45px #0f172a40;font-family:system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}.confirm-dialog-highlight{font-weight:600;color:#1d4ed8}.confirm-dialog-btn-cancel{border:1px solid #d1d5db;background:#fff;color:#374151;padding:8px 14px;border-radius:999px;font-size:14px;cursor:pointer;transition:background .15s ease,color .15s ease,border-color .15s ease}.confirm-dialog-btn-cancel:hover{background:#f3f4f6}.ens-tabs-wrapper{margin-bottom:25px}.ens-nav-tabs{display:flex;justify-content:space-between;background-color:#e5e7eb;border-radius:8px;overflow:hidden;white-space:nowrap}.ens-nav-tab-btn{flex:1 1 auto;min-width:0;padding:8px 0;border:none;background-color:transparent;color:#555;font-weight:600;font-size:1rem;cursor:pointer;transition:background-color .25s ease,color .25s ease;text-align:center}.ens-nav-tab-btn:hover{background-color:#d1d5db}.po-ens-btn-secondary{background:#f0f0f0;color:#333;padding:10px 18px;border-radius:6px;border:none;cursor:pointer;font-weight:600;transition:.2s}.po-ens-btn-secondary:hover{background:#e2e2e2}.fe-page{max-width:900px;margin:auto;padding:20px}.fe-title{font-size:1.8rem;margin-bottom:20px;color:#0d1b2a}.fe-form{background:#fff;padding:25px;border-radius:12px;box-shadow:0 2px 6px #0000001a}.fe-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:20px}.fe-field label{display:block;font-weight:600;margin-bottom:6px;color:#1f2937}.fe-field input{width:100%;padding:10px 12px;border:1px solid #d1d5db;border-radius:8px;background:#f9fafb;transition:border-color .2s ease}.fe-field input:focus{border-color:#2a9d8f;outline:none}.fe-btn-primary{margin-top:25px;width:100%;padding:12px;background:#2a9d8f;color:#fff;border:none;border-radius:8px;font-size:1.1rem;font-weight:600;cursor:pointer;transition:.2s}.fe-btn-primary:hover{background:#23877a}.popup-overlay{position:fixed;top:0;left:0;width:100%;height:100%;background:#00000073;display:flex;justify-content:center;align-items:center;z-index:2000}.popup-box{background:#fff;padding:25px;border-radius:10px;width:350px;text-align:center;box-shadow:0 4px 15px #0003}.popup-actions{margin-top:20px;display:flex;justify-content:space-between}.btn-cancel{background:#ccc;padding:8px 15px;border-radius:6px}.btn-confirm{background:#d9534f;color:#fff;padding:8px 15px;border-radius:6px}.ens-page{padding:20px;max-width:1100px;margin:0 auto;font-family:Inter,sans-serif}.ens-profile-card{background:#fff;border-radius:10px;padding:25px;box-shadow:0 2px 8px #00000014;margin-bottom:25px}.ens-profile-title{font-size:1.4rem;font-weight:700;margin-bottom:20px;color:#333}.ens-profile-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:18px}.ens-profile-label{display:block;font-size:.85rem;font-weight:600;color:#555;margin-bottom:4px}.ens-profile-value{font-size:.95rem;color:#222;font-weight:500}.ens-profile-input{width:100%;padding:8px 10px;border-radius:6px;border:1px solid #d0d0d0;font-size:.95rem;transition:.2s}.ens-profile-input:focus{border-color:#0078ff;box-shadow:0 0 0 2px #0078ff26;outline:none}.ens-profile-actions{display:flex;gap:12px;margin-top:20px}.po-ens-btn-secondary{background:#2989f8;color:#fff;padding:10px 18px;border-radius:6px;border:none;cursor:pointer;font-weight:600;transition:.2s}.po-ens-btn-secondary:hover{background:#0078ff}.po-ens-btn-primary{background:#0078ff;color:#fff;padding:10px 18px;border-radius:6px;border:none;cursor:pointer;font-weight:600;transition:.2s}.po-ens-btn-primary:hover{background:#0068dd}.po-ens-btn-danger{background:#ff4d4d;color:#fff;padding:10px 18px;border-radius:6px;border:none;cursor:pointer;font-weight:600;transition:.2s}.po-ens-btn-danger:hover{background:#e63c3c}.confirm-dialog-overlay{position:fixed;top:0;left:0;width:100%;height:100%;background:#00000073;display:flex;align-items:center;justify-content:center;z-index:2000}.confirm-dialog-box{background:#fff;padding:25px;border-radius:10px;width:380px;max-width:90%;box-shadow:0 4px 12px #00000026;text-align:center}.confirm-dialog-text{font-size:15px;line-height:1.5;color:#111827;margin-bottom:20px}.confirm-dialog-actions{display:flex;justify-content:center;gap:12px}.confirm-dialog-btn-confirm{border:none;background:#2563eb;color:#fff;padding:8px 16px;border-radius:999px;font-size:14px;font-weight:500;cursor:pointer;transition:background .15s ease,box-shadow .15s ease}.confirm-dialog-btn-confirm:hover{background:#1d4ed8;box-shadow:0 8px 20px #2563eb59}.confirm-dialog-btn-cancel{border:1px solid #d1d5db;background:#ec4343;color:#fff;padding:8px 14px;border-radius:999px;font-size:14px;cursor:pointer;transition:background .15s ease}.confirm-dialog-btn-cancel:hover{background:#ee3535}.fiche-enseignant-header{background:#fff;padding:25px;border-radius:12px;box-shadow:0 2px 6px #0000001a;margin-bottom:25px}.enseignant-identite h1{margin:0;font-size:1.8rem;color:#0d1b2a}.enseignant-identite p{margin:4px 0;color:#444}.ens-nav-tabs{display:flex;justify-content:space-between;background-color:#e5e7eb;border-radius:8px;overflow:hidden;white-space:nowrap;margin-top:20px}.ens-nav-tab-btn{flex:1 1 auto;min-width:0;padding:16px 0;border:none;background-color:gray;color:#fff;font-weight:600;font-size:1rem;cursor:pointer;transition:background-color .25s ease,color .25s ease;text-align:center}.ens-nav-tab-btn:hover{background-color:#21867a}.ens-nav-tab-active{background-color:#2a9d8f;color:#fff}.ens-nav-green-line{width:100%;height:3px;background-color:#2a9d8f;border-radius:3px;margin-top:6px}.paiement-popup-overlay{position:fixed;inset:0;background:#00000073;display:flex;align-items:center;justify-content:center;z-index:3000}.paiement-popup-card{background:#fff;width:420px;padding:25px;border-radius:12px;box-shadow:0 6px 25px #00000040;animation:paiement-popup-fade .2s ease-out}@keyframes paiement-popup-fade{0%{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}.paiement-popup-title{margin-bottom:20px;font-size:22px;font-weight:700}.paiement-popup-field{margin-bottom:15px;display:flex;flex-direction:column}.paiement-popup-field label{font-weight:600;margin-bottom:6px}.paiement-popup-field input,.paiement-popup-field select,.paiement-popup-field textarea{padding:8px 10px;border:1px solid #d0d0d0;border-radius:6px;font-size:15px}.paiement-popup-field textarea{min-height:70px;resize:vertical}.paiement-popup-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:20px}.paiement-popup-btn-primary{background:#007bff;color:#fff;padding:8px 14px;border-radius:6px;font-weight:600}.paiement-popup-btn-cancel{background:#ccc;padding:8px 14px;border-radius:6px}.salaire-page{padding:25px;font-family:Inter,system-ui,-apple-system,BlinkMacSystemFont,sans-serif}.salaire-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:30px}.salaire-title{font-size:28px;font-weight:700;margin:0}.salaire-subtitle{font-size:15px;opacity:.75}.salaire-badge{background:#eef4ff;color:#1a4db3;padding:8px 14px;border-radius:8px;font-weight:600}.salaire-section{margin-bottom:35px}.salaire-section-header{display:flex;justify-content:space-between;align-items:center}.salaire-month-input{padding:8px 12px;border-radius:6px;border:1px solid #d0d0d0}.salaire-card{background:#fff;padding:22px;border-radius:14px;box-shadow:0 4px 20px #00000014;margin-top:15px}.salaire-card-title{font-size:18px;font-weight:700;margin-bottom:16px}.salaire-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}.salaire-item{background:#f8f9fc;padding:14px;border-radius:10px}.salaire-item-large{grid-column:span 3}.salaire-label{font-size:13px;opacity:.6}.salaire-value{font-size:20px;font-weight:700}.salaire-amount{color:#0a4d9c}.salaire-actions{margin-top:20px;display:flex;gap:12px}.salaire-btn-primary{background:#0a4d9c;color:#fff;padding:10px 18px;border-radius:8px;font-weight:600}.salaire-btn-secondary{background:#e8e8e8;padding:10px 18px;border-radius:8px;font-weight:600}.salaire-duo{display:grid;grid-template-columns:1fr 1fr;gap:28px}.salaire-scroll{max-height:320px;overflow-y:auto;padding-right:6px}.salaire-scroll::-webkit-scrollbar{width:6px}.salaire-scroll::-webkit-scrollbar-thumb{background:#c7c7c7;border-radius:10px}.salaire-scroll::-webkit-scrollbar-thumb:hover{background:#a0a0a0}.salaire-scroll::-webkit-scrollbar-track{background:transparent}.salaire-scroll{scrollbar-width:thin;scrollbar-color:#c7c7c7 transparent}.salaire-heures-list{display:flex;flex-direction:column;gap:10px}.salaire-heure-item{display:grid;grid-template-columns:110px 1fr 90px;align-items:center;padding:8px 0;border-bottom:1px solid #eee}.salaire-heure-date{font-weight:600}.salaire-heure-details{opacity:.8;font-size:14px}.salaire-heure-absence{color:#c62828;font-weight:600;font-size:14px}.salaire-heure-statut{padding:4px 10px;border-radius:6px;font-size:13px;font-weight:600;text-align:center}.statut-ok{background:#e7f7e7;color:#1a7d1a}.statut-absence{background:#ffeaea;color:#c62828}.salaire-table{width:100%;border-collapse:collapse;font-size:14px}.salaire-table thead{background:#f3f6fc}.salaire-table th{text-align:left;padding:10px 12px;font-weight:700;color:#0a4d9c;border-bottom:2px solid #dce3f1}.salaire-table td{padding:10px 12px;border-bottom:1px solid #ececec}.salaire-table tr:hover{background:#f8faff}.salaire-table-montant{font-weight:700;color:#0a4d9c}.salaire-table-notes{font-style:italic;opacity:.8}.edtens-table-container{padding:30px;background:#fff;max-width:1200px;margin:auto}.edtens-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:18px}.edtens-header h2{font-size:1.8rem;font-weight:700;color:#222}.edtens-btn-export{background:#2563eb;color:#fff;padding:10px 18px;border-radius:6px;border:none;cursor:pointer;font-weight:600}.edtens-btn-export:hover{background:#1d4ed8}.edtens-loading-indicator{text-align:center;font-size:1.1rem;margin-bottom:20px;color:#444}.edtens-grid{display:flex;gap:0;border:1px solid #ddd;background:#fff;overflow:hidden}.edtens-hours-wrapper{width:80px;border-right:1px solid #ddd;background:#fafafa}.edtens-hours-column{position:relative}.edtens-hour-line{height:var(--edtpage-hour-height);border-bottom:1px solid #eee;display:flex;align-items:flex-start;padding-top:2px;padding-left:6px;font-size:.85rem;color:#444}.edtens-days-wrapper{flex:1}.edtens-days-header{display:grid;grid-template-columns:repeat(6,1fr);background:#f5f5f5;border-bottom:1px solid #ddd}.edtens-day-header-cell{padding:10px 0;text-align:center;font-weight:700;font-size:.95rem;border-right:1px solid #ddd;color:#222}.edtens-day-header-cell:last-child{border-right:none}.edtens-days-body{display:grid;grid-template-columns:repeat(6,1fr);position:relative}.edtens-day-column{position:relative;border-right:1px solid #ddd}.edtens-day-column:last-child{border-right:none}.edtens-hour-slot-bg{position:absolute;left:0;right:0;height:var(--edtpage-hour-height);border-bottom:1px solid #eee}.edtens-cours{position:absolute;left:4px;right:4px;border-radius:6px;padding:6px;font-size:.85rem;color:#222;display:flex;flex-direction:column;gap:3px;overflow:hidden;border:1px solid rgba(0,0,0,.1)}.edtens-cours strong{font-size:.9rem;font-weight:700}.edtens-class{font-size:.8rem;color:#333}.edtens-teacher{font-size:.75rem;color:#555}.edtens-mat-francais{background:#fde7e7}.edtens-mat-mathematiques{background:#e0f2fe}.edtens-mat-histoire{background:#fef3c7}.edtens-mat-geographie{background:#ecfdf5}.edtens-mat-physique{background:#f3e8ff}.edtens-mat-chimie{background:#fff7ed}.edtens-mat-biologie{background:#dcfce7}.edtens-mat-philosophie{background:#fce7f3}.edtens-mat-anglais{background:#e0e7ff}.edtens-mat-economie{background:#f0e7e8}.edtens-mat-geologie{background:#ecfdf5}.edtens-mat-biologie-geologie{background:#dcfce7}.edtens-mat-science-d-observation{background:#e8f4ff}.edtens-mat-education-civique-et-morale{background:#fff7e6}.edtens-mat-orthographe{background:#ffecec}.edtens-mat-grammaire{background:#fff0f0}.edtens-mat-vocabulaire{background:#fff5ed}.edtens-mat-dictee-et-questions{background:#fff0e6}.edtens-mat-conjugaison{background:#fff5f0}.edtens-mat-ecriture{background:#eef2ff}.edtens-mat-eps{background:#ecfdf5}.edtens-mat-morale{background:#fefce8}.edtens-mat-langage{background:#f0f9ff}.edtens-mat-numeration{background:#e0f2fe}.edtens-mat-calcul-ecrit{background:#e0f7ff}.edtens-mat-lecture{background:#f3e8ff}.edtens-mat-chant{background:#fff1f2}.edtens-mat-recitation-et-chant{background:#fff7f7}.edtens-mat-travaux-diriges{background:#f0fdf4}.edtens-mat-instruction-civique{background:#fefce8}.edtens-mat-operations{background:#e0f2fe}.edtens-mat-recitation{background:#fff1f2}.edtens-mat-exercices-sensoriels{background:#ecfdf5}.edtens-mat-geometrie{background:#e0f2fe}.edtens-mat-mesure{background:#e0f7ff}.edtens-mat-dessin{background:#fdf2f8}.edtens-mat-probleme{background:#ffe4e6}.edtens-mat-calcul-probleme{background:#ffe8e8}.edtens-mat-elocution{background:#f3e8ff}.edtens-mat-expression-ecrite{background:#fdf4ff}.edtens-mat-redaction{background:#fce7f3}.edtens-mat-default{background:#f0f0f0}@media(max-width:900px){.edtens-header h2{font-size:1.4rem}}@media(max-width:600px){.edtens-grid{overflow-x:scroll}}:root{--bg: white;--panel: #111827;--accent: #1f2937;--text: #e5e7eb;--muted: #9ca3af;--primary: #2563eb}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text);font-family:system-ui,sans-serif}.layout{display:grid;grid-template-columns:260px 1fr;min-height:100vh}.sidebar{background:var(--panel);border-right:1px solid #1f2937;padding:24px}.sidebar h2{margin:0 0 24px;font-size:18px;color:var(--text)}.sidebar nav a{display:block;color:var(--muted);text-decoration:none;padding:10px 0;border-radius:6px}.sidebar nav a:hover{color:var(--text)}.content{padding:24px}h1{font-size:22px;margin:0 0 16px}.stats{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:16px}.card{background:var(--accent);border:1px solid #1f2937;border-radius:10px;padding:16px}.card .title{color:var(--muted);font-size:12px}.card .value{font-size:22px;font-weight:600}.grid-2{display:grid;grid-template-columns:1fr 1fr;gap:16px}.table{width:100%;border-collapse:collapse;background:var(--accent);border:1px solid #1f2937;border-radius:10px;overflow:hidden}.table th,.table td{padding:10px 12px;border-bottom:1px solid #1f2937;text-align:left;color:var(--text)}.table th{color:var(--muted);font-weight:500}
