body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;margin:0}code{font-family:source-code-pro,Menlo,Monaco,Consolas,Courier New,monospace}*{box-sizing:border-box;margin:0;padding:0}body{background:linear-gradient(135deg,#667eea,#764ba2);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif}.App,body{min-height:100vh}.App{display:flex;flex-direction:column}.App.public-app{background:none}.App.public-app .container{margin:0 auto;max-width:1200px;padding:0 2rem}.App-header{align-items:center;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#fffffff2;border-bottom:1px solid #fff3;box-shadow:0 4px 20px #0000001a;display:flex;justify-content:space-between;padding:1rem 2rem}.sidebar-toggle{background:linear-gradient(135deg,#667eea,#764ba2);border:none;border-radius:8px;box-shadow:0 2px 8px #667eea4d;color:#fff;cursor:pointer;font-size:16px;margin-right:1rem;padding:8px 12px;transition:all .3s ease}.sidebar-toggle:hover{box-shadow:0 4px 12px #667eea66;transform:translateY(-1px)}.user-info{align-items:center;color:#2d3748;display:flex;font-size:14px;gap:15px}.btn-change-password,.btn-logout{background:linear-gradient(135deg,#667eea,#764ba2);border:none;border-radius:6px;color:#fff;cursor:pointer;font-size:12px;padding:6px 12px;transition:all .2s}.btn-change-password:hover,.btn-logout:hover{box-shadow:0 4px 12px #667eea4d;transform:translateY(-1px)}.success-message{background:#d4edda;border:1px solid #c3e6cb;border-radius:6px;color:#155724;font-size:14px;margin-bottom:20px;padding:12px}.error-message{background:#f8d7da}.App-header h1{color:#2d3748;font-size:1.8rem;font-weight:700;text-align:center}.App-body{display:flex;flex:1 1;position:relative}.App-main{background:#ffffff0d;flex:1 1;overflow-y:auto}.navigation{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#fffffff2;box-shadow:4px 0 20px #0000001a;padding:1.5rem 0;transition:all .3s ease;width:280px}.nav-header{align-items:center;border-bottom:1px solid #0000001a;display:flex;margin-bottom:1rem;padding:0 1.5rem 1.5rem}.nav-logo{border-radius:8px;height:32px;margin-right:12px;width:32px}.nav-title{-webkit-text-fill-color:#0000;background:linear-gradient(135deg,#667eea,#764ba2);-webkit-background-clip:text;background-clip:text;font-size:1.2rem;font-weight:700}.navigation.collapsed .nav-header{padding:0 .5rem 1rem}.navigation.collapsed .nav-title{display:none}.navigation.collapsed .nav-logo{margin-right:0}.navigation.collapsed{width:60px}.navigation.collapsed .nav-label{display:none}.navigation.collapsed .nav-item{justify-content:center;margin-right:0;padding:1rem .5rem}.App-body.sidebar-collapsed .App-main{margin-left:60px}.nav-item{align-items:center;background:none;border:none;border-radius:0 25px 25px 0;cursor:pointer;display:flex;margin:.2rem 1rem .2rem 0;padding:1rem 1.5rem;position:relative;text-align:left;transition:all .3s ease;width:100%}.navigation.collapsed .nav-item:hover .nav-label{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#2d3748f2;border-radius:8px;box-shadow:0 4px 15px #0000004d;color:#fff;display:block;left:60px;padding:.5rem 1rem;position:absolute;white-space:nowrap;z-index:1000}.nav-item:hover{background:linear-gradient(135deg,#667eea20,#764ba220);transform:translateX(5px)}.nav-item.active{background:linear-gradient(135deg,#667eea,#764ba2);box-shadow:0 4px 15px #667eea66;color:#fff}.nav-icon{font-size:1.3em;margin-right:12px;text-align:center;width:24px}.nav-label{font-size:.95em;font-weight:500}.dashboard{padding:2rem}.dashboard h2{color:#fff;font-size:2rem;font-weight:600;margin-bottom:2rem}.stats-grid{grid-gap:1.5rem;display:grid;gap:1.5rem;grid-template-columns:repeat(auto-fit,minmax(250px,1fr))}.stat-card{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#fffffff2;border:1px solid #fff3;border-radius:20px;box-shadow:0 8px 32px #0000001a;padding:2rem;text-align:center;transition:transform .3s ease,box-shadow .3s ease}.stat-card:hover{box-shadow:0 12px 40px #00000026;transform:translateY(-5px)}.stat-icon{filter:drop-shadow(0 4px 8px rgba(0,0,0,.1));font-size:3em;margin-bottom:1rem}.stat-number{-webkit-text-fill-color:#0000;background:linear-gradient(135deg,#667eea,#764ba2);-webkit-background-clip:text;background-clip:text;font-size:2.5em;font-weight:700}.stat-label{color:#4a5568;font-weight:500;margin-top:.5rem}.schedule-grid{padding:2rem}.schedule-grid h2{color:#fff;font-size:2rem;font-weight:600}.schedule-filters,.schedule-grid h2{margin-bottom:1.5rem}.schedule-filters select{border:none;border-radius:12px;box-shadow:0 4px 15px #0000001a;cursor:pointer;font-size:1rem;padding:.75rem 1rem}.grid-container,.schedule-filters select{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#fffffff2}.grid-container{border:1px solid #fff3;border-radius:20px;box-shadow:0 8px 32px #0000001a;overflow:hidden}.grid-header{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;display:grid;grid-template-columns:120px repeat(6,1fr)}.day-header,.time-header{border-right:1px solid #fff3;text-align:center}.grid-row{border-top:1px solid #0000000d;display:grid;grid-template-columns:120px repeat(6,1fr)}.time-cell{background:#667eea1a;color:#2d3748;font-weight:600;padding:1rem;text-align:center}.session-cell,.time-cell{border-right:1px solid #0000000d}.session-cell{min-height:80px;padding:.5rem}.session-card{border-radius:12px;box-shadow:0 2px 8px #0000001a;font-size:.85em;height:100%;padding:.75rem;transition:transform .2s ease}.session-card:hover{transform:scale(1.02)}.session-card.lecture{background:linear-gradient(135deg,#e3f2fd,#bbdefb);border-left:4px solid #2196f3}.session-card.tutorial{background:linear-gradient(135deg,#f3e5f5,#e1bee7);border-left:4px solid #9c27b0}.session-card.practical{background:linear-gradient(135deg,#e8f5e8,#c8e6c9);border-left:4px solid #4caf50}.session-course{font-weight:600}.session-room,.session-teacher{font-size:.8em}.university-page{padding:2rem}.btn-cancel,.btn-edit,.btn-save{border:none;border-radius:12px;box-shadow:0 4px 15px #0000001a;cursor:pointer;font-size:.95em;font-weight:500;padding:.75rem 1.5rem;transition:all .3s ease}.btn-edit{background:linear-gradient(135deg,#667eea,#764ba2)}.btn-edit:hover{box-shadow:0 6px 20px #667eea66;transform:translateY(-2px)}.btn-save{background:linear-gradient(135deg,#48bb78,#38a169);margin-right:.75rem}.btn-save:hover{box-shadow:0 6px 20px #48bb7866;transform:translateY(-2px)}.btn-cancel{background:linear-gradient(135deg,#a0aec0,#718096)}.btn-cancel:hover{box-shadow:0 6px 20px #a0aec066;transform:translateY(-2px)}.no-data,.university-form,.university-info{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#fffffff2;border:1px solid #fff3;border-radius:20px;box-shadow:0 8px 32px #0000001a;max-width:600px;padding:2rem}.form-group{margin-bottom:1.5rem}.form-group input,.form-group textarea{background:#fffc;border:2px solid #0000001a;border-radius:12px;font-size:1rem;padding:.75rem 1rem;transition:border-color .3s ease,box-shadow .3s ease;width:100%}.form-group input:focus,.form-group textarea:focus{border-color:#667eea;box-shadow:0 0 0 3px #667eea1a;outline:none}.form-group textarea{height:100px}.info-card h3{-webkit-text-fill-color:#0000;background:linear-gradient(135deg,#667eea,#764ba2);-webkit-background-clip:text;background-clip:text;font-size:1.8rem;font-weight:700;margin-bottom:1.5rem}.info-card p{color:#4a5568;line-height:1.6;margin:1rem 0}.info-card strong{color:#2d3748}.error,.loading{align-items:center;display:flex;font-size:1.2rem;font-weight:500;height:200px;justify-content:center}.error{color:#e53e3e}.loading{color:#fff}.mobile-nav-toggle{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#fffffff2;border:none;border-radius:12px;box-shadow:0 4px 15px #0000001a;cursor:pointer;display:none;font-size:1.2rem;left:1rem;padding:.75rem;position:fixed;top:1rem;z-index:1001}@media (max-width:768px){.App-header{padding:1rem}.App-header h1{font-size:1.5rem;margin-left:3rem}.mobile-nav-toggle{display:block}.navigation{height:100vh;left:0;position:fixed;top:0;transform:translateX(-100%);width:280px;z-index:1000}.navigation.open{transform:translateX(0)}.App-main{padding:0}.dashboard,.schedule-grid,.university-page{padding:1rem}.stats-grid{gap:1rem;grid-template-columns:1fr}.stat-card{padding:1.5rem}.grid-header,.grid-row{font-size:.8rem;grid-template-columns:80px repeat(6,1fr)}.session-cell,.time-cell{padding:.5rem .25rem}.session-card{font-size:.7em;padding:.5rem}.page-header{align-items:flex-start;flex-direction:column;gap:1rem}.no-data,.university-form,.university-info{margin:0;padding:1.5rem}}@media (max-width:480px){.grid-header,.grid-row{grid-template-columns:60px repeat(3,1fr)}.day-header:nth-child(n+5),.session-cell:nth-child(n+5){display:none}.stat-number{font-size:2rem}.dashboard h2,.page-header h2,.schedule-grid h2{font-size:1.5rem}.departments-page,.rooms-page,.teachers-page{padding:1rem}.departments-grid,.rooms-grid,.teachers-grid{gap:1rem;grid-template-columns:1fr}.department-card,.room-card,.teacher-card{padding:1rem}.modal-content{margin:1rem;width:95%}.modal-form,.modal-header{padding:1rem}.modal-actions{flex-direction:column}}.departments-page{padding:2rem}.btn-add{background:linear-gradient(135deg,#48bb78,#38a169);border-radius:12px;box-shadow:0 4px 15px #48bb784d;font-weight:500;padding:.75rem 1.5rem;transition:all .3s ease}.btn-add:hover{box-shadow:0 6px 20px #48bb7866}.departments-grid{grid-gap:1.5rem;display:grid;gap:1.5rem;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));margin-top:2rem}.department-card{align-items:flex-start;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#fffffff2;border:1px solid #fff3;border-radius:16px;box-shadow:0 8px 32px #0000001a;display:flex;justify-content:space-between;padding:1.5rem;transition:transform .3s ease,box-shadow .3s ease}.department-card:hover{box-shadow:0 12px 40px #00000026;transform:translateY(-5px)}.department-info h3{color:#2d3748;font-size:1.2rem;font-weight:600;margin:0 0 .5rem}.department-head{color:#667eea;font-weight:500;margin:.25rem 0}.department-description{color:#4a5568;font-size:.9rem;line-height:1.4;margin:.5rem 0 0}.department-actions{display:flex;flex-shrink:0;gap:.5rem}.btn-delete,.btn-edit-small{border-radius:8px;padding:.5rem;transition:all .3s ease}.btn-delete:hover,.btn-edit-small:hover{transform:scale(1.1)}.btn-delete:hover{background:#e53e3e1a}.modal-overlay{animation:fadeIn .3s ease;-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);z-index:2000}.modal-content{animation:slideIn .3s ease;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#fffffff2;border:1px solid #fff3;border-radius:20px;box-shadow:0 20px 60px #0000004d}.modal-header{border-bottom:1px solid #0000001a;padding:1.5rem 2rem}.modal-header h3{font-size:1.3rem;font-weight:600}.modal-close{align-items:center;border-radius:50%;display:flex;height:2rem;justify-content:center;padding:.25rem;transition:all .3s ease;width:2rem}.modal-close:hover{background:#0000001a;transform:rotate(90deg)}.modal-form{padding:2rem}.modal-actions{margin-top:2rem}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideIn{0%{opacity:0;transform:translateY(-20px) scale(.95)}to{opacity:1;transform:translateY(0) scale(1)}}.teachers-page{padding:2rem}.teachers-grid{grid-gap:1.5rem;display:grid;gap:1.5rem;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));margin-top:2rem}.teacher-card{align-items:flex-start;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#fffffff2;border:1px solid #fff3;border-radius:16px;box-shadow:0 8px 32px #0000001a;display:flex;justify-content:space-between;padding:1.5rem;transition:transform .3s ease,box-shadow .3s ease}.teacher-card:hover{box-shadow:0 12px 40px #00000026;transform:translateY(-5px)}.teacher-info h3{color:#2d3748;font-size:1.2rem;font-weight:600;margin:0 0 .75rem}.teacher-email{color:#667eea;font-weight:500}.teacher-email,.teacher-grade{font-size:.9rem;margin:.5rem 0}.teacher-grade{color:#e53e3e;font-weight:600}.teacher-specialization{color:#48bb78;font-size:.9rem;font-weight:500;margin:.5rem 0}.teacher-departments{color:#4a5568;font-size:.85rem;line-height:1.4;margin:.5rem 0 0}.teacher-actions{display:flex;flex-shrink:0;gap:.5rem}.multi-select{min-height:100px;padding:.5rem}.multi-select option{margin:.2rem 0;padding:.5rem}.form-group small{color:#4a5568;display:block;font-size:.8rem;margin-top:.25rem}.header-actions{flex-wrap:wrap;gap:15px}.search-box{min-width:250px;position:relative}.search-input{background-color:#f8f9fa;border:2px solid #e1e5e9;border-radius:25px;font-size:14px;outline:none;padding:10px 15px;transition:all .3s ease;width:100%}.search-input:focus{background-color:#fff;border-color:#007bff;box-shadow:0 0 0 3px #007bff1a}.search-input::placeholder{color:#6c757d;font-style:italic}@media (max-width:768px){.header-actions{align-items:stretch;flex-direction:column}.search-box{min-width:auto;width:100%}}.rooms-page{padding:2rem}.rooms-grid{grid-gap:1.5rem;display:grid;gap:1.5rem;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));margin-top:2rem}.room-card{align-items:flex-start;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#fffffff2;border:1px solid #fff3;border-radius:16px;box-shadow:0 8px 32px #0000001a;display:flex;justify-content:space-between;padding:1.5rem;transition:transform .3s ease,box-shadow .3s ease}.room-card:hover{box-shadow:0 12px 40px #00000026;transform:translateY(-5px)}.room-card.unavailable{border-left:4px solid #e53e3e;opacity:.8}.room-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:.5rem}.room-info h3{color:#2d3748;font-size:1.2rem;font-weight:600;margin:0}.room-type-icon{font-size:1.5rem;margin-left:.5rem}.room-type{color:#667eea}.room-capacity,.room-type{font-size:.9rem;font-weight:500;margin:.5rem 0}.room-capacity{color:#48bb78}.room-building,.room-floor{color:#4a5568;font-size:.85rem;margin:.25rem 0}.room-status{align-items:center;display:flex;font-size:.85rem;margin-top:.75rem}.status-indicator.available{background-color:#48bb78}.status-indicator.unavailable{background-color:#e53e3e}.checkbox-group,.checkbox-group label{align-items:center;display:flex}.checkbox-group label{cursor:pointer}.checkbox-group input[type=checkbox]{cursor:pointer;margin-right:.5rem;width:auto}.room-actions-inline{margin-top:.5rem}.btn-check-state{background:linear-gradient(135deg,#667eea,#764ba2);border:2px solid red!important;border-radius:8px;color:#fff;cursor:pointer;display:block!important;font-size:1.2rem!important;margin-right:.5rem;padding:.8rem 1rem!important;position:relative!important;transition:all .3s ease;visibility:visible!important;z-index:1000!important}.btn-check-state:hover{box-shadow:0 4px 12px #667eea66;transform:translateY(-2px)}.state-modal{max-width:500px;width:90%}.state-info{padding:1rem 0}.current-status{margin-bottom:1.5rem;text-align:center}.status-badge{border-radius:20px;display:inline-block;font-size:1rem;font-weight:600;margin-top:.5rem;padding:.5rem 1rem}.status-badge.occupied{background-color:#fed7d7;border:1px solid #feb2b2;color:#c53030}.status-badge.free{background-color:#c6f6d5;border:1px solid #9ae6b4;color:#2f855a}.current-session,.next-session{background:#f7fafc;border-left:4px solid #667eea;border-radius:8px;margin-bottom:1rem;padding:1rem}.next-session{border-left-color:#48bb78}.session-details p{color:#4a5568;margin:.5rem 0}.session-details strong{color:#2d3748}.no-sessions{color:#718096;font-style:italic;padding:2rem;text-align:center}@media (max-width:768px){.rooms-page{padding:1rem}.rooms-grid{gap:1rem;grid-template-columns:1fr}.room-card{padding:1rem}.state-modal{max-width:none;width:95%}}.academic-years-page{padding:2rem}.academic-years-grid{grid-gap:1.5rem;display:grid;gap:1.5rem;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));margin-top:2rem}.academic-year-card{align-items:flex-start;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#fffffff2;border:1px solid #fff3;border-radius:16px;box-shadow:0 8px 32px #0000001a;display:flex;justify-content:space-between;padding:1.5rem;transition:transform .3s ease,box-shadow .3s ease}.academic-year-card:hover{box-shadow:0 12px 40px #00000026;transform:translateY(-5px)}.academic-year-card.active{border-left:4px solid #48bb78}.academic-year-info h3{color:#2d3748;font-size:1.2rem;font-weight:600;margin:0 0 .75rem}.academic-year-dates{color:#4a5568;font-size:.9rem;margin:.5rem 0}.date-label{color:#667eea;font-weight:600;margin-right:.25rem}.academic-year-status{align-items:center;display:flex;font-size:.85rem;margin-top:.75rem}.status-indicator{border-radius:50%;height:10px;margin-right:.5rem;width:10px}.status-indicator.active{background-color:#48bb78}.status-indicator.inactive{background-color:#a0aec0}.academic-year-actions{display:flex;flex-shrink:0;gap:.5rem}@media (max-width:768px){.academic-years-page{padding:1rem}.academic-years-grid{gap:1rem;grid-template-columns:1fr}.academic-year-card{padding:1rem}}.classes-page{padding:2rem}.classes-grid{grid-gap:1.5rem;display:grid;gap:1.5rem;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));margin-top:1rem}.class-card{align-items:flex-start;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#fffffff2;border:1px solid #fff3;border-radius:16px;box-shadow:0 8px 32px #0000001a;display:flex;justify-content:space-between;padding:1.5rem;transition:transform .3s ease,box-shadow .3s ease}.class-card:hover{box-shadow:0 12px 40px #00000026;transform:translateY(-5px)}.class-info h3{color:#2d3748;font-size:1.2rem;font-weight:600;margin:0 0 .75rem}.class-level{color:#667eea;font-size:.95rem;font-weight:600;margin:.5rem 0}.class-academic-year,.class-department,.class-track{color:#4a5568;font-size:.9rem;margin:.4rem 0}.class-students{color:#48bb78;font-size:.9rem;font-weight:500;margin:.5rem 0 0}.class-actions{display:flex;flex-shrink:0;gap:.5rem}@media (max-width:768px){.classes-page{padding:1rem}.filters-container{flex-direction:column;gap:.75rem}.classes-grid{gap:1rem;grid-template-columns:1fr}.class-card{padding:1rem}}.sessions-page{padding:2rem}.timetable-container{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#fffffff2;border:1px solid #fff3;border-radius:16px;box-shadow:0 8px 32px #0000001a;margin-top:1rem;overflow-x:auto}.timetable{border-collapse:collapse;min-width:1000px;width:100%}.timetable td,.timetable th{border:1px solid #0000001a;padding:.5rem}.class-header,.day-header{background:linear-gradient(135deg,#667eea,#764ba2);padding:1rem}.class-header,.class-name,.day-header{color:#fff;font-weight:600;text-align:center}.class-name{max-width:80px;min-width:80px;vertical-align:middle;width:80px}.class-row:first-child .class-name{background:#ff9800}.class-row:nth-child(2) .class-name{background:#4caf50}.class-row:nth-child(3) .class-name{background:#2196f3}.class-row:nth-child(4) .class-name{background:#9c27b0}.class-row:nth-child(5) .class-name{background:#f44336}.class-row:nth-child(6) .class-name{background:#00bcd4}.class-row:nth-child(7) .class-name{background:#795548}.class-row:nth-child(8) .class-name{background:#607d8b}.class-row:nth-child(9) .class-name{background:#e91e63}.class-row:nth-child(10) .class-name{background:#3f51b5}.class-row:nth-child(11) .class-name{background:#ff5722}.class-row:nth-child(12) .class-name{background:#009688}.class-row:nth-child(13) .class-name{background:#673ab7}.class-row:nth-child(14) .class-name{background:#ffc107}.class-row:nth-child(15) .class-name{background:#8bc34a}.day-cell{padding:0;vertical-align:top}.time-slots{display:flex;flex-direction:column}.time-slot{border-bottom:1px solid #0000000d;height:128px;min-height:128px;padding:.5rem}.time-slot:has(.session-cell-wrapper){height:170px;min-height:170px}.time-slot:last-child{border-bottom:none}.time-label{color:#4a5568;font-size:.75rem;font-weight:500;margin-bottom:.25rem;text-align:center}.session-cell{display:flex;flex-direction:column;height:98px;justify-content:flex-start;min-height:98px;overflow:visible;position:relative}.session-cell:has(.session-cell-wrapper){height:140px;min-height:140px}.session-cell-wrapper{display:flex;flex-direction:column;gap:.3rem;height:100%}.session-cell-wrapper .session-cell-content{flex:1 1;margin-top:10px;min-height:60px}.session-cell-wrapper .session-cell-content:first-child{margin-top:10px}.session-cell-wrapper .session-cell-content.group-session{min-height:62px}.session-cell-content{background:#fffc;border-radius:6px;box-shadow:0 2px 8px #0000001a;display:flex;flex-direction:column;height:100%;justify-content:space-between;overflow:hidden;padding:.3rem;position:relative;transition:transform .2s ease}.session-cell-content.group-session{border-width:2px}.group-badge{background:#4a5568;border-radius:6px;bottom:2px;color:#fff;font-size:.55rem;font-weight:600;padding:1px 4px;position:absolute;right:4px;white-space:nowrap;z-index:10}.session-cell-content:hover{z-index:10}.session-cell-content.lecture{background:linear-gradient(135deg,#e3f2fd,#bbdefb);border-left:4px solid #2196f3}.session-cell-content.tutorial{background:linear-gradient(135deg,#f3e5f5,#e1bee7);border-left:4px solid #9c27b0}.session-cell-content.practical{background:linear-gradient(135deg,#e8f5e8,#c8e6c9);border-left:4px solid #4caf50}.session-course{color:#2d3748;font-size:.8rem;margin-bottom:.2rem}.session-course,.session-room,.session-teacher{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.session-room,.session-teacher{color:#4a5568;font-size:.7rem;margin-bottom:.1rem}.session-actions{display:flex;gap:.25rem;opacity:0;position:absolute;right:.25rem;top:.25rem;transition:opacity .2s ease}.session-cell-content:hover .session-actions{opacity:1}.btn-delete,.btn-edit-small{align-items:center;background:#fffc;border-radius:50%;display:flex;font-size:.8rem;height:24px;justify-content:center;padding:0;transition:all .2s ease;width:24px}.btn-edit-small:hover{background:#667eea33}.btn-delete:hover{background:#e53e3e33}.add-session-btn{align-items:center;background:#fffc;border:1px dashed #a0aec0;border-radius:50%;color:#a0aec0;cursor:pointer;display:flex;font-size:1.2rem;height:30px;justify-content:center;margin:0 auto;transition:all .2s ease;width:30px}.add-session-btn:hover{background:#667eea1a;border-color:#667eea;color:#667eea}@media (max-width:768px){.sessions-page{padding:1rem}.filters-container{flex-direction:column;gap:.75rem}.timetable-container{border-radius:12px;margin-top:1rem}}.form-hint{color:#667eea;display:block;font-size:.8rem;margin-top:.25rem}.modal-form .form-hint{color:#666;font-size:12px;font-style:italic;margin-top:4px}.session-tooltip{background:#000000e6;border-radius:8px;font-size:13px;line-height:1.4;max-width:300px;padding:12px 16px;white-space:nowrap}.tooltip-content{display:flex;flex-direction:column;gap:4px}.tooltip-content div{margin:0}.tooltip-content strong{color:gold;margin-right:8px}.session-cell-content{cursor:pointer;transition:all .2s ease}.session-cell-content:hover{box-shadow:0 2px 8px #0003;transform:scale(1.02)}.conflict-alert-overlay{align-items:center;background:#00000080;bottom:0;display:flex;justify-content:center;left:0;position:fixed;right:0;top:0;z-index:2000}.conflict-alert{background:#fff;border-left:6px solid #f56565;border-radius:12px;box-shadow:0 8px 32px #0000004d;max-height:80vh;max-width:600px;overflow-y:auto;width:90%}.conflict-alert-header{align-items:center;background:#fed7d7;border-bottom:1px solid #e2e8f0;display:flex;justify-content:space-between;padding:20px 24px 16px}.conflict-alert-header h3{color:#c53030;font-size:18px;font-weight:600;margin:0}.conflict-alert-close{align-items:center;background:none;border:none;border-radius:50%;color:#c53030;cursor:pointer;display:flex;font-size:24px;height:32px;justify-content:center;padding:0;transition:background-color .2s;width:32px}.conflict-alert-close:hover{background:#c530301a}.conflict-alert-content{padding:20px 24px}.conflict-alert-content p{color:#2d3748;font-size:14px;line-height:1.6;margin:0}.conflict-message{font-family:Segoe UI,Tahoma,Geneva,Verdana,sans-serif}.conflict-main{color:#c53030;font-size:15px;font-weight:600;margin-bottom:12px}.conflict-detail{color:#4a5568;font-size:14px;line-height:1.5;margin-bottom:6px;margin-left:8px}.conflict-detail:last-child{margin-bottom:0}.occupied-room{color:#e53e3e!important;font-weight:700!important}.free-room{color:#38a169!important}.room-warning{color:#e53e3e;font-weight:700}.room-info,.room-warning{display:block;font-size:12px;margin-top:4px}.room-info{color:#4a5568;font-style:italic}.timetable-grid{border-collapse:collapse;font-size:12px;margin-top:20px;width:100%}.timetable-grid td,.timetable-grid th{border:2px solid #333;text-align:center;vertical-align:top}.class-header{background-color:#f8f9fa;font-weight:700;left:0;padding:4px;position:-webkit-sticky;position:sticky;width:60px;z-index:10}.day-header{background-color:#e9ecef;padding:5px}.day-name{font-size:14px;font-weight:700;margin-bottom:5px}.session-headers{display:flex;justify-content:space-between}.session-header{background-color:#dee2e6;border:1px solid #adb5bd;flex:1 1;font-size:10px;font-weight:700;padding:2px}.class-name-cell{background-color:#f8f9fa;border-right:3px solid #333;font-size:11px;font-weight:700;left:0;padding:4px;position:-webkit-sticky;position:sticky;width:60px;z-index:5}.day-sessions{height:60px;padding:0}.sessions-grid{display:flex;height:100%}.session-slot{align-items:center;border-right:1px solid #dee2e6;display:flex;flex:1 1;flex-direction:column;justify-content:center;min-height:60px;padding:2px;position:relative}.session-slot:last-child{border-right:none}.session-code{border-radius:3px;cursor:grab;font-size:10px;font-weight:700;line-height:1.2;margin:1px;min-width:20px;padding:2px 4px;text-align:center;transition:all .2s ease;word-break:break-all}.session-code:active{cursor:grabbing}.session-slot.drag-over{background-color:#e3f2fd;border:2px dashed #1976d2}.session-code[draggable=true]:hover{box-shadow:0 2px 8px #0000004d;transform:scale(1.05)}.session-code:hover{box-shadow:0 2px 8px #0003;transform:scale(1.1);z-index:100}.session-code{border:1px solid #ccc;color:#333}.add-session-mini{background:none;border:1px dashed #ccc;border-radius:3px;color:#666;cursor:pointer;font-size:12px;padding:2px 4px;transition:all .2s ease}.add-session-mini:hover{background-color:#f0f0f0;border-color:#999;color:#333}@media (max-width:1200px){.timetable-grid{font-size:10px}.session-code{font-size:8px;padding:1px 2px}.day-header{width:150px}}@media (max-width:768px){.timetable-container{overflow-x:auto}.timetable-grid{min-width:800px}}.session-tooltip{background-color:#000000e6;border-radius:6px;box-shadow:0 4px 12px #0000004d;color:#fff;font-size:12px;max-width:250px;padding:10px;pointer-events:none}.tooltip-content div{margin-bottom:4px}.tooltip-content div:last-child{margin-bottom:0}.sessions-without-room{background-color:#fff3cd;border:1px solid #ffeaa7;border-radius:8px;margin-top:30px;padding:20px}.sessions-without-room h3{color:#856404;font-size:16px;margin:0 0 15px}.sessions-list{display:flex;flex-wrap:wrap;gap:10px}.session-without-room{border:1px solid #ccc;border-radius:6px;cursor:grab;font-size:12px;padding:8px 12px;transition:all .2s ease}.session-without-room:hover{box-shadow:0 2px 8px #0003;transform:scale(1.05)}.session-without-room:active{cursor:grabbing}.session-info{font-weight:700}.grades-page{padding:2rem}.grades-grid{grid-gap:1.5rem;display:grid;gap:1.5rem;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));margin-top:2rem}.grade-card{align-items:flex-start;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#fffffff2;border:1px solid #fff3;border-radius:16px;box-shadow:0 8px 32px #0000001a;display:flex;justify-content:space-between;padding:1.5rem;transition:transform .3s ease,box-shadow .3s ease}.grade-card:hover{box-shadow:0 12px 40px #00000026;transform:translateY(-5px)}.grade-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:.75rem}.grade-info h3{color:#2d3748;flex:1 1;font-size:1.2rem;font-weight:600;margin:0}.grade-level{background:linear-gradient(135deg,#667eea,#764ba2);border-radius:12px;color:#fff;font-size:.8rem;font-weight:600;margin-left:1rem;padding:.25rem .75rem}.grade-abbreviation{color:#4a5568;font-size:.9rem;margin:.5rem 0}.grade-abbreviation strong{color:#667eea}.grade-actions{display:flex;flex-shrink:0;gap:.5rem}@media (max-width:768px){.grades-page{padding:1rem}.grades-grid{gap:1rem;grid-template-columns:1fr}.grade-card{padding:1rem}.grade-header{align-items:flex-start;flex-direction:column;gap:.5rem}.grade-level{margin-left:0}}.courses-page{padding:2rem}.page-header{margin-bottom:1.5rem}.page-header h2{color:#2d3748}.header-actions{align-items:center;display:flex;gap:1rem}.view-toggle{background:#ffffffe6;border-radius:8px;box-shadow:0 2px 8px #0000001a;display:flex;padding:4px}.view-btn{background:#0000;border:none;border-radius:6px;color:#4a5568;cursor:pointer;font-size:.9rem;font-weight:500;padding:8px 16px;transition:all .2s ease}.view-btn:hover{background:#667eea1a;color:#667eea}.view-btn.active{background:#667eea;box-shadow:0 2px 4px #667eea4d;color:#fff}.btn-add{background:linear-gradient(135deg,#667eea,#764ba2);border-radius:8px;font-weight:600;transition:transform .2s ease}.btn-add:hover{transform:translateY(-2px)}.btn-add:disabled{opacity:.6;transform:none}.filters-container{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#fffc;border-radius:12px;box-shadow:0 4px 15px #0000000d;display:flex;flex-wrap:wrap;gap:1rem;margin-bottom:2rem;margin-top:1rem;padding:1rem}.filter-group{flex:1 1;min-width:200px}.filter-group label{color:#4a5568;font-size:.85rem}.filter-group select{background-color:#fff;border:1px solid #e2e8f0;font-size:.9rem;padding:.5rem}.courses-grid{grid-gap:1.5rem;display:grid;gap:1.5rem;grid-template-columns:repeat(auto-fill,minmax(350px,1fr));margin-top:1rem}.course-card{align-items:flex-start;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#fffffff2;border:1px solid #fff3;border-radius:16px;box-shadow:0 8px 32px #0000001a;display:flex;justify-content:space-between;padding:1.5rem;transition:transform .3s ease,box-shadow .3s ease}.course-card:hover{box-shadow:0 12px 40px #00000026;transform:translateY(-5px)}.course-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:.75rem}.course-info h3{color:#2d3748;flex:1 1;font-size:1.2rem;font-weight:600;margin:0}.course-code{background:linear-gradient(135deg,#667eea,#764ba2);border-radius:12px;color:#fff;font-size:.8rem;font-weight:600;margin-left:1rem;padding:.25rem .75rem}.course-semester{color:#667eea;font-size:.95rem;font-weight:600;margin:.5rem 0}.course-department{color:#4a5568;font-size:.9rem;margin:.4rem 0}.course-hours{background:#667eea1a;border-radius:8px;margin:.75rem 0;padding:.75rem}.hours-breakdown{display:flex;gap:1rem;margin-bottom:.5rem}.hours-breakdown span{color:#4a5568;font-size:.85rem}.total-hours{color:#667eea;font-size:.9rem;font-weight:600}.course-teachers{color:#48bb78;font-size:.85rem;line-height:1.4;margin:.5rem 0 0}.course-actions{display:flex;flex-shrink:0;gap:.5rem}.hours-group{margin-bottom:1.5rem}.hours-group label{color:#2d3748;display:block;font-weight:600;margin-bottom:.5rem}.hours-inputs{grid-gap:1rem;display:grid;gap:1rem;grid-template-columns:repeat(3,1fr)}.hour-input{display:flex;flex-direction:column}.hour-input label{color:#4a5568;font-size:.85rem;margin-bottom:.25rem}.hour-input input{border:1px solid #e2e8f0;border-radius:6px;font-size:.9rem;padding:.5rem}.loading{color:#4a5568;font-size:1.1rem;padding:3rem}.courses-table{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#fffffff2;border-radius:12px;box-shadow:0 8px 32px #0000001a;margin-top:1rem;overflow:hidden}.courses-table table{border-collapse:collapse;width:100%}.courses-table th{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;font-size:.9rem;font-weight:600;padding:12px 8px;text-align:left}.courses-table td{border-bottom:1px solid #0000000d;font-size:.9rem;padding:12px 8px}.courses-table tbody tr:hover{background:#667eea0d}.course-code-cell{background:#667eea1a;border-radius:6px;color:#667eea;font-weight:600;min-width:80px;text-align:center}.course-name-cell{color:#2d3748;font-weight:500;max-width:200px}.total-hours-cell{color:#667eea;font-weight:600}.table-actions{display:flex;gap:8px;justify-content:center}.btn-delete-table,.btn-edit-table{background:none;border:none;border-radius:4px;cursor:pointer;font-size:1rem;padding:4px 8px;transition:background .2s ease}.btn-edit-table:hover{background:#667eea1a}.btn-delete-table:hover{background:#dc35451a}.btn-delete,.btn-edit-small{background:none;border:none;border-radius:6px;cursor:pointer;font-size:1.1rem;padding:8px;transition:background .2s ease}.btn-edit-small:hover{background:#667eea1a}.btn-delete:hover{background:#dc35451a}.no-data{background:#fffc;border-radius:12px;color:#4a5568;margin-top:2rem;padding:3rem}.modal-overlay{background:#00000080}.modal-content{border-radius:12px;max-width:600px}.modal-header{border-bottom:1px solid #e2e8f0;padding:1.5rem}.modal-header h3{color:#2d3748}.modal-close{color:#4a5568;font-size:1.5rem}.modal-form{padding:1.5rem}.form-group label{color:#2d3748}.form-group input,.form-group select{border:1px solid #e2e8f0;border-radius:6px;font-size:.9rem;padding:.75rem}.form-group input:focus,.form-group select:focus{border-color:#667eea;box-shadow:0 0 0 3px #667eea1a}.modal-actions{border-top:1px solid #e2e8f0;margin-top:1.5rem;padding-top:1rem}.btn-save{background:#667eea}.btn-cancel,.btn-save{border-radius:6px;font-weight:600}.btn-cancel{background:#e2e8f0;color:#4a5568}@media (max-width:768px){.courses-page{padding:1rem}.page-header{align-items:stretch;flex-direction:column;gap:1rem}.header-actions{justify-content:space-between}.filters-container{flex-direction:column;gap:.75rem}.courses-grid{gap:1rem;grid-template-columns:1fr}.course-card{padding:1rem}.course-header{align-items:flex-start;flex-direction:column;gap:.5rem}.course-code{margin-left:0}.hours-breakdown{flex-direction:column;gap:.25rem}.hours-inputs{gap:.75rem;grid-template-columns:1fr}.courses-table{overflow-x:auto}.courses-table table{min-width:800px}.courses-table td,.courses-table th{font-size:.8rem;padding:8px 6px}}.form-hint{color:#666;font-size:12px;font-style:italic;margin-top:4px}.planning-page{padding:2rem}.planning-sections{display:flex;flex-direction:column;gap:2rem;margin-top:2rem}.planning-section{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#fffffff2;border:1px solid #fff3;border-radius:16px;box-shadow:0 8px 32px #0000001a;padding:1.5rem}.planning-section h3{color:#2d3748;font-size:1.3rem;font-weight:600;margin:0 0 1rem}.items-grid{grid-gap:1rem;display:grid;gap:1rem;grid-template-columns:repeat(auto-fill,minmax(250px,1fr))}.planning-item{align-items:center;background:#667eea1a;border:1px solid #667eea33;border-radius:12px;display:flex;justify-content:space-between;padding:1rem}.planning-item span{color:#2d3748;font-weight:500}.btn-pdf{background:linear-gradient(135deg,#e53e3e,#c53030);border:none;border-radius:8px;box-shadow:0 2px 8px #e53e3e4d;color:#fff;cursor:pointer;font-size:.9rem;font-weight:500;padding:.5rem 1rem;transition:all .3s ease}.btn-pdf:hover{box-shadow:0 4px 12px #e53e3e66;transform:translateY(-2px)}.btn-template{background:linear-gradient(135deg,#667eea,#764ba2);border:none;border-radius:12px;box-shadow:0 4px 15px #667eea4d;color:#fff;cursor:pointer;font-weight:500;padding:.75rem 1.5rem;transition:all .3s ease}.btn-template:hover{box-shadow:0 6px 20px #667eea66;transform:translateY(-2px)}.template-buttons{display:flex;gap:1rem}.btn-iset{background:linear-gradient(135deg,#48bb78,#38a169);border:none;border-radius:12px;box-shadow:0 4px 15px #48bb784d;color:#fff;cursor:pointer;font-weight:500;padding:.75rem 1.5rem;transition:all .3s ease}.btn-iset:hover{box-shadow:0 6px 20px #48bb7866;transform:translateY(-2px)}.section-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:1rem}.section-header h3{margin:0}.btn-all-pdf{background:linear-gradient(135deg,#9f7aea,#805ad5);border:none;border-radius:8px;box-shadow:0 2px 8px #9f7aea4d;color:#fff;cursor:pointer;font-size:.9rem;font-weight:500;padding:.5rem 1rem;transition:all .3s ease}.btn-all-pdf:hover{box-shadow:0 4px 12px #9f7aea66;transform:translateY(-2px)}.btn-model{background:linear-gradient(135deg,#f56565,#e53e3e);border:none;border-radius:12px;box-shadow:0 4px 15px #f565654d;color:#fff;cursor:pointer;font-weight:500;padding:.75rem 1.5rem;transition:all .3s ease}.btn-model:hover{box-shadow:0 6px 20px #f5656566;transform:translateY(-2px)}.warning-message{background:linear-gradient(135deg,#fed7d7,#feb2b2);border:1px solid #fc8181;border-radius:12px;margin:2rem 0;padding:1.5rem;text-align:center}.warning-message p{color:#742a2a;font-size:1.1rem;font-weight:500;margin:0}.template-modal{max-height:90vh;max-width:800px;overflow-y:auto}.file-input{background:#f7fafc;border:2px dashed #e2e8f0;border-radius:8px;padding:.5rem;width:100%}.file-info{color:#48bb78;display:block;font-weight:500;margin-top:.5rem}.settings-grid{grid-gap:1.5rem;display:grid;gap:1.5rem;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));margin:1.5rem 0}.settings-section h4{color:#2d3748;font-size:1rem;margin:0 0 .75rem}.position-inputs{display:flex;gap:.5rem}.position-inputs input{border:1px solid #e2e8f0;border-radius:6px;flex:1 1;padding:.5rem}.font-inputs{grid-gap:.5rem;align-items:center;display:grid;gap:.5rem;grid-template-columns:auto 1fr}.font-inputs label{color:#4a5568;font-size:.85rem}.font-inputs input{border:1px solid #e2e8f0;border-radius:4px;padding:.4rem}.btn-test{background:linear-gradient(135deg,#48bb78,#38a169);border:none;border-radius:8px;color:#fff;cursor:pointer;font-weight:500;padding:.75rem 1.5rem;transition:all .3s ease}.btn-test:hover{box-shadow:0 4px 12px #48bb784d;transform:translateY(-1px)}.no-items{color:#4a5568;font-style:italic;padding:2rem;text-align:center}@media (max-width:768px){.planning-page{padding:1rem}.items-grid{grid-template-columns:1fr}.planning-item{flex-direction:column;gap:.75rem;text-align:center}}.timetable-test-page{background:#f5f5f5;min-height:100vh;padding:20px}.timetable-test-page .test-page-header{align-items:center;background:#fff;border-radius:8px;box-shadow:0 2px 4px #0000001a;display:flex;justify-content:space-between;margin-bottom:20px;padding:15px 20px}.timetable-test-page .test-page-header h2{color:#333;margin:0}.timetable-test-page .test-legend{display:flex;gap:15px}.timetable-test-page .test-legend-item{border-radius:15px;color:#fff;font-size:12px;font-weight:700;padding:5px 12px}.timetable-test-page .test-legend-item.lecture{background:#4caf50}.timetable-test-page .test-legend-item.tutorial{background:#2196f3}.timetable-test-page .test-legend-item.practical{background:#ff9800}.timetable-test-page .test-filters-container{background:#fff;border-radius:8px;box-shadow:0 2px 4px #0000001a;display:flex;gap:15px;margin-bottom:20px;padding:15px}.timetable-test-page .test-filters-container select{border:1px solid #ddd;border-radius:4px;font-size:14px;min-width:200px;padding:8px 12px}.timetable-test-page .test-timetable-grid{background:#fff;border-radius:8px;box-shadow:0 2px 8px #0000001a;overflow:hidden}.timetable-test-page .test-grid-header{background:#2c3e50;color:#fff;display:grid;grid-template-columns:150px repeat(6,1fr)}.timetable-test-page .test-day-header,.timetable-test-page .test-time-header{border-right:1px solid #34495e;font-weight:700;padding:15px 10px;text-align:center}.timetable-test-page .test-class-row{border-bottom:1px solid #eee;display:grid;grid-template-columns:150px repeat(6,1fr)}.timetable-test-page .test-class-label{align-items:center;background:#ecf0f1;border-right:1px solid #ddd;color:#2c3e50;display:flex;font-weight:700;justify-content:center;padding:10px}.timetable-test-page .test-day-column{border-right:1px solid #eee}.timetable-test-page .test-time-cell{border-bottom:1px solid #eee;cursor:pointer;height:120px;overflow:hidden;position:relative;transition:background-color .2s}.timetable-test-page .test-time-cell:hover{background-color:#f8f9fa}.timetable-test-page .test-time-cell.selected{background-color:#e3f2fd;border:2px solid #2196f3}.timetable-test-page .test-time-label{color:#666;font-size:10px;font-weight:700;left:4px;position:absolute;top:2px}.timetable-test-page .test-sessions-container{display:flex;flex-direction:column;gap:2px;height:calc(100% - 15px);justify-content:center;padding:15px 5px 5px}.timetable-test-page .test-session-block{background:#4caf50;border-radius:4px;color:#fff;cursor:move;flex:1 1;font-size:11px;max-height:50px;min-height:45px;overflow:hidden;padding:4px 6px;position:relative;transition:transform .2s,box-shadow .2s}.timetable-test-page .test-session-block:hover{box-shadow:0 2px 8px #0003;transform:translateY(-1px)}.timetable-test-page .test-session-course{font-size:12px;font-weight:700;margin-bottom:2px}.timetable-test-page .test-session-teacher{font-size:10px;opacity:.9}.timetable-test-page .test-session-room{font-size:10px;margin-top:2px;opacity:.8}.timetable-test-page .test-session-group{background:#fff3;border-radius:2px;display:inline-block;font-size:9px;margin-top:2px;padding:1px 4px}.timetable-test-page .test-delete-btn{align-items:center;background:#f44336;border:none;border-radius:50%;color:#fff;cursor:pointer;display:flex;font-size:12px;height:18px;justify-content:center;opacity:0;position:absolute;right:2px;top:2px;transition:opacity .2s;width:18px;z-index:10}.timetable-test-page .test-session-block:hover .test-delete-btn{opacity:1}.timetable-test-page .test-add-session-btn{background:#0000;border:2px dashed #ccc;border-radius:4px;color:#999;cursor:pointer;flex:1 1;font-size:20px;min-height:50px;transition:all .2s;width:100%}.timetable-test-page .test-add-session-btn:hover{background:#f0f8ff;border-color:#2196f3;color:#2196f3}.timetable-test-page .test-no-data{background:#fff;border-radius:8px;color:#666;padding:40px;text-align:center}.timetable-test-page .test-instructions{background:#fff;border-radius:8px;box-shadow:0 2px 4px #0000001a;margin-top:20px;padding:20px}.timetable-test-page .test-instructions h3{color:#333;margin-top:0}.timetable-test-page .test-instructions ul{margin:0;padding-left:20px}.timetable-test-page .test-instructions li{color:#666;margin-bottom:8px}.timetable-test-page .test-loading{align-items:center;color:#666;display:flex;font-size:18px;height:200px;justify-content:center}.timetable-test-page .test-modal-overlay{align-items:center;background:#00000080;bottom:0;display:flex;justify-content:center;left:0;position:fixed;right:0;top:0;z-index:1000}.timetable-test-page .test-modal-content{background:#fff;border-radius:8px;box-shadow:0 4px 20px #0000004d;max-height:90vh;max-width:500px;overflow-y:auto;padding:0;width:90%}.timetable-test-page .test-modal-header{align-items:center;background:#f8f9fa;border-bottom:1px solid #eee;border-radius:8px 8px 0 0;display:flex;justify-content:space-between;padding:20px}.timetable-test-page .test-modal-header h3{color:#333;margin:0}.timetable-test-page .test-modal-close{align-items:center;background:none;border:none;border-radius:50%;color:#666;cursor:pointer;display:flex;font-size:24px;height:30px;justify-content:center;padding:0;transition:background-color .2s;width:30px}.timetable-test-page .test-modal-close:hover{background-color:#f0f0f0}.timetable-test-page .test-modal-form{padding:20px}.timetable-test-page .test-form-group{margin-bottom:15px}.timetable-test-page .test-form-group label{color:#333;display:block;font-weight:600;margin-bottom:5px}.timetable-test-page .test-form-group input,.timetable-test-page .test-form-group select{border:1px solid #ddd;border-radius:4px;box-sizing:border-box;font-size:14px;padding:8px 12px;width:100%}.timetable-test-page .test-form-group input:focus,.timetable-test-page .test-form-group select:focus{border-color:#2196f3;box-shadow:0 0 0 2px #2196f333;outline:none}.timetable-test-page .test-modal-actions{border-top:1px solid #eee;display:flex;gap:10px;justify-content:flex-end;margin-top:20px;padding-top:15px}.timetable-test-page .test-btn-cancel,.timetable-test-page .test-btn-save{border:none;border-radius:4px;cursor:pointer;font-size:14px;font-weight:600;padding:10px 20px;transition:background-color .2s}.timetable-test-page .test-btn-save{background:#4caf50;color:#fff}.timetable-test-page .test-btn-save:hover{background:#45a049}.timetable-test-page .test-btn-cancel{background:#f0f0f0;color:#333}.timetable-test-page .test-btn-cancel:hover{background:#e0e0e0}@media (max-width:1200px){.timetable-test-page .test-class-row,.timetable-test-page .test-grid-header{grid-template-columns:120px repeat(6,1fr)}.timetable-test-page .test-class-label{font-size:12px}.timetable-test-page .test-time-cell{min-height:70px}}@media (max-width:768px){.timetable-test-page{padding:10px}.timetable-test-page .test-page-header{flex-direction:column;gap:10px}.timetable-test-page .test-filters-container{flex-direction:column}.timetable-test-page .test-filters-container select{min-width:auto}.timetable-test-page .test-class-row,.timetable-test-page .test-grid-header{grid-template-columns:100px repeat(6,1fr)}.timetable-test-page .test-time-cell{min-height:60px}.timetable-test-page .test-session-block{font-size:10px;min-height:40px}}.pdf-bilan-page,.pdf-emplois-page,.pdf-enseignants-page,.pdf-form{padding:2rem}.pdf-form{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#fffffff2;border:1px solid #fff3;border-radius:20px;box-shadow:0 8px 32px #0000001a;max-width:600px}.pdf-form .form-group{margin-bottom:1.5rem}.pdf-form .form-group label{color:#2d3748;display:block;font-weight:600;margin-bottom:.5rem}.pdf-form .form-group select{background:#fffc;border:2px solid #0000001a;border-radius:12px;font-size:1rem;padding:.75rem 1rem;transition:border-color .3s ease,box-shadow .3s ease;width:100%}.pdf-form .form-group select:focus{border-color:#667eea;box-shadow:0 0 0 3px #667eea1a;outline:none}.btn-generate{background:linear-gradient(135deg,#667eea,#764ba2);border:none;border-radius:12px;box-shadow:0 4px 15px #667eea4d;color:#fff;cursor:pointer;font-size:1rem;font-weight:500;padding:.75rem 2rem;transition:all .3s ease;width:100%}.btn-generate:hover:not(:disabled){box-shadow:0 6px 20px #667eea66;transform:translateY(-2px)}.btn-generate:disabled{cursor:not-allowed;opacity:.6;transform:none}.form-info{background:#667eea1a;border-left:4px solid #667eea;border-radius:8px;margin-bottom:1.5rem;padding:1rem}.form-info p{color:#2d3748;font-size:.9rem;margin:.5rem 0}.form-info strong{color:#667eea}@media (max-width:768px){.pdf-bilan-page,.pdf-emplois-page,.pdf-enseignants-page{padding:1rem}.pdf-form{margin:0;padding:1.5rem}}.pdf-buttons{display:flex;gap:10px;margin-top:10px}.btn-print{background-color:#28a745;border:none;border-radius:4px;color:#fff;cursor:pointer;font-size:14px;padding:10px 20px}.btn-print:hover{background-color:#218838}.pdf-preview{background-color:#f9f9f9;border:1px solid #ddd;border-radius:4px;margin-top:20px;padding:20px;width:100%}.pdf-preview h3{color:#333;margin-top:0}.pdf-preview iframe{border:1px solid #ccc;height:800px;margin-top:10px;width:100%}.pdf-emplois-page{box-sizing:border-box;margin:0;padding:20px}.pdf-emplois-page,.pdf-form{max-width:none;width:100%}.page-header{width:100%}.form-row{display:flex;flex-wrap:wrap;gap:20px;margin-bottom:15px}.form-group{flex:1 1;min-width:200px}.form-group select{border:1px solid #ccc;border-radius:4px;font-size:14px;padding:8px;width:100%}.tracks-page{padding:20px}.page-header{margin-bottom:20px}.page-header h2{color:#333}.btn-add{background-color:#007bff;border:none;border-radius:4px;color:#fff;cursor:pointer;font-size:14px;padding:10px 20px}.btn-add:hover:not(:disabled){background-color:#0056b3}.btn-add:disabled{background-color:#ccc;cursor:not-allowed}.filters-container{background:#f8f9fa;border-radius:8px;margin-bottom:20px;padding:15px}.filter-group{gap:5px}.filter-group label{color:#555;font-weight:700}.filter-group select{border:1px solid #ddd;border-radius:4px;font-size:14px;padding:8px}.tracks-container{background:#fff;border-radius:8px;box-shadow:0 2px 4px #0000001a;overflow:hidden}.tracks-table{border-collapse:collapse;width:100%}.tracks-table td,.tracks-table th{border-bottom:1px solid #eee;padding:12px;text-align:left}.tracks-table th{color:#555;font-weight:700}.tracks-table th,.tracks-table tr:hover{background-color:#f8f9fa}.btn-delete,.btn-edit{align-items:center;border:none;border-radius:4px;cursor:pointer;display:inline-flex;font-size:16px;height:32px;justify-content:center;margin-right:8px;padding:8px;width:32px}.btn-edit{background-color:#28a745;color:#fff}.btn-edit:hover{background-color:#218838}.btn-delete{background-color:#dc3545}.btn-delete:hover{background-color:#c82333}.no-data{color:#666;padding:40px;text-align:center}.loading{font-size:18px}.modal-content{background:#fff;border-radius:8px;max-height:90vh;max-width:500px;overflow-y:auto;width:90%}.modal-close{background:none;border:none;color:#666;cursor:pointer;font-size:24px}.modal-close:hover{color:#333}.modal-form{padding:20px}.form-group{margin-bottom:15px}.form-group label{color:#555;font-weight:700;margin-bottom:5px}.form-group input{border:1px solid #ddd;border-radius:4px;font-size:14px;padding:10px}.form-group input:focus{border-color:#007bff;box-shadow:0 0 0 2px #007bff40}.modal-actions{gap:10px;margin-top:20px}.btn-save{background-color:#007bff;border:none;border-radius:4px;color:#fff;cursor:pointer;padding:10px 20px}.btn-save:hover{background-color:#0056b3}.btn-cancel{background-color:#6c757d;border:none;border-radius:4px;color:#fff;cursor:pointer;padding:10px 20px}.btn-cancel:hover{background-color:#545b62}.login-container{align-items:center;background:linear-gradient(135deg,#667eea,#764ba2);display:flex;justify-content:center;min-height:100vh;padding:20px}.login-card{background:#fff;border-radius:12px;box-shadow:0 10px 30px #0003;max-width:400px;padding:40px;width:100%}.login-header{margin-bottom:30px;text-align:center}.login-header h2{color:#333;font-size:28px;margin:0 0 10px}.login-header p{color:#666;font-size:14px;margin:0}.login-form{display:flex;flex-direction:column}.form-group{margin-bottom:20px}.form-group label{font-size:14px;margin-bottom:8px}.form-group input{border:2px solid #e1e5e9;border-radius:8px;box-sizing:border-box;font-size:16px;padding:12px 16px;transition:border-color .3s;width:100%}.form-group input:focus{border-color:#667eea;box-shadow:0 0 0 3px #667eea1a;outline:none}.login-btn{background:linear-gradient(135deg,#667eea,#764ba2);border:none;border-radius:8px;color:#fff;cursor:pointer;font-size:16px;font-weight:600;margin-top:10px;padding:14px 20px;transition:transform .2s,box-shadow .2s}.login-btn:hover:not(:disabled){box-shadow:0 5px 15px #667eea66;transform:translateY(-2px)}.login-btn:disabled{cursor:not-allowed;opacity:.7}.error-message{background:#fee;border:1px solid #fcc;border-radius:6px;color:#c33;font-size:14px;text-align:center}@media (max-width:480px){.login-card{padding:30px 20px}.login-header h2{font-size:24px}}.users-container{padding:20px}.users-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:20px}.users-header h2{color:#333;margin:0}.users-table{background:#fff;border-radius:8px;box-shadow:0 2px 4px #0000001a;overflow:hidden}.users-table table{border-collapse:collapse;width:100%}.users-table td,.users-table th{border-bottom:1px solid #eee;padding:12px;text-align:left}.users-table th{background-color:#f8f9fa;color:#555;font-weight:600}.role-badge{border-radius:12px;font-size:12px;font-weight:500;padding:4px 8px}.role-badge.admin{background-color:#e3f2fd;color:#1976d2}.role-badge.director{background-color:#f3e5f5;color:#7b1fa2}.status-badge{border-radius:12px;font-size:12px;font-weight:500;padding:4px 8px}.status-badge.active{background-color:#e8f5e8;color:#2e7d32}.status-badge.inactive{background-color:#ffebee;color:#c62828}.btn{border-radius:4px;font-size:14px;margin-right:8px;padding:8px 16px;transition:background-color .2s}.btn-primary{background-color:#007bff}.btn-primary:hover{background-color:#0056b3}.btn-secondary{background-color:#6c757d;color:#fff}.btn-secondary:hover{background-color:#545b62}.btn-danger{background-color:#dc3545;color:#fff}.btn-danger:hover{background-color:#c82333}.btn-sm{font-size:12px;padding:4px 8px}.modal-overlay{align-items:center;background-color:#00000080;bottom:0;display:flex;justify-content:center;left:0;position:fixed;right:0;top:0;z-index:1000}.modal{background:#fff;border-radius:8px;max-height:90vh;max-width:500px;overflow-y:auto;padding:0;width:90%}.modal-header{align-items:center;border-bottom:1px solid #eee;display:flex;justify-content:space-between;padding:20px}.modal-header h3{color:#333;margin:0}.close-btn{background:none;border:none;color:#999;cursor:pointer;font-size:24px}.close-btn:hover{color:#333}.modal form{padding:20px}.form-group{margin-bottom:16px}.form-group label{font-weight:500;margin-bottom:4px}.form-group input,.form-group select{border:1px solid #ddd;border-radius:4px;font-size:14px;padding:8px 12px;width:100%}.form-group input:focus,.form-group select:focus{border-color:#007bff;box-shadow:0 0 0 2px #007bff40;outline:none}.form-group input[type=checkbox]{margin-right:8px;width:auto}.form-actions{border-top:1px solid #eee;display:flex;gap:10px;justify-content:flex-end;margin-top:20px;padding-top:20px}.error-message{background-color:#f8d7da;border:1px solid #f5c6cb;border-radius:4px;color:#721c24;margin-bottom:20px;padding:12px}.loading{color:#666;padding:40px;text-align:center}.messages-page{padding:2rem}.page-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:2rem}.page-header h2{color:#fff;font-size:2rem;font-weight:600;margin:0}.messages-stats{display:flex;gap:1rem}.stat{background:#ffffffe6;border-radius:8px;color:#333;font-weight:600;padding:.5rem 1rem}.stat.unread{background:#e74c3c;color:#fff}.messages-filters{display:flex;gap:.5rem;margin-bottom:2rem}.messages-filters button{background:#ffffffe6;border:none;border-radius:8px;cursor:pointer;font-weight:500;padding:.75rem 1.5rem;transition:all .3s ease}.messages-filters button:hover{background:#fff;transform:translateY(-2px)}.messages-filters button.active{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff}.messages-list{display:flex;flex-direction:column;gap:1rem}.message-card{background:#fffffff2;border-left:4px solid #0000;border-radius:12px;cursor:pointer;padding:1.5rem;transition:all .3s ease}.message-card:hover{box-shadow:0 8px 25px #00000026;transform:translateY(-2px)}.message-card.unread{background:#fff;border-left-color:#e74c3c;box-shadow:0 4px 15px #e74c3c33}.message-header{align-items:flex-start;display:flex;justify-content:space-between;margin-bottom:1rem}.message-info h3{color:#333;font-size:1.1rem;margin:0 0 .25rem}.message-email{color:#667eea;font-size:.9rem;font-weight:500}.message-meta{align-items:flex-end;display:flex;flex-direction:column;gap:.5rem}.message-status{border-radius:12px;color:#fff;font-size:.8rem;font-weight:600;padding:.25rem .75rem}.message-date{color:#666;font-size:.85rem}.message-subject{color:#333;font-size:.9rem;margin-bottom:.5rem}.message-preview{color:#666;font-size:.9rem;line-height:1.4}.no-messages{color:#fff;font-size:1.1rem;padding:3rem;text-align:center}.message-modal{max-height:80vh;max-width:600px;overflow-y:auto}.message-details{margin-bottom:1.5rem}.detail-row{align-items:center;border-bottom:1px solid #eee;display:flex;gap:1rem;margin-bottom:.75rem;padding:.5rem 0}.detail-row strong{color:#333;min-width:80px}.status-select{border:1px solid #ddd;border-radius:4px;font-size:.9rem;padding:.25rem .5rem}.message-content{background:#f8f9fa;border-radius:8px;margin-bottom:1.5rem;padding:1.5rem}.message-content h4{color:#333;margin:0 0 1rem}.message-content p{color:#555;line-height:1.6;margin:0;white-space:pre-wrap}.modal-actions{display:flex;gap:1rem;justify-content:flex-end}.btn-delete{background:#e74c3c;border:none;border-radius:8px;color:#fff;cursor:pointer;font-weight:500;padding:.75rem 1.5rem;transition:all .3s ease}.btn-delete:hover{background:#c0392b;transform:translateY(-2px)}.btn-close{background:#95a5a6;border:none;border-radius:8px;color:#fff;cursor:pointer;font-weight:500;padding:.75rem 1.5rem;transition:all .3s ease}.btn-close:hover{background:#7f8c8d;transform:translateY(-2px)}@media (max-width:768px){.messages-page{padding:1rem}.page-header{align-items:flex-start;flex-direction:column;gap:1rem}.messages-filters{flex-wrap:wrap}.message-header{flex-direction:column;gap:.5rem}.message-meta{align-items:center;flex-direction:row}.modal-actions{flex-direction:column}}.homepage{font-family:Segoe UI,Tahoma,Geneva,Verdana,sans-serif;min-height:100vh}.homepage-header{background:linear-gradient(135deg,#667eea,#764ba2);box-shadow:0 2px 10px #0000001a;color:#fff;padding:1rem 0}.homepage-header .container{align-items:center;display:flex;justify-content:space-between;margin:0 auto;max-width:1200px;padding:0 2rem}.logo h1{font-size:2rem;font-weight:700;margin:0}.logo span{font-size:.9rem;opacity:.9}.homepage-nav{display:flex;gap:2rem}.nav-link{background:none;border:none;border-radius:5px;color:#fff;cursor:pointer;font-family:inherit;font-size:inherit;font-weight:500;padding:.5rem 1rem;text-decoration:none;transition:all .3s ease}.nav-link:hover{background-color:#fff3;transform:translateY(-2px)}.admin-link{background-color:#ffffff1a;border:1px solid #ffffff4d}.hero{background:linear-gradient(135deg,#f5f7fa,#c3cfe2);padding:4rem 0}.hero .container{grid-gap:4rem;align-items:center;display:grid;gap:4rem;grid-template-columns:1fr 1fr;margin:0 auto;max-width:1200px;padding:0 2rem}.hero-content h2{color:#333;font-size:3rem;line-height:1.2;margin-bottom:1rem}.hero-content p{color:#666;font-size:1.2rem;line-height:1.6;margin-bottom:2rem}.hero-buttons{display:flex;gap:1rem}.btn{border:none;border-radius:8px;cursor:pointer;font-family:inherit;font-size:inherit;font-weight:600;padding:1rem 2rem;text-decoration:none;transition:all .3s ease}.btn-primary{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff}.btn-primary:hover{box-shadow:0 5px 15px #667eea66;transform:translateY(-2px)}.btn-secondary{background:#fff;border:2px solid #667eea;color:#667eea}.btn-secondary:hover{background:#667eea;color:#fff}.screenshot-placeholder{background:#fff;border-radius:10px;box-shadow:0 10px 30px #0000001a;overflow:hidden}.mock-schedule{padding:1rem}.mock-header{background:#667eea;color:#fff;font-weight:700;margin:-1rem -1rem 1rem;padding:1rem;text-align:center}.mock-grid{grid-gap:.5rem;display:grid;gap:.5rem;grid-template-columns:repeat(3,1fr)}.mock-cell{border-radius:5px;font-size:.9rem;padding:1rem;text-align:center}.mock-cell:nth-child(-n+3){background:#f8f9fa;color:#333;font-weight:700}.mock-cell.course{background:linear-gradient(135deg,#84fab0,#8fd3f4);color:#333;font-weight:500}.features{background:#fff;padding:4rem 0}.features .container{margin:0 auto;max-width:1200px;padding:0 2rem}.features h3{color:#333;font-size:2.5rem;margin-bottom:3rem;text-align:center}.features-grid{grid-gap:2rem;display:grid;gap:2rem;grid-template-columns:repeat(auto-fit,minmax(300px,1fr))}.feature-card{background:#fff;border-radius:10px;box-shadow:0 5px 15px #0000001a;padding:2rem;text-align:center;transition:transform .3s ease}.feature-card:hover{transform:translateY(-5px)}.feature-icon{font-size:3rem;margin-bottom:1rem}.feature-card h4{color:#333;font-size:1.3rem;margin-bottom:1rem}.feature-card p{color:#666;line-height:1.6}.benefits{background:#f8f9fa;padding:4rem 0}.benefits .container{margin:0 auto;max-width:1200px;padding:0 2rem}.benefits h3{color:#333;font-size:2.5rem;margin-bottom:3rem;text-align:center}.benefits-list{grid-gap:1.5rem;display:grid;gap:1.5rem;margin:0 auto;max-width:800px}.benefit-item{align-items:flex-start;background:#fff;border-radius:10px;box-shadow:0 2px 10px #0000000d;display:flex;gap:1rem;padding:1.5rem}.benefit-icon{color:#28a745;flex-shrink:0;font-size:1.5rem}.benefit-item h4{color:#333;margin:0 0 .5rem}.benefit-item p{color:#666;line-height:1.5;margin:0}.homepage-footer{background:#333;color:#fff;padding:3rem 0 1rem}.homepage-footer .container{margin:0 auto;max-width:1200px;padding:0 2rem}.footer-content{grid-gap:2rem;display:grid;gap:2rem;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));margin-bottom:2rem}.footer-section h4{color:#667eea;margin-bottom:1rem}.footer-link,.footer-section a{background:none;border:none;color:#ccc;cursor:pointer;display:block;font-family:inherit;font-size:inherit;margin-bottom:.5rem;padding:0;text-align:left;text-decoration:none;transition:color .3s ease}.footer-link:hover,.footer-section a:hover{color:#667eea}.footer-bottom{border-top:1px solid #555;color:#999;padding-top:1rem;text-align:center}@media (max-width:768px){.homepage-header .container{flex-direction:column;gap:1rem}.homepage-nav{gap:1rem}.hero .container{gap:2rem;grid-template-columns:1fr;text-align:center}.hero-content h2{font-size:2rem}.hero-buttons{justify-content:center}.benefits h3,.features h3{font-size:2rem}}.student-space{background:linear-gradient(135deg,#f5f7fa,#c3cfe2);min-height:100vh;padding:0}.student-nav{align-items:center;background:linear-gradient(135deg,#667eea,#764ba2);box-shadow:0 2px 10px #0000001a;display:flex;justify-content:space-between;padding:1rem 2rem}.student-header{color:#333;margin:2rem 0 3rem;padding:0 2rem;text-align:center}.student-header h1{-webkit-text-fill-color:#0000;background:linear-gradient(135deg,#667eea,#764ba2);-webkit-background-clip:text;background-clip:text;font-size:2.5rem;margin-bottom:.5rem}.student-header p{color:#666;font-size:1.1rem}.filters-section{background:#fff;border-radius:15px;box-shadow:0 5px 20px #0000001a;margin:0 2rem 2rem;padding:2rem}.filters-container{grid-gap:1.5rem;display:grid;gap:1.5rem;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));margin:0 auto;max-width:1200px}.filter-group{display:flex;flex-direction:column}.filter-group label{color:#333;font-weight:600;margin-bottom:.5rem}.filter-group select{background:#fff;border:2px solid #e1e5e9;border-radius:8px;font-size:1rem;padding:.75rem;transition:all .3s ease}.filter-group select:focus{border-color:#667eea;box-shadow:0 0 0 3px #667eea1a;outline:none}.loading-container{color:#666;padding:3rem;text-align:center}.loading-spinner{animation:spin 1s linear infinite;border:4px solid #f3f3f3;border-radius:50%;border-top-color:#667eea;height:40px;margin:0 auto 1rem;width:40px}@keyframes spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}.schedule-section{margin:0 2rem}.schedule-header{align-items:center;background:#fff;border-radius:15px 15px 0 0;box-shadow:0 2px 10px #0000001a;display:flex;justify-content:space-between;padding:1.5rem 2rem}.schedule-header h2{color:#333;font-size:1.8rem;margin:0}.schedule-info{align-items:center;color:#666;display:flex;font-size:.9rem;gap:.5rem}.timetable-container{background:#fff;border-radius:0 0 15px 15px;box-shadow:0 5px 20px #0000001a;overflow:hidden}.student-timetable{border-collapse:collapse;font-size:.9rem;width:100%}.student-timetable td,.student-timetable th{border:1px solid #e1e5e9;text-align:center;vertical-align:top}.day-header,.time-header{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;font-weight:600;padding:1rem;top:0;z-index:10}.day-header,.time-header{position:-webkit-sticky;position:sticky}.time-header{left:0;width:120px;z-index:11}.day-header{width:180px}.time-cell{background:#f8f9fa;border-right:2px solid #dee2e6;left:0;padding:1rem .5rem;position:-webkit-sticky;position:sticky;z-index:5}.time-slot-info{align-items:center;display:flex;flex-direction:column}.slot-number{color:#667eea;font-size:1.2rem;font-weight:700;margin-bottom:.25rem}.slot-time{color:#666;font-size:.8rem}.schedule-cell{height:80px;padding:.5rem;position:relative}.session-card{background:#f8f9fa;border-left:4px solid #667eea;border-radius:8px;cursor:pointer;height:-webkit-fit-content;height:fit-content;margin-bottom:.25rem;padding:.5rem;transition:all .3s ease}.session-card:hover{box-shadow:0 4px 12px #00000026;transform:translateY(-2px)}.session-course{color:#333;font-size:.85rem;font-weight:700;margin-bottom:.25rem}.session-teacher{color:#666;font-size:.75rem;margin-bottom:.25rem}.session-room{color:#888;font-size:.7rem;font-style:italic}.session-group{background:#667eea1a;border-radius:3px;color:#667eea;display:inline-block;font-size:.7rem;margin-top:.25rem;padding:.1rem .3rem}.no-selection{color:#666;padding:4rem 2rem;text-align:center}.no-selection-icon{font-size:4rem;margin-bottom:1rem}.no-selection h3{color:#333;font-size:1.5rem;margin-bottom:.5rem}.no-selection p{font-size:1rem;line-height:1.6;margin:0 auto;max-width:500px}@media (max-width:1200px){.student-timetable{font-size:.8rem}.day-header{width:150px}.schedule-cell{height:70px}}@media (max-width:768px){.student-space{padding:1rem 0}.filters-section,.schedule-section{margin:0 1rem}.filters-container{gap:1rem;grid-template-columns:1fr}.schedule-header{flex-direction:column;gap:1rem;text-align:center}.timetable-container{overflow-x:auto}.student-timetable{font-size:.75rem;min-width:800px}.time-header{width:100px}.day-header{width:120px}.schedule-cell{height:60px}.session-card{padding:.3rem}.student-header h1{font-size:2rem}}.contact-page{background:linear-gradient(135deg,#f5f7fa,#c3cfe2);min-height:100vh;padding:0}.contact-nav{align-items:center;background:linear-gradient(135deg,#667eea,#764ba2);box-shadow:0 2px 10px #0000001a;display:flex;justify-content:space-between;padding:1rem 2rem}.back-home-btn{background:#fff3;border:none;border-radius:5px;color:#fff;cursor:pointer;font-weight:500;padding:.5rem 1rem;transition:all .3s ease}.back-home-btn:hover{background:#ffffff4d;transform:translateX(-2px)}.nav-links{display:flex;gap:1rem}.nav-btn{background:none;border:1px solid #ffffff4d;border-radius:5px;color:#fff;cursor:pointer;font-weight:500;padding:.5rem 1rem;transition:all .3s ease}.nav-btn:hover{background:#fff3}.contact-header{color:#333;margin:2rem 0 3rem;padding:0 2rem;text-align:center}.contact-header h1{-webkit-text-fill-color:#0000;background:linear-gradient(135deg,#667eea,#764ba2);-webkit-background-clip:text;background-clip:text;font-size:2.5rem;margin-bottom:.5rem}.contact-header p{color:#666;font-size:1.1rem}.contact-container{grid-gap:3rem;display:grid;gap:3rem;grid-template-columns:1fr 2fr;margin:0 auto 4rem;max-width:1200px;padding:0 2rem}.contact-info{display:flex;flex-direction:column;gap:1.5rem}.info-card{background:#fff;border-radius:15px;box-shadow:0 5px 15px #0000001a;padding:1.5rem;text-align:center;transition:transform .3s ease}.info-card:hover{transform:translateY(-5px)}.info-icon{font-size:2.5rem;margin-bottom:1rem}.info-card h3{color:#333;font-size:1.2rem;margin-bottom:.5rem}.info-card p{color:#666;line-height:1.5;margin:.25rem 0}.contact-form-section{background:#fff;border-radius:15px;box-shadow:0 5px 20px #0000001a;padding:2rem}.contact-form h2{color:#333;margin-bottom:1.5rem;text-align:center}.form-row{grid-gap:1rem;display:grid;gap:1rem;grid-template-columns:1fr 1fr}.form-group,.form-row{margin-bottom:1rem}.form-group label{color:#333;display:block;font-weight:600;margin-bottom:.5rem}.form-group input,.form-group select,.form-group textarea{border:2px solid #e1e5e9;border-radius:8px;font-family:inherit;font-size:1rem;padding:.75rem;transition:all .3s ease;width:100%}.form-group input:focus,.form-group select:focus,.form-group textarea:focus{border-color:#667eea;box-shadow:0 0 0 3px #667eea1a;outline:none}.form-group textarea{min-height:120px;resize:vertical}.submit-btn{background:linear-gradient(135deg,#667eea,#764ba2);border:none;border-radius:8px;color:#fff;cursor:pointer;font-size:1.1rem;font-weight:600;padding:1rem 2rem;transition:all .3s ease;width:100%}.submit-btn:hover{box-shadow:0 5px 15px #667eea66;transform:translateY(-2px)}.success-message{padding:3rem 2rem;text-align:center}.success-icon{font-size:4rem;margin-bottom:1rem}.success-message h2{color:#28a745;margin-bottom:1rem}.success-message p{color:#666;font-size:1.1rem}.faq-section{margin:0 auto;max-width:1200px;padding:0 2rem}.faq-section h2{color:#333;font-size:2rem;margin-bottom:2rem;text-align:center}.faq-grid{grid-gap:1.5rem;display:grid;gap:1.5rem;grid-template-columns:repeat(auto-fit,minmax(300px,1fr))}.faq-item{background:#fff;border-radius:15px;box-shadow:0 5px 15px #0000001a;padding:1.5rem;transition:transform .3s ease}.faq-item:hover{transform:translateY(-3px)}.faq-item h3{color:#667eea;font-size:1.1rem;margin-bottom:1rem}.faq-item p{color:#666;line-height:1.6;margin:0}@media (max-width:768px){.contact-page{padding:1rem 0}.contact-container{gap:2rem;padding:0 1rem}.contact-container,.form-row{grid-template-columns:1fr}.contact-form-section{padding:1.5rem}.contact-header h1{font-size:2rem}.faq-section{padding:0 1rem}.faq-grid{grid-template-columns:1fr}}@media (max-width:480px){.contact-header h1{font-size:1.8rem}.contact-form-section,.faq-item,.info-card{padding:1rem}.info-icon{font-size:2rem}.success-icon{font-size:3rem}}.notification{align-items:center;background:#fff;border-left:4px solid;border-radius:8px;box-shadow:0 4px 12px #00000026;display:flex;gap:10px;max-width:500px;min-width:300px;padding:12px 16px;position:fixed;right:20px;top:20px;transition:all .3s ease;z-index:1000}.notification.show{opacity:1;transform:translateX(0)}.notification.hide{opacity:0;transform:translateX(100%)}.notification.success{background:#f0fdf4;border-left-color:#10b981}.notification.error{background:#fef2f2;border-left-color:#ef4444}.notification.warning{background:#fffbeb;border-left-color:#f59e0b}.notification.info{background:#eff6ff;border-left-color:#3b82f6}.notification-icon{flex-shrink:0;font-size:18px}.notification-message{color:#374151;flex:1 1;font-weight:500}.notification-close{align-items:center;background:none;border:none;border-radius:50%;color:#6b7280;cursor:pointer;display:flex;font-size:18px;height:20px;justify-content:center;padding:0;transition:background-color .2s;width:20px}.notification-close:hover{background-color:#0000001a}