@charset "UTF-8";.landing{min-height:100vh;color:#036;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;position:relative;overflow:hidden}.landing-carousel{position:absolute;top:0;left:0;width:100%;height:100%;z-index:0}.carousel-image{position:absolute;top:0;left:0;width:100%;height:100%;background-size:cover;background-position:center;opacity:0;transition:opacity .5s ease-in-out}.carousel-image.active{opacity:.3}.landing-content{position:relative;z-index:1;background-color:#ffffffd9;padding:3rem 2rem;border-radius:15px;margin:2rem;max-width:900px;box-shadow:0 5px 15px #0000001a;transform:translateY(50px);opacity:0;transition:all .8s ease-out}.landing-content.visible{transform:translateY(0);opacity:1}.landing-logo{width:200px;height:auto;margin-bottom:1.5rem}.landing-title{font-size:2.5rem;font-weight:800;margin-bottom:1.5rem;color:#036}.landing-description{font-size:1.2rem;max-width:700px;margin:0 auto 2.5rem;color:#036;line-height:1.6}.stats-container{display:flex;flex-wrap:wrap;justify-content:center;gap:2rem;margin:2rem 0 3rem}.stat-item{background:#ffffffe6;padding:1.5rem 1rem;border-radius:10px;min-width:120px;box-shadow:0 3px 10px #00000014}.stat-number{font-size:2rem;font-weight:700;color:#06c;margin-bottom:.5rem}.stat-label{font-size:.9rem;color:#036}.landing-buttons{display:flex;gap:1.5rem;flex-wrap:wrap;justify-content:center}.landing-button{padding:.9rem 2.5rem;font-size:1.1rem;border-radius:8px;cursor:pointer;border:none;transition:all .3s ease;text-decoration:none;font-weight:600}.signup{background-color:#06c;color:#fff}.signup:hover{background-color:#0052a3;transform:translateY(-2px)}.login{background-color:#fff;color:#06c;border:2px solid #0066cc}.login:hover{background-color:#e6f0ff;transform:translateY(-2px)}@media (max-width: 768px){.landing-content{padding:2rem 1rem;margin:1rem}.landing-title{font-size:2rem}.landing-description{font-size:1rem}.stats-container{gap:1rem}.stat-item{padding:1rem .5rem;min-width:100px}.stat-number{font-size:1.5rem}.stat-label{font-size:.8rem}}.signup-page{min-height:100vh;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#f5f7fa,#e4f0ff);padding:2rem 1rem}.signup-card{background:#fff;border:1px solid #d6e4ff;padding:2.5rem;border-radius:12px;box-shadow:0 6px 18px #0052cc14;width:100%;max-width:800px}.signup-title{font-size:1.8rem;margin-bottom:.5rem;color:#036;text-align:center;font-weight:600}.signup-subtitle{font-size:1.1rem;color:#4d6b99;text-align:center;margin-bottom:2rem}.role-options{display:flex;gap:1rem;margin-bottom:2rem;justify-content:center}.role-option{padding:1rem 1.5rem;border:2px solid #c2d6ff;border-radius:8px;cursor:pointer;text-align:center;transition:all .2s ease;background:#f8fbff;font-weight:500;min-width:120px}.role-option:hover{background:#e6f0ff}.role-option.selected{background:#06c;color:#fff;border-color:#06c}.signup-form{display:flex;flex-direction:column;gap:1.5rem}.form-row{display:grid;grid-template-columns:1fr;gap:1.5rem}@media (min-width: 768px){.form-row{grid-template-columns:1fr 1fr}}.signup-form-group{margin-bottom:0}.signup-label{display:block;margin-bottom:.5rem;color:#334d6e;font-weight:500;font-size:.95rem}.address-label{font-size:.9rem}.required-field:after{content:" *";color:#e63946}.signup-input{width:100%;padding:.8rem 1rem;border:1px solid #b3c7e6;border-radius:8px;font-size:.95rem;background:#f8fbff;box-sizing:border-box}.signup-input:focus{outline:none;border-color:#06c;box-shadow:0 0 0 3px #0066cc1a}.signup-input::-moz-placeholder{color:#a3b8cc;font-size:.9rem;opacity:1;-moz-transition:opacity .2s ease;transition:opacity .2s ease}.signup-input::placeholder{color:#a3b8cc;font-size:.9rem;opacity:1;transition:opacity .2s ease}.signup-input:focus::-moz-placeholder{opacity:.5}.signup-input:focus::placeholder{opacity:.5}.address-grid{display:grid;grid-template-columns:1fr;gap:1.5rem;margin-top:.5rem}@media (min-width: 576px){.address-grid{grid-template-columns:1fr 1fr}}@media (min-width: 768px){.address-grid{grid-template-columns:1fr 1fr 1fr}}.role-requirements{background:#f0f7ff;padding:1.2rem;border-radius:8px;margin-top:1rem;font-size:.9rem;color:#334d6e;border-left:4px solid #0066cc}.requirement-title{font-weight:600;margin-bottom:.5rem;color:#036}.requirement-list{padding-left:1.2rem;margin:0}.requirement-list li{margin-bottom:.3rem;line-height:1.4}.signup-button{width:100%;padding:1rem;background-color:#06c;color:#fff;border:none;border-radius:8px;font-size:1rem;font-weight:500;cursor:pointer;transition:background-color .2s;margin-top:1rem}.signup-button:hover{background-color:#0052a3}.signup-button:disabled{background-color:#a3b8cc;cursor:not-allowed}.login-link{text-align:center;margin-top:1.5rem;color:#4d6b99;font-size:.95rem}.login-link a{color:#06c;font-weight:500;text-decoration:none}.login-link a:hover{text-decoration:underline}:root{--primary-color: #4361ee;--primary-light: #e0e7ff;--secondary-color: #3f37c9;--success-color: #10b981;--success-light: #d1fae5;--warning-color: #f59e0b;--warning-light: #fef3c7;--danger-color: #ef4444;--danger-light: #fee2e2;--info-color: #3b82f6;--info-light: #dbeafe;--dark-color: #1e293b;--light-color: #f8fafc;--gray-color: #64748b;--gray-light: #e2e8f0;--border-radius: .5rem;--box-shadow: 0 4px 6px -1px rgba(0, 0, 0, .1), 0 2px 4px -1px rgba(0, 0, 0, .06);--transition: all .3s ease}.dark-mode{--primary-color: #60a5fa;--primary-light: #1e3a8a;--secondary-color: #818cf8;--success-color: #34d399;--success-light: #065f46;--warning-color: #fbbf24;--warning-light: #92400e;--danger-color: #f87171;--danger-light: #991b1b;--info-color: #60a5fa;--info-light: #1e40af;--dark-color: #f8fafc;--light-color: #1e293b;--gray-color: #94a3b8;--gray-light: #334155}*{margin:0;padding:0;box-sizing:border-box}body{font-family:Segoe UI,Tahoma,Geneva,Verdana,sans-serif;line-height:1.6;color:var(--dark-color);background-color:var(--light-color);transition:var(--transition)}.dashboard{min-height:100vh;display:flex;flex-direction:column}h1,h2,h3,h4,h5,h6{margin-bottom:1rem;color:var(--dark-color);font-weight:600}p{margin-bottom:1rem;color:var(--gray-color)}a{text-decoration:none;color:var(--primary-color)}.text-right{text-align:right}.text-muted{color:var(--gray-color)}.gap-2{gap:.5rem}.gap-4{gap:1rem}.mb-2{margin-bottom:.5rem}.mb-4{margin-bottom:1rem}.mb-6{margin-bottom:1.5rem}.mt-4{margin-top:1rem}.p-4{padding:1rem}.p-6{padding:1.5rem}.rounded{border-radius:var(--border-radius)}.shadow{box-shadow:var(--box-shadow)}.top-navbar{display:flex;justify-content:space-between;align-items:center;padding:1rem 2rem;background-color:var(--light-color);box-shadow:0 2px 4px #0000001a;position:sticky;top:0;z-index:1000}.nav-logo{height:80px;width:120px}.student-selector{padding:.5rem 1rem;border-radius:var(--border-radius);border:1px solid var(--gray-light);background-color:var(--light-color);color:var(--dark-color);font-size:1rem;cursor:pointer;transition:var(--transition)}.student-selector:focus{outline:none;border-color:var(--primary-color);box-shadow:0 0 0 2px var(--primary-light)}.nav-right{display:flex;align-items:center;gap:1.5rem;position:relative}.notification-btn,.nav-link{background:none;border:none;color:var(--dark-color);font-size:1.25rem;cursor:pointer;position:relative;padding:.5rem;border-radius:50%;transition:var(--transition)}.notification-btn:hover,.nav-link:hover{background-color:var(--gray-light)}.notification-indicator{position:absolute;top:0;right:0;width:10px;height:10px;background-color:var(--danger-color);border-radius:50%;border:2px solid var(--light-color)}.settings-dropdown,.notifications-dropdown{position:absolute;top:100%;right:0;background-color:var(--light-color);border-radius:var(--border-radius);box-shadow:var(--box-shadow);width:280px;z-index:100;padding:.5rem 0;transform-origin:top right;animation:fadeIn .2s ease-out}@keyframes fadeIn{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}.dropdown-item{display:flex;align-items:center;gap:.75rem;padding:.75rem 1.5rem;width:100%;text-align:left;background:none;border:none;color:var(--dark-color);cursor:pointer;transition:var(--transition)}.dropdown-item:hover{background-color:var(--gray-light)}.dropdown-item.logout:hover{background-color:var(--danger-light)}.dropdown-item .icon{font-size:1.1rem}.notifications-dropdown{width:350px;max-height:500px;overflow-y:auto}.notifications-header{display:flex;justify-content:space-between;align-items:center;padding:1rem;border-bottom:1px solid var(--gray-light)}.notifications-header h4{margin:0}.mark-all-read{background:none;border:none;color:var(--primary-color);font-size:.875rem;cursor:pointer;transition:var(--transition)}.notifications-dropdown li{padding:1rem;border-bottom:1px solid var(--gray-light);cursor:pointer;transition:var(--transition)}.notifications-dropdown li:hover{background-color:var(--gray-light)}.notifications-dropdown li.unread{background-color:var(--info-light)}.notifications-dropdown li .unread-dot{display:inline-block;width:8px;height:8px;background-color:var(--info-color);border-radius:50%;margin-left:.5rem}.notifications-dropdown time{font-size:.75rem;color:var(--gray-color);display:block;margin-top:.25rem}.no-notifications{padding:2rem 1rem;text-align:center;color:var(--gray-color)}.notification-badge{background-color:var(--danger-color);color:#fff;border-radius:50%;width:20px;height:20px;display:inline-flex;align-items:center;justify-content:center;font-size:.75rem;margin-left:auto}.main-content{flex:1;padding:2rem}.student-header{display:flex;gap:2rem;margin-bottom:2rem;flex-wrap:wrap}.student-photo-container{position:relative;flex-shrink:0}.student-photo{width:120px;height:120px;border-radius:50%;-o-object-fit:cover;object-fit:cover;border:4px solid var(--primary-light)}.{position:absolute;bottom:0;right:0;background-color:var(--light-color);padding:.25rem .5rem;border-radius:1rem;font-size:.75rem;font-weight:600;display:flex;align-items:center;gap:.25rem;box-shadow:var(--box-shadow)}.status-badge.confirmed{color:var(--success-color);background-color:var(--success-light)}.status-badge.pending{color:var(--warning-color);background-color:var(--warning-light)}.student-info{flex:1;min-width:250px}.student-info h2{font-size:1.75rem;margin-bottom:.5rem}.student-meta{display:flex;gap:1.5rem;margin-bottom:.75rem;color:var(--gray-color)}.student-meta span{display:flex;align-items:center;gap:.25rem}.student-meta strong{font-weight:600;color:var(--dark-color)}.last-updated{display:flex;align-items:center;gap:.5rem;font-size:.875rem;color:var(--gray-color);margin-bottom:.75rem}.status{display:inline-flex;align-items:center;gap:.25rem;padding:.25rem .75rem;border-radius:1rem;font-size:.875rem;font-weight:500}.status.confirmed{background-color:var(--success-light);color:var(--success-color)}.status.pending{background-color:var(--warning-light);color:var(--warning-color)}.attendance-stats{display:flex;gap:1rem;flex-wrap:wrap}.stat-card{flex:1;min-width:150px;background-color:var(--light-color);border-radius:var(--border-radius);padding:1rem;box-shadow:var(--box-shadow);text-align:center}.stat-card h4{font-size:.875rem;color:var(--gray-color);margin-bottom:.5rem}.stat-value{font-size:1.75rem;font-weight:700;margin-bottom:.25rem}.stat-value.late{color:var(--warning-color)}.stat-value.percentage{color:var(--primary-color)}.stat-detail{font-size:.75rem;color:var(--gray-color)}.card{background-color:var(--light-color);border-radius:var(--border-radius);box-shadow:var(--box-shadow);padding:1.5rem;margin-bottom:2rem}.status-section h3{margin-bottom:1.5rem}.status-description{margin-bottom:1.5rem;color:var(--gray-color)}.action-buttons{display:flex;flex-wrap:wrap;gap:1rem;margin-bottom:1.5rem}.attendance-actions{display:flex;gap:1rem;flex-wrap:wrap;margin-top:1.5rem}.attendance-btn{padding:.75rem 1.5rem;border-radius:8px;font-weight:500;display:inline-flex;align-items:center;gap:.5rem;cursor:pointer;transition:all .3s ease;border:2px solid transparent;font-size:.95rem}.btn-icon{font-size:1.1rem}.present-btn{background-color:#28a7451a;color:#28a745}.present-btn:hover{background-color:#28a74533}.present-btn.active{background-color:#28a745;color:#fff;border-color:#218838}.home-btn{background-color:#ffc1071a;color:#ffc107}.home-btn:hover{background-color:#ffc10733}.home-btn.active{background-color:#ffc107;color:#212529;border-color:#e0a800}.absence-group{display:flex;flex:1;min-width:250px;gap:.5rem}.absence-reason{flex:1;padding:.75rem 1rem;border-radius:8px;border:1px solid #e9ecef;transition:all .3s ease;min-width:150px}.absence-reason:focus{outline:none;border-color:#4a6bff;box-shadow:0 0 0 2px #4a6bff33}.absent-btn{background-color:#dc35451a;color:#dc3545;white-space:nowrap}.absent-btn:hover{background-color:#dc354533}.absent-btn.active{background-color:#dc3545;color:#fff;border-color:#c82333}@media (max-width: 768px){.attendance-actions,.absence-group{flex-direction:column}}.status-btn{min-width:200px;padding:1rem;border-radius:var(--border-radius);border:none;font-weight:600;cursor:pointer;display:flex;align-items:center;justify-content:center;gap:.5rem;transition:var(--transition)}.status-btn:hover{transform:translateY(-2px)}.status-btn.active{box-shadow:0 0 0 2px currentColor}.status-btn.present{background-color:var(--success-light);color:var(--success-color)}.status-btn.late{background-color:var(--warning-light);color:var(--warning-color)}.status-group.absent{display:flex;flex:1;min-width:200px;gap:.5rem}.status-group.absent input{flex:1;padding:1rem;border-radius:var(--border-radius);border:1px solid var(--gray-light);background-color:var(--light-color);color:var(--dark-color);transition:var(--transition)}.status-group.absent input:focus{outline:none;border-color:var(--primary-color);box-shadow:0 0 0 2px var(--primary-light)}.status-btn.absent{background-color:var(--danger-light);color:var(--danger-color)}.error{color:var(--danger-color);font-size:.875rem;margin-top:-1rem;margin-bottom:1rem}.verification-section{padding:1.5rem;background-color:var(--gray-light);border-radius:var(--border-radius);margin-top:1.5rem}.verification-section h4{margin-bottom:1rem}.verification-status{display:flex;align-items:center;gap:.5rem;padding:.75rem;border-radius:var(--border-radius);margin-bottom:1rem;font-weight:500}.verification-status.confirmed{background-color:var(--success-light);color:var(--success-color)}.verification-status.pending{background-color:var(--warning-light);color:var(--warning-color)}.teacher-comment{padding:.75rem;background-color:var(--light-color);border-radius:var(--border-radius);margin-bottom:1rem;font-size:.875rem}.verify-btn{display:flex;align-items:center;gap:.5rem;padding:.5rem 1rem;background-color:var(--primary-light);color:var(--primary-color);border:none;border-radius:var(--border-radius);font-weight:500;cursor:pointer;transition:var(--transition)}.verify-btn:hover{background-color:var(--primary-color);color:#fff}.attendance-graph h3{margin-bottom:1rem}.attendance-rate{margin-bottom:1.5rem}.history-summary{display:flex;gap:2rem;flex-wrap:wrap}.summary-card{flex:1;min-width:300px}.graph-bars{display:flex;height:200px;align-items:flex-end;gap:.5rem;margin-bottom:1rem;padding:1rem 0}.bar-group{display:flex;flex-direction:column;align-items:center;flex:1}.bar{width:100%;border-radius:.25rem .25rem 0 0;transition:var(--transition)}.bar-label{font-size:.75rem;color:var(--gray-color);margin-top:.5rem}.graph-legend{display:flex;justify-content:center;gap:1rem;font-size:.75rem}.graph-legend span{display:flex;align-items:center;gap:.25rem}.dot{width:10px;height:10px;border-radius:50%}.dot.good{background-color:var(--success-color)}.dot.fair{background-color:var(--warning-color)}.dot.poor{background-color:var(--danger-color)}.detailed-history{flex:2;min-width:300px}.attendance-table{width:100%;border-collapse:collapse}.attendance-table th,.attendance-table td{padding:.75rem;text-align:left;border-bottom:1px solid var(--gray-light)}.attendance-table th{font-weight:600;color:var(--gray-color);font-size:.875rem;text-transform:uppercase}.status-badge.present{background-color:var(--success-light);color:var(--success-color)}.status-badge.absent{background-color:var(--danger-light);color:var(--danger-color)}.status-badge.home{background-color:var(--warning-light);color:var(--warning-color)}.verified-badge,.pending-badge{display:inline-flex;align-items:center;gap:.25rem;font-size:.75rem}.verified-badge{color:var(--success-color)}.pending-badge{color:var(--warning-color)}.upcoming-events h3{margin-bottom:1.5rem}.events-list{display:flex;flex-direction:column;gap:1rem}.event-item{display:flex;gap:1rem;padding:1rem;background-color:var(--gray-light);border-radius:var(--border-radius);transition:var(--transition)}.event-item:hover{transform:translate(5px)}.event-date{flex-shrink:0;width:60px;height:60px;display:flex;align-items:center;justify-content:center;background-color:var(--primary-color);color:#fff;border-radius:var(--border-radius);font-weight:600;font-size:.875rem;text-align:center;line-height:1.2}.event-details{flex:1}.event-details p{display:flex;align-items:center;gap:.5rem;font-size:.875rem;color:var(--gray-color);margin-bottom:.25rem}.messages-section h3{display:flex;align-items:center;gap:.5rem;margin-bottom:1.5rem}.messages-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1.5rem}.messages-list{display:flex;flex-direction:column;gap:1rem;margin-bottom:2rem}.message{padding:1rem;border-radius:var(--border-radius);background-color:var(--gray-light)}.message.teacher{border-left:4px solid var(--primary-color)}.message.school{border-left:4px solid var(--warning-color)}.message.parent{border-left:4px solid var(--success-color);align-self:flex-end;background-color:var(--primary-light)}.message-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:.5rem}.message-header strong{font-weight:600}.message-header time{font-size:.75rem;color:var(--gray-color)}.message-text{font-size:.875rem}.message-composer{margin-top:2rem}.message-composer h4{margin-bottom:1rem}.message-input{width:100%;min-height:120px;padding:1rem;border-radius:var(--border-radius);border:1px solid var(--gray-light);background-color:var(--light-color);color:var(--dark-color);margin-bottom:1rem;resize:vertical;transition:var(--transition)}.message-input:focus{outline:none;border-color:var(--primary-color);box-shadow:0 0 0 2px var(--primary-light)}.send-btn{display:flex;align-items:center;gap:.5rem;padding:.75rem 1.5rem;background-color:var(--primary-color);color:#fff;border:none;border-radius:var(--border-radius);font-weight:500;cursor:pointer;transition:var(--transition)}.send-btn:hover{background-color:var(--secondary-color)}.message-tips{margin-top:2rem;padding:1.5rem;background-color:var(--gray-light);border-radius:var(--border-radius)}.message-tips h4{margin-bottom:1rem}.message-tips ul{padding-left:1.5rem;font-size:.875rem;color:var(--gray-color)}.message-tips li{margin-bottom:.5rem}.schedule-section h3{display:flex;align-items:center;gap:.5rem;margin-bottom:1.5rem}.schedule-desc{margin-bottom:1.5rem}.schedule-table-container{display:flex;flex-direction:column;gap:2rem;margin-bottom:2rem}.schedule-day{flex:1}.schedule-day.today h4{color:var(--primary-color)}.schedule-day h4{margin-bottom:1rem;padding-bottom:.5rem;border-bottom:2px solid var(--gray-light)}.schedule-table{width:100%;border-collapse:collapse}.schedule-table th,.schedule-table td{padding:.75rem;text-align:left;border-bottom:1px solid var(--gray-light)}.schedule-table th{font-weight:600;color:var(--gray-color);font-size:.875rem;text-transform:uppercase}.schedule-table tr:hover{background-color:var(--gray-light)}.subject-icon{margin-right:.5rem}.schedule-tips{padding:1.5rem;background-color:var(--gray-light);border-radius:var(--border-radius)}.schedule-tips h4{margin-bottom:1rem}.schedule-tips ul{padding-left:1.5rem;font-size:.875rem;color:var(--gray-color)}.schedule-tips li{margin-bottom:.5rem}.profile-section h3{margin-bottom:1.5rem}.profile-grid{display:grid;grid-template-columns:200px 1fr;gap:2rem}.profile-photo{display:flex;flex-direction:column;align-items:center;gap:1rem}.profile-pic-wrapper{position:relative;width:150px;height:150px}.profile-pic{width:100%;height:100%;border-radius:50%;-o-object-fit:cover;object-fit:cover;border:4px solid var(--primary-light)}.profile-pic-edit{position:absolute;bottom:10px;right:10px;width:36px;height:36px;border-radius:50%;background-color:var(--primary-color);color:#fff;display:flex;align-items:center;justify-content:center;border:none;cursor:pointer;transition:var(--transition)}.profile-pic-edit:hover{background-color:var(--secondary-color);transform:scale(1.1)}.student-id{font-size:.875rem;color:var(--gray-color);text-align:center}.profile-details{flex:1}.detail-row{display:flex;margin-bottom:1rem;padding-bottom:1rem;border-bottom:1px solid var(--gray-light)}.detail-label{width:150px;font-weight:600;color:var(--gray-color)}.detail-value{flex:1}.name-edit-container{display:flex;gap:.5rem;align-items:center}.profile-name-edit{flex:1;padding:.5rem;border-radius:var(--border-radius);border:1px solid var(--gray-light);background-color:var(--light-color);color:var(--dark-color)}.profile-name-edit:focus{outline:none;border-color:var(--primary-color);box-shadow:0 0 0 2px var(--primary-light)}.save-name-btn{padding:.5rem 1rem;background-color:var(--primary-color);color:#fff;border:none;border-radius:var(--border-radius);cursor:pointer;transition:var(--transition)}.save-name-btn:hover{background-color:var(--secondary-color)}.name-display{display:flex;align-items:center;gap:.5rem}.edit-name-btn{background:none;border:none;color:var(--gray-color);cursor:pointer;transition:var(--transition)}.edit-name-btn:hover{color:var(--primary-color)}.performance{font-weight:700;font-size:1.25rem;color:var(--primary-color)}.quarter-grade{display:inline-block;margin-right:1rem;font-size:.875rem}.quarter-grade strong{font-weight:600}.cert-badge{display:inline-block;padding:.25rem .75rem;background-color:var(--primary-light);color:var(--primary-color);border-radius:1rem;font-size:.75rem;margin-right:.5rem;margin-bottom:.5rem}.no-certifications{font-size:.875rem;color:var(--gray-color);font-style:italic}.section-title{margin-top:2rem;margin-bottom:1rem;padding-bottom:.5rem;border-bottom:1px solid var(--gray-light)}.stats-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem;margin-top:1.5rem}.stat-item{padding:1rem;background-color:var(--gray-light);border-radius:var(--border-radius);text-align:center}.stat-label{font-size:.875rem;color:var(--gray-color);margin-bottom:.5rem}.profile-actions{display:flex;gap:1rem;margin-top:2rem;flex-wrap:wrap}.download-result-btn,.theme-toggle-btn{display:flex;align-items:center;gap:.5rem;padding:.75rem 1.5rem;border-radius:var(--border-radius);font-weight:500;cursor:pointer;transition:var(--transition)}.download-result-btn{background-color:var(--primary-color);color:#fff;border:none}.download-result-btn:hover{background-color:var(--secondary-color)}.theme-toggle-btn{background-color:var(--gray-light);color:var(--dark-color);border:none}.theme-toggle-btn:hover{background-color:var(--gray-color);color:#fff}@media (max-width: 1024px){.profile-grid{grid-template-columns:1fr}.profile-photo{align-items:flex-start}}@media (max-width: 768px){.top-navbar{padding:1rem;flex-wrap:wrap;gap:1rem}.nav-center{order:3;width:100%}.student-selector{width:100%}.student-header{flex-direction:column}.detail-row{flex-direction:column;gap:.5rem}.detail-label{width:100%}.stats-grid{grid-template-columns:1fr}.schedule-table th,.schedule-table td{padding:.5rem;font-size:.875rem}}@media (max-width: 480px){.action-buttons,.status-group.absent,.history-summary,.profile-actions{flex-direction:column}.profile-actions button{width:100%;justify-content:center}}body,html,.dashboard,.main-content{width:100%;margin:0;padding:0;overflow-x:hidden}.sidebar{position:fixed;transform:translate(-100%);z-index:1000}.sidebar.open{transform:translate(0)}.main-content{margin-left:0!important}@media (max-width: 768px){.detailed-history{width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch;border-radius:.5rem;background:var(--light-color);box-shadow:0 2px 4px #0000001a}.attendance-table{min-width:600px;width:100%}.attendance-table th,.attendance-table td{padding:.75rem .5rem;font-size:.8125rem}.attendance-table th{position:sticky;top:0;background:var(--light-color);z-index:2;box-shadow:0 2px 2px -1px #0000001a}.status-badge{white-space:nowrap}.verified-badge,.pending-badge{display:inline-flex;align-items:center;gap:.25rem;white-space:nowrap}.verified-badge .icon,.pending-badge .icon{flex-shrink:0}}@media (max-width: 480px){.attendance-table th,.attendance-table td{padding:.5rem;font-size:.75rem}.verified-badge,.pending-badge,.verified-badge .icon,.pending-badge .icon{font-size:.75rem}}:root{--primary-color: #4a6bff;--primary-hover: #3a5bef;--secondary-color: #6c757d;--success-color: #28a745;--warning-color: #ffc107;--danger-color: #dc3545;--info-color: #17a2b8;--light-color: #f8f9fa;--dark-color: #343a40;--white: #ffffff;--gray-100: #f8f9fa;--gray-200: #e9ecef;--gray-300: #dee2e6;--gray-400: #ced4da;--gray-500: #adb5bd;--gray-600: #6c757d;--gray-700: #495057;--gray-800: #343a40;--gray-900: #212529;--border-radius: .375rem;--box-shadow: 0 .5rem 1rem rgba(0, 0, 0, .15);--transition: all .3s ease}.dark-mode{--primary-color: #5d7eff;--primary-hover: #4a6bff;--secondary-color: #6c757d;--light-color: #212529;--dark-color: #f8f9fa;--white: #343a40;--gray-100: #212529;--gray-200: #343a40;--gray-300: #495057;--gray-400: #6c757d;--gray-500: #adb5bd;--gray-600: #ced4da;--gray-700: #dee2e6;--gray-800: #e9ecef;--gray-900: #f8f9fa}body{background-color:var(--gray-100);color:var(--gray-900);line-height:1.6;transition:var(--transition)}body.dark-mode{background-color:var(--gray-900);color:var(--gray-100)}.dashboard{display:grid;grid-template-rows:auto 1fr;min-height:100vh;transition:var(--transition)}.main-content{padding:1.5rem;overflow-y:auto;height:calc(100vh - 70px);width:100%;overflow-x:hidden}.top-navbar{display:flex;justify-content:space-between;align-items:center;padding:.75rem 1.5rem;background-color:var(--white);box-shadow:0 2px 4px #0000001a;position:sticky;top:0;z-index:1000;transition:var(--transition)}.dark-mode .top-navbar{background-color:var(--gray-800);box-shadow:0 2px 4px #0000004d}.teacher-name{font-weight:600;font-size:1.1rem}.search-icon{position:absolute;left:12px;top:50%;transform:translateY(-50%);color:var(--gray-500)}.search-box input{width:100%;padding:.5rem 1rem .5rem 2.5rem;border-radius:var(--border-radius);border:1px solid var(--gray-300);background-color:var(--white);color:var(--gray-900);transition:var(--transition)}.dark-mode .search-box input{background-color:var(--gray-700);border-color:var(--gray-600);color:var(--gray-100)}.nav-right{display:flex;align-items:center;gap:1rem;position:relative}.notification-btn{background:none;border:none;font-size:1.25rem;color:var(--gray-700);cursor:pointer;position:relative;transition:var(--transition)}.dark-mode .notification-btn{color:var(--gray-300)}.notification-btn:hover{color:var(--primary-color)}.notification-indicator{position:absolute;top:-3px;right:-3px;width:10px;height:10px;border-radius:50%;background-color:var(--danger-color)}.nav-link{background:none;border:none;font-size:1.25rem;color:var(--gray-700);cursor:pointer;transition:var(--transition)}.dark-mode .nav-link{color:var(--gray-300)}.nav-link:hover{color:var(--primary-color)}.settings-dropdown{position:absolute;top:100%;right:0;background-color:var(--white);border-radius:var(--border-radius);box-shadow:var(--box-shadow);width:250px;z-index:1000;padding:.5rem 0;transition:var(--transition)}.dark-mode .settings-dropdown{background-color:var(--gray-800);box-shadow:0 .5rem 1rem #0000004d}.dropdown-item{display:flex;align-items:center;width:100%;padding:.75rem 1.5rem;background:none;border:none;text-align:left;color:var(--gray-900);cursor:pointer;transition:var(--transition)}.dark-mode .dropdown-item{color:var(--gray-100)}.dropdown-item:hover{background-color:var(--gray-200)}.dark-mode .dropdown-item:hover{background-color:var(--gray-700)}.dropdown-item.active{background-color:var(--gray-200);font-weight:600}.dark-mode .dropdown-item.active{background-color:var(--gray-700)}.dropdown-item .icon{margin-right:.75rem;font-size:1rem}.dropdown-item.logout{color:var(--danger-color)}.dropdown-item.logout:hover{background-color:#dc35451a}.notifications-dropdown{position:absolute;top:100%;right:0;background-color:var(--white);border-radius:var(--border-radius);box-shadow:var(--box-shadow);width:350px;max-height:500px;overflow-y:auto;z-index:1000;transition:var(--transition)}.dark-mode .notifications-dropdown{background-color:var(--gray-800);box-shadow:0 .5rem 1rem #0000004d}.notifications-header{display:flex;justify-content:space-between;align-items:center;padding:1rem;border-bottom:1px solid var(--gray-200);position:sticky;top:0;background-color:inherit;z-index:1}.dark-mode .notifications-header{border-bottom-color:var(--gray-700)}.notifications-header h4{margin:0;font-size:1.1rem}.mark-all-read{background:none;border:none;color:var(--primary-color);font-size:.9rem;cursor:pointer;transition:var(--transition)}.mark-all-read:hover{text-decoration:underline}.notifications-dropdown li{padding:1rem;border-bottom:1px solid var(--gray-200);cursor:pointer;transition:var(--transition)}.dark-mode .notifications-dropdown li{border-bottom-color:var(--gray-700)}.notifications-dropdown li:hover{background-color:var(--gray-200)}.dark-mode .notifications-dropdown li:hover{background-color:var(--gray-700)}.notifications-dropdown li.unread{background-color:#4a6bff0d}.dark-mode .notifications-dropdown li.unread{background-color:#4a6bff1a}.notifications-dropdown li p{margin-bottom:.25rem;font-size:.95rem}.notifications-dropdown li time{font-size:.8rem;color:var(--gray-600)}.dark-mode .notifications-dropdown li time{color:var(--gray-400)}.no-notifications{padding:1.5rem;text-align:center;color:var(--gray-600)}.dark-mode .no-notifications{color:var(--gray-400)}.card{background-color:var(--white);border-radius:var(--border-radius);box-shadow:var(--box-shadow);padding:1.5rem;margin-bottom:1.5rem;transition:var(--transition)}.dark-mode .card{background-color:var(--gray-800);box-shadow:0 .5rem 1rem #0000004d}.primary-btn{background-color:var(--primary-color);color:#fff;border:none;padding:.5rem 1rem;border-radius:var(--border-radius);font-weight:500;transition:var(--transition)}.primary-btn:hover{background-color:var(--primary-hover)}.secondary-btn{background-color:var(--gray-200);color:var(--gray-800);border:none;padding:.5rem 1rem;border-radius:var(--border-radius);font-weight:500;transition:var(--transition)}.dark-mode .secondary-btn{background-color:var(--gray-700);color:var(--gray-100)}.secondary-btn:hover{background-color:var(--gray-300)}.dark-mode .secondary-btn:hover{background-color:var(--gray-600)}.overview-header h2{font-size:1.75rem;color:var(--primary-color)}.current-time{display:flex;align-items:center;gap:.5rem;color:var(--gray-600);font-size:.95rem}.dark-mode .current-time{color:var(--gray-400)}.stats-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:1.5rem}.stat-card{background-color:var(--white);border-radius:var(--border-radius);padding:1.5rem;box-shadow:var(--box-shadow);transition:var(--transition)}.dark-mode .stat-card{background-color:var(--gray-800);box-shadow:0 .5rem 1rem #0000004d}.stat-card h3{font-size:1rem;color:var(--gray-600);margin-bottom:.5rem}.dark-mode .stat-card h3{color:var(--gray-400)}.stat-value{font-size:2rem;font-weight:700;color:var(--primary-color);margin-bottom:.25rem}.stat-trend{font-size:.85rem;color:var(--gray-600)}.dark-mode .stat-trend{color:var(--gray-400)}.responsive-charts-row{margin-top:1.5rem}.responsive-chart-card{background-color:var(--white);border-radius:var(--border-radius);padding:1.5rem;box-shadow:var(--box-shadow);margin-bottom:1.5rem;transition:var(--transition)}.dark-mode .responsive-chart-card{background-color:var(--gray-800);box-shadow:0 .5rem 1rem #0000004d}.responsive-chart-card h3{margin-bottom:1rem;display:flex;align-items:center;gap:.5rem;font-size:1.1rem}.date-picker-btn{display:flex;align-items:center;gap:.5rem;background-color:var(--gray-200);border:none;padding:.5rem 1rem;border-radius:var(--border-radius);font-size:.9rem;cursor:pointer;transition:var(--transition)}.dark-mode .date-picker-btn{background-color:var(--gray-700);color:var(--gray-100)}.date-picker-btn:hover{background-color:var(--gray-300)}.dark-mode .date-picker-btn:hover{background-color:var(--gray-600)}.date-picker-container{position:absolute;right:0;top:100%;margin-top:.5rem;z-index:1000;background-color:var(--white);border-radius:var(--border-radius);box-shadow:var(--box-shadow);padding:1rem}.dark-mode .date-picker-container{background-color:var(--gray-800);box-shadow:0 .5rem 1rem #0000004d}.attendance-bar-container{margin-bottom:1rem}.attendance-bar-label{font-size:.85rem;margin-bottom:.25rem;color:var(--gray-600)}.dark-mode .attendance-bar-label{color:var(--gray-400)}.attendance-bar{display:flex;height:30px;border-radius:var(--border-radius);overflow:hidden;cursor:pointer;transition:var(--transition)}.attendance-segment.absent{background-color:var(--danger-color)}.attendance-segment.left{background-color:var(--warning-color)}.attendance-bar-total{font-size:.8rem;text-align:right;color:var(--gray-600);margin-top:.25rem}.dark-mode .attendance-bar-total{color:var(--gray-400)}.attendance-bar-legend-mobile{display:none;font-size:.8rem;margin-top:.25rem}.attendance-bar-legend-mobile span{margin-right:.75rem}.present-mobile{color:var(--success-color)}.absent-mobile{color:var(--danger-color)}.left-mobile{color:var(--warning-color)}.attendance-details-mobile{display:none;background-color:var(--gray-200);border-radius:var(--border-radius);padding:1rem;margin-top:.5rem}.dark-mode .attendance-details-mobile{background-color:var(--gray-700)}.detail-item{display:flex;justify-content:space-between;margin-bottom:.5rem;font-size:.9rem}.detail-label{color:var(--gray-600)}.dark-mode .detail-label{color:var(--gray-400)}.detail-value{font-weight:500}.detail-value.present{color:var(--success-color)}.detail-value.absent{color:var(--danger-color)}.detail-value.left{color:var(--warning-color)}.view-full-btn{width:100%;margin-top:.75rem;padding:.5rem;background-color:var(--primary-color);color:#fff;border:none;border-radius:var(--border-radius);font-size:.85rem;cursor:pointer;transition:var(--transition)}.view-full-btn:hover{background-color:var(--primary-hover)}.performance-trend{display:flex;justify-content:space-around;align-items:flex-end;height:200px;margin-top:1.5rem}.performance-item{display:flex;flex-direction:column;align-items:center;flex:1}.performance-bar-container{width:80%;height:150px;display:flex;align-items:flex-end}.performance-bar{width:100%;background-color:var(--primary-color);border-radius:var(--border-radius) var(--border-radius) 0 0;opacity:0;transform-origin:bottom}.performance-label{margin-top:.5rem;font-size:.85rem;color:var(--gray-600)}.dark-mode .performance-label{color:var(--gray-400)}.performance-value{font-weight:600;margin-top:.25rem}.grade-distribution{margin-top:1.5rem}.grade-item{margin-bottom:1rem}.grade-label{display:flex;justify-content:space-between;margin-bottom:.25rem;font-size:.9rem}.grade-count{color:var(--gray-600)}.dark-mode .grade-count{color:var(--gray-400)}.grade-bar-container{height:10px;background-color:var(--gray-200);border-radius:5px;overflow:hidden}.dark-mode .grade-bar-container{background-color:var(--gray-700)}.grade-percent{text-align:right;font-size:.8rem;color:var(--gray-600);margin-top:.25rem}.dark-mode .grade-percent{color:var(--gray-400)}.swipeable-container{position:relative;overflow:hidden;width:100%}.swipeable-content{display:flex;transition:transform .3s ease;width:100%}.swipeable-item{flex:0 0 100%;padding:0 .5rem}.swipe-indicators{display:flex;justify-content:center;margin-top:1rem}.indicator{width:8px;height:8px;border-radius:50%;background-color:var(--gray-300);margin:0 .25rem;cursor:pointer;transition:var(--transition)}.dark-mode .indicator{background-color:var(--gray-600)}.swipe-nav{position:absolute;top:50%;transform:translateY(-50%);background-color:#ffffffb3;border:none;width:36px;height:36px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:1.2rem;color:var(--gray-700);cursor:pointer;z-index:10;transition:var(--transition)}.dark-mode .swipe-nav{background-color:#343a40b3;color:var(--gray-300)}.swipe-nav.left{left:.5rem}.swipe-nav.right{right:.5rem}.swipe-nav:hover{background-color:var(--white);color:var(--primary-color)}.dark-mode .swipe-nav:hover{background-color:var(--gray-700)}.upcoming-events{margin-top:1.5rem}.upcoming-events h3{margin-bottom:1rem;display:flex;align-items:center;gap:.5rem;font-size:1.1rem}.event-card{display:flex;background-color:var(--white);border-radius:var(--border-radius);overflow:hidden;box-shadow:var(--box-shadow);transition:var(--transition)}.dark-mode .event-card{background-color:var(--gray-800);box-shadow:0 .5rem 1rem #0000004d}.event-date{background-color:var(--primary-color);color:#fff;padding:1rem;display:flex;align-items:center;justify-content:center;font-weight:600;min-width:70px}.event-details{padding:1rem;flex:1}.event-details h4{margin-bottom:.25rem;font-size:1rem}.event-details p{font-size:.85rem;color:var(--gray-600)}.dark-mode .event-details p{color:var(--gray-400)}.dashboard-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1.5rem;background-color:var(--white);padding:1rem;border-radius:var(--border-radius);box-shadow:var(--box-shadow);position:static!important;top:auto!important;z-index:auto!important}.dark-mode .dashboard-header{background-color:var(--gray-800)}.header-left h2{font-size:1rem;color:var(--primary-color);margin-bottom:.5rem}.class-summary{display:flex;gap:1rem;font-size:.95rem;color:var(--gray-600)}.dark-mode .class-summary{color:var(--gray-400)}.absent-count{color:var(--danger-color)}.mark-all-btn{display:flex;align-items:right;gap:.5rem;margin-left:20px}.student-list{width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch;margin-bottom:1.5rem;border-radius:var(--border-radius);box-shadow:var(--box-shadow);background-color:var(--white)}.dark-mode .student-list{background-color:var(--gray-800)}.student-table{width:100%;min-width:800px;border-collapse:collapse}.student-table th{text-align:left;padding:.75rem 1rem;background-color:var(--gray-200);color:var(--gray-800);font-weight:600;font-size:.9rem;position:sticky;top:0}.dark-mode .student-table th{background-color:var(--gray-700);color:var(--gray-100)}.student-table td{padding:.75rem 1rem;border-bottom:1px solid var(--gray-200);font-size:.95rem}.dark-mode .student-table td{border-bottom-color:var(--gray-700)}.student-table tr:hover{background-color:var(--gray-100)}.dark-mode .student-table tr:hover{background-color:var(--gray-700)}.student-table tr.selected{background-color:#4a6bff1a}.student-info-cell{display:flex;flex-direction:column}.student-id{font-size:.8rem;color:var(--gray-600);margin-bottom:.25rem}.dark-mode .student-id{color:var(--gray-400)}.student-name{font-weight:500;margin-bottom:.25rem}.student-grade{font-size:.85rem;color:var(--gray-600)}.dark-mode .student-grade{color:var(--gray-400)}.status-display{padding:.25rem .5rem;border-radius:var(--border-radius);font-size:.85rem;font-weight:500;display:inline-block}.status-display.present{background-color:#28a7451a;color:var(--success-color)}.status-display.absent{background-color:#dc35451a;color:var(--danger-color)}.status-display.left{background-color:#ffc1071a;color:var(--warning-color)}.parent-mark{font-size:.95rem}.parent-reason{font-size:.85rem;color:var(--gray-600);margin-top:.25rem;font-style:italic}.dark-mode .parent-reason{color:var(--gray-400)}.status-btn{width:20px;height:10px;border:none;display:flex;align-items:center;justify-content:center;font-size:1rem;transition:var(--transition)}.status-btn.present{background-color:#28a7451a;color:var(--success-color)}.status-btn.present:hover,.status-btn.present.active{background-color:var(--success-color);color:#fff}.status-btn.absent{background-color:#dc35451a;color:var(--danger-color)}.status-btn.absent:hover,.status-btn.absent.active{background-color:var(--danger-color);color:#fff}.status-btn.left{background-color:#ffc1071a;color:var(--warning-color)}.status-btn.left:hover,.status-btn.left.active{background-color:var(--warning-color);color:#fff}.student-details{margin-top:1.5rem}.section-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1.5rem;padding-bottom:.75rem;border-bottom:1px solid var(--gray-200)}.dark-mode .section-header{border-bottom-color:var(--gray-700)}.section-header h3{font-size:1.5rem;color:var(--primary-color)}.student-info-grid{display:grid;grid-template-columns:1fr 1fr;gap:1.5rem}@media (max-width: 480px){.student-info-grid{grid-template-columns:1fr}}.student-basic-info,.attendance-status{display:grid;grid-template-columns:1fr 1fr;gap:1rem}.info-item,.status-item{display:flex;flex-direction:column}.info-item .label,.status-item .label{font-size:.85rem;color:var(--gray-600);margin-bottom:.25rem}.dark-mode .info-item .label,.dark-mode .status-item .label{color:var(--gray-400)}.student-name{font-weight:500;font-size:1.1rem}.status-badge{padding:.25rem .5rem;border-radius:var(--border-radius);font-size:.85rem;font-weight:500;display:inline-block}.status-badge.present{background-color:#28a7451a;color:var(--success-color)}.status-badge.absent{background-color:#dc35451a;color:var(--danger-color)}.status-badge.left{background-color:#ffc1071a;color:var(--warning-color)}.comments-section{grid-column:1 / -1}.comments-section h4{margin-bottom:1rem;display:flex;align-items:center;gap:.5rem;font-size:1.1rem}.comments-container{max-height:200px;overflow-y:auto;margin-bottom:1rem;padding-right:.5rem}.comment{margin-bottom:1rem;padding:.75rem;border-radius:var(--border-radius);background-color:var(--gray-200)}.dark-mode .comment{background-color:var(--gray-700)}.comment-header{display:flex;justify-content:space-between;margin-bottom:.5rem;font-size:.85rem}.sender{font-weight:500}.time{color:var(--gray-600)}.dark-mode .time{color:var(--gray-400)}.comment-text{font-size:.95rem}.parent-comment{background-color:#0d6efd1a}.dark-mode .parent-comment{background-color:#0d6efd33}.teacher-comment{background-color:#1987541a}.dark-mode .teacher-comment{background-color:#19875433}.add-comment{display:flex;flex-direction:column;gap:.75rem}.add-comment textarea{width:100%;padding:.75rem;border-radius:var(--border-radius);border:1px solid var(--gray-300);background-color:var(--white);color:var(--gray-900);resize:vertical;min-height:80px;transition:var(--transition)}.dark-mode .add-comment textarea{background-color:var(--gray-700);border-color:var(--gray-600);color:var(--gray-100)}.messages-section{margin-top:1.5rem}.messages-header{margin-bottom:1.5rem;padding-bottom:.75rem;border-bottom:1px solid var(--gray-200)}.dark-mode .messages-header{border-bottom-color:var(--gray-700)}.messages-header h3{font-size:1.5rem;color:var(--primary-color);display:flex;align-items:center;gap:.5rem}.messages-list{display:flex;flex-direction:column;gap:1.5rem}.message-container{background-color:var(--white);border-radius:var(--border-radius);padding:1.5rem;box-shadow:var(--box-shadow);transition:var(--transition)}.dark-mode .message-container{background-color:var(--gray-800);box-shadow:0 .5rem 1rem #0000004d}.message-student-info{display:flex;justify-content:space-between;align-items:center;margin-bottom:1rem;padding-bottom:.75rem;border-bottom:1px solid var(--gray-200)}.dark-mode .message-student-info{border-bottom-color:var(--gray-700)}.message-student-info h4{font-size:1.1rem;color:var(--primary-color)}.message{margin-bottom:1rem}.message-header{display:flex;justify-content:space-between;margin-bottom:.5rem;font-size:.85rem}.message-header strong{font-weight:500}.message-header time{color:var(--gray-600)}.dark-mode .message-header time{color:var(--gray-400)}.message-text{font-size:.95rem;line-height:1.5}.message.parent{background-color:#0d6efd1a;padding:.75rem;border-radius:var(--border-radius)}.dark-mode .message.parent{background-color:#0d6efd33}.message.teacher{background-color:#1987541a;padding:.75rem;border-radius:var(--border-radius)}.dark-mode .message.teacher{background-color:#19875433}.analytics-section{margin-top:1.5rem}.analytics-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1.5rem}.analytics-header h2{font-size:1.75rem;color:var(--primary-color)}.time-filter select{padding:.5rem 1rem;border-radius:var(--border-radius);border:1px solid var(--gray-300);background-color:var(--white);color:var(--gray-900);transition:var(--transition)}.dark-mode .time-filter select{background-color:var(--gray-700);border-color:var(--gray-600);color:var(--gray-100)}.responsive-analytics-grid{margin-top:1.5rem}.responsive-analytics-card{background-color:var(--white);border-radius:var(--border-radius);padding:1.5rem;box-shadow:var(--box-shadow);margin-bottom:1.5rem;transition:var(--transition)}.dark-mode .responsive-analytics-card{background-color:var(--gray-800);box-shadow:0 .5rem 1rem #0000004d}.responsive-analytics-card h3{margin-bottom:1.5rem;font-size:1.1rem}.stats-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:1rem}.stat-item{background-color:var(--gray-200);border-radius:var(--border-radius);padding:1rem;text-align:center}.dark-mode .stat-item{background-color:var(--gray-700)}.stat-label{font-size:.85rem;color:var(--gray-600);margin-bottom:.25rem}.stat-value{font-size:1.5rem;font-weight:700}.stat-value.present{color:var(--success-color)}.stat-value.absent{color:var(--danger-color)}.stat-value.left{color:var(--warning-color)}.calendar-section{margin-top:1.5rem}.calendar-header{margin-bottom:1.5rem;padding-bottom:.75rem;border-bottom:1px solid var(--gray-200)}.dark-mode .calendar-header{border-bottom-color:var(--gray-700)}.calendar-header h3{font-size:1.5rem;color:var(--primary-color);display:flex;align-items:center;gap:.5rem}.reports-section{margin-top:1.5rem}.reports-header{margin-bottom:1.5rem;padding-bottom:.75rem;border-bottom:1px solid var(--gray-200);display:flex;justify-content:space-between;align-items:center}.dark-mode .reports-header{border-bottom-color:var(--gray-700)}.reports-header h3{font-size:1.5rem;color:var(--primary-color);display:flex;align-items:center;gap:.5rem}.reports-filter select{padding:.5rem 1rem;border-radius:var(--border-radius);border:1px solid var(--gray-300);background-color:var(--white);color:var(--gray-900);transition:var(--transition)}.dark-mode .reports-filter select{background-color:var(--gray-700);border-color:var(--gray-600);color:var(--gray-100)}.reports-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:1.5rem}.report-card{background-color:var(--white);border-radius:var(--border-radius);padding:1.5rem;box-shadow:var(--box-shadow);transition:var(--transition);display:flex;gap:1rem}.dark-mode .report-card{background-color:var(--gray-800);box-shadow:0 .5rem 1rem #0000004d}.report-icon{width:48px;height:48px;border-radius:50%;background-color:#4a6bff1a;display:flex;align-items:center;justify-content:center;color:var(--primary-color);flex-shrink:0}.report-content h4{margin-bottom:.5rem;font-size:1.1rem}.report-content p{font-size:.9rem;color:var(--gray-600);margin-bottom:1rem}.dark-mode .report-content p{color:var(--gray-400)}.modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background-color:#00000080;display:flex;align-items:center;justify-content:center;z-index:2000}.modal-content{background-color:var(--white);border-radius:var(--border-radius);box-shadow:var(--box-shadow);width:90%;max-width:500px;max-height:90vh;overflow-y:auto;padding:1.5rem;position:relative;transition:var(--transition)}.dark-mode .modal-content{background-color:var(--gray-800);box-shadow:0 .5rem 1rem #0000004d}.modal-close{position:absolute;top:1rem;right:1rem;background:none;border:none;font-size:1.25rem;color:var(--gray-600);cursor:pointer;transition:var(--transition)}.dark-mode .modal-close{color:var(--gray-400)}.modal-close:hover{color:var(--danger-color)}.modal-content h3{margin-bottom:1rem;font-size:1.5rem;color:var(--primary-color)}.event-time{display:flex;align-items:center;gap:.5rem;margin-bottom:1rem;color:var(--gray-600)}.dark-mode .event-time{color:var(--gray-400)}.event-description{margin-bottom:1.5rem}.attendance-details-modal{max-width:800px}.date-selector{display:flex;align-items:center;gap:.5rem;margin-bottom:1.5rem}.attendance-details-grid{display:grid;grid-template-columns:1fr 2fr;gap:1.5rem}@media (max-width: 768px){.attendance-details-grid{grid-template-columns:1fr}}.attendance-summary h4{margin-bottom:1rem;font-size:1.1rem}.summary-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem}.summary-stat{padding:1rem;border-radius:var(--border-radius);text-align:center}.summary-stat.present{background-color:#28a7451a}.summary-stat.absent{background-color:#dc35451a}.summary-stat.left{background-color:#ffc1071a}.stat-label{font-size:.85rem;color:var(--gray-600)}.dark-mode .stat-label{color:var(--gray-400)}.attendance-list h4{margin-bottom:1rem;font-size:1.1rem}.attendance-table{max-height:300px;overflow-y:auto}.attendance-header{display:flex;justify-content:space-between;padding:.75rem 1rem;background-color:var(--gray-200);font-weight:600;position:sticky;top:0}.dark-mode .attendance-header{background-color:var(--gray-700)}.attendance-row{display:flex;justify-content:space-between;padding:.75rem 1rem;border-bottom:1px solid var(--gray-200)}.dark-mode .attendance-row{border-bottom-color:var(--gray-700)}.attendance-status{padding:.25rem .5rem;border-radius:var(--border-radius);font-size:.85rem;font-weight:500}.quick-actions-container{position:fixed;bottom:2rem;right:2rem;z-index:1000}.quick-actions-btn{width:56px;height:56px;border-radius:50%;background-color:var(--primary-color);color:#fff;border:none;display:flex;align-items:center;justify-content:center;font-size:1.5rem;box-shadow:0 4px 12px #00000026;transition:var(--transition)}.quick-actions-btn:hover{background-color:var(--primary-hover);transform:scale(1.1)}.quick-actions-menu{position:absolute;bottom:100%;right:0;margin-bottom:1rem;background-color:var(--white);border-radius:var(--border-radius);box-shadow:var(--box-shadow);width:250px;padding:1rem;display:flex;flex-direction:column;gap:.75rem;transform-origin:bottom right;animation:scaleIn .2s ease-out}.dark-mode .quick-actions-menu{background-color:var(--gray-800);box-shadow:0 .5rem 1rem #0000004d}@keyframes scaleIn{0%{transform:scale(0);opacity:0}to{transform:scale(1);opacity:1}}.quick-action{display:flex;align-items:center;gap:.75rem;background:none;border:none;padding:.5rem;text-align:left;color:var(--gray-900);cursor:pointer;transition:var(--transition)}.dark-mode .quick-action{color:var(--gray-100)}.quick-action:hover{color:var(--primary-color)}.announcement-input textarea{width:100%;padding:.75rem;border-radius:var(--border-radius);border:1px solid var(--gray-300);background-color:var(--white);color:var(--gray-900);resize:none;min-height:100px;margin-bottom:.5rem;transition:var(--transition)}.dark-mode .announcement-input textarea{background-color:var(--gray-700);border-color:var(--gray-600);color:var(--gray-100)}@media (max-width: 768px){.top-navbar{flex-direction:column;padding:1rem;gap:1rem}.nav-left,.nav-center,.nav-right{width:100%}.nav-left{display:flex;align-items:center}.nav-right{display:flex;justify-content:flex-end}.nav-center{margin:0}.stats-grid{grid-template-columns:1fr 1fr}.student-info-grid,.student-basic-info,.attendance-status{grid-template-columns:1fr}.attendance-bar-legend-mobile,.attendance-details-mobile{display:block}.quick-actions-container{bottom:1rem;right:1rem}}@media (max-width: 576px){.stats-grid,.reports-grid{grid-template-columns:1fr}.modal-content{width:95%;padding:1rem}.modal-actions{flex-direction:column;gap:.5rem}}@keyframes slideIn{0%{transform:translateY(20px);opacity:0}to{transform:translateY(0);opacity:1}}.present{color:var(--success-color)}.absent{color:var(--danger-color)}.left{color:var(--warning-color)}.dropdown-item.logout.logging-out{opacity:.7;cursor:not-allowed;position:relative}.dropdown-item.logout.logging-out span:after{content:"...";animation:pulse 1s infinite}@keyframes pulse{0%{opacity:.6}50%{opacity:1}to{opacity:.6}}.rbc-btn{color:inherit;font:inherit;margin:0}button.rbc-btn{overflow:visible;text-transform:none;-webkit-appearance:button;-moz-appearance:button;appearance:button;cursor:pointer}button[disabled].rbc-btn{cursor:not-allowed}button.rbc-input::-moz-focus-inner{border:0;padding:0}.rbc-calendar{box-sizing:border-box;height:100%;display:flex;flex-direction:column;align-items:stretch}.rbc-m-b-negative-3{margin-bottom:-3px}.rbc-h-full{height:100%}.rbc-calendar *,.rbc-calendar *:before,.rbc-calendar *:after{box-sizing:inherit}.rbc-abs-full,.rbc-row-bg{overflow:hidden;position:absolute;top:0;left:0;right:0;bottom:0}.rbc-ellipsis,.rbc-show-more,.rbc-row-segment .rbc-event-content,.rbc-event-label{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.rbc-rtl{direction:rtl}.rbc-off-range{color:#999}.rbc-off-range-bg{background:#e6e6e6}.rbc-header{overflow:hidden;flex:1 0 0%;text-overflow:ellipsis;white-space:nowrap;padding:0 3px;text-align:center;vertical-align:middle;font-weight:700;font-size:90%;min-height:0;border-bottom:1px solid #ddd}.rbc-header+.rbc-header{border-left:1px solid #ddd}.rbc-rtl .rbc-header+.rbc-header{border-left-width:0;border-right:1px solid #ddd}.rbc-header>a,.rbc-header>a:active,.rbc-header>a:visited{color:inherit;text-decoration:none}.rbc-button-link{color:inherit;background:none;margin:0;padding:0;border:none;cursor:pointer;-webkit-user-select:text;-moz-user-select:text;user-select:text}.rbc-row-content{position:relative;-moz-user-select:none;user-select:none;-webkit-user-select:none;z-index:4}.rbc-row-content-scrollable{display:flex;flex-direction:column;height:100%}.rbc-row-content-scrollable .rbc-row-content-scroll-container{height:100%;overflow-y:scroll;-ms-overflow-style:none;scrollbar-width:none}.rbc-row-content-scrollable .rbc-row-content-scroll-container::-webkit-scrollbar{display:none}.rbc-today{background-color:#eaf6ff}.rbc-toolbar{display:flex;flex-wrap:wrap;justify-content:center;align-items:center;margin-bottom:10px;font-size:16px}.rbc-toolbar .rbc-toolbar-label{flex-grow:1;padding:0 10px;text-align:center}.rbc-toolbar button{color:#373a3c;display:inline-block;margin:0;text-align:center;vertical-align:middle;background:none;background-image:none;border:1px solid #ccc;padding:.375rem 1rem;border-radius:4px;line-height:normal;white-space:nowrap}.rbc-toolbar button:active,.rbc-toolbar button.rbc-active{background-image:none;box-shadow:inset 0 3px 5px #00000020;background-color:#e6e6e6;border-color:#adadad}.rbc-toolbar button:active:hover,.rbc-toolbar button:active:focus,.rbc-toolbar button.rbc-active:hover,.rbc-toolbar button.rbc-active:focus{color:#373a3c;background-color:#d4d4d4;border-color:#8c8c8c}.rbc-toolbar button:focus{color:#373a3c;background-color:#e6e6e6;border-color:#adadad}.rbc-toolbar button:hover{color:#373a3c;cursor:pointer;background-color:#e6e6e6;border-color:#adadad}.rbc-btn-group{display:inline-block;white-space:nowrap}.rbc-btn-group>button:first-child:not(:last-child){border-top-right-radius:0;border-bottom-right-radius:0}.rbc-btn-group>button:last-child:not(:first-child){border-top-left-radius:0;border-bottom-left-radius:0}.rbc-rtl .rbc-btn-group>button:first-child:not(:last-child){border-radius:0 4px 4px 0}.rbc-rtl .rbc-btn-group>button:last-child:not(:first-child){border-radius:4px 0 0 4px}.rbc-btn-group>button:not(:first-child):not(:last-child){border-radius:0}.rbc-btn-group button+button{margin-left:-1px}.rbc-rtl .rbc-btn-group button+button{margin-left:0;margin-right:-1px}.rbc-btn-group+.rbc-btn-group,.rbc-btn-group+button{margin-left:10px}@media (max-width: 767px){.rbc-toolbar{flex-direction:column}}.rbc-event,.rbc-day-slot .rbc-background-event{border:none;box-sizing:border-box;box-shadow:none;margin:0;padding:2px 5px;background-color:#3174ad;border-radius:5px;color:#fff;cursor:pointer;width:100%;text-align:left}.rbc-slot-selecting .rbc-event,.rbc-slot-selecting .rbc-day-slot .rbc-background-event,.rbc-day-slot .rbc-slot-selecting .rbc-background-event{cursor:inherit;pointer-events:none}.rbc-event.rbc-selected,.rbc-day-slot .rbc-selected.rbc-background-event{background-color:#265985}.rbc-event:focus,.rbc-day-slot .rbc-background-event:focus{outline:5px auto #3b99fc}.rbc-event-label{font-size:80%}.rbc-event-overlaps{box-shadow:-1px 1px 5px #33333380}.rbc-event-continues-prior{border-top-left-radius:0;border-bottom-left-radius:0}.rbc-event-continues-after{border-top-right-radius:0;border-bottom-right-radius:0}.rbc-event-continues-earlier{border-top-left-radius:0;border-top-right-radius:0}.rbc-event-continues-later{border-bottom-left-radius:0;border-bottom-right-radius:0}.rbc-row{display:flex;flex-direction:row}.rbc-row-segment{padding:0 1px 1px}.rbc-selected-cell{background-color:#0000001a}.rbc-show-more{background-color:#ffffff4d;z-index:4;font-weight:700;font-size:85%;height:auto;line-height:normal;color:#3174ad}.rbc-show-more:hover,.rbc-show-more:focus{color:#265985}.rbc-month-view{position:relative;border:1px solid #ddd;display:flex;flex-direction:column;flex:1 0 0;width:100%;-moz-user-select:none;user-select:none;-webkit-user-select:none;height:100%}.rbc-month-header{display:flex;flex-direction:row}.rbc-month-row{display:flex;position:relative;flex-direction:column;flex:1 0 0;flex-basis:0px;overflow:hidden;height:100%}.rbc-month-row+.rbc-month-row{border-top:1px solid #ddd}.rbc-date-cell{flex:1 1 0;min-width:0;padding-right:5px;text-align:right}.rbc-date-cell.rbc-now{font-weight:700}.rbc-date-cell>a,.rbc-date-cell>a:active,.rbc-date-cell>a:visited{color:inherit;text-decoration:none}.rbc-row-bg{display:flex;flex-direction:row;flex:1 0 0;overflow:hidden;right:1px}.rbc-day-bg{flex:1 0 0%}.rbc-day-bg+.rbc-day-bg{border-left:1px solid #ddd}.rbc-rtl .rbc-day-bg+.rbc-day-bg{border-left-width:0;border-right:1px solid #ddd}.rbc-overlay{position:absolute;z-index:5;border:1px solid #e5e5e5;background-color:#fff;box-shadow:0 5px 15px #00000040;padding:10px}.rbc-overlay>*+*{margin-top:1px}.rbc-overlay-header{border-bottom:1px solid #e5e5e5;margin:-10px -10px 5px;padding:2px 10px}.rbc-agenda-view{display:flex;flex-direction:column;flex:1 0 0;overflow:auto}.rbc-agenda-view table.rbc-agenda-table{width:100%;border:1px solid #ddd;border-spacing:0;border-collapse:collapse}.rbc-agenda-view table.rbc-agenda-table tbody>tr>td{padding:5px 10px;vertical-align:top}.rbc-agenda-view table.rbc-agenda-table .rbc-agenda-time-cell{padding-left:15px;padding-right:15px;text-transform:lowercase}.rbc-agenda-view table.rbc-agenda-table tbody>tr>td+td{border-left:1px solid #ddd}.rbc-rtl .rbc-agenda-view table.rbc-agenda-table tbody>tr>td+td{border-left-width:0;border-right:1px solid #ddd}.rbc-agenda-view table.rbc-agenda-table tbody>tr+tr{border-top:1px solid #ddd}.rbc-agenda-view table.rbc-agenda-table thead>tr>th{padding:3px 5px;text-align:left;border-bottom:1px solid #ddd}.rbc-rtl .rbc-agenda-view table.rbc-agenda-table thead>tr>th{text-align:right}.rbc-agenda-time-cell{text-transform:lowercase}.rbc-agenda-time-cell .rbc-continues-after:after{content:" »"}.rbc-agenda-time-cell .rbc-continues-prior:before{content:"« "}.rbc-agenda-date-cell,.rbc-agenda-time-cell{white-space:nowrap}.rbc-agenda-event-cell{width:100%}.rbc-time-column{display:flex;flex-direction:column;min-height:100%}.rbc-time-column .rbc-timeslot-group{flex:1}.rbc-timeslot-group{border-bottom:1px solid #ddd;min-height:40px;display:flex;flex-flow:column nowrap}.rbc-time-gutter,.rbc-header-gutter{flex:none}.rbc-label{padding:0 5px}.rbc-day-slot{position:relative}.rbc-day-slot .rbc-events-container{bottom:0;left:0;position:absolute;right:0;margin-right:10px;top:0}.rbc-day-slot .rbc-events-container.rbc-rtl{left:10px;right:0}.rbc-day-slot .rbc-event,.rbc-day-slot .rbc-background-event{border:1px solid #265985;display:flex;max-height:100%;min-height:20px;flex-flow:column wrap;align-items:flex-start;overflow:hidden;position:absolute}.rbc-day-slot .rbc-background-event{opacity:.75}.rbc-day-slot .rbc-event-label{flex:none;padding-right:5px;width:auto}.rbc-day-slot .rbc-event-content{width:100%;flex:1 1 0;word-wrap:break-word;line-height:1;height:100%;min-height:1em}.rbc-day-slot .rbc-time-slot{border-top:1px solid #f7f7f7}.rbc-time-view-resources .rbc-time-gutter,.rbc-time-view-resources .rbc-time-header-gutter{position:sticky;left:0;background-color:#fff;border-right:1px solid #ddd;z-index:10;margin-right:-1px}.rbc-time-view-resources .rbc-time-header{overflow:hidden}.rbc-time-view-resources .rbc-time-header-content{min-width:auto;flex:1 0 0;flex-basis:0px}.rbc-time-view-resources .rbc-time-header-cell-single-day{display:none}.rbc-time-view-resources .rbc-day-slot{min-width:140px}.rbc-time-view-resources .rbc-header,.rbc-time-view-resources .rbc-day-bg{width:140px;flex:1 1 0;flex-basis:0 px}.rbc-time-header-content+.rbc-time-header-content{margin-left:-1px}.rbc-time-slot{flex:1 0 0}.rbc-time-slot.rbc-now{font-weight:700}.rbc-day-header{text-align:center}.rbc-slot-selection{z-index:10;position:absolute;background-color:#00000080;color:#fff;font-size:75%;width:100%;padding:3px}.rbc-slot-selecting{cursor:move}.rbc-time-view{display:flex;flex-direction:column;flex:1;width:100%;border:1px solid #ddd;min-height:0}.rbc-time-view .rbc-time-gutter{white-space:nowrap;text-align:right}.rbc-time-view .rbc-allday-cell{box-sizing:content-box;width:100%;height:100%;position:relative}.rbc-time-view .rbc-allday-cell+.rbc-allday-cell{border-left:1px solid #ddd}.rbc-time-view .rbc-allday-events{position:relative;z-index:4}.rbc-time-view .rbc-row{box-sizing:border-box;min-height:20px}.rbc-time-header{display:flex;flex:0 0 auto;flex-direction:row}.rbc-time-header.rbc-overflowing{border-right:1px solid #ddd}.rbc-rtl .rbc-time-header.rbc-overflowing{border-right-width:0;border-left:1px solid #ddd}.rbc-time-header>.rbc-row:first-child{border-bottom:1px solid #ddd}.rbc-time-header>.rbc-row.rbc-row-resource{border-bottom:1px solid #ddd}.rbc-time-header-cell-single-day{display:none}.rbc-time-header-content{flex:1;display:flex;min-width:0;flex-direction:column;border-left:1px solid #ddd}.rbc-rtl .rbc-time-header-content{border-left-width:0;border-right:1px solid #ddd}.rbc-time-header-content>.rbc-row.rbc-row-resource{border-bottom:1px solid #ddd;flex-shrink:0}.rbc-time-content{display:flex;flex:1 0 0%;align-items:flex-start;width:100%;border-top:2px solid #ddd;overflow-y:auto;position:relative}.rbc-time-content>.rbc-time-gutter{flex:none}.rbc-time-content>*+*>*{border-left:1px solid #ddd}.rbc-rtl .rbc-time-content>*+*>*{border-left-width:0;border-right:1px solid #ddd}.rbc-time-content>.rbc-day-slot{width:100%;-moz-user-select:none;user-select:none;-webkit-user-select:none}.rbc-current-time-indicator{position:absolute;z-index:3;left:0;right:0;height:1px;background-color:#74ad31;pointer-events:none}.rbc-resource-grouping.rbc-time-header-content{display:flex;flex-direction:column}.rbc-resource-grouping .rbc-row .rbc-header{width:141px}.react-datepicker__navigation-icon:before,.react-datepicker__year-read-view--down-arrow,.react-datepicker__month-read-view--down-arrow,.react-datepicker__month-year-read-view--down-arrow{border-color:#ccc;border-style:solid;border-width:3px 3px 0 0;content:"";display:block;height:9px;position:absolute;top:6px;width:9px}.react-datepicker-wrapper{display:inline-block;padding:0;border:0}.react-datepicker{font-family:Helvetica Neue,helvetica,arial,sans-serif;font-size:.8rem;background-color:#fff;color:#000;border:1px solid #aeaeae;border-radius:.3rem;display:inline-block;position:relative;line-height:initial}.react-datepicker--time-only .react-datepicker__time-container{border-left:0}.react-datepicker--time-only .react-datepicker__time,.react-datepicker--time-only .react-datepicker__time-box{border-bottom-left-radius:.3rem;border-bottom-right-radius:.3rem}.react-datepicker-popper{z-index:1;line-height:0}.react-datepicker-popper .react-datepicker__triangle{stroke:#aeaeae}.react-datepicker-popper[data-placement^=bottom] .react-datepicker__triangle{fill:#f0f0f0;color:#f0f0f0}.react-datepicker-popper[data-placement^=top] .react-datepicker__triangle{fill:#fff;color:#fff}.react-datepicker__header{text-align:center;background-color:#f0f0f0;border-bottom:1px solid #aeaeae;border-top-left-radius:.3rem;padding:8px 0;position:relative}.react-datepicker__header--time{padding-bottom:8px;padding-left:5px;padding-right:5px}.react-datepicker__header--time:not(.react-datepicker__header--time--only){border-top-left-radius:0}.react-datepicker__header:not(.react-datepicker__header--has-time-select){border-top-right-radius:.3rem}.react-datepicker__year-dropdown-container--select,.react-datepicker__month-dropdown-container--select,.react-datepicker__month-year-dropdown-container--select,.react-datepicker__year-dropdown-container--scroll,.react-datepicker__month-dropdown-container--scroll,.react-datepicker__month-year-dropdown-container--scroll{display:inline-block;margin:0 15px}.react-datepicker__current-month,.react-datepicker-time__header,.react-datepicker-year-header{margin-top:0;color:#000;font-weight:700;font-size:.944rem}h2.react-datepicker__current-month{padding:0;margin:0}.react-datepicker-time__header{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.react-datepicker__navigation{align-items:center;background:none;display:flex;justify-content:center;text-align:center;cursor:pointer;position:absolute;top:2px;padding:0;border:none;z-index:1;height:32px;width:32px;text-indent:-999em;overflow:hidden}.react-datepicker__navigation--previous{left:2px}.react-datepicker__navigation--next{right:2px}.react-datepicker__navigation--next--with-time:not(.react-datepicker__navigation--next--with-today-button){right:85px}.react-datepicker__navigation--years{position:relative;top:0;display:block;margin-left:auto;margin-right:auto}.react-datepicker__navigation--years-previous{top:4px}.react-datepicker__navigation--years-upcoming{top:-4px}.react-datepicker__navigation:hover *:before{border-color:#a6a6a6}.react-datepicker__navigation-icon{position:relative;top:-1px;font-size:20px;width:0}.react-datepicker__navigation-icon--next{left:-2px}.react-datepicker__navigation-icon--next:before{transform:rotate(45deg);left:-7px}.react-datepicker__navigation-icon--previous{right:-2px}.react-datepicker__navigation-icon--previous:before{transform:rotate(225deg);right:-7px}.react-datepicker__month-container{float:left}.react-datepicker__year{margin:.4rem;text-align:center}.react-datepicker__year-wrapper{display:flex;flex-wrap:wrap;max-width:180px}.react-datepicker__year .react-datepicker__year-text{display:inline-block;width:4rem;margin:2px}.react-datepicker__month{margin:.4rem;text-align:center}.react-datepicker__month .react-datepicker__month-text,.react-datepicker__month .react-datepicker__quarter-text{display:inline-block;width:4rem;margin:2px}.react-datepicker__input-time-container{clear:both;width:100%;float:left;margin:5px 0 10px 15px;text-align:left}.react-datepicker__input-time-container .react-datepicker-time__caption,.react-datepicker__input-time-container .react-datepicker-time__input-container{display:inline-block}.react-datepicker__input-time-container .react-datepicker-time__input-container .react-datepicker-time__input{display:inline-block;margin-left:10px}.react-datepicker__input-time-container .react-datepicker-time__input-container .react-datepicker-time__input input{width:auto}.react-datepicker__input-time-container .react-datepicker-time__input-container .react-datepicker-time__input input[type=time]::-webkit-inner-spin-button,.react-datepicker__input-time-container .react-datepicker-time__input-container .react-datepicker-time__input input[type=time]::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.react-datepicker__input-time-container .react-datepicker-time__input-container .react-datepicker-time__input input[type=time]{-moz-appearance:textfield}.react-datepicker__input-time-container .react-datepicker-time__input-container .react-datepicker-time__delimiter{margin-left:5px;display:inline-block}.react-datepicker__time-container{float:right;border-left:1px solid #aeaeae;width:85px}.react-datepicker__time-container--with-today-button{display:inline;border:1px solid #aeaeae;border-radius:.3rem;position:absolute;right:-87px;top:0}.react-datepicker__time-container .react-datepicker__time{position:relative;background:#fff;border-bottom-right-radius:.3rem}.react-datepicker__time-container .react-datepicker__time .react-datepicker__time-box{width:85px;overflow-x:hidden;margin:0 auto;text-align:center;border-bottom-right-radius:.3rem}.react-datepicker__time-container .react-datepicker__time .react-datepicker__time-box ul.react-datepicker__time-list{list-style:none;margin:0;height:calc(195px + .85rem);overflow-y:scroll;padding-right:0;padding-left:0;width:100%;box-sizing:content-box}.react-datepicker__time-container .react-datepicker__time .react-datepicker__time-box ul.react-datepicker__time-list li.react-datepicker__time-list-item{height:30px;padding:5px 10px;white-space:nowrap}.react-datepicker__time-container .react-datepicker__time .react-datepicker__time-box ul.react-datepicker__time-list li.react-datepicker__time-list-item:hover{cursor:pointer;background-color:#f0f0f0}.react-datepicker__time-container .react-datepicker__time .react-datepicker__time-box ul.react-datepicker__time-list li.react-datepicker__time-list-item--selected{background-color:#216ba5;color:#fff;font-weight:700}.react-datepicker__time-container .react-datepicker__time .react-datepicker__time-box ul.react-datepicker__time-list li.react-datepicker__time-list-item--selected:hover{background-color:#216ba5}.react-datepicker__time-container .react-datepicker__time .react-datepicker__time-box ul.react-datepicker__time-list li.react-datepicker__time-list-item--disabled{color:#ccc}.react-datepicker__time-container .react-datepicker__time .react-datepicker__time-box ul.react-datepicker__time-list li.react-datepicker__time-list-item--disabled:hover{cursor:default;background-color:transparent}.react-datepicker__week-number{color:#ccc;display:inline-block;width:1.7rem;line-height:1.7rem;text-align:center;margin:.166rem}.react-datepicker__week-number.react-datepicker__week-number--clickable{cursor:pointer}.react-datepicker__week-number.react-datepicker__week-number--clickable:not(.react-datepicker__week-number--selected):hover{border-radius:.3rem;background-color:#f0f0f0}.react-datepicker__week-number--selected{border-radius:.3rem;background-color:#216ba5;color:#fff}.react-datepicker__week-number--selected:hover{background-color:#1d5d90}.react-datepicker__day-names{white-space:nowrap;margin-bottom:-8px}.react-datepicker__week{white-space:nowrap}.react-datepicker__day-name,.react-datepicker__day,.react-datepicker__time-name{color:#000;display:inline-block;width:1.7rem;line-height:1.7rem;text-align:center;margin:.166rem}.react-datepicker__day,.react-datepicker__month-text,.react-datepicker__quarter-text,.react-datepicker__year-text{cursor:pointer}.react-datepicker__day:not([aria-disabled=true]):hover,.react-datepicker__month-text:not([aria-disabled=true]):hover,.react-datepicker__quarter-text:not([aria-disabled=true]):hover,.react-datepicker__year-text:not([aria-disabled=true]):hover{border-radius:.3rem;background-color:#f0f0f0}.react-datepicker__day--today,.react-datepicker__month-text--today,.react-datepicker__quarter-text--today,.react-datepicker__year-text--today{font-weight:700}.react-datepicker__day--highlighted,.react-datepicker__month-text--highlighted,.react-datepicker__quarter-text--highlighted,.react-datepicker__year-text--highlighted{border-radius:.3rem;background-color:#3dcc4a;color:#fff}.react-datepicker__day--highlighted:not([aria-disabled=true]):hover,.react-datepicker__month-text--highlighted:not([aria-disabled=true]):hover,.react-datepicker__quarter-text--highlighted:not([aria-disabled=true]):hover,.react-datepicker__year-text--highlighted:not([aria-disabled=true]):hover{background-color:#32be3f}.react-datepicker__day--highlighted-custom-1,.react-datepicker__month-text--highlighted-custom-1,.react-datepicker__quarter-text--highlighted-custom-1,.react-datepicker__year-text--highlighted-custom-1{color:#f0f}.react-datepicker__day--highlighted-custom-2,.react-datepicker__month-text--highlighted-custom-2,.react-datepicker__quarter-text--highlighted-custom-2,.react-datepicker__year-text--highlighted-custom-2{color:green}.react-datepicker__day--holidays,.react-datepicker__month-text--holidays,.react-datepicker__quarter-text--holidays,.react-datepicker__year-text--holidays{position:relative;border-radius:.3rem;background-color:#ff6803;color:#fff}.react-datepicker__day--holidays .overlay,.react-datepicker__month-text--holidays .overlay,.react-datepicker__quarter-text--holidays .overlay,.react-datepicker__year-text--holidays .overlay{position:absolute;bottom:100%;left:50%;transform:translate(-50%);background-color:#333;color:#fff;padding:4px;border-radius:4px;white-space:nowrap;visibility:hidden;opacity:0;transition:visibility 0s,opacity .3s ease-in-out}.react-datepicker__day--holidays:not([aria-disabled=true]):hover,.react-datepicker__month-text--holidays:not([aria-disabled=true]):hover,.react-datepicker__quarter-text--holidays:not([aria-disabled=true]):hover,.react-datepicker__year-text--holidays:not([aria-disabled=true]):hover{background-color:#cf5300}.react-datepicker__day--holidays:hover .overlay,.react-datepicker__month-text--holidays:hover .overlay,.react-datepicker__quarter-text--holidays:hover .overlay,.react-datepicker__year-text--holidays:hover .overlay{visibility:visible;opacity:1}.react-datepicker__day--selected,.react-datepicker__day--in-selecting-range,.react-datepicker__day--in-range,.react-datepicker__month-text--selected,.react-datepicker__month-text--in-selecting-range,.react-datepicker__month-text--in-range,.react-datepicker__quarter-text--selected,.react-datepicker__quarter-text--in-selecting-range,.react-datepicker__quarter-text--in-range,.react-datepicker__year-text--selected,.react-datepicker__year-text--in-selecting-range,.react-datepicker__year-text--in-range{border-radius:.3rem;background-color:#216ba5;color:#fff}.react-datepicker__day--selected:not([aria-disabled=true]):hover,.react-datepicker__day--in-selecting-range:not([aria-disabled=true]):hover,.react-datepicker__day--in-range:not([aria-disabled=true]):hover,.react-datepicker__month-text--selected:not([aria-disabled=true]):hover,.react-datepicker__month-text--in-selecting-range:not([aria-disabled=true]):hover,.react-datepicker__month-text--in-range:not([aria-disabled=true]):hover,.react-datepicker__quarter-text--selected:not([aria-disabled=true]):hover,.react-datepicker__quarter-text--in-selecting-range:not([aria-disabled=true]):hover,.react-datepicker__quarter-text--in-range:not([aria-disabled=true]):hover,.react-datepicker__year-text--selected:not([aria-disabled=true]):hover,.react-datepicker__year-text--in-selecting-range:not([aria-disabled=true]):hover,.react-datepicker__year-text--in-range:not([aria-disabled=true]):hover{background-color:#1d5d90}.react-datepicker__day--keyboard-selected,.react-datepicker__month-text--keyboard-selected,.react-datepicker__quarter-text--keyboard-selected,.react-datepicker__year-text--keyboard-selected{border-radius:.3rem;background-color:#bad9f1;color:#000}.react-datepicker__day--keyboard-selected:not([aria-disabled=true]):hover,.react-datepicker__month-text--keyboard-selected:not([aria-disabled=true]):hover,.react-datepicker__quarter-text--keyboard-selected:not([aria-disabled=true]):hover,.react-datepicker__year-text--keyboard-selected:not([aria-disabled=true]):hover{background-color:#1d5d90}.react-datepicker__day--in-selecting-range:not(.react-datepicker__day--in-range,.react-datepicker__month-text--in-range,.react-datepicker__quarter-text--in-range,.react-datepicker__year-text--in-range),.react-datepicker__month-text--in-selecting-range:not(.react-datepicker__day--in-range,.react-datepicker__month-text--in-range,.react-datepicker__quarter-text--in-range,.react-datepicker__year-text--in-range),.react-datepicker__quarter-text--in-selecting-range:not(.react-datepicker__day--in-range,.react-datepicker__month-text--in-range,.react-datepicker__quarter-text--in-range,.react-datepicker__year-text--in-range),.react-datepicker__year-text--in-selecting-range:not(.react-datepicker__day--in-range,.react-datepicker__month-text--in-range,.react-datepicker__quarter-text--in-range,.react-datepicker__year-text--in-range){background-color:#216ba580}.react-datepicker__month--selecting-range .react-datepicker__day--in-range:not(.react-datepicker__day--in-selecting-range,.react-datepicker__month-text--in-selecting-range,.react-datepicker__quarter-text--in-selecting-range,.react-datepicker__year-text--in-selecting-range),.react-datepicker__year--selecting-range .react-datepicker__day--in-range:not(.react-datepicker__day--in-selecting-range,.react-datepicker__month-text--in-selecting-range,.react-datepicker__quarter-text--in-selecting-range,.react-datepicker__year-text--in-selecting-range),.react-datepicker__month--selecting-range .react-datepicker__month-text--in-range:not(.react-datepicker__day--in-selecting-range,.react-datepicker__month-text--in-selecting-range,.react-datepicker__quarter-text--in-selecting-range,.react-datepicker__year-text--in-selecting-range),.react-datepicker__year--selecting-range .react-datepicker__month-text--in-range:not(.react-datepicker__day--in-selecting-range,.react-datepicker__month-text--in-selecting-range,.react-datepicker__quarter-text--in-selecting-range,.react-datepicker__year-text--in-selecting-range),.react-datepicker__month--selecting-range .react-datepicker__quarter-text--in-range:not(.react-datepicker__day--in-selecting-range,.react-datepicker__month-text--in-selecting-range,.react-datepicker__quarter-text--in-selecting-range,.react-datepicker__year-text--in-selecting-range),.react-datepicker__year--selecting-range .react-datepicker__quarter-text--in-range:not(.react-datepicker__day--in-selecting-range,.react-datepicker__month-text--in-selecting-range,.react-datepicker__quarter-text--in-selecting-range,.react-datepicker__year-text--in-selecting-range),.react-datepicker__month--selecting-range .react-datepicker__year-text--in-range:not(.react-datepicker__day--in-selecting-range,.react-datepicker__month-text--in-selecting-range,.react-datepicker__quarter-text--in-selecting-range,.react-datepicker__year-text--in-selecting-range),.react-datepicker__year--selecting-range .react-datepicker__year-text--in-range:not(.react-datepicker__day--in-selecting-range,.react-datepicker__month-text--in-selecting-range,.react-datepicker__quarter-text--in-selecting-range,.react-datepicker__year-text--in-selecting-range){background-color:#f0f0f0;color:#000}.react-datepicker__day--disabled,.react-datepicker__month-text--disabled,.react-datepicker__quarter-text--disabled,.react-datepicker__year-text--disabled{cursor:default;color:#ccc}.react-datepicker__day--disabled .overlay,.react-datepicker__month-text--disabled .overlay,.react-datepicker__quarter-text--disabled .overlay,.react-datepicker__year-text--disabled .overlay{position:absolute;bottom:70%;left:50%;transform:translate(-50%);background-color:#333;color:#fff;padding:4px;border-radius:4px;white-space:nowrap;visibility:hidden;opacity:0;transition:visibility 0s,opacity .3s ease-in-out}.react-datepicker__input-container{position:relative;display:inline-block;width:100%}.react-datepicker__input-container .react-datepicker__calendar-icon{position:absolute;padding:.5rem;box-sizing:content-box}.react-datepicker__view-calendar-icon input{padding:6px 10px 5px 25px}.react-datepicker__year-read-view,.react-datepicker__month-read-view,.react-datepicker__month-year-read-view{border:1px solid transparent;border-radius:.3rem;position:relative}.react-datepicker__year-read-view:hover,.react-datepicker__month-read-view:hover,.react-datepicker__month-year-read-view:hover{cursor:pointer}.react-datepicker__year-read-view:hover .react-datepicker__year-read-view--down-arrow,.react-datepicker__year-read-view:hover .react-datepicker__month-read-view--down-arrow,.react-datepicker__month-read-view:hover .react-datepicker__year-read-view--down-arrow,.react-datepicker__month-read-view:hover .react-datepicker__month-read-view--down-arrow,.react-datepicker__month-year-read-view:hover .react-datepicker__year-read-view--down-arrow,.react-datepicker__month-year-read-view:hover .react-datepicker__month-read-view--down-arrow{border-top-color:#b3b3b3}.react-datepicker__year-read-view--down-arrow,.react-datepicker__month-read-view--down-arrow,.react-datepicker__month-year-read-view--down-arrow{transform:rotate(135deg);right:-16px;top:0}.react-datepicker__year-dropdown,.react-datepicker__month-dropdown,.react-datepicker__month-year-dropdown{background-color:#f0f0f0;position:absolute;width:50%;left:25%;top:30px;z-index:1;text-align:center;border-radius:.3rem;border:1px solid #aeaeae}.react-datepicker__year-dropdown:hover,.react-datepicker__month-dropdown:hover,.react-datepicker__month-year-dropdown:hover{cursor:pointer}.react-datepicker__year-dropdown--scrollable,.react-datepicker__month-dropdown--scrollable,.react-datepicker__month-year-dropdown--scrollable{height:150px;overflow-y:scroll}.react-datepicker__year-option,.react-datepicker__month-option,.react-datepicker__month-year-option{line-height:20px;width:100%;display:block;margin-left:auto;margin-right:auto}.react-datepicker__year-option:first-of-type,.react-datepicker__month-option:first-of-type,.react-datepicker__month-year-option:first-of-type{border-top-left-radius:.3rem;border-top-right-radius:.3rem}.react-datepicker__year-option:last-of-type,.react-datepicker__month-option:last-of-type,.react-datepicker__month-year-option:last-of-type{-webkit-user-select:none;-moz-user-select:none;user-select:none;border-bottom-left-radius:.3rem;border-bottom-right-radius:.3rem}.react-datepicker__year-option:hover,.react-datepicker__month-option:hover,.react-datepicker__month-year-option:hover{background-color:#ccc}.react-datepicker__year-option:hover .react-datepicker__navigation--years-upcoming,.react-datepicker__month-option:hover .react-datepicker__navigation--years-upcoming,.react-datepicker__month-year-option:hover .react-datepicker__navigation--years-upcoming{border-bottom-color:#b3b3b3}.react-datepicker__year-option:hover .react-datepicker__navigation--years-previous,.react-datepicker__month-option:hover .react-datepicker__navigation--years-previous,.react-datepicker__month-year-option:hover .react-datepicker__navigation--years-previous{border-top-color:#b3b3b3}.react-datepicker__year-option--selected,.react-datepicker__month-option--selected,.react-datepicker__month-year-option--selected{position:absolute;left:15px}.react-datepicker__close-icon{cursor:pointer;background-color:transparent;border:0;outline:0;padding:0 6px 0 0;position:absolute;top:0;right:0;height:100%;display:table-cell;vertical-align:middle}.react-datepicker__close-icon:after{cursor:pointer;background-color:#216ba5;color:#fff;border-radius:50%;height:16px;width:16px;padding:2px;font-size:12px;line-height:1;text-align:center;display:table-cell;vertical-align:middle;content:"×"}.react-datepicker__close-icon--disabled{cursor:default}.react-datepicker__close-icon--disabled:after{cursor:default;background-color:#ccc}.react-datepicker__today-button{background:#f0f0f0;border-top:1px solid #aeaeae;cursor:pointer;text-align:center;font-weight:700;padding:5px 0;clear:left}.react-datepicker__portal{position:fixed;width:100vw;height:100vh;background-color:#000c;left:0;top:0;justify-content:center;align-items:center;display:flex;z-index:2147483647}.react-datepicker__portal .react-datepicker__day-name,.react-datepicker__portal .react-datepicker__day,.react-datepicker__portal .react-datepicker__time-name{width:3rem;line-height:3rem}@media (max-width: 400px),(max-height: 550px){.react-datepicker__portal .react-datepicker__day-name,.react-datepicker__portal .react-datepicker__day,.react-datepicker__portal .react-datepicker__time-name{width:2rem;line-height:2rem}}.react-datepicker__portal .react-datepicker__current-month,.react-datepicker__portal .react-datepicker-time__header{font-size:1.44rem}.react-datepicker__children-container{width:13.8rem;margin:.4rem;padding-right:.2rem;padding-left:.2rem;height:auto}.react-datepicker__aria-live{position:absolute;clip-path:circle(0);border:0;height:1px;margin:-1px;overflow:hidden;padding:0;width:1px;white-space:nowrap}.react-datepicker__calendar-icon{width:1em;height:1em;vertical-align:-.125em}:root{--primary-color: #4361ee;--primary-light: #e6e9ff;--secondary-color: #3f37c9;--accent-color: #4cc9f0;--success-color: #4caf50;--warning-color: #ff9800;--error-color: #f44336;--info-color: #2196f3;--text-color: #333;--text-light: #666;--text-lighter: #999;--bg-color: #f8f9fa;--card-bg: #ffffff;--border-color: #e0e0e0;--shadow: 0 2px 10px rgba(0, 0, 0, .08);--radius: 8px;--transition: all .3s ease}.dark-mode{--primary-color: #4361ee;--primary-light: #2a2d45;--secondary-color: #3f37c9;--accent-color: #4cc9f0;--success-color: #4caf50;--warning-color: #ff9800;--error-color: #f44336;--info-color: #2196f3;--text-color: #f0f0f0;--text-light: #c0c0c0;--text-lighter: #888;--bg-color: #121212;--card-bg: #1e1e1e;--border-color: #333;--shadow: 0 2px 10px rgba(0, 0, 0, .3)}*{margin:0;padding:0;box-sizing:border-box;font-family:Segoe UI,Tahoma,Geneva,Verdana,sans-serif}body{background-color:var(--bg-color);color:var(--text-color);line-height:1.6;transition:var(--transition)}.dashboard{display:flex;flex-direction:column;min-height:100vh}h1,h2,h3,h4,h5,h6{margin-bottom:1rem;color:var(--text-color);font-weight:600}h2{font-size:1.75rem}h3{font-size:1.5rem}h4{font-size:1.25rem}p{margin-bottom:1rem;color:var(--text-light)}a{color:var(--primary-color);text-decoration:none;transition:var(--transition)}a:hover{color:var(--secondary-color);text-decoration:underline}.main-content{flex:1;padding:1.5rem;margin-top:70px}.card{background-color:var(--card-bg);border-radius:var(--radius);box-shadow:var(--shadow);padding:1.5rem;margin-bottom:1.5rem;transition:var(--transition)}.card:hover{box-shadow:0 5px 15px #0000001a}.section-header{margin-bottom:1.5rem;padding-bottom:.75rem;border-bottom:1px solid var(--border-color)}.top-navbar{position:fixed;top:0;left:0;right:0;display:flex;justify-content:space-between;align-items:center;padding:.75rem 1.5rem;background-color:var(--card-bg);box-shadow:0 2px 10px #0000001a;z-index:1000;transition:var(--transition)}.dark-mode .top-navbar{box-shadow:0 2px 10px #0000004d}.nav-left{display:flex;align-items:center;gap:1rem}.nav-logo{height:40px;width:auto}.admin-name{font-weight:600;font-size:1.1rem}.nav-center{flex:1;max-width:500px;margin:0 1.5rem}.search-box{position:relative;width:100%}.search-icon{position:absolute;left:12px;top:50%;transform:translateY(-50%);color:var(--text-lighter)}.search-box input{width:100%;padding:.5rem 1rem .5rem 2.5rem;border-radius:var(--radius);border:1px solid var(--border-color);background-color:var(--card-bg);color:var(--text-color);transition:var(--transition)}.search-box input:focus{outline:none;border-color:var(--primary-color);box-shadow:0 0 0 2px #4361ee33}.nav-right{display:flex;align-items:center;gap:1rem}.notification-btn,.nav-link{display:flex;align-items:center;justify-content:center;width:36px;height:36px;border-radius:50%;background-color:transparent;border:none;color:var(--text-color);cursor:pointer;position:relative;transition:var(--transition)}.notification-btn:hover,.nav-link:hover{background-color:#0000000d}.dark-mode .notification-btn:hover,.dark-mode .nav-link:hover{background-color:#ffffff0d}.notification-indicator{position:absolute;top:4px;right:4px;width:8px;height:8px;border-radius:50%;background-color:var(--error-color)}.settings-dropdown{position:absolute;top:100%;right:0;width:250px;background-color:var(--card-bg);border-radius:var(--radius);box-shadow:var(--shadow);padding:.5rem 0;z-index:1001;transform-origin:top right;animation:fadeIn .2s ease-out}.dropdown-item{display:flex;align-items:center;padding:.75rem 1rem;width:100%;background:none;border:none;text-align:left;color:var(--text-color);cursor:pointer;transition:var(--transition)}.dropdown-item:hover{background-color:#0000000d}.dark-mode .dropdown-item:hover{background-color:#ffffff0d}.dropdown-item .icon{margin-right:.75rem;color:var(--text-light)}.dropdown-item.active{background-color:var(--primary-light);color:var(--primary-color)}.dropdown-item.logout{color:var(--error-color)}.dropdown-item.logout.logging-out{opacity:.7;cursor:not-allowed}.notification-badge{margin-left:auto;background-color:var(--error-color);color:#fff;font-size:.7rem;padding:.15rem .4rem;border-radius:10px}.notifications-dropdown{position:absolute;top:100%;right:0;width:350px;max-height:500px;overflow-y:auto;background-color:var(--card-bg);border-radius:var(--radius);box-shadow:var(--shadow);z-index:1001;transform-origin:top right;animation:fadeIn .2s ease-out}.notifications-header{display:flex;justify-content:space-between;align-items:center;padding:1rem;border-bottom:1px solid var(--border-color)}.mark-all-read{background:none;border:none;color:var(--primary-color);font-size:.8rem;cursor:pointer}.notifications-dropdown ul{list-style:none}.notifications-dropdown li{padding:1rem;border-bottom:1px solid var(--border-color);cursor:pointer;transition:var(--transition)}.notifications-dropdown li:hover{background-color:#0000000d}.dark-mode .notifications-dropdown li:hover{background-color:#ffffff0d}.notifications-dropdown li.unread{background-color:var(--primary-light)}.notifications-dropdown li p{margin-bottom:.25rem}.notifications-dropdown li time{font-size:.8rem;color:var(--text-lighter)}.unread-dot{display:inline-block;width:8px;height:8px;border-radius:50%;background-color:var(--primary-color);margin-left:.5rem}.no-notifications{padding:1.5rem;text-align:center;color:var(--text-lighter)}button{cursor:pointer;transition:var(--transition)}.primary-btn{background-color:var(--primary-color);color:#fff;border:none;border-radius:var(--radius);padding:.5rem 1rem;font-weight:500;display:inline-flex;align-items:center;gap:.5rem}.primary-btn:hover{background-color:var(--secondary-color);transform:translateY(-1px)}.secondary-btn{background-color:transparent;color:var(--primary-color);border:1px solid var(--primary-color);border-radius:var(--radius);padding:.5rem 1rem;font-weight:500;display:inline-flex;align-items:center;gap:.5rem}.secondary-btn:hover{background-color:var(--primary-light)}.edit-btn{background-color:var(--info-color);color:#fff;border:none;border-radius:4px;padding:.25rem .5rem;margin-right:.5rem}.delete-btn{background-color:var(--error-color);color:#fff;border:none;border-radius:4px;padding:.25rem .5rem}.dashboard-overview{display:flex;flex-direction:column;gap:1.5rem}.overview-header{display:flex;justify-content:space-between;align-items:center}.current-time{display:flex;align-items:center;gap:.5rem;color:var(--text-light)}.stats-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:1rem}.stat-card{background-color:var(--card-bg);border-radius:var(--radius);padding:1.5rem;box-shadow:var(--shadow);transition:var(--transition)}.stat-card:hover{transform:translateY(-3px);box-shadow:0 5px 15px #0000001a}.stat-value{font-size:2rem;font-weight:700;margin:.5rem 0}.stat-trend{font-size:.9rem;color:var(--text-light)}.responsive-charts-row{margin:1.5rem 0}.responsive-chart-card{background-color:var(--card-bg);border-radius:var(--radius);padding:1.5rem;box-shadow:var(--shadow);margin-bottom:1rem}.chart-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1rem}.chart-container{width:100%;overflow-x:auto}.attendance-bar-container{display:flex;align-items:center;margin:.5rem 0;gap:.5rem}.attendance-bar-label{width:40px;font-weight:500}.attendance-bar{flex:1;height:24px;display:flex;border-radius:4px;overflow:hidden;cursor:pointer}.attendance-segment{height:100%}.attendance-segment.present{background-color:var(--success-color)}.attendance-segment.late{background-color:var(--warning-color)}.attendance-segment.absent{background-color:var(--error-color)}.attendance-bar-total{width:40px;text-align:right;font-weight:500}.attendance-bar-legend-mobile{display:none}.performance-trend{display:flex;justify-content:space-around;align-items:flex-end;height:200px;margin-top:1rem}.performance-item{display:flex;flex-direction:column;align-items:center;gap:.5rem}.performance-bar-container{height:100%;display:flex;align-items:flex-end;width:40px}.performance-bar{width:100%;background-color:var(--primary-color);border-radius:4px 4px 0 0;opacity:0;transform-origin:bottom}@keyframes growHeight{0%{transform:scaleY(0);opacity:0}to{transform:scaleY(1);opacity:1}}.performance-label{font-weight:500}.performance-value{font-size:.9rem;color:var(--text-light)}.grade-distribution{display:flex;flex-direction:column;gap:.75rem;margin-top:1rem}.grade-item{display:flex;align-items:center;gap:.5rem}.grade-label{display:flex;justify-content:space-between;width:60px}.grade-name{font-weight:500}.grade-count{font-size:.8rem;color:var(--text-lighter)}.grade-bar-container{flex:1;height:20px;background-color:#0000000d;border-radius:10px;overflow:hidden}.dark-mode .grade-bar-container{background-color:#ffffff0d}.grade-bar{height:100%;opacity:0;transform-origin:left}@keyframes growWidth{0%{transform:scaleX(0);opacity:0}to{transform:scaleX(1);opacity:1}}.grade-percent{width:40px;text-align:right;font-weight:500}.upcoming-events{background-color:var(--card-bg);border-radius:var(--radius);padding:1.5rem;box-shadow:var(--shadow)}.events-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:1rem}.event-card{display:flex;align-items:center;gap:1rem;padding:1rem;border-radius:var(--radius);background-color:#00000005;transition:var(--transition)}.dark-mode .event-card{background-color:#ffffff05}.event-card:hover{background-color:#0000000d;transform:translateY(-2px)}.dark-mode .event-card:hover{background-color:#ffffff0d}.event-date{background-color:var(--primary-color);color:#fff;width:50px;height:50px;border-radius:var(--radius);display:flex;align-items:center;justify-content:center;font-weight:700;flex-shrink:0}.event-details h4{margin-bottom:.25rem}.event-details p{margin:0;font-size:.9rem;color:var(--text-light)}.dashboard-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1.5rem}.class-summary{display:flex;gap:1rem;font-size:.9rem;color:var(--text-light)}.present-count{color:var(--success-color)}.absent-count{color:var(--error-color)}.student-table,.teacher-table{width:100%;border-collapse:collapse}.student-table th,.teacher-table th{text-align:left;padding:.75rem;background-color:#00000005;font-weight:600;color:var(--text-color)}.dark-mode .student-table th,.dark-mode .teacher-table th{background-color:#ffffff05}.student-table td,.teacher-table td{padding:.75rem;border-bottom:1px solid var(--border-color)}.student-table tr:last-child td,.teacher-table tr:last-child td{border-bottom:none}.student-table tr:hover,.teacher-table tr:hover{background-color:#00000005}.dark-mode .student-table tr:hover,.dark-mode .teacher-table tr:hover{background-color:#ffffff05}.student-table tr.selected,.teacher-table tr.selected{background-color:var(--primary-light)}.student-info-cell,.teacher-info-cell{display:flex;flex-direction:column}.student-id,.teacher-id{font-size:.8rem;color:var(--text-lighter)}.student-name,.teacher-name{font-weight:500}.status-display{display:inline-block;padding:.25rem .5rem;border-radius:4px;font-size:.8rem;font-weight:500}.status-display.present{background-color:#4caf501a;color:var(--success-color)}.status-display.absent{background-color:#f443361a;color:var(--error-color)}.status-display.late{background-color:#ff98001a;color:var(--warning-color)}.status-display.active{background-color:#4caf501a;color:var(--success-color)}.status-display.on-leave{background-color:#ff98001a;color:var(--warning-color)}.action-buttons{display:flex;gap:.5rem}.student-details,.teacher-details{margin-top:1.5rem}.student-info-grid,.teacher-info-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:1.5rem}.info-item{display:flex;margin-bottom:.75rem}.info-item .label{font-weight:500;min-width:120px;color:var(--text-light)}.attendance-status{display:flex;flex-direction:column;gap:.75rem}.status-item{display:flex;justify-content:space-between}.status-badge{display:inline-block;padding:.25rem .5rem;border-radius:4px;font-size:.8rem;font-weight:500}.status-badge.present{background-color:#4caf501a;color:var(--success-color)}.status-badge.absent{background-color:#f443361a;color:var(--error-color)}.status-badge.late{background-color:#ff98001a;color:var(--warning-color)}.status-badge.sent{background-color:#2196f31a;color:var(--info-color)}.status-badge.read{background-color:#4caf501a;color:var(--success-color)}.performance-section{grid-column:span 2}.chart-bar{height:24px;margin-bottom:.5rem;border-radius:4px;background-color:var(--primary-color);display:flex;align-items:center;padding-left:.5rem;color:#fff;font-size:.8rem;font-weight:500}.performance-summary{display:flex;justify-content:space-between;margin-top:1rem}.performance-stat{text-align:center}.performance-stat .stat-value{font-size:1.5rem;font-weight:700;color:var(--primary-color)}.notes-section{grid-column:span 2}.notes-content{background-color:#00000005;padding:1rem;border-radius:var(--radius);line-height:1.6}.dark-mode .notes-content{background-color:#ffffff05}.qualifications-section{grid-column:span 2}.qualifications-list{display:flex;flex-direction:column;gap:.5rem}.qualification-item{display:flex;align-items:center;gap:.5rem}.qualification-item .icon{color:var(--primary-color)}.assigned-students{grid-column:span 2}.students-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:1rem}.student-item{display:flex;align-items:center;gap:.75rem;padding:.75rem;border-radius:var(--radius);background-color:#00000005;transition:var(--transition)}.dark-mode .student-item{background-color:#ffffff05}.student-item:hover{background-color:#0000000d;transform:translateY(-2px)}.dark-mode .student-item:hover{background-color:#ffffff0d}.student-avatar{width:36px;height:36px;min-width:36px;min-height:36px;border-radius:50%;background-color:var(--primary-color);color:#fff;display:flex;align-items:center;justify-content:center;font-weight:600;flex-shrink:0}.student-info{flex:1}.student-info .student-name{font-weight:500;margin-bottom:.1rem}.student-info .student-id{font-size:.7rem;color:var(--text-lighter)}.view-more{text-align:center;font-size:.8rem;color:var(--text-light);cursor:pointer}.view-more:hover{color:var(--primary-color)}.messages-section{display:flex;flex-direction:column;gap:1.5rem}.messages-list{display:grid;grid-template-columns:1fr 1fr;gap:1.5rem}.message-composer{background-color:#00000005;padding:1.5rem;border-radius:var(--radius)}.dark-mode .message-composer{background-color:#ffffff05}.form-group label{display:block;margin-bottom:.5rem;font-weight:500}.form-group select,.form-group textarea{width:100%;padding:.75rem;border-radius:var(--radius);border:1px solid var(--border-color);background-color:var(--card-bg);color:var(--text-color);transition:var(--transition)}.form-group select:focus,.form-group textarea:focus{outline:none;border-color:var(--primary-color);box-shadow:0 0 0 2px #4361ee33}.message-history{background-color:#00000005;padding:1.5rem;border-radius:var(--radius)}.dark-mode .message-history{background-color:#ffffff05}.message-container{margin-bottom:1.5rem;padding-bottom:1.5rem;border-bottom:1px solid var(--border-color)}.message-container:last-child{margin-bottom:0;padding-bottom:0;border-bottom:none}.message-header{display:flex;justify-content:space-between;margin-bottom:.5rem}.message-header time{color:var(--text-lighter);font-size:.8rem}.message-text{margin-bottom:.5rem;line-height:1.6}.reports-section{display:flex;flex-direction:column;gap:1.5rem}.reports-filter{display:flex;gap:1rem;margin-top:1rem}.reports-filter select{padding:.5rem;border-radius:var(--radius);border:1px solid var(--border-color);background-color:var(--card-bg);color:var(--text-color)}.reports-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:1.5rem;margin-top:1.5rem}.report-card{background-color:var(--card-bg);border-radius:var(--radius);padding:1.5rem;box-shadow:var(--shadow);transition:var(--transition);display:flex;gap:1rem}.report-card:hover{transform:translateY(-3px);box-shadow:0 5px 15px #0000001a}.report-icon{width:48px;height:48px;border-radius:50%;background-color:var(--primary-light);display:flex;align-items:center;justify-content:center;color:var(--primary-color);flex-shrink:0}.report-content{flex:1}.report-content h4{margin-bottom:.5rem}.report-content p{margin-bottom:1rem;font-size:.9rem;color:var(--text-light)}.calendar-container{height:600px}.rbc-calendar{background-color:var(--card-bg);border-radius:var(--radius);padding:1rem}.rbc-header{padding:.5rem 0;font-weight:500}.rbc-event{background-color:var(--primary-color);border:none;padding:.25rem .5rem;border-radius:4px}.rbc-event-content{font-size:.9rem}.rbc-today{background-color:var(--primary-light)}.quick-actions-container{position:fixed;bottom:2rem;right:2rem;z-index:100}.add-form{padding:1rem}.form-header{display:flex;align-items:center;margin-bottom:1.5rem}.form-header h3{margin:0;flex:1;text-align:center}.back-btn{background:none;border:none;cursor:pointer;color:var(--text-secondary);padding:.5rem}.back-btn:hover{color:var(--primary-color)}.form-group{margin-bottom:1rem}.form-group label{display:block;margin-bottom:.5rem;font-size:.9rem;color:var(--text-secondary)}.form-group input,.form-group select{width:100%;padding:.75rem;border:1px solid #ddd;border-radius:8px;font-family:inherit}.dark-mode .form-group input,.dark-mode .form-group select{background:var(--dark-bg);border-color:var(--dark-border);color:var(--dark-text)}.subjects-input{display:flex;align-items:center}.subjects-input input{flex:1}.full-width{width:100%;margin-top:1rem}.quick-actions-menu{position:absolute;bottom:70px;right:0;width:300px;background-color:var(--card-bg);border-radius:var(--radius);box-shadow:var(--shadow);padding:1rem;display:flex;flex-direction:column;gap:.75rem;transform-origin:bottom right;animation:fadeIn .2s ease-out}.quick-action{display:flex;align-items:center;gap:.75rem;padding:.75rem;border-radius:var(--radius);background:none;border:none;text-align:left;color:var(--text-color);cursor:pointer;transition:var(--transition)}.quick-action:hover{background-color:#0000000d}.dark-mode .quick-action:hover{background-color:#ffffff0d}.announcement-input{margin-top:.5rem}.announcement-input textarea{width:100%;padding:.75rem;border-radius:var(--radius);border:1px solid var(--border-color);background-color:var(--card-bg);color:var(--text-color);margin-bottom:.5rem;resize:none}.modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background-color:#00000080;display:flex;align-items:center;justify-content:center;z-index:2000;animation:fadeIn .2s ease-out}.modal-content{background-color:var(--card-bg);border-radius:var(--radius);box-shadow:var(--shadow);padding:2rem;width:90%;max-width:500px;max-height:90vh;overflow-y:auto;position:relative;animation:slideUp .3s ease-out}.modal-close{position:absolute;top:1rem;right:1rem;background:none;border:none;font-size:1.5rem;color:var(--text-light);cursor:pointer}.event-time{display:flex;align-items:center;gap:.5rem;margin-bottom:1rem;color:var(--text-light)}.event-description{margin:1.5rem 0}.modal-actions{display:flex;gap:1rem;margin-top:1.5rem}.attendance-details-modal{width:90%;max-width:800px}.date-selector{display:flex;align-items:center;gap:.5rem;margin:1rem 0}.attendance-details-grid{display:grid;grid-template-columns:1fr 2fr;gap:1.5rem;margin:1.5rem 0}.attendance-summary{background-color:#00000005;padding:1.5rem;border-radius:var(--radius)}.dark-mode .attendance-summary{background-color:#ffffff05}.summary-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem;margin-top:1rem}.summary-stat{text-align:center;padding:1rem;border-radius:var(--radius)}.summary-stat.present{background-color:#4caf501a}.summary-stat.absent{background-color:#f443361a}.summary-stat.late{background-color:#ff98001a}.stat-value{font-size:1.5rem;font-weight:700;margin-bottom:.25rem}.stat-label{font-size:.9rem;color:var(--text-light)}.attendance-table{background-color:#00000005;border-radius:var(--radius);overflow:hidden}.dark-mode .attendance-table{background-color:#ffffff05}.attendance-header{display:flex;padding:.75rem 1rem;background-color:#0000000d;font-weight:500}.dark-mode .attendance-header{background-color:#ffffff0d}.attendance-header span{flex:1}.attendance-row{display:flex;padding:.75rem 1rem;border-bottom:1px solid var(--border-color)}.attendance-row:last-child{border-bottom:none}.attendance-row span{flex:1}.student-name{font-weight:500}.notification{position:fixed;bottom:1rem;right:1rem;padding:1rem 1.5rem;border-radius:var(--radius);color:#fff;font-weight:500;z-index:3000;animation:slideIn .3s ease-out}.notification.success{background-color:var(--success-color)}.notification.error{background-color:var(--error-color)}.swipeable-container{position:relative;width:100%;overflow:hidden;border-radius:var(--radius)}.swipeable-content{display:flex;transition:transform .3s ease}.swipeable-item{flex-shrink:0;width:100%}.swipe-indicators{display:flex;justify-content:center;gap:.5rem;margin-top:1rem}.indicator{width:8px;height:8px;border-radius:50%;background-color:var(--border-color);cursor:pointer}.indicator.active{background-color:var(--primary-color)}.swipe-nav{position:absolute;top:50%;transform:translateY(-50%);width:36px;height:36px;border-radius:50%;background-color:var(--card-bg);color:var(--text-color);border:none;box-shadow:var(--shadow);display:flex;align-items:center;justify-content:center;z-index:10;cursor:pointer}.swipe-nav.left{left:1rem}.swipe-nav.right{right:1rem}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideUp{0%{transform:translateY(20px);opacity:0}to{transform:translateY(0);opacity:1}}@keyframes slideIn{0%{transform:translate(100%);opacity:0}to{transform:translate(0);opacity:1}}@media (max-width: 1200px){.messages-list,.student-info-grid,.teacher-info-grid{grid-template-columns:1fr}.performance-section,.notes-section,.qualifications-section,.assigned-students{grid-column:span 1}.attendance-details-grid{grid-template-columns:1fr}}@media (max-width: 768px){.top-navbar{padding:.75rem 1rem}.nav-center{display:none}.stats-grid,.reports-grid{grid-template-columns:1fr 1fr}.attendance-bar-label,.attendance-bar-total{display:none}.attendance-bar-legend-mobile{display:flex;gap:.5rem;font-size:.8rem}.present-mobile{color:var(--success-color)}.late-mobile{color:var(--warning-color)}.absent-mobile{color:var(--error-color)}.student-table,.teacher-table{display:block;overflow-x:auto}.quick-actions-menu{width:250px}}@media (max-width: 576px){.stats-grid,.reports-grid{grid-template-columns:1fr}.dashboard-header{flex-direction:column;align-items:flex-start;gap:1rem}.modal-content,.attendance-details-modal{width:95%;padding:1.5rem 1rem}.modal-actions{flex-direction:column}.primary-btn,.secondary-btn{width:100%}.quick-actions-container{bottom:1rem;right:1rem}.quick-actions-menu{width:220px}}.role-login-page{display:flex;justify-content:center;align-items:center;min-height:100vh;background-color:#f5f7fa;padding:20px}.login-card{background:#fff;border-radius:12px;box-shadow:0 4px 20px #0000001a;padding:40px;width:100%;max-width:450px;text-align:center}.title{color:#2c3e50;font-size:2.2rem;margin-bottom:5px}.subtitle{color:#7f8c8d;font-size:1rem;margin-bottom:30px;font-weight:400}.role{color:#2c3e50;margin-bottom:20px;font-size:1.2rem}.error-message{color:#e74c3c;background-color:#fdecea;padding:10px 15px;border-radius:6px;margin-bottom:20px;font-size:.9rem}.role-radio-list{display:flex;flex-direction:column;gap:12px;margin-bottom:25px}.radio-option{display:flex;align-items:center;padding:12px 15px;border:1px solid #e0e0e0;border-radius:8px;cursor:pointer;transition:all .2s;position:relative}.radio-option:hover{border-color:#3498db}.radio-option.active{border-color:#3498db;background-color:#f0f7fd}.hidden-radio{position:absolute;opacity:0}.custom-radio{width:18px;height:18px;border:2px solid #bdc3c7;border-radius:50%;margin-right:12px;position:relative;transition:all .2s}.radio-option.active .custom-radio{border-color:#3498db;background-color:#3498db}.radio-option.active .custom-radio:after{content:"";position:absolute;width:8px;height:8px;background:#fff;border-radius:50%;top:50%;left:50%;transform:translate(-50%,-50%)}.input-group{margin-bottom:20px}.input-field{width:100%;padding:14px 16px;border:1px solid #e0e0e0;border-radius:8px;font-size:1rem;transition:border-color .2s}.input-field:focus{outline:none;border-color:#3498db;box-shadow:0 0 0 2px #3498db33}.auth-buttons{margin-top:30px}.login-btn{width:100%;padding:14px;background-color:#3498db;color:#fff;border:none;border-radius:8px;font-size:1rem;font-weight:500;cursor:pointer;transition:background-color .2s}.login-btn:hover{background-color:#2980b9}.login-btn:disabled{background-color:#bdc3c7;cursor:not-allowed}.signup-link{margin-top:15px;color:#7f8c8d;font-size:.9rem}.signup-text{color:#3498db;text-decoration:none;font-weight:500}.signup-text:hover{text-decoration:underline}.forgot-password{margin-top:20px}.forgot-password a{color:#7f8c8d;font-size:.9rem;text-decoration:none}.forgot-password a:hover{color:#3498db;text-decoration:underline}/*! tailwindcss v4.1.11 | MIT License | https://tailwindcss.com */@layer properties{@supports ((-webkit-hyphens:none) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-border-style:solid;--tw-duration:initial}}}.visible{visibility:visible}.fixed{position:fixed}.z-50{z-index:50}.container{width:100%}.mx-auto{margin-inline:auto}.block{display:block}.flex{display:flex}.grid{display:grid}.hidden{display:none}.inline{display:inline}.h-full{height:100%}.min-h-screen{min-height:100vh}.w-full{width:100%}.flex-grow{flex-grow:1}.transform{transform:var(--tw-rotate-x,)var(--tw-rotate-y,)var(--tw-rotate-z,)var(--tw-skew-x,)var(--tw-skew-y,)}.cursor-not-allowed{cursor:not-allowed}.resize{resize:both}.grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.flex-col{flex-direction:column}.items-center{align-items:center}.justify-between{justify-content:space-between}.justify-center{justify-content:center}.overflow-x-hidden{overflow-x:hidden}.border{border-style:var(--tw-border-style);border-width:1px}.border-t{border-top-style:var(--tw-border-style);border-top-width:1px}.border-b{border-bottom-style:var(--tw-border-style);border-bottom-width:1px}.text-center{text-align:center}.capitalize{text-transform:capitalize}.opacity-25{opacity:.25}.opacity-70{opacity:.7}.opacity-75{opacity:.75}.transition{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,-webkit-backdrop-filter,backdrop-filter,display,visibility,content-visibility,overlay,pointer-events;transition-timing-function:var(--tw-ease,ease);transition-duration:var(--tw-duration,0s)}.duration-200{--tw-duration:.2s;transition-duration:.2s}@media (hover:hover){.hover\:underline:hover{text-decoration-line:underline}}.focus\:outline-none:focus{--tw-outline-style:none;outline-style:none}@property --tw-rotate-x{syntax:"*";inherits:false}@property --tw-rotate-y{syntax:"*";inherits:false}@property --tw-rotate-z{syntax:"*";inherits:false}@property --tw-skew-x{syntax:"*";inherits:false}@property --tw-skew-y{syntax:"*";inherits:false}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-duration{syntax:"*";inherits:false}
