@charset "UTF-8";:root{--primary-color:#3498db;--primary-dark:#2980b9;--secondary-color:#2c3e50;--secondary-light:#34495e;--success-color:#27ae60;--success-dark:#229954;--warning-color:#f39c12;--warning-dark:#e67e22;--danger-color:#e74c3c;--danger-dark:#c0392b;--info-color:#17a2b8;--light-color:#f8f9fa;--dark-color:#343a40;--muted-color:#7f8c8d;--border-color:#ddd;--font-family-base:-apple-system,BlinkMacSystemFont,"Segoe UI","Roboto","Oxygen","Ubuntu","Cantarell","Fira Sans","Droid Sans","Helvetica Neue",sans-serif;--font-size-base:1rem;--font-size-sm:0.875rem;--font-size-lg:1.125rem;--font-weight-normal:400;--font-weight-medium:500;--font-weight-semibold:600;--font-weight-bold:700;--line-height-base:1.5;--spacing-xs:0.25rem;--spacing-sm:0.5rem;--spacing-md:1rem;--spacing-lg:1.5rem;--spacing-xl:2rem;--spacing-xxl:3rem;--border-radius-sm:4px;--border-radius-md:8px;--border-radius-lg:12px;--border-radius-xl:16px;--shadow-sm:0 1px 3px #0000001a;--shadow-md:0 2px 10px #0000001a;--shadow-lg:0 4px 20px #00000026;--shadow-xl:0 8px 30px #0003;--transition-fast:0.15s ease;--transition-base:0.2s ease;--transition-slow:0.3s ease}*{box-sizing:border-box}body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background-color:#f8f9fa;background-color:var(--light-color);color:#2c3e50;color:var(--secondary-color);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;font-family:var(--font-family-base);font-size:1rem;font-size:var(--font-size-base);line-height:1.5;line-height:var(--line-height-base);margin:0}html{scroll-behavior:smooth}:focus,button:focus{outline:2px solid #3498db;outline:2px solid var(--primary-color);outline-offset:2px}button{background:none;border:none;cursor:pointer;font-family:inherit}a{color:#3498db;color:var(--primary-color);text-decoration:none;transition:color .2s ease;transition:color var(--transition-base)}a:hover{color:#2980b9;color:var(--primary-dark)}input,select,textarea{font-family:inherit;font-size:inherit}.sr-only{clip:rect(0,0,0,0);border:0;height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;white-space:nowrap;width:1px}.text-center{text-align:center}.text-left{text-align:left}.text-right{text-align:right}.font-weight-normal{font-weight:400;font-weight:var(--font-weight-normal)}.font-weight-medium{font-weight:500;font-weight:var(--font-weight-medium)}.font-weight-semibold{font-weight:600;font-weight:var(--font-weight-semibold)}.font-weight-bold{font-weight:700;font-weight:var(--font-weight-bold)}.text-muted{color:#7f8c8d;color:var(--muted-color)}.text-primary{color:#3498db;color:var(--primary-color)}.text-success{color:#27ae60;color:var(--success-color)}.text-warning{color:#f39c12;color:var(--warning-color)}.text-danger{color:#e74c3c;color:var(--danger-color)}@keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}.loading{animation:pulse 2s infinite}.skeleton{animation:loading 1.5s infinite;background:linear-gradient(90deg,#f0f0f0 25%,#e0e0e0 50%,#f0f0f0 75%);background-size:200% 100%}@keyframes loading{0%{background-position:200% 0}to{background-position:-200% 0}}@media print{*{-webkit-print-color-adjust:exact!important;print-color-adjust:exact!important}body{background:#fff!important}.no-print{display:none!important}}code{font-family:source-code-pro,Menlo,Monaco,Consolas,Courier New,monospace}.login-form-container{align-items:center;background:linear-gradient(135deg,#667eea,#764ba2);display:flex;justify-content:center;min-height:100vh;padding:20px}.login-form-card{background:#fff;border-radius:12px;box-shadow:0 20px 40px #0000001a;max-width:400px;padding:40px;width:100%}.login-header{margin-bottom:30px;text-align:center}.login-header h1{color:#333;font-size:28px;font-weight:600;margin:0 0 8px}.login-header p{color:#666;font-size:16px;margin:0}.login-form{gap:20px}.form-group,.login-form{display:flex;flex-direction:column}.form-group{gap:6px}.form-group label{font-size:14px}.form-group input{border:2px solid #e1e5e9;border-radius:8px;font-size:16px;padding:12px 16px;transition:border-color .2s ease}.form-group input:focus{border-color:#667eea;box-shadow:0 0 0 3px #667eea1a;outline:none}.form-group input.error{border-color:#e74c3c}.form-group input:disabled{background-color:#f8f9fa;cursor:not-allowed}.password-input-container input{padding-right:50px}.password-toggle{border-radius:4px;font-size:18px;right:12px;transition:background-color .2s ease}.password-toggle:hover{background-color:#f8f9fa}.password-toggle:disabled{cursor:not-allowed;opacity:.5}.error-message{font-size:14px}.general-error{background-color:#fdf2f2;text-align:center}.login-button{background:linear-gradient(135deg,#667eea,#764ba2);border:none;border-radius:8px;color:#fff;cursor:pointer;font-size:16px;font-weight:600;margin-top:10px;padding:14px 20px;transition:transform .2s ease,box-shadow .2s ease}.login-button:hover:not(:disabled){box-shadow:0 8px 20px #667eea4d;transform:translateY(-2px)}.login-button:active:not(:disabled){transform:translateY(0)}.login-button:disabled{box-shadow:none;cursor:not-allowed;opacity:.7;transform:none}.login-footer{margin-top:30px;text-align:center}.demo-credentials{background-color:#f8f9fa;border:1px solid #e9ecef;border-radius:6px;color:#666;font-size:14px;line-height:1.5;margin:0;padding:16px}.demo-credentials strong{color:#333;display:block;margin-bottom:8px}@media (max-width:480px){.login-form-container{padding:10px}.login-form-card{padding:30px 20px}.login-header h1{font-size:24px}}.header{background-color:#2c3e50;border-bottom:3px solid #3498db;box-shadow:0 2px 8px #00000026;color:#fff;padding:1.25rem 0}.header-content{justify-content:space-between;margin:0 auto;max-width:1200px;padding:0 1.5rem}.header-title{color:#fff!important;font-size:1.75rem;font-weight:700;letter-spacing:.5px;margin:0;opacity:1!important;text-align:center;text-shadow:1px 1px 2px #0000004d}.header-actions{gap:.5rem}.header-button{background-color:#3498db;border:none;border-radius:4px;color:#fff;cursor:pointer;font-size:.9rem;padding:.5rem 1rem;transition:background-color .2s}.header-button:hover{background-color:#2980b9}.header-user{position:relative}.user-info{align-items:center;border-radius:4px;cursor:pointer;display:flex;gap:.5rem;padding:.5rem 1rem;transition:background-color .2s}.user-info:hover{background-color:#ffffff1a}.user-name{font-weight:600;gap:.5rem}.superadmin-badge{background-color:#e74c3c;font-size:.7rem}.user-role{font-size:.85rem;opacity:.8}.dropdown-arrow{font-size:.7rem}.user-menu{background:#fff;border-radius:4px;box-shadow:0 4px 12px #00000026;margin-top:.5rem;min-width:160px;position:absolute;right:0;top:100%;z-index:1000}.menu-item{background:none;border:none;color:#333;cursor:pointer;display:block;font-size:.9rem;padding:.75rem 1rem;text-align:left;transition:background-color .2s;width:100%}.menu-item:hover{background-color:#f8f9fa}.menu-item.logout{border-top:1px solid #eee;color:#e74c3c}.menu-item.logout:hover{background-color:#fdf2f2}@media (max-width:768px){.header-content{flex-direction:column;gap:1rem}.header-title{font-size:1.25rem}.user-info{flex-direction:column;text-align:center}}.sidebar{background-color:#34495e;color:#fff;height:100vh;overflow:hidden;transition:width .3s ease}.sidebar-open{width:250px}.sidebar-closed{width:60px}.sidebar-nav{padding:1rem 0}.sidebar-menu{list-style:none;margin:0;padding:0}.sidebar-menu-item{margin-bottom:.25rem}.sidebar-link{align-items:center;color:#fff;display:flex;padding:.75rem 1rem;text-decoration:none;transition:background-color .2s}.sidebar-link:hover{background-color:#2c3e50}.sidebar-link.active{background-color:#3498db}.sidebar-icon{font-size:1.25rem;margin-right:.75rem;text-align:center;width:24px}.sidebar-label{font-size:.9rem;white-space:nowrap}@media (max-width:768px){.sidebar{left:0;position:fixed;top:0;transform:translateX(-100%);z-index:1000}.sidebar-open{transform:translateX(0)}}.main-layout{display:flex;flex-direction:column;height:100vh}.layout-body{display:flex;flex:1 1;overflow:hidden}.main-content{background-color:#f8f9fa;flex:1 1;overflow-y:auto;transition:margin-left .3s ease}.content-full,.content-with-sidebar{margin-left:0}.content-wrapper{margin:0 auto;max-width:1200px;padding:2rem}@media (max-width:768px){.content-wrapper{padding:1rem}.main-content{margin-left:0!important}}.overdue-fees-widget{background:#fff;border-left:4px solid #dc3545;border-radius:8px;box-shadow:0 2px 4px #0000001a;height:fit-content;overflow:hidden}.widget-header{background-color:#f8f9fa;border-bottom:1px solid #e9ecef;justify-content:space-between;padding:1rem 1.5rem}.header-content,.widget-header{align-items:center;display:flex}.header-content{gap:.75rem}.header-content h3{color:#495057;font-size:1.1rem;font-weight:600;margin:0}.total-badge{background-color:#dc3545;border-radius:12px;color:#fff;font-size:.75rem;font-weight:600;min-width:20px;padding:.25rem .5rem;text-align:center}.refresh-btn{background:none;color:#6c757d;font-size:1rem;padding:.25rem}.refresh-btn:hover{background-color:#e9ecef;color:#495057}.widget-body{max-height:400px;overflow-y:auto;padding:1rem 1.5rem}.widget-error,.widget-loading{align-items:center;display:flex;flex-direction:column;justify-content:center;padding:2rem 1rem;text-align:center}.loading-spinner{border:2px solid #f3f3f3;height:24px;margin-bottom:.5rem;width:24px}.widget-error p,.widget-loading p{color:#6c757d;font-size:.9rem;margin:0}.error-icon{font-size:1.5rem;margin-bottom:.5rem}.retry-btn{background:#007bff;border:none;border-radius:4px;color:#fff;cursor:pointer;font-size:.8rem;margin-top:.5rem;padding:.5rem 1rem;transition:background-color .2s}.retry-btn:hover{background:#0056b3}.no-overdue{align-items:center;display:flex;flex-direction:column;justify-content:center;padding:2rem 1rem;text-align:center}.no-overdue-icon{font-size:2.5rem;margin-bottom:1rem;opacity:.8}.no-overdue h4{color:#28a745;font-size:1.1rem;font-weight:600;margin:0 0 .5rem}.no-overdue p{color:#6c757d;font-size:.9rem;margin:0}.overdue-list{display:flex;flex-direction:column;gap:1rem}.overdue-item{align-items:flex-start;background-color:#fff5f5;border:1px solid #fed7d7;border-radius:6px;display:flex;justify-content:space-between;padding:1rem;transition:all .2s}.overdue-item:hover{background-color:#fed7d7;border-color:#fc8181;box-shadow:0 2px 4px #dc35451a;transform:translateY(-1px)}.student-info{flex:1 1;min-width:0}.student-name{font-size:.95rem;margin-bottom:.25rem}.fee-description{color:#6c757d;font-size:.85rem;line-height:1.3}.fee-details{align-items:flex-end;display:flex;flex-direction:column;flex-shrink:0;gap:.25rem;margin-left:1rem}.amount{color:#dc3545}.due-info{align-items:flex-end;display:flex;flex-direction:column;gap:.125rem}.due-date{color:#6c757d;font-size:.75rem}.days-overdue{border-radius:8px;font-size:.75rem;padding:.125rem .5rem;text-align:center}.days-overdue.warning{background-color:#fff3cd;color:#856404}.days-overdue.danger{background-color:#f8d7da;color:#721c24}.days-overdue.critical{background-color:#721c24;color:#fff}.more-items{border-top:1px solid #e9ecef;margin-top:1rem;padding:.75rem 0;text-align:center}.more-text{color:#6c757d;font-size:.85rem;font-style:italic}.widget-footer{background-color:#f8f9fa;border-top:1px solid #e9ecef;padding:1rem 1.5rem}.view-all-btn{border-radius:4px;color:#007bff;display:block;font-size:.9rem;font-weight:600;padding:.5rem;text-align:center;text-decoration:none;transition:all .2s}.view-all-btn:hover{background-color:#e7f3ff;color:#0056b3;text-decoration:none}@media (max-width:768px){.widget-body,.widget-header{padding:.75rem 1rem}.overdue-item{align-items:stretch;flex-direction:column;gap:.75rem}.fee-details{align-items:flex-start;margin-left:0}.due-info{align-items:center;flex-direction:row;gap:.5rem}.days-overdue{font-size:.7rem;padding:.125rem .375rem}}@media (max-width:480px){.header-content h3{font-size:1rem}.total-badge{font-size:.7rem;padding:.2rem .4rem}.student-name{font-size:.9rem}.fee-description{font-size:.8rem}.amount{font-size:.9rem}.no-overdue{padding:1.5rem .5rem}.no-overdue-icon{font-size:2rem}.widget-footer{padding:.75rem 1rem}}.refresh-btn:focus,.retry-btn:focus,.view-all-btn:focus{outline:2px solid #007bff;outline-offset:2px}.overdue-item{animation:fadeInUp .3s ease-out}@keyframes fadeInUp{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.widget-body::-webkit-scrollbar{width:6px}.widget-body::-webkit-scrollbar-track{background:#f1f1f1;border-radius:3px}.widget-body::-webkit-scrollbar-thumb{background:#c1c1c1;border-radius:3px}.widget-body::-webkit-scrollbar-thumb:hover{background:#a8a8a8}.dashboard{margin:0 auto;max-width:1400px;padding:2rem}.dashboard-loading{align-items:center;color:#6b7280;display:flex;flex-direction:column;justify-content:center;min-height:400px}.dashboard-loading .loading-spinner{animation:spin 1s linear infinite;border:3px solid #e5e7eb;border-radius:50%;border-top-color:#3b82f6;height:40px;margin-bottom:1rem;width:40px}.dashboard-header{margin-bottom:2rem}.dashboard-header h2{color:#111827;font-size:2rem;font-weight:700;margin:0 0 .5rem}.dashboard-header p{color:#6b7280;font-size:1.1rem;margin:0}.stats-grid{grid-template-columns:repeat(auto-fit,minmax(280px,1fr));margin-bottom:3rem}.stat-card{overflow:hidden;position:relative;transition:all .2s ease}.stat-card:before{content:"";height:4px;left:0;position:absolute;right:0;top:0}.stat-card.primary:before,.stat-card:before{background:linear-gradient(90deg,#3b82f6,#1d4ed8)}.stat-card.secondary:before{background:linear-gradient(90deg,#10b981,#059669)}.stat-card.warning:before{background:linear-gradient(90deg,#f59e0b,#d97706)}.stat-card.success:before{background:linear-gradient(90deg,#06b6d4,#0891b2)}.stat-card.info:before{background:linear-gradient(90deg,#8b5cf6,#7c3aed)}.stat-card.accent:before{background:linear-gradient(90deg,#ec4899,#db2777)}.stat-icon{display:block}.stat-content,.stat-icon{margin-bottom:1rem}.stat-number{color:#111827;line-height:1;margin-bottom:.5rem}.stat-label{color:#374151;font-size:1rem}.stat-detail{color:#6b7280;font-size:.875rem}.stat-link{color:#3b82f6;font-size:.875rem;font-weight:500;text-decoration:none;transition:color .2s}.stat-link:hover{color:#1d4ed8}.dashboard-section{background:#fff;border:1px solid #e5e7eb;border-radius:12px;box-shadow:0 1px 3px #0000001a;margin-bottom:2rem;padding:1.5rem}.section-header{align-items:center;border-bottom:1px solid #e5e7eb;padding-bottom:1rem}.section-header h3{color:#111827;font-size:1.25rem;font-weight:600;margin:0}.refresh-btn{background:#f3f4f6;border:1px solid #d1d5db;border-radius:6px;color:#374151;font-size:.875rem;transition:all .2s}.refresh-btn:hover{background:#e5e7eb;border-color:#9ca3af}.activity-list{space-y:1rem}.activity-item{align-items:center;background:#f9fafb;border-radius:8px;display:flex;margin-bottom:.75rem;padding:1rem;transition:background-color .2s}.activity-item:hover{background:#f3f4f6}.activity-icon{flex-shrink:0;font-size:1.5rem;margin-right:1rem}.activity-content{flex:1 1}.activity-description{color:#374151;font-size:.875rem;font-weight:500;margin-bottom:.25rem}.activity-timestamp{color:#6b7280;font-size:.75rem}.activity-status{border-radius:12px;font-size:.75rem;font-weight:500;letter-spacing:.5px;padding:.25rem .75rem;text-transform:uppercase}.status-success{background:#d1fae5;color:#065f46}.status-warning{background:#fef3c7;color:#92400e}.status-error{background:#fee2e2;color:#991b1b}.status-default{background:#f3f4f6;color:#374151}.no-activity{color:#6b7280;padding:2rem;text-align:center}.quick-actions{grid-gap:1rem;display:grid;gap:1rem;grid-template-columns:repeat(auto-fit,minmax(250px,1fr))}.action-card{background:#f9fafb;border:1px solid #e5e7eb;border-radius:8px;display:block;padding:1.5rem;transition:all .2s ease}.action-card,.action-card:hover{color:inherit;text-decoration:none}.action-card:hover{background:#fff;border-color:#3b82f6;box-shadow:0 4px 12px #3b82f626;transform:translateY(-1px)}.action-icon{display:block;font-size:2rem;margin-bottom:.75rem}.action-title{color:#111827;font-size:1rem;font-weight:600;margin-bottom:.5rem}.action-description{color:#6b7280;font-size:.875rem;line-height:1.4}@media (max-width:768px){.dashboard{padding:1rem}.stats-grid{gap:1rem;grid-template-columns:1fr}.stat-card{padding:1rem}.stat-number{font-size:2rem}.dashboard-section{padding:1rem}.section-header{align-items:flex-start;flex-direction:column;gap:1rem}.quick-actions{grid-template-columns:1fr}.activity-item{align-items:flex-start;flex-direction:column;text-align:left}.activity-icon{margin-bottom:.5rem;margin-right:0}.activity-status{align-self:flex-start;margin-top:.5rem}}@media (max-width:480px){.dashboard-header h2{font-size:1.5rem}.dashboard-header p{font-size:1rem}.stat-number{font-size:1.75rem}.stat-icon{font-size:2rem}.action-icon{font-size:1.5rem}}.dashboard-content{grid-gap:2rem;display:grid;gap:2rem;grid-template-columns:1fr 2fr;margin-bottom:2rem}.dashboard-widget{display:flex;flex-direction:column}@media (max-width:1200px){.dashboard-content{gap:1.5rem;grid-template-columns:1fr}}@media (max-width:768px){.dashboard-content{gap:1rem}}.assignment-modal{max-width:600px;width:95%}.assignment-info{background-color:#f8f9fa;border-bottom:1px solid #eee;padding:1rem;text-align:center}.time-info{color:#2c3e50;font-size:1.1rem;margin-bottom:.5rem}.slot-info{color:#7f8c8d;font-size:.9rem}.assignment-form{padding:1.5rem}.form-input:focus,.form-textarea:focus{box-shadow:0 0 0 2px #3498db33}.color-input-container{align-items:center;display:flex;gap:.5rem}.color-input{border:1px solid #ddd;border-radius:4px;cursor:pointer;height:40px;padding:0;width:50px}.clear-color-button{background-color:#95a5a6;border:none;border-radius:4px;color:#fff;cursor:pointer;font-size:.9rem;padding:.5rem 1rem;transition:background-color .2s}.clear-color-button:hover{background-color:#7f8c8d}.form-group small{color:#7f8c8d;display:block;font-size:.85rem;margin-top:.25rem}.form-actions{align-items:center;justify-content:space-between}.action-buttons{gap:1rem}.cancel-button,.delete-button,.submit-button{border:none;border-radius:4px;cursor:pointer;font-size:1rem;padding:.75rem 1.5rem;transition:background-color .2s}.delete-button:hover:not(:disabled){background-color:#c0392b}.delete-button:disabled{background-color:#fadbd8;color:#e74c3c;cursor:not-allowed}.error-message{background-color:#fadbd8;border:1px solid #f5b7b1;color:#e74c3c;margin-bottom:1rem;padding:1rem}.loading-container{color:#7f8c8d}.loading-spinner{border:3px solid #f3f3f3;height:30px;width:30px}@media (max-width:768px){.assignment-modal{margin:1rem;width:98%}.form-actions{align-items:stretch;flex-direction:column;gap:1rem}.action-buttons{width:100%}.cancel-button,.submit-button{flex:1 1}.delete-button{width:100%}.color-input-container{align-items:flex-start;flex-direction:column}}.schedule-grid-container{background-color:#f8f9fa;min-height:100vh;padding:1rem}.schedule-header{align-items:flex-start;background:#fff;border-radius:8px;box-shadow:0 2px 10px #0000001a;display:flex;gap:2rem;justify-content:space-between;margin-bottom:1.5rem;padding:1.5rem}.schedule-title-section{flex:1 1}.schedule-title-section h3{color:#2c3e50;font-size:1.5rem;margin:0 0 1rem}.schedule-info{color:#7f8c8d;display:flex;font-size:.9rem;gap:2rem}.schedule-legend-section{align-items:flex-end;display:flex;flex-direction:column;flex-shrink:0;gap:1rem}.export-button,.schedule-actions{display:flex;gap:.5rem}.export-button{align-items:center;background-color:#27ae60;border:none;border-radius:4px;cursor:pointer;font-size:.9rem;padding:.75rem 1rem;transition:background-color .2s}.export-button:hover:not(:disabled){background-color:#229954}.export-button:disabled{background-color:#95a5a6;cursor:not-allowed}.conflict-button{align-items:center;background-color:#e74c3c;border:none;border-radius:4px;color:#fff;cursor:pointer;display:flex;font-size:.9rem;gap:.5rem;padding:.75rem 1rem;transition:background-color .2s}.conflict-button:hover{background-color:#c0392b}.conflict-warning{background-color:#e74c3c1a;border:1px solid #e74c3c4d;border-radius:4px;color:#e74c3c;font-weight:600;padding:.25rem .5rem}.schedule-table{border:1px solid #ddd;min-width:1200px}.schedule-table th{background-color:#f8f9fa;border-right:1px solid #ddd;padding:.5rem .25rem;width:auto}.session-header{max-width:150px;min-width:100px;width:calc(12.5% - 15px)}.session-title{color:#fff}.time-range{color:#bdc3c7}.weekday-cell{background-color:#f8f9fa;color:#2c3e50;font-weight:500;padding:.5rem;width:120px}.assignment-cell{border-bottom:1px solid #ddd;border-right:1px solid #ddd;cursor:pointer;max-width:150px;min-height:60px;padding:.25rem;transition:background-color .2s;vertical-align:top;width:calc(12.5% - 15px)}.assignment-cell:hover{background-color:#f8f9fa;z-index:1000}.assignment-cell.conflict{background-color:#ffebee;border-left:4px solid #e74c3c}.assigned-student{background-color:#e8f5e8;border-radius:4px;flex-direction:column;height:100%;justify-content:center;min-height:50px;padding:.25rem}.assigned-student.break-assignment{background-color:#fff3cd;border-left:4px solid #ffc107}.student-name{font-size:.75rem;line-height:1.2;text-align:center}.assignment-notes{font-size:.65rem;margin-top:.25rem}.assignment-notes,.empty-slot{color:#6c757d;font-style:italic}.empty-slot{align-items:center;display:flex;font-size:.7rem;height:100%;justify-content:center;min-height:50px}.empty-slot:hover{color:#495057}.schedule-empty,.schedule-error,.schedule-loading{align-items:center;color:#7f8c8d;display:flex;flex-direction:column;justify-content:center;padding:3rem;text-align:center}@media (max-width:1024px){.schedule-grid{-webkit-overflow-scrolling:touch;overflow-x:auto}.schedule-info{flex-direction:column;gap:.5rem}.schedule-header{flex-direction:column;gap:1rem}.schedule-legend-section{align-self:flex-end}.schedule-actions{flex-wrap:wrap}}@media (max-width:768px){.schedule-grid-container{padding:.5rem}.schedule-header{flex-direction:column;gap:1rem;padding:1rem}.schedule-title-section h3{font-size:1.25rem;line-height:1.3}.schedule-legend-section{align-self:stretch}.schedule-actions{justify-content:center}.conflict-button,.export-button{font-size:.8rem;padding:.6rem .8rem}.day-header,.time-header{font-size:.9rem;padding:.75rem .5rem}.time-cell{padding:.5rem;width:100px}.day-header{min-width:120px}.time-range{font-size:.8rem}.slot-name{font-size:.7rem}.schedule-table{min-width:700px}}@media (max-width:480px){.schedule-grid-container{padding:.25rem}.schedule-header{padding:.75rem}.schedule-title-section h3{font-size:1.1rem}.schedule-info{font-size:.8rem}.schedule-actions{gap:.25rem}.conflict-button,.export-button{font-size:.75rem;padding:.5rem .6rem}.time-cell{padding:.25rem;width:80px}.time-range{font-size:.7rem}.slot-name{font-size:.6rem}.day-header{font-size:.8rem;min-width:100px;padding:.5rem .25rem}.conflict-warning{font-size:.7rem;padding:.2rem .4rem}}@media (hover:none) and (pointer:coarse){.time-slot-cell{min-height:60px}.conflict-button,.export-button{min-height:44px;min-width:44px}.time-slot-cell:hover{transform:none}.conflict-button:hover,.export-button:hover,.time-slot-cell:hover{background-color:inherit}}@media (-webkit-min-device-pixel-ratio:2),(min-resolution:192dpi){.schedule-grid{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}}@media print{.schedule-grid{border:none!important;overflow:visible!important;overflow-x:visible!important;overflow-y:visible!important}.schedule-grid,.schedule-table{max-width:none!important;width:auto!important}.schedule-table{border-collapse:collapse!important;display:table!important;min-width:auto!important;overflow:visible!important;position:static!important;table-layout:auto!important}.schedule-table thead th.session-header,.schedule-table thead th.weekday-header{color-adjust:exact!important;background-color:#34495e!important;border:1px solid #ddd!important;color:#fff!important;font-size:12px!important;font-weight:700!important;line-height:1.2!important;padding:8px!important;-webkit-print-color-adjust:exact!important;print-color-adjust:exact!important;text-align:center!important;vertical-align:middle!important}.schedule-table thead{display:table-header-group!important;position:static!important}.schedule-table tbody{display:table-row-group!important;position:static!important}.schedule-table tr{display:table-row!important}.schedule-table td,.schedule-table th{display:table-cell!important}.session-title{color-adjust:exact!important;color:#fff!important;font-size:12px!important;font-weight:700!important;line-height:1.2!important}.session-title,.time-range{display:block!important;margin:2px 0!important;opacity:1!important;-webkit-print-color-adjust:exact!important;print-color-adjust:exact!important;visibility:visible!important;white-space:nowrap!important}.time-range{color-adjust:exact!important;color:#bdc3c7!important;font-size:10px!important;font-weight:400!important;line-height:1.1!important}.weekday-cell{background-color:#f8f9fa!important;font-weight:700!important;padding:8px!important}.assignment-cell,.weekday-cell{color-adjust:exact!important;border:1px solid #ddd!important;-webkit-print-color-adjust:exact!important;print-color-adjust:exact!important;text-align:center!important}.assignment-cell{font-size:11px!important;line-height:1.3!important;overflow:visible!important;padding:4px!important;vertical-align:middle!important;white-space:nowrap!important}.assigned-student{background-color:#e8f5e8!important;border-left:4px solid #28a745!important;border-radius:4px!important;padding:4px!important}.assigned-student,.assigned-student.break-assignment{color-adjust:exact!important;-webkit-print-color-adjust:exact!important;print-color-adjust:exact!important}.assigned-student.break-assignment{background-color:#fff3cd!important;border-left:4px solid #ffc107!important}.student-name{color-adjust:exact!important;color:#155724!important;font-size:11px!important;font-weight:500!important;line-height:1.2!important}.assigned-student.break-assignment .student-name,.student-name{-webkit-print-color-adjust:exact!important;print-color-adjust:exact!important}.assigned-student.break-assignment .student-name{color-adjust:exact!important;color:#856404!important}.schedule-grid-container,.schedule-table td,.schedule-table th{max-width:none!important;overflow:visible!important}.schedule-table td,.schedule-table th{text-overflow:clip!important;white-space:nowrap!important}*{max-width:none!important;overflow:visible!important}}.react-datepicker__month-read-view--down-arrow,.react-datepicker__month-year-read-view--down-arrow,.react-datepicker__navigation-icon:before,.react-datepicker__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-popper[data-placement^=bottom] .react-datepicker__triangle,.react-datepicker-popper[data-placement^=top] .react-datepicker__triangle{margin-left:-4px;position:absolute;width:0}.react-datepicker-popper[data-placement^=bottom] .react-datepicker__triangle:after,.react-datepicker-popper[data-placement^=bottom] .react-datepicker__triangle:before,.react-datepicker-popper[data-placement^=top] .react-datepicker__triangle:after,.react-datepicker-popper[data-placement^=top] .react-datepicker__triangle:before{border:8px solid #0000;box-sizing:initial;content:"";height:0;left:-8px;position:absolute;width:1px;z-index:-1}.react-datepicker-popper[data-placement^=bottom] .react-datepicker__triangle:before,.react-datepicker-popper[data-placement^=top] .react-datepicker__triangle:before{border-bottom-color:#aeaeae}.react-datepicker-popper[data-placement^=bottom] .react-datepicker__triangle{margin-top:-8px;top:0}.react-datepicker-popper[data-placement^=bottom] .react-datepicker__triangle:after,.react-datepicker-popper[data-placement^=bottom] .react-datepicker__triangle:before{border-bottom-color:#f0f0f0;border-top:none}.react-datepicker-popper[data-placement^=bottom] .react-datepicker__triangle:after{top:0}.react-datepicker-popper[data-placement^=bottom] .react-datepicker__triangle:before{border-bottom-color:#aeaeae;top:-1px}.react-datepicker-popper[data-placement^=top] .react-datepicker__triangle{bottom:0;margin-bottom:-8px}.react-datepicker-popper[data-placement^=top] .react-datepicker__triangle:after,.react-datepicker-popper[data-placement^=top] .react-datepicker__triangle:before{border-bottom:none;border-top-color:#fff}.react-datepicker-popper[data-placement^=top] .react-datepicker__triangle:after{bottom:0}.react-datepicker-popper[data-placement^=top] .react-datepicker__triangle:before{border-top-color:#aeaeae;bottom:-1px}.react-datepicker-wrapper{border:0;display:inline-block;padding:0}.react-datepicker{background-color:#fff;border:1px solid #aeaeae;border-radius:.3rem;color:#000;display:inline-block;font-family:Helvetica Neue,helvetica,arial,sans-serif;font-size:.8rem;position:relative}.react-datepicker--time-only .react-datepicker__triangle{left:35px}.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__triangle{left:50px;position:absolute}.react-datepicker-popper{z-index:1}.react-datepicker-popper[data-placement^=bottom]{padding-top:10px}.react-datepicker-popper[data-placement=bottom-end] .react-datepicker__triangle,.react-datepicker-popper[data-placement=top-end] .react-datepicker__triangle{left:auto;right:50px}.react-datepicker-popper[data-placement^=top]{padding-bottom:10px}.react-datepicker-popper[data-placement^=right]{padding-left:8px}.react-datepicker-popper[data-placement^=right] .react-datepicker__triangle{left:auto;right:42px}.react-datepicker-popper[data-placement^=left]{padding-right:8px}.react-datepicker-popper[data-placement^=left] .react-datepicker__triangle{left:42px;right:auto}.react-datepicker__header{background-color:#f0f0f0;border-bottom:1px solid #aeaeae;border-top-left-radius:.3rem;padding:8px 0;position:relative;text-align:center}.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__month-dropdown-container--scroll,.react-datepicker__month-dropdown-container--select,.react-datepicker__month-year-dropdown-container--scroll,.react-datepicker__month-year-dropdown-container--select,.react-datepicker__year-dropdown-container--scroll,.react-datepicker__year-dropdown-container--select{display:inline-block;margin:0 15px}.react-datepicker-time__header,.react-datepicker-year-header,.react-datepicker__current-month{color:#000;font-size:.944rem;font-weight:700;margin-top:0}.react-datepicker-time__header{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.react-datepicker__navigation{align-items:center;background:none;border:none;cursor:pointer;display:flex;height:32px;justify-content:center;overflow:hidden;padding:0;position:absolute;text-align:center;text-indent:-999em;top:2px;width:32px;z-index:1}.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{display:block;margin-left:auto;margin-right:auto;position:relative;top:0}.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{font-size:20px;position:relative;top:-1px;width:0}.react-datepicker__navigation-icon--next{left:-2px}.react-datepicker__navigation-icon--next:before{left:-7px;transform:rotate(45deg)}.react-datepicker__navigation-icon--previous{right:-2px}.react-datepicker__navigation-icon--previous:before{right:-7px;transform:rotate(225deg)}.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;margin:2px;width:4rem}.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;margin:2px;width:4rem}.react-datepicker__input-time-container{clear:both;float:left;margin:5px 0 10px 15px;text-align:left;width:100%}.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{display:inline-block;margin-left:5px}.react-datepicker__time-container{border-left:1px solid #aeaeae;float:right;width:85px}.react-datepicker__time-container--with-today-button{border:1px solid #aeaeae;border-radius:.3rem;display:inline;position:absolute;right:-87px;top:0}.react-datepicker__time-container .react-datepicker__time{background:#fff;border-bottom-right-radius:.3rem;position:relative}.react-datepicker__time-container .react-datepicker__time .react-datepicker__time-box{border-bottom-right-radius:.3rem;margin:0 auto;overflow-x:hidden;text-align:center;width:85px}.react-datepicker__time-container .react-datepicker__time .react-datepicker__time-box ul.react-datepicker__time-list{box-sizing:initial;height:calc(195px + .85rem);list-style:none;margin:0;overflow-y:scroll;padding-left:0;padding-right:0;width:100%}.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{background-color:#f0f0f0;cursor:pointer}.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{background-color:initial;cursor:default}.react-datepicker__week-number{color:#ccc;display:inline-block;line-height:1.7rem;margin:.166rem;text-align:center;width:1.7rem}.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,.react-datepicker__week-number--keyboard-selected):hover{background-color:#f0f0f0;border-radius:.3rem}.react-datepicker__week-number--selected{background-color:#216ba5;border-radius:.3rem;color:#fff}.react-datepicker__week-number--selected:hover{background-color:#1d5d90}.react-datepicker__week-number--keyboard-selected{background-color:#2a87d0;border-radius:.3rem;color:#fff}.react-datepicker__week-number--keyboard-selected:hover{background-color:#1d5d90}.react-datepicker__day-names{margin-bottom:-8px;white-space:nowrap}.react-datepicker__week{white-space:nowrap}.react-datepicker__day,.react-datepicker__day-name,.react-datepicker__time-name{color:#000;display:inline-block;line-height:1.7rem;margin:.166rem;text-align:center;width:1.7rem}.react-datepicker__day,.react-datepicker__month-text,.react-datepicker__quarter-text,.react-datepicker__year-text{cursor:pointer}.react-datepicker__day:hover,.react-datepicker__month-text:hover,.react-datepicker__quarter-text:hover,.react-datepicker__year-text:hover{background-color:#f0f0f0;border-radius:.3rem}.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{background-color:#3dcc4a;border-radius:.3rem;color:#fff}.react-datepicker__day--highlighted:hover,.react-datepicker__month-text--highlighted:hover,.react-datepicker__quarter-text--highlighted:hover,.react-datepicker__year-text--highlighted: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{background-color:#ff6803;border-radius:.3rem;color:#fff;position:relative}.react-datepicker__day--holidays .holiday-overlay,.react-datepicker__month-text--holidays .holiday-overlay,.react-datepicker__quarter-text--holidays .holiday-overlay,.react-datepicker__year-text--holidays .holiday-overlay{background-color:#333;border-radius:4px;bottom:100%;color:#fff;left:50%;opacity:0;padding:4px;position:absolute;transform:translateX(-50%);transition:visibility 0s,opacity .3s ease-in-out;visibility:hidden;white-space:nowrap}.react-datepicker__day--holidays:hover,.react-datepicker__month-text--holidays:hover,.react-datepicker__quarter-text--holidays:hover,.react-datepicker__year-text--holidays:hover{background-color:#cf5300}.react-datepicker__day--holidays:hover .holiday-overlay,.react-datepicker__month-text--holidays:hover .holiday-overlay,.react-datepicker__quarter-text--holidays:hover .holiday-overlay,.react-datepicker__year-text--holidays:hover .holiday-overlay{opacity:1;visibility:visible}.react-datepicker__day--in-range,.react-datepicker__day--in-selecting-range,.react-datepicker__day--selected,.react-datepicker__month-text--in-range,.react-datepicker__month-text--in-selecting-range,.react-datepicker__month-text--selected,.react-datepicker__quarter-text--in-range,.react-datepicker__quarter-text--in-selecting-range,.react-datepicker__quarter-text--selected,.react-datepicker__year-text--in-range,.react-datepicker__year-text--in-selecting-range,.react-datepicker__year-text--selected{background-color:#216ba5;border-radius:.3rem;color:#fff}.react-datepicker__day--in-range:hover,.react-datepicker__day--in-selecting-range:hover,.react-datepicker__day--selected:hover,.react-datepicker__month-text--in-range:hover,.react-datepicker__month-text--in-selecting-range:hover,.react-datepicker__month-text--selected:hover,.react-datepicker__quarter-text--in-range:hover,.react-datepicker__quarter-text--in-selecting-range:hover,.react-datepicker__quarter-text--selected:hover,.react-datepicker__year-text--in-range:hover,.react-datepicker__year-text--in-selecting-range:hover,.react-datepicker__year-text--selected: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{background-color:#bad9f1;border-radius:.3rem;color:#000}.react-datepicker__day--keyboard-selected:hover,.react-datepicker__month-text--keyboard-selected:hover,.react-datepicker__quarter-text--keyboard-selected:hover,.react-datepicker__year-text--keyboard-selected: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__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__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__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__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__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__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__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{color:#ccc;cursor:default}.react-datepicker__day--disabled:hover,.react-datepicker__month-text--disabled:hover,.react-datepicker__quarter-text--disabled:hover,.react-datepicker__year-text--disabled:hover{background-color:initial}.react-datepicker__input-container{display:inline-block;position:relative}.react-datepicker__input-container .react-datepicker__calendar-icon{box-sizing:initial;padding:.5rem;position:absolute}.react-datepicker__view-calendar-icon input{padding:6px 10px 5px 25px}.react-datepicker__month-read-view,.react-datepicker__month-year-read-view,.react-datepicker__year-read-view{border:1px solid #0000;border-radius:.3rem;position:relative}.react-datepicker__month-read-view:hover,.react-datepicker__month-year-read-view:hover,.react-datepicker__year-read-view:hover{cursor:pointer}.react-datepicker__month-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-year-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__year-read-view:hover .react-datepicker__month-read-view--down-arrow,.react-datepicker__year-read-view:hover .react-datepicker__year-read-view--down-arrow{border-top-color:#b3b3b3}.react-datepicker__month-read-view--down-arrow,.react-datepicker__month-year-read-view--down-arrow,.react-datepicker__year-read-view--down-arrow{right:-16px;top:0;transform:rotate(135deg)}.react-datepicker__month-dropdown,.react-datepicker__month-year-dropdown,.react-datepicker__year-dropdown{background-color:#f0f0f0;border:1px solid #aeaeae;border-radius:.3rem;left:25%;position:absolute;text-align:center;top:30px;width:50%;z-index:1}.react-datepicker__month-dropdown:hover,.react-datepicker__month-year-dropdown:hover,.react-datepicker__year-dropdown:hover{cursor:pointer}.react-datepicker__month-dropdown--scrollable,.react-datepicker__month-year-dropdown--scrollable,.react-datepicker__year-dropdown--scrollable{height:150px;overflow-y:scroll}.react-datepicker__month-option,.react-datepicker__month-year-option,.react-datepicker__year-option{display:block;line-height:20px;margin-left:auto;margin-right:auto;width:100%}.react-datepicker__month-option:first-of-type,.react-datepicker__month-year-option:first-of-type,.react-datepicker__year-option:first-of-type{border-top-left-radius:.3rem;border-top-right-radius:.3rem}.react-datepicker__month-option:last-of-type,.react-datepicker__month-year-option:last-of-type,.react-datepicker__year-option:last-of-type{border-bottom-left-radius:.3rem;border-bottom-right-radius:.3rem;-webkit-user-select:none;user-select:none}.react-datepicker__month-option:hover,.react-datepicker__month-year-option:hover,.react-datepicker__year-option:hover{background-color:#ccc}.react-datepicker__month-option:hover .react-datepicker__navigation--years-upcoming,.react-datepicker__month-year-option:hover .react-datepicker__navigation--years-upcoming,.react-datepicker__year-option:hover .react-datepicker__navigation--years-upcoming{border-bottom-color:#b3b3b3}.react-datepicker__month-option:hover .react-datepicker__navigation--years-previous,.react-datepicker__month-year-option:hover .react-datepicker__navigation--years-previous,.react-datepicker__year-option:hover .react-datepicker__navigation--years-previous{border-top-color:#b3b3b3}.react-datepicker__month-option--selected,.react-datepicker__month-year-option--selected,.react-datepicker__year-option--selected{left:15px;position:absolute}.react-datepicker__close-icon{background-color:initial;border:0;cursor:pointer;display:table-cell;height:100%;outline:0;padding:0 6px 0 0;position:absolute;right:0;top:0;vertical-align:middle}.react-datepicker__close-icon:after{background-color:#216ba5;border-radius:50%;color:#fff;content:"×";cursor:pointer;display:table-cell;font-size:12px;height:16px;line-height:1;padding:2px;text-align:center;vertical-align:middle;width:16px}.react-datepicker__close-icon--disabled{cursor:default}.react-datepicker__close-icon--disabled:after{background-color:#ccc;cursor:default}.react-datepicker__today-button{background:#f0f0f0;border-top:1px solid #aeaeae;clear:left;cursor:pointer;font-weight:700;padding:5px 0;text-align:center}.react-datepicker__portal{align-items:center;background-color:#000c;display:flex;height:100vh;justify-content:center;left:0;position:fixed;top:0;width:100vw;z-index:2147483647}.react-datepicker__portal .react-datepicker__day,.react-datepicker__portal .react-datepicker__day-name,.react-datepicker__portal .react-datepicker__time-name{line-height:3rem;width:3rem}@media (max-height:550px),(max-width:400px){.react-datepicker__portal .react-datepicker__day,.react-datepicker__portal .react-datepicker__day-name,.react-datepicker__portal .react-datepicker__time-name{line-height:2rem;width:2rem}}.react-datepicker__portal .react-datepicker-time__header,.react-datepicker__portal .react-datepicker__current-month{font-size:1.44rem}.react-datepicker__children-container{height:auto;margin:.4rem;padding-left:.2rem;padding-right:.2rem;width:13.8rem}.react-datepicker__aria-live{border:0;clip-path:circle(0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;white-space:nowrap;width:1px}.react-datepicker__calendar-icon{height:1em;vertical-align:-.125em;width:1em}.date-range-picker{background:#fff;border-radius:8px;box-shadow:0 2px 10px #0000001a;margin-bottom:1.5rem;padding:1.5rem}.date-inputs{align-items:flex-end;display:flex;gap:1rem;margin-bottom:1.5rem}.date-input-group{display:flex;flex-direction:column;gap:.5rem}.date-input-group label{color:#2c3e50;font-size:.9rem;font-weight:500}.date-input{border:1px solid #ddd;border-radius:4px;font-size:1rem;min-width:150px;padding:.75rem;transition:border-color .2s}.date-input:focus{border-color:#3498db;box-shadow:0 0 0 2px #3498db33;outline:none}.date-separator{color:#7f8c8d;font-weight:500;margin:0 .5rem;padding-bottom:.75rem}.date-presets{margin-bottom:1rem}.presets-label{color:#2c3e50;display:block;font-size:.9rem;font-weight:500;margin-bottom:.75rem}.preset-buttons{display:flex;flex-wrap:wrap;gap:.5rem}.preset-button{background-color:#ecf0f1;border:none;border-radius:20px;color:#2c3e50;cursor:pointer;font-size:.85rem;padding:.5rem 1rem;transition:all .2s}.preset-button:hover{background-color:#3498db;color:#fff;transform:translateY(-1px)}.selected-range-info{align-items:center;border-top:1px solid #eee;display:flex;font-size:.9rem;justify-content:space-between;padding-top:1rem}.range-info{color:#2c3e50;font-weight:500}.range-duration{color:#7f8c8d}.react-datepicker-wrapper,.react-datepicker__input-container{width:100%}.react-datepicker{border:1px solid #ddd;border-radius:8px;box-shadow:0 4px 20px #00000026;font-family:inherit}.react-datepicker__header{background-color:#3498db;border-bottom:1px solid #2980b9;border-radius:8px 8px 0 0}.react-datepicker__current-month{color:#fff;font-weight:600}.react-datepicker__day-name{color:#fff;font-weight:500}.react-datepicker__navigation{top:12px}.react-datepicker__navigation--previous{border-right-color:#fff}.react-datepicker__navigation--next{border-left-color:#fff}.react-datepicker__day--selected{background-color:#3498db;color:#fff}.react-datepicker__day--in-range,.react-datepicker__day--in-selecting-range{background-color:#3498db33;color:#2c3e50}.react-datepicker__day--range-end,.react-datepicker__day--range-start{background-color:#3498db;color:#fff}.react-datepicker__day:hover{background-color:#3498db4d}@media (max-width:768px){.date-inputs{align-items:stretch;flex-direction:column;gap:1rem}.date-separator{margin:0;padding:0;text-align:center}.date-input{min-width:auto;width:100%}.preset-buttons{justify-content:center}.selected-range-info{flex-direction:column;gap:.5rem;text-align:center}}@media (max-width:480px){.date-range-picker{padding:1rem}.preset-buttons{gap:.25rem}.preset-button{font-size:.8rem;padding:.4rem .8rem}}.simple-dropdown{position:relative;width:100%;z-index:10000}.dropdown-trigger{align-items:center;background:#fff;border:1px solid #ddd;border-radius:4px;cursor:pointer;display:flex;font-size:.7rem;justify-content:space-between;min-height:28px;padding:.25rem .5rem;text-align:left;transition:border-color .2s;width:100%}.dropdown-trigger:hover{border-color:#3498db}.dropdown-trigger:focus{border-color:#3498db;box-shadow:0 0 0 2px #3498db33;outline:none}.dropdown-arrow{color:#666;font-size:.6rem;margin-left:.25rem;transition:transform .2s}.dropdown-arrow.open{transform:rotate(180deg)}.dropdown-menu{background:#fff!important;border:1px solid #ddd!important;border-radius:4px!important;box-shadow:0 4px 12px #00000026!important;max-height:200px!important;min-width:150px!important;overflow-y:auto!important;position:fixed!important;z-index:99999!important}.dropdown-options{list-style:none;margin:0;padding:0}.dropdown-option{border-bottom:1px solid #f0f0f0;color:#333;cursor:pointer;font-size:.8rem;padding:.5rem;transition:background-color .2s}.dropdown-option:last-child{border-bottom:none}.dropdown-option:hover{background-color:#f8f9fa}.dropdown-option.selected{background-color:#3498db;color:#fff}.simple-dropdown.student-select .dropdown-menu{position:fixed!important;z-index:99999!important}.modal-overlay{padding:1rem;pointer-events:auto}.modal-content{border:1px solid #e1e5e9;box-shadow:0 20px 40px #00000026;position:relative}.modal-header{margin-bottom:1rem;padding:1.5rem 1.5rem 0}.modal-header h3{font-size:1.5rem;font-weight:600}.close-button{border-radius:4px;padding:.25rem;transition:all .2s}.close-button:hover{background-color:#f8f9fa}.schedule-creation-modal{max-height:90vh;max-width:1200px;min-width:1000px;overflow:visible;position:relative;width:95%;z-index:1000}.schedule-creation-form{padding:1.5rem}.form-section{margin-bottom:2rem}.form-section h4{border-bottom:2px solid #3498db;color:#2c3e50;font-size:1.1rem;margin:0 0 1rem;padding-bottom:.5rem}.form-header-section{border-bottom:1px solid #eee;margin-bottom:2rem;padding-bottom:1rem}.form-row{grid-gap:1.5rem;align-items:end;gap:1.5rem;grid-template-columns:repeat(3,minmax(0,1fr))}.form-row,.form-row .form-group{box-sizing:border-box;width:100%}.form-row .form-group{margin-left:0;margin-right:0;min-width:0;padding:0}.form-input{box-sizing:border-box;font-family:inherit}.schedule-creation-form .form-row>.form-group:first-child,.schedule-creation-form .form-row>.form-group:nth-child(2),.schedule-creation-form .form-row>.form-group:nth-child(3){flex:1 1!important;max-width:none!important;min-width:0!important;width:100%!important}.schedule-creation-form .form-group .searchable-dropdown,.schedule-creation-form .form-group .searchable-dropdown .dropdown-input-container{box-sizing:border-box!important;display:block!important;width:100%!important}.schedule-creation-form .form-group .searchable-dropdown .dropdown-input{background-color:#fff!important;border:1px solid #ddd!important;border-radius:4px!important;box-sizing:border-box!important;font-family:inherit!important;font-size:1rem!important;height:auto!important;line-height:normal!important;max-width:none!important;min-width:0!important;padding:.75rem 40px .75rem .75rem!important;transition:border-color .2s!important;width:100%!important}.schedule-creation-form .form-group .searchable-dropdown .dropdown-input:focus{border-color:#3498db!important;outline:none!important}.schedule-grid{background:#fff;border:1px solid #ddd;border-radius:8px;max-width:100%;overflow-x:auto;position:relative;z-index:1}.schedule-table{border:1px solid #e1e5e9;border-collapse:collapse;border-radius:8px;border-spacing:0;box-shadow:0 2px 8px #0000001a;margin:0;overflow:hidden;padding:0;table-layout:fixed;width:100%}.schedule-table th{background:linear-gradient(135deg,#f8f9fa,#e9ecef);border-bottom:2px solid #3498db;border-right:1px solid #dee2e6;color:#2c3e50;font-weight:600;margin:0;padding:1rem .5rem;position:sticky;top:0;vertical-align:middle;z-index:10}.schedule-table th,.weekday-header{box-sizing:border-box;text-align:center}.weekday-header{background-color:#3498db;color:#fff;padding:.5rem;width:120px}.session-header{word-wrap:break-word;background-color:#2c3e50;border-right:1px solid #ddd;box-sizing:border-box;color:#fff;height:auto;max-width:120px;min-width:60px;overflow-wrap:break-word;padding:.5rem .25rem;text-align:center;vertical-align:top;width:calc(6.66667% - 8px);width:calc((100% - 120px)/var(--session-count, 15))}.session-title{color:#2c3e50;font-size:.75rem;font-weight:600;margin-bottom:.25rem}.session-title,.time-range{display:block;line-height:1.1}.time-range{color:#7f8c8d;font-size:.65rem;font-weight:400}.weekday-cell{background:linear-gradient(135deg,#3498db,#2980b9);border-right:2px solid #2980b9;box-sizing:border-box;color:#fff;font-weight:600;left:0;min-width:140px;padding:1rem .75rem;position:sticky;text-align:center;width:140px;z-index:15}.schedule-table td{border:1px solid #eee;border-right-color:#ddd;margin:0;min-height:60px;padding:.5rem .25rem}.assignment-cell,.schedule-table td{box-sizing:border-box;text-align:center;vertical-align:middle}.assignment-cell{word-wrap:break-word;background-color:#fafbfc;border-bottom:1px solid #dee2e6;border-right:1px solid #dee2e6;max-width:160px;min-height:70px;min-width:100px;overflow:visible;overflow-wrap:break-word;padding:.5rem;position:relative;transition:background-color .2s ease;width:calc(6.66667% - 9.33333px);width:calc((100% - 140px)/var(--session-count, 15));z-index:1}.assignment-cell:hover{background-color:#f0f7ff;border-color:#3498db;z-index:10000}.assignment-cell .searchable-dropdown{position:relative;width:100%;z-index:10000}.assignment-cell .dropdown-menu{background:#fff!important;border:1px solid #ddd!important;border-radius:4px!important;box-shadow:0 4px 12px #00000026!important;position:fixed!important;z-index:99999!important}.break-cell{background-color:#fff3cd;color:#856404;font-weight:500;text-align:center}.break-label{background-color:#ffc107;border-radius:4px;color:#212529;display:inline-block;font-size:.8rem;padding:.25rem .5rem}.assigned-student{align-items:center;background:linear-gradient(135deg,#e8f5e8,#d4edda);border:1px solid #c3e6cb;border-left:4px solid #28a745;border-radius:6px;box-shadow:0 1px 3px #0000001a;display:flex;justify-content:space-between;padding:.5rem}.assigned-student.break-assignment{background:linear-gradient(135deg,#fff3cd,#ffeaa7);border-left:4px solid;border-color:#ffeaa7}.assigned-student.break-assignment .student-name{color:#856404;font-weight:600}.student-name{color:#155724;font-size:.7rem}.remove-assignment{align-items:center;background:#dc3545;border:none;border-radius:50%;color:#fff;cursor:pointer;display:flex;font-size:.6rem;height:16px;justify-content:center;transition:background-color .2s;width:16px}.remove-assignment:hover{background:#c82333}.student-select{font-size:.8rem;position:relative;width:100%;z-index:10000}.form-actions{border-top:2px solid #e9ecef;padding:1.5rem 0 0}.submit-button{background-color:#28a745}.submit-button:hover:not(:disabled){background-color:#218838}@media (max-width:1024px){.schedule-creation-modal{max-width:none;width:98%}.schedule-table{min-width:600px}.schedule-table td,.schedule-table th{padding:.5rem}.time-cell{width:120px}}@media (max-width:768px){.form-row{flex-direction:column;gap:0}.form-row .form-group{margin-bottom:1.5rem}.form-actions{flex-direction:column}.cancel-button,.submit-button{width:100%}.schedule-table{min-width:500px}.session-title{font-size:.8rem}.time-range{font-size:.7rem}.student-name{font-size:.8rem}}.weekday-cell,.weekday-header{box-sizing:border-box;max-width:140px!important;min-width:140px!important;text-align:center;width:140px!important}.assignment-cell,.session-header{box-sizing:border-box;max-width:160px!important;min-width:100px!important;text-align:center;vertical-align:middle;width:calc(6.66667% - 9.33333px)!important;width:calc((100% - 140px)/var(--session-count, 15))!important}.session-config-manager{max-width:1000px}.config-header{margin-bottom:2rem}.config-header h3{color:#2c3e50;font-size:1.5rem;margin:0 0 .5rem}.config-header p{color:#7f8c8d;margin:0}.config-details{align-items:flex-start;background:#f8f9fa;border-radius:8px;display:flex;justify-content:space-between;margin-bottom:2rem;padding:1.5rem}.config-info h4{color:#2c3e50;margin:0 0 .5rem}.config-info p{color:#6c757d;margin:0 0 .5rem}.default-badge{background:#28a745;border-radius:4px;color:#fff;display:inline-block;font-size:.8rem;font-weight:500;padding:.25rem .5rem}.config-actions{display:flex;gap:1rem}.cancel-button,.edit-button,.save-button{border:none;border-radius:4px;cursor:pointer;font-size:.9rem;padding:.5rem 1rem;transition:background-color .2s}.edit-button{background:#3498db}.edit-button:hover{background:#2980b9}.save-button{background:#28a745;color:#fff}.save-button:hover:not(:disabled){background:#218838}.save-button:disabled{background:#6c757d;cursor:not-allowed}.cancel-button{background:#6c757d}.cancel-button:hover{background:#5a6268}.edit-actions{display:flex;gap:.5rem}.time-slots-grid{margin-top:2rem}.time-slots-grid h4{border-bottom:2px solid #3498db;color:#2c3e50;font-size:1.2rem;margin:0 0 1.5rem;padding-bottom:.5rem}.config-section-header{align-items:center;border-bottom:1px solid #e0e0e0;display:flex;justify-content:space-between;margin-bottom:1.5rem;padding-bottom:1rem}.weekday-selector{display:flex;flex-direction:column;gap:.5rem}.weekday-selector label{color:#2c3e50;font-size:.9rem;font-weight:500}.weekday-checkboxes{display:flex;flex-wrap:wrap;gap:.5rem}.weekday-checkbox{align-items:center;background:#fff;border:1px solid #ddd;border-radius:4px;cursor:pointer;display:flex;gap:.25rem;padding:.25rem .5rem;transition:all .2s}.weekday-checkbox:hover{background:#f8f9fa}.weekday-checkbox input[type=checkbox]{margin:0}.weekday-checkbox span{font-size:.8rem;font-weight:500}.weekday-checkbox input:checked+span{color:#3498db}.day-section{border:1px solid #dee2e6;border-radius:8px;margin-bottom:2rem;overflow:hidden}.day-header{align-items:center;background:#f8f9fa;border-bottom:1px solid #dee2e6;display:flex;justify-content:space-between;padding:1rem}.day-header h5{color:#2c3e50;font-size:1.1rem;margin:0}.add-slot-button{background:#28a745;border:none;border-radius:4px;color:#fff;cursor:pointer;font-size:.8rem;padding:.25rem .5rem;transition:background-color .2s}.add-slot-button:hover{background:#218838}.slots-list{padding:1rem}.slot-item{margin-bottom:1rem}.slot-item:last-child{margin-bottom:0}.slot-display{align-items:center;background:#fff;border:1px solid #dee2e6;border-radius:4px;display:flex;justify-content:space-between;padding:.75rem}.slot-title{color:#2c3e50;font-weight:500}.slot-time{color:#6c757d;font-size:.9rem}.slot-edit{align-items:center;background:#fff;border:1px solid #dee2e6;border-radius:4px;display:flex;gap:.5rem;padding:.5rem}.slot-input{border:1px solid #ced4da;border-radius:4px;font-size:.9rem;padding:.5rem}.title-input{flex:1 1;min-width:150px}.time-input{width:80px}.time-separator{color:#6c757d;font-weight:500}.remove-slot-button{align-items:center;background:#dc3545;border:none;border-radius:50%;color:#fff;cursor:pointer;display:flex;font-size:1rem;height:24px;justify-content:center;transition:background-color .2s;width:24px}.remove-slot-button:hover{background:#c82333}.time-slots-configuration{margin-top:2rem}.configuration-mode{display:flex;gap:1rem;margin-bottom:2rem}.mode-toggle{align-items:center;background:#fff;border:2px solid #dee2e6;border-radius:8px;cursor:pointer;display:flex;gap:.5rem;padding:.75rem 1rem;transition:all .2s}.mode-toggle:hover{border-color:#3498db}.mode-toggle input[type=radio]:checked+span{color:#3498db;font-weight:600}.mode-toggle input[type=radio]{margin:0}.weekly-template-config{display:flex;flex-direction:column;gap:2rem}.template-section{background:#f8f9fa;border-radius:8px;padding:1.5rem}.section-header{align-items:flex-start;display:flex;justify-content:space-between;margin-bottom:1.5rem}.section-header h5{color:#2c3e50;font-size:1.1rem;margin:0 0 .5rem}.section-header p{color:#6c757d;font-size:.9rem;margin:0}.template-slots{display:flex;flex-direction:column;gap:.75rem}.template-slot-item{background:#fff;border:1px solid #dee2e6;border-radius:6px}.active-days-section{background:#f8f9fa;border-radius:8px;padding:1.5rem}.active-days-section h5{color:#2c3e50;font-size:1.1rem;margin:0 0 .5rem}.active-days-section p{color:#6c757d;font-size:.9rem;margin:0 0 1rem}.active-days-section .weekday-checkboxes{grid-gap:.5rem;display:grid;gap:.5rem;grid-template-columns:repeat(auto-fit,minmax(120px,1fr))}.active-days-section .weekday-checkbox{font-weight:500;justify-content:center;padding:.75rem}.active-days-section .weekday-checkbox input:checked+span{color:#28a745}.template-preview{background:#fff;border:1px solid #dee2e6;border-radius:8px;padding:1.5rem}.template-preview h5{color:#2c3e50;font-size:1.1rem;margin:0 0 1rem}.preview-grid{display:flex;flex-direction:column;gap:.5rem}.preview-header{grid-gap:.5rem;background:#f8f9fa;border-radius:6px;color:#2c3e50;display:grid;font-weight:600;gap:.5rem;grid-template-columns:100px repeat(auto-fit,minmax(120px,1fr));padding:.75rem}.day-column{font-size:.9rem}.day-column,.period-column{align-items:center;display:flex}.period-column{flex-direction:column;text-align:center}.period-title{font-size:.85rem;margin-bottom:.25rem}.period-time{color:#6c757d;font-size:.75rem;font-weight:400}.preview-row{grid-gap:.5rem;border:1px solid #e9ecef;border-radius:4px;display:grid;gap:.5rem;grid-template-columns:100px repeat(auto-fit,minmax(120px,1fr));padding:.5rem .75rem}.day-name{color:#2c3e50;font-size:.9rem;font-weight:500}.day-name,.period-cell{align-items:center;display:flex}.period-cell{background:#e8f5e8;border-radius:4px;justify-content:center;padding:.5rem}.period-indicator{color:#28a745;font-size:1rem}.time-slots-display{margin-top:2rem}.schedule-overview{background:#fff;border:1px solid #dee2e6;border-radius:8px;padding:1.5rem}.active-days-summary{background:#f8f9fa;border-radius:6px;color:#2c3e50;font-size:.9rem;margin-bottom:1.5rem;padding:1rem}.periods-summary{margin-top:1rem}.periods-grid{display:flex;flex-direction:column;gap:.5rem}.periods-header{background:#3498db;border-radius:6px;color:#fff;font-weight:600;padding:.75rem}.periods-header,.periods-row{grid-gap:.5rem;display:grid;gap:.5rem;grid-template-columns:100px repeat(auto-fit,minmax(140px,1fr))}.periods-row{background:#f8f9fa;border:1px solid #e9ecef;border-radius:4px;padding:.5rem .75rem}.periods-row:nth-child(2n){background:#fff}.periods-row .day-name{align-items:center;color:#2c3e50;display:flex;font-size:.9rem;font-weight:600}.periods-row .period-cell{align-items:center;background:#fff;border:1px solid #e9ecef;border-radius:4px;display:flex;flex-direction:column;justify-content:center;padding:.75rem .5rem;text-align:center}.periods-row .period-cell .slot-title{color:#2c3e50;font-size:.85rem;font-weight:500;margin-bottom:.25rem}.periods-row .period-cell .slot-time{color:#6c757d;font-size:.75rem}.individual-days-config{margin-top:1rem}.individual-days-config .weekday-selector{background:#f8f9fa;border-radius:8px;margin-bottom:2rem;padding:1.5rem}@media (max-width:768px){.configuration-mode{flex-direction:column}.periods-header,.periods-row,.preview-header,.preview-row{font-size:.8rem;grid-template-columns:80px repeat(auto-fit,minmax(100px,1fr))}.active-days-section .weekday-checkboxes{grid-template-columns:repeat(auto-fit,minmax(100px,1fr))}.section-header{align-items:flex-start;flex-direction:column;gap:1rem}}.school-settings{max-width:800px}.school-settings-loading{align-items:center;color:#6b7280;display:flex;flex-direction:column;justify-content:center;padding:64px}.school-settings-loading .loading-spinner{animation:spin 1s linear infinite;border:3px solid #e5e7eb;border-radius:50%;border-top-color:#3b82f6;height:32px;margin-bottom:16px;width:32px}.settings-section-header{border-bottom:1px solid #e5e7eb;margin-bottom:32px;padding-bottom:16px}.settings-section-header h3{color:#111827;font-size:1.25rem;font-weight:600;margin:0 0 8px}.settings-section-header p{color:#6b7280;font-size:.875rem;margin:0}.school-settings-form{background:#f9fafb;border:1px solid #e5e7eb;border-radius:8px;margin-bottom:32px;padding:24px}.form-group:last-child{margin-bottom:0}.form-input{background-color:#fff;border:1px solid #d1d5db;border-radius:6px;font-size:.875rem;padding:12px 16px;transition:border-color .2s,box-shadow .2s}.form-input:focus{border-color:#3b82f6;box-shadow:0 0 0 3px #3b82f61a}.form-input.error{border-color:#ef4444}.form-input:disabled{background-color:#f9fafb;color:#6b7280;cursor:not-allowed}.form-textarea{background-color:#fff;border-radius:6px}.form-textarea.error{border-color:#ef4444}.form-help{color:#6b7280;font-size:.75rem;line-height:1.4;margin-top:4px}.form-help code{background-color:#f3f4f6;border-radius:3px;font-family:Monaco,Menlo,Ubuntu Mono,monospace;font-size:.7rem;padding:2px 4px}.signature-preview{background-color:#fff;border:1px solid #d1d5db;border-radius:6px;margin-top:24px;padding:16px}.signature-preview h4{color:#374151;font-size:.875rem;font-weight:600;margin:0 0 12px}.preview-content{background-color:#f9fafb;border-left:3px solid #3b82f6;border-radius:4px;color:#111827;font-family:Georgia,serif;font-size:.875rem;line-height:1.5;padding:12px;white-space:pre-line}.settings-info{grid-gap:20px;display:grid;gap:20px;grid-template-columns:repeat(auto-fit,minmax(300px,1fr))}.info-card{background:#fff;border:1px solid #e5e7eb;border-radius:8px;padding:20px}.info-card h4{color:#111827;font-size:1rem;font-weight:600;margin:0 0 12px}.info-card p{color:#6b7280;font-size:.875rem;line-height:1.5;margin:0 0 12px}.info-card p:last-child{margin-bottom:0}.info-card ul{margin:8px 0;padding-left:20px}.info-card li{color:#6b7280;font-size:.875rem;margin-bottom:4px}.info-card code{background-color:#f3f4f6;border-radius:3px;color:#374151;font-family:Monaco,Menlo,Ubuntu Mono,monospace;font-size:.75rem;padding:2px 4px}@media (max-width:768px){.school-settings-form{padding:20px}.form-actions{flex-direction:column-reverse;gap:8px}.btn{justify-content:center;width:100%}.settings-info{gap:16px;grid-template-columns:1fr}.info-card{padding:16px}}.settings-page{margin:0 auto;max-width:1200px;padding:2rem}.settings-header{margin-bottom:2rem}.settings-header h1{color:#2c3e50;font-size:2rem;margin:0 0 .5rem}.settings-header p{color:#7f8c8d;font-size:1.1rem;margin:0}.settings-content{display:flex;gap:2rem;min-height:600px}.settings-tabs{display:flex;flex-direction:column;gap:.5rem;min-width:250px}.settings-tab{align-items:center;background:#f8f9fa;border:none;border-radius:8px;cursor:pointer;display:flex;gap:.75rem;padding:1rem;text-align:left;transition:all .2s}.settings-tab:hover{background:#e9ecef}.settings-tab.active{background:#3498db;color:#fff}.tab-icon{font-size:1.2rem}.tab-label{font-weight:500}.settings-panel{background:#fff;border:1px solid #dee2e6;border-radius:8px;flex:1 1;padding:2rem}.settings-section h3{color:#2c3e50;margin:0 0 1rem}@media (max-width:768px){.settings-page{padding:1rem}.settings-content{flex-direction:column;gap:1rem}.settings-tabs{flex-direction:row;min-width:auto;overflow-x:auto}.settings-tab{flex-shrink:0;min-width:200px}.settings-panel{padding:1rem}}.reports-page{margin:0 auto;max-width:1400px;min-height:100vh;padding:2rem}.reports-header{margin-bottom:2rem}.reports-header h1{color:#2c3e50;font-size:2rem;font-weight:600;margin:0 0 .5rem}.reports-header p{color:#7f8c8d;font-size:1.1rem;margin:0}.reports-content{display:flex;gap:2rem;min-height:600px}.reports-sidebar{background:#fff;border:1px solid #dee2e6;border-radius:8px;height:fit-content;min-width:300px;padding:1.5rem}.report-filters{display:flex;flex-direction:column;gap:1.5rem}.filter-group label{color:#2c3e50}.filter-input,.filter-select{border:1px solid #ddd;border-radius:4px;font-family:inherit;font-size:1rem;padding:.75rem;transition:border-color .2s}.filter-input:focus,.filter-select:focus{border-color:#3498db;outline:none}.filter-actions{display:flex;flex-direction:column;gap:1rem;margin-top:1rem}.export-button,.filter-button{border:none;border-radius:4px;cursor:pointer;font-size:1rem;font-weight:500;padding:.75rem 1rem;transition:background-color .2s}.filter-button{background-color:#3498db;color:#fff}.filter-button:hover:not(:disabled){background-color:#2980b9}.export-button{background-color:#28a745;color:#fff}.export-button:hover:not(:disabled){background-color:#218838}.export-button:disabled,.filter-button:disabled{background-color:#bdc3c7;cursor:not-allowed}.reports-main{background:#fff;border:1px solid #dee2e6;border-radius:8px;flex:1 1;overflow-x:auto;padding:2rem}.schedule-report-table{width:100%}.schedule-report-table h3{color:#2c3e50;font-size:1.5rem;margin:0 0 2rem;text-align:center}.schedule-week{margin-bottom:3rem}.schedule-header{background:#f8f9fa;border-radius:4px;margin-bottom:1rem;padding:1rem}.schedule-header h4{color:#2c3e50;font-size:1.2rem;margin:0 0 .5rem}.schedule-header p{color:#6c757d;font-size:1rem;margin:0}.report-table{border-collapse:collapse;margin-bottom:2rem;min-width:1000px;width:100%}.report-table th{background-color:#f8f9fa;border:1px solid #dee2e6;color:#2c3e50;font-size:.9rem;font-weight:600;line-height:1.3;padding:1rem .5rem;text-align:center}.report-table .weekday-header{background-color:#3498db;color:#fff;width:100px}.report-table .session-header{background-color:#f8f9fa;min-width:120px}.report-table td{border:1px solid #dee2e6;font-size:.9rem;padding:.75rem .5rem;text-align:center;vertical-align:middle}.report-table .weekday-cell{background-color:#f8f9fa;color:#2c3e50;font-weight:500}.report-table .assignment-cell{background-color:#e8f5e8;color:#155724}.report-table .break-cell{background-color:#fff3cd;color:#856404;font-weight:500}.no-data{color:#6c757d;padding:3rem}.no-data p{font-size:1.1rem;margin:0}.coming-soon{padding:3rem;text-align:center}.coming-soon h3{color:#2c3e50;font-size:1.5rem;margin:0 0 1rem}.coming-soon p{color:#6c757d;font-size:1.1rem;margin:0}.loading-container{align-items:center;display:flex;flex-direction:column;justify-content:center;padding:3rem}@media (max-width:1024px){.reports-content{flex-direction:column}.reports-sidebar{min-width:auto}.report-table{min-width:800px}}@media (max-width:768px){.reports-page{padding:1rem}.filter-actions{flex-direction:column}.export-button,.filter-button{width:100%}.report-table{min-width:600px}.report-table td,.report-table th{font-size:.8rem;padding:.5rem .25rem}}.document-history-container{background:#f8f9fa;border:1px solid #e1e5e9;border-radius:8px;margin-top:1.5rem}.document-history-header{align-items:center;background:#fff;border-bottom:1px solid #e1e5e9;border-radius:8px 8px 0 0;display:flex;justify-content:space-between;padding:1rem 1.25rem}.document-history-header h3{color:#2c3e50;font-size:1.1rem;font-weight:600;margin:0}.document-count{background:#e9ecef;border-radius:12px;color:#6c757d;font-size:.875rem;padding:.25rem .5rem}.document-history-table-container{max-height:300px;overflow-y:auto}.document-history-table{background:#fff;border-collapse:collapse;width:100%}.document-history-table th{background:#f8f9fa;border-bottom:2px solid #e1e5e9;color:#495057;font-weight:600;padding:.75rem;position:sticky;text-align:left;top:0;z-index:1}.document-history-table th.sortable{cursor:pointer;position:relative;transition:background-color .2s;-webkit-user-select:none;user-select:none}.document-history-table th.sortable:hover{background:#e9ecef}.sort-indicator{opacity:.3;position:absolute;right:.5rem;top:50%;transform:translateY(-50%)}.sort-indicator:after{content:"↕️";font-size:.75rem}.document-history-table th.sorted-asc .sort-indicator:after{color:#007bff;content:"↑";opacity:1}.document-history-table th.sorted-desc .sort-indicator:after{color:#007bff;content:"↓";opacity:1}.document-history-table td{border-bottom:1px solid #e1e5e9;padding:.75rem;vertical-align:middle}.document-history-table tr:hover{background:#f8f9fa}.replacement-row{background:#fff3cd!important}.replacement-row:hover{background:#ffeaa7!important}.file-name-cell{max-width:200px}.file-name{color:#2c3e50;display:block;font-weight:500;word-break:break-word}.replacement-indicator{display:inline-block;font-size:.875rem;margin-left:.5rem}.replacement-count{color:#6c757d;display:block;font-size:.75rem;margin-top:.25rem}.status-processing{background:#fff3cd;color:#856404}.status-sent{background:#d4edda;color:#155724}.status-failed{background:#f8d7da;color:#721c24}.status-saved{background:#d1ecf1;color:#0c5460}.status-replaced{background:#e2e3e5;color:#383d41}.status-default{background:#e9ecef;color:#6c757d}.actions-cell{text-align:center;width:120px}.btn-replace{background:#007bff;border:none;border-radius:4px;color:#fff;cursor:pointer;font-size:.875rem;padding:.375rem .75rem;transition:background-color .2s}.btn-replace:hover{background:#0056b3}.replace-disabled{color:#6c757d;font-size:.875rem;font-style:italic}.document-history-loading{align-items:center;color:#6c757d;display:flex;justify-content:center;padding:2rem}.document-history-loading .loading-spinner{animation:spin 1s linear infinite;border:2px solid #e9ecef;border-radius:50%;border-top-color:#007bff;height:20px;margin-right:.5rem;width:20px}.document-history-error{align-items:center;background:#f8d7da;border-radius:4px;color:#dc3545;display:flex;justify-content:center;margin:1rem;padding:2rem}.error-icon{margin-right:.5rem}.document-history-empty{align-items:center;color:#6c757d;display:flex;flex-direction:column;justify-content:center;padding:2rem;text-align:center}.empty-icon{font-size:2rem;margin-bottom:.5rem;opacity:.5}.modal-content{border-radius:12px;box-shadow:0 20px 25px -5px #0000001a,0 10px 10px -5px #0000000a;width:100%}.modal-header{margin-bottom:24px;padding:24px 24px 0}.modal-header h2{color:#111827;font-size:1.5rem;font-weight:600}.modal-close-btn{background:none;border:none;border-radius:4px;color:#6b7280;cursor:pointer;font-size:1.5rem;padding:4px;transition:all .2s}.modal-close-btn:hover:not(:disabled){background-color:#f3f4f6;color:#374151}.modal-close-btn:disabled{cursor:not-allowed;opacity:.5}.document-form{padding:0 24px 24px}.form-group{margin-bottom:24px}.form-label{color:#374151;font-size:.875rem;font-weight:500}.form-select{background-color:#fff;border:1px solid #d1d5db;border-radius:8px;font-size:.875rem;padding:12px 16px;transition:border-color .2s,box-shadow .2s;width:100%}.form-select:focus{border-color:#3b82f6;box-shadow:0 0 0 3px #3b82f61a;outline:none}.form-select.error{border-color:#ef4444}.form-select:disabled{background-color:#f9fafb;color:#6b7280;cursor:not-allowed}.form-textarea{border:1px solid #d1d5db;border-radius:8px;font-family:inherit;font-size:.875rem;min-height:100px;padding:12px 16px;transition:border-color .2s,box-shadow .2s;width:100%}.form-textarea:focus{border-color:#3b82f6;box-shadow:0 0 0 3px #3b82f61a;outline:none}.form-textarea:disabled{background-color:#f9fafb;color:#6b7280;cursor:not-allowed}.file-upload-container{position:relative}.file-input{height:0;opacity:0;position:absolute;width:0}.file-upload-label{align-items:center;background-color:#f9fafb;border:2px dashed #d1d5db;border-radius:8px;color:#374151;cursor:pointer;display:flex;font-size:.875rem;gap:12px;padding:12px 16px;transition:all .2s}.file-upload-label:hover{background-color:#f0f9ff;border-color:#3b82f6}.file-upload-icon{font-size:1.2rem}.file-info{align-items:center;display:flex;gap:8px;margin-top:8px}.file-size{background-color:#f3f4f6;border-radius:4px;padding:2px 6px}.file-help-text,.file-size{color:#6b7280;font-size:.75rem}.file-help-text{margin-top:4px}.checkbox-label{font-size:.875rem}.form-checkbox{accent-color:#3b82f6;height:16px;width:16px}.checkbox-text{color:#374151}.email-info{background-color:#f0f9ff;border:1px solid #bfdbfe;border-radius:6px;color:#1e40af;font-size:.8125rem;margin-top:8px;padding:8px 12px}.error-message{color:#ef4444;display:block;font-size:.75rem;margin-top:4px}.general-error{background-color:#fef2f2;border:1px solid #fecaca;border-radius:6px;margin-bottom:16px}.form-actions{border-top:1px solid #e5e7eb;gap:12px;margin-top:32px;padding-top:24px}.btn{border-radius:8px;display:flex;gap:8px;padding:12px 24px}.btn-primary:hover:not(:disabled){background-color:#2563eb}.btn-secondary:hover:not(:disabled){background-color:#4b5563}.replace-mode-indicator{background:#fff3cd;border:1px solid #ffeaa7;border-radius:8px;justify-content:space-between;margin-bottom:1.5rem;padding:1rem}.replace-info,.replace-mode-indicator{align-items:center;display:flex}.replace-icon{font-size:1.5rem;margin-right:.75rem}.replace-details{color:#856404}.replace-details strong{color:#533f03}.replace-details small{color:#6c5ce7;font-size:.875rem}.btn-cancel-replace{background:#6c757d;border:none;border-radius:4px;color:#fff;cursor:pointer;font-size:.875rem;padding:.5rem 1rem;transition:background-color .2s}.btn-cancel-replace:hover{background:#545b62}.btn-cancel-replace:disabled{background:#adb5bd;cursor:not-allowed}@media (max-width:640px){.modal-overlay{padding:16px}.modal-content{max-height:95vh}.modal-header{margin-bottom:20px;padding:20px 20px 0}.modal-header h2{font-size:1.25rem}.document-form{padding:0 20px 20px}.form-group{margin-bottom:20px}.form-actions{flex-direction:column-reverse;gap:8px}.btn{justify-content:center;width:100%}}.document-transmittals-page{margin:0 auto;max-width:1400px;padding:24px}.page-header{margin-bottom:40px;padding:48px 0}.add-document-btn{align-items:center;background-color:#3b82f6;border:none;border-radius:8px;color:#fff;cursor:pointer;display:flex;font-weight:500;gap:8px;padding:12px 24px;transition:background-color .2s}.add-document-btn:hover{background-color:#2563eb}.btn-icon{font-size:1.2rem;font-weight:700}.filters-row{align-items:center;gap:24px}.filter-select{min-width:160px}.clear-filters-btn{margin-top:20px}.documents-table-container{padding:32px 24px}.documents-table{border-collapse:collapse;font-size:.875rem;width:100%}.documents-table th{background-color:#f9fafb;border-bottom:1px solid #e5e7eb;color:#374151;font-weight:600;padding:12px 16px;text-align:left;white-space:nowrap}.documents-table th.sortable{cursor:pointer;position:relative;transition:background-color .2s;-webkit-user-select:none;user-select:none}.documents-table th.sortable:hover{background-color:#f3f4f6}.documents-table th.sortable:after{content:"↕️";font-size:.75rem;opacity:.5;position:absolute;right:8px}.documents-table th.sorted-asc:after{content:"↑";opacity:1}.documents-table th.sorted-desc:after{content:"↓";opacity:1}.documents-table td{border-bottom:1px solid #f3f4f6;padding:16px;vertical-align:middle}.documents-table tbody tr:nth-child(2n){background-color:#f8fafc}.documents-table tbody tr:hover{background-color:#e0f2fe!important;transition:background-color .15s ease}.document-type{color:#374151}.file-name{color:#6b7280;max-width:200px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.uploaded-by{color:#374151}.date-time{color:#6b7280;font-size:.8125rem}.status-badge{letter-spacing:.025em}.status-processing{background-color:#fef3c7;color:#92400e}.status-sent{background-color:#d1fae5;color:#065f46}.status-failed{background-color:#fee2e2;color:#991b1b}.status-saved{background-color:#e0e7ff;color:#3730a3}.actions{text-align:center}.download-btn{background-color:initial;border:1px solid #d1d5db;border-radius:6px;cursor:pointer;font-size:1rem;padding:6px 12px;transition:all .2s}.download-btn:hover{background-color:#f3f4f6;border-color:#9ca3af}.pagination{border-top:1px solid #e5e7eb;gap:16px;margin-top:32px;padding-top:24px}.pagination-info{color:#6b7280;font-size:.875rem}.btn-sm{font-size:.8125rem;padding:6px 12px}.btn-outline{background-color:initial;border:1px solid #d1d5db;color:#374151}.btn-outline:hover:not(:disabled){background-color:#f3f4f6;border-color:#9ca3af}.btn-outline:disabled{cursor:not-allowed;opacity:.5}@media (max-width:768px){.document-transmittals-page{padding:16px}.filters-row,.page-header{align-items:stretch;flex-direction:column;gap:16px}.filter-group{align-items:center;flex-direction:row;justify-content:space-between}.filter-select{min-width:120px}.documents-table-container{overflow-x:auto}.documents-table{min-width:800px}}.pending-reports-page{margin:0 auto;max-width:1400px;padding:24px}.page-header{align-items:flex-start;border-bottom:1px solid #e5e7eb;display:flex;justify-content:space-between;margin-bottom:32px;padding-bottom:24px}.header-content h1{color:#111827;font-weight:600;margin:0 0 8px}.header-content p{color:#6b7280;font-size:1rem}.header-actions{gap:12px}.export-btn,.refresh-btn{align-items:center;border:none;border-radius:8px;cursor:pointer;display:flex;font-weight:500;gap:8px;padding:12px 20px;transition:all .2s}.refresh-btn{background-color:#6b7280}.refresh-btn:hover:not(:disabled){background-color:#4b5563}.export-btn{background-color:#3b82f6;color:#fff}.export-btn:hover:not(:disabled){background-color:#2563eb}.export-btn:disabled,.refresh-btn:disabled{cursor:not-allowed;opacity:.6}.btn-icon{font-size:1rem}.stats-section{margin-bottom:32px}.stats-grid{grid-gap:16px;gap:16px;grid-template-columns:repeat(auto-fit,minmax(200px,1fr))}.stat-card{border:1px solid #e5e7eb;border-radius:12px;box-shadow:0 1px 3px #0000001a;padding:20px;text-align:center}.stat-card.total{background:linear-gradient(135deg,#3b82f6,#1d4ed8);border:none;color:#fff}.stat-number{font-size:2.5rem;margin-bottom:4px}.stat-label{font-size:.875rem;font-weight:500;margin-bottom:4px;opacity:.9}.stat-detail{font-size:.75rem;opacity:.7}.page-content{background:#fff;border-radius:12px;box-shadow:0 1px 3px #0000001a;overflow:hidden}.filters-section{background-color:#f9fafb;border-bottom:1px solid #e5e7eb;padding:24px}.filters-row{align-items:flex-end;display:flex;flex-wrap:wrap;gap:16px}.filter-group{gap:4px}.filter-group label{color:#374151;font-size:.875rem;font-weight:500}.filter-select{background-color:#fff;border:1px solid #d1d5db;border-radius:6px;font-size:.875rem;min-width:180px;padding:8px 12px}.filter-select:focus{border-color:#3b82f6;box-shadow:0 0 0 3px #3b82f61a;outline:none}.filters-actions{align-items:center;display:flex;gap:12px}.clear-filters-btn{background-color:#6b7280;border:none;border-radius:6px;color:#fff;font-size:.875rem;height:fit-content;padding:8px 16px}.clear-filters-btn:hover{background-color:#4b5563}.filters-row .export-btn{align-items:center;background-color:#3b82f6;border:none;border-radius:6px;color:#fff;cursor:pointer;display:flex;font-size:.875rem;gap:6px;height:fit-content;padding:8px 16px}.filters-row .export-btn:hover:not(:disabled){background-color:#2563eb}.filters-row .export-btn:disabled{cursor:not-allowed;opacity:.6}.reports-table-container{padding:24px}.loading-state{align-items:center;color:#6b7280;display:flex;flex-direction:column;justify-content:center;padding:64px}.loading-spinner{border:3px solid #e5e7eb;border-top-color:#3b82f6;height:32px;margin-bottom:16px;width:32px}.reports-table{border-collapse:collapse;font-size:.875rem;width:100%}.reports-table th{background-color:#f9fafb;border-bottom:1px solid #e5e7eb;color:#374151;font-weight:600;padding:12px 16px;text-align:left;white-space:nowrap}.reports-table th.sortable{cursor:pointer;position:relative;transition:background-color .2s;-webkit-user-select:none;user-select:none}.reports-table th.sortable:hover{background-color:#f3f4f6}.reports-table th.sortable:after{content:"↕️";font-size:.75rem;opacity:.5;position:absolute;right:8px}.reports-table th.sorted-asc:after{content:"↑";opacity:1}.reports-table th.sorted-desc:after{content:"↓";opacity:1}.reports-table td{border-bottom:1px solid #f3f4f6;padding:16px;vertical-align:middle}.reports-table tr:hover{background-color:#f9fafb}.student-name{color:#111827;font-weight:500}.joining-date{color:#6b7280;font-size:.8125rem}.report-type-badge{border-radius:12px;display:inline-block;font-size:.75rem;font-weight:500;letter-spacing:.025em;padding:4px 8px;text-transform:uppercase}.report-type-assessment{background-color:#fef3c7;color:#92400e}.report-type-iep{background-color:#e0e7ff;color:#3730a3}.report-type-communication{background-color:#d1fae5;color:#065f46}.report-type-quarterly{background-color:#fce7f3;color:#9d174d}.missed-period{color:#374151;font-size:.8125rem}.days-badge{border-radius:12px;display:inline-block;font-size:.75rem;font-weight:600;padding:4px 8px}.days-overdue-low{background-color:#fef3c7;color:#92400e}.days-overdue-medium{background-color:#fed7aa;color:#9a3412}.days-overdue-high{background-color:#fee2e2;color:#991b1b}.no-data{color:#6b7280;padding:48px}.btn{font-size:.875rem;padding:8px 16px}.btn-primary{background-color:#3b82f6;border:1px solid #3b82f6}.btn-primary:hover{background-color:#2563eb;border-color:#2563eb}.btn-secondary{background-color:#6b7280;border:1px solid #6b7280}.btn-secondary:hover{background-color:#4b5563;border-color:#4b5563}@media (max-width:768px){.pending-reports-page{padding:16px}.page-header{align-items:stretch;flex-direction:column;gap:16px}.header-actions{justify-content:stretch}.export-btn,.refresh-btn{flex:1 1;justify-content:center}.stats-grid{gap:12px;grid-template-columns:repeat(auto-fit,minmax(150px,1fr))}.stat-card{padding:16px}.stat-number{font-size:2rem}.filters-row{align-items:stretch;flex-direction:column;gap:16px}.filter-group{align-items:center;flex-direction:row;justify-content:space-between}.filter-select{min-width:140px}.reports-table-container{overflow-x:auto}.reports-table{min-width:700px}}.fees-table-container{background:#fff;border-radius:8px;box-shadow:0 2px 4px #0000001a;overflow:hidden}.fees-table-header{background-color:#f8f9fa;border-bottom:1px solid #e9ecef;justify-content:space-between;padding:1rem 1.5rem}.fees-table-header,.table-info{align-items:center;display:flex}.table-info{gap:1rem}.total-count{color:#6c757d;font-size:.9rem;font-weight:500}.refresh-btn{background:#007bff;border:none;border-radius:4px;color:#fff;cursor:pointer;font-size:.9rem;padding:.5rem 1rem;transition:background-color .2s}.refresh-btn:hover:not(:disabled){background:#0056b3}.refresh-btn:disabled{cursor:not-allowed;opacity:.6}.fees-table-loading{align-items:center;display:flex;flex-direction:column;justify-content:center;padding:3rem;text-align:center}.loading-spinner{border-top-color:#007bff;margin-bottom:1rem}.no-fees{align-items:center;display:flex;flex-direction:column;justify-content:center;padding:3rem;text-align:center}.no-fees-icon{font-size:3rem;margin-bottom:1rem;opacity:.5}.no-fees h3{color:#495057;margin:0 0 .5rem}.no-fees p{color:#6c757d;margin:0}.fees-table-wrapper{overflow-x:auto}.fees-table{border-collapse:collapse;font-size:.9rem;width:100%}.fees-table th{background-color:#f8f9fa;border-bottom:2px solid #dee2e6;color:#495057;font-weight:600;padding:1rem .75rem;text-align:left;white-space:nowrap}.fees-table td{border-bottom:1px solid #e9ecef;padding:1rem .75rem;vertical-align:middle}.fee-row{transition:background-color .2s}.fee-row:hover{background-color:#f8f9fa}.fee-row.overdue{background-color:#fff5f5}.fee-row.overdue:hover{background-color:#fed7d7}.student-cell{min-width:200px}.student-info{display:flex;flex-direction:column;gap:.25rem}.student-name{color:#495057;font-weight:600}.student-email{color:#6c757d;font-size:.8rem}.description-cell{min-width:200px}.fee-description{color:#495057;line-height:1.4}.amount-cell{min-width:120px;text-align:right}.amount{color:#28a745;font-size:1rem;font-weight:600}.date-cell{min-width:100px}.created-date,.due-date{color:#6c757d;font-size:.85rem}.overdue-cell,.status-cell{min-width:100px}.days-overdue{color:#dc3545;font-size:.85rem;font-weight:600}.created-cell{min-width:100px}.actions-cell{min-width:150px}.action-buttons{align-items:center;gap:.5rem}.btn{font-size:.8rem;gap:.25rem;padding:.375rem .75rem}.btn-sm{font-size:.75rem;padding:.25rem .5rem}.btn-primary:hover{background-color:#0056b3;transform:translateY(-1px)}.btn-warning:hover{background-color:#e0a800;transform:translateY(-1px)}.btn-secondary:hover{background-color:#545b62;transform:translateY(-1px)}.pagination{background-color:#f8f9fa;border-top:1px solid #e9ecef;gap:1rem;padding:1rem}.pagination-btn{background:#007bff;border:none;border-radius:4px;color:#fff;cursor:pointer;font-size:.9rem;padding:.5rem 1rem;transition:background-color .2s}.pagination-btn:hover:not(:disabled){background:#0056b3}.pagination-btn:disabled{background:#6c757d;cursor:not-allowed;opacity:.6}.pagination-info{color:#6c757d;font-size:.9rem;font-weight:500}@media (max-width:768px){.fees-table-header{align-items:stretch;flex-direction:column;gap:1rem}.fees-table{font-size:.8rem}.fees-table td,.fees-table th{padding:.5rem}.description-cell,.student-cell{min-width:150px}.action-buttons{flex-direction:column;gap:.25rem}.btn-sm{font-size:.7rem;padding:.375rem .5rem}}@media (max-width:480px){.fees-table-container{border-radius:0;margin:0 -1rem}.fees-table{font-size:.75rem}.pagination{flex-direction:column;gap:.5rem}.pagination-btn{width:100%}}.payment-modal-overlay{align-items:center;background-color:#00000080;bottom:0;display:flex;justify-content:center;left:0;padding:1rem;position:fixed;right:0;top:0;z-index:1000}.payment-modal{animation:modalSlideIn .3s ease-out;background:#fff;border-radius:8px;box-shadow:0 10px 25px #0003;max-height:90vh;max-width:600px;overflow-y:auto;width:100%}@keyframes modalSlideIn{0%{opacity:0;transform:translateY(-20px) scale(.95)}to{opacity:1;transform:translateY(0) scale(1)}}.payment-modal-header{align-items:center;background-color:#f8f9fa;border-bottom:1px solid #e9ecef;border-radius:8px 8px 0 0;display:flex;justify-content:space-between;padding:1.5rem}.payment-modal-header h2{color:#495057;font-size:1.5rem;font-weight:600;margin:0}.close-btn{background:none;border:none;color:#6c757d;cursor:pointer;font-size:1.5rem;line-height:1;padding:.25rem;transition:color .2s}.close-btn:hover{color:#495057}.payment-modal-body{padding:1.5rem}.fee-info-section{background-color:#f8f9fa;border-left:4px solid #007bff;border-radius:6px;margin-bottom:2rem;padding:1rem}.fee-info-section h3{color:#495057;font-size:1.1rem;font-weight:600;margin:0 0 1rem}.fee-info-grid{grid-gap:1rem;display:grid;gap:1rem;grid-template-columns:repeat(auto-fit,minmax(200px,1fr))}.fee-info-item{display:flex;flex-direction:column;gap:.25rem}.fee-info-item label{color:#6c757d;font-size:.85rem;font-weight:600;letter-spacing:.5px;text-transform:uppercase}.fee-info-item span{color:#495057;font-weight:500}.amount-due{color:#28a745!important;font-size:1.1rem!important;font-weight:600!important}.overdue-date{color:#dc3545!important;font-weight:600!important}.status-badge{display:inline-block;font-size:.75rem;font-weight:600;letter-spacing:.5px;padding:.25rem .75rem;width:fit-content}.status-pending{background-color:#fff3cd;border:1px solid #ffeaa7;color:#856404}.status-paid{background-color:#d4edda;border:1px solid #c3e6cb;color:#155724}.status-overdue{background-color:#f8d7da;border:1px solid #f5c6cb;color:#721c24}.payment-form h3{border-bottom:1px solid #e9ecef;color:#495057;font-size:1.1rem;font-weight:600;margin:0 0 1.5rem;padding-bottom:.5rem}.form-row{grid-gap:1rem;display:grid;grid-template-columns:1fr 1fr}.form-group,.form-row{margin-bottom:1rem}.form-group label{color:#495057;font-size:.9rem;font-weight:600}.required{color:#dc3545}.form-group input,.form-group textarea{border:1px solid #ced4da;border-radius:4px;box-sizing:border-box;font-size:.9rem;padding:.75rem;transition:border-color .2s,box-shadow .2s;width:100%}.form-group input:focus,.form-group textarea:focus{border-color:#007bff;box-shadow:0 0 0 .2rem #007bff40;outline:none}.form-group input.error,.form-group textarea.error{border-color:#dc3545}.form-group input.error:focus,.form-group textarea.error:focus{box-shadow:0 0 0 .2rem #dc354540}.currency-input{align-items:center;background-color:#fff;border:1px solid #ced4da;border-radius:4px;display:flex;height:calc(2.25rem + 2px);position:relative;transition:border-color .2s,box-shadow .2s}.currency-input:focus-within{border-color:#007bff;box-shadow:0 0 0 .2rem #007bff40}.currency-input.error{border-color:#dc3545}.currency-input.error:focus-within{box-shadow:0 0 0 .2rem #dc354540}.currency-symbol{align-items:center;background-color:#e9ecef;border-radius:4px 0 0 4px;border-right:1px solid #ced4da;color:#495057;display:flex;font-weight:600}.currency-input input,.currency-symbol{font-size:.9rem;height:100%;padding:.375rem .75rem}.currency-input input{border:none;border-radius:0 4px 4px 0;box-sizing:border-box;flex:1 1;font-weight:500;outline:none}.currency-input.has-value input{font-weight:600}.currency-input input::-webkit-inner-spin-button,.currency-input input::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.currency-input input[type=number]{-moz-appearance:textfield}.currency-input input::placeholder,.currency-input:not(.has-value) input:placeholder-shown{color:#0000}.voucher-input-group{display:flex;gap:.5rem}.voucher-input-group input{flex:1 1}.generate-voucher-btn{background:#28a745;border:none;border-radius:4px;color:#fff;cursor:pointer;font-size:1rem;min-width:50px;padding:.75rem;transition:background-color .2s}.generate-voucher-btn:hover:not(:disabled){background:#218838}.generate-voucher-btn:disabled{background:#6c757d;cursor:not-allowed}.error-message{align-items:center;display:flex;font-size:.8rem;gap:.25rem;margin-top:.25rem}.error-message:before{content:"⚠️";font-size:.7rem}.general-error{margin-bottom:1rem;padding:.75rem}.general-error:before{content:"❌"}.warning-message{align-items:center;background-color:#fff3cd;border:1px solid #ffeaa7;border-radius:4px;color:#856404;display:flex;gap:.25rem;padding:.5rem}.field-help,.warning-message{font-size:.8rem;margin-top:.25rem}.field-help{color:#6c757d}.form-actions{border-top:1px solid #e9ecef}.btn{justify-content:center;min-width:120px}.loading-spinner{border:2px solid #0000;border-top-color:currentcolor;height:16px;width:16px}@media (max-width:768px){.payment-modal{margin:.5rem;max-height:95vh}.payment-modal-body,.payment-modal-header{padding:1rem}.fee-info-grid,.form-row{gap:.75rem;grid-template-columns:1fr}.form-actions{flex-direction:column}.btn{width:100%}}@media (max-width:480px){.payment-modal-overlay{padding:.5rem}.payment-modal{margin:0}.payment-modal-header h2{font-size:1.25rem}.voucher-input-group{flex-direction:column}.generate-voucher-btn{width:100%}}.fees-management{margin:0 auto;max-width:1400px;padding:2rem}.fees-management-header{align-items:flex-start;border-bottom:2px solid #e9ecef;display:flex;justify-content:space-between;margin-bottom:2rem;padding-bottom:1rem}.header-content h1{color:#495057;font-size:2rem;font-weight:700;margin:0 0 .5rem}.header-content p{color:#6c757d;font-size:1.1rem;margin:0}.header-actions{align-items:center;display:flex;gap:1rem}.btn{align-items:center;border-radius:6px;display:inline-flex;font-size:.9rem;font-weight:600;gap:.5rem;padding:.75rem 1.5rem;transition:all .2s;white-space:nowrap}.btn-primary:hover:not(:disabled){box-shadow:0 4px 8px #007bff4d;transform:translateY(-1px)}.btn-secondary:hover:not(:disabled){box-shadow:0 4px 8px #6c757d4d;transform:translateY(-1px)}.btn:disabled{box-shadow:none;transform:none}.stats-grid{grid-gap:1.5rem;display:grid;gap:1.5rem;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));margin-bottom:2rem}.stat-card{align-items:center;background:#fff;border-radius:8px;box-shadow:0 2px 4px #0000001a;display:flex;gap:1rem;padding:1.5rem;transition:transform .2s,box-shadow .2s}.stat-card:hover{box-shadow:0 4px 12px #00000026;transform:translateY(-2px)}.stat-icon{font-size:2.5rem;opacity:.8}.stat-content{flex:1 1}.stat-number{font-size:2rem;font-weight:700;margin-bottom:.25rem}.stat-label{color:#6c757d;font-size:.9rem;font-weight:600;letter-spacing:.5px;margin-bottom:.25rem;text-transform:uppercase}.stat-amount{color:#495057;font-size:1.1rem;font-weight:600}.stat-card.total{background:#fff;border-left:4px solid #007bff}.stat-card.total .stat-number{color:#007bff}.stat-card.total .stat-label{color:#6c757d}.stat-card.total .stat-amount{color:#495057}.stat-card.paid{border-left:4px solid #28a745}.stat-card.paid .stat-number{color:#28a745}.stat-card.paid .stat-label{color:#6c757d}.stat-card.paid .stat-amount{color:#495057}.stat-card.pending{border-left:4px solid #ffc107}.stat-card.pending .stat-number{color:#ffc107}.stat-card.pending .stat-label{color:#6c757d}.stat-card.pending .stat-amount{color:#495057}.stat-card.overdue{border-left:4px solid #dc3545}.stat-card.overdue .stat-number{color:#dc3545}.stat-card.overdue .stat-label{color:#6c757d}.stat-card.overdue .stat-amount{color:#495057}.filters-section{background:#fff;border-radius:8px;box-shadow:0 2px 4px #0000001a;margin-bottom:2rem;padding:1.5rem}.filters-header{align-items:center;border-bottom:1px solid #e9ecef;display:flex;justify-content:space-between;margin-bottom:1.5rem;padding-bottom:1rem}.filters-header h3{color:#495057;font-size:1.2rem;font-weight:600;margin:0}.clear-filters-btn{background:none;border:1px solid #6c757d;border-radius:4px;color:#6c757d;cursor:pointer;font-size:.85rem;padding:.5rem 1rem;transition:all .2s}.clear-filters-btn:hover{background:#6c757d;color:#fff}.filters-grid{grid-gap:1rem;display:grid;gap:1rem;grid-template-columns:repeat(auto-fit,minmax(200px,1fr))}.filter-group{gap:.5rem}.filter-group label{color:#495057;font-size:.9rem;font-weight:600}.filter-group input,.filter-group select{border:1px solid #ced4da;border-radius:4px;font-size:.9rem;padding:.75rem;transition:border-color .2s,box-shadow .2s}.fees-table-section{margin-bottom:2rem}@media (max-width:1200px){.fees-management{padding:1.5rem}.stats-grid{gap:1rem;grid-template-columns:repeat(auto-fit,minmax(220px,1fr))}}@media (max-width:768px){.fees-management{padding:1rem}.fees-management-header{align-items:stretch;flex-direction:column;gap:1rem}.header-actions{justify-content:stretch}.header-actions .btn{flex:1 1;justify-content:center}.stats-grid{gap:1rem;grid-template-columns:1fr}.stat-card{padding:1rem}.stat-icon{font-size:2rem}.stat-number{font-size:1.5rem}.filters-grid{gap:1rem;grid-template-columns:1fr}.filters-header{align-items:stretch;flex-direction:column;gap:1rem}.clear-filters-btn{align-self:flex-end}}@media (max-width:480px){.fees-management{padding:.5rem}.header-content h1{font-size:1.5rem}.header-content p{font-size:1rem}.stat-card{flex-direction:column;gap:.5rem;text-align:center}.stat-icon{font-size:1.5rem}.stat-number{font-size:1.25rem}.filters-section{padding:1rem}.btn{font-size:.8rem;padding:.5rem 1rem}}.btn:disabled:after{animation:spin 1s linear infinite;border:2px solid #0000;border-radius:50%;border-top-color:initial;content:"";height:16px;margin:auto;position:absolute;width:16px}.btn:focus,.clear-filters-btn:focus{outline:2px solid #007bff;outline-offset:2px}.filter-group input:focus,.filter-group select:focus{border-color:#007bff;box-shadow:0 0 0 .2rem #007bff40;outline:none}.modal-content{max-width:500px}.therapist-form{padding:1.5rem}.form-input{border:1px solid #ddd;border-radius:4px;font-size:1rem;padding:.75rem;transition:border-color .2s;width:100%}.form-input:focus{border-color:#3498db;outline:none}.color-picker{display:flex;flex-wrap:wrap;gap:.5rem}.color-option{border:2px solid #0000;border-radius:50%;cursor:pointer;height:30px;transition:transform .2s,border-color .2s;width:30px}.color-option:hover{transform:scale(1.1)}.color-option.selected{border-color:#2c3e50;transform:scale(1.1)}.form-input.error{border-color:#e74c3c;box-shadow:0 0 0 2px #e74c3c33}@media (max-width:768px){.modal-content{margin:1rem;width:95%}.form-actions{flex-direction:column}.cancel-button,.submit-button{width:100%}}.therapist-list{padding:1rem}.therapist-list-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:2rem}.therapist-list-header h2{color:#2c3e50;margin:0}.therapist-filters{align-items:center;display:flex;gap:2rem;margin-bottom:2rem}.therapist-grid{grid-gap:1.5rem;display:grid;gap:1.5rem;grid-template-columns:repeat(auto-fill,minmax(300px,1fr))}.therapist-card{background:#fff;border-radius:8px;box-shadow:0 2px 10px #0000001a;padding:1.5rem;transition:transform .2s,box-shadow .2s}.therapist-card:hover{box-shadow:0 4px 20px #00000026;transform:translateY(-2px)}.therapist-header{align-items:center;display:flex;gap:1rem;margin-bottom:1rem}.therapist-color{border-radius:50%;flex-shrink:0;height:20px;width:20px}.therapist-info{flex:1 1}.therapist-info h3{color:#2c3e50;font-size:1.1rem;margin:0 0 .25rem}.specialization{color:#7f8c8d;font-size:.9rem;margin:0}.therapist-details{margin-bottom:1rem}.therapist-details p{color:#555;font-size:.9rem;margin:.5rem 0}.therapist-actions{display:flex;gap:.5rem}.delete-button.deactivate{background-color:#f39c12}.delete-button.deactivate:hover{background-color:#e67e22}.delete-button.permanent-delete{background-color:#8e44ad}.delete-button.permanent-delete:hover{background-color:#7d3c98}@media (max-width:768px){.therapist-list-header{align-items:stretch}.therapist-filters,.therapist-list-header{flex-direction:column;gap:1rem}.therapist-grid{grid-template-columns:1fr}}.modal-overlay{background-color:#00000080}.modal-content{box-shadow:0 4px 20px #00000026}.modal-header{padding:1.5rem}.modal-header h3{color:#2c3e50;margin:0}.close-button{align-items:center;background:none;border:none;color:#7f8c8d;cursor:pointer;display:flex;font-size:1.5rem;height:30px;justify-content:center;padding:0;width:30px}.close-button:hover{color:#2c3e50}.student-form{padding:1.5rem}.form-group,.form-row{margin-bottom:1.5rem}.form-row{gap:1rem}.form-row .form-group{flex:1 1;margin-bottom:0}.form-group label{color:#2c3e50;margin-bottom:.5rem}.form-input,.form-textarea{border:1px solid #ddd;border-radius:4px;font-family:inherit;font-size:1rem;padding:.75rem;transition:border-color .2s;width:100%}.form-input:focus,.form-textarea:focus{border-color:#3498db;outline:none}.form-textarea{min-height:80px;resize:vertical}.checkbox-label{display:flex!important;gap:.5rem}.form-actions{border-top:1px solid #eee;display:flex;gap:1rem;justify-content:flex-end;margin-top:2rem;padding-top:1rem}.cancel-button,.submit-button{border:none;border-radius:4px;cursor:pointer;font-size:1rem;padding:.75rem 1.5rem;transition:background-color .2s}.cancel-button{background-color:#95a5a6;color:#fff}.cancel-button:hover{background-color:#7f8c8d}.submit-button{background-color:#3498db;color:#fff}.submit-button:hover:not(:disabled){background-color:#2980b9}.submit-button:disabled{background-color:#bdc3c7;cursor:not-allowed}.form-input.error,.form-textarea.error{border-color:#e74c3c;box-shadow:0 0 0 2px #e74c3c33}.field-error{color:#e74c3c;display:block;font-size:.8rem;margin-top:.25rem}@media (max-width:768px){.modal-content{margin:1rem;width:95%}.form-row{flex-direction:column;gap:0}.form-row .form-group{margin-bottom:1.5rem}.form-actions{flex-direction:column}.cancel-button,.submit-button{width:100%}}.student-list{padding:1rem}.student-list-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:2rem}.student-list-header h2{color:#2c3e50;margin:0}.add-button{background-color:#3498db;border:none;border-radius:4px;color:#fff;cursor:pointer;font-size:1rem;padding:.75rem 1.5rem;transition:background-color .2s}.add-button:hover{background-color:#2980b9}.student-filters{align-items:center;display:flex;flex-wrap:wrap;gap:2rem;margin-bottom:2rem}.search-container{flex:1 1;min-width:200px}.search-input{font-size:1rem;max-width:300px;padding:.5rem;width:100%}.grade-filter{min-width:150px}.grade-select{background-color:#fff;border:1px solid #ddd;border-radius:4px;font-size:1rem;padding:.5rem;width:100%}.filter-container{display:flex;gap:1rem}.filter-container label{align-items:center;cursor:pointer;display:flex;gap:.5rem;white-space:nowrap}.student-grid{grid-gap:1.5rem;display:grid;gap:1.5rem;grid-template-columns:repeat(auto-fill,minmax(350px,1fr))}.student-card{background:#fff;border-radius:8px;box-shadow:0 2px 10px #0000001a;padding:1.5rem;transition:transform .2s,box-shadow .2s}.student-card:hover{box-shadow:0 4px 20px #00000026;transform:translateY(-2px)}.student-header{align-items:flex-start;display:flex;justify-content:space-between;margin-bottom:1rem}.student-info h3{color:#2c3e50;font-size:1.1rem;margin:0 0 .25rem}.grade-level{color:#7f8c8d;font-size:.9rem;font-weight:500;margin:0}.status-badge{flex-shrink:0;font-size:.8rem;padding:.25rem .5rem}.status-badge.active{background-color:#d5f4e6;color:#27ae60}.status-badge.inactive{background-color:#fadbd8;color:#e74c3c}.student-details{margin-bottom:1.5rem}.detail-section{margin-bottom:1rem}.detail-section:last-child{margin-bottom:0}.detail-section strong{color:#2c3e50;display:block;font-size:.9rem;margin-bottom:.25rem}.detail-section p{color:#555;font-size:.9rem;line-height:1.4;margin:0}.student-actions{display:flex;gap:.5rem}.delete-button,.edit-button{border:none;border-radius:4px;cursor:pointer;font-size:.9rem;padding:.5rem 1rem;transition:background-color .2s}.edit-button{background-color:#f39c12;color:#fff}.edit-button:hover{background-color:#e67e22}.delete-button{background-color:#e74c3c;color:#fff}.delete-button:hover{background-color:#c0392b}.empty-state,.error-container,.loading-container{color:#7f8c8d;padding:3rem;text-align:center}.loading-spinner{animation:spin 1s linear infinite;border:4px solid #f3f3f3;border-radius:50%;border-top-color:#3498db;height:40px;margin:0 auto 1rem;width:40px}@keyframes spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}.retry-button{background-color:#3498db;border:none;border-radius:4px;color:#fff;cursor:pointer;margin-top:1rem;padding:.5rem 1rem}.retry-button:hover{background-color:#2980b9}@media (max-width:768px){.student-filters,.student-list-header{align-items:stretch;flex-direction:column;gap:1rem}.grade-filter,.search-container{min-width:auto}.filter-container{justify-content:center}.student-grid{grid-template-columns:1fr}}.module-permission-selector{margin-bottom:20px}.form-label{color:#333;display:block;font-weight:600;margin-bottom:8px}.modules-container{background:#f9f9f9;border:1px solid #ddd;border-radius:8px;max-height:400px;overflow-y:auto}.module-item{background:#fff;border-bottom:1px solid #eee}.module-item:last-child{border-bottom:none}.module-header{background:#f8f9fa;border-bottom:1px solid #eee;padding:12px 16px}.module-checkbox{align-items:center;cursor:pointer;display:flex;margin:0}.module-checkbox input[type=checkbox]{margin-right:8px;transform:scale(1.1)}.module-name{color:#333;font-size:14px;font-weight:600}.permission-details{background:#fff;padding:16px}.permission-grid{grid-gap:12px;display:grid;gap:12px;grid-template-columns:repeat(auto-fit,minmax(120px,1fr))}.permission-item{align-items:center;background:#f8f9fa;border:1px solid #e0e0e0;border-radius:6px;cursor:pointer;display:flex;margin:0;padding:8px 12px;transition:all .2s ease}.permission-item:hover{background:#e9ecef;border-color:#007bff}.permission-item input[type=checkbox]{margin-right:6px}.permission-item span{color:#555;font-size:13px;font-weight:500}.permission-item input[type=checkbox]:checked+span{color:#007bff;font-weight:600}.permission-note{background:#e3f2fd;border-left:4px solid #2196f3;border-radius:4px;margin-top:12px;padding:8px 12px}.permission-note small{color:#1565c0;font-size:12px;line-height:1.4}.module-permission-selector input[type=checkbox]:disabled,.module-permission-selector input[type=checkbox]:disabled+span{cursor:not-allowed;opacity:.6}@media (max-width:768px){.permission-grid{gap:8px;grid-template-columns:repeat(2,1fr)}.permission-item{font-size:12px;padding:6px 8px}.module-header{padding:10px 12px}.permission-details{padding:12px}}.user-list-container{margin:0 auto;max-width:1200px;padding:20px}.user-list-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:20px}.user-list-header h2{color:#333;margin:0}.user-filters{display:flex;flex-wrap:wrap;gap:15px;margin-bottom:20px}.filter-group{display:flex;flex-direction:column;gap:5px}.search-input{border:1px solid #ddd;border-radius:4px;font-size:14px;min-width:200px;padding:8px 12px}.search-input:focus{border-color:#007bff;box-shadow:0 0 0 2px #007bff40;outline:none}.filter-group select{background-color:#fff;border:1px solid #ddd;border-radius:4px;font-size:14px;min-width:120px;padding:8px 12px}.filter-group select:focus{border-color:#007bff;box-shadow:0 0 0 2px #007bff40;outline:none}.user-table-container{background:#fff;border-radius:8px;box-shadow:0 2px 4px #0000001a;margin-bottom:20px;overflow:hidden}.user-table{border-collapse:collapse;width:100%}.user-table td,.user-table th{border-bottom:1px solid #eee;padding:12px;text-align:left}.user-table th{color:#333;font-weight:600}.user-table tbody tr:hover,.user-table th{background-color:#f8f9fa}.user-name{align-items:center;display:flex;gap:8px}.superadmin-badge{background-color:#dc3545;border-radius:10px;color:#fff;font-size:10px;font-weight:700;padding:2px 6px;text-transform:uppercase}.status-badge{border-radius:12px;font-size:12px;font-weight:500;padding:4px 8px;text-transform:uppercase}.status-badge.active{background-color:#d4edda;color:#155724}.status-badge.inactive{background-color:#f8d7da;color:#721c24}.action-buttons{display:flex;flex-wrap:wrap;gap:5px}.btn{border:none;border-radius:4px;cursor:pointer;display:inline-block;font-size:12px;font-weight:500;padding:6px 12px;text-decoration:none;transition:all .2s ease}.btn:disabled{cursor:not-allowed;opacity:.6;position:relative}.btn:disabled:after{display:none!important}.btn:disabled:hover{transform:none!important}.btn-primary{background-color:#007bff;color:#fff}.btn-primary:hover:not(:disabled){background-color:#0056b3}.btn-secondary{background-color:#6c757d;color:#fff}.btn-secondary:hover:not(:disabled){background-color:#545b62}.btn-success{background-color:#28a745;color:#fff}.btn-success:hover:not(:disabled){background-color:#1e7e34}.btn-warning{background-color:#ffc107;color:#212529}.btn-warning:hover:not(:disabled){background-color:#e0a800}.btn-danger{background-color:#dc3545;color:#fff}.btn-danger:hover:not(:disabled){background-color:#c82333}.btn-info{background-color:#17a2b8;color:#fff}.btn-info:hover:not(:disabled){background-color:#138496}.btn-sm{font-size:11px;padding:4px 8px}.pagination{align-items:center;display:flex;gap:15px;justify-content:center;margin-top:20px}.pagination-info{color:#666;font-size:14px}.loading{color:#666;padding:40px;text-align:center}.error-message{background-color:#f8d7da;border:1px solid #f5c6cb;border-radius:4px;color:#721c24;margin-bottom:20px;padding:12px}.no-data{color:#666;font-style:italic;padding:40px;text-align:center}.modal-overlay{align-items:center;background-color:#0009;bottom:0;display:flex;justify-content:center;left:0;padding:20px;position:fixed;right:0;top:0;z-index:1000}.modal-content{background:#fff;border-radius:8px;box-shadow:0 10px 30px #0000004d;max-height:90vh;max-width:600px;overflow-y:auto;width:90%}.modal-header{align-items:center;border-bottom:1px solid #eee;display:flex;justify-content:space-between;padding:20px}.modal-header h2{color:#333;margin:0}.modal-close{align-items:center;background:none;border:none;color:#666;cursor:pointer;display:flex;font-size:24px;height:30px;justify-content:center;padding:0;width:30px}.modal-close:hover{color:#333}.user-form{padding:20px}.form-row{display:flex;gap:15px}.form-group{flex:1 1;margin-bottom:20px}.form-group label{color:#333;display:block;font-weight:500;margin-bottom:5px}.form-group input,.form-group select{border:1px solid #ddd;border-radius:4px;box-sizing:border-box;font-size:14px;padding:10px 12px;width:100%}.form-group input:focus,.form-group select:focus{border-color:#007bff;box-shadow:0 0 0 2px #007bff40;outline:none}.form-group input.error,.form-group select.error{border-color:#dc3545}.form-group input:disabled,.form-group select:disabled{background-color:#f8f9fa;cursor:not-allowed}.password-input-container{position:relative}.password-input-container input{padding-right:45px}.password-toggle{background:none;border:none;cursor:pointer;font-size:16px;padding:4px;position:absolute;right:10px;top:50%;transform:translateY(-50%)}.checkbox-label{align-items:center;cursor:pointer;display:flex;gap:8px}.checkbox-label input[type=checkbox]{margin:0;width:auto}.form-note{color:#666;display:block;font-size:12px;font-style:italic;margin-top:5px}.general-error{background-color:#f8d7da;border:1px solid #f5c6cb;border-radius:4px;color:#721c24;margin-bottom:20px;padding:12px}.error-message{color:#dc3545;font-size:12px;margin-top:5px}.modal-actions{border-top:1px solid #eee;display:flex;gap:10px;justify-content:flex-end;margin-top:30px;padding-top:20px}@media (max-width:768px){.user-list-container{padding:10px}.user-filters{flex-direction:column}.search-input{min-width:auto}.user-table-container{overflow-x:auto}.user-table{min-width:600px}.action-buttons,.form-row{flex-direction:column}.modal-content{margin:10px;width:95%}}:root{--toastify-color-light:#fff;--toastify-color-dark:#121212;--toastify-color-info:#3498db;--toastify-color-success:#07bc0c;--toastify-color-warning:#f1c40f;--toastify-color-error:#e74c3c;--toastify-color-transparent:#ffffffb3;--toastify-icon-color-info:var(--toastify-color-info);--toastify-icon-color-success:var(--toastify-color-success);--toastify-icon-color-warning:var(--toastify-color-warning);--toastify-icon-color-error:var(--toastify-color-error);--toastify-toast-width:320px;--toastify-toast-offset:16px;--toastify-toast-top:max(var(--toastify-toast-offset),env(safe-area-inset-top));--toastify-toast-right:max(var(--toastify-toast-offset),env(safe-area-inset-right));--toastify-toast-left:max(var(--toastify-toast-offset),env(safe-area-inset-left));--toastify-toast-bottom:max(var(--toastify-toast-offset),env(safe-area-inset-bottom));--toastify-toast-background:#fff;--toastify-toast-min-height:64px;--toastify-toast-max-height:800px;--toastify-toast-bd-radius:6px;--toastify-font-family:sans-serif;--toastify-z-index:9999;--toastify-text-color-light:#757575;--toastify-text-color-dark:#fff;--toastify-text-color-info:#fff;--toastify-text-color-success:#fff;--toastify-text-color-warning:#fff;--toastify-text-color-error:#fff;--toastify-spinner-color:#616161;--toastify-spinner-color-empty-area:#e0e0e0;--toastify-color-progress-light:linear-gradient(90deg,#4cd964,#5ac8fa,#007aff,#34aadc,#5856d6,#ff2d55);--toastify-color-progress-dark:#bb86fc;--toastify-color-progress-info:var(--toastify-color-info);--toastify-color-progress-success:var(--toastify-color-success);--toastify-color-progress-warning:var(--toastify-color-warning);--toastify-color-progress-error:var(--toastify-color-error);--toastify-color-progress-bgo:0.2}.Toastify__toast-container{box-sizing:border-box;color:#fff;padding:4px;position:fixed;-webkit-transform:translateZ(9999);-webkit-transform:translateZ(var(--toastify-z-index));width:320px;width:var(--toastify-toast-width);z-index:9999;z-index:var(--toastify-z-index)}.Toastify__toast-container--top-left{left:max(16px,env(safe-area-inset-left));left:var(--toastify-toast-left);top:max(16px,env(safe-area-inset-top));top:var(--toastify-toast-top)}.Toastify__toast-container--top-center{left:50%;top:max(16px,env(safe-area-inset-top));top:var(--toastify-toast-top);transform:translateX(-50%)}.Toastify__toast-container--top-right{right:max(16px,env(safe-area-inset-right));right:var(--toastify-toast-right);top:max(16px,env(safe-area-inset-top));top:var(--toastify-toast-top)}.Toastify__toast-container--bottom-left{bottom:max(16px,env(safe-area-inset-bottom));bottom:var(--toastify-toast-bottom);left:max(16px,env(safe-area-inset-left));left:var(--toastify-toast-left)}.Toastify__toast-container--bottom-center{bottom:max(16px,env(safe-area-inset-bottom));bottom:var(--toastify-toast-bottom);left:50%;transform:translateX(-50%)}.Toastify__toast-container--bottom-right{bottom:max(16px,env(safe-area-inset-bottom));bottom:var(--toastify-toast-bottom);right:max(16px,env(safe-area-inset-right));right:var(--toastify-toast-right)}@media only screen and (max-width:480px){.Toastify__toast-container{left:env(safe-area-inset-left);margin:0;padding:0;width:100vw}.Toastify__toast-container--top-center,.Toastify__toast-container--top-left,.Toastify__toast-container--top-right{top:env(safe-area-inset-top);transform:translateX(0)}.Toastify__toast-container--bottom-center,.Toastify__toast-container--bottom-left,.Toastify__toast-container--bottom-right{bottom:env(safe-area-inset-bottom);transform:translateX(0)}.Toastify__toast-container--rtl{left:auto;right:env(safe-area-inset-right)}}.Toastify__toast{--y:0;border-radius:6px;border-radius:var(--toastify-toast-bd-radius);box-shadow:0 4px 12px #0000001a;box-sizing:border-box;cursor:default;direction:ltr;display:flex;font-family:sans-serif;font-family:var(--toastify-font-family);justify-content:space-between;margin-bottom:1rem;max-height:800px;max-height:var(--toastify-toast-max-height);min-height:64px;min-height:var(--toastify-toast-min-height);overflow:hidden;padding:8px;position:relative;touch-action:none;z-index:0}.Toastify__toast--stacked{position:absolute;transform:translate3d(0,var(--y),0) scale(var(--s));transition:transform .3s;width:100%}.Toastify__toast--stacked[data-collapsed] .Toastify__close-button,.Toastify__toast--stacked[data-collapsed] .Toastify__toast-body{transition:opacity .1s}.Toastify__toast--stacked[data-collapsed=false]{overflow:visible}.Toastify__toast--stacked[data-collapsed=true]:not(:last-child)>*{opacity:0}.Toastify__toast--stacked:after{bottom:100%;content:"";height:calc(var(--g)*1px);left:0;position:absolute;right:0}.Toastify__toast--stacked[data-pos=top]{top:0}.Toastify__toast--stacked[data-pos=bot]{bottom:0}.Toastify__toast--stacked[data-pos=bot].Toastify__toast--stacked:before{transform-origin:top}.Toastify__toast--stacked[data-pos=top].Toastify__toast--stacked:before{transform-origin:bottom}.Toastify__toast--stacked:before{bottom:0;content:"";height:100%;left:0;position:absolute;right:0;transform:scaleY(3);z-index:-1}.Toastify__toast--rtl{direction:rtl}.Toastify__toast--close-on-click{cursor:pointer}.Toastify__toast-body{align-items:center;display:flex;flex:1 1 auto;margin:auto 0;padding:6px}.Toastify__toast-body>div:last-child{flex:1 1;word-break:break-word}.Toastify__toast-icon{display:flex;flex-shrink:0;margin-inline-end:10px;width:20px}.Toastify--animate{animation-duration:.5s;animation-fill-mode:both}.Toastify--animate-icon{animation-duration:.3s;animation-fill-mode:both}@media only screen and (max-width:480px){.Toastify__toast{border-radius:0;margin-bottom:0}}.Toastify__toast-theme--dark{background:#121212;background:var(--toastify-color-dark);color:#fff;color:var(--toastify-text-color-dark)}.Toastify__toast-theme--colored.Toastify__toast--default,.Toastify__toast-theme--light{background:#fff;background:var(--toastify-color-light);color:#757575;color:var(--toastify-text-color-light)}.Toastify__toast-theme--colored.Toastify__toast--info{background:#3498db;background:var(--toastify-color-info);color:#fff;color:var(--toastify-text-color-info)}.Toastify__toast-theme--colored.Toastify__toast--success{background:#07bc0c;background:var(--toastify-color-success);color:#fff;color:var(--toastify-text-color-success)}.Toastify__toast-theme--colored.Toastify__toast--warning{background:#f1c40f;background:var(--toastify-color-warning);color:#fff;color:var(--toastify-text-color-warning)}.Toastify__toast-theme--colored.Toastify__toast--error{background:#e74c3c;background:var(--toastify-color-error);color:#fff;color:var(--toastify-text-color-error)}.Toastify__progress-bar-theme--light{background:linear-gradient(90deg,#4cd964,#5ac8fa,#007aff,#34aadc,#5856d6,#ff2d55);background:var(--toastify-color-progress-light)}.Toastify__progress-bar-theme--dark{background:#bb86fc;background:var(--toastify-color-progress-dark)}.Toastify__progress-bar--info{background:#3498db;background:var(--toastify-color-progress-info)}.Toastify__progress-bar--success{background:#07bc0c;background:var(--toastify-color-progress-success)}.Toastify__progress-bar--warning{background:#f1c40f;background:var(--toastify-color-progress-warning)}.Toastify__progress-bar--error{background:#e74c3c;background:var(--toastify-color-progress-error)}.Toastify__progress-bar-theme--colored.Toastify__progress-bar--error,.Toastify__progress-bar-theme--colored.Toastify__progress-bar--info,.Toastify__progress-bar-theme--colored.Toastify__progress-bar--success,.Toastify__progress-bar-theme--colored.Toastify__progress-bar--warning{background:#ffffffb3;background:var(--toastify-color-transparent)}.Toastify__close-button{align-self:flex-start;background:#0000;border:none;color:#fff;cursor:pointer;opacity:.7;outline:none;padding:0;transition:.3s ease;z-index:1}.Toastify__close-button--light{color:#000;opacity:.3}.Toastify__close-button>svg{fill:currentColor;height:16px;width:14px}.Toastify__close-button:focus,.Toastify__close-button:hover{opacity:1}@keyframes Toastify__trackProgress{0%{transform:scaleX(1)}to{transform:scaleX(0)}}.Toastify__progress-bar{border-bottom-left-radius:6px;border-bottom-left-radius:var(--toastify-toast-bd-radius);bottom:0;height:100%;left:0;opacity:.7;position:absolute;transform-origin:left;width:100%;z-index:9999;z-index:var(--toastify-z-index)}.Toastify__progress-bar--animated{animation:Toastify__trackProgress linear 1 forwards}.Toastify__progress-bar--controlled{transition:transform .2s}.Toastify__progress-bar--rtl{border-bottom-left-radius:0;border-bottom-right-radius:6px;border-bottom-right-radius:var(--toastify-toast-bd-radius);left:auto;right:0;transform-origin:right}.Toastify__progress-bar--wrp{border-bottom-left-radius:6px;border-bottom-left-radius:var(--toastify-toast-bd-radius);bottom:0;height:5px;left:0;position:absolute;width:100%}.Toastify__progress-bar--wrp[data-hidden=true]{opacity:0}.Toastify__progress-bar--bg{height:100%;opacity:.2;opacity:var(--toastify-color-progress-bgo);width:100%}.Toastify__spinner{animation:Toastify__spin .65s linear infinite;border:2px solid #e0e0e0;border-color:var(--toastify-spinner-color-empty-area);border-radius:100%;border-right-color:#616161;border-right-color:var(--toastify-spinner-color);box-sizing:border-box;height:20px;width:20px}@keyframes Toastify__bounceInRight{0%,60%,75%,90%,to{animation-timing-function:cubic-bezier(.215,.61,.355,1)}0%{opacity:0;transform:translate3d(3000px,0,0)}60%{opacity:1;transform:translate3d(-25px,0,0)}75%{transform:translate3d(10px,0,0)}90%{transform:translate3d(-5px,0,0)}to{transform:none}}@keyframes Toastify__bounceOutRight{20%{opacity:1;transform:translate3d(-20px,var(--y),0)}to{opacity:0;transform:translate3d(2000px,var(--y),0)}}@keyframes Toastify__bounceInLeft{0%,60%,75%,90%,to{animation-timing-function:cubic-bezier(.215,.61,.355,1)}0%{opacity:0;transform:translate3d(-3000px,0,0)}60%{opacity:1;transform:translate3d(25px,0,0)}75%{transform:translate3d(-10px,0,0)}90%{transform:translate3d(5px,0,0)}to{transform:none}}@keyframes Toastify__bounceOutLeft{20%{opacity:1;transform:translate3d(20px,var(--y),0)}to{opacity:0;transform:translate3d(-2000px,var(--y),0)}}@keyframes Toastify__bounceInUp{0%,60%,75%,90%,to{animation-timing-function:cubic-bezier(.215,.61,.355,1)}0%{opacity:0;transform:translate3d(0,3000px,0)}60%{opacity:1;transform:translate3d(0,-20px,0)}75%{transform:translate3d(0,10px,0)}90%{transform:translate3d(0,-5px,0)}to{transform:translateZ(0)}}@keyframes Toastify__bounceOutUp{20%{transform:translate3d(0,calc(var(--y) - 10px),0)}40%,45%{opacity:1;transform:translate3d(0,calc(var(--y) + 20px),0)}to{opacity:0;transform:translate3d(0,-2000px,0)}}@keyframes Toastify__bounceInDown{0%,60%,75%,90%,to{animation-timing-function:cubic-bezier(.215,.61,.355,1)}0%{opacity:0;transform:translate3d(0,-3000px,0)}60%{opacity:1;transform:translate3d(0,25px,0)}75%{transform:translate3d(0,-10px,0)}90%{transform:translate3d(0,5px,0)}to{transform:none}}@keyframes Toastify__bounceOutDown{20%{transform:translate3d(0,calc(var(--y) - 10px),0)}40%,45%{opacity:1;transform:translate3d(0,calc(var(--y) + 20px),0)}to{opacity:0;transform:translate3d(0,2000px,0)}}.Toastify__bounce-enter--bottom-left,.Toastify__bounce-enter--top-left{animation-name:Toastify__bounceInLeft}.Toastify__bounce-enter--bottom-right,.Toastify__bounce-enter--top-right{animation-name:Toastify__bounceInRight}.Toastify__bounce-enter--top-center{animation-name:Toastify__bounceInDown}.Toastify__bounce-enter--bottom-center{animation-name:Toastify__bounceInUp}.Toastify__bounce-exit--bottom-left,.Toastify__bounce-exit--top-left{animation-name:Toastify__bounceOutLeft}.Toastify__bounce-exit--bottom-right,.Toastify__bounce-exit--top-right{animation-name:Toastify__bounceOutRight}.Toastify__bounce-exit--top-center{animation-name:Toastify__bounceOutUp}.Toastify__bounce-exit--bottom-center{animation-name:Toastify__bounceOutDown}@keyframes Toastify__zoomIn{0%{opacity:0;transform:scale3d(.3,.3,.3)}50%{opacity:1}}@keyframes Toastify__zoomOut{0%{opacity:1}50%{opacity:0;transform:translate3d(0,var(--y),0) scale3d(.3,.3,.3)}to{opacity:0}}.Toastify__zoom-enter{animation-name:Toastify__zoomIn}.Toastify__zoom-exit{animation-name:Toastify__zoomOut}@keyframes Toastify__flipIn{0%{animation-timing-function:ease-in;opacity:0;transform:perspective(400px) rotateX(90deg)}40%{animation-timing-function:ease-in;transform:perspective(400px) rotateX(-20deg)}60%{opacity:1;transform:perspective(400px) rotateX(10deg)}80%{transform:perspective(400px) rotateX(-5deg)}to{transform:perspective(400px)}}@keyframes Toastify__flipOut{0%{transform:translate3d(0,var(--y),0) perspective(400px)}30%{opacity:1;transform:translate3d(0,var(--y),0) perspective(400px) rotateX(-20deg)}to{opacity:0;transform:translate3d(0,var(--y),0) perspective(400px) rotateX(90deg)}}.Toastify__flip-enter{animation-name:Toastify__flipIn}.Toastify__flip-exit{animation-name:Toastify__flipOut}@keyframes Toastify__slideInRight{0%{transform:translate3d(110%,0,0);visibility:visible}to{transform:translate3d(0,var(--y),0)}}@keyframes Toastify__slideInLeft{0%{transform:translate3d(-110%,0,0);visibility:visible}to{transform:translate3d(0,var(--y),0)}}@keyframes Toastify__slideInUp{0%{transform:translate3d(0,110%,0);visibility:visible}to{transform:translate3d(0,var(--y),0)}}@keyframes Toastify__slideInDown{0%{transform:translate3d(0,-110%,0);visibility:visible}to{transform:translate3d(0,var(--y),0)}}@keyframes Toastify__slideOutRight{0%{transform:translate3d(0,var(--y),0)}to{transform:translate3d(110%,var(--y),0);visibility:hidden}}@keyframes Toastify__slideOutLeft{0%{transform:translate3d(0,var(--y),0)}to{transform:translate3d(-110%,var(--y),0);visibility:hidden}}@keyframes Toastify__slideOutDown{0%{transform:translate3d(0,var(--y),0)}to{transform:translate3d(0,500px,0);visibility:hidden}}@keyframes Toastify__slideOutUp{0%{transform:translate3d(0,var(--y),0)}to{transform:translate3d(0,-500px,0);visibility:hidden}}.Toastify__slide-enter--bottom-left,.Toastify__slide-enter--top-left{animation-name:Toastify__slideInLeft}.Toastify__slide-enter--bottom-right,.Toastify__slide-enter--top-right{animation-name:Toastify__slideInRight}.Toastify__slide-enter--top-center{animation-name:Toastify__slideInDown}.Toastify__slide-enter--bottom-center{animation-name:Toastify__slideInUp}.Toastify__slide-exit--bottom-left,.Toastify__slide-exit--top-left{animation-duration:.3s;animation-name:Toastify__slideOutLeft;animation-timing-function:ease-in}.Toastify__slide-exit--bottom-right,.Toastify__slide-exit--top-right{animation-duration:.3s;animation-name:Toastify__slideOutRight;animation-timing-function:ease-in}.Toastify__slide-exit--top-center{animation-duration:.3s;animation-name:Toastify__slideOutUp;animation-timing-function:ease-in}.Toastify__slide-exit--bottom-center{animation-duration:.3s;animation-name:Toastify__slideOutDown;animation-timing-function:ease-in}@keyframes Toastify__spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}.App{height:100vh}.welcome-section{padding:2rem 0;text-align:center}.welcome-section h2{color:#2c3e50;font-size:2.5rem;font-weight:600;margin-bottom:1rem}.welcome-section p{color:#7f8c8d;font-size:1.2rem;margin-bottom:3rem;margin-left:auto;margin-right:auto;max-width:600px}.feature-cards{grid-gap:2rem;display:grid;gap:2rem;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));margin:0 auto;max-width:1000px}.feature-card{background:#fff;border-radius:8px;box-shadow:0 2px 10px #0000001a;padding:2rem;transition:transform .2s,box-shadow .2s}.feature-card:hover{box-shadow:0 4px 20px #00000026;transform:translateY(-2px)}.feature-card h3{color:#2c3e50;font-size:1.25rem;font-weight:600;margin-bottom:1rem}.feature-card p{color:#7f8c8d;font-size:1rem;line-height:1.6;margin:0}@media (max-width:768px){.welcome-section h2{font-size:2rem}.welcome-section p{font-size:1.1rem}.feature-cards{gap:1.5rem;grid-template-columns:1fr}.feature-card{padding:1.5rem}}
/*# sourceMappingURL=main.d0cfd582.css.map*/