:root{--font-family: "Plus Jakarta Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--color-primary: #2563eb;--color-primary-hover: #1d4ed8;--color-primary-light: #eff6ff;--color-primary-soft: #dbeafe;--color-sidebar: #1e3a8a;--color-sidebar-dark: #172554;--color-sidebar-text: #dbeafe;--color-sidebar-active: rgba(255, 255, 255, .14);--color-bg: #f1f5f9;--color-surface: #ffffff;--color-on-primary: #ffffff;--gradient-primary: linear-gradient(135deg, var(--color-primary) 0%, #3b82f6 100%);--gradient-primary-soft: linear-gradient(135deg, var(--color-primary) 0%, #60a5fa 100%);--color-surface-muted: #f8fafc;--color-text: #0f172a;--color-text-secondary: #475569;--color-text-muted: #5c6a7e;--color-border: #e2e8f0;--color-success: #10b981;--color-success-bg: #ecfdf5;--color-success-text: #047857;--color-error: #ef4444;--color-error-bg: #fef2f2;--color-error-text: #b91c1c;--color-warning: #f59e0b;--color-warning-bg: #fffbeb;--color-warning-text: #b45309;--shadow-sm: 0 1px 2px rgba(15, 23, 42, .05);--shadow-md: 0 8px 24px rgba(15, 23, 42, .08);--shadow-lg: 0 16px 40px rgba(15, 23, 42, .12);--radius-sm: 8px;--radius-md: 12px;--radius-lg: 16px;--radius-full: 999px}*{margin:0;padding:0;box-sizing:border-box}body{font-family:var(--font-family);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background-color:var(--color-bg);color:var(--color-text);line-height:1.5}.app-shell{min-height:100vh;display:flex;flex-direction:column}.app-content{flex:1 0 auto}.powered-by-footer{flex-shrink:0;display:flex;justify-content:flex-end;padding:.85rem 1.25rem 1.1rem}.powered-by-footer-badge{display:inline-flex;align-items:center;gap:.2rem;font-size:.8rem;font-weight:500;color:var(--color-text-secondary);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-full);padding:.45rem .9rem;box-shadow:var(--shadow-sm)}.powered-by-brand{font-weight:700;color:var(--color-primary)}a{color:var(--color-primary)}.navbar{background-color:var(--color-surface);color:var(--color-text);padding:.65rem .75rem .65rem 1.25rem;border-bottom:1px solid var(--color-border);box-shadow:var(--shadow-sm);position:sticky;top:0;z-index:100;width:100%}.navbar-container{width:100%;margin:0;padding:0;display:flex;justify-content:space-between;align-items:center;gap:1rem}.navbar-brand{display:flex;align-items:center;gap:.85rem;text-decoration:none;color:inherit}.navbar-logo{width:42px;height:42px;display:inline-flex;align-items:center;justify-content:center;border-radius:var(--radius-md);background:var(--gradient-primary);color:var(--color-on-primary)}.navbar-brand h1{font-size:1.05rem;font-weight:700;color:var(--color-text);margin:0}.navbar-brand p{font-size:.78rem;color:var(--color-text-muted);margin:0}.navbar-right{display:flex;align-items:center;margin-left:auto;flex-shrink:0}.navbar-profile-menu{position:relative}.navbar-user{display:flex;align-items:center;gap:.65rem}.navbar-user-trigger{border:1px solid transparent;background:transparent;border-radius:var(--radius-full);padding:.2rem .35rem .2rem .2rem;cursor:pointer;transition:box-shadow .2s ease,border-color .2s ease,background-color .2s ease;line-height:normal}.navbar-user-trigger:hover,.navbar-user-trigger[aria-expanded=true]{border-color:var(--color-border);background:var(--color-surface-muted);box-shadow:0 0 0 3px #2563eb1f}.navbar-user-name{font-size:.92rem;font-weight:600;color:var(--color-text);padding-right:.35rem;white-space:nowrap}.navbar-profile-dropdown{position:absolute;top:calc(100% + .5rem);right:0;min-width:220px;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);box-shadow:var(--shadow-md);padding:.35rem;z-index:200}.navbar-profile-dropdown-header{display:flex;flex-direction:column;gap:.15rem;padding:.65rem .75rem .55rem;border-bottom:1px solid var(--color-border);margin-bottom:.25rem}.navbar-profile-dropdown-header strong{font-size:.9rem;color:var(--color-text)}.navbar-profile-dropdown-header span{font-size:.78rem;color:var(--color-text-muted);word-break:break-all}.navbar-profile-dropdown-header span:first-of-type{font-weight:600;color:var(--color-primary)}.navbar-profile-dropdown-item{display:flex;align-items:center;gap:.65rem;width:100%;padding:.65rem .75rem;border:none;border-radius:var(--radius-sm);background:transparent;color:var(--color-text-secondary);font-size:.9rem;font-weight:600;text-decoration:none;cursor:pointer;transition:background-color .2s ease,color .2s ease}.navbar-profile-dropdown-item:hover{background:var(--color-surface-muted);color:var(--color-text)}.navbar-profile-dropdown-item--danger:hover{background:#fef2f2;color:#b91c1c}.navbar-avatar,.sidebar-user-avatar{width:40px;height:40px;flex-shrink:0;border-radius:var(--radius-full);background:var(--gradient-primary-soft);color:var(--color-on-primary);display:inline-flex;align-items:center;justify-content:center;font-weight:700;font-size:.95rem;line-height:1}.navbar-user-meta{display:flex;flex-direction:column}.user-info{font-size:.92rem;font-weight:600;color:var(--color-text)}.navbar-role{font-size:.75rem;color:var(--color-text-muted)}.logout-btn{background-color:var(--color-surface);color:var(--color-text-secondary);border:1px solid var(--color-border);padding:.55rem 1rem;border-radius:var(--radius-sm);cursor:pointer;font-weight:600;font-size:.9rem;transition:all .2s ease}.logout-btn:hover{background-color:var(--color-error-bg);color:var(--color-error-text);border-color:#fecaca}.auth-page{display:grid;grid-template-columns:7fr 3fr;min-height:100vh}.auth-brand-panel{background:linear-gradient(160deg,var(--color-sidebar-dark) 0%,var(--color-sidebar) 45%,#2563eb 100%);color:var(--color-on-primary);display:flex;align-items:center;padding:3rem;position:relative;overflow:hidden}.auth-brand-panel:before{content:"";position:absolute;top:-80px;right:-80px;width:260px;height:260px;border-radius:50%;background:#ffffff14}.auth-brand-panel:after{content:"";position:absolute;bottom:-120px;left:-60px;width:320px;height:320px;border-radius:50%;background:#ffffff0f}.auth-brand-content{position:relative;z-index:1;max-width:520px}.auth-brand-badge{display:inline-block;padding:.4rem .85rem;border-radius:var(--radius-full);background:#ffffff1f;font-size:.8rem;font-weight:600;margin-bottom:1.25rem}.auth-brand-content h1{font-size:2.4rem;line-height:1.2;margin-bottom:1rem}.auth-brand-content p{color:#ffffffdb;font-size:1rem;margin-bottom:1.5rem}.auth-feature-list{list-style:none;display:grid;gap:.75rem}.auth-feature-list li{display:flex;align-items:center;gap:.65rem;color:#ffffffeb;font-weight:500}.auth-feature-list li:before{content:"✓";width:22px;height:22px;border-radius:var(--radius-full);background:#ffffff29;display:inline-flex;align-items:center;justify-content:center;font-size:.75rem}.auth-form-panel{order:-1;display:flex;align-items:center;justify-content:center;padding:2rem;background:var(--color-bg)}.login-container,.register-container{display:flex;justify-content:center;align-items:center;min-height:100vh;background:var(--color-bg)}.login-form,.register-form{background:var(--color-surface);padding:2.25rem;border-radius:var(--radius-lg);box-shadow:var(--shadow-md);width:100%;max-width:440px;border:1px solid var(--color-border)}.login-form h1,.register-form h1{color:var(--color-text);margin-bottom:.5rem;text-align:left}.login-form h2,.register-form h2{color:var(--color-text);margin-bottom:.35rem;text-align:left;font-size:1.75rem}.auth-subtitle{color:var(--color-text-muted);margin-bottom:1.5rem;font-size:.95rem}.staff-portal-badge{display:inline-block;margin-bottom:.65rem;padding:.3rem .65rem;border-radius:var(--radius-full);background:#ede9fe;color:#5b21b6;font-size:.75rem;font-weight:700;text-transform:uppercase;letter-spacing:.04em}.staff-login-note{margin-top:1.25rem;font-size:.78rem;color:var(--color-text-muted)}.staff-login-note code{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;font-size:.76rem;background:var(--color-surface-muted);padding:.1rem .35rem;border-radius:var(--radius-sm)}.form-group{margin-bottom:1rem}.form-group label{display:block;margin-bottom:.45rem;font-weight:600;color:var(--color-text-secondary);font-size:.88rem}.form-group input,.form-group select,.form-group textarea{width:100%;padding:.8rem .9rem;border:1px solid var(--color-border);border-radius:var(--radius-sm);font-size:.95rem;font-family:inherit;background:var(--color-surface);color:var(--color-text);transition:border-color .2s ease,box-shadow .2s ease}.form-group input:focus,.form-group select:focus,.form-group textarea:focus{outline:2px solid var(--color-primary);outline-offset:2px;border-color:var(--color-primary);box-shadow:0 0 0 4px #2563eb1f}.form-group input:disabled,.form-group select:disabled,.form-group textarea:disabled{background-color:var(--color-surface-muted);cursor:not-allowed}.submit-btn{width:100%;padding:.85rem;background:var(--gradient-primary);color:var(--color-on-primary);border:none;border-radius:var(--radius-sm);font-size:1rem;font-weight:700;cursor:pointer;transition:transform .2s ease,box-shadow .2s ease;margin-top:.5rem}.submit-btn:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 8px 20px #2563eb47}.submit-btn:disabled{opacity:.6;cursor:not-allowed}.role-selector{display:grid;grid-template-columns:repeat(3,1fr);gap:.65rem}.role-option{display:flex;align-items:center;justify-content:center;gap:.35rem;cursor:pointer;font-weight:500;padding:.7rem .5rem;border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-surface-muted);transition:all .2s ease}.role-option.selected{border-color:var(--color-primary);background:var(--color-primary-light);color:var(--color-primary)}.role-option input[type=radio]{width:auto;cursor:pointer;margin:0}.role-option span{-webkit-user-select:none;user-select:none;font-size:.88rem}.error-message{background-color:var(--color-error-bg);color:var(--color-error-text);padding:.85rem 1rem;border-radius:var(--radius-sm);margin-bottom:1rem;border:1px solid #fecaca;font-size:.92rem}.success-message{background-color:var(--color-success-bg);color:var(--color-success-text);padding:.85rem 1rem;border-radius:var(--radius-sm);margin-bottom:1rem;border:1px solid #a7f3d0;font-size:.92rem}.register-link,.login-link{text-align:center;margin-top:1.25rem;font-size:.9rem;color:var(--color-text-secondary)}.register-link a,.login-link a{color:var(--color-primary);text-decoration:none;font-weight:700}.register-link a:hover,.login-link a:hover{text-decoration:underline}.dashboard-layout{display:flex;min-height:calc(100vh - 73px)}.sidebar{width:270px;background:linear-gradient(180deg,var(--color-sidebar-dark) 0%,var(--color-sidebar) 100%);padding:1.5rem 1rem;box-shadow:var(--shadow-md);display:flex;flex-direction:column}.sidebar-nav{display:flex;flex-direction:column;gap:.35rem;flex:1;padding-top:.25rem}.sidebar-section-label{color:#ffffff8c;font-size:.72rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;padding:0 .85rem;margin-bottom:.65rem}.nav-item{display:flex;align-items:center;gap:.85rem;padding:.8rem .9rem;color:var(--color-sidebar-text);text-decoration:none;transition:all .2s ease;border-radius:var(--radius-sm);font-weight:500}.nav-item:hover{background-color:#ffffff14;color:var(--color-on-primary)}.nav-item.active{background-color:var(--color-sidebar-active);color:var(--color-on-primary);font-weight:700;box-shadow:inset 3px 0 #60a5fa}.nav-icon{display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px;flex-shrink:0}.nav-label{flex:1;font-size:.92rem}.sidebar-footer{margin-top:auto;padding-top:1rem;border-top:1px solid rgba(255,255,255,.1)}.sidebar-user-card{display:flex;align-items:center;gap:.75rem;padding:.75rem;border-radius:var(--radius-sm);background:#ffffff14}.sidebar-user-card strong{display:block;color:var(--color-on-primary);font-size:.88rem}.sidebar-user-card>div span{display:block;color:#ffffffa6;font-size:.72rem;word-break:break-all}.dashboard-main{flex:1;padding:1.75rem;background-color:var(--color-bg);overflow-y:auto}.page-container{max-width:1280px;margin:0 auto}.page-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1.75rem;padding-bottom:1rem;border-bottom:1px solid var(--color-border);gap:1rem}.page-header h1{color:var(--color-text);font-size:1.85rem;font-weight:700;margin:0}.page-header-actions{display:flex;align-items:center;gap:.65rem;flex-wrap:wrap}.dashboard-overview,.staff-overview{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:1.25rem;margin-bottom:1.75rem}.overview-card{background:var(--color-surface);border-radius:var(--radius-md);padding:1.35rem;display:flex;align-items:flex-start;gap:1rem;box-shadow:var(--shadow-sm);border:1px solid var(--color-border);transition:transform .2s ease,box-shadow .2s ease}.overview-card:hover{transform:translateY(-3px);box-shadow:var(--shadow-md)}.card-icon{min-width:52px;height:52px;border-radius:var(--radius-sm);background:var(--color-primary-light);display:inline-flex;align-items:center;justify-content:center;color:var(--color-primary);flex-shrink:0}.feature-icon-img{display:block;object-fit:contain}.card-content h3{color:var(--color-text-secondary);font-size:.82rem;margin-bottom:.35rem;text-transform:uppercase;font-weight:700;letter-spacing:.04em}.card-number{font-size:1.85rem;font-weight:800;color:var(--color-text);margin-bottom:.35rem}.card-link{color:var(--color-primary);text-decoration:none;font-size:.88rem;font-weight:700}.card-link:hover{text-decoration:underline}.card-actions{margin-top:.85rem}.card-actions .btn{width:100%}.overview-card--action .card-content{flex:1}.quick-actions-section{margin-bottom:1.75rem}.quick-actions-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:1rem}.quick-action-card{display:flex;align-items:flex-start;gap:.9rem;padding:1rem 1.1rem;border-radius:var(--radius-md);border:1px solid var(--color-border);background:var(--color-surface);box-shadow:var(--shadow-sm);text-decoration:none;color:inherit;transition:transform .2s ease,box-shadow .2s ease,border-color .2s ease}.quick-action-card:hover{transform:translateY(-2px);box-shadow:var(--shadow-md);border-color:var(--color-primary-soft)}.quick-action-card--primary{border-color:#bfdbfe;background:#eff6ff}.quick-action-icon{flex-shrink:0}.quick-action-icon .card-icon{min-width:44px;height:44px}.quick-action-text{display:flex;flex-direction:column;gap:.25rem}.quick-action-text strong{color:var(--color-text);font-size:.95rem}.quick-action-text span{color:var(--color-text-muted);font-size:.82rem;line-height:1.4}.empty-state-actions{display:flex;align-items:center;gap:1rem;flex-wrap:wrap}.badge,.staff-badge{display:inline-block;padding:.4rem .85rem;background-color:var(--color-primary-light);color:var(--color-primary);border-radius:var(--radius-full);font-size:.82rem;font-weight:700;border:1px solid var(--color-primary-soft)}.badge-parent{background-color:var(--color-primary-light);color:var(--color-primary)}.badge-student{background-color:#ecfdf5;color:#047857;border:1px solid #a7f3d0}.badge-staff,.staff-badge{background-color:#ede9fe;color:#6d28d9;border-color:#ddd6fe}.students-section,.recent-entries,.results-table,.recent-reports,.staff-table-container,.detail-container,.profile-card,.empty-state,.loading,.marks-form,.report-form{background:var(--color-surface);border-radius:var(--radius-md);padding:1.35rem;box-shadow:var(--shadow-sm);border:1px solid var(--color-border)}.students-section h2,.students-section h3,.recent-entries h3,.recent-reports h3{color:var(--color-text);margin-bottom:1rem;font-size:1.1rem}.students-section--full{width:100%}.section-hint{color:var(--color-text-muted);margin:0 0 1rem}.table-wrapper{width:100%;overflow-x:auto}.table-wrapper:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px}.students-table,.results-table table,.detail-table,.staff-table,.sample-table{width:100%;border-collapse:collapse}.students-table thead,.results-table thead,.detail-table thead,.staff-table thead{background-color:var(--color-surface-muted)}.students-table th,.results-table th,.detail-table th,.staff-table th{padding:.85rem 1rem;text-align:left;font-weight:700;color:var(--color-text-secondary);border-bottom:1px solid var(--color-border);font-size:.82rem;text-transform:uppercase;letter-spacing:.04em}.students-table td,.results-table td,.detail-table td,.staff-table td{padding:.85rem 1rem;border-bottom:1px solid var(--color-border);color:var(--color-text-secondary);font-size:.92rem}.students-table tbody tr:hover,.results-table tbody tr:hover,.detail-table tbody tr:hover,.staff-table tbody tr:hover{background-color:var(--color-surface-muted)}.table-actions{display:flex;flex-wrap:wrap;gap:.5rem}.parent-student-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.35rem}.parent-student-list li{margin:0}.link-button{border:none;background:none;padding:0;color:var(--color-primary);font-weight:600;cursor:pointer;text-decoration:underline;font-size:inherit}.link-button:hover{color:#1d4ed8}.status-muted{color:var(--color-text-muted);font-size:.88rem}.status-success{display:inline-block;padding:.3rem .7rem;border-radius:var(--radius-full);background:var(--color-success-bg);color:var(--color-success-text);font-size:.8rem;font-weight:700}.status-failed{display:inline-block;padding:.3rem .7rem;border-radius:var(--radius-full);background:var(--color-error-bg);color:var(--color-error-text);font-size:.8rem;font-weight:700}.status-pending{display:inline-block;padding:.3rem .7rem;border-radius:var(--radius-full);background:var(--color-warning-bg);color:var(--color-warning-text);font-size:.8rem;font-weight:700}.status-active{background-color:var(--color-success-bg);color:var(--color-success-text);padding:.3rem .7rem;border-radius:var(--radius-full);font-weight:700;font-size:.8rem}.btn{display:inline-block;padding:.7rem 1.2rem;border:none;border-radius:var(--radius-sm);font-size:.92rem;font-weight:700;cursor:pointer;transition:all .2s ease;text-decoration:none;font-family:inherit}.btn-primary{background:var(--gradient-primary);color:var(--color-on-primary)}.btn-primary:hover{transform:translateY(-1px);box-shadow:0 6px 16px #2563eb40}.btn-secondary{background-color:var(--color-surface-muted);color:var(--color-text-secondary);border:1px solid var(--color-border)}.btn-secondary:hover{background-color:#e2e8f0}.btn-danger{background:linear-gradient(135deg,#dc2626,#ef4444);color:var(--color-on-primary)}.btn-danger:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 6px 16px #dc262640}.btn-danger:disabled{opacity:.55;cursor:not-allowed}.btn-sm{padding:.45rem .85rem;font-size:.82rem}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;padding:1rem;z-index:300;overflow-y:auto;overscroll-behavior:contain}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;width:100%;height:100%;border:none;padding:0;background:#0f172a73;cursor:default}.dialog.modal-card,.modal-card{position:relative;z-index:1;width:min(100%,480px);margin:0;max-width:none;max-height:calc(100vh - 2rem);max-height:calc(100dvh - 2rem);overflow-y:auto;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);box-shadow:var(--shadow-md);padding:1.25rem}.modal-card:focus{outline:none}.modal-card:focus-visible{outline:3px solid var(--color-primary);outline-offset:2px}.modal-header{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin-bottom:.35rem}.modal-header h2{margin:0;font-size:1.1rem;color:var(--color-text)}.modal-close{border:none;background:transparent;color:var(--color-text-muted);font-size:1.5rem;line-height:1;cursor:pointer;padding:.15rem .35rem}.modal-subtitle{margin:0 0 1rem;color:var(--color-text-muted);font-size:.9rem}.modal-actions{display:flex;justify-content:flex-end;gap:.75rem;margin-top:1.25rem;flex-wrap:wrap}.confirm-upload-summary{margin:0 0 .25rem;padding:.85rem 1rem;border-radius:var(--radius-sm);background:#f8fafc;border:1px solid var(--color-border)}.confirm-upload-summary p{margin:0 0 .65rem;color:var(--color-text);font-size:.92rem;line-height:1.5}.confirm-upload-summary p:last-child{margin-bottom:0}.password-result-box .detail-item{margin-bottom:.85rem}.password-reveal{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;font-weight:700;color:var(--color-primary)}.password-result p{margin:0 0 .75rem;color:var(--color-text);font-size:.92rem;line-height:1.5}.password-result-value{display:flex;align-items:center;flex-wrap:wrap;gap:.65rem;padding:.75rem .85rem;margin-bottom:.75rem;border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-surface-muted)}.password-result-value code{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;font-weight:700;font-size:.95rem;color:var(--color-text);word-break:break-all}.password-result-warning{color:var(--color-warning-text);font-size:.88rem}.password-ack{display:flex;align-items:flex-start;gap:.55rem;font-size:.9rem;color:var(--color-text);line-height:1.45;cursor:pointer}.password-ack input{margin-top:.2rem;flex-shrink:0}.password-ack input:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px}.btn-lg{padding:.95rem 1.5rem;font-size:1rem;width:100%}.admin-forms-layout{display:flex;flex-direction:column;gap:1.5rem}.admin-forms-row{display:grid;grid-template-columns:minmax(280px,380px) minmax(0,1fr);gap:1.5rem;align-items:start}.admin-forms-row--single{grid-template-columns:1fr}.admin-form-card{height:100%}.admin-form-card--full,.admin-form-card--wide{width:100%}.admin-form-intro{margin:0 0 1.25rem;color:var(--color-text-muted);font-size:.92rem;line-height:1.5}.admin-form-section{margin-bottom:1.25rem;padding:1rem 1.1rem;border:1px solid var(--color-border);border-radius:var(--radius-sm);background:#f8fafc}.admin-form-section h4{margin:0 0 .9rem;font-size:.82rem;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--color-text-muted)}.admin-form-actions{display:flex;justify-content:flex-start;margin-top:.25rem}.admin-form-fields{display:flex;flex-direction:column;gap:0}.admin-form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 1rem}.admin-form-card--wide .admin-form-grid,.admin-form-grid--parent{grid-template-columns:repeat(3,minmax(0,1fr))}.admin-form-grid .form-group{margin-bottom:1rem}.admin-bio-layout{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(260px,.8fr);gap:1.25rem;align-items:start}.admin-bio-help-header{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:.75rem;margin-bottom:.75rem}.admin-bio-help-title{margin:0;font-size:.82rem;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--color-text-muted)}.admin-bio-help-note{margin:0 0 .75rem;font-size:.875rem;line-height:1.5;color:var(--color-text-muted)}.admin-bio-upload{display:flex;flex-direction:column;gap:1rem;padding:1rem;border:1px dashed var(--color-border);border-radius:var(--radius-sm);background:#f8fafc}.marks-form-container{display:grid;grid-template-columns:1fr 1fr;gap:1.5rem}.marks-form h3{color:var(--color-text);margin-bottom:1rem;font-size:1.05rem}.form-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:1rem;margin-bottom:1rem}.form-actions{display:flex;gap:.75rem;justify-content:flex-start;margin-top:1.25rem;flex-wrap:wrap}.form-actions .btn{min-width:140px}.csv-sample{background:var(--color-surface-muted);border:1px solid var(--color-border);border-radius:var(--radius-sm);padding:1rem;overflow-x:auto;font-size:.82rem;color:var(--color-text-secondary)}.profile-card{max-width:720px}.profile-section{margin-bottom:1.25rem;display:grid;grid-template-columns:180px 1fr;gap:1rem;padding-bottom:1rem;border-bottom:1px solid var(--color-border)}.profile-section:last-child{border-bottom:none;margin-bottom:0;padding-bottom:0}.profile-section label,.profile-section .field-label{font-weight:700;color:var(--color-text-secondary);font-size:.88rem}.profile-section p{color:var(--color-text);font-weight:500}.change-password-card{margin-top:1.5rem}.change-password-card h2{margin:0 0 .35rem;font-size:1.1rem;color:var(--color-text)}.change-password-hint{margin:0 0 1.25rem;color:var(--color-text-muted);font-size:.9rem}.change-password-form{max-width:420px}.change-password-form .btn{margin-top:.25rem}.children-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:1.25rem}.child-card{background:var(--color-surface);border-radius:var(--radius-md);overflow:hidden;box-shadow:var(--shadow-sm);border:1px solid var(--color-border);transition:transform .2s ease,box-shadow .2s ease}.child-card:hover{transform:translateY(-3px);box-shadow:var(--shadow-md)}.card-header{background:linear-gradient(135deg,var(--color-sidebar) 0%,#3b82f6 100%);color:var(--color-on-primary);padding:1rem 1.1rem;display:flex;justify-content:space-between;align-items:flex-start}.card-header h3{margin:0;font-size:1.05rem}.roll-number{background-color:#ffffff2e;padding:.3rem .65rem;border-radius:var(--radius-full);font-size:.8rem}.card-body{padding:1.2rem}.card-body p{margin-bottom:.45rem;color:var(--color-text-secondary)}.card-footer{padding:1rem 1.2rem;border-top:1px solid var(--color-border);display:flex;gap:.5rem}.detail-section{margin-bottom:2rem}.detail-section h2{color:var(--color-text);margin-bottom:1rem;font-size:1.15rem}.detail-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:1rem}.detail-item{padding:1rem;background-color:var(--color-surface-muted);border-radius:var(--radius-sm);border:1px solid var(--color-border)}.detail-item label,.detail-item .field-label{display:block;font-weight:700;color:var(--color-text-muted);margin-bottom:.35rem;font-size:.78rem;text-transform:uppercase;letter-spacing:.05em}.detail-item p{color:var(--color-text);font-size:.95rem;margin:0;font-weight:600}.performance-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:1rem}.performance-card{background:var(--gradient-primary);color:var(--color-on-primary);padding:1.25rem;border-radius:var(--radius-md);display:flex;align-items:center;gap:.85rem;box-shadow:var(--shadow-md)}.performance-card:nth-child(2){background:linear-gradient(135deg,#7c3aed,#a78bfa)}.performance-card:nth-child(3){background:linear-gradient(135deg,#0891b2,#22d3ee)}.performance-card:nth-child(4){background:linear-gradient(135deg,#059669,#34d399)}.performance-number{font-size:1.6rem;font-weight:800;margin:0}.percentage-badge{display:inline-block;padding:.3rem .65rem;border-radius:var(--radius-full);font-weight:700;font-size:.78rem}.percentage-green{background-color:var(--color-success-bg);color:var(--color-success-text)}.percentage-orange{background-color:var(--color-warning-bg);color:var(--color-warning-text)}.percentage-red{background-color:var(--color-error-bg);color:var(--color-error-text)}.filters{display:flex;gap:1rem;margin-bottom:1.25rem}.filters input,.filters select{flex:1;min-width:180px}.report-item{display:flex;justify-content:space-between;align-items:center;padding:.9rem 1rem;background-color:var(--color-surface-muted);border-radius:var(--radius-sm);border:1px solid var(--color-border)}.date-badge{display:inline-block;padding:.35rem .7rem;background-color:var(--color-primary-light);color:var(--color-primary);border-radius:var(--radius-full);font-size:.78rem;font-weight:700}.action-buttons{display:flex;gap:.75rem;flex-wrap:wrap}.reports-section{display:grid;grid-template-columns:1fr 1fr;gap:1.5rem}.announcement-card{background:var(--color-surface-muted);padding:1rem;border-radius:var(--radius-sm);border:1px solid var(--color-border)}@media (max-width: 1024px){.auth-page{grid-template-columns:1fr}.auth-brand-panel{min-height:280px;padding:2rem}.auth-brand-content h1{font-size:1.8rem}}@media (max-width: 768px){.dashboard-layout{flex-direction:column}.sidebar{width:100%;padding:1rem}.sidebar-footer{display:none}.sidebar-nav{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:.5rem}.sidebar-section-label{grid-column:1 / -1}.nav-item{flex-direction:column;text-align:center;padding:.65rem;gap:.35rem}.nav-item.active{box-shadow:none;border:1px solid rgba(255,255,255,.2)}.dashboard-main{padding:1rem}.page-header{flex-direction:column;align-items:flex-start}.dashboard-overview,.staff-overview,.marks-form-container,.admin-forms-row,.admin-form-grid,.admin-form-card--wide .admin-form-grid,.admin-form-grid--parent,.admin-bio-layout,.reports-section,.profile-section,.children-grid{grid-template-columns:1fr}.navbar-container{flex-direction:row;align-items:center}.navbar-right{width:auto;margin-left:auto}.navbar-user-name{max-width:120px;overflow:hidden;text-overflow:ellipsis}.login-form,.register-form{margin:0}.role-selector{grid-template-columns:1fr}.students-table,.detail-table,.staff-table{font-size:.82rem}.students-table th,.students-table td,.detail-table th,.detail-table td,.staff-table th,.staff-table td{padding:.55rem}.performance-grid{grid-template-columns:repeat(2,1fr)}.action-buttons{flex-direction:column}.action-buttons .btn{width:100%}}.exam-report-list{display:flex;flex-direction:column;gap:1.25rem}.exam-report-filters,.exam-type-selector{display:flex;flex-wrap:wrap;align-items:flex-end;gap:.9rem 1rem;padding:1rem 1.15rem;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);box-shadow:var(--shadow-sm)}.exam-filter-field{display:flex;flex-direction:column;gap:.35rem;min-width:180px}.exam-report-filters label,.exam-type-selector label{font-size:.85rem;font-weight:700;color:var(--color-text-secondary);margin:0}.exam-filter-select,.exam-type-select{min-width:180px;padding:.55rem 2rem .55rem .85rem;border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-surface-muted);color:var(--color-text);font-size:.95rem;font-weight:600;cursor:pointer;-webkit-appearance:none;-moz-appearance:none;appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%2364748b' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right .65rem center}.exam-filter-select:disabled{cursor:not-allowed;opacity:.65}.exam-report-downloads{display:flex;flex-wrap:wrap;gap:.5rem;margin-left:auto}.staff-grades-filters{margin-bottom:1.25rem;padding:1rem 1.15rem;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);box-shadow:var(--shadow-sm)}.staff-grades-filters-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:.9rem 1rem}.staff-grades-search-field{min-width:220px}.staff-grades-search{width:100%;padding:.55rem .85rem;border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-surface-muted);color:var(--color-text);font-size:.95rem}.staff-grades-filter-actions{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:.75rem;margin-top:1rem;padding-top:1rem;border-top:1px solid var(--color-border)}.staff-grades-summary{margin:0;color:var(--color-text-muted);font-size:.92rem}.staff-grades-action-buttons{display:flex;flex-wrap:wrap;gap:.5rem}.staff-grades-table th,.staff-grades-table td{white-space:nowrap}.staff-result-pass{color:#15803d;font-weight:700}.staff-result-fail{color:#b91c1c;font-weight:700}.exam-type-select:focus{outline:2px solid var(--color-primary);outline-offset:2px;border-color:var(--color-primary);box-shadow:0 0 0 3px #2563eb26}@media (forced-colors: active){.form-group input:focus,.form-group select:focus,.form-group textarea:focus,.exam-type-select:focus,.modal-card:focus-visible{outline:3px solid Highlight;outline-offset:2px}.modal-card{border:2px solid CanvasText}}.exam-report-empty{color:var(--color-text-secondary);margin:0}.exam-report-card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);box-shadow:var(--shadow-sm);overflow:hidden}.exam-report-header{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:1rem;padding:1.25rem 1.35rem 1rem;border-bottom:1px solid var(--color-border);background:linear-gradient(180deg,var(--color-surface-muted) 0%,var(--color-surface) 100%)}.exam-report-student{margin:0 0 .25rem;font-size:.85rem;color:var(--color-text-secondary);font-weight:600}.exam-report-roll{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace}.exam-report-title{margin:0;font-size:1.2rem;color:var(--color-text)}.exam-report-meta{margin:.35rem 0 0;font-size:.85rem;color:var(--color-text-muted)}.exam-report-summary{display:flex;flex-wrap:wrap;gap:.75rem}.exam-summary-stat{min-width:88px;padding:.65rem .85rem;border-radius:var(--radius-sm);border:1px solid var(--color-border);background:var(--color-surface);text-align:center}.exam-summary-stat strong{display:block;font-size:1rem;color:var(--color-text);margin-top:.15rem}.exam-summary-label{display:block;font-size:.72rem;text-transform:uppercase;letter-spacing:.05em;color:var(--color-text-muted);font-weight:700}.exam-summary-stat--excellent{border-color:#86efac;background:#f0fdf4}.exam-summary-stat--good{border-color:#93c5fd;background:#eff6ff}.exam-summary-stat--average{border-color:#fcd34d;background:#fffbeb}.exam-summary-stat--poor{border-color:#fca5a5;background:#fef2f2}.exam-progress-wrap{display:flex;align-items:center;gap:.85rem;padding:.85rem 1.35rem;border-bottom:1px solid var(--color-border)}.exam-progress-track{flex:1;height:8px;border-radius:var(--radius-full);background:var(--color-surface-muted);overflow:hidden}.exam-progress-fill{height:100%;border-radius:var(--radius-full);transition:width .3s ease}.exam-progress-fill--excellent{background:linear-gradient(90deg,#16a34a,#4ade80)}.exam-progress-fill--good{background:linear-gradient(90deg,#2563eb,#60a5fa)}.exam-progress-fill--average{background:linear-gradient(90deg,#d97706,#fbbf24)}.exam-progress-fill--poor{background:linear-gradient(90deg,#dc2626,#f87171)}.exam-progress-label{font-size:.82rem;font-weight:700;color:var(--color-text-secondary);white-space:nowrap}.exam-report-table-wrap{overflow-x:auto}.exam-report-table{width:100%;border-collapse:collapse}.exam-report-table thead{background:var(--color-surface-muted)}.exam-report-table th{padding:.8rem 1rem;text-align:left;font-size:.78rem;text-transform:uppercase;letter-spacing:.04em;color:var(--color-text-secondary);border-bottom:1px solid var(--color-border)}.exam-report-table td{padding:.8rem 1rem;border-bottom:1px solid var(--color-border);color:var(--color-text-secondary);font-size:.92rem}.exam-report-table tbody tr:hover{background:var(--color-surface-muted)}.exam-report-index{width:2.5rem;color:var(--color-text-muted);font-weight:700}.exam-report-subject{font-weight:600;color:var(--color-text)}.exam-report-marks{font-variant-numeric:tabular-nums;font-weight:600}.exam-report-remarks{color:var(--color-text-muted);max-width:180px}.exam-pct-badge{display:inline-block;min-width:2.75rem;padding:.2rem .45rem;border-radius:var(--radius-full);font-size:.78rem;font-weight:700;text-align:center}.exam-pct-badge--excellent{background:#dcfce7;color:#166534}.exam-pct-badge--good{background:#dbeafe;color:#1d4ed8}.exam-pct-badge--average{background:#fef3c7;color:#b45309}.exam-pct-badge--poor{background:#fee2e2;color:#b91c1c}.exam-grade-badge{display:inline-block;min-width:2rem;padding:.2rem .5rem;border-radius:var(--radius-sm);background:var(--color-surface-muted);border:1px solid var(--color-border);font-weight:700;text-align:center;color:var(--color-text)}.exam-grade-badge--overall{background:#ede9fe;border-color:#c4b5fd;color:#5b21b6}.exam-report-total-row{background:var(--color-surface-muted)}.exam-report-total-row td{border-bottom:none;color:var(--color-text);font-size:.95rem}@media (max-width: 768px){.exam-report-header{flex-direction:column}.exam-report-summary{width:100%}.exam-summary-stat{flex:1}.exam-progress-wrap{flex-direction:column;align-items:stretch}.exam-progress-label{text-align:center}}
