.navbar{align-items:center;background:#102a43;color:#fff;display:flex;height:60px;justify-content:space-between;padding:0 1.5rem}.navbar-brand a{color:#fff;font-size:1.1rem;font-weight:700;text-decoration:none}.navbar-links{align-items:center;display:flex;gap:1.25rem}.navbar-links a{color:#bcccdc;font-size:.9rem;text-decoration:none}.navbar-links a:hover{color:#fff}.navbar-user{align-items:flex-end;display:flex;flex-direction:column;font-size:.85rem}.navbar-role{color:#7b9;font-size:.7rem;text-transform:uppercase}.navbar-badge{background:#e12d39;border-radius:12px;color:#fff;font-size:.75rem;padding:.1rem .5rem}.navbar-logout{background:#0000;border:1px solid #486581;border-radius:6px;color:#fff;cursor:pointer;font-size:.85rem;padding:.4rem .8rem}.navbar-logout:hover{background:#243b53}.auth-container{align-items:center;background:linear-gradient(135deg,#102a43,#1f7a5c);display:flex;justify-content:center;min-height:100vh}.auth-card{background:#fff;border-radius:12px;box-shadow:0 10px 40px #0003;max-width:400px;padding:2.5rem;width:100%}.auth-card h1{color:#102a43;font-size:1.5rem;text-align:center}.auth-subtitle{color:#829ab1;margin-bottom:1.5rem;text-align:center}.form-group{margin-bottom:1rem}.form-group label{color:#486581;display:block;font-size:.85rem;margin-bottom:.35rem}.form-group input{border:1px solid #cbd2d9;border-radius:6px;font-size:.95rem;padding:.65rem;width:100%}.auth-button{background:#1f7a5c;border:none;border-radius:6px;color:#fff;cursor:pointer;font-size:1rem;font-weight:600;margin-top:.5rem;padding:.75rem;width:100%}.auth-button:hover{background:#176647}.auth-error{background:#ffe3e3;border-radius:6px;color:#c0392b;font-size:.85rem;margin-bottom:1rem;padding:.6rem;text-align:center}.auth-demo{border-top:1px solid #e4e7eb;color:#829ab1;font-size:.8rem;margin-top:1.5rem;padding-top:1rem}.auth-demo ul{list-style:none;margin-top:.5rem}.auth-demo li{padding:.15rem 0}.auth-demo code{background:#f0f4f8;border-radius:3px;padding:.1rem .3rem}.dashboard-subtitle{color:#829ab1;margin-bottom:1.5rem}.stats-grid{grid-gap:1rem;display:grid;gap:1rem;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));margin-bottom:2rem}.stat-card{background:#fff;border-radius:10px;box-shadow:0 1px 3px #00000014;padding:1.5rem;text-align:center}.stat-value{color:#1f7a5c;font-size:2rem;font-weight:700}.stat-label{color:#829ab1;font-size:.85rem;margin-top:.25rem}.class-grid{grid-gap:1rem;display:grid;gap:1rem;grid-template-columns:repeat(auto-fill,minmax(260px,1fr))}.class-card{background:#fff;border-left:4px solid #1f7a5c;border-radius:10px;box-shadow:0 1px 3px #00000014;color:inherit;padding:1.25rem;text-decoration:none;transition:transform .15s}.class-card:hover{box-shadow:0 4px 12px #0000001f;transform:translateY(-2px)}.class-card h3{color:#102a43;font-size:1.05rem}.class-subject{color:#1f7a5c;font-size:.85rem;margin:.25rem 0}.class-meta{color:#829ab1;font-size:.8rem}.class-teacher{color:#627d98;font-size:.8rem;margin-top:.5rem}.class-detail-meta{color:#829ab1;margin-bottom:1.5rem}.tabs{border-bottom:2px solid #e4e7eb;display:flex;gap:.5rem;margin-bottom:1.5rem}.tab{background:none;border:none;border-bottom:2px solid #0000;color:#829ab1;cursor:pointer;font-size:.9rem;margin-bottom:-2px;padding:.75rem 1.25rem}.tab.active{border-bottom-color:#1f7a5c;color:#1f7a5c;font-weight:600}.attendance-controls{align-items:center;display:flex;gap:1rem;margin-bottom:1rem}.attendance-controls input{border:1px solid #cbd2d9;border-radius:6px;padding:.5rem}.save-message{font-size:.85rem}.status-buttons{display:flex;gap:.4rem}.status-btn{background:#fff;border:1px solid #cbd2d9;border-radius:6px;color:#627d98;cursor:pointer;font-size:.8rem;padding:.3rem .7rem;text-transform:capitalize}.status-btn.selected.present{background:#1f7a5c;border-color:#1f7a5c;color:#fff}.status-btn.selected.absent{background:#e12d39;border-color:#e12d39;color:#fff}.status-btn.selected.late{background:#f0b429;border-color:#f0b429;color:#fff}.status-btn.selected.excused{background:#627d98;border-color:#627d98;color:#fff}.grades-controls{align-items:center;display:flex;gap:1rem;margin-bottom:1.5rem}.grades-controls select{border:1px solid #cbd2d9;border-radius:6px;font-size:.9rem;padding:.5rem}.grades-stats{display:flex;flex-wrap:wrap;gap:1rem;margin-bottom:1.5rem}.mini-stat{background:#fff;border-radius:8px;box-shadow:0 1px 3px #00000014;color:#829ab1;font-size:.85rem;padding:.75rem 1.25rem}.mini-stat span{color:#1f7a5c;display:block;font-size:1.4rem;font-weight:700}.grade-form{background:#fff;border-radius:10px;box-shadow:0 1px 3px #00000014;display:flex;flex-wrap:wrap;gap:.75rem;margin-bottom:1.5rem;padding:1.25rem}.grade-form input,.grade-form select{border:1px solid #cbd2d9;border-radius:6px;font-size:.9rem;padding:.5rem}.chart-container{background:#fff;border-radius:10px;box-shadow:0 1px 3px #00000014;margin-bottom:1.5rem;padding:1.25rem}.type-badge{background:#e0f5ee;border-radius:12px;color:#1f7a5c;font-size:.75rem;padding:.2rem .6rem;text-transform:capitalize}.assignments-controls{align-items:center;display:flex;gap:1rem;margin-bottom:1.5rem}.assignments-controls select{border:1px solid #cbd2d9;border-radius:6px;font-size:.9rem;padding:.5rem}.assignment-form{background:#fff;border-radius:10px;box-shadow:0 1px 3px #00000014;display:flex;flex-wrap:wrap;gap:.75rem;margin-bottom:1.5rem;padding:1.25rem}.assignment-form input,.assignment-form select{border:1px solid #cbd2d9;border-radius:6px;font-size:.9rem;padding:.5rem}.row-actions{display:flex;gap:.5rem}.btn-sm{font-size:.8rem;padding:.35rem .7rem}.grading-panel{background:#fff;border-radius:10px;border-top:4px solid #1f7a5c;box-shadow:0 2px 8px #0000001a;margin-top:2rem;padding:1.5rem}.grading-header{align-items:center;display:flex;gap:1rem;margin-bottom:1rem}.grading-header h2{margin:0}.grading-max{color:#829ab1;font-size:.9rem}.close-btn{background:none;border:none;color:#829ab1;cursor:pointer;font-size:1.2rem;margin-left:auto}.close-btn:hover{color:#102a43}.score-input{width:80px}.comment-input,.score-input{border:1px solid #cbd2d9;border-radius:6px;padding:.4rem}.comment-input{width:100%}.grading-footer{align-items:center;display:flex;gap:1rem;margin-top:1rem}.admin-flash,.save-message{color:#1f7a5c;font-size:.9rem}.admin-flash{background:#e0f5ee;border-left:4px solid #1f7a5c;border-radius:8px;margin-bottom:1rem;padding:.75rem 1rem}.admin-form{background:#fff;border-radius:10px;box-shadow:0 1px 3px #00000014;margin-bottom:2rem;padding:1.5rem}.admin-form h3{color:#102a43;margin-bottom:1rem}.admin-grid{grid-gap:.75rem;display:grid;gap:.75rem;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));margin-bottom:1rem}.admin-form input,.admin-form select{border:1px solid #cbd2d9;border-radius:6px;font-size:.9rem;padding:.55rem;width:100%}.page h3{color:#243b53;margin:1.5rem 0 .75rem}*{box-sizing:border-box;margin:0;padding:0}body{background:#f4f6f8;color:#1f2933;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif}.page{margin:0 auto;max-width:1100px;padding:2rem 1.5rem}.page h1{color:#102a43;font-size:1.8rem;margin-bottom:.5rem}.page h2{color:#243b53;font-size:1.3rem;margin:1.5rem 0 1rem}.empty{color:#829ab1;padding:1rem 0}.btn-primary{background:#1f7a5c;border:none;border-radius:6px;color:#fff;cursor:pointer;font-size:.9rem;font-weight:600;padding:.6rem 1.2rem}.btn-primary:hover{background:#176647}.btn-primary:disabled{cursor:not-allowed;opacity:.6}.btn-delete{background:#e12d39;border:none;border-radius:4px;color:#fff;cursor:pointer;font-size:.8rem;padding:.35rem .7rem}.data-table{background:#fff;border-collapse:collapse;border-radius:8px;box-shadow:0 1px 3px #00000014;overflow:hidden;width:100%}.data-table td,.data-table th{border-bottom:1px solid #e4e7eb;padding:.75rem 1rem;text-align:left}.data-table th{background:#f0f4f8;color:#486581;font-size:.8rem;text-transform:uppercase}.data-table tr:last-child td{border-bottom:none}
/*# sourceMappingURL=main.c0e8a303.css.map*/