:root{--primary-color:#1e63c6;--primary-dark:#154fa0;--primary-light:#4a90e2;--accent-color:#ebf2fc;--action-color:#e53935;--action-dark:#b71c1c;--text-color:#222;--text-light:#666;--background-color:#f5f7fa;--card-color:#fff;--border-color:#dde3ed;--error-color:#e53935;--success-color:#2e7d32;--primary-color-rgb:30,99,198}.dark-theme{--primary-color:#4a90e2;--primary-dark:#1e63c6;--primary-light:#7ab3ec;--accent-color:#1a2a3a;--action-color:#ef5350;--action-dark:#e53935;--text-color:#eee;--text-light:#aaa;--background-color:#111827;--card-color:#1f2937;--border-color:#374151;--error-color:#ef5350;--success-color:#4caf50;--primary-color-rgb:74,144,226}body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background-color:#f5f7fa;background-color:var(--background-color);color:#222;color:var(--text-color);font-family:Roboto,-apple-system,BlinkMacSystemFont,Segoe UI,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;margin:0;transition:background-color .3s,color .3s}code{font-family:source-code-pro,Menlo,Monaco,Consolas,Courier New,monospace}*{box-sizing:border-box}html{font-size:16px}@media (max-width:768px){html{font-size:15px}}@media (max-width:576px){html{font-size:14px}}body,html{-webkit-text-size-adjust:100%}a,button,input,select,textarea{touch-action:manipulation}body{overflow-x:hidden;width:100%}:focus{outline:2px solid #1e63c6;outline:2px solid var(--primary-color);outline-offset:2px}html{scroll-behavior:smooth}.nav-menu{list-style:none;margin:0;padding:0}.nav-menu li a.active{background-color:#1e63c6;background-color:var(--primary-color);color:#fff;font-weight:500}.nav-menu li a.active:hover{background-color:#154fa0;background-color:var(--primary-dark);color:#fff}.data-table-container{margin-top:1rem;overflow-x:auto}.data-table{background-color:#fff;background-color:var(--card-color);border-collapse:collapse;border-radius:8px;box-shadow:0 2px 4px #0000001a;overflow:hidden;width:100%}.data-table td,.data-table th{border-bottom:1px solid #dde3ed;border-bottom:1px solid var(--border-color);padding:.75rem 1rem;text-align:left}.data-table th{background-color:#1e63c6;background-color:var(--primary-color);color:#fff;font-weight:500}.data-table th.sortable{cursor:pointer}.data-table th.sortable:hover{background-color:#154fa0;background-color:var(--primary-dark)}.data-table tbody tr:hover{background-color:#ebf2fc;background-color:var(--accent-color)}.data-table .actions-column{text-align:center;width:100px}.data-table .actions-cell{display:flex;gap:.5rem;justify-content:center}.data-table .no-data{color:#666;color:var(--text-light);padding:2rem;text-align:center}.btn-icon{background:none;border:none;border-radius:4px;cursor:pointer;font-size:1rem;padding:.25rem;transition:background-color .2s}.btn-icon:hover{background-color:#0000001a}.modal-overlay{align-items:center;background-color:#00000080;bottom:0;display:flex;justify-content:center;left:0;position:fixed;right:0;top:0;z-index:1000}.modal-content{box-shadow:0 4px 8px #0003;max-width:600px}.modal-header{padding:1rem}.modal-header h2{font-size:1.25rem}.modal-body{padding:1rem}.page-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:1.5rem}.page-header h1{color:#1e63c6;color:var(--primary-color);margin:0}.search-container{display:flex;gap:.5rem;margin-bottom:1rem}.search-container input{background-color:#f5f7fa;background-color:var(--background-color);border:1px solid #dde3ed;border:1px solid var(--border-color);border-radius:4px;color:#222;color:var(--text-color);flex:1 1;padding:.5rem}.btn-text{background:none;border:none;color:#1e63c6;color:var(--primary-color);cursor:pointer;padding:.5rem;text-decoration:underline}.loading{color:#666;color:var(--text-light);display:flex;justify-content:center;padding:2rem}.error-message{background-color:#e53935;background-color:var(--error-color);border-radius:4px;color:#fff;margin-bottom:1rem;padding:.75rem}.form{flex-direction:column}.form,.form-row{display:flex;gap:1rem}.form-group{display:flex;flex:1 1;flex-direction:column}.form-group label{color:#222;color:var(--text-color);margin-bottom:.5rem}.form-group input,.form-group select,.form-group textarea{background-color:#f5f7fa;background-color:var(--background-color);border:1px solid #dde3ed;border:1px solid var(--border-color);border-radius:4px;color:#222;color:var(--text-color);padding:.5rem}.form-actions{margin-top:1rem}@media (max-width:768px){.form-row{flex-direction:column;gap:1rem}.modal-content{width:95%}}.card-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:1rem}.card-header h2{margin:0}.view-all{color:#1e63c6;color:var(--primary-color);font-size:.9rem;text-decoration:none}.view-all:hover{text-decoration:underline}.stat-link{display:block;font-size:.9rem;margin-top:.5rem}.stat-label{color:#666;color:var(--text-light);font-size:.8rem}.page-container{margin:0 auto;max-width:1200px;padding:1rem}.attendance-list{margin-bottom:1.5rem;margin-top:1.5rem}.attendance-table{border-collapse:collapse;margin-top:.5rem;width:100%}.attendance-table td,.attendance-table th{border:1px solid #dde3ed;border:1px solid var(--border-color);padding:.5rem}.attendance-table th{background-color:#1e63c6;background-color:var(--primary-color);color:#fff;text-align:left}.attendance-table td input[type=text]{border:1px solid #dde3ed;border:1px solid var(--border-color);border-radius:4px;padding:.25rem;width:100%}.checkbox-container{cursor:pointer;display:block;padding-left:25px;position:relative;-webkit-user-select:none;user-select:none}.checkbox-container input{cursor:pointer;height:0;opacity:0;position:absolute;width:0}.checkmark{background-color:#f5f7fa;background-color:var(--background-color);border:1px solid #dde3ed;border:1px solid var(--border-color);border-radius:3px;height:18px;left:0;position:absolute;top:0;width:18px}.checkbox-container:hover input~.checkmark{background-color:#ebf2fc;background-color:var(--accent-color)}.checkbox-container input:checked~.checkmark{background-color:#1e63c6;background-color:var(--primary-color)}.checkmark:after{content:"";display:none;position:absolute}.checkbox-container input:checked~.checkmark:after{display:block}.checkbox-container .checkmark:after{border:solid #fff;border-width:0 2px 2px 0;height:10px;left:6px;top:2px;transform:rotate(45deg);width:5px}.calendar-controls{align-items:center;display:flex;flex-wrap:wrap;justify-content:space-between;margin-bottom:1rem}.calendar-navigation button,.view-controls button{background:none;border:1px solid #dde3ed;border:1px solid var(--border-color);border-radius:4px;color:#222;color:var(--text-color);cursor:pointer;margin-right:.25rem;padding:.5rem 1rem}.calendar-navigation button:hover,.view-controls button:hover{background-color:#ebf2fc;background-color:var(--accent-color)}.view-controls button.active{background-color:#1e63c6;background-color:var(--primary-color);color:#fff}.calendar-title h2{font-size:1.25rem;margin:0}.calendar-month{border:1px solid #dde3ed;border:1px solid var(--border-color);border-radius:8px;overflow:hidden}.calendar-weekdays{background-color:#1e63c6;background-color:var(--primary-color);color:#fff;display:grid;font-weight:500;grid-template-columns:repeat(7,1fr)}.calendar-weekdays div{padding:.5rem;text-align:center}.calendar-days{display:grid;grid-auto-rows:minmax(100px,auto);grid-template-columns:repeat(7,1fr)}.calendar-day{background-color:#fff;background-color:var(--card-color);border:1px solid #dde3ed;border:1px solid var(--border-color);cursor:pointer;min-height:100px;padding:.5rem}.calendar-day:hover{background-color:#ebf2fc}.calendar-day.other-month{background-color:#f5f7fa;background-color:var(--background-color);color:#666;color:var(--text-light)}.calendar-day.today{background-color:#1e63c61a;background-color:rgba(var(--primary-color-rgb),.1)}.day-header{font-weight:500;margin-bottom:.5rem}.day-events{display:flex;flex-direction:column;gap:.25rem}.event-pill{border-radius:4px;color:#fff;cursor:pointer;font-size:.8rem;overflow:hidden;padding:.25rem .5rem;text-overflow:ellipsis;white-space:nowrap}.more-events{color:#666;color:var(--text-light);font-size:.8rem;text-align:center}.calendar-week{border:1px solid #dde3ed;border:1px solid var(--border-color);border-radius:8px;overflow:hidden}.week-header{background-color:#1e63c6;background-color:var(--primary-color);color:#fff;display:grid;grid-template-columns:repeat(7,1fr)}.week-day{padding:.5rem;text-align:center}.week-day.today{background-color:#154fa0;background-color:var(--primary-dark)}.day-name{font-weight:500}.day-number{font-size:1.25rem;margin-top:.25rem}.week-body{display:grid;grid-template-columns:repeat(7,1fr);min-height:500px}.week-column{background-color:#fff;background-color:var(--card-color);border:1px solid #dde3ed;border:1px solid var(--border-color);padding:.5rem}.event-item{border-radius:4px;color:#fff;cursor:pointer;margin-bottom:.5rem;padding:.5rem}.event-time{font-size:.8rem;margin-bottom:.25rem}.calendar-day-view{background-color:#fff;background-color:var(--card-color);border:1px solid #dde3ed;border:1px solid var(--border-color);border-radius:8px;overflow:hidden}.day-header{background-color:#1e63c6;background-color:var(--primary-color);color:#fff;padding:1rem}.day-header h3{margin:0}.day-events-list{padding:1rem}.day-event-item{background-color:#f5f7fa;background-color:var(--background-color);border:1px solid #dde3ed;border:1px solid var(--border-color);border-radius:8px;cursor:pointer;display:flex;margin-bottom:1rem;padding:1rem}.day-event-item:hover{background-color:#ebf2fc}.event-time{flex-shrink:0;width:150px}.all-day-badge{background-color:#1e63c6;background-color:var(--primary-color);border-radius:4px;color:#fff;font-size:.8rem;padding:.25rem .5rem}.event-content{flex:1 1}.event-description,.event-location{font-size:.9rem;margin-top:.5rem}.event-description{color:#666;color:var(--text-light)}.event-actions{align-items:flex-start;display:flex}.no-events{color:#666;color:var(--text-light);padding:2rem;text-align:center}.checkbox-group{align-items:center;display:flex}.checkbox-group input[type=checkbox]{margin-right:.5rem}.auth-container{align-items:center;background-color:#f5f7fa;background-color:var(--background-color);background-image:linear-gradient(135deg,#ebf2fc,#f5f7fa 60%,#fff);display:flex;justify-content:center;min-height:100vh}.auth-card{background-color:#fff;background-color:var(--card-color);border-radius:8px;box-shadow:0 4px 8px #0000001a;max-width:450px;padding:2rem;width:100%}.auth-header{margin-bottom:2rem;text-align:center}.auth-header h2{color:#1e63c6;color:var(--primary-color);margin-bottom:.5rem}.auth-form{display:flex;flex-direction:column;gap:1rem}.btn-block{margin-top:1rem;width:100%}.auth-footer{margin-top:2rem;text-align:center}.auth-footer a{color:#1e63c6;color:var(--primary-color);text-decoration:none}.auth-footer a:hover{text-decoration:underline}.navbar{align-items:center;background-color:#fff;background-color:var(--card-color);border-bottom:2px solid #1e63c6;border-bottom:2px solid var(--primary-color);box-shadow:0 2px 8px #1e63c614;display:flex;justify-content:space-between;padding:.75rem 1.5rem;position:-webkit-sticky;position:sticky;top:0;width:100%;z-index:100}.navbar-brand h1{color:#1e63c6;color:var(--primary-color);font-size:1.5rem;margin:0}.navbar-brand a{text-decoration:none}.navbar-search{align-items:center;display:flex;flex:1 1;margin:0 2rem;max-width:500px}.search-input{background-color:#f5f7fa;background-color:var(--background-color);border:1px solid #dde3ed;border:1px solid var(--border-color);border-radius:4px 0 0 4px;color:#222;color:var(--text-color);flex:1 1;padding:.5rem}.search-button{background-color:#1e63c6;background-color:var(--primary-color);border:none;border-radius:0 4px 4px 0;color:#fff;cursor:pointer;padding:.5rem .75rem}.navbar-right{align-items:center;display:flex;gap:1rem}.notification-button{background:none;border:none;cursor:pointer;font-size:1.25rem;position:relative}.notification-badge{align-items:center;background-color:#e53935;background-color:var(--error-color);border-radius:50%;color:#fff;display:flex;font-size:.75rem;height:18px;justify-content:center;position:absolute;right:-5px;top:-5px;width:18px}.user-button{background:none;border:none;cursor:pointer;gap:.5rem}.user-avatar,.user-button{align-items:center;display:flex}.user-avatar{background-color:#1e63c6;background-color:var(--primary-color);border-radius:50%;color:#fff;font-weight:500;height:32px;justify-content:center;width:32px}.user-dropdown{background-color:#fff;background-color:var(--card-color);border:1px solid #dde3ed;border:1px solid var(--border-color);border-radius:4px;box-shadow:0 2px 8px #0000001a;min-width:150px;position:absolute;right:1rem;top:100%;z-index:100}.dropdown-item{border-bottom:1px solid #dde3ed;border-bottom:1px solid var(--border-color);color:#222;color:var(--text-color);cursor:pointer;display:block;padding:.75rem 1rem;text-decoration:none}.dropdown-item:last-child{border-bottom:none}.dropdown-item:hover{background-color:#ebf2fc}.logout-button{background:none;border:none;color:#e53935;color:var(--error-color);text-align:left;width:100%}.sidebar{background-color:#fff;background-color:var(--card-color);border-right:2px solid #dde3ed;border-right:2px solid var(--border-color);display:flex;flex-direction:column;height:100vh;overflow-y:auto;position:-webkit-sticky;position:sticky;top:0;width:250px}.sidebar-header{align-items:center;border-bottom:1px solid #dde3ed;border-bottom:1px solid var(--border-color);display:flex;flex-shrink:0;justify-content:space-between;padding:1.25rem 1.5rem}.sidebar-brand{color:#1e63c6;color:var(--primary-color);font-size:1.1rem;font-weight:700;letter-spacing:.03em}.sidebar-menu{flex:1 1;overflow-y:auto;padding:.75rem 0}.sidebar-item{align-items:center;color:#222;color:var(--text-color);display:flex;font-size:.9rem;padding:.6rem 1.5rem;text-decoration:none;transition:background-color .2s}.sidebar-item.active,.sidebar-item:hover{background-color:#ebf2fc;background-color:var(--accent-color);color:#1e63c6;color:var(--primary-color)}.sidebar-item.active{border-right:3px solid #1e63c6;border-right:3px solid var(--primary-color);font-weight:600}.sidebar-icon{flex-shrink:0;font-size:1rem;margin-right:.65rem;text-align:center;width:1.25rem}.sidebar-footer{background-color:#fff;background-color:var(--card-color);border-top:1px solid #dde3ed;border-top:1px solid var(--border-color);flex-shrink:0;padding:.85rem 1.25rem}.sidebar-copyright{line-height:1.4;text-align:center}.sidebar-copyright,.version{color:#666;color:var(--text-light);font-size:.7rem}.messages-tabs{border-bottom:1px solid #dde3ed;border-bottom:1px solid var(--border-color);display:flex;margin-bottom:1rem}.tab-button{background:none;border:none;border-bottom:3px solid #0000;color:#222;color:var(--text-color);cursor:pointer;font-weight:500;padding:.75rem 1.5rem}.tab-button.active{border-bottom-color:#1e63c6;border-bottom-color:var(--primary-color);color:#1e63c6;color:var(--primary-color)}.messages-list{display:flex;flex-direction:column;gap:.5rem}.messages-list .message-item{align-items:center;background-color:#fff;background-color:var(--card-color);border:1px solid #dde3ed;border:1px solid var(--border-color);border-radius:8px;cursor:pointer;display:flex;justify-content:space-between;padding:1rem}.messages-list .message-item:hover{background-color:#ebf2fc}.messages-list .message-item.unread{border-left:3px solid #1e63c6;border-left:3px solid var(--primary-color);font-weight:500}.message-recipients,.message-sender{flex:1 1;font-weight:500}.message-subject{flex:2 1}.message-date{flex:1 1;font-size:.9rem;text-align:right}.message-view{display:flex;flex-direction:column;gap:1rem}.message-header-info{border-bottom:1px solid #dde3ed;border-bottom:1px solid var(--border-color);padding-bottom:1rem}.message-content{line-height:1.5;white-space:pre-wrap}.unauthorized-page{align-items:center;background-color:#f5f7fa;background-color:var(--background-color);display:flex;justify-content:center;min-height:100vh}.unauthorized-container{background-color:#fff;background-color:var(--card-color);border-radius:8px;box-shadow:0 4px 8px #0000001a;max-width:500px;padding:2rem;text-align:center}.unauthorized-icon{font-size:4rem;margin-bottom:1rem}.unauthorized-actions{margin-top:2rem}.attendance-summary{grid-gap:1rem;display:grid;gap:1rem;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));margin-bottom:2rem}.filter-container{background-color:#fff;background-color:var(--card-color);border-radius:8px;display:flex;flex-wrap:wrap;gap:1rem;margin-bottom:1.5rem;padding:1rem}.date-range,.status-filter{align-items:center;display:flex;gap:.5rem}.status-badge{font-size:.9rem}.status-badge.present{background-color:#d4edda;color:#155724}.status-badge.absent{background-color:#f8d7da;color:#721c24}@media (max-width:768px){.navbar{padding:.5rem}.navbar-brand h1{font-size:1.2rem}.hide-on-mobile,.navbar-search{display:none}.sidebar{height:100vh;left:-250px;position:fixed;top:0;transition:left .3s ease;z-index:1000}.sidebar.open{left:0}.sidebar-overlay{background-color:#00000080;bottom:0;left:0;position:fixed;right:0;top:0;z-index:999}.menu-toggle{color:#1e63c6;color:var(--primary-color);margin-right:1rem}.menu-toggle,.sidebar-close{background:none;border:none;cursor:pointer;display:block;font-size:1.5rem}.sidebar-close{position:absolute;right:1rem;top:1rem}.dashboard-stats{grid-template-columns:1fr}.dashboard-content{flex-direction:column}.dashboard-card{width:100%}.form-row{flex-direction:column}}.navbar-left{align-items:center;display:flex}.menu-toggle{display:none}@media (max-width:768px){.menu-toggle{display:block}}.sidebar-close{display:none}@media (max-width:768px){.sidebar-close{background:none;border:none;color:#222;color:var(--text-color);cursor:pointer;display:block;font-size:1.5rem;position:absolute;right:1rem;top:1rem}}.app-container{display:flex;flex-direction:column;min-height:100vh}.main-container{display:flex;flex:1 1;position:relative}.content{background-color:#f5f7fa;background-color:var(--background-color);flex:1 1;overflow-y:auto;padding:1.5rem}.dashboard{padding:1rem}.dashboard h1{color:#1e63c6;color:var(--primary-color);margin-bottom:.5rem}.role-badge{background-color:#4a90e2;background-color:var(--primary-light);border-radius:20px;color:#fff;font-size:.9rem;margin-bottom:1.5rem;padding:.25rem .75rem}.dashboard-stats{grid-gap:1rem;display:grid;gap:1rem;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));margin-bottom:2rem}.stat-card{box-shadow:0 2px 4px #0000001a;padding:1.5rem;transition:transform .2s,box-shadow .2s}.stat-card:hover{box-shadow:0 5px 15px #0000001a;transform:translateY(-5px)}.stat-card h3{color:#1e63c6;color:var(--primary-color);font-size:1.1rem;margin-bottom:.5rem;margin-top:0}.stat-value{color:#222;color:var(--text-color);font-size:2rem;margin:.5rem 0}.dashboard-content{display:flex;gap:1.5rem;margin-bottom:1.5rem}.dashboard-card{background-color:#fff;background-color:var(--card-color);border-radius:8px;box-shadow:0 2px 4px #0000001a;flex:1 1;padding:1.5rem}.event-list,.message-list{list-style:none;margin:0;padding:0}.event-item{border-bottom:1px solid #dde3ed;border-bottom:1px solid var(--border-color);display:flex;justify-content:space-between;padding:.75rem 0}.event-item:last-child{border-bottom:none}.event-date{color:#666;color:var(--text-light);font-size:.9rem}.event-title{font-weight:500}.message-item{border-bottom:1px solid #dde3ed;border-bottom:1px solid var(--border-color);padding:.75rem 0}.message-item:last-child{border-bottom:none}.message-header{display:flex;justify-content:space-between;margin-bottom:.25rem}.message-from{font-weight:500}.message-date{color:#666;color:var(--text-light);font-size:.8rem}.message-subject{color:#222;color:var(--text-color);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.btn{border:none;border-radius:4px;cursor:pointer;display:inline-block;font-weight:500;padding:.5rem 1rem;transition:background-color .2s}.btn-primary{background-color:#1e63c6;background-color:var(--primary-color);color:#fff}.btn-primary:hover{background-color:#154fa0;background-color:var(--primary-dark)}.btn-secondary{background-color:#ebf2fc;background-color:var(--accent-color);border:1px solid #dde3ed;border:1px solid var(--border-color);color:#1e63c6;color:var(--primary-color)}.btn-secondary:hover{background-color:#d6e4f7}@media (max-width:768px){.dashboard-content{flex-direction:column}.dashboard-card{margin-bottom:1rem}}.theme-toggle{background:none;border:none;border-radius:50%;cursor:pointer;font-size:1.25rem;margin-left:1rem;padding:.5rem;transition:background-color .2s}.theme-toggle:hover{background-color:#ebf2fc;background-color:var(--accent-color)}.error-boundary{background-color:#fff;background-color:var(--card-color);border-radius:8px;box-shadow:0 4px 8px #0000001a;margin:2rem auto;max-width:600px;padding:2rem;text-align:center}.error-boundary h2{color:#e53935;color:var(--error-color);margin-bottom:1rem}.error-boundary details{background-color:#f5f7fa;background-color:var(--background-color);border-radius:4px;margin-top:2rem;padding:1rem;text-align:left}.error-boundary summary{color:#1e63c6;color:var(--primary-color);cursor:pointer;font-weight:500;padding:.5rem 0}.error-boundary pre{background-color:#0000000d;border-radius:4px;overflow-x:auto;padding:1rem}.loading-container{align-items:center;display:flex;flex-direction:column;justify-content:center;padding:2rem}.loading-spinner{animation:spin 1s linear infinite;border:4px solid #0000001a;border-radius:50%;border-top-color:#1e63c6;border-top:4px solid var(--primary-color);height:30px;width:30px}@keyframes spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}.loading-message{color:#666;color:var(--text-light);font-size:.9rem;margin-top:1rem}.app-footer{background-color:#154fa0;background-color:var(--primary-dark);background-image:linear-gradient(135deg,#154fa0,#1e63c6);color:#fff;margin-top:2rem;padding:2rem 1rem}.footer-content{display:flex;flex-wrap:wrap;gap:2rem;justify-content:space-between;margin:0 auto;max-width:1200px}.footer-logo{align-items:center;display:flex;gap:1rem;margin-bottom:1rem}.footer-logo h3{font-size:1.2rem;margin:0}.footer-links{display:flex;flex-wrap:wrap;gap:2rem}.footer-section h4{color:#ebf2fc;color:var(--accent-color);margin-bottom:1rem;margin-top:0}.footer-section ul{list-style:none;margin:0;padding:0}.footer-section li{margin-bottom:.5rem}.footer-section a{color:#fff;text-decoration:none;transition:color .2s}.footer-section a:hover{color:#ebf2fc;color:var(--accent-color);text-decoration:underline}.footer-section address{font-style:normal;line-height:1.5}.footer-bottom{align-items:center;border-top:1px solid #ffffff1a;display:flex;flex-wrap:wrap;gap:1rem;justify-content:space-between;margin:2rem auto 0;max-width:1200px;padding-top:1rem}.footer-bottom p{color:#ffffffb3;font-size:.9rem;margin:0}@media (max-width:768px){.footer-content,.footer-links{flex-direction:column}.footer-links{gap:1.5rem}.footer-bottom{align-items:flex-start;flex-direction:column}}.role-badge{border-radius:4px;display:inline-block;font-size:.8rem;font-weight:500;padding:.25rem .5rem}.badge-admin{background-color:#e53935;background-color:var(--action-color);color:#fff}.badge-teacher{background-color:#1e63c6;background-color:var(--primary-color);color:#fff}.badge-student{background-color:#2e7d32;color:#fff}.badge-parent{background-color:#e65100;color:#fff}.status-badge{border-radius:4px;display:inline-block;font-size:.8rem;padding:.25rem .5rem}.status-badge.active{background-color:#d4edda;color:#155724}.status-badge.inactive{background-color:#f8d7da;color:#721c24}.action-buttons{display:flex;gap:.5rem;justify-content:center}.table-responsive{margin-bottom:1rem;overflow-x:auto}.text-center{text-align:center}.role-specific-fields h3{font-size:1.1rem}.modal-content{max-height:80vh}.no-data-message{background-color:#fff;background-color:var(--card-color);border-radius:8px;color:#666;color:var(--text-light);margin:1rem 0;padding:2rem;text-align:center}select[multiple]{height:auto;min-height:100px}.form-text{color:#666;color:var(--text-light);font-size:.8rem;margin-top:.25rem}.btn-danger{background-color:#e53935;background-color:var(--action-color);color:#fff}.btn-danger:hover{background-color:#b71c1c;background-color:var(--action-dark)}.settings-container{grid-gap:1.5rem;display:grid;gap:1.5rem;grid-template-columns:1fr}.settings-card{background-color:#fff;background-color:var(--card-color);border-radius:8px;box-shadow:0 2px 4px #0000001a;padding:1.5rem}.settings-card h2{color:#1e63c6;color:var(--primary-color);margin-bottom:1.5rem;margin-top:0}.success-message{background-color:#2e7d32;background-color:var(--success-color);border-radius:4px;color:#fff;margin-bottom:1rem;padding:.75rem}.card-grid{grid-gap:1.5rem;display:grid;gap:1.5rem;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));margin-top:1.5rem}.class-card{background-color:#fff;background-color:var(--card-color);border-radius:8px;box-shadow:0 2px 4px #0000001a;overflow:hidden}.class-card-header{align-items:center;background-color:#1e63c6;background-color:var(--primary-color);color:#fff;display:flex;justify-content:space-between;padding:1rem}.class-card-header h2{font-size:1.25rem;margin:0}.class-room{font-size:.9rem;opacity:.9}.class-card-body{padding:1rem}.class-subjects h3{color:#1e63c6;color:var(--primary-color);font-size:1rem;margin-bottom:.5rem;margin-top:1rem}.class-subjects ul{list-style:none;margin:0;padding:0}.class-subjects li{border-bottom:1px solid #dde3ed;border-bottom:1px solid var(--border-color);padding:.5rem 0}.class-subjects li:last-child{border-bottom:none}.result-badge{border-radius:4px;display:inline-block;font-size:.8rem;font-weight:500;padding:.25rem .5rem}.result-badge.pass{background-color:#d4edda;color:#155724}.result-badge.fail{background-color:#f8d7da;color:#721c24}@media (min-width:768px){.settings-container{grid-template-columns:repeat(2,1fr)}}.dashboard-welcome{margin-bottom:2rem}.dashboard-welcome h2{color:#1e63c6;color:var(--primary-color);margin-bottom:.5rem}.stats-grid{grid-gap:1rem;display:grid;gap:1rem;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));margin-bottom:1.5rem}.stat-card{background-color:#fff;background-color:var(--card-color);border-left:3px solid #1e63c6;border-left:3px solid var(--primary-color);border-radius:8px;box-shadow:0 1px 3px #00000014;padding:1rem 1.25rem;text-align:center;transition:transform .15s ease,box-shadow .15s ease}.stat-card:hover{box-shadow:0 4px 12px #0000001a;transform:translateY(-2px)}.stat-card h3{color:#666;color:var(--text-light);font-size:.8rem;font-weight:500;letter-spacing:.04em;margin:0 0 .35rem;text-transform:uppercase}.stat-value{color:#1e63c6;color:var(--primary-color);font-size:1.75rem;font-weight:700;line-height:1;margin-bottom:.25rem}.stat-details{display:flex;font-size:.82rem;justify-content:space-around;margin-bottom:.5rem}.stat-link{color:#1e63c6;color:var(--primary-color);display:inline-block;font-size:.78rem;font-weight:500;margin-top:.25rem;text-decoration:none}.stat-link:hover{text-decoration:underline}.dashboard-section{background-color:#fff;background-color:var(--card-color);border-radius:8px;box-shadow:0 2px 4px #0000001a;margin-bottom:2rem;padding:1.5rem}.dashboard-section h2{color:#1e63c6;color:var(--primary-color);font-size:1.3rem;margin-bottom:1.5rem;margin-top:0}.recent-items{grid-gap:1rem;display:grid;gap:1rem;grid-template-columns:repeat(auto-fill,minmax(300px,1fr))}.recent-item{background-color:#f5f7fa;background-color:var(--background-color);border-left:4px solid #1e63c6;border-left:4px solid var(--primary-color);border-radius:6px;padding:1rem}.recent-item-title{font-weight:700;margin-bottom:.5rem}.recent-item-subtitle{color:#666;color:var(--text-light);font-size:.9rem;margin-bottom:.5rem}.recent-item-date{color:#666;color:var(--text-light);font-size:.8rem}.modal-backdrop{align-items:center;background-color:#00000080;display:flex;height:100%;justify-content:center;left:0;position:fixed;top:0;width:100%;z-index:1000}.modal-content{background-color:#fff;background-color:var(--card-color);border-radius:8px;box-shadow:0 5px 15px #0000004d;max-height:90vh;max-width:800px;overflow-y:auto;width:90%}.modal-header{align-items:center;border-bottom:1px solid #dde3ed;border-bottom:1px solid var(--border-color);display:flex;justify-content:space-between;padding:1rem 1.5rem}.modal-header h2{color:#1e63c6;color:var(--primary-color);font-size:1.5rem;margin:0}.modal-close{background:none;border:none;color:#666;color:var(--text-light);cursor:pointer;font-size:1.5rem}.modal-close:hover{color:#222;color:var(--text-color)}.modal-body{padding:1.5rem}.form-actions{display:flex;gap:1rem;justify-content:flex-end;margin-top:1.5rem}.role-specific-fields{border-top:1px solid #dde3ed;border-top:1px solid var(--border-color);margin-top:1.5rem;padding-top:1.5rem}.role-specific-fields h3{color:#1e63c6;color:var(--primary-color);font-size:1.2rem;margin-bottom:1rem;margin-top:0}
/*# sourceMappingURL=main.80a73633.css.map*/