/*! tailwindcss v4.1.4 | MIT License | https://tailwindcss.com */@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-border-style:solid;--tw-outline-style:solid;--tw-blur:initial;--tw-brightness:initial;--tw-contrast:initial;--tw-grayscale:initial;--tw-hue-rotate:initial;--tw-invert:initial;--tw-opacity:initial;--tw-saturate:initial;--tw-sepia:initial;--tw-drop-shadow:initial;--tw-drop-shadow-color:initial;--tw-drop-shadow-alpha:100%;--tw-drop-shadow-size:initial}}}:root{color-scheme:light;color:#ffffffde;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background-color:#fff;font-family:Century Gothic;font-weight:400;line-height:1.5}a{color:#646cff;-webkit-text-decoration:inherit;text-decoration:inherit;font-weight:500}a:hover{color:#535bf2}body{color:#ffffffde;background-color:#fff;min-width:320px;min-height:100vh;margin:0;padding:0;font-family:system-ui,Avenir,Helvetica,Arial,sans-serif}h1{font-size:3.2em;line-height:1.1}button{cursor:pointer;background-color:#1a1a1a;border:1px solid #0000;border-radius:8px;padding:.6em 1.2em;font-family:inherit;font-size:1em;font-weight:500;transition:border-color .25s}button:hover{border-color:#646cff}button:focus,button:focus-visible{outline:4px auto -webkit-focus-ring-color}@media (prefers-color-scheme:light){:root{color:#213547;background-color:#fff}a:hover{color:#747bff}button{background-color:#f9f9f9}}.collapse{visibility:collapse}.visible{visibility:visible}.absolute{position:absolute}.fixed{position:fixed}.relative{position:relative}.mx-auto{margin-inline:auto}.block{display:block}.flex{display:flex}.hidden{display:none}.inline{display:inline}.w-auto{width:auto}.max-w-\[150px\]{max-width:150px}.transform{transform:var(--tw-rotate-x,)var(--tw-rotate-y,)var(--tw-rotate-z,)var(--tw-skew-x,)var(--tw-skew-y,)}.items-center{align-items:center}.justify-between{justify-content:space-between}.border{border-style:var(--tw-border-style);border-width:1px}.object-contain{object-fit:contain}.underline{text-decoration-line:underline}.outline{outline-style:var(--tw-outline-style);outline-width:1px}.filter{filter:var(--tw-blur,)var(--tw-brightness,)var(--tw-contrast,)var(--tw-grayscale,)var(--tw-hue-rotate,)var(--tw-invert,)var(--tw-saturate,)var(--tw-sepia,)var(--tw-drop-shadow,)}.focus\:outline-none:focus{--tw-outline-style:none;outline-style:none}@property --tw-rotate-x{syntax:"*";inherits:false}@property --tw-rotate-y{syntax:"*";inherits:false}@property --tw-rotate-z{syntax:"*";inherits:false}@property --tw-skew-x{syntax:"*";inherits:false}@property --tw-skew-y{syntax:"*";inherits:false}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-outline-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-blur{syntax:"*";inherits:false}@property --tw-brightness{syntax:"*";inherits:false}@property --tw-contrast{syntax:"*";inherits:false}@property --tw-grayscale{syntax:"*";inherits:false}@property --tw-hue-rotate{syntax:"*";inherits:false}@property --tw-invert{syntax:"*";inherits:false}@property --tw-opacity{syntax:"*";inherits:false}@property --tw-saturate{syntax:"*";inherits:false}@property --tw-sepia{syntax:"*";inherits:false}@property --tw-drop-shadow{syntax:"*";inherits:false}@property --tw-drop-shadow-color{syntax:"*";inherits:false}@property --tw-drop-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-drop-shadow-size{syntax:"*";inherits:false}*{margin:0;padding:0;box-sizing:border-box}body{font-family:Arial,sans-serif}.loading-spinner{position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);border:6px solid #f3f3f3;border-top:6px solid #1565c0;border-radius:50%;width:50px;height:50px;animation:spin 1s linear infinite;z-index:9999}@keyframes spin{0%{transform:translate(-50%,-50%) rotate(0)}to{transform:translate(-50%,-50%) rotate(360deg)}}.mobile-header{background-color:#0d47a1;padding:.5rem 1rem;height:48px;display:flex;justify-content:flex-start;align-items:center;position:fixed;width:100%;z-index:10}.hamburger{font-size:1.5rem;background:none;border:none;color:#fff;cursor:pointer}.sidebar{position:fixed;top:0;left:0;height:100vh;background-color:#fff;color:#fff;padding-top:1rem;transition:transform .3s ease-in-out;z-index:20;display:flex;flex-direction:column;align-items:center;justify-content:space-between;overflow-y:auto;scrollbar-width:none;-ms-overflow-style:none}.sidebar::-webkit-scrollbar{display:none}.sidebar-logo{height:80px;margin-bottom:1.5rem}.sidebar-nav{flex-grow:1;width:100%}.sidebar-nav ul{list-style:none;display:flex;flex-direction:column;margin-top:1rem;width:100%}.sidebar-nav li{display:flex;align-items:center;padding:12px 18px;font-size:17px;color:#8eb4ff;border-radius:0;margin-bottom:10px;width:100%;cursor:pointer;background-color:transparent;transition:background-color .3s ease,color .3s ease}.sidebar-nav li:hover,.sidebar-nav li.active{background-color:#fff;color:#064a97}.sidebar-nav li svg{margin-right:10px;width:26px;height:26px}.logout-btn{background-color:#2a5db0;color:#fff;width:100%;text-align:center;padding:14px 18px;font-size:17px;cursor:pointer;border:none;border-radius:6px;margin-top:1rem;margin-bottom:2rem;transition:background-color .3s ease}.logout-btn:hover{background-color:#174a8c}@media (max-width: 768px){.sidebar{width:100%;transform:translate(-100%);background-color:#fff;color:#1a1a1a;padding:2rem 1.5rem;align-items:flex-start}.sidebar.open{transform:translate(0);z-index:2000}.sidebar-logo{height:100px;margin-bottom:1rem}.sidebar-nav li{font-size:20px;font:Century Gothic;font-weight:500;color:#0e2d52}.sidebar-nav li svg{width:30px;height:30px;color:#76787e}.sidebar-submenu li{font-size:20px!important;color:#0e3152!important;padding-left:2rem}.sidebar-submenu li:hover,.sidebar-submenu li.active{background-color:#f0f4ff;color:#0a2a4e}.close-btn{display:block;position:absolute;top:1rem;right:1rem;background:none;border:none;font-size:1.5rem;color:#333;z-index:100}.sidebar-greeting{display:none}.logout-btn{font-size:16px;background-color:#2a5db0;color:#fff}}@media (min-width: 769px){.mobile-header{display:none}.sidebar{width:100px;transform:none;overflow-y:auto;max-height:100vh}.sidebar-nav li{flex-direction:column;text-align:center;padding:16px 0;margin-bottom:0}.sidebar-nav li span{font-size:12px;margin-top:4px}.sidebar-nav li svg{margin:0}.close-btn{display:none!important}.logout-btn{text-align:center;font-size:14px}}.sidebar-submenu{list-style:none;padding-left:1.5rem;width:100%;margin-top:.3rem;animation:dropdownFade .3s ease-in-out}.sidebar-submenu li{display:flex;align-items:center;padding:10px 12px;font-size:15px;color:#dce8ff;width:100%;border-radius:0;margin:0;cursor:pointer;transition:background-color .2s ease-in-out}.sidebar-submenu li:hover,.sidebar-submenu li.active{background-color:#fff;color:#0a2a4e}.sidebar-submenu li svg{margin-right:10px;width:22px;height:22px}.sidebar-nav ul.collapsed>li:not(.active){padding:6px 0;font-size:14px;opacity:.6}@keyframes dropdownFade{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}.class-management-page{max-width:900px;margin:0 auto;padding:2.5rem 2rem}.page-header{margin-bottom:3rem;padding-bottom:1.5rem;border-bottom:1px solid #e5e7eb}.page-header h1{margin:0 0 .5rem;font-size:2rem;font-weight:600;color:#111827;letter-spacing:-.025em}.page-subtitle{margin:0;font-size:1rem;color:#6b7280;font-weight:400}.alert{padding:1rem 1.25rem;margin-bottom:1.5rem;border-radius:6px;font-size:.95rem;line-height:1.5}.alert-success{background-color:#d1fae5;color:#065f46;border:1px solid #6ee7b7}.alert-error{background-color:#fee2e2;color:#991b1b;border:1px solid #fca5a5}.class-mgmt-section{margin-bottom:3rem}.class-mgmt-section:last-of-type{margin-bottom:0}.class-section-header{margin-bottom:1.5rem}.class-section-header h2{margin:0 0 .375rem;font-size:1.25rem;font-weight:600;color:#111827}.section-description{margin:0;font-size:.95rem;color:#6b7280;line-height:1.5}.section-content{background-color:transparent}.settings-form{display:flex;flex-direction:column;gap:1.5rem}.form-row{display:flex;flex-direction:column;gap:.5rem}.form-row-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:1.5rem}.form-group-inline{display:flex;gap:.75rem;align-items:flex-start}.form-group-inline .form-input{flex:1}.form-label{font-size:.875rem;font-weight:500;color:#374151;margin:0}.form-input{padding:.625rem .875rem;font-size:.95rem;color:#111827;background-color:transparent;border:none;border-bottom:1px solid #e5e7eb;border-radius:0;transition:all .15s ease;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,sans-serif}.form-input:focus{outline:none;border-bottom-color:#3b82f6;box-shadow:none}.form-input::placeholder{color:#9ca3af}.form-select-multiple{min-height:120px;padding:.5rem}.form-select-multiple option{padding:.5rem;border-radius:4px;margin-bottom:2px}.form-hint{font-size:.8125rem;color:#6b7280;margin-top:.25rem}.subsection{padding:1.5rem 0}.subsection:first-child{padding-top:0}.subsection-title{margin:0 0 1rem;font-size:.95rem;font-weight:600;color:#374151;text-transform:uppercase;letter-spacing:.025em}.checkbox-group{display:flex;flex-direction:column;gap:.75rem}.checkbox-label{display:flex;align-items:flex-start;gap:.875rem;cursor:pointer;padding:0;transition:all .15s ease}.checkbox-label:hover .checkbox-title{color:#3b82f6}.checkbox-input{width:18px;height:18px;margin-top:2px;cursor:pointer;accent-color:#3b82f6;flex-shrink:0}.checkbox-content{display:flex;flex-direction:column;gap:.25rem;flex:1}.checkbox-title{font-size:.95rem;font-weight:500;color:#111827}.checkbox-description{font-size:.875rem;color:#6b7280;line-height:1.4}.staged-items{display:flex;flex-direction:column;gap:.75rem;padding:0}.staged-item{display:flex;justify-content:space-between;align-items:flex-start;padding:1rem;background-color:#f9fafb;border:1px solid #e5e7eb;border-radius:6px}.staged-item-content{display:flex;flex-direction:column;gap:.75rem;flex:1}.staged-name{font-size:1rem;font-weight:600;color:#111827}.department-checkbox{display:flex;align-items:center;gap:.5rem;cursor:pointer}.department-checkbox input[type=checkbox]{width:18px;height:18px;cursor:pointer}.checkbox-label{font-size:.9rem;color:#4b5563;-webkit-user-select:none;user-select:none}.btn-primary{padding:.625rem 1.25rem;font-size:.95rem;font-weight:500;color:#fff;background-color:#3b82f6;border:none;border-radius:6px;cursor:pointer;transition:all .15s ease;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,sans-serif}.btn-primary:hover{background-color:#2563eb}.btn-primary:disabled{background-color:#9ca3af;cursor:not-allowed;opacity:.6}.btn-secondary{padding:.625rem 1.25rem;font-size:.95rem;font-weight:500;color:#374151;background-color:#f3f4f6;border:none;border-radius:6px;cursor:pointer;transition:all .15s ease;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,sans-serif}.btn-secondary:hover{background-color:#e5e7eb}.btn-remove{padding:.375rem .75rem;font-size:.875rem;font-weight:500;color:#dc2626;background-color:transparent;border:none;border-radius:4px;cursor:pointer;transition:all .15s ease}.btn-remove:hover{background-color:#fee2e2}.form-actions{display:flex;gap:.75rem;padding-top:.5rem}@media (max-width: 768px){.class-management-page{padding:1.5rem 1rem}.page-header{margin-bottom:2rem;padding-bottom:1rem}.page-header h1{font-size:1.75rem}.class-mgmt-section{margin-bottom:2.5rem}.form-row-grid{grid-template-columns:1fr;gap:1rem}.form-group-inline{flex-direction:column}.form-group-inline .form-input{width:100%}}@media (max-width: 480px){.class-management-page{padding:1rem .75rem}.page-header h1{font-size:1.5rem}.page-subtitle{font-size:.9rem}.class-section-header h2{font-size:1.125rem}.form-input,.btn-primary,.btn-secondary{font-size:.9rem}}.view-users-wrapper{display:flex;justify-content:center;align-items:flex-start;padding:0 2rem 2rem;min-height:100vh;background-color:#fff}.view-users-container{max-width:960px;width:100%;background-color:#fff;padding:2rem;border-radius:10px;border:1px solid #e0e0e0;box-shadow:0 6px 16px #0000000d}.filters{display:flex;flex-wrap:wrap;gap:1rem;margin-bottom:1.5rem}.filters select,.filters input{padding:.65rem;border:1px solid #ccc;border-radius:5px;min-width:160px;background-color:#fafafa;font-size:.95rem}.filters select:focus,.filters input:focus{border-color:#0d47a1;outline:none;background-color:#fff}.filters button{background-color:#1565c0;color:#fff;padding:.75rem 1.2rem;border:none;border-radius:6px;cursor:pointer;font-weight:500;transition:background-color .3s ease}.filters button:hover{background-color:#0d47a1}.delete-button{background-color:#c62828}.delete-button:hover{background-color:#b71c1c}.toggle-buttons{display:flex;margin-bottom:1.5rem;border-radius:6px;overflow:hidden;border:1px solid #e0e0e0}.toggle-buttons button{flex:1;padding:.75rem 1rem;background-color:#f5f5f5;color:#666;border:none;cursor:pointer;transition:all .3s ease;font-weight:500}.toggle-buttons button.active{background-color:#1565c0;color:#fff}.toggle-buttons button:hover:not(.active){background-color:#e0e0e0}.multi-select-classes{margin-bottom:1rem}.multi-select-classes>label{display:block;margin-bottom:.5rem;font-weight:600;color:#0d47a1}.checkbox-container{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:.5rem;padding:1rem;background-color:#f8f9fa;border:1px solid #e0e0e0;border-radius:5px;margin-bottom:.5rem}.checkbox-item{display:flex;align-items:center;cursor:pointer;padding:.3rem;font-weight:400!important;color:#333!important;transition:background-color .2s ease}.checkbox-item:hover{background-color:#f0f0f0;border-radius:3px}.checkbox-item input[type=checkbox]{margin-right:.5rem;cursor:pointer;transform:scale(1.1)}.selected-count{font-size:.9rem;color:#666;font-style:italic;margin:0}.class-form{display:flex;flex-direction:column;gap:1rem}.class-form select{padding:.65rem;border:1px solid #ccc;border-radius:5px;background-color:#fafafa;font-size:.95rem}.class-form select:focus{border-color:#0d47a1;outline:none;background-color:#fff}.class-form button{background-color:#1565c0;color:#fff;padding:.75rem 1.2rem;border:none;border-radius:6px;cursor:pointer;font-weight:500;transition:background-color .3s ease}.class-form button:hover{background-color:#0d47a1}.class-form button[type=submit]{background-color:#c62828}.class-form button[type=submit]:hover{background-color:#b71c1c}.form-message.success{color:#2e7d32;background-color:#e8f5e9;padding:.7rem;border-radius:5px;margin-top:1rem;text-align:center}.form-message.error{color:#c62828;background-color:#ffebee;padding:.7rem;border-radius:5px;margin-top:1rem;text-align:center}@media (max-width: 768px){.filters{flex-direction:column}.filters select,.filters input,.filters button{width:100%}.checkbox-container{grid-template-columns:1fr}.toggle-buttons{flex-direction:column}.class-form{gap:.8rem}}@media (max-width: 600px){.view-users-wrapper{position:fixed;top:30px;left:0;width:100vw;height:100vh;overflow-y:scroll;padding:1rem;background-color:#fff;z-index:5}.view-users-container{padding:1.5rem;border:none;box-shadow:none;border-radius:0}.section-header{font-size:1.4rem;text-align:left}.filters{gap:.8rem}.filters select,.filters input,.filters button,.class-form select,.class-form button{font-size:.95rem;padding:.7rem}}.confirm-dialog-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background-color:#0009;display:flex;align-items:center;justify-content:center;z-index:10000;animation:fadeIn .2s ease-out}.confirm-dialog-content{background:#fff;border-radius:12px;width:90%;max-width:450px;box-shadow:0 10px 40px #0003;animation:slideIn .3s ease-out;overflow:hidden}@keyframes slideIn{0%{transform:translateY(-20px);opacity:0}to{transform:translateY(0);opacity:1}}.confirm-dialog-header{padding:1.5rem;border-bottom:2px solid #e5e7eb;background-color:#f9fafb}.confirm-dialog-header h3{margin:0;font-size:1.25rem;font-weight:700;color:#1f2937}.confirm-dialog-body{padding:1.5rem;max-height:400px;overflow-y:auto}.confirm-dialog-body p{margin:0;font-size:1rem;line-height:1.6;color:#4b5563;white-space:pre-line}.confirm-dialog-footer{padding:1rem 1.5rem;border-top:1px solid #e5e7eb;display:flex;justify-content:flex-end;gap:.75rem;background-color:#f9fafb}.confirm-dialog-btn{padding:.625rem 1.5rem;border:none;border-radius:6px;font-size:.95rem;font-weight:600;cursor:pointer;transition:all .2s;min-width:90px}.confirm-btn-cancel{background-color:#e5e7eb;color:#374151}.confirm-btn-cancel:hover{background-color:#d1d5db}.confirm-btn-primary{background-color:#3b82f6;color:#fff}.confirm-btn-primary:hover{background-color:#2563eb}.confirm-btn-danger{background-color:#ef4444;color:#fff}.confirm-btn-danger:hover{background-color:#dc2626}.confirm-btn-warning{background-color:#f59e0b;color:#fff}.confirm-btn-warning:hover{background-color:#d97706}.confirm-btn-success{background-color:#10b981;color:#fff}.confirm-btn-success:hover{background-color:#059669}@media (max-width: 768px){.confirm-dialog-content{width:95%;max-width:none}.confirm-dialog-header{padding:1.25rem}.confirm-dialog-header h3{font-size:1.1rem}.confirm-dialog-body{padding:1.25rem}.confirm-dialog-body p{font-size:.95rem}.confirm-dialog-footer{padding:1rem;flex-wrap:wrap}.confirm-dialog-btn{flex:1;min-width:120px}}@media (max-width: 480px){.confirm-dialog-footer{flex-direction:column-reverse}.confirm-dialog-btn{width:100%}}.alert-dialog-overlay{position:fixed;top:0;left:0;right:0;bottom:0;display:flex;align-items:flex-start;justify-content:center;z-index:10001;pointer-events:none;padding-top:2rem}.alert-dialog-content{background:#fff;border-radius:10px;width:90%;max-width:500px;box-shadow:0 10px 40px #00000026;display:flex;align-items:flex-start;gap:1rem;padding:1.25rem;animation:slideDown .3s ease-out;pointer-events:auto;border-left:5px solid;position:relative}@keyframes slideDown{0%{transform:translateY(-100px);opacity:0}to{transform:translateY(0);opacity:1}}.alert-success{border-left-color:#10b981;background-color:#f0fdf4}.alert-error{border-left-color:#ef4444;background-color:#fef2f2}.alert-warning{border-left-color:#f59e0b;background-color:#fffbeb}.alert-info{border-left-color:#3b82f6;background-color:#eff6ff}.alert-dialog-icon{flex-shrink:0;width:40px;height:40px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:1.5rem;font-weight:700}.alert-success .alert-dialog-icon{background-color:#d1fae5;color:#065f46}.alert-error .alert-dialog-icon{background-color:#fee2e2;color:#991b1b}.alert-warning .alert-dialog-icon{background-color:#fef3c7;color:#92400e}.alert-info .alert-dialog-icon{background-color:#dbeafe;color:#1e40af}.alert-dialog-text{flex:1;min-width:0}.alert-dialog-title{margin:0 0 .25rem;font-size:1rem;font-weight:700;color:#1f2937}.alert-dialog-message{margin:0;font-size:.9rem;line-height:1.5;color:#4b5563;white-space:pre-line}.alert-dialog-close{flex-shrink:0;width:28px;height:28px;border:none;background:transparent;color:#6b7280;font-size:1.75rem;line-height:1;cursor:pointer;border-radius:4px;display:flex;align-items:center;justify-content:center;transition:all .2s;padding:0;position:absolute;top:.75rem;right:.75rem}.alert-dialog-close:hover{background-color:#0000000d;color:#1f2937}@media (max-width: 768px){.alert-dialog-overlay{padding-top:1rem}.alert-dialog-content{width:95%;padding:1rem}.alert-dialog-icon{width:36px;height:36px;font-size:1.25rem}.alert-dialog-title{font-size:.95rem}.alert-dialog-message{font-size:.85rem}}@media (max-width: 480px){.alert-dialog-content{max-width:none}}.create-student-wrapper{display:flex;justify-content:flex-start;align-items:flex-start;padding:0 1rem 1rem;min-height:100vh;background-color:#fff}.create-student-container{max-width:900px;padding:2rem;background-color:#fff;border:1px solid #e0e0e0;border-radius:10px;box-shadow:0 6px 12px #0000000d;width:100%}.create-student-container h3{text-align:center;margin-bottom:1.5rem;color:#0d47a1;font-size:1.6rem;font-weight:600}.create-student-form{display:flex;flex-wrap:wrap;gap:1rem}.create-student-form input,.create-student-form select{flex:1 1 calc(50% - 1rem);padding:.85rem;font-size:1rem;border-radius:6px;border:1px solid #ccc;background-color:#fafafa;transition:border .3s ease}.create-student-form input:focus,.create-student-form select:focus{border-color:#0d47a1;background-color:#fff}.create-student-form .full-width{flex:1 1 100%}.create-student-form button[type=submit]{padding:.9rem;font-size:1rem;background-color:#1565c0;color:#fff;font-weight:500;border:none;border-radius:6px;cursor:pointer;transition:background-color .3s ease;flex:1 1 100%}.create-student-form button[type=submit]:hover{background-color:#0d47a1}.photo-upload-section{flex:1 1 100%;margin:1rem 0;padding:1rem;border:2px dashed #ccc;border-radius:8px;background-color:#fafafa}.photo-upload-section label{display:block;margin-bottom:.75rem;color:#555;font-weight:500;font-size:.95rem}.photo-buttons{display:flex;gap:1rem;justify-content:center}.upload-btn,.camera-btn{padding:.75rem 1.5rem;font-size:.95rem;background-color:#1976d2;color:#fff;border:none;border-radius:6px;cursor:pointer;transition:background-color .3s ease}.camera-controls{display:flex;gap:1rem}.capture-btn{padding:.75rem 1.5rem;background-color:#2e7d32;color:#fff;border:none;border-radius:6px;cursor:pointer;font-size:.95rem;transition:background-color .3s ease}.cancel-btn{padding:.75rem 1.5rem;background-color:#d32f2f;color:#fff;border:none;border-radius:6px;cursor:pointer;font-size:.95rem;transition:background-color .3s ease}.photo-preview{display:flex;flex-direction:column;align-items:center;gap:1rem}.preview-image{width:120px;height:150px;border-radius:8px;border:2px solid #1976d2;object-fit:cover}.remove-photo-btn{padding:.6rem 1.2rem;background-color:#d32f2f;color:#fff;border:none;border-radius:6px;cursor:pointer;font-size:.9rem;transition:background-color .3s ease}@media (max-width: 600px){.create-student-wrapper{position:fixed;top:30px;left:0;width:100vw;height:100vh;background-color:#fff;display:flex;justify-content:center;align-items:flex-start;z-index:5}.create-student-container{width:100%;max-width:100%;padding:1.5rem;margin:0;box-shadow:none;border:none}.create-student-container h3{font-size:1.4rem;text-align:left}.create-student-form{flex-direction:column}.create-student-form input,.create-student-form select,.create-student-form button{width:100%;font-size:.95rem;padding:.75rem}.photo-buttons{flex-direction:column}.upload-btn,.camera-btn{width:100%}.camera-video{width:200px;height:250px}.form-message.success,.form-message.error{font-size:.9rem;padding:.6rem}}.create-subject-wrapper{display:flex;justify-content:center;align-items:flex-start;min-height:calc(100vh - 60px);padding:0 1rem 1rem;background-color:#fff}.create-subject-container{max-width:600px;padding:2rem;background-color:#fff;border:1px solid #e0e0e0;border-radius:10px;box-shadow:0 6px 12px #0000000d;color:#1a1a1a;font-family:Segoe UI,Tahoma,Geneva,Verdana,sans-serif}.create-subject-container h3{text-align:center;margin-bottom:1.5rem;color:#0d47a1;font-size:1.6rem;font-weight:600}.create-subject-form{display:flex;flex-direction:column;gap:1rem;color:#1c1c1c}.create-subject-form input,.create-subject-form select{padding:.85rem;font-size:1rem;border-radius:6px;border:1px solid #ccc;background-color:#fafafa;color:#111;transition:border .3s ease}.create-subject-form input:focus,.create-subject-form select:focus{border-color:#0d47a1;background-color:#fff;color:#111}.react-select__control{background-color:#fafafa;border-color:#ccc;font-size:1rem;color:#111}.react-select__control--is-focused{border-color:#0d47a1}.react-select__single-value,.react-select__option{color:#1c1c1c}.react-select__menu{z-index:20}.create-subject-form button{padding:.9rem;font-size:1rem;background-color:#1565c0;color:#fff;font-weight:500;border:none;border-radius:6px;cursor:pointer;transition:background-color .3s ease}.create-subject-form button:hover{background-color:#0d47a1}.created-subjects-list{margin-top:1rem;list-style:none;padding-left:0}.created-subjects-list li{display:flex;justify-content:space-between;align-items:center;color:#1a1a1a;background-color:#f5f5f5;padding:.6rem .8rem;margin-bottom:.4rem;border-radius:5px}.created-subjects-list li span{color:#c62828;font-weight:700;cursor:pointer}@media (max-width: 600px){.create-subject-wrapper{position:fixed;top:30px;left:0;width:100vw;height:100vh;background-color:#fff;display:flex;justify-content:center;align-items:flex-start;z-index:5}.create-subject-container{width:100%;max-width:360px;padding:1.5rem;box-shadow:0 6px 16px #0000000d;border:none}.create-subject-container h3{font-size:1.4rem;margin-bottom:1.2rem;text-align:center}.create-subject-form input,.create-subject-form select,.create-subject-form button{font-size:.95rem;padding:.75rem}.form-message.success,.form-message.error{font-size:.9rem;padding:.6rem}}.create-teacher-wrapper{display:flex;justify-content:center;align-items:flex-start;min-height:calc(100vh - 60px);padding:0 1rem 1rem;background-color:#fff}.create-teacher-container{max-width:520px;width:100%;margin:0 auto;padding:2.5rem;background-color:#fff;border-radius:10px;box-shadow:0 8px 20px #0d47a11a;border:1px solid #e0e0e0}.create-teacher-container h3{text-align:center;margin-bottom:2rem;color:#0d47a1;font-size:1.8rem;font-weight:600}.create-teacher-form{display:flex;flex-direction:column;gap:1.2rem}.create-teacher-form input{padding:.85rem;font-size:1rem;border-radius:6px;border:1px solid #ccc;background-color:#fafafa;transition:border .3s ease}.create-teacher-form input:focus{border-color:#0d47a1;background-color:#fff}.create-teacher-form button{padding:.9rem;font-size:1rem;background-color:#1565c0;color:#fff;font-weight:500;border:none;border-radius:6px;cursor:pointer;transition:background-color .3s ease}.create-teacher-form button:hover{background-color:#0d47a1}.form-message.success{color:#2e7d32;background-color:#e8f5e9;padding:.7rem;border-radius:5px;text-align:center}.form-message.error{color:#c62828;background-color:#ffebee;padding:.7rem;border-radius:5px;text-align:center}@media (max-width: 600px){.create-teacher-wrapper{position:fixed;top:0;left:0;width:100vw;height:100vh;background-color:#fff;display:flex;justify-content:center;align-items:center;z-index:5}.create-teacher-container{max-width:360px;padding:1.5rem}.create-teacher-container h3{font-size:1.5rem}.create-teacher-form input,.create-teacher-form button{font-size:.95rem;padding:.75rem}.form-message.success,.form-message.error{font-size:.9rem;padding:.6rem}}.create-parent-wrapper{display:flex;justify-content:center;align-items:flex-start;padding:0 2rem 2rem;min-height:100vh;background-color:#fff}.create-parent-container{width:100%;max-width:600px;padding:2rem;background-color:#fff;border-radius:10px;border:1px solid #e0e0e0;box-shadow:0 6px 16px #0000000d}.create-parent-container h2{text-align:center;color:#0d47a1;font-size:1.6rem;margin-bottom:1.5rem;border-bottom:1px solid #e0e0e0;padding-bottom:.5rem}.create-parent-form{display:flex;flex-direction:column;gap:1rem}.create-parent-form input{padding:.75rem 1rem;font-size:1rem;border:1px solid #ccc;border-radius:6px;background-color:#fafafa}.create-parent-form input:focus{outline:none;border-color:#0d47a1;background-color:#fff}.create-parent-form button{background-color:#1565c0;color:#fff;padding:.75rem;border:none;border-radius:6px;cursor:pointer;font-size:1rem;font-weight:500;transition:background-color .3s ease}.create-parent-form button:hover{background-color:#0d47a1}.form-message{margin-top:1rem;text-align:center;font-weight:500;color:#1565c0}.react-select__control{border:1px solid #ccc;border-radius:6px;background-color:#fafafa;padding:2px;font-size:1rem}.react-select__control--is-focused{border-color:#0d47a1;background-color:#fff;box-shadow:none}.react-select__option{background-color:#fff;color:#333;font-size:.95rem}.react-select__option--is-selected{background-color:#0d47a1;color:#fff}.react-select__option--is-focused{background-color:#e3f2fd;color:#0d47a1}@media (max-width: 600px){.create-parent-wrapper{position:fixed;top:48px;left:0;width:100vw;height:100vh;overflow-y:scroll;padding:1rem;background-color:#fff;z-index:5}.create-parent-container{padding:1.5rem;border:none;box-shadow:none;border-radius:0}.create-parent-container h2{font-size:1.4rem;text-align:left}.create-parent-form input,.create-parent-form button{font-size:.95rem;padding:.7rem}}.view-subjects-page-wrapper{display:flex;justify-content:center;align-items:flex-start;padding:0 2rem 2rem;min-height:100vh;background-color:#fff}.view-subjects-page-container{max-width:960px;width:100%;background-color:#fff;padding:2rem;border-radius:10px;border:1px solid #e0e0e0;box-shadow:0 6px 16px #0000000d}.view-subjects-page-container .section-header{margin-bottom:1.5rem;font-size:1.6rem;font-weight:600;color:#0d47a1;text-align:center;border-bottom:1px solid #e0e0e0;padding-bottom:.5rem}.view-subjects-page-container .filter-section{display:flex;flex-wrap:wrap;gap:1rem;margin-bottom:1.5rem}.view-subjects-page-container .filter-section select,.view-subjects-page-container .filter-section button,.view-subjects-page-container .filter-section .react-select__control{padding:.65rem;border:1px solid #ccc;border-radius:5px;min-width:160px;background-color:#fafafa;font-size:.95rem;color:#333}.view-subjects-page-container .filter-section select:focus,.view-subjects-page-container .filter-section button:focus,.view-subjects-page-container .filter-section .react-select__control--is-focused{border-color:#0d47a1;outline:none;background-color:#fff;box-shadow:0 0 0 1px #0d47a1}.view-subjects-page-container .filter-section button{background-color:#1565c0;color:#fff;font-weight:500;transition:background-color .3s ease;cursor:pointer}.view-subjects-page-container .filter-section button:hover{background-color:#0d47a1}.view-subjects-page-container .class-list{display:flex;flex-direction:column;gap:1rem}.view-subjects-page-container .class-card{background:#f5f5f5;padding:1rem;border-radius:6px;cursor:pointer;box-shadow:0 2px 6px #0000001a}.view-subjects-page-container .class-card h4{margin:0;font-size:1.2rem;color:#0d47a1}.view-subjects-modal-overlay{position:fixed;top:0;left:0;width:100vw;height:100vh;background:#0000004d;display:flex;justify-content:center;align-items:center;z-index:999}.view-subjects-modal{background:#fff;padding:2rem;width:500px;max-width:95%;border-radius:8px;position:relative}.view-subjects-modal .subject-close-button{position:absolute;top:10px;right:10px;font-size:1.6rem;background:none;border:none;color:#444;cursor:pointer;z-index:1000}.view-subjects-modal .modal-subject-list{list-style:none;padding:0;margin-top:1rem}.view-subjects-modal .modal-subject-list li{display:flex;align-items:center;gap:.6rem;margin-bottom:.8rem}.view-subjects-modal .modal-subject-list input,.view-subjects-modal .modal-subject-list select{padding:.4rem;font-size:.95rem}.view-subjects-modal button{border:none;padding:.4rem .7rem;border-radius:4px;cursor:pointer;font-size:.85rem;transition:background-color .3s ease;margin-right:.3rem}.view-subjects-modal .modal-subject-list button,.view-subjects-modal button[onclick*=Delete],.view-subjects-modal button[onclick*=delete]{background-color:#d32f2f!important;color:#fff!important}.view-subjects-modal .modal-subject-list button:hover,.view-subjects-modal button[onclick*=Delete]:hover,.view-subjects-modal button[onclick*=delete]:hover{background-color:#c62828!important}.view-subjects-modal button[onclick*=Edit],.view-subjects-modal button[onclick*=edit],.view-subjects-modal button[onclick*=Update],.view-subjects-modal button[onclick*=update],.view-subjects-modal .edit-btn,.view-subjects-modal .update-btn{background-color:#1565c0!important;color:#fff!important}.view-subjects-modal button[onclick*=Edit]:hover,.view-subjects-modal button[onclick*=edit]:hover,.view-subjects-modal button[onclick*=Update]:hover,.view-subjects-modal button[onclick*=update]:hover,.view-subjects-modal .edit-btn:hover,.view-subjects-modal .update-btn:hover{background-color:#0d47a1!important}.view-subjects-page-container .filter-section .react-select__option,.view-subjects-page-container .filter-section .react-select__single-value{color:#222!important}.view-subjects-page-container .filter-section .react-select__placeholder{color:#444!important}@media (max-width: 768px){.view-subjects-page-container .filter-section{flex-direction:column}.view-subjects-page-container .filter-section select,.view-subjects-page-container .filter-section button,.view-subjects-page-container .filter-section .react-select__control{width:100%}}@media (max-width: 600px){.view-subjects-page-wrapper{position:fixed;top:30px;left:0;width:100vw;height:100vh;overflow-y:scroll;padding:1rem;background-color:#fff;z-index:5}.view-subjects-page-container{padding:1.5rem;border:none;box-shadow:none;border-radius:0}.view-subjects-page-container .section-header{font-size:1.4rem;text-align:left}.view-subjects-page-container .filter-section{gap:.8rem}.view-subjects-page-container .filter-section select,.view-subjects-page-container .filter-section button,.view-subjects-page-container .filter-section .react-select__control{font-size:.95rem;padding:.7rem}}.subject-modal-overlay{position:fixed;top:0;left:0;width:100vw;height:100vh;background-color:#0009;display:flex;align-items:center;justify-content:center;z-index:1000}.subject-modal{background-color:#fff;border-radius:10px;width:92%;max-width:520px;height:90vh;padding:2rem 1.5rem;box-shadow:0 8px 20px #0d47a11a;border:1px solid #e0e0e0;position:relative;display:flex;flex-direction:column;overflow:hidden}.subject-modal h3{text-align:center;color:#0d47a1;font-size:1.5rem;margin-bottom:1rem}.subject-modal ul{list-style:none;padding:0;margin:0;overflow-y:auto;flex-grow:1}.subject-modal li{background-color:#f9f9f9;padding:1rem;border-radius:6px;margin-bottom:1rem;box-shadow:0 2px 4px #0000000d}.subject-info{display:flex;flex-direction:column;gap:.5rem;color:#333}.edit-form input,.edit-form select{width:100%;padding:.75rem;font-size:1rem;border:1px solid #ccc;border-radius:6px;background-color:#fafafa}.edit-form input:focus,.edit-form select:focus{outline:none;border-color:#1565c0;background-color:#fff}.subject-modal-actions{display:flex;justify-content:flex-end;gap:.6rem;margin-top:.7rem}.subject-modal-actions button{padding:.55rem 1rem;font-size:.95rem;border:none;border-radius:5px;cursor:pointer;transition:.3s;font-weight:500}.subject-modal-actions button:hover{opacity:.9;transform:translateY(-1px)}.subject-modal-actions .save-btn{background-color:#1565c0;color:#fff}.subject-modal-actions .save-btn:hover{background-color:#0d47a1}.subject-modal-actions .cancel-btn{background-color:#e0e0e0;color:#333}.subject-modal-actions .cancel-btn:hover{background-color:#d0d0d0}.subject-info .subject-modal-actions button:first-child{background-color:#1565c0!important;color:#fff!important}.subject-info .subject-modal-actions button:first-child:hover{background-color:#0d47a1!important}.subject-info .subject-modal-actions button:nth-child(2){background-color:#e53935!important;color:#fff!important}.subject-info .subject-modal-actions button:nth-child(2):hover{background-color:#c62828!important}.close-modal-btn{position:absolute;top:10px;right:10px;font-size:1.5rem;background:none;border:none;color:red;font-weight:700;cursor:pointer;z-index:1010}.close-modal-btn:hover{color:#c80000}.activity-log-container{width:100%;max-width:100%;padding:24px;background-color:#fff;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,sans-serif}@media (max-width: 768px){.activity-log-container{padding:16px}}.activity-log-loading-container{display:flex;flex-direction:column;align-items:center;justify-content:center;height:400px}.activity-log-spinner{width:32px;height:32px;border:2px solid #e5e7eb;border-top:2px solid #3b82f6;border-radius:50%;animation:spin 1s linear infinite;margin-bottom:16px}.activity-log-error-container{text-align:center;padding:48px 24px;background-color:#fef2f2;border:1px solid #fecaca;border-radius:12px;color:#dc2626}.activity-log-error-container h3{margin:0 0 12px;font-size:18px;font-weight:600}.activity-log-error-container p{margin:0 0 16px;color:#7f1d1d}.activity-log-retry-btn{background-color:#dc2626;color:#fff;border:none;padding:8px 16px;border-radius:6px;font-size:14px;font-weight:500;cursor:pointer;transition:background-color .2s}.activity-log-retry-btn:hover{background-color:#b91c1c}.activity-log-header-section{display:flex;align-items:center;justify-content:space-between;margin-bottom:24px;flex-wrap:wrap;gap:16px}.notifications-header-left{display:flex;align-items:center;gap:12px}.notifications-main-title{font-size:28px;font-weight:700;color:#1e3a8a;margin:0}.notifications-unread-badge{background-color:#dc2626;color:#fff;font-size:12px;font-weight:600;padding:4px 8px;border-radius:12px;white-space:nowrap}.notifications-mark-all-btn{background-color:#3b82f6;color:#fff;border:none;padding:12px 20px;border-radius:8px;font-size:14px;font-weight:500;cursor:pointer;transition:background-color .2s}.notifications-mark-all-btn:hover{background-color:#2563eb}.summary-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:16px;margin-bottom:24px}.stat-card{background-color:#f9fafb;padding:20px;border-radius:12px;text-align:center;border:1px solid #e5e7eb}.stat-card.unread{background-color:#fef2f2;border-color:#fecaca}.stat-number{font-size:32px;font-weight:700;color:#111827;margin-bottom:4px}.stat-card.unread .stat-number{color:#dc2626}.stat-label{font-size:14px;color:#6b7280;font-weight:500}.filters{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:24px}.filter-btn{padding:8px 16px;border-radius:8px;font-size:14px;font-weight:500;border:1px solid #d1d5db;background-color:#f9fafb;color:#374151;cursor:pointer;transition:all .2s}.filter-btn:hover{background-color:#e5e7eb}.filter-btn.active{background-color:#3b82f6;color:#fff;border-color:#3b82f6}.notifications-list{display:flex;flex-direction:column;gap:16px}.notification-card{border:1px solid #e5e7eb;border-radius:12px;padding:20px;background-color:#fff;transition:all .2s;cursor:pointer;max-width:100%;overflow:hidden}.notification-card:hover{box-shadow:0 8px 25px -5px #0000001a;transform:translateY(-2px)}.notification-card.unread{border-color:#3b82f6;background-color:#eff6ff}.notification-content{display:flex;align-items:flex-start;gap:16px}.notification-icon{font-size:20px;margin-top:4px;flex-shrink:0}.notification-body{flex:1;min-width:0;max-width:100%;overflow-wrap:break-word;word-wrap:break-word}.notification-header{display:flex;align-items:center;gap:8px;margin-bottom:8px}.content-type{padding:4px 8px;border-radius:6px;font-size:12px;font-weight:600;text-transform:capitalize}.content-type-assignment{background-color:#dbeafe;color:#1e40af}.content-type-note{background-color:#d1fae5;color:#065f46}.content-type-announcement{background-color:#fed7aa;color:#c2410c}.content-type-default{background-color:#f3f4f6;color:#374151}.content-type-alert{background-color:#fef3c7;color:#92400e}.content-type-success{background-color:#d1fae5;color:#065f46}.priority-badge{font-size:10px;font-weight:600;padding:2px 8px;border-radius:10px;text-transform:uppercase}.priority-high{background-color:#fee2e2;color:#dc2626}.priority-medium{background-color:#fef3c7;color:#d97706}.priority-low{background-color:#dbeafe;color:#2563eb}.direct-notification{border-left:4px solid #f59e0b}.direct-notification.unread{border-left-color:#dc2626}.new-badge{background-color:#dc2626;color:#fff;font-size:10px;font-weight:700;padding:2px 6px;border-radius:4px}.notification-title{font-size:18px;font-weight:600;color:#111827;margin:0 0 8px;line-height:1.3;overflow-wrap:break-word;word-wrap:break-word;max-width:100%}.notification-action{font-size:14px;color:#6b7280;margin:0 0 12px;line-height:1.5;overflow-wrap:break-word;word-wrap:break-word;max-width:100%}.notification-meta{display:flex;flex-wrap:wrap;gap:16px;font-size:12px;color:#9ca3af}.meta-item{display:flex;align-items:center;gap:4px}.mark-read-btn{background:none;border:none;color:#6b7280;font-size:20px;cursor:pointer;padding:4px;border-radius:4px;transition:all .2s;flex-shrink:0}.mark-read-btn:hover{background-color:#10b981;color:#fff}.empty-state{text-align:center;padding:64px 24px;color:#6b7280}.empty-icon{font-size:48px;margin-bottom:16px;opacity:.5}.empty-state h3{font-size:18px;font-weight:600;color:#111827;margin:0 0 8px}.empty-state p{font-size:14px;margin:0}.load-more-container{text-align:center;margin-top:32px}.load-more-btn{background-color:#f3f4f6;color:#374151;border:none;padding:12px 24px;border-radius:8px;font-size:14px;font-weight:500;cursor:pointer;transition:background-color .2s}.load-more-btn:hover{background-color:#e5e7eb}.notification-modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background-color:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000;padding:20px}.notification-modal{background:#fff;border-radius:12px;width:100%;max-width:700px;max-height:90vh;overflow-y:auto;box-shadow:0 20px 25px -5px #0000001a,0 10px 10px -5px #0000000a}.notification-modal-header{padding:24px 24px 0;border-bottom:1px solid #e5e7eb;display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:24px}.notification-modal-title{font-size:24px;font-weight:600;color:#111827;margin:0;flex:1;line-height:1.3}.notification-modal-close{background:none;border:none;font-size:24px;color:#6b7280;cursor:pointer;padding:0;margin-left:16px;width:32px;height:32px;display:flex;align-items:center;justify-content:center;border-radius:6px;transition:all .2s}.notification-modal-close:hover{background-color:#f3f4f6;color:#374151}.notification-modal-content{padding:0 24px 24px}.notification-modal-loading{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:60px 24px}.notification-modal-info{margin-bottom:24px}.notification-modal-meta{display:flex;align-items:center;gap:12px;margin-bottom:16px}.notification-modal-time{color:#6b7280;font-size:14px}.notification-modal-details{background-color:#f9fafb;padding:16px;border-radius:8px;border:1px solid #e5e7eb}.notification-modal-details p{margin:0 0 8px;font-size:14px;color:#374151}.notification-modal-details p:last-child{margin-bottom:0}.notification-modal-body h3{font-size:18px;font-weight:600;color:#111827;margin:0 0 16px}.content-description{background-color:#f8fafc;padding:16px;border-radius:8px;border-left:4px solid #3b82f6;margin-bottom:16px}.content-description p{margin:0;color:#475569;line-height:1.6}.content-due-date,.content-max-score{background-color:#fef3c7;padding:12px 16px;border-radius:6px;margin-bottom:16px;border-left:4px solid #f59e0b}.content-due-date p,.content-max-score p{margin:0;color:#92400e;font-size:14px}.content-files{border:1px solid #e5e7eb;border-radius:8px;padding:16px;background-color:#fafafa}.content-files h4{font-size:16px;font-weight:600;color:#111827;margin:0 0 12px}.file-list{list-style:none;padding:0;margin:0}.file-item{display:flex;align-items:center;justify-content:space-between;padding:8px 0;border-bottom:1px solid #e5e7eb}.file-item:last-child{border-bottom:none}.file-name{font-weight:500;color:#374151;flex:1}.file-size{color:#6b7280;font-size:12px;margin-left:8px}.file-download{color:#3b82f6;text-decoration:none;font-size:14px;font-weight:500;margin-left:12px;padding:4px 8px;border-radius:4px;transition:all .2s}.file-download:hover{background-color:#eff6ff;color:#2563eb}.direct-notification-message{white-space:pre-line;line-height:1.6;color:#374151;margin-bottom:16px;font-size:14px}.incomplete-subjects-detail{background-color:#fffbeb;border:1px solid #fde68a;border-radius:8px;padding:16px}.incomplete-subjects-detail h4{margin:0 0 12px;font-size:14px;font-weight:600;color:#92400e}.incomplete-subjects-detail ul{margin:0;padding:0;list-style:none}.incomplete-subjects-detail li{display:flex;justify-content:space-between;align-items:center;padding:8px 0;border-bottom:1px solid #fef3c7}.incomplete-subjects-detail li:last-child{border-bottom:none}.incomplete-subjects-detail li strong{font-size:14px;color:#1f2937}.missing-scores{font-size:12px;color:#d97706;background-color:#fef3c7;padding:4px 8px;border-radius:6px}.notification-modal-actions{padding:16px 0 0;border-top:1px solid #e5e7eb;margin-top:16px}.mark-read-modal-btn{padding:10px 20px;background-color:#3b82f6;color:#fff;border:none;border-radius:8px;font-weight:600;cursor:pointer;transition:all .2s}.mark-read-modal-btn:hover{background-color:#2563eb}@media (max-width: 768px){.notifications-main-wrapper{padding:0 16px 16px;margin-top:0}.notifications-main-title{font-size:24px;color:#1e3a8a!important}.notifications-header-section{flex-direction:column;align-items:stretch}.notifications-header-left{justify-content:center}.summary-stats{grid-template-columns:repeat(auto-fit,minmax(150px,1fr))}.stat-number{font-size:24px}.notification-content{gap:12px}.notification-meta{flex-direction:column;gap:8px}.filters{justify-content:center}.notification-modal-overlay{padding:10px}.notification-modal{max-height:95vh}.notification-modal-header{padding:16px 16px 0;margin-bottom:16px}.notification-modal-title{font-size:20px}.notification-modal-content{padding:0 16px 16px}.notification-modal-details,.content-description,.content-files{padding:12px}.file-item{flex-direction:column;align-items:flex-start;gap:4px}.file-size,.file-download{margin-left:0}}@media (max-width: 480px){.notifications-main-wrapper{padding:12px}.notification-card{padding:16px}.notification-title{font-size:16px}.summary-stats{grid-template-columns:1fr 1fr}}.edit-user-modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#00000080;display:flex;justify-content:center;align-items:center;z-index:999;padding:1rem}.edit-user-modal-container{background:#fff!important;background-color:#fff!important;padding:2rem;border-radius:8px;width:100%;max-width:450px;max-height:90vh;display:flex;flex-direction:column;overflow-y:auto;box-shadow:0 0 20px #0000004d}.edit-user-modal-container h3{color:#333;margin-bottom:1.5rem}.edit-user-form{display:flex;flex-direction:column}.edit-user-form input,.edit-user-form select{width:100%;margin-bottom:1rem;padding:.75rem;border-radius:4px;border:1px solid #ccc;font-size:1rem;color:#222}.edit-user-form .react-select__control{background-color:#fff;border:1px solid #ccc;font-size:1rem;color:#c42d2d}.edit-user-form .react-select__single-value{color:#222!important}.edit-user-form .react-select__option{color:#222;font-size:1rem}.edit-user-form .react-select__placeholder{color:#666;font-size:1rem}.edit-user-form .react-select__option--is-focused{background-color:#f0f0f0}.button-group{display:flex;justify-content:space-between;gap:1rem;margin-top:2rem}.edit-user-modal-container button.edit_user_save-btn,button.edit_user_save-btn{background:#4fc3f7!important;background-color:#4fc3f7!important;color:#fff!important;padding:.75rem 1.5rem;border:none;border-radius:4px;cursor:pointer;flex:1;font-weight:600;font-size:1rem;transition:background-color .3s ease}.edit-user-modal-container button.edit_user_save-btn:hover,button.edit_user_save-btn:hover{background:#29b6f6!important;background-color:#29b6f6!important}.edit-user-modal-container button.edit_user_close-btn,button.edit_user_close-btn{background:#ef5350!important;background-color:#ef5350!important;color:#fff!important;padding:.75rem 1.5rem;border:none;border-radius:4px;cursor:pointer;flex:1;font-weight:600;font-size:1rem;transition:background-color .3s ease}.edit-user-modal-container button.edit_user_close-btn:hover,button.edit_user_close-btn:hover{background:#e53935!important;background-color:#e53935!important}.edit-photo-upload-section{width:100%;margin:1rem 0;padding:1rem;border:2px dashed #ccc;border-radius:8px;background-color:#fafafa}.edit-photo-upload-section label{display:block;margin-bottom:.75rem;color:#555;font-weight:500;font-size:.95rem}.photo-label{margin:.5rem 0;color:#666;font-size:.9rem;font-weight:500}.current-photo{display:flex;flex-direction:column;align-items:center;margin-bottom:1rem}.current-photo-img{width:120px;height:150px;border-radius:8px;border:2px solid #1976d2;object-fit:cover;margin-top:.5rem}.photo-buttons{display:flex;gap:.75rem;justify-content:center;flex-wrap:wrap}.upload-btn,.camera-btn{padding:.65rem 1.2rem;font-size:.9rem;background-color:#1976d2;color:#fff;border:none;border-radius:6px;cursor:pointer;transition:background-color .3s ease}.upload-btn:hover,.camera-btn:hover{background-color:#1565c0}.camera-container{display:flex;flex-direction:column;align-items:center;gap:1rem}.camera-video{width:240px;height:300px;border-radius:8px;border:2px solid #1976d2;background-color:#000;object-fit:cover}.camera-controls{display:flex;gap:.75rem}.capture-btn{padding:.65rem 1.2rem;background-color:#2e7d32;color:#fff;border:none;border-radius:6px;cursor:pointer;font-size:.9rem;transition:background-color .3s ease}.capture-btn:hover{background-color:#1b5e20}.cancel-btn{padding:.65rem 1.2rem;background-color:#d32f2f;color:#fff;border:none;border-radius:6px;cursor:pointer;font-size:.9rem;transition:background-color .3s ease}.cancel-btn:hover{background-color:#b71c1c}.photo-preview{display:flex;flex-direction:column;align-items:center;gap:.75rem}.preview-image{width:120px;height:150px;border-radius:8px;border:2px solid #1976d2;object-fit:cover;margin-top:.5rem}.remove-photo-btn{padding:.5rem 1rem;background-color:#d32f2f;color:#fff;border:none;border-radius:6px;cursor:pointer;font-size:.85rem;transition:background-color .3s ease}.remove-photo-btn:hover{background-color:#b71c1c}.photo-error-message{color:#d32f2f;font-size:.85rem;margin-top:.5rem;text-align:center}@media (max-width: 480px){.edit-user-modal-container{width:100%;max-width:90%;padding:1.5rem}.button-group{flex-direction:column}.photo-buttons{flex-direction:column;width:100%}.upload-btn,.camera-btn{width:100%}.camera-video{width:200px;height:250px}}.modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#00000080;display:flex;justify-content:center;align-items:center;z-index:999;padding:1rem}.modal-container{background:#fff!important;background-color:#fff!important;padding:2rem;border-radius:8px;width:100%;max-width:450px;max-height:90vh;display:flex;flex-direction:column;overflow-y:auto;box-shadow:0 0 20px #0000004d}.modal-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1.5rem}.modal-header h2{margin:0;color:#333}.close-button{background:#4fc3f7!important;background-color:#4fc3f7!important;color:#fff!important;border:none;font-size:1.5rem;width:32px;height:32px;border-radius:50%;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background-color .3s ease}.close-button:hover{background:#29b6f6!important;background-color:#29b6f6!important}.modal-container button.save-button,button.save-button{background:#4fc3f7!important;background-color:#4fc3f7!important;color:#fff!important;padding:.75rem 1.5rem;border:none;border-radius:4px;cursor:pointer;font-weight:600;font-size:1rem;transition:background-color .3s ease}.modal-container button.save-button:hover,button.save-button:hover{background:#29b6f6!important;background-color:#29b6f6!important}.modal-container button.cancel-button,button.cancel-button{background:#ef5350!important;background-color:#ef5350!important;color:#fff!important;padding:.75rem 1.5rem;border:none;border-radius:4px;cursor:pointer;font-weight:600;font-size:1rem;transition:background-color .3s ease}.modal-container button.cancel-button:hover,button.cancel-button:hover{background:#e53935!important;background-color:#e53935!important}.view-users-wrapper{display:flex;justify-content:center;align-items:flex-start;padding:0 2rem 2rem;min-height:100vh;background-color:#f4f6f8;overflow-x:hidden}.view-users-container{max-width:960px;width:100%;background-color:#fff;padding:2rem;border-radius:10px;border:1px solid #e0e0e0;box-shadow:0 6px 16px #00000014;overflow-x:auto}.view-users-container .section-header{margin-bottom:1.5rem;font-size:1.6rem;font-weight:600;color:#0d47a1;text-align:center;border-bottom:1px solid #e0e0e0;padding-bottom:.5rem}.view-users-container .filters{display:flex;flex-wrap:wrap;gap:1rem;margin-bottom:1.5rem}.view-users-container .filters select,.view-users-container .filters input,.view-users-container .filters button{padding:.65rem;border:1px solid #ccc;border-radius:5px;min-width:160px;background-color:#f9f9f9;font-size:.95rem}.view-users-container .filters select:focus,.view-users-container .filters input:focus,.view-users-container .filters button:focus{border-color:#0d47a1;outline:none;background-color:#fff}.view-users-container .filters button{background-color:#1565c0;color:#fff;font-weight:500;transition:background-color .3s ease;cursor:pointer}.view-users-container .filters button:hover{background-color:#0d47a1}.view-users-container .user-table{margin-top:1rem;overflow-x:auto;background-color:#fff;border:1px solid #ddd;border-radius:8px;scrollbar-width:none;-ms-overflow-style:none}.view-users-container .user-table::-webkit-scrollbar{display:none}.view-users-container .user-table table{width:100%;border-collapse:collapse;min-width:1100px}.view-users-container .user-table th{background-color:#e3f2fd;color:#0d47a1;font-weight:600;white-space:nowrap;text-align:left;padding:.75rem;border-bottom:1px solid #e0e0e0;z-index:2}.view-users-container .user-table td{padding:.75rem;color:#333;white-space:nowrap;border-bottom:1px solid #e0e0e0}.view-users-container .user-table button{background-color:#1565c0;color:#fff;border:none;padding:.4rem .8rem;margin-right:.5rem;border-radius:4px;cursor:pointer;font-size:.85rem;transition:background-color .3s ease}.view-users-container .user-table button:hover{background-color:#0d47a1}.view-users-container .user-table button.delete-btn{background-color:#d32f2f}.view-users-container .user-table button.delete-btn:hover{background-color:#c62828}.view-users-container .user-table th.sticky,.view-users-container .user-table td.sticky{position:sticky;left:0;background-color:#fff;z-index:3;box-shadow:2px 0 5px #0000000d}.view-users-container .user-table th.sticky-2,.view-users-container .user-table td.sticky-2{position:sticky;left:150px;background-color:#fff;z-index:2;box-shadow:2px 0 5px #0000000a}.view-users-container .user-table tbody tr:hover{background-color:#f1f1f1}.view-users-container .no-match-message{margin-top:1rem;color:#c62828;font-weight:500}.view-users-container .filters .react-select__control{background-color:#fff;border:1px solid #ccc;font-size:1rem;color:#222}.view-users-container .filters .react-select__single-value{color:#222!important}.view-users-container .filters .react-select__option{color:#222;font-size:.95rem}.view-users-container .filters .react-select__placeholder{color:#666;font-size:.95rem}.view-users-container .filters .react-select__option--is-focused{background-color:#f0f0f0}.view-users-container .table-subfilters{border-top:1px solid #e0e0e0;padding-top:1rem;margin-top:1rem}.modal-overlay{position:fixed;top:0;left:0;width:100%;height:100%;background-color:#00000080;display:flex;justify-content:center;align-items:center;z-index:1000}.modal-content{background:#fff;padding:2rem;border-radius:10px;width:90%;max-width:900px;max-height:85vh;overflow-y:auto;box-shadow:0 8px 32px #0003;border:1px solid #e0e0e0;color:#333}.modal-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1.5rem;border-bottom:2px solid #e3f2fd;padding-bottom:1rem}.modal-header h3{color:#0d47a1;font-size:1.4rem;font-weight:600;margin:0}.close-btn{background:#d32f2f;border:none;color:#fff;font-size:18px;font-weight:700;cursor:pointer;padding:.5rem;width:35px;height:35px;border-radius:50%;display:flex;justify-content:center;align-items:center;transition:background-color .3s ease}.close-btn:hover{background-color:#c62828}.student-info{background:#f8f9fa;padding:1.5rem;border-radius:8px;margin-bottom:1.5rem;border-left:4px solid #1565c0}.student-info p{margin:.5rem 0;font-size:.95rem;color:#333}.student-info strong{color:#0d47a1;font-weight:600}.modal-body h4{color:#0d47a1;font-size:1.2rem;font-weight:600;margin-bottom:1rem;border-bottom:1px solid #e0e0e0;padding-bottom:.5rem}.history-table{width:100%;border-collapse:collapse;margin-top:1rem;background:#fff;border:1px solid #ddd;border-radius:8px;overflow:hidden}.history-table th,.history-table td{padding:.75rem 1rem;text-align:left;border-bottom:1px solid #e0e0e0;font-size:.9rem}.history-table th{background:#e3f2fd;color:#0d47a1;font-weight:600;white-space:nowrap}.history-table tbody tr:nth-child(2n){background-color:#fafafa}.current-session{background-color:#e8f5e8!important;border-left:3px solid #28a745}.historical-session{background-color:#f8f8f8!important;border-left:3px solid #6c757d}.status{display:inline-block;padding:.3rem .8rem;border-radius:15px;font-size:.75rem;font-weight:600;text-transform:uppercase;letter-spacing:.5px}.status.active{background:#28a745;color:#fff}.status.inactive{background:#6c757d;color:#fff}@media (max-width: 768px){.view-users-container .filters{flex-direction:column}.view-users-container .filters select,.view-users-container .filters input,.view-users-container .filters button{width:100%}.view-users-wrapper{padding:1rem}.view-users-container{padding:1.5rem;overflow-x:auto}.view-users-container .section-header{font-size:1.4rem;text-align:left}.modal-content{width:95%;max-height:90vh;padding:1.5rem}.modal-header h3{font-size:1.2rem}.student-info{padding:1rem}.history-table{font-size:.8rem}.history-table th,.history-table td{padding:.5rem}}.subjects-list{display:flex;flex-direction:column;gap:8px;max-height:200px;overflow-y:auto;padding:4px 0}.subject-item{font-size:.9em;padding:6px 8px;background-color:#f8f9fa;border-left:3px solid #007bff;border-radius:4px;line-height:1.4}.subject-item strong{color:#333;font-weight:600}.subject-item span{color:#666;font-size:.95em}.user-table td:has(.subjects-list){max-width:300px;padding:12px}.subjects-list::-webkit-scrollbar{width:6px}.subjects-list::-webkit-scrollbar-track{background:#f1f1f1;border-radius:3px}.subjects-list::-webkit-scrollbar-thumb{background:#888;border-radius:3px}.subjects-list::-webkit-scrollbar-thumb:hover{background:#555}.edit-fee-modal-overlay{position:fixed;top:0;left:0;width:100vw;height:100vh;background-color:#00000080;z-index:999;display:flex;justify-content:center;align-items:center;padding:1rem}.edit-fee-modal{background-color:#fff;padding:2rem;border-radius:10px;width:100%;max-width:600px;box-shadow:0 8px 20px #00000026;position:relative}.edit-fee-modal h3{font-size:1.5rem;color:#0d47a1;margin-bottom:1.2rem;text-align:center}.edit-fee-form{display:flex;flex-direction:column;gap:1rem}.edit-fee-form input{padding:.85rem;font-size:1rem;border-radius:6px;border:1px solid #ccc;background-color:#fafafa;transition:border .3s ease}.edit-fee-form input:focus{border-color:#0d47a1;background-color:#fff;outline:none}.edit-fee-form .react-select__control{border-radius:6px;border-color:#ccc;font-size:1rem}.edit-fee-form .react-select__single-value{color:#111}.modal-message{background-color:#e8f5e9;color:#2e7d32;padding:.6rem;border-radius:5px;text-align:center;font-size:.95rem}.fee-student-modal-overlay{position:fixed;top:0;left:0;width:100vw;height:100vh;background-color:#0006;z-index:9999;display:flex;justify-content:center;align-items:center;padding:20px;overflow-y:auto}.fee-student-modal{background-color:#fff;width:95%;max-width:1000px;max-height:90vh;border-radius:10px;box-shadow:0 10px 25px #0003;position:relative;display:flex;flex-direction:column;overflow:hidden}.modal-header{padding:2rem 2rem 1rem;border-bottom:1px solid #e0e0e0;flex-shrink:0}.fee-student-modal h3{font-size:1.5rem;font-weight:600;color:#0d47a1;margin:0 0 1rem;text-align:center}.filter-export-row{display:flex;justify-content:space-between;align-items:flex-end;gap:1rem}.search-filter-container{display:flex;gap:1rem;flex:1;align-items:flex-end}.search-bar{display:flex;flex-direction:column;gap:.5rem;flex:1;max-width:300px}.search-input{padding:.75rem;border:1px solid #ddd;border-radius:6px;font-size:.95rem;transition:all .3s ease;width:100%}.search-input:focus{outline:none;border-color:#1976d2;box-shadow:0 0 0 3px #1976d21a}.status-filter{display:flex;flex-direction:column;gap:.5rem;min-width:200px}.status-filter label{font-weight:500;color:#333;font-size:.9rem}.export-btn{padding:.75rem 1.5rem;background-color:#2e7d32;color:#fff;border:none;border-radius:6px;font-size:.95rem;font-weight:500;cursor:pointer;transition:background-color .3s ease;white-space:nowrap}.export-btn:hover{background-color:#1b5e20}.status-filter .css-26l3qy-menu{z-index:1000!important}.status-filter .css-1pahdxg-control,.status-filter .css-yk16xz-control{z-index:10}.fee-student-modal .css-26l3qy-menu,.fee-student-modal [class*=menu]{z-index:1000!important}.modal-body{flex:1;overflow:hidden;padding:1rem 2rem;min-height:0}.student-fee-table-container{height:100%;max-height:400px;overflow-y:auto;overflow-x:auto;border:1px solid #e0e0e0;border-radius:8px}.student-fee-table{width:100%;border-collapse:collapse;min-width:600px}.student-fee-table th,.student-fee-table td{padding:.75rem;text-align:left;border-bottom:1px solid #ddd;white-space:nowrap}.student-fee-table th{background-color:#e3f2fd;color:#0d47a1;font-weight:600;position:sticky;top:0;z-index:1}.student-fee-table td{color:#333}.student-fee-table tbody tr:hover{background-color:#f5f5f5}.edit-paid-input{width:80px;padding:.4rem;border:1px solid #ccc;border-radius:4px;font-size:.9rem}.modal-footer{padding:1rem 2rem 2rem;border-top:1px solid #e0e0e0;flex-shrink:0}.modal-footer-buttons{display:flex;gap:.5rem;justify-content:flex-start}.feestudent-save-btn{background-color:#1565c0;color:#fff;border:none;padding:.6rem 1.2rem;border-radius:5px;font-size:.95rem;font-weight:500;cursor:pointer;transition:background-color .3s ease}.feestudent-save-btn:hover{background-color:#0d47a1}.feestudent-save-btn:disabled{background-color:#ccc;cursor:not-allowed}.fee_student_close-btn{background-color:#d32f2f;color:#fff;border:none;padding:.6rem 1.2rem;border-radius:5px;font-size:.95rem;font-weight:500;cursor:pointer;transition:background-color .3s ease}.fee_student_close-btn:hover{background-color:#b71c1c}@media (max-width: 768px){.fee-student-modal-overlay{padding:10px}.fee-student-modal{width:100%;max-width:none;max-height:95vh}.modal-header{padding:1.5rem 1rem 1rem}.fee-student-modal h3{font-size:1.2rem;margin-bottom:.5rem}.filter-export-row{flex-direction:column;align-items:stretch;gap:.75rem}.status-filter{width:100%}.export-btn{align-self:flex-start;padding:.6rem 1.2rem}.modal-body{padding:.75rem 1rem}.student-fee-table-container{overflow-x:auto;overflow-y:auto}.student-fee-table th,.student-fee-table td{padding:.5rem;font-size:.85rem}.edit-paid-input{width:70px;padding:.3rem;font-size:.8rem}.modal-footer{padding:1rem}.modal-footer-buttons{flex-direction:column;gap:.5rem}.feestudent-save-btn,.fee_student_close-btn{width:100%;padding:.75rem;font-size:.9rem}}@media (max-width: 768px){.filter-export-row,.search-filter-container{flex-direction:column;align-items:stretch}.search-bar{max-width:100%}.status-filter{min-width:auto}.export-btn{width:100%}}@media (max-width: 480px){.fee-student-modal{max-height:98vh}.modal-header{padding:1rem .75rem .75rem}.modal-body{padding:.5rem .75rem}.modal-footer{padding:.75rem}.student-fee-table th,.student-fee-table td{padding:.4rem;font-size:.8rem}}.generate-receipt-btn{background:linear-gradient(135deg,#1976d2,#42a5f5);color:#fff;border:none;padding:.5rem .75rem;border-radius:6px;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .3s;width:100%}.generate-receipt-btn:hover{transform:translateY(-2px);box-shadow:0 4px 12px #1976d24d}.generate-receipt-btn svg{flex-shrink:0}.generate-receipt-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#0009;display:flex;align-items:center;justify-content:center;z-index:10000;padding:1rem}.generate-receipt-modal{background:#fff;border-radius:12px;width:100%;max-width:900px;max-height:90vh;display:flex;flex-direction:column;box-shadow:0 20px 60px #0000004d}.receipt-modal-header{display:flex;align-items:center;justify-content:space-between;padding:1.5rem;border-bottom:1px solid #e0e0e0}.header-left{display:flex;align-items:center;gap:1rem}.header-left svg{color:#1976d2;flex-shrink:0}.receipt-modal-header h2{margin:0;font-size:1.5rem;color:#1a1a1a}.receipt-modal-header p{margin:.25rem 0 0;color:#666;font-size:.9rem}.close-receipt-btn{background:none;border:none;cursor:pointer;padding:.5rem;color:#666;border-radius:6px;transition:all .2s}.close-receipt-btn:hover{background:#f5f5f5;color:#1a1a1a}.receipt-modal-body{padding:1.5rem;overflow-y:auto;flex:1}.receipt-loading{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:3rem;gap:1rem}.receipt-loading svg.spin{animation:spin 1s linear infinite;color:#1976d2}.receipt-summary{background:#f8f9fa;padding:1.5rem;border-radius:8px;margin-bottom:1.5rem}.receipt-summary h3{margin:0 0 1rem;font-size:1.1rem;color:#1a1a1a}.summary-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:1rem}.summary-item{display:flex;flex-direction:column;gap:.25rem}.summary-label{font-size:.85rem;color:#666;font-weight:500}.summary-value{font-size:1rem;color:#1a1a1a;font-weight:600}.summary-value.paid{color:#2e7d32}.summary-value.outstanding{color:#d32f2f}.summary-value.cleared{color:#2e7d32}.status-badge{display:inline-block;padding:.35rem .75rem;border-radius:20px;font-size:.8rem;font-weight:600;text-transform:uppercase;width:fit-content}.status-badge.unpaid{background:#fce4ec;color:#c2185b}.payment-history-section{margin-bottom:1.5rem}.payment-history-section h3{margin:0 0 1rem;font-size:1.1rem;color:#1a1a1a}.no-history{text-align:center;padding:2rem;color:#999;background:#f8f9fa;border-radius:8px}.history-table-container{overflow-x:auto;border:1px solid #e0e0e0;border-radius:8px}.history-table{width:100%;border-collapse:collapse;font-size:.9rem}.history-table thead{background:#f8f9fa}.history-table th{padding:.75rem;text-align:left;font-weight:600;color:#333;border-bottom:2px solid #e0e0e0}.history-table td{padding:.75rem;border-bottom:1px solid #f0f0f0;color:#555}.history-table tbody tr:hover{background:#f8f9fa}.transaction-type{display:inline-block;padding:.25rem .6rem;border-radius:12px;font-size:.75rem;font-weight:600;text-transform:capitalize}.transaction-type.payment{background:#e8f5e9;color:#2e7d32}.transaction-type.adjustment{background:#fff3e0;color:#f57c00}.transaction-type.refund{background:#fce4ec;color:#c2185b}.history-table .amount{font-weight:600;color:#1a1a1a}.receipt-remarks-section{margin-bottom:1rem}.receipt-remarks-section label{display:block;font-weight:500;color:#333;margin-bottom:.5rem;font-size:.95rem}.remarks-input{width:100%;padding:.75rem;border:1px solid #ddd;border-radius:6px;font-family:inherit;font-size:.95rem;resize:vertical;transition:border-color .2s}.remarks-input:focus{outline:none;border-color:#1976d2;box-shadow:0 0 0 3px #1976d21a}.receipt-modal-footer{display:flex;align-items:center;justify-content:flex-end;gap:1rem;padding:1.5rem;border-top:1px solid #e0e0e0}.cancel-receipt-btn,.generate-send-btn{padding:.75rem 1.5rem;border-radius:6px;font-size:.95rem;font-weight:500;cursor:pointer;transition:all .3s;border:none;display:flex;align-items:center;gap:.5rem}.cancel-receipt-btn{background:#f5f5f5;color:#333}.cancel-receipt-btn:hover{background:#e0e0e0}.generate-send-btn{background:linear-gradient(135deg,#1976d2,#42a5f5);color:#fff}.generate-send-btn:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 4px 12px #1976d24d}.generate-send-btn:disabled{opacity:.6;cursor:not-allowed}.generate-send-btn svg.spin{animation:spin 1s linear infinite}@media (max-width: 768px){.generate-receipt-modal{max-width:100%;max-height:100vh;border-radius:0}.receipt-modal-header{padding:1rem}.receipt-modal-header h2{font-size:1.25rem}.summary-grid{grid-template-columns:1fr}.history-table{font-size:.85rem}.history-table th,.history-table td{padding:.5rem}.receipt-modal-footer{flex-direction:column;gap:.75rem}.cancel-receipt-btn,.generate-send-btn{width:100%;justify-content:center}}.view-fees-wrapper{display:flex;justify-content:center;align-items:flex-start;padding:0 2rem 2rem;min-height:100vh;background-color:#f4f6f8;overflow-x:hidden}.view-fees-table td{padding:.75rem;color:#222;white-space:nowrap;border-bottom:1px solid #e0e0e0}.class-details table{width:100%;border-collapse:collapse;background-color:#fff;margin-top:20px}.class-details th{background-color:#2157bb;color:#fff;padding:12px 15px;text-align:left;font-weight:700;border-bottom:2px solid #ccc}.class-details td{color:#3779b8;padding:10px 15px;border-bottom:1px solid #ddd}.class-details tr:hover{background-color:#f1f1f1}.class-details{border:1px solid #ddd;border-radius:8px;overflow:hidden}.class-details .no-students-message{color:#3670c7;font-size:16px;text-align:center;padding:20px}@media screen and (max-width: 768px){.class-details{margin-top:0 rem;border-radius:4px}.class-details th,.class-details td{padding:8px 10px;font-size:13px}.class-details table{font-size:13px}}.fee-tabs{display:flex;justify-content:center;margin-bottom:1.5rem;gap:1rem}.fee-tabs button{padding:.6rem 1.2rem;font-size:1rem;border:none;border-radius:6px;background-color:#eee;cursor:pointer;transition:background-color .3s ease}.fee-tabs button.active-tab{background-color:#1565c0;color:#fff}.fee-tabs button:hover{background-color:#ccc}.fee-table{width:100%;margin-top:1rem;border-collapse:collapse;font-size:.95rem}.fee-table th,.fee-table td{border:1px solid #ddd;padding:.75rem;text-align:left}.fee-table th{background-color:#f5f5f5;font-weight:600}.edit-btn,.delete-btn{padding:.4rem .8rem;margin-right:.5rem;border:none;border-radius:4px;font-size:.85rem;cursor:pointer}.edit-btn{background-color:#1976d2;color:#fff}.delete-btn{background-color:#d32f2f;color:#fff}.create-fee-wrapper{display:flex;justify-content:center;align-items:flex-start;padding:0 1rem 2rem;min-height:100vh;background-color:#fff}.create-fee-container{max-width:900px;padding:2rem;background-color:#fff;border:1px solid #e0e0e0;border-radius:10px;box-shadow:0 6px 12px #0000000d;width:100%}.create-fee-container h2{text-align:center;margin-bottom:1.5rem;color:#0d47a1;font-size:1.6rem;font-weight:600}.fee-form{display:flex;flex-wrap:wrap;gap:1rem}.fee-form input,.fee-form select{flex:1 1 calc(50% - 1rem);padding:.85rem;font-size:1rem;border-radius:6px;border:1px solid #ccc;background-color:#fafafa;transition:border .3s ease}.fee-form input:focus,.fee-form select:focus{border-color:#0d47a1;background-color:#fff}.class-checkboxes{flex:1 1 100%;display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:.5rem;margin-top:.5rem}.checkbox-item{background:#fff;border:1px solid #ddd;padding:.5rem .7rem;border-radius:6px;display:flex;align-items:center;gap:.5rem;font-size:.95rem}.submit-btn{flex:1 1 100%;padding:.9rem;font-size:1rem;background-color:#1565c0;color:#fff;font-weight:500;border:none;border-radius:6px;cursor:pointer;transition:background-color .3s ease}.submit-btn:hover{background-color:#0d47a1}.fee-message{color:#2e7d32;background-color:#e8f5e9;padding:.7rem;border-radius:5px;text-align:center}@media (max-width: 600px){.create-fee-wrapper{position:fixed;top:30px;left:0;width:100vw;height:100vh;background-color:#fff;display:flex;justify-content:center;align-items:flex-start;z-index:5}.create-fee-container{width:100%;max-width:100%;padding:1.5rem;margin:0;box-shadow:none;border:none}.create-fee-container h2{font-size:1.4rem;text-align:left}.fee-form{flex-direction:column}.fee-form input,.fee-form select,.submit-btn{width:100%;font-size:.95rem;padding:.75rem}.fee-message{font-size:.9rem;padding:.6rem}}.view-fees-wrapper{display:flex;justify-content:center;align-items:flex-start;padding:2rem;min-height:100vh;background-color:#f4f6f8;overflow-x:hidden}.view-fees-container{max-width:960px;width:100%;background-color:#fff;padding:2rem;border-radius:10px;border:1px solid #e0e0e0;box-shadow:0 6px 16px #00000014;overflow-x:auto}.section-header{margin-bottom:1.5rem;font-size:1.6rem;font-weight:600;color:#0d47a1;text-align:center;border-bottom:1px solid #e0e0e0;padding-bottom:.5rem}.view-fees-filters{display:flex;flex-wrap:wrap;gap:1rem;margin-bottom:1.5rem}.view-fees-filters select,.view-fees-filters input,.view-fees-filters button{padding:.65rem;border:1px solid #ccc;border-radius:5px;min-width:160px;background-color:#f9f9f9;font-size:.95rem}.view-fees-filters select:focus,.view-fees-filters input:focus,.view-fees-filters button:focus{border-color:#0d47a1;outline:none;background-color:#fff}.view-fees-filters button{background-color:#1565c0;color:#fff;font-weight:500;transition:background-color .3s ease;cursor:pointer}.view-fees-filters button:hover{background-color:#0d47a1}.view-fees-table{margin-top:1rem;overflow-x:auto;background-color:#fff;border:1px solid #ddd;border-radius:8px;scrollbar-width:none;-ms-overflow-style:none}.view-fees-table::-webkit-scrollbar{display:none}.view-fees-table table{width:100%;border-collapse:collapse;min-width:1100px}.view-fees-table th{background-color:#e3f2fd;color:#0d47a1;font-weight:600;white-space:nowrap;text-align:left;padding:.75rem;border-bottom:1px solid #e0e0e0;z-index:2}.view-fees-table td{padding:.75rem;color:#333;white-space:nowrap;border-bottom:1px solid #e0e0e0}.view-fees-table th.sticky,.view-fees-table td.sticky{position:sticky;left:0;background-color:#fff;z-index:3;box-shadow:2px 0 5px #0000000d}.view-fees-table th.sticky-2,.view-fees-table td.sticky-2{position:sticky;left:150px;background-color:#fff;z-index:2;box-shadow:2px 0 5px #0000000a}.view-fees-table tbody tr:hover{background-color:#f1f1f1}.no-match-message{margin-top:1rem;color:#c62828;font-weight:500}.view-fees-filters .react-select__control{background-color:#fff;border:1px solid #ccc;font-size:1rem;color:#222}.view-fees-filters .react-select__single-value{color:#222!important}.view-fees-filters .react-select__option{color:#222;font-size:.95rem}.view-fees-filters .react-select__placeholder{color:#666;font-size:.95rem}.view-fees-filters .react-select__option--is-focused{background-color:#f0f0f0}.class-details h3{color:#91908f!important;font-size:1.4rem;margin-bottom:.75rem;text-align:left}@media (max-width: 768px){.view-fees-filters{flex-direction:column}.view-fees-filters select,.view-fees-filters input,.view-fees-filters button{width:100%}.view-fees-wrapper{padding:1rem}.view-fees-container{padding:1.5rem;overflow-x:auto}.section-header{font-size:1.4rem;text-align:left}}.dashboard-cards{width:100%;height:100%;display:flex;flex-direction:column}.dashboard-card{background:#fff;border-radius:12px;padding:1.5rem;box-shadow:0 2px 8px #0000001a;border:1px solid #e0e0e0;width:100%;height:100%;box-sizing:border-box;display:flex;flex-direction:column}.card-header{display:flex;align-items:flex-start;gap:1rem;margin-bottom:1rem}.card-header h2{margin:0;font-size:1.1rem;font-weight:600;color:#1f2937}.card-header p{margin:.25rem 0 0;font-size:.85rem;color:#6b7280}.card-filters{display:flex;gap:.5rem;margin-bottom:1rem}.card-filter-select{flex:1;min-width:0}.dashboard-controls{display:flex;gap:.5rem}.dashboard-filter-btn{display:none;width:100%;margin-top:.8rem;padding:.5rem 1rem;background-color:#1565c0;color:#fff;border:none;border-radius:6px;font-size:.95rem;cursor:pointer;text-align:center}.dashboard-close-btn{display:none;width:100%;margin-top:.8rem;padding:.5rem 1rem;background-color:#d32f2f;color:#fff;border:none;border-radius:6px;font-size:.95rem;cursor:pointer;text-align:center}.class-list{list-style:none;margin:0;padding:0}.class-list li{display:flex;align-items:center;padding:.75rem 0;border-bottom:1px solid #eee;cursor:pointer}.class-list li:last-child{border-bottom:none}.class-name{flex:1;color:#222;font-weight:500}.progress-bar{flex:2;background:#f0f0f0;border-radius:4px;height:12px;margin:0 1rem;overflow:hidden;position:relative}.progress-bar .filled{height:100%;transition:width .3s ease;position:absolute;left:0;top:0}.pct-label{width:40px;text-align:right;font-size:.9rem;color:#555}.no-data{text-align:center;color:#999;padding:1rem 0}.modal-footer-buttons{display:flex;gap:.5rem;margin-top:1.5rem;justify-content:flex-start}.dashboard-save-btn{background-color:#388e3c;color:#fff;border:none;padding:.5rem 1rem;border-radius:4px;cursor:pointer}.save-btn:disabled{opacity:.6;cursor:not-allowed}.fee_student_close-btn{background-color:#d32f2f;color:#fff;border:none;padding:.5rem 1rem;border-radius:4px;cursor:pointer}.filters-active .dashboard-filter-btn{display:none}.filters-active .dashboard-close-btn{display:block}@media (max-width: 768px){.dashboard-card{padding:1rem}.card-header{flex-direction:row;gap:1rem;align-items:flex-start}.card-header h2{text-align:left;font-size:1.1rem}.card-filters{flex-wrap:wrap}.card-filter-select{flex:1 1 45%}.dashboard-filter-btn{display:block;width:100%;margin-top:.5rem}.dashboard-close-btn{display:none;width:100%;margin-top:.5rem}.filters-active .dashboard-filter-btn{display:none}.filters-active .dashboard-close-btn{display:block}.dashboard-controls{display:flex;flex-direction:column;gap:.75rem;width:100%}.dashboard-controls>div{display:none;width:100%;min-width:auto}.filters-active .dashboard-controls>div{display:block}.class-list li{flex-direction:column;align-items:stretch;width:100%;gap:.4rem}.progress-bar{width:100%;height:12px;background-color:#f0f0f0;border-radius:4px;overflow:hidden;margin:.25rem 0;position:relative;flex:none}.progress-bar .filled{display:block;height:100%;min-width:4px;position:absolute;left:0;top:0}.pct-label{width:100%;text-align:left;margin-top:.3rem}}.attendance-modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background-color:#00000080;display:flex;justify-content:center;align-items:center;z-index:1000;padding:20px;box-sizing:border-box}.attendance-modal{background:#fff;border-radius:12px;width:100%;max-width:900px;max-height:90vh;display:flex;flex-direction:column;box-shadow:0 10px 30px #0000004d;overflow:hidden}.attendance-modal-header{display:flex;justify-content:space-between;align-items:center;padding:20px 25px;border-bottom:2px solid #e0e0e0;background:linear-gradient(135deg,#1565c0,#0d47a1);color:#fff}.modal-title-section h2{margin:0 0 5px;font-size:1.4rem;font-weight:600}.modal-subtitle{margin:0;font-size:.9rem;opacity:.9}.modal-close-btn{background:#fff3;border:none;cursor:pointer;padding:8px;border-radius:6px;color:#fff;transition:background-color .2s}.modal-close-btn:hover{background:#ffffff4d}.attendance-stats-section{display:flex;gap:20px;padding:20px 25px;background:#f8f9fa;border-bottom:1px solid #e0e0e0}.stat-card{display:flex;align-items:center;gap:12px;flex:1;padding:15px;background:#fff;border-radius:8px;box-shadow:0 2px 4px #0000001a}.stat-card svg{color:#1565c0}.stat-info{display:flex;flex-direction:column}.stat-number{font-size:1.5rem;font-weight:700;color:#333}.stat-label{font-size:.8rem;color:#666;margin-top:2px}.attendance-trend{display:flex;align-items:center;justify-content:center}.attendance-controls{padding:15px 25px;border-bottom:1px solid #e0e0e0;background:#fff}.sort-controls{display:flex;align-items:center;gap:10px}.sort-controls label{font-weight:500;color:#333}.sort-controls select{padding:8px 12px;border:1px solid #ddd;border-radius:4px;font-size:.9rem;background:#fff;cursor:pointer}.students-attendance-list{flex:1;overflow-y:auto;padding:20px 25px}.no-students{text-align:center;padding:40px;color:#666}.students-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:15px}.student-attendance-card{background:#fff;border:1px solid #e0e0e0;border-radius:8px;padding:15px;transition:all .2s;position:relative}.student-attendance-card:hover{box-shadow:0 4px 12px #0000001a;transform:translateY(-2px)}.student-rank{position:absolute;top:10px;right:10px;background:#f0f0f0;color:#666;padding:4px 8px;border-radius:12px;font-size:.75rem;font-weight:600}.student-details{margin-bottom:15px}.student-name{margin:0 0 4px;font-size:1rem;font-weight:600;color:#333}.student-username{margin:0;font-size:.8rem;color:#666}.attendance-metrics{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px}.attendance-percentage{display:flex;flex-direction:column;align-items:flex-start}.percentage-value{font-size:1.4rem;font-weight:700}.attendance-status{font-size:.75rem;font-weight:600;text-transform:uppercase;letter-spacing:.5px}.days-count{display:flex;align-items:baseline;gap:2px;font-size:.9rem}.days-present{font-weight:600;color:#333}.days-separator{color:#999;margin:0 2px}.days-total{color:#666}.days-label{color:#999;font-size:.8rem;margin-left:4px}.attendance-bar{width:100%;height:6px;background:#f0f0f0;border-radius:3px;overflow:hidden}.attendance-progress{height:100%;border-radius:3px;transition:width .3s ease}.modal-footer{padding:20px 25px;background:#f8f9fa;border-top:1px solid #e0e0e0;display:flex;justify-content:space-between;align-items:center}.attendance-legend{display:flex;gap:20px;flex-wrap:wrap}.legend-item{display:flex;align-items:center;gap:6px;font-size:.8rem;color:#666}.legend-color{width:12px;height:12px;border-radius:2px}.legend-color.excellent{background-color:#388e3c}.legend-color.good{background-color:#fbc02d}.legend-color.fair{background-color:#f9a825}.legend-color.poor{background-color:#d32f2f}.close-modal-btn{padding:10px 20px;background:#1565c0;color:#fff;border:none;border-radius:6px;font-weight:500;cursor:pointer;transition:background-color .2s}.close-modal-btn:hover{background:#0d47a1}@media (max-width: 768px){.attendance-modal-overlay{padding:10px}.attendance-modal{max-height:95vh}.attendance-modal-header{padding:15px 20px}.modal-title-section h2{font-size:1.2rem}.attendance-stats-section{flex-direction:column;gap:10px;padding:15px 20px}.stat-card{padding:12px}.stat-number{font-size:1.3rem}.attendance-controls{padding:12px 20px}.students-attendance-list{padding:15px 20px}.students-grid{grid-template-columns:1fr;gap:12px}.student-attendance-card{padding:12px}.modal-footer{padding:15px 20px;flex-direction:column;gap:15px;align-items:center}.attendance-legend{justify-content:center;gap:15px}}@media (max-width: 480px){.attendance-modal-header{flex-direction:column;align-items:flex-start;gap:10px}.modal-close-btn{align-self:flex-end}.attendance-stats-section,.students-attendance-list,.modal-footer{padding:10px 15px}.attendance-legend{gap:10px}.legend-item{font-size:.75rem}}.attendance-dashboard-wrapper{width:100%;height:100%;display:flex;flex-direction:column}.attendance-card-header{display:flex;align-items:flex-start;gap:1rem;margin-bottom:1rem}.attendance-card-header h2{margin:0;font-size:1.1rem;font-weight:600;color:#1f2937}.attendance-card-header p{margin:.25rem 0 0;font-size:.85rem;color:#6b7280}.attendance-filters{display:flex;gap:.5rem;margin-bottom:1rem}.attendance-filter-select{flex:1;min-width:0}.attendance-dashboard-controls{display:flex;gap:.5rem}.attendance-dashboard-filter-btn{display:none;width:100%;margin-top:.8rem;padding:.5rem 1rem;background-color:#1565c0;color:#fff;border:none;border-radius:6px;font-size:.95rem;cursor:pointer;text-align:center}.attendance-dashboard-close-btn{display:none;width:100%;margin-top:.8rem;padding:.5rem 1rem;background-color:#d32f2f;color:#fff;border:none;border-radius:6px;font-size:.95rem;cursor:pointer;text-align:center}.attendance-class-list{list-style:none;margin:0;padding:0}.attendance-class-list li{display:flex;align-items:center;padding:.75rem 0;border-bottom:1px solid #eee;cursor:pointer}.attendance-class-list li:last-child{border-bottom:none}.attendance-class-name{flex:1;color:#313297;font-weight:600}.attendance-progress-bar{flex:2;background:#f0f0f0;border-radius:4px;height:12px;margin:0 1rem;overflow:hidden;position:relative}.attendance-progress-bar .attendance-filled{height:100%;transition:width .3s ease;position:absolute;left:0;top:0}.attendance-pct-label{width:40px;text-align:right;font-size:.9rem;color:#555}.attendance-no-data{text-align:center;color:#999;padding:1rem 0}.attendance-summary{margin-top:1rem;padding:.75rem;background:#f8f9fa;border-radius:6px;border-left:4px solid #1565c0}.attendance-summary-text{margin:0;font-size:.9rem;color:#333;font-weight:500}.attendance-filters-active .attendance-dashboard-filter-btn{display:none}.attendance-filters-active .attendance-dashboard-close-btn{display:block}@media (max-width: 768px){.attendance-dashboard-card{padding:1rem}.attendance-card-header{flex-direction:row;gap:1rem;align-items:flex-start}.attendance-card-header h2{text-align:left;font-size:1rem}.attendance-filters{flex-wrap:wrap}.attendance-filter-select{flex:1 1 45%}.attendance-dashboard-filter-btn{display:block;width:100%;margin-top:.5rem}.attendance-dashboard-close-btn{display:none;width:100%;margin-top:.5rem}.attendance-filters-active .attendance-dashboard-filter-btn{display:none}.attendance-filters-active .attendance-dashboard-close-btn{display:block}.attendance-class-list li{flex-direction:column;align-items:stretch;width:100%;gap:.4rem}.attendance-progress-bar{width:100%;height:12px;background-color:#f0f0f0;border-radius:4px;overflow:hidden;margin:.25rem 0;position:relative;flex:none}.attendance-progress-bar .attendance-filled{display:block;height:100%;min-width:4px;position:absolute;left:0;top:0}.attendance-pct-label{width:100%;text-align:left;margin-top:.3rem}}.test-modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background-color:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000;padding:1rem}.test-modal-content{background:#fff;border-radius:12px;width:100%;max-width:700px;max-height:85vh;display:flex;flex-direction:column;box-shadow:0 4px 20px #00000026}.test-modal-header{display:flex;justify-content:space-between;align-items:flex-start;padding:1.5rem;border-bottom:2px solid #e5e7eb}.test-modal-header h2{margin:0 0 .5rem;font-size:1.5rem;font-weight:700;color:#1f2937}.test-modal-subtitle{margin:0;font-size:.9rem;color:#6b7280}.test-modal-close-btn{background:none;border:none;font-size:2rem;color:#9ca3af;cursor:pointer;padding:0;width:32px;height:32px;display:flex;align-items:center;justify-content:center;border-radius:4px;transition:all .2s}.test-modal-close-btn:hover{background-color:#f3f4f6;color:#1f2937}.test-modal-body{padding:1.5rem;overflow-y:auto;flex:1}.test-modal-loading,.test-modal-error,.test-modal-no-data{text-align:center;padding:2rem;font-size:1rem;color:#6b7280}.test-modal-error{color:#d32f2f}.test-subjects-list{display:flex;flex-direction:column;gap:1rem}.test-subject-item{display:flex;justify-content:space-between;align-items:center;padding:1.25rem;background-color:#f9fafb;border-radius:8px;border:2px solid transparent;transition:all .2s;cursor:pointer}.test-subject-item:hover{background-color:#f3f4f6;border-color:#3b82f6;transform:translate(4px)}.test-subject-item.no-tests{cursor:not-allowed;opacity:.6}.test-subject-item.no-tests:hover{background-color:#f9fafb;border-color:transparent;transform:none}.test-subject-info{flex:1}.test-subject-name{margin:0 0 .5rem;font-size:1.1rem;font-weight:600;color:#1f2937}.test-subject-teacher{margin:0 0 .25rem;font-size:.9rem;color:#6b7280}.test-subject-stats{margin:0;font-size:.85rem;color:#9ca3af}.test-subject-no-tests{margin:0;font-size:.85rem;color:#d32f2f;font-weight:500}.test-subject-completion{display:flex;align-items:center;gap:1rem;min-width:200px}.test-subject-progress-bar{flex:1;height:24px;background-color:#e5e7eb;border-radius:12px;overflow:hidden}.test-subject-progress-fill{height:100%;transition:width .5s ease-in-out;border-radius:12px}.test-subject-percentage{font-weight:700;color:#1f2937;font-size:1rem;min-width:50px;text-align:right}@media (max-width: 768px){.test-modal-content{max-width:95%;max-height:90vh}.test-modal-header{padding:1rem}.test-modal-header h2{font-size:1.25rem}.test-modal-body{padding:1rem}.test-subject-item{flex-direction:column;align-items:stretch;gap:1rem}.test-subject-item:hover{transform:none}.test-subject-completion{width:100%;min-width:auto}.test-subject-name{font-size:1rem}}@media (max-width: 480px){.test-modal-header h2{font-size:1.1rem}.test-modal-subtitle{font-size:.85rem}.test-subject-item{padding:1rem}}.test-scores-modal-content{background:#fff;border-radius:12px;width:100%;max-width:1200px;max-height:90vh;display:flex;flex-direction:column;box-shadow:0 4px 20px #00000026}.test-scores-body{padding:0}.test-scores-unlock-section{padding:1rem 1.5rem;background-color:#fef3c7;border-bottom:2px solid #f59e0b;display:flex;align-items:center;justify-content:space-between;gap:1rem;flex-wrap:wrap}.unlock-message{margin:0;font-size:.95rem;color:#92400e;font-weight:500;flex:1}.unlock-btn{padding:.75rem 1.5rem;background-color:#3b82f6;color:#fff;border:none;border-radius:6px;font-size:.95rem;font-weight:600;cursor:pointer;transition:background-color .2s;white-space:nowrap}.unlock-btn:hover:not(:disabled){background-color:#2563eb}.unlock-btn:disabled{opacity:.6;cursor:not-allowed}.test-scores-table-wrapper{overflow-x:auto;overflow-y:auto;max-height:calc(90vh - 200px)}.test-scores-table{width:100%;border-collapse:collapse;font-size:.9rem}.test-scores-table thead{background-color:#f3f4f6;position:sticky;top:0;z-index:10}.test-scores-table th,.test-scores-table td{padding:1rem;text-align:left;border-bottom:1px solid #e5e7eb}.test-scores-table th{font-weight:600;color:#1f2937;white-space:nowrap}.test-scores-table thead .sticky-col{background-color:#f3f4f6;z-index:15}@media (max-width: 768px){.test-scores-modal-content{max-width:98%;max-height:95vh}.test-scores-unlock-section{flex-direction:column;align-items:stretch}.unlock-btn{width:100%}.test-scores-table{font-size:.85rem}.test-scores-table th,.test-scores-table td{padding:.75rem .5rem}.student-name-cell{min-width:150px}.assessment-header{min-width:100px}.score-value{font-size:1rem}.score-input{width:70px;font-size:.9rem}}@media (max-width: 480px){.test-scores-table{font-size:.8rem}.test-scores-table th,.test-scores-table td{padding:.5rem .25rem}.student-name{font-size:.85rem}.student-username{font-size:.75rem}.assessment-title{font-size:.85rem}.assessment-marks{font-size:.7rem}}.tests-dashboard-wrapper{width:100%;height:100%;display:flex;flex-direction:column}.tests-card-header{display:flex;align-items:flex-start;gap:1rem;margin-bottom:1rem}.tests-card-header h2{margin:0;font-size:1.1rem;font-weight:600;color:#1f2937}.tests-card-header p{margin:.25rem 0 0;font-size:.85rem;color:#6b7280}.tests-unlock-all-btn{margin-left:auto;padding:.5rem 1rem;background-color:#3b82f6;color:#fff;border:none;border-radius:6px;font-size:.8rem;font-weight:600;cursor:pointer;transition:background-color .2s;white-space:nowrap}.tests-unlock-all-btn:hover:not(:disabled){background-color:#2563eb}.tests-unlock-all-btn:disabled{opacity:.5;cursor:not-allowed}.tests-filters{display:flex;gap:.5rem;margin-bottom:1rem}.tests-filter-select{flex:1;min-width:0}.tests-dashboard-controls{display:flex;gap:.75rem;align-items:center}.tests-dashboard-controls>div{min-width:150px}.tests-dashboard-filter-btn,.tests-dashboard-close-btn{display:none;padding:.5rem 1rem;background-color:#3b82f6;color:#fff;border:none;border-radius:6px;font-size:.9rem;font-weight:500;cursor:pointer;transition:background-color .2s}.tests-dashboard-filter-btn:hover{background-color:#2563eb}.tests-dashboard-close-btn{background-color:#6b7280}.tests-dashboard-close-btn:hover{background-color:#4b5563}.tests-class-list{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:1rem}.tests-class-list li{display:flex;align-items:center;justify-content:space-between;padding:1rem;background-color:#f9fafb;border-radius:8px;transition:all .2s;cursor:pointer}.tests-class-list li:hover{background-color:#f3f4f6;transform:translate(4px);box-shadow:0 2px 4px #0000000d}.tests-class-name{font-weight:600;color:#1f2937;font-size:1rem;min-width:120px}.tests-progress-bar{flex:1;height:24px;background-color:#e5e7eb;border-radius:12px;overflow:hidden;margin:0 1rem;position:relative}.tests-filled{height:100%;transition:width .5s ease-in-out;border-radius:12px}.tests-pct-label{font-weight:700;color:#1f2937;font-size:1rem;min-width:50px;text-align:right}.tests-no-data,.tests-error-data{padding:2rem;text-align:center;color:#6b7280;font-size:1rem;list-style:none}.tests-error-data{color:#d32f2f}.tests-summary{margin-top:1.5rem;padding-top:1.5rem;border-top:2px solid #e5e7eb;text-align:center}.tests-summary-text{margin:0;font-size:1rem;font-weight:600;color:#1f2937}@media (max-width: 768px){.tests-dashboard-card{padding:1rem}.tests-card-header{flex-direction:column;gap:1rem;align-items:stretch}.tests-card-header-title{align-items:center}.tests-card-header-title h2{font-size:1.25rem;text-align:center}.tests-card-header{flex-direction:row;align-items:flex-start}.tests-unlock-all-btn{font-size:.75rem;padding:.4rem .8rem}.tests-filters{flex-wrap:wrap}.tests-filter-select{flex:1 1 45%}.tests-dashboard-filter-btn{display:block;width:100%;margin-top:.5rem}.tests-dashboard-close-btn{display:none;width:100%;margin-top:.5rem}.tests-filters-active .tests-dashboard-filter-btn{display:none}.tests-filters-active .tests-dashboard-close-btn{display:block}.tests-class-list li{flex-direction:column;gap:.75rem;align-items:stretch;padding:.875rem}.tests-class-list li:hover{transform:none;box-shadow:none}.tests-class-name{text-align:center;font-size:.95rem}.tests-progress-bar{margin:0;width:100%}.tests-pct-label{text-align:center;font-size:.95rem}.tests-summary-text{font-size:.9rem}}@media (max-width: 480px){.tests-card-header-title h2{font-size:1.1rem}.tests-class-name,.tests-pct-label{font-size:.875rem}.tests-summary-text{font-size:.85rem}}.exam-modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background-color:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000;padding:1rem}.exam-modal-content{background:#fff;border-radius:12px;width:100%;max-width:700px;max-height:85vh;display:flex;flex-direction:column;box-shadow:0 4px 20px #00000026}.exam-modal-header{display:flex;justify-content:space-between;align-items:flex-start;padding:1.5rem;border-bottom:2px solid #e5e7eb}.exam-modal-header h2{margin:0 0 .5rem;font-size:1.5rem;font-weight:700;color:#1f2937}.exam-modal-subtitle{margin:0;font-size:.9rem;color:#6b7280}.exam-modal-close-btn{background:none;border:none;font-size:2rem;color:#9ca3af;cursor:pointer;padding:0;width:32px;height:32px;display:flex;align-items:center;justify-content:center;border-radius:4px;transition:all .2s}.exam-modal-close-btn:hover{background-color:#f3f4f6;color:#1f2937}.exam-modal-body{padding:1.5rem;overflow-y:auto;flex:1}.exam-modal-loading,.exam-modal-error,.exam-modal-no-data{text-align:center;padding:2rem;font-size:1rem;color:#6b7280}.exam-modal-error{color:#d32f2f}.exam-subjects-list{display:flex;flex-direction:column;gap:1rem}.exam-subject-item{display:flex;justify-content:space-between;align-items:center;padding:1.25rem;background-color:#f9fafb;border-radius:8px;border:2px solid transparent;transition:all .2s;cursor:pointer}.exam-subject-item:hover{background-color:#f3f4f6;border-color:#3b82f6;transform:translate(4px)}.exam-subject-item.no-tests,.exam-subject-item.no-exams{cursor:not-allowed;opacity:.6}.exam-subject-item.no-tests:hover,.exam-subject-item.no-exams:hover{background-color:#f9fafb;border-color:transparent;transform:none}.exam-subject-info{flex:1}.exam-subject-name{margin:0 0 .5rem;font-size:1.1rem;font-weight:600;color:#1f2937}.exam-subject-teacher{margin:0 0 .25rem;font-size:.9rem;color:#6b7280}.exam-subject-stats{margin:0;font-size:.85rem;color:#9ca3af}.exam-subject-no-tests,.exam-subject-no-exams{margin:0;font-size:.85rem;color:#d32f2f;font-weight:500}.exam-subject-completion{display:flex;align-items:center;gap:1rem;min-width:200px}.exam-subject-progress-bar{flex:1;height:24px;background-color:#e5e7eb;border-radius:12px;overflow:hidden}.exam-subject-progress-fill{height:100%;transition:width .5s ease-in-out;border-radius:12px}.exam-subject-percentage{font-weight:700;color:#1f2937;font-size:1rem;min-width:50px;text-align:right}@media (max-width: 768px){.exam-modal-content{max-width:95%;max-height:90vh}.exam-modal-header{padding:1rem}.exam-modal-header h2{font-size:1.25rem}.exam-modal-body{padding:1rem}.exam-subject-item{flex-direction:column;align-items:stretch;gap:1rem}.exam-subject-item:hover{transform:none}.exam-subject-completion{width:100%;min-width:auto}.exam-subject-name{font-size:1rem}}@media (max-width: 480px){.exam-modal-header h2{font-size:1.1rem}.exam-modal-subtitle{font-size:.85rem}.exam-subject-item{padding:1rem}}.exam-scores-modal-content{background:#fff;border-radius:12px;width:100%;max-width:1200px;max-height:90vh;display:flex;flex-direction:column;box-shadow:0 4px 20px #00000026}.exam-scores-body{padding:0}.exam-scores-notice-section{padding:1rem 1.5rem;background-color:#fef3c7;border-bottom:2px solid #f59e0b;display:flex;align-items:center;justify-content:space-between;gap:1rem;flex-wrap:wrap}.notice-message{margin:0;font-size:.95rem;color:#92400e;font-weight:500;flex:1}.notice-btn{padding:.75rem 1.5rem;background-color:#3b82f6;color:#fff;border:none;border-radius:6px;font-size:.95rem;font-weight:600;cursor:pointer;transition:background-color .2s;white-space:nowrap}.notice-btn:hover:not(:disabled){background-color:#2563eb}.notice-btn:disabled{opacity:.6;cursor:not-allowed}.exam-scores-table-wrapper{overflow-x:auto;overflow-y:auto;max-height:calc(90vh - 200px)}.exam-scores-table{width:100%;border-collapse:collapse;font-size:.9rem}.exam-scores-table thead{background-color:#f3f4f6;position:sticky;top:0;z-index:10}.exam-scores-table th,.exam-scores-table td{padding:1rem;text-align:left;border-bottom:1px solid #e5e7eb}.exam-scores-table th{font-weight:600;color:#1f2937;white-space:nowrap}.sticky-col{position:sticky;left:0;background-color:#fff;z-index:5;box-shadow:2px 0 4px #0000000d}.exam-scores-table thead .sticky-col{background-color:#f3f4f6;z-index:15}.assessment-header{display:flex;flex-direction:column;gap:.25rem;min-width:120px}.assessment-title{font-weight:700;font-size:.95rem;color:#1f2937}.assessment-marks{font-size:.75rem;color:#6b7280;font-weight:400}.assessment-status{font-size:.75rem;padding:.25rem .5rem;border-radius:4px;font-weight:500}.assessment-status.released{background-color:#d1fae5;color:#065f46}.assessment-status.locked{background-color:#fee2e2;color:#991b1b}.student-name-cell{min-width:200px}.student-name{font-weight:600;color:#1f2937;margin-bottom:.25rem}.student-username{font-size:.8rem;color:#6b7280}.score-cell{text-align:center;padding:.5rem}.score-display{display:inline-flex;flex-direction:column;align-items:center;gap:.25rem;padding:.5rem;border-radius:6px;transition:background-color .2s;min-width:60px}.score-display.editable{cursor:pointer}.score-display.editable:hover{background-color:#f3f4f6;border:1px solid #3b82f6}.score-display.not-editable{cursor:not-allowed;opacity:.4}.score-display.not-submitted{opacity:.5}.score-value{font-size:1.1rem;font-weight:700;color:#1f2937}.score-total{font-size:.85rem;color:#6b7280}.not-submitted-badge{font-size:.7rem;color:#d32f2f;font-weight:500;margin-top:.25rem}.manual-badge{font-size:.65rem;color:#6366f1;font-weight:600;background-color:#e0e7ff;padding:.15rem .4rem;border-radius:3px;margin-top:.25rem}.score-display.manual{background-color:#f5f3ff;border:1px solid #c7d2fe}.score-edit-container{display:flex;flex-direction:column;align-items:center;gap:.5rem}.score-input{width:80px;padding:.5rem;border:2px solid #3b82f6;border-radius:4px;font-size:1rem;text-align:center;font-weight:600}.score-input:focus{outline:none;border-color:#2563eb}.score-edit-actions{display:flex;gap:.5rem}.score-save-btn,.score-cancel-btn{padding:.25rem .5rem;border:none;border-radius:4px;font-size:.9rem;font-weight:600;cursor:pointer;transition:background-color .2s}.score-save-btn{background-color:#10b981;color:#fff}.score-save-btn:hover{background-color:#059669}.score-cancel-btn{background-color:#ef4444;color:#fff}.score-cancel-btn:hover{background-color:#dc2626}@media (max-width: 768px){.exam-scores-modal-content{max-width:98%;max-height:95vh}.exam-scores-notice-section{flex-direction:column;align-items:stretch}.notice-btn{width:100%}.exam-scores-table{font-size:.85rem}.exam-scores-table th,.exam-scores-table td{padding:.75rem .5rem}.student-name-cell{min-width:150px}.assessment-header{min-width:100px}.score-value{font-size:1rem}.score-input{width:70px;font-size:.9rem}}@media (max-width: 480px){.exam-scores-table{font-size:.8rem}.exam-scores-table th,.exam-scores-table td{padding:.5rem .25rem}.student-name{font-size:.85rem}.student-username{font-size:.75rem}.assessment-title{font-size:.85rem}.assessment-marks{font-size:.7rem}}.exams-dashboard-wrapper{width:100%;height:100%;display:flex;flex-direction:column}.exams-card-header{display:flex;align-items:flex-start;gap:1rem;margin-bottom:1rem}.exams-card-header h2{margin:0;font-size:1.1rem;font-weight:600;color:#1f2937}.exams-card-header p{margin:.25rem 0 0;font-size:.85rem;color:#6b7280}.exams-filters{display:flex;gap:.5rem;margin-bottom:1rem}.exams-filter-select{flex:1;min-width:0}.exams-unlock-all-btn{padding:.75rem 1.5rem;background-color:#3b82f6;color:#fff;border:none;border-radius:6px;font-size:.9rem;font-weight:600;cursor:pointer;transition:background-color .2s;white-space:nowrap}.exams-unlock-all-btn:hover:not(:disabled){background-color:#2563eb}.exams-unlock-all-btn:disabled{opacity:.5;cursor:not-allowed}.exams-dashboard-controls{display:flex;gap:.75rem;align-items:center}.exams-dashboard-controls>div{min-width:150px}.exams-dashboard-filter-btn,.exams-dashboard-close-btn{display:none;padding:.5rem 1rem;background-color:#3b82f6;color:#fff;border:none;border-radius:6px;font-size:.9rem;font-weight:500;cursor:pointer;transition:background-color .2s}.exams-dashboard-filter-btn:hover{background-color:#2563eb}.exams-dashboard-close-btn{background-color:#6b7280}.exams-dashboard-close-btn:hover{background-color:#4b5563}.exams-class-list{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:1rem}.exams-class-list li{display:flex;align-items:center;justify-content:space-between;padding:1rem;background-color:#f9fafb;border-radius:8px;transition:all .2s;cursor:pointer}.exams-class-list li:hover{background-color:#f3f4f6;transform:translate(4px);box-shadow:0 2px 4px #0000000d}.exams-class-name{font-weight:600;color:#1f2937;font-size:1rem;min-width:120px}.exams-progress-bar{flex:1;height:24px;background-color:#e5e7eb;border-radius:12px;overflow:hidden;margin:0 1rem;position:relative}.exams-filled{height:100%;transition:width .5s ease-in-out;border-radius:12px}.exams-pct-label{font-weight:700;color:#1f2937;font-size:1rem;min-width:50px;text-align:right}.exams-no-data,.exams-error-data{padding:2rem;text-align:center;color:#1f2937;font-size:1rem;list-style:none}.exams-error-data{color:#d32f2f}.exams-summary{margin-top:1.5rem;padding-top:1.5rem;border-top:2px solid #e5e7eb;text-align:center}.exams-summary-text{margin:0;font-size:1rem;font-weight:600;color:#1f2937}@media (max-width: 768px){.exams-dashboard-card{padding:1rem}.exams-card-header{flex-direction:row;gap:1rem;align-items:flex-start}.exams-card-header h2{font-size:1rem}.exams-filters{flex-wrap:wrap}.exams-filter-select{flex:1 1 45%}.exams-dashboard-filter-btn{display:block;width:100%;margin-top:.5rem}.exams-dashboard-close-btn{display:none;width:100%;margin-top:.5rem}.exams-filters-active .exams-dashboard-filter-btn{display:none}.exams-filters-active .exams-dashboard-close-btn{display:block}.exams-class-list li{flex-direction:column;gap:.75rem;align-items:stretch;padding:.875rem}.exams-class-list li:hover{transform:none;box-shadow:none}.exams-class-name{text-align:center;font-size:.95rem}.exams-progress-bar{margin:0;width:100%}.exams-pct-label{text-align:center;font-size:.95rem}.exams-summary-text{font-size:.9rem}}@media (max-width: 480px){.exams-card-header-title h2{font-size:1.1rem}.exams-class-name,.exams-pct-label{font-size:.875rem}.exams-summary-text{font-size:.85rem}}.report-access-card{background:#fff;border-radius:16px;padding:24px;box-shadow:0 2px 8px #0000001a;border:1px solid #e5e7eb;transition:all .3s ease;height:100%;display:flex;flex-direction:column}.report-access-card:hover{box-shadow:0 4px 16px #0000001f;transform:translateY(-2px)}.report-access-header{display:flex;align-items:center;gap:16px;margin-bottom:24px;padding-bottom:16px;border-bottom:2px solid #f3f4f6}.report-access-header h3{margin:0;font-size:1.25rem;font-weight:700;color:#1f2937}.report-access-header p{margin:4px 0 0;font-size:.875rem;color:#6b7280}.report-access-filters{display:flex;gap:.5rem;margin-bottom:1rem}.ra-filter-select{flex:1;min-width:0}.report-access-stats{display:flex;flex-direction:column;gap:16px;flex:1}.report-access-section{background:#f9fafb;border-radius:12px;padding:16px;border:1px solid #e5e7eb;transition:all .2s ease}.report-access-section:hover{background:#f3f4f6;border-color:#d1d5db}.report-access-section.clickable{cursor:pointer}.report-access-section.clickable:hover{border-color:#10b981;box-shadow:0 2px 8px #10b98126}.section-header{display:flex;align-items:center;gap:12px;margin-bottom:12px}.section-icon{width:40px;height:40px;border-radius:10px;display:flex;align-items:center;justify-content:center;flex-shrink:0}.complete-icon{background:linear-gradient(135deg,#10b981,#059669);color:#fff}.fees-paid-icon{background:linear-gradient(135deg,#3b82f6,#2563eb);color:#fff}.fees-unpaid-icon{background:linear-gradient(135deg,#f59e0b,#d97706);color:#fff}.incomplete-icon{background:linear-gradient(135deg,#ef4444,#dc2626);color:#fff}.section-info h4{margin:0;font-size:.95rem;font-weight:600;color:#1f2937}.section-info p{margin:4px 0 0;font-size:.8rem;color:#6b7280}.complete-section .section-count{display:flex;align-items:baseline;gap:4px;margin-top:8px;margin-left:52px}.count-value{font-size:2rem;font-weight:700;color:#10b981;line-height:1}.count-total{font-size:1.2rem;font-weight:500;color:#6b7280}.section-bar{display:flex;align-items:center;gap:12px}.progress-bar{flex:1;height:10px;background:#e5e7eb;border-radius:5px;overflow:hidden;position:relative}.fees-paid-fill{background:linear-gradient(90deg,#3b82f6,#2563eb)}.fees-unpaid-fill{background:linear-gradient(90deg,#f59e0b,#d97706)}.incomplete-fill{background:linear-gradient(90deg,#ef4444,#dc2626)}.percentage-text{font-size:.9rem;font-weight:600;color:#1f2937;min-width:45px;text-align:right}.report-access-loading{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:40px 20px;text-align:center}.spinner-small{width:40px;height:40px;border:4px solid #f3f4f6;border-top-color:#10b981;border-radius:50%;animation:spin 1s linear infinite;margin-bottom:12px}.report-access-loading p{margin:0;color:#6b7280;font-size:.9rem}.report-access-error{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:40px 20px;text-align:center}.report-access-error svg{color:#ef4444;margin-bottom:12px}.report-access-error p{margin:0;color:#6b7280;font-size:.9rem}.report-access-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:40px 20px;text-align:center}.report-access-empty svg{color:#d1d5db;margin-bottom:12px}.report-access-empty p{margin:0;color:#9ca3af;font-size:.9rem}.ra-no-data{text-align:center;padding:2rem;color:#6b7280}@media (max-width: 768px){.report-access-card{padding:16px}.report-access-header{margin-bottom:16px}.report-access-header h3{font-size:1.1rem}.report-access-stats{gap:12px}.report-access-section{padding:12px}.section-icon{width:36px;height:36px}.section-info h4{font-size:.875rem}.section-info p{font-size:.75rem}.count-value{font-size:1.5rem}.count-total{font-size:1rem}.complete-section .section-count{margin-left:48px}}@media (max-width: 480px){.report-access-card{padding:12px}.report-access-header h3{font-size:1rem}.section-icon{width:32px;height:32px}.section-header{gap:8px}.count-value{font-size:1.25rem}.count-total{font-size:.9rem}.complete-section .section-count{margin-left:40px}}.send-report-btn{margin-top:16px;margin-left:52px;padding:10px 20px;background:linear-gradient(135deg,#10b981,#059669);color:#fff;border:none;border-radius:8px;font-size:.9rem;font-weight:600;cursor:pointer;display:flex;align-items:center;gap:8px;transition:all .2s ease}.send-report-btn:hover:not(:disabled){background:linear-gradient(135deg,#059669,#047857);transform:translateY(-2px);box-shadow:0 4px 12px #10b9814d}.send-report-btn:disabled{opacity:.6;cursor:not-allowed}.notify-all-btn{margin-top:16px;margin-left:52px;padding:8px 16px;background:linear-gradient(135deg,#f59e0b,#d97706);color:#fff;border:none;border-radius:8px;font-size:.85rem;font-weight:600;cursor:pointer;display:flex;align-items:center;gap:6px;transition:all .2s ease}.notify-all-btn:hover:not(:disabled){background:linear-gradient(135deg,#d97706,#b45309);transform:translateY(-2px);box-shadow:0 4px 12px #f59e0b4d}.notify-all-btn:disabled{opacity:.6;cursor:not-allowed}.notify-all-btn.fee-notify-btn{background:linear-gradient(135deg,#ef4444,#dc2626)}.notify-all-btn.fee-notify-btn:hover:not(:disabled){background:linear-gradient(135deg,#dc2626,#b91c1c);box-shadow:0 4px 12px #ef44444d}.modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000;animation:fadeIn .2s ease}.confirmation-modal{background:#fff;border-radius:16px;padding:32px;max-width:500px;width:90%;box-shadow:0 20px 60px #0000004d;animation:slideUp .3s ease}.confirmation-modal h3{margin:0 0 16px;font-size:1.5rem;font-weight:700;color:#1f2937}.confirmation-modal p{margin:0 0 12px;font-size:1rem;color:#6b7280;line-height:1.5}.warning-text{color:#f59e0b!important;font-weight:500;font-size:.9rem!important}.modal-actions{display:flex;gap:12px;margin-top:24px;justify-content:flex-end}.cancel-btn,.confirm-btn{padding:10px 24px;border-radius:8px;font-size:.95rem;font-weight:600;cursor:pointer;transition:all .2s ease;border:none}.cancel-btn{background:#f3f4f6;color:#6b7280}.cancel-btn:hover:not(:disabled){background:#e5e7eb}.confirm-btn{background:linear-gradient(135deg,#10b981,#059669);color:#fff}.confirm-btn:hover:not(:disabled){background:linear-gradient(135deg,#059669,#047857);box-shadow:0 4px 12px #10b9814d}.cancel-btn:disabled,.confirm-btn:disabled{opacity:.6;cursor:not-allowed}.send-result{margin-top:16px;padding:16px;border-radius:12px;position:relative;animation:slideDown .3s ease}.send-result.success{background:#d1fae5;border:1px solid #10b981;color:#065f46}.send-result.error{background:#fee2e2;border:1px solid #ef4444;color:#991b1b}.send-result p{margin:0;font-weight:600;font-size:.95rem}.send-details{margin-top:8px;padding-top:8px;border-top:1px solid rgba(0,0,0,.1)}.send-details small{font-size:.85rem;opacity:.9}.close-result-btn{position:absolute;top:12px;right:12px;background:none;border:none;font-size:1.5rem;cursor:pointer;color:inherit;opacity:.6;transition:opacity .2s;padding:0;width:24px;height:24px;display:flex;align-items:center;justify-content:center}.close-result-btn:hover{opacity:1}.report-access-wrapper{width:100%;height:100%}.ra-filter-btn,.ra-close-btn{display:none;padding:.5rem 1rem;border:none;border-radius:6px;font-size:.9rem;font-weight:500;cursor:pointer;transition:background-color .2s}.ra-filter-btn{background-color:#3b82f6;color:#fff}.ra-filter-btn:hover{background-color:#2563eb}.ra-close-btn{background-color:#6b7280;color:#fff}.ra-close-btn:hover{background-color:#4b5563}@media (max-width: 768px){.report-access-card{padding:1rem}.report-access-filters{flex-wrap:wrap}.ra-filter-select{flex:1 1 45%}.ra-filter-btn{display:block;width:100%;margin-top:.5rem}.ra-close-btn{display:none;width:100%;margin-top:.5rem}.ra-filters-active .ra-filter-btn{display:none}.ra-filters-active .ra-close-btn{display:block}}.report-access-modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:1100;animation:fadeIn .2s ease}.report-access-modal{background:#fff;border-radius:16px;width:90%;max-width:700px;max-height:80vh;display:flex;flex-direction:column;box-shadow:0 20px 60px #0000004d;animation:slideUp .3s ease}.modal-header{display:flex;align-items:center;padding:20px 24px;border-bottom:1px solid #e5e7eb;position:relative}.modal-header h2{margin:0;font-size:1.25rem;font-weight:700;color:#1f2937;flex:1}.back-btn{background:#f3f4f6;border:none;border-radius:8px;padding:8px;cursor:pointer;margin-right:12px;display:flex;align-items:center;justify-content:center;transition:all .2s}.back-btn:hover{background:#e5e7eb}.report-modal-close{background:#f3f4f6;border:none;border-radius:8px;cursor:pointer;color:#6b7280;padding:8px;display:flex;align-items:center;justify-content:center;transition:all .2s;margin-left:12px}.report-modal-close:hover{background:#fee2e2;color:#ef4444}.modal-content{flex:1;overflow-y:auto;padding:24px}.modal-loading{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:40px}.modal-loading .spinner{animation:spin 1s linear infinite;color:#10b981}.modal-loading p{margin:12px 0 0;color:#6b7280}.modal-error{background:#fee2e2;border:1px solid #ef4444;border-radius:8px;padding:16px;color:#991b1b;text-align:center}.empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:40px;color:#9ca3af}.empty-state svg{margin-bottom:12px;opacity:.5}.empty-state p{margin:0;font-size:.95rem}.classes-list{display:flex;flex-direction:column;gap:12px}.class-item{background:#f9fafb;border:1px solid #e5e7eb;border-radius:12px;padding:16px;display:flex;justify-content:space-between;align-items:center;cursor:pointer;transition:all .2s ease}.class-item:hover{background:#f3f4f6;border-color:#10b981;transform:translate(4px)}.class-info h4{margin:0;font-size:1rem;font-weight:600;color:#1f2937}.class-info p{margin:4px 0 0;font-size:.85rem;color:#6b7280}.class-count{display:flex;flex-direction:column;align-items:center;gap:4px}.count-badge{background:linear-gradient(135deg,#10b981,#059669);color:#fff;font-size:1.25rem;font-weight:700;padding:8px 16px;border-radius:8px;min-width:40px;text-align:center}.count-label{font-size:.75rem;color:#6b7280;text-transform:uppercase;font-weight:500}.students-list{display:flex;flex-direction:column;gap:10px}.student-item{background:#f9fafb;border:1px solid #e5e7eb;border-radius:10px;padding:14px 16px;display:flex;justify-content:space-between;align-items:center;transition:all .3s ease}.student-item.sent{background:#d1fae5;border-color:#10b981;animation:fadeOut 1.5s ease forwards}@keyframes fadeOut{0%{opacity:1;transform:translate(0)}70%{opacity:1;transform:translate(0)}to{opacity:0;transform:translate(20px)}}.student-info h4{margin:0;font-size:.95rem;font-weight:600;color:#1f2937}.student-info p{margin:4px 0 0;font-size:.8rem;color:#6b7280}.send-btn{background:linear-gradient(135deg,#10b981,#059669);color:#fff;border:none;border-radius:6px;padding:8px 16px;font-size:.85rem;font-weight:600;cursor:pointer;display:flex;align-items:center;gap:6px;transition:all .2s ease;min-width:120px;justify-content:center}.send-btn:hover:not(:disabled){background:linear-gradient(135deg,#059669,#047857);transform:translateY(-1px);box-shadow:0 4px 8px #10b9814d}.send-btn:disabled{opacity:.7;cursor:not-allowed;transform:none}.send-btn.sent{background:#10b981}.send-btn .spinner{animation:spin 1s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}@media (max-width: 768px){.report-access-modal{width:95%;max-height:85vh}.modal-header{padding:16px}.modal-header h2{font-size:1.1rem}.modal-content{padding:16px}.class-item{padding:12px}.class-info h4{font-size:.95rem}.count-badge{font-size:1.1rem;padding:6px 12px}.student-item{flex-direction:column;gap:12px;align-items:stretch}.send-btn{width:100%}}.incomplete-grades-modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000;padding:20px}.incomplete-grades-modal{background:#fff;border-radius:12px;width:100%;max-width:700px;max-height:85vh;display:flex;flex-direction:column;box-shadow:0 20px 60px #0000004d;animation:slideIn .3s ease}.incomplete-grades-modal .modal-header{display:flex;align-items:center;padding:20px 24px;border-bottom:1px solid #e5e7eb;background:#f9fafb;border-radius:12px 12px 0 0}.incomplete-grades-modal .modal-header h2{margin:0;font-size:18px;font-weight:600;color:#1f2937;flex:1}.incomplete-grades-modal .back-btn{background:none;border:none;color:#6b7280;cursor:pointer;padding:8px;margin-right:12px;border-radius:8px;transition:all .2s ease}.incomplete-grades-modal .back-btn:hover{background:#e5e7eb;color:#374151}.incomplete-grades-modal .ig-modal-close{background:none;border:none;color:#6b7280;cursor:pointer;padding:8px;border-radius:8px;transition:all .2s ease}.incomplete-grades-modal .ig-modal-close:hover{background:#fee2e2;color:#dc2626}.incomplete-grades-modal .search-section{padding:16px 24px;border-bottom:1px solid #e5e7eb;background:#fefce8}.incomplete-grades-modal .search-input-wrapper{position:relative;display:flex;align-items:center}.incomplete-grades-modal .search-icon{position:absolute;left:12px;color:#9ca3af}.incomplete-grades-modal .search-input{width:100%;padding:10px 12px 10px 40px;border:1px solid #d1d5db;border-radius:8px;font-size:14px;transition:all .2s ease}.incomplete-grades-modal .search-input:focus{outline:none;border-color:#f59e0b;box-shadow:0 0 0 3px #f59e0b1a}.incomplete-grades-modal .search-spinner{position:absolute;right:12px;color:#f59e0b}.incomplete-grades-modal .search-results{padding:16px 24px;background:#fffbeb;border-bottom:1px solid #e5e7eb;max-height:300px;overflow-y:auto}.incomplete-grades-modal .search-results h4{margin:0 0 12px;font-size:14px;font-weight:600;color:#92400e}.incomplete-grades-modal .no-results{color:#9ca3af;font-size:14px;text-align:center;padding:20px 0}.incomplete-grades-modal .search-results-list{display:flex;flex-direction:column;gap:8px}.incomplete-grades-modal .search-result-item{background:#fff;border-radius:8px;border:1px solid #fde68a;overflow:hidden}.incomplete-grades-modal .search-result-header{display:flex;justify-content:space-between;align-items:center;padding:12px;cursor:pointer;transition:background .2s ease}.incomplete-grades-modal .search-result-header:hover{background:#fef3c7}.incomplete-grades-modal .search-result-header .student-info h5{margin:0 0 4px;font-size:14px;font-weight:600;color:#1f2937}.incomplete-grades-modal .search-result-header .student-info p{margin:0;font-size:12px;color:#6b7280}.incomplete-grades-modal .incomplete-count{display:flex;align-items:center;gap:6px;color:#d97706;font-size:12px;font-weight:500}.incomplete-grades-modal .search-result-actions,.incomplete-grades-modal .student-actions{display:flex;align-items:center;gap:12px}.incomplete-grades-modal .notify-btn{display:flex;align-items:center;gap:4px;padding:6px 12px;background:#f59e0b;color:#fff;border:none;border-radius:6px;font-size:12px;font-weight:500;cursor:pointer;transition:all .2s ease}.incomplete-grades-modal .notify-btn:hover:not(:disabled){background:#d97706;transform:translateY(-1px)}.incomplete-grades-modal .notify-btn:disabled{opacity:.6;cursor:not-allowed}.incomplete-grades-modal .notify-btn.notified{background:#10b981}.incomplete-grades-modal .notify-btn .spinner{animation:spin 1s linear infinite}.incomplete-grades-modal .modal-content{flex:1;overflow-y:auto;padding:24px}.incomplete-grades-modal .modal-loading,.incomplete-grades-modal .modal-error,.incomplete-grades-modal .empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:40px 20px;color:#6b7280}.incomplete-grades-modal .modal-error{color:#dc2626;background:#fee2e2;border-radius:8px}.incomplete-grades-modal .empty-state svg{margin-bottom:16px;color:#9ca3af}.incomplete-grades-modal .empty-state p{font-size:16px;text-align:center}.incomplete-grades-modal .spinner{animation:spin 1s linear infinite;margin-bottom:12px}.incomplete-grades-modal .classes-list{display:flex;flex-direction:column;gap:12px}.incomplete-grades-modal .class-item{display:flex;justify-content:space-between;align-items:center;padding:16px;background:#fffbeb;border:1px solid #fde68a;border-radius:10px;cursor:pointer;transition:all .2s ease}.incomplete-grades-modal .class-item:hover{background:#fef3c7;border-color:#fcd34d;transform:translate(4px)}.incomplete-grades-modal .class-info h4{margin:0 0 4px;font-size:16px;font-weight:600;color:#1f2937}.incomplete-grades-modal .class-info p{margin:0;font-size:13px;color:#6b7280}.incomplete-grades-modal .class-count{display:flex;flex-direction:column;align-items:center}.incomplete-grades-modal .count-badge{background:#10b981;color:#fff;font-size:18px;font-weight:700;padding:8px 16px;border-radius:20px;min-width:50px;text-align:center}.incomplete-grades-modal .count-badge.warning{background:#f59e0b}.incomplete-grades-modal .count-label{font-size:11px;color:#6b7280;margin-top:4px;text-transform:uppercase;letter-spacing:.5px}.incomplete-grades-modal .students-list{display:flex;flex-direction:column;gap:12px}.incomplete-grades-modal .student-item{background:#fff;border:1px solid #fde68a;border-radius:10px;overflow:hidden}.incomplete-grades-modal .student-header{display:flex;justify-content:space-between;align-items:center;padding:16px;cursor:pointer;transition:background .2s ease}.incomplete-grades-modal .student-header:hover{background:#fffbeb}.incomplete-grades-modal .student-info h4{margin:0 0 4px;font-size:15px;font-weight:600;color:#1f2937}.incomplete-grades-modal .student-info p{margin:0;font-size:13px;color:#6b7280}.incomplete-grades-modal .incomplete-badge{display:flex;align-items:center;gap:6px;background:#fef3c7;color:#d97706;padding:6px 12px;border-radius:20px;font-size:12px;font-weight:500}.incomplete-grades-modal .ig-students-list{display:flex;flex-direction:column;gap:1rem}.incomplete-grades-modal .ig-student-card{background-color:#fff;border:1px solid #e5e7eb;border-radius:10px;overflow:hidden;transition:all .2s}.incomplete-grades-modal .ig-student-card:hover{border-color:#d1d5db;box-shadow:0 2px 8px #00000014}.incomplete-grades-modal .ig-student-header{display:flex;align-items:center;padding:1rem 1.25rem;cursor:pointer;gap:1rem;background-color:#fefce8}.incomplete-grades-modal .ig-student-header:hover{background-color:#fef9c3}.incomplete-grades-modal .ig-student-info{flex:1}.incomplete-grades-modal .ig-student-name{font-weight:600;color:#1f2937;font-size:1rem}.incomplete-grades-modal .ig-student-username{font-size:.85rem;color:#6b7280;margin-top:.25rem}.incomplete-grades-modal .ig-student-issues{display:flex;flex-direction:column;gap:.5rem}.incomplete-grades-modal .ig-issue-badge{display:flex;align-items:center;gap:.4rem;padding:.3rem .6rem;border-radius:6px;font-size:.85rem;font-weight:600}.incomplete-grades-modal .ig-issue-badge.subjects{background-color:#fef3c7;color:#92400e}.incomplete-grades-modal .ig-student-actions{display:flex;align-items:center}.incomplete-grades-modal .ig-notify-btn{display:flex;align-items:center;gap:.4rem;padding:.5rem 1rem;background-color:#f59e0b;color:#fff;border:none;border-radius:6px;font-size:.85rem;font-weight:600;cursor:pointer;transition:all .2s;white-space:nowrap}.incomplete-grades-modal .ig-notify-btn:hover:not(:disabled){background-color:#d97706}.incomplete-grades-modal .ig-notify-btn:disabled{opacity:.6;cursor:not-allowed}.incomplete-grades-modal .ig-notified-badge{display:flex;align-items:center;gap:.4rem;padding:.5rem 1rem;background-color:#d1fae5;color:#065f46;border-radius:6px;font-size:.85rem;font-weight:600}.incomplete-grades-modal .ig-student-details{padding:1rem 1.25rem;background-color:#f9fafb;border-top:1px solid #e5e7eb}.incomplete-grades-modal .ig-student-details h4{margin:0 0 .75rem;font-size:.95rem;color:#374151}.incomplete-grades-modal .incomplete-subjects-list{padding:12px 16px;background:#fefce8;border-top:1px solid #fde68a}.incomplete-grades-modal .incomplete-subject-item{display:flex;justify-content:space-between;align-items:center;padding:8px 0;border-bottom:1px solid #fef3c7}.incomplete-grades-modal .incomplete-subject-item:last-child{border-bottom:none}.incomplete-grades-modal .subject-name{display:flex;align-items:center;gap:8px;font-size:14px;font-weight:500;color:#1f2937}.incomplete-grades-modal .subject-name svg{color:#d97706}.incomplete-grades-modal .missing-components{display:flex;flex-wrap:wrap;gap:4px}.incomplete-grades-modal .missing-tag{background:#fcd34d;color:#92400e;font-size:11px;padding:2px 8px;border-radius:12px;font-weight:500}@media (max-width: 768px){.incomplete-grades-modal{max-width:100%;max-height:90vh}.incomplete-grades-modal .modal-header{padding:16px}.incomplete-grades-modal .modal-header h2{font-size:16px}.incomplete-grades-modal .search-section{padding:12px 16px}.incomplete-grades-modal .modal-content{padding:16px}.incomplete-grades-modal .class-item,.incomplete-grades-modal .student-header{padding:12px}.incomplete-grades-modal .ig-student-header{flex-wrap:wrap}.incomplete-grades-modal .ig-student-issues{flex-direction:row;flex-wrap:wrap}.incomplete-grades-modal .ig-student-actions{width:100%;margin-top:.5rem}.incomplete-grades-modal .ig-notify-btn{width:100%;justify-content:center}}.unpaid-fees-modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000;padding:20px}.unpaid-fees-modal{background:#fff;border-radius:12px;width:100%;max-width:700px;max-height:85vh;display:flex;flex-direction:column;box-shadow:0 20px 60px #0000004d;animation:slideIn .3s ease}@keyframes slideIn{0%{opacity:0;transform:translateY(-20px)}to{opacity:1;transform:translateY(0)}}.unpaid-fees-modal .modal-header{display:flex;align-items:center;padding:20px 24px;border-bottom:1px solid #e5e7eb;background:#f9fafb;border-radius:12px 12px 0 0}.unpaid-fees-modal .modal-header h2{margin:0;font-size:18px;font-weight:600;color:#1f2937;flex:1}.unpaid-fees-modal .back-btn{background:none;border:none;color:#6b7280;cursor:pointer;padding:8px;margin-right:12px;border-radius:8px;transition:all .2s ease}.unpaid-fees-modal .back-btn:hover{background:#e5e7eb;color:#374151}.unpaid-fees-modal .uf-modal-close{background:none;border:none;color:#6b7280;cursor:pointer;padding:8px;border-radius:8px;transition:all .2s ease}.unpaid-fees-modal .uf-modal-close:hover{background:#fee2e2;color:#dc2626}.unpaid-fees-modal .search-section{padding:16px 24px;border-bottom:1px solid #e5e7eb;background:#fef2f2}.unpaid-fees-modal .search-input-wrapper{position:relative;display:flex;align-items:center}.unpaid-fees-modal .search-icon{position:absolute;left:12px;color:#9ca3af}.unpaid-fees-modal .search-input{width:100%;padding:10px 12px 10px 40px;border:1px solid #d1d5db;border-radius:8px;font-size:14px;transition:all .2s ease}.unpaid-fees-modal .search-input:focus{outline:none;border-color:#ef4444;box-shadow:0 0 0 3px #ef44441a}.unpaid-fees-modal .search-spinner{position:absolute;right:12px;color:#ef4444}.unpaid-fees-modal .search-results{padding:16px 24px;background:#fef2f2;border-bottom:1px solid #e5e7eb;max-height:300px;overflow-y:auto}.unpaid-fees-modal .search-results h4{margin:0 0 12px;font-size:14px;font-weight:600;color:#991b1b}.unpaid-fees-modal .no-results{color:#9ca3af;font-size:14px;text-align:center;padding:20px 0}.unpaid-fees-modal .search-results-list{display:flex;flex-direction:column;gap:8px}.unpaid-fees-modal .search-result-item{background:#fff;border-radius:8px;border:1px solid #fca5a5;overflow:hidden}.unpaid-fees-modal .search-result-header{display:flex;justify-content:space-between;align-items:center;padding:12px;transition:background .2s ease}.unpaid-fees-modal .search-result-header:hover{background:#fee2e2}.unpaid-fees-modal .search-result-header .student-info h5{margin:0 0 4px;font-size:14px;font-weight:600;color:#1f2937}.unpaid-fees-modal .search-result-header .student-info p{margin:0;font-size:12px;color:#6b7280}.unpaid-fees-modal .balance-amount{display:flex;align-items:center;gap:6px;color:#dc2626;font-size:14px;font-weight:600}.unpaid-fees-modal .search-result-actions,.unpaid-fees-modal .student-actions{display:flex;align-items:center;gap:12px}.unpaid-fees-modal .notify-btn{display:flex;align-items:center;gap:4px;padding:6px 12px;background:#ef4444;color:#fff;border:none;border-radius:6px;font-size:12px;font-weight:500;cursor:pointer;transition:all .2s ease}.unpaid-fees-modal .notify-btn:hover:not(:disabled){background:#dc2626;transform:translateY(-1px)}.unpaid-fees-modal .notify-btn:disabled{opacity:.6;cursor:not-allowed}.unpaid-fees-modal .notify-btn.notified{background:#10b981}.unpaid-fees-modal .notify-btn .spinner{animation:spin 1s linear infinite}.unpaid-fees-modal .modal-content{flex:1;overflow-y:auto;padding:24px}.unpaid-fees-modal .modal-loading,.unpaid-fees-modal .modal-error,.unpaid-fees-modal .empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:40px 20px;color:#6b7280}.unpaid-fees-modal .modal-error{color:#dc2626;background:#fee2e2;border-radius:8px}.unpaid-fees-modal .empty-state svg{margin-bottom:16px;color:#9ca3af}.unpaid-fees-modal .empty-state p{font-size:16px;text-align:center}.unpaid-fees-modal .spinner{animation:spin 1s linear infinite;margin-bottom:12px}.unpaid-fees-modal .classes-list{display:flex;flex-direction:column;gap:12px}.unpaid-fees-modal .class-item{display:flex;justify-content:space-between;align-items:center;padding:16px;background:#fef2f2;border:1px solid #fca5a5;border-radius:10px;cursor:pointer;transition:all .2s ease}.unpaid-fees-modal .class-item:hover{background:#fee2e2;border-color:#f87171;transform:translate(4px)}.unpaid-fees-modal .class-info h4{margin:0 0 4px;font-size:16px;font-weight:600;color:#1f2937}.unpaid-fees-modal .class-info p{margin:0;font-size:13px;color:#6b7280}.unpaid-fees-modal .class-count{display:flex;flex-direction:column;align-items:center}.unpaid-fees-modal .count-badge{background:#10b981;color:#fff;font-size:18px;font-weight:700;padding:8px 16px;border-radius:20px;min-width:50px;text-align:center}.unpaid-fees-modal .count-badge.danger{background:#ef4444}.unpaid-fees-modal .count-label{font-size:11px;color:#6b7280;margin-top:4px;text-transform:uppercase;letter-spacing:.5px}.unpaid-fees-modal .students-list{display:flex;flex-direction:column;gap:12px}.unpaid-fees-modal .student-item{background:#fff;border:1px solid #fca5a5;border-radius:10px;overflow:hidden}.unpaid-fees-modal .student-header{display:flex;justify-content:space-between;align-items:center;padding:16px;transition:background .2s ease}.unpaid-fees-modal .student-header:hover{background:#fef2f2}.unpaid-fees-modal .student-info h4{margin:0 0 4px;font-size:15px;font-weight:600;color:#1f2937}.unpaid-fees-modal .student-info p{margin:0;font-size:13px;color:#6b7280}.unpaid-fees-modal .balance-badge{display:flex;align-items:center;gap:6px;background:#fee2e2;color:#dc2626;padding:8px 14px;border-radius:20px;font-size:14px;font-weight:600}@media (max-width: 768px){.unpaid-fees-modal{max-width:100%;max-height:90vh}.unpaid-fees-modal .modal-header{padding:16px}.unpaid-fees-modal .modal-header h2{font-size:16px}.unpaid-fees-modal .search-section{padding:12px 16px}.unpaid-fees-modal .modal-content{padding:16px}.unpaid-fees-modal .class-item{padding:12px}.unpaid-fees-modal .student-header{padding:12px;flex-direction:column;gap:12px;align-items:flex-start}.unpaid-fees-modal .student-actions{width:100%;justify-content:space-between}.unpaid-fees-modal .search-result-header{flex-direction:column;gap:12px;align-items:flex-start}.unpaid-fees-modal .search-result-actions{width:100%;justify-content:space-between}}.bi-modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background-color:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000}.bi-modal{background:#fff;border-radius:12px;width:90%;max-width:800px;max-height:85vh;display:flex;flex-direction:column;box-shadow:0 4px 20px #00000026}.bi-modal-header{display:flex;align-items:center;padding:1.25rem 1.5rem;border-bottom:1px solid #e5e7eb;gap:1rem}.bi-modal-header h2{margin:0;font-size:1.25rem;color:#1f2937;flex:1}.bi-back-btn{background:none;border:none;padding:.5rem;cursor:pointer;color:#4b5563;border-radius:8px;transition:all .2s}.bi-back-btn:hover{background-color:#f3f4f6;color:#1f2937}.bi-modal-close{background:none;border:none;padding:.5rem;cursor:pointer;color:#6b7280;border-radius:8px;transition:all .2s}.bi-modal-close:hover{background-color:#fee2e2;color:#dc2626}.bi-notify-all-section{padding:1rem 1.5rem;border-bottom:1px solid #e5e7eb;background-color:#fef3c7;display:flex;align-items:center;justify-content:space-between;gap:1rem}.bi-notify-all-btn{display:flex;align-items:center;gap:.5rem;padding:.75rem 1.5rem;background-color:#dc2626;color:#fff;border:none;border-radius:8px;font-size:.95rem;font-weight:600;cursor:pointer;transition:all .2s}.bi-notify-all-btn:hover:not(:disabled){background-color:#b91c1c;transform:translateY(-1px)}.bi-notify-all-btn:disabled{opacity:.6;cursor:not-allowed}.bi-bulk-result{display:flex;align-items:center;gap:.75rem;padding:.5rem 1rem;border-radius:6px;font-size:.9rem}.bi-bulk-result.success{background-color:#d1fae5;color:#065f46}.bi-bulk-result.error{background-color:#fee2e2;color:#991b1b}.bi-bulk-result p{margin:0}.bi-close-result{background:none;border:none;font-size:1.25rem;cursor:pointer;color:inherit;padding:0}.bi-modal-content{flex:1;overflow-y:auto;padding:1.5rem}.bi-loading,.bi-error,.bi-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:3rem;text-align:center;color:#6b7280}.bi-spinner{animation:bi-spin 1s linear infinite}@keyframes bi-spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.bi-error{color:#dc2626}.bi-classes-list{display:flex;flex-direction:column;gap:.75rem}.bi-class-item{display:flex;align-items:center;justify-content:space-between;padding:1rem 1.25rem;background-color:#fff7ed;border:1px solid #fed7aa;border-radius:10px;cursor:pointer;transition:all .2s}.bi-class-item:hover{background-color:#ffedd5;border-color:#fb923c;transform:translate(4px)}.bi-class-info{display:flex;align-items:center;gap:.75rem;color:#9a3412}.bi-class-name{font-weight:600;font-size:1.05rem}.bi-class-count{display:flex;align-items:center;gap:.5rem}.bi-count-badge{background-color:#dc2626;color:#fff;padding:.25rem .75rem;border-radius:20px;font-weight:700;font-size:1rem}.bi-count-label{color:#6b7280;font-size:.9rem}.bi-students-list{display:flex;flex-direction:column;gap:1rem}.bi-student-card{background-color:#fff;border:1px solid #e5e7eb;border-radius:10px;overflow:hidden;transition:all .2s}.bi-student-card:hover{border-color:#d1d5db;box-shadow:0 2px 8px #00000014}.bi-student-header{display:flex;align-items:center;padding:1rem 1.25rem;cursor:pointer;gap:1rem;background-color:#fefce8}.bi-student-header:hover{background-color:#fef9c3}.bi-student-info{flex:1}.bi-student-name{font-weight:600;color:#1f2937;font-size:1rem}.bi-student-username{font-size:.85rem;color:#6b7280;margin-top:.25rem}.bi-student-issues{display:flex;flex-direction:column;gap:.5rem}.bi-issue-badge{display:flex;align-items:center;gap:.4rem;padding:.3rem .6rem;border-radius:6px;font-size:.85rem;font-weight:600}.bi-issue-badge.balance{background-color:#fee2e2;color:#991b1b}.bi-issue-badge.subjects{background-color:#fef3c7;color:#92400e}.bi-student-actions{display:flex;align-items:center}.bi-notify-btn{display:flex;align-items:center;gap:.4rem;padding:.5rem 1rem;background-color:#f97316;color:#fff;border:none;border-radius:6px;font-size:.85rem;font-weight:600;cursor:pointer;transition:all .2s;white-space:nowrap}.bi-notify-btn:hover:not(:disabled){background-color:#ea580c}.bi-notify-btn:disabled{opacity:.6;cursor:not-allowed}.bi-notified-badge{display:flex;align-items:center;gap:.4rem;padding:.5rem 1rem;background-color:#d1fae5;color:#065f46;border-radius:6px;font-size:.85rem;font-weight:600}.bi-student-details{padding:1rem 1.25rem;background-color:#f9fafb;border-top:1px solid #e5e7eb}.bi-student-details h4{margin:0 0 .75rem;font-size:.95rem;color:#374151}.bi-incomplete-subjects-list{display:flex;flex-direction:column;gap:.5rem}.bi-incomplete-subject-item{display:flex;align-items:center;justify-content:space-between;padding:.75rem;background-color:#fff;border:1px solid #e5e7eb;border-radius:8px}.bi-subject-name{display:flex;align-items:center;gap:.5rem;color:#1f2937;font-weight:500}.bi-missing-components{display:flex;gap:.4rem;flex-wrap:wrap}.bi-missing-tag{background-color:#fecaca;color:#991b1b;padding:.2rem .5rem;border-radius:4px;font-size:.75rem;font-weight:600}@media (max-width: 768px){.bi-modal{width:95%;max-height:90vh}.bi-student-header{flex-wrap:wrap}.bi-student-issues{flex-direction:row;flex-wrap:wrap}.bi-student-actions{width:100%;margin-top:.5rem}.bi-notify-btn{width:100%;justify-content:center}}.report-sent-card{background:#fff;border-radius:12px;padding:1.5rem;box-shadow:0 2px 8px #00000014;border:1px solid #e5e7eb;height:100%;display:flex;flex-direction:column}.report-sent-header{display:flex;align-items:flex-start;gap:1rem;margin-bottom:1.25rem}.report-sent-header h3{margin:0;font-size:1.1rem;font-weight:600;color:#1f2937}.report-sent-header p{margin:.25rem 0 0;font-size:.85rem;color:#6b7280}.report-sent-filters{display:flex;gap:.5rem;margin-bottom:1rem}.rs-filter-select{flex:1;min-width:0}.report-sent-loading,.report-sent-error,.report-sent-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:2rem;text-align:center;color:#6b7280;flex:1}.report-sent-error{color:#dc2626}.rs-spinner{animation:rs-spin 1s linear infinite;margin-bottom:.75rem}@keyframes rs-spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.report-sent-summary{display:flex;justify-content:space-around;padding:1rem;background-color:#f9fafb;border-radius:8px;margin-bottom:1.25rem}.summary-stat{display:flex;flex-direction:column;align-items:center;gap:.25rem}.stat-value{font-size:1.5rem;font-weight:700;color:#1f2937}.stat-percentage{font-size:1.5rem;font-weight:700}.stat-label{font-size:.75rem;color:#6b7280;text-transform:uppercase;letter-spacing:.5px}.report-sent-classes{flex:1;overflow-y:auto;display:flex;flex-direction:column;gap:.75rem}.no-classes{text-align:center;padding:2rem;color:#9ca3af}.rs-no-data{text-align:center;padding:2rem;color:#6b7280}.rs-class-item{background-color:#f0f9ff;border:1px solid #bae6fd;border-radius:8px;padding:.875rem 1rem;cursor:pointer;transition:all .2s}.rs-class-item:hover{background-color:#e0f2fe;border-color:#7dd3fc;transform:translate(4px)}.rs-class-info{display:flex;justify-content:space-between;align-items:center;margin-bottom:.5rem}.rs-class-name{font-weight:600;color:#0c4a6e;font-size:.95rem}.rs-class-stats{font-size:.85rem;color:#0369a1;font-weight:500}.rs-progress-container{display:flex;align-items:center;gap:.75rem}.rs-progress-bar{flex:1;height:8px;background-color:#e0e7ff;border-radius:4px;overflow:hidden}.rs-progress-fill{height:100%;border-radius:4px;transition:width .3s ease}.rs-percentage{font-size:.85rem;font-weight:600;color:#1f2937;min-width:45px;text-align:right}.report-sent-wrapper{width:100%;height:100%}.rs-filter-btn,.rs-close-btn{display:none;padding:.5rem 1rem;border:none;border-radius:6px;font-size:.9rem;font-weight:500;cursor:pointer;transition:background-color .2s}.rs-filter-btn{background-color:#3b82f6;color:#fff}.rs-filter-btn:hover{background-color:#2563eb}.rs-close-btn{background-color:#6b7280;color:#fff}.rs-close-btn:hover{background-color:#4b5563}@media (max-width: 768px){.report-sent-card{padding:1rem}.report-sent-filters{flex-wrap:wrap}.rs-filter-select{flex:1 1 45%}.rs-filter-btn{display:block;width:100%;margin-top:.5rem}.rs-close-btn{display:none;width:100%;margin-top:.5rem}.rs-filters-active .rs-filter-btn{display:none}.rs-filters-active .rs-close-btn{display:block}.report-sent-summary{padding:.75rem}.stat-value,.stat-percentage{font-size:1.25rem}.rs-class-item{padding:.75rem}}.rsm-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background-color:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000;padding:20px}.rsm-modal{background:#fff;border-radius:12px;width:100%;max-width:800px;max-height:85vh;display:flex;flex-direction:column;box-shadow:0 4px 20px #00000026;animation:rsm-slide-in .3s ease}@keyframes rsm-slide-in{0%{opacity:0;transform:translateY(-20px)}to{opacity:1;transform:translateY(0)}}.rsm-header{display:flex;align-items:center;justify-content:space-between;padding:1.25rem 1.5rem;border-bottom:1px solid #e5e7eb;background:#f0f9ff;border-radius:12px 12px 0 0}.rsm-header h2{margin:0;font-size:1.25rem;color:#0c4a6e;font-weight:600}.rsm-close{background:none;border:none;padding:.5rem;cursor:pointer;color:#6b7280;border-radius:8px;transition:all .2s}.rsm-close:hover{background-color:#fee2e2;color:#dc2626}.rsm-summary{display:flex;gap:1rem;padding:1rem 1.5rem;background-color:#f9fafb;border-bottom:1px solid #e5e7eb}.rsm-summary-item{display:flex;align-items:center;gap:.5rem;padding:.5rem 1rem;border-radius:20px;font-size:.9rem;font-weight:600}.rsm-summary-item.sent{background-color:#d1fae5;color:#065f46}.rsm-summary-item.not-sent{background-color:#fee2e2;color:#991b1b}.rsm-filters{display:flex;flex-wrap:wrap;gap:.5rem;padding:1rem 1.5rem;background-color:#fff;border-bottom:1px solid #e5e7eb}.rsm-filter-btn{padding:.5rem .75rem;background-color:#f3f4f6;color:#4b5563;border:1px solid #d1d5db;border-radius:6px;font-size:.8rem;font-weight:500;cursor:pointer;transition:all .2s}.rsm-filter-btn:hover{background-color:#e5e7eb}.rsm-filter-btn.active{background-color:#3b82f6;color:#fff;border-color:#3b82f6}.rsm-content{flex:1;overflow-y:auto;padding:1.5rem}.rsm-loading,.rsm-error,.rsm-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:3rem;text-align:center;color:#6b7280}.rsm-spinner{animation:rsm-spin 1s linear infinite;margin-bottom:.75rem}@keyframes rsm-spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.rsm-error{color:#dc2626}.rsm-students-list{display:flex;flex-direction:column;gap:.75rem}.rsm-student-card{display:flex;align-items:center;padding:1rem 1.25rem;background-color:#fff;border:1px solid #e5e7eb;border-radius:10px;gap:1rem;transition:all .2s}.rsm-student-card:hover{border-color:#d1d5db;box-shadow:0 2px 8px #0000000d}.rsm-student-info{flex:1}.rsm-student-name{font-weight:600;color:#1f2937;font-size:1rem}.rsm-student-username{font-size:.85rem;color:#6b7280;margin-top:.25rem}.rsm-status-badge{display:flex;align-items:center;gap:.4rem;padding:.4rem .75rem;border-radius:6px;font-size:.85rem;font-weight:600;white-space:nowrap}.rsm-status-badge.status-sent{background-color:#d1fae5;color:#065f46}.rsm-status-badge.status-fees{background-color:#fee2e2;color:#991b1b}.rsm-status-badge.status-grades{background-color:#fef3c7;color:#92400e}.rsm-status-badge.status-both{background-color:#fecaca;color:#7f1d1d}.rsm-status-badge.status-not-sent{background-color:#f3f4f6;color:#4b5563}.rsm-sent-date{font-size:.8rem;color:#6b7280}@media (max-width: 768px){.rsm-modal{width:95%;max-height:90vh}.rsm-header{padding:1rem}.rsm-header h2{font-size:1.1rem}.rsm-filters{padding:.75rem 1rem}.rsm-filter-btn{font-size:.75rem;padding:.4rem .6rem}.rsm-content{padding:1rem}.rsm-student-card{flex-wrap:wrap;padding:.875rem}.rsm-status-badge{font-size:.8rem}.rsm-sent-date{width:100%;margin-top:.5rem}}.sism-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:10000;padding:1rem}.sism-modal{background:#fff;border-radius:12px;width:100%;max-width:700px;max-height:90vh;display:flex;flex-direction:column;box-shadow:0 20px 60px #0000004d}.sism-header{display:flex;justify-content:space-between;align-items:flex-start;padding:1.25rem 1.5rem;border-bottom:1px solid #e5e7eb}.sism-title h3{margin:0;font-size:1.25rem;font-weight:600;color:#1f2937}.sism-title p{margin:4px 0 0;font-size:.9rem;color:#6b7280}.sism-close-btn{background:transparent;border:none;padding:4px;cursor:pointer;color:#6b7280;border-radius:4px;transition:all .2s}.sism-close-btn:hover{background:#f3f4f6;color:#1f2937}.sism-info{display:flex;gap:1.5rem;padding:1rem 1.5rem;background:#f9fafb;border-bottom:1px solid #e5e7eb}.sism-info-item{display:flex;gap:6px}.sism-label{font-size:.85rem;color:#6b7280}.sism-value{font-size:.85rem;font-weight:600;color:#1f2937}.sism-incomplete-count{color:#ef4444}.sism-search-container{position:relative;padding:1rem 1.5rem;border-bottom:1px solid #e5e7eb}.sism-search-icon{position:absolute;left:2rem;top:50%;transform:translateY(-50%);color:#9ca3af}.sism-search-input{width:100%;padding:8px 12px 8px 36px;border:1px solid #d1d5db;border-radius:6px;font-size:.9rem;box-sizing:border-box}.sism-search-input:focus{outline:none;border-color:#8b5cf6;box-shadow:0 0 0 3px #8b5cf61a}.sism-content{flex:1;overflow-y:auto;padding:1rem 1.5rem}.sism-students-list{display:flex;flex-direction:column;gap:1rem}.sism-student-item{background:#f9fafb;border:1px solid #e5e7eb;border-radius:8px;padding:1rem}.sism-student-info{margin-bottom:.75rem}.sism-student-name{font-weight:600;color:#1f2937;font-size:1rem}.sism-student-username{font-size:.8rem;color:#6b7280;margin-top:2px}.sism-missing-scores{margin-bottom:.75rem}.sism-missing-label{font-size:.8rem;color:#6b7280;margin-bottom:6px}.sism-missing-tags{display:flex;flex-wrap:wrap;gap:6px}.sism-missing-tag{display:inline-block;padding:4px 10px;background:#fee2e2;color:#991b1b;border-radius:4px;font-size:.75rem;font-weight:500}.sism-current-scores{border-top:1px solid #e5e7eb;padding-top:.75rem}.sism-score-label{font-size:.8rem;color:#6b7280;margin-bottom:6px}.sism-scores-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.sism-score-item{display:flex;flex-direction:column;align-items:center;padding:8px;border-radius:6px;background:#fff;border:1px solid #e5e7eb}.sism-score-item.missing{background:#fef2f2;border-color:#fecaca}.sism-score-item.present{background:#f0fdf4;border-color:#bbf7d0}.sism-score-type{font-size:.7rem;color:#6b7280;text-transform:uppercase;margin-bottom:4px}.sism-score-value{font-size:1rem;font-weight:600;color:#1f2937}.sism-score-item.missing .sism-score-value{color:#ef4444}.sism-score-item.present .sism-score-value{color:#10b981}.sism-loading,.sism-error,.sism-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:3rem;text-align:center;color:#6b7280}.sism-spinner{width:32px;height:32px;border:3px solid #e5e7eb;border-top-color:#8b5cf6;border-radius:50%;animation:sism-spin 1s linear infinite;margin-bottom:.5rem}@keyframes sism-spin{to{transform:rotate(360deg)}}.sism-error{color:#ef4444}@media (max-width: 768px){.sism-modal{max-width:100%;max-height:95vh}.sism-info{flex-direction:column;gap:.5rem}.sism-scores-grid{grid-template-columns:1fr}}.subject-grading-wrapper{width:100%}.subject-grading-card{background:#fff;border-radius:12px;padding:1.5rem;box-shadow:0 2px 8px #00000014;border:1px solid #e5e7eb}.subject-grading-header{display:flex;align-items:center;gap:12px;margin-bottom:1rem}.subject-grading-header h3{margin:0;font-size:1.1rem;font-weight:600;color:#1f2937}.subject-grading-header p{margin:0;font-size:.85rem;color:#6b7280}.subject-grading-filters{display:flex;gap:.5rem;margin-bottom:1rem;flex-wrap:wrap}.sg-filter-select{flex:1;min-width:120px}.sg-filter-btn,.sg-close-btn{padding:6px 16px;border:none;border-radius:6px;font-size:.85rem;font-weight:500;cursor:pointer;transition:all .2s}.sg-filter-btn{background:#8b5cf6;color:#fff}.sg-filter-btn:hover{background:#7c3aed}.sg-close-btn{display:none;background:#ef4444;color:#fff}.sg-close-btn:hover{background:#dc2626}.sg-notify-section{margin-bottom:1rem;position:relative}.sg-notify-btn{display:flex;align-items:center;gap:8px;padding:8px 16px;background:#f59e0b;color:#fff;border:none;border-radius:6px;font-size:.85rem;font-weight:500;cursor:pointer;transition:all .2s}.sg-notify-btn:hover:not(:disabled){background:#d97706}.sg-notify-btn:disabled{opacity:.6;cursor:not-allowed}.sg-notification-result{display:flex;align-items:center;justify-content:space-between;margin-top:.5rem;padding:8px 12px;border-radius:6px;font-size:.85rem}.sg-notification-result.success{background:#d1fae5;color:#065f46}.sg-notification-result.error{background:#fee2e2;color:#991b1b}.sg-notification-result p{margin:0}.sg-close-result{background:transparent;border:none;font-size:1.2rem;cursor:pointer;padding:0 4px;color:inherit}.sg-search-container{position:relative;margin-bottom:1rem}.sg-search-icon{position:absolute;left:12px;top:50%;transform:translateY(-50%);color:#9ca3af}.sg-search-input{width:100%;padding:8px 12px 8px 36px;border:1px solid #d1d5db;border-radius:6px;font-size:.9rem;box-sizing:border-box}.sg-search-input:focus{outline:none;border-color:#8b5cf6;box-shadow:0 0 0 3px #8b5cf61a}.sg-subjects-list{display:flex;flex-direction:column;gap:.75rem;max-height:400px;overflow-y:auto}.sg-subject-item{display:flex;justify-content:space-between;align-items:center;padding:12px;background:#f9fafb;border-radius:8px;border:1px solid #e5e7eb;transition:all .2s}.sg-subject-item.clickable{cursor:pointer}.sg-subject-item.clickable:hover{background:#f3f4f6;border-color:#8b5cf6;transform:translateY(-1px);box-shadow:0 2px 4px #0000000d}.sg-subject-info{flex:1;min-width:0}.sg-subject-name{font-weight:600;color:#1f2937;font-size:.95rem;margin-bottom:4px}.sg-subject-details{display:flex;gap:12px;font-size:.8rem}.sg-class-name{color:#6b7280}.sg-teacher-name{color:#8b5cf6;font-weight:500}.sg-subject-stats{display:flex;flex-direction:column;align-items:flex-end;gap:4px}.sg-progress-container{display:flex;align-items:center;gap:8px}.sg-progress-bar{width:120px;height:8px;background:#e5e7eb;border-radius:4px;overflow:hidden}.sg-progress-fill{height:100%;border-radius:4px;transition:width .3s ease}.sg-percentage{font-size:.85rem;font-weight:600;color:#374151;min-width:45px;text-align:right}.sg-counts{display:flex;gap:8px;font-size:.75rem}.sg-complete{color:#10b981}.sg-incomplete{color:#ef4444}.sg-show-more-btn{display:flex;align-items:center;justify-content:center;gap:6px;width:100%;padding:10px;margin-top:1rem;background:#f3f4f6;border:1px solid #e5e7eb;border-radius:6px;font-size:.85rem;font-weight:500;color:#4b5563;cursor:pointer;transition:all .2s}.sg-show-more-btn:hover{background:#e5e7eb;color:#1f2937}.sg-summary{margin-top:1rem;padding-top:1rem;border-top:1px solid #e5e7eb}.sg-summary p{margin:0;font-size:.8rem;color:#6b7280;text-align:center}.sg-loading,.sg-error,.sg-empty,.sg-no-data,.sg-no-results{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:2rem;text-align:center;color:#6b7280}.sg-spinner{width:32px;height:32px;border:3px solid #e5e7eb;border-top-color:#8b5cf6;border-radius:50%;animation:sg-spin 1s linear infinite;margin-bottom:.5rem}@keyframes sg-spin{to{transform:rotate(360deg)}}.sg-error{color:#ef4444}@media (max-width: 768px){.sg-filter-btn{display:block}.sg-close-btn,.sg-filters-active .sg-filter-btn{display:none}.sg-filters-active .sg-close-btn{display:block}.subject-grading-filters{flex-wrap:nowrap}.sg-filter-select{min-width:0}.sg-subject-item{flex-direction:column;align-items:stretch;gap:8px}.sg-subject-stats{align-items:stretch}.sg-progress-container{width:100%}.sg-progress-bar{flex:1}.sg-counts{justify-content:space-between}}@media (min-width: 769px){.sg-filter-btn,.sg-close-btn{display:none}}.analytics-container{padding:1.5rem;width:100%;max-width:100%;box-sizing:border-box}.analytics-greeting{color:#333;font-size:1.5rem;font-weight:600;margin-top:0;margin-bottom:1.5rem}.dashboard-cards-grid{display:grid;grid-template-columns:1fr;gap:1.5rem;width:100%;box-sizing:border-box}.grid-item{display:flex;flex-direction:column;min-width:0;box-sizing:border-box}.grid-item-full-width{grid-column:1 / -1}@media (min-width: 769px){.analytics-container{padding:1.5rem 2rem}.dashboard-cards-grid{grid-template-columns:repeat(2,1fr);gap:1.75rem}}@media (min-width: 1200px){.analytics-container{padding:2rem;max-width:1800px;margin:0 auto}.dashboard-cards-grid{gap:2rem}}@media (min-width: 1600px){.analytics-container{padding:2.5rem;max-width:2000px}.dashboard-cards-grid{gap:2.5rem}}@media (max-width: 768px){.analytics-container{padding:.5rem;margin-top:0}.analytics-greeting{font-size:1.25rem;margin-top:0}.dashboard-cards-grid{grid-template-columns:1fr;gap:1rem}}@media (max-width: 480px){.analytics-container{padding:.25rem}.dashboard-cards-grid{gap:.75rem}}.react-calendar{width:350px;max-width:100%;background:#fff;border:1px solid #a0a096;font-family:Arial,Helvetica,sans-serif;line-height:1.125em}.react-calendar--doubleView{width:700px}.react-calendar--doubleView .react-calendar__viewContainer{display:flex;margin:-.5em}.react-calendar--doubleView .react-calendar__viewContainer>*{width:50%;margin:.5em}.react-calendar,.react-calendar *,.react-calendar *:before,.react-calendar *:after{-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box}.react-calendar button{margin:0;border:0;outline:none}.react-calendar button:enabled:hover{cursor:pointer}.react-calendar__navigation{display:flex;height:44px;margin-bottom:1em}.react-calendar__navigation button{min-width:44px;background:none}.react-calendar__navigation button:disabled{background-color:#f0f0f0}.react-calendar__navigation button:enabled:hover,.react-calendar__navigation button:enabled:focus{background-color:#e6e6e6}.react-calendar__month-view__weekdays{text-align:center;text-transform:uppercase;font:inherit;font-size:.75em;font-weight:700}.react-calendar__month-view__weekdays__weekday{padding:.5em}.react-calendar__month-view__weekNumbers .react-calendar__tile{display:flex;align-items:center;justify-content:center;font:inherit;font-size:.75em;font-weight:700}.react-calendar__month-view__days__day--weekend{color:#d10000}.react-calendar__month-view__days__day--neighboringMonth,.react-calendar__decade-view__years__year--neighboringDecade,.react-calendar__century-view__decades__decade--neighboringCentury{color:#757575}.react-calendar__year-view .react-calendar__tile,.react-calendar__decade-view .react-calendar__tile,.react-calendar__century-view .react-calendar__tile{padding:2em .5em}.react-calendar__tile{max-width:100%;padding:10px 6.6667px;background:none;text-align:center;font:inherit;font-size:.833em}.react-calendar__tile:disabled{background-color:#f0f0f0;color:#ababab}.react-calendar__month-view__days__day--neighboringMonth:disabled,.react-calendar__decade-view__years__year--neighboringDecade:disabled,.react-calendar__century-view__decades__decade--neighboringCentury:disabled{color:#cdcdcd}.react-calendar__tile:enabled:hover,.react-calendar__tile:enabled:focus{background-color:#e6e6e6}.react-calendar__tile--now{background:#ffff76}.react-calendar__tile--now:enabled:hover,.react-calendar__tile--now:enabled:focus{background:#ffffa9}.react-calendar__tile--hasActive{background:#76baff}.react-calendar__tile--hasActive:enabled:hover,.react-calendar__tile--hasActive:enabled:focus{background:#a9d4ff}.react-calendar__tile--active{background:#006edc;color:#fff}.react-calendar__tile--active:enabled:hover,.react-calendar__tile--active:enabled:focus{background:#1087ff}.react-calendar--selectRange .react-calendar__tile--hover{background-color:#e6e6e6}*{box-sizing:border-box}html,body{margin:0;padding:0;width:100%;overflow-x:hidden}.react-calendar__month-view__weekdays__weekday{color:#333!important;font-weight:600}.react-calendar__month-view__weekdays__weekday abbr{text-decoration:none;color:#333!important}.react-calendar__tile,.react-calendar__navigation button,.react-calendar__navigation__label{color:#333!important}.create-attendance-vertical-layout .react-calendar__month-view__weekdays__weekday,.edit-calendar-modal-content .react-calendar__month-view__weekdays__weekday,.attendance-marking-modal-content .react-calendar__month-view__weekdays__weekday{color:#333!important;font-weight:600}.create-attendance-vertical-layout .react-calendar__tile,.edit-calendar-modal-content .react-calendar__tile,.attendance-marking-modal-content .react-calendar__tile,.create-attendance-vertical-layout .react-calendar__navigation button,.edit-calendar-modal-content .react-calendar__navigation button,.attendance-marking-modal-content .react-calendar__navigation button,.calendar-legend span{color:#333!important}.attendance-tabs{display:flex;justify-content:center;margin-bottom:1.5rem;gap:1rem;width:100%}.attendance-tabs button{padding:.6rem 1.2rem;font-size:1rem;border:none;border-radius:6px;background-color:#eee;cursor:pointer;transition:background-color .3s ease}.attendance-tabs button.active-tab{background-color:#1565c0;color:#fff}.attendance-tabs button:hover{background-color:#ccc}.create-attendance-wrapper{display:flex;justify-content:center;align-items:flex-start;padding:0 1rem 2rem;min-height:100vh;background-color:#fff;width:100%;box-sizing:border-box;overflow-x:hidden;margin:0 auto}.create-attendance-container{max-width:960px;width:100%;background-color:#fff;padding:2rem;border-radius:10px;border:1px solid #e0e0e0;box-shadow:0 6px 16px #00000014;overflow-x:hidden;box-sizing:border-box;margin:0 auto}.attendance-section-header{margin-bottom:1.5rem;font-size:1.6rem;font-weight:600;color:#0d47a1;text-align:center;border-bottom:1px solid #e0e0e0;padding-bottom:.5rem;width:100%}.attendance-form{display:flex;flex-wrap:wrap;gap:1rem;margin-bottom:1.5rem;width:100%}.attendance-form .react-select__control{background-color:#fff;border:1px solid #ccc;font-size:1rem;color:#222;min-width:180px;width:100%}.attendance-form .react-select__single-value{color:#222!important}.attendance-form .react-select__placeholder{color:#555}.attendance-error-msg{margin-top:.5rem;color:#c62828;font-weight:500;width:100%}.attendance-submit-btn{margin-top:2rem;width:100%;padding:.9rem;font-size:1rem;background-color:#1565c0;color:#fff;font-weight:500;border:none;border-radius:6px;cursor:pointer}.attendance-submit-btn:hover{background-color:#0d47a1}.mobile-header-only{display:none;text-align:left;color:#0d47a1;font-size:1.2rem;font-weight:600;margin-bottom:1rem;width:100%}.create-attendance-vertical-layout{display:flex;flex-direction:column;gap:1.5rem;width:100%;overflow-x:hidden}.calendar-controls-column{width:100%;box-sizing:border-box}.calendar-controls-column h3{color:#0d47a1;font-size:1.2rem;font-weight:600;margin-bottom:1rem}.date-inputs-container{display:flex;flex-direction:column;gap:1.2rem;margin-bottom:1.5rem;width:100%}.date-input-group{display:flex;flex-direction:column;gap:.5rem;width:100%}.date-label{font-size:1rem;font-weight:500;color:#333}.date-field{padding:.9rem;font-size:1rem;border-radius:6px;border:1px solid #ccc;width:100%;max-width:300px;box-sizing:border-box}.control-actions{display:flex;flex-wrap:wrap;align-items:center;gap:1.5rem;margin-top:.5rem;width:100%}.exclude-weekends-group{display:flex;align-items:center;gap:.6rem}.weekend-checkbox{width:18px;height:18px;cursor:pointer}.weekend-label{font-size:1rem;font-weight:500;color:#333;cursor:pointer}.auto-populate-btn{padding:.85rem 1.2rem;font-size:1rem;border-radius:6px;border:1px solid #ccc;background-color:#1565c0;color:#fff;font-weight:500;cursor:pointer}.auto-populate-btn:hover{background-color:#0d47a1}.calendar-display-column{width:100%;display:flex;flex-direction:column;gap:1rem;box-sizing:border-box;overflow-x:hidden}.calendar-display-column .react-calendar{width:100%!important;border:1px solid #e0e0e0;border-radius:6px;padding:1rem;box-sizing:border-box}.school-day{background-color:#42a5f5!important;color:#fff!important;border-radius:50%!important}.holiday-day{background-color:#d32f2f!important;color:#fff!important;border-radius:50%!important}.holiday-labels{margin-top:1.5rem;background-color:#f9f9f9;padding:1rem;border-radius:6px;border:1px solid #ddd;width:100%;box-sizing:border-box}.holiday-labels h4{color:#d32f2f;font-size:1.1rem;margin-bottom:.8rem}.holiday-inputs{display:flex;flex-direction:column;gap:.8rem;width:100%}.holiday-input-group{display:flex;flex-direction:column;gap:.4rem;width:100%}.holiday-input-group input{padding:.6rem;font-size:.95rem;width:100%;border:1px solid #ccc;border-radius:6px;box-sizing:border-box}.submit-calendar-btn{margin-top:1.5rem;padding:.9rem;font-size:1rem;background-color:#388e3c;color:#fff;font-weight:500;border:none;border-radius:6px;cursor:pointer;align-self:flex-end;max-width:100%;box-sizing:border-box}.submit-calendar-btn:hover{background-color:#2e7d32}.submit-calendar-btn:disabled{background-color:#ccc;cursor:not-allowed}.form-message{margin-top:1rem;padding:.75rem;border-radius:6px;font-weight:500;text-align:center}.form-message.success{background-color:#e8f5e8;color:#2e7d32;border:1px solid #c8e6c9}.view-attendance-wrapper{display:flex;justify-content:center;padding:1rem;background-color:#fff;width:100%;box-sizing:border-box}.view-attendance-container{max-width:960px;width:100%;background-color:#fff;padding:2rem;border-radius:10px;border:1px solid #e0e0e0;box-shadow:0 6px 16px #00000014}.view-attendance-filters{display:flex;flex-wrap:wrap;gap:1rem;margin-bottom:1.5rem;align-items:center}.load-data-btn{background-color:#1565c0;color:#fff;padding:.7rem 1.2rem;font-size:.95rem;font-weight:500;border:none;border-radius:6px;cursor:pointer;transition:background-color .3s ease}.load-data-btn:hover{background-color:#0d47a1}.edit-calendar-btn{background-color:#ff9800;color:#fff;padding:.7rem 1.2rem;font-size:.95rem;font-weight:500;border:none;border-radius:6px;cursor:pointer;display:flex;align-items:center;gap:.5rem;transition:background-color .3s ease}.edit-calendar-btn:hover{background-color:#f57c00}.loading-text{color:#0d47a1;font-weight:500;margin-bottom:1rem}.holiday-summary h4,.class-summary h4{color:#0d47a1;font-size:1.15rem;font-weight:600;margin-bottom:.75rem}.holiday-summary ul,.class-summary ul{padding-left:1.2rem;margin:0;color:#222;font-size:.95rem}.class-list{list-style:disc}.class-name{margin-bottom:.5rem;font-weight:500;cursor:pointer;color:#1565c0;text-decoration:underline}.class-name:hover{color:#0d47a1}.edit-calendar-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background-color:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000;padding:1rem;box-sizing:border-box}.edit-calendar-modal-container{max-width:960px;width:100%;max-height:90vh;background-color:#fff;border-radius:10px;border:1px solid #e0e0e0;box-shadow:0 6px 16px #00000014;overflow-y:auto;box-sizing:border-box;position:relative}.edit-calendar-modal-header{display:flex;justify-content:space-between;align-items:center;padding:1.5rem 2rem 1rem;border-bottom:1px solid #e0e0e0;background-color:#fff;border-radius:10px 10px 0 0}.edit-calendar-modal-header h2{color:#0d47a1;font-size:1.6rem;font-weight:600;margin:0}.edit-calendar-close-btn{background:none;border:none;cursor:pointer;color:#666;padding:.5rem;border-radius:4px;transition:background-color .2s ease}.edit-calendar-close-btn:hover{background-color:#f5f5f5;color:#333}.edit-calendar-modal-content{padding:2rem;overflow-x:hidden;box-sizing:border-box}.edit-calendar-modal-content .mobile-header-only{display:block;text-align:center;color:#0d47a1;font-size:1.2rem;font-weight:600;margin-bottom:1rem;width:100%}.attendance-marking-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background-color:#0009;display:flex;align-items:center;justify-content:center;z-index:1000;padding:20px;overflow-y:auto}@media (max-width: 600px){html,body{overflow-x:hidden}.create-attendance-wrapper{position:fixed;top:30px;left:0;width:100vw;height:100vh;background-color:#fff;display:flex;justify-content:center;align-items:flex-start;z-index:5}.create-attendance-container{width:100%;max-width:100%;padding:1.5rem;margin:0 auto;border:none;border-radius:0;box-shadow:none;box-sizing:border-box}.mobile-header-only{display:block;width:100%;text-align:center;margin-bottom:1rem}.calendar-display-column .react-calendar{width:100%!important;max-width:100%;padding:.5rem}.attendance-marking-overlay{padding:10px}.attendance-marking-modal-container{max-width:100%;max-height:98vh;border-radius:8px}.attendance-marking-modal-header{padding:15px;flex-direction:column;gap:10px}.attendance-marking-modal-content{padding:15px}}.student-attendance-item,.attendance-marking-close-btn,.bulk-actions button,.attendance-action-buttons button{transition:all .2s ease}.attendance-marking-modal-container{background-color:#fff;border-radius:12px;max-width:1200px;width:100%;max-height:95vh;overflow-y:auto;box-shadow:0 10px 40px #0000004d;display:flex;flex-direction:column}.attendance-marking-modal-header{display:flex;justify-content:space-between;align-items:flex-start;padding:20px 25px;border-bottom:2px solid #e0e0e0;background-color:#f8f9fa;border-radius:12px 12px 0 0}.attendance-marking-modal-header h2{margin:0;color:#0d47a1;font-size:1.5rem;font-weight:600}.attendance-marking-close-btn{background:none;border:none;cursor:pointer;color:#666;padding:5px;display:flex;align-items:center;justify-content:center;transition:all .2s;border-radius:4px}.attendance-marking-close-btn:hover{background-color:#e0e0e0;color:#000}.attendance-marking-modal-content{padding:25px;overflow-y:auto;flex:1}.attendance-marking-calendar-section{margin-bottom:25px}.attendance-marking-calendar-section h3{margin:0 0 15px;color:#333;font-size:1.2rem;font-weight:600}.attendance-marking-calendar-section .react-calendar{width:100%;max-width:100%;border:1px solid #ddd;border-radius:8px;padding:15px;font-family:inherit}.attendance-student-section{margin-top:25px;padding:20px;background-color:#f8f9fa;border-radius:8px;border:1px solid #e0e0e0}.selected-date-header h3{margin:0 0 15px;color:#0d47a1;font-size:1.1rem;font-weight:600}.student-attendance-item:hover{background-color:#f0f0f0!important}.student-attendance-item:last-child{border-bottom:none}.marked-attendance-day{background-color:#c8e6c9!important;color:#2e7d32!important;font-weight:600}.marked-attendance-day:hover{background-color:#a5d6a7!important}@media (max-width: 768px){.attendance-marking-overlay{padding:10px}.attendance-marking-modal-container{max-width:100%;max-height:98vh;border-radius:8px}.attendance-marking-modal-header{padding:15px;flex-direction:column;gap:10px}.attendance-marking-modal-header h2{font-size:1.2rem}.attendance-marking-modal-content{padding:15px}.attendance-marking-calendar-section .react-calendar{padding:10px;font-size:.85rem}.calendar-legend{flex-direction:column;gap:8px!important}.students-list{max-height:300px!important}.student-attendance-item{padding:10px!important;flex-direction:column;align-items:flex-start!important;gap:8px}.bulk-actions{flex-direction:column}.bulk-actions button{width:100%}.attendance-action-buttons{flex-direction:column}.attendance-action-buttons button{width:100%}.attendance-summary{flex-direction:column!important;gap:8px}}.student-attendance-item{transition:background-color .2s ease}.attendance-marking-close-btn,.bulk-actions button,.attendance-action-buttons button{transition:all .2s ease}.bulk-actions button:hover{opacity:.9;transform:translateY(-1px)}.attendance-action-buttons button:hover:not(:disabled){opacity:.9;transform:translateY(-1px)}.attendance-modal-overlay{position:fixed;top:0;left:0;width:100vw;height:100vh;background-color:#0009;display:flex;align-items:center;justify-content:center;z-index:1000}.attendance-modal{background-color:#fff;border-radius:10px;width:92%;max-width:520px;height:90vh;padding:2rem 1.5rem;box-shadow:0 8px 20px #0d47a11a;border:1px solid #e0e0e0;position:relative;display:flex;flex-direction:column;overflow:hidden}.attendance-modal h3{text-align:center;color:#0d47a1;font-size:1.5rem;margin-bottom:1rem}.attendance-modal ul{list-style:none;padding:0;margin:0;overflow-y:auto;flex-grow:1}.attendance-modal li{background-color:#f9f9f9;padding:1rem;border-radius:6px;margin-bottom:1rem;box-shadow:0 2px 4px #0000000d;cursor:pointer;transition:background-color .2s ease}.attendance-modal li:hover{background-color:#e3f2fd}.attendance-subject-info{color:#0d47a1;font-weight:600;font-size:1rem}.close-attendance-modal-btn{position:absolute;top:10px;right:10px;font-size:1.5rem;background:none;border:none;color:red;font-weight:700;cursor:pointer;z-index:1010}.class-name{font-weight:600;color:#0d47a1;cursor:pointer}.attendance-modal-overlay{position:fixed;top:0;left:0;width:100vw;height:100vh;background-color:#00000080;z-index:999;display:flex;justify-content:center;align-items:center;padding:1rem}.attendance-modal{background-color:#fff;padding:2rem;border-radius:10px;width:100%;max-width:600px;box-shadow:0 8px 20px #00000026;position:relative}.attendance-modal h4{font-size:1.5rem;color:#0d47a1;margin-bottom:1.2rem;text-align:center}.student-attendance-table-wrapper{margin-top:2rem;width:100%;overflow-x:auto;padding:0 1rem}.table-heading{font-size:1.4rem;color:#0d47a1;margin-bottom:1rem;font-weight:700;text-align:center}.attendance-table{width:100%;border-collapse:collapse;font-size:.95rem;background-color:#fff;box-shadow:0 4px 10px #0000000a}.attendance-table th,.attendance-table td{padding:.9rem;text-align:left;border-bottom:1px solid #ddd}.attendance-table th{background-color:#e3f2fd;color:#0d47a1;font-weight:600}.attendance-table td{color:#222}.clickable-cell{cursor:pointer;color:#1565c0;font-weight:500}.clickable-cell:hover{text-decoration:underline}.selected-day{background-color:#42a5f5!important;color:#fff!important;border-radius:50%!important}.modal-actions{display:flex;justify-content:flex-end;gap:1rem;margin-top:1rem}.save-btn,.cancel-btn{padding:.6rem 1.2rem;font-size:.95rem;border:none;border-radius:6px;cursor:pointer;transition:background-color .3s ease}.save-btn{background-color:#1565c0;color:#fff}.save-btn:hover{background-color:#0d47a1}.cancel-btn{background-color:#ccc;color:#222}.cancel-btn:hover{background-color:#bbb}.settings-container{padding:0 20px 20px;max-width:1200px;margin:0 auto;background-color:#f8f9fa;min-height:100vh;box-sizing:border-box;width:100%}.settings-header{display:flex;align-items:center;gap:15px;margin-bottom:30px;padding:20px;background:#fff;border-radius:8px;box-shadow:0 2px 4px #0000001a;box-sizing:border-box;width:100%}.settings-header h2{margin:0;color:#333;font-size:1.8rem}.settings-header p{margin:5px 0 0;color:#666;font-size:.95rem}.settings-tabs{display:flex;gap:10px;margin-bottom:20px;background:#fff;padding:10px;border-radius:8px;box-shadow:0 2px 4px #0000001a;box-sizing:border-box;width:100%}.settings-tabs button{padding:10px 20px;border:none;background:#f8f9fa;color:#666;border-radius:6px;cursor:pointer;font-weight:500;transition:all .2s}.settings-tabs button.active{background:#007bff;color:#fff}.settings-tabs button:hover{background:#e9ecef}.settings-tabs button.active:hover{background:#0056b3}.message{display:flex;align-items:center;gap:10px;padding:12px 16px;border-radius:6px;margin-bottom:20px;font-weight:500;box-sizing:border-box;width:100%}.settings-content{display:flex;flex-direction:column;gap:30px;width:100%;box-sizing:border-box}.settings-section{background:#fff;padding:25px;border-radius:8px;box-shadow:0 2px 4px #0000001a;box-sizing:border-box;width:100%}.settings-section h3{margin:0 0 10px;color:#333;font-size:1.4rem}.settings-section>p{color:#666;margin-bottom:25px;line-height:1.5}.grading-config-form,.grading-scale-form{display:flex;flex-direction:column;gap:20px;width:100%;box-sizing:border-box}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:20px;width:100%;box-sizing:border-box}.form-group{display:flex;flex-direction:column;gap:5px;box-sizing:border-box}.form-group label{font-weight:600;color:#333;font-size:.95rem}.form-group input,.form-group select{padding:10px 12px;border:1px solid #ddd;border-radius:4px;font-size:.95rem;transition:border-color .2s;box-sizing:border-box;width:100%}.form-group input:focus,.form-group select:focus{outline:none;border-color:#007bff;box-shadow:0 0 0 2px #007bff40}.percentage-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:20px;padding:20px;background:#f8f9fa;border-radius:6px;border:2px dashed #dee2e6;box-sizing:border-box;width:100%}.percentage-item{display:flex;flex-direction:column;gap:5px;box-sizing:border-box}.percentage-item label{font-weight:600;color:#333;font-size:.9rem}.percentage-item input{padding:8px 10px;border:1px solid #ddd;border-radius:4px;font-size:.95rem;text-align:center;transition:border-color .2s;box-sizing:border-box;width:100%}.percentage-item input:focus{outline:none;border-color:#007bff}.percentage-item small{color:#666;font-size:.8rem;text-align:center}.grade-boundaries{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:20px;padding:20px;background:#f8f9fa;border-radius:6px;border:2px dashed #dee2e6;box-sizing:border-box;width:100%}.grade-item{display:flex;flex-direction:column;gap:5px;box-sizing:border-box}.grade-item label{font-weight:600;color:#333;font-size:.9rem}.grade-item input{padding:8px 10px;border:1px solid #ddd;border-radius:4px;font-size:.95rem;text-align:center;transition:border-color .2s;box-sizing:border-box;width:100%}.grade-item input:focus{outline:none;border-color:#007bff}.grade-preview{padding:15px;background:#e9ecef;border-radius:6px;border-left:4px solid #28a745;box-sizing:border-box;width:100%}.grade-preview p{margin:5px 0;font-size:.9rem;color:#495057}.validation-info{padding:15px;background:#f8f9fa;border-radius:6px;border-left:4px solid #007bff;box-sizing:border-box;width:100%}.total-display{font-size:1.1rem;font-weight:600;margin-bottom:10px}.total-display.valid{color:#28a745}.total-display.invalid{color:#dc3545}.validation-errors{display:flex;flex-direction:column;gap:5px}.error-item{color:#dc3545;font-size:.9rem;font-weight:500}.save-config-btn{display:flex;align-items:center;justify-content:center;gap:8px;padding:12px 24px;background:#007bff;color:#fff;border:none;border-radius:6px;font-size:1rem;font-weight:600;cursor:pointer;transition:background-color .2s;align-self:flex-start;box-sizing:border-box}.save-config-btn:hover:not(:disabled){background:#0056b3}.save-config-btn:disabled{background:#6c757d;cursor:not-allowed}.configs-list,.scales-list{display:flex;flex-direction:column;gap:15px;width:100%;box-sizing:border-box}.config-item,.scale-item{padding:15px;border:1px solid #dee2e6;border-radius:6px;background:#f8f9fa;box-sizing:border-box;width:100%}.config-header,.scale-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:10px;flex-wrap:wrap;gap:10px}.config-header h4,.scale-header h4{margin:0;color:#333;font-size:1.1rem}.config-status,.scale-status{background:#28a745;color:#fff;padding:2px 8px;border-radius:12px;font-size:.8rem;font-weight:500}.scale-description{color:#666;font-size:.9rem;margin:5px 0 10px;font-style:italic}.scale-session-info{display:flex;gap:15px;margin-bottom:10px;flex-wrap:wrap}.session-info{background:#e3f2fd;color:#1976d2;padding:3px 8px;border-radius:4px;font-size:.8rem;font-weight:500}.config-details,.scale-details{display:flex;gap:15px;flex-wrap:wrap}.config-details span,.scale-details span{background:#fff;padding:5px 10px;border-radius:4px;font-size:.9rem;color:#555;border:1px solid #dee2e6}@media (max-width: 768px){.settings-container{padding:0 10px 10px;margin:0}.settings-header{padding:15px;margin-bottom:20px}.settings-section{padding:15px}.form-row{grid-template-columns:1fr;gap:15px}.percentage-grid,.grade-boundaries{grid-template-columns:1fr 1fr;gap:15px;padding:15px}.config-details,.scale-details{flex-direction:column;gap:8px}.settings-tabs{flex-direction:column;gap:5px}.settings-tabs button{padding:12px 15px;width:100%;text-align:center}.scale-session-info{gap:10px}}@media (max-width: 480px){.settings-container{padding:5px}.settings-header{flex-direction:column;align-items:flex-start;gap:10px;padding:10px}.settings-header h2{font-size:1.5rem}.settings-section{padding:10px}.percentage-grid,.grade-boundaries{grid-template-columns:1fr;padding:10px}.config-header,.scale-header{flex-direction:column;align-items:flex-start;gap:5px}.scale-session-info{flex-direction:column;gap:5px}}.config-header,.scale-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:.75rem}.config-actions,.scale-actions{display:flex;align-items:center;gap:.75rem}.delete-btn{background-color:transparent;border:none;color:#dc3545;cursor:pointer;padding:.5rem;border-radius:4px;transition:all .2s ease;display:flex;align-items:center;justify-content:center}.delete-btn:hover{background-color:#ffe6e6;color:#c82333}.delete-btn:active{transform:scale(.95)}.delete-modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background-color:#0009;display:flex;align-items:center;justify-content:center;z-index:1000;padding:1rem}.delete-modal{background-color:#fff;border-radius:10px;max-width:500px;width:100%;box-shadow:0 10px 40px #0000004d;animation:modalSlideIn .3s ease}@keyframes modalSlideIn{0%{opacity:0;transform:translateY(-20px)}to{opacity:1;transform:translateY(0)}}.delete-modal-header{display:flex;justify-content:space-between;align-items:center;padding:1.5rem;border-bottom:2px solid #f0f0f0}.delete-modal-header h3{margin:0;color:#dc3545;font-size:1.3rem;font-weight:600}.close-modal-btn{background:none;border:none;cursor:pointer;color:#666;padding:.5rem;border-radius:4px;transition:all .2s ease;display:flex;align-items:center;justify-content:center}.close-modal-btn:hover{background-color:#f0f0f0;color:#333}.delete-modal-content{padding:1.5rem}.delete-modal-content p{margin:0 0 1rem;color:#333;line-height:1.5}.delete-warning{color:#dc3545;font-weight:500;font-size:.9rem}.delete-modal-actions{display:flex;justify-content:flex-end;gap:1rem;padding:1.5rem;border-top:2px solid #f0f0f0}.cancel-btn{padding:.75rem 1.5rem;background-color:#6c757d;color:#fff;border:none;border-radius:6px;font-size:.95rem;font-weight:500;cursor:pointer;transition:all .2s ease}.cancel-btn:hover:not(:disabled){background-color:#5a6268}.cancel-btn:disabled{opacity:.6;cursor:not-allowed}.confirm-delete-btn{padding:.75rem 1.5rem;background-color:#dc3545;color:#fff;border:none;border-radius:6px;font-size:.95rem;font-weight:500;cursor:pointer;transition:all .2s ease;display:flex;align-items:center;gap:.5rem}.confirm-delete-btn:hover:not(:disabled){background-color:#c82333}.confirm-delete-btn:disabled{opacity:.6;cursor:not-allowed}@media (max-width: 768px){.delete-modal{margin:1rem;max-width:calc(100% - 2rem)}.delete-modal-header,.delete-modal-content,.delete-modal-actions{padding:1rem}.delete-modal-actions{flex-direction:column}.cancel-btn,.confirm-delete-btn{width:100%}}.modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background-color:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000;padding:1rem}.grades-modal{background-color:#fff;border-radius:12px;max-width:1200px;width:100%;max-height:90vh;display:flex;flex-direction:column;box-shadow:0 20px 25px -5px #0000001a}.loading-modal{padding:3rem;display:flex;align-items:center;justify-content:center}.loading-spinner{font-size:1.2rem;color:#3b82f6}.modal-header{display:flex;justify-content:space-between;align-items:flex-start;padding:1.5rem 2rem;border-bottom:2px solid #e5e7eb}.modal-title h2{margin:0;font-size:1.5rem;color:#111827}.modal-subtitle{margin:.25rem 0 0;color:#6b7280;font-size:.9rem}.close-btn{background:none;border:none;cursor:pointer;padding:.25rem;color:#6b7280;transition:color .2s;border-radius:4px}.close-btn:hover{color:#111827;background-color:#f3f4f6}.grading-config-info{padding:1rem 2rem;background-color:#f9fafb;border-bottom:1px solid #e5e7eb}.grading-config-info h4{margin:0 0 .75rem;font-size:.95rem;color:#374151;font-weight:600}.config-badges{display:flex;gap:.75rem;flex-wrap:wrap}.config-badge{padding:.375rem .75rem;background-color:#fff;border:1px solid #d1d5db;border-radius:6px;font-size:.85rem;color:#374151;font-weight:500}.modal-body{flex:1;overflow-y:auto;padding:1.5rem 2rem}.no-students{display:flex;align-items:center;justify-content:center;padding:3rem;color:#9ca3af}.grades-table-container{overflow-x:auto}.grades-table{width:100%;border-collapse:collapse;font-size:.9rem}.grades-table thead{background-color:#f9fafb;position:sticky;top:0;z-index:10}.grades-table th{padding:.875rem .75rem;text-align:left;font-weight:600;color:#374151;border-bottom:2px solid #e5e7eb}.grades-table th.student-col{min-width:200px}.grades-table th.grade-col{min-width:120px;text-align:center}.grades-table th.total-col{min-width:100px;text-align:center}.grades-table tbody tr{border-bottom:1px solid #e5e7eb;transition:background-color .2s}.grades-table tbody tr:hover{background-color:#f9fafb}.grades-table td{padding:.875rem .75rem}.student-info{display:flex;flex-direction:column;gap:.25rem}.student-name{font-weight:500;color:#111827}.student-details{font-size:.85rem;color:#6b7280}.grade-cell{display:flex;align-items:center;justify-content:center;gap:.5rem}.grade-value{font-weight:500;color:#111827;display:flex;align-items:baseline;gap:.25rem}.max-value{font-size:.8rem;color:#9ca3af;font-weight:400}.edit-btn-small{background:none;border:none;cursor:pointer;padding:.25rem;color:#6b7280;transition:all .2s;border-radius:4px}.edit-btn-small:hover{color:#3b82f6;background-color:#eff6ff}.lock-icon{color:#f59e0b;cursor:help}.edit-cell{display:flex;align-items:center;justify-content:center;gap:.5rem}.grade-input{width:80px;padding:.375rem .5rem;border:2px solid #3b82f6;border-radius:4px;font-size:.9rem;text-align:center}.grade-input:focus{outline:none;box-shadow:0 0 0 3px #3b82f61a}.edit-actions{display:flex;gap:.25rem}.save-btn-small,.cancel-btn-small{padding:.375rem;border:none;border-radius:4px;cursor:pointer;transition:all .2s;display:flex;align-items:center;justify-content:center}.save-btn-small{background-color:#10b981;color:#fff}.save-btn-small:hover{background-color:#059669}.save-btn-small:disabled{background-color:#9ca3af;cursor:not-allowed}.cancel-btn-small{background-color:#ef4444;color:#fff}.cancel-btn-small:hover{background-color:#dc2626}.total-score{text-align:center;font-weight:600;color:#111827;font-size:1rem}.letter-grade{text-align:center}.grade-badge{display:inline-block;padding:.375rem .75rem;border-radius:6px;font-weight:600;font-size:.9rem}.grade-A{background-color:#d1fae5;color:#065f46}.grade-B{background-color:#dbeafe;color:#1e40af}.grade-C{background-color:#fef3c7;color:#92400e}.grade-D{background-color:#fed7aa;color:#9a3412}.grade-F{background-color:#fee2e2;color:#991b1b}.modal-footer{padding:1rem 2rem;border-top:1px solid #e5e7eb;background-color:#f9fafb}.footer-note{margin:0;font-size:.85rem;color:#6b7280;display:flex;align-items:center;gap:.5rem}@media (max-width: 768px){.grades-modal{max-height:95vh}.modal-header,.modal-body{padding:1rem 1.25rem}.modal-footer{padding:.875rem 1.25rem}.config-badges{gap:.5rem}.config-badge{font-size:.8rem;padding:.25rem .5rem}.grades-table{font-size:.85rem}.grades-table th,.grades-table td{padding:.625rem .5rem}}.view-results-container{padding:0 2rem 2rem;max-width:1400px;margin:0 auto}.view-results-header{display:flex;align-items:center;gap:1rem;margin-bottom:2rem;padding-bottom:1rem;border-bottom:2px solid #e5e7eb}.view-results-header h2{margin:0;font-size:1.75rem;color:#111827}.view-results-header p{margin:.25rem 0 0;color:#6b7280;font-size:.95rem}.message{display:flex;align-items:center;gap:.75rem;padding:1rem 1.25rem;border-radius:8px;margin-bottom:1.5rem;font-size:.95rem}.message.success{background-color:#d1fae5;color:#065f46;border:1px solid #a7f3d0}.message.error{background-color:#fee2e2;color:#991b1b;border:1px solid #fecaca}.filters-section{background-color:#fff;border-radius:12px;padding:1.5rem;box-shadow:0 1px 3px #0000001a;margin-bottom:2rem}.filters-header{display:flex;align-items:center;gap:.5rem;margin-bottom:1.25rem}.filters-header h3{margin:0;font-size:1.25rem;color:#111827}.filters-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:1.25rem;margin-bottom:1.5rem}.form-group label{font-weight:500;color:#374151;font-size:.9rem}.form-group select{padding:.625rem .875rem;border:1.5px solid #d1d5db;border-radius:6px;font-size:.95rem;background-color:#fff;transition:all .2s}.form-group select:focus{outline:none;border-color:#3b82f6;box-shadow:0 0 0 3px #3b82f61a}.search-btn{display:flex;align-items:center;justify-content:center;gap:.5rem;padding:.75rem 1.5rem;background-color:#3b82f6;color:#fff;border:none;border-radius:8px;font-weight:500;cursor:pointer;transition:all .2s;width:fit-content}.search-btn:hover{background-color:#2563eb;transform:translateY(-1px)}.search-btn:disabled{background-color:#9ca3af;cursor:not-allowed;transform:none}.sync-btn{display:flex;align-items:center;justify-content:center;gap:.5rem;padding:.75rem 1.5rem;background-color:#10b981;color:#fff;border:none;border-radius:8px;font-weight:500;cursor:pointer;transition:all .2s;width:fit-content;margin-top:1rem}.sync-btn:hover{background-color:#059669;transform:translateY(-1px)}.sync-btn:disabled{background-color:#9ca3af;cursor:not-allowed;transform:none}.session-info{background:linear-gradient(135deg,#60a5fa,#3b82f6);color:#fff;padding:1.25rem 1.5rem;border-radius:10px;margin-bottom:2rem}.session-info h4{margin:0 0 .75rem;font-size:1.1rem;font-weight:600}.session-details{display:flex;gap:2rem;flex-wrap:wrap;font-size:.95rem}.session-details span{display:flex;gap:.5rem}.subjects-section{margin-top:2rem}.subjects-header{margin-bottom:1.5rem}.subjects-header h3{margin:0 0 .25rem;font-size:1.5rem;color:#111827}.subjects-header p{margin:0;color:#6b7280;font-size:.9rem}.subjects-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:1.25rem}.subject-card{background-color:#fff;border:2px solid #e5e7eb;border-radius:10px;padding:1.25rem;cursor:pointer;transition:all .2s}.subject-card:hover{border-color:#3b82f6;box-shadow:0 4px 12px #3b82f626;transform:translateY(-2px)}.subject-card-header{display:flex;align-items:center;gap:.75rem;margin-bottom:1rem;padding-bottom:.75rem;border-bottom:1px solid #e5e7eb}.subject-card-header h4{margin:0;font-size:1.15rem;color:#111827}.subject-card-body{display:flex;flex-direction:column;gap:.5rem}.subject-card-body p{margin:0;font-size:.9rem;color:#4b5563}.subject-card-footer{display:flex;align-items:center;gap:.5rem;margin-top:.75rem;padding-top:.75rem;border-top:1px solid #e5e7eb;color:#6b7280;font-size:.9rem}.no-subjects{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:4rem 2rem;color:#9ca3af;text-align:center}.no-subjects p{margin-top:1rem;font-size:1.1rem}@media (max-width: 768px){.view-results-container{padding:5rem 1rem 1rem;overflow-x:hidden}.view-results-header{flex-direction:row;align-items:center;gap:.75rem}.view-results-header h2{font-size:1.5rem;word-break:break-word}.view-results-header p{font-size:.875rem}.filters-section{padding:1.25rem;overflow:hidden}.filters-grid{grid-template-columns:1fr}.form-group label,.form-group select{font-size:.875rem}.search-btn,.sync-btn{width:100%;justify-content:center}.session-info{padding:1rem}.session-info h4{font-size:1rem}.session-details{flex-direction:column;gap:.5rem;font-size:.875rem}.subjects-grid{grid-template-columns:1fr}.subject-card{padding:1rem}.subject-card-header h4{font-size:1rem;word-break:break-word}.subject-card-body p{font-size:.875rem;word-break:break-word}}@media (max-width: 480px){.view-results-container{padding:5rem .75rem .75rem}.view-results-header h2{font-size:1.25rem}.view-results-header p{font-size:.8125rem}.filters-section{padding:1rem}.filters-header h3{font-size:1.125rem}.form-group label{font-size:.8125rem}.form-group select{font-size:.8125rem;padding:.5rem .75rem}.search-btn,.sync-btn{font-size:.875rem;padding:.625rem 1.25rem}.session-info{padding:.875rem}.session-info h4{font-size:.9375rem}.session-details{font-size:.8125rem}.subjects-header h3{font-size:1.25rem}.subjects-header p{font-size:.8125rem}.subject-card{padding:.875rem}.subject-card-header h4{font-size:.9375rem}.subject-card-body p,.subject-card-footer{font-size:.8125rem}}.review-questions-container{padding:0 2rem 2rem;max-width:1400px;margin:0 auto}.review-questions-header{margin-bottom:2rem}.review-questions-header h2{font-size:1.75rem;font-weight:700;color:#1f2937;margin-bottom:.5rem}.review-questions-header p{color:#6b7280;font-size:.95rem}.review-questions-loading{text-align:center;padding:3rem;color:#6b7280;font-size:1.1rem}.review-questions-error{background-color:#fee2e2;border:1px solid #fecaca;color:#b91c1c;padding:1rem;border-radius:8px;margin-bottom:1.5rem;font-size:.95rem}.review-questions-filters{background:#fff;padding:2rem;border-radius:12px;box-shadow:0 1px 3px #0000001a,0 1px 2px -1px #0000001a;margin-bottom:2rem}.unlock-all-section{margin-top:1.5rem;padding-top:1.5rem;border-top:1px solid #e5e7eb;display:flex;justify-content:center}.unlock-all-btn{display:flex;align-items:center;gap:.5rem;padding:.75rem 2rem;background-color:#10b981;color:#fff;border:none;border-radius:8px;font-size:1rem;font-weight:600;cursor:pointer;transition:all .2s}.unlock-all-btn:hover{background-color:#059669;transform:translateY(-1px);box-shadow:0 4px 6px -1px #0000001a}.no-results{text-align:center;padding:3rem 2rem;background:#fff;border-radius:12px;color:#6b7280;font-size:1.1rem;box-shadow:0 1px 3px #0000001a}.assessments-list{display:flex;flex-direction:column;gap:1.5rem}.assessments-list h3{font-size:1.5rem;font-weight:700;color:#1f2937;margin-bottom:1rem}.status-badge{display:inline-flex;align-items:center;gap:.375rem;padding:.375rem .75rem;border-radius:9999px;font-size:.875rem;font-weight:600}.status-badge.released{background-color:#d1fae5;color:#065f46}.status-badge.locked{background-color:#fee2e2;color:#991b1b}.assessment-actions{display:flex;align-items:center;gap:.75rem}.toggle-btn{padding:.5rem;background:none;border:2px solid #3b82f6;color:#3b82f6;cursor:pointer;transition:all .2s;border-radius:6px;display:flex;align-items:center;justify-content:center}.toggle-btn:hover{background-color:#3b82f6;color:#fff;transform:translateY(-1px);box-shadow:0 2px 4px #3b82f633}.toggle-release-btn{display:flex;align-items:center;gap:.5rem;padding:.5rem 1rem;border:none;border-radius:6px;font-size:.875rem;font-weight:600;cursor:pointer;transition:all .2s}.toggle-release-btn.unlock{background-color:#10b981;color:#fff}.toggle-release-btn.unlock:hover{background-color:#059669;transform:translateY(-1px)}.toggle-release-btn.lock{background-color:#ef4444;color:#fff}.toggle-release-btn.lock:hover{background-color:#dc2626;transform:translateY(-1px)}.delete-assessment-btn{padding:.5rem;background:none;border:2px solid #ef4444;color:#ef4444;cursor:pointer;transition:all .2s;border-radius:6px;display:flex;align-items:center;justify-content:center}.delete-assessment-btn:hover{background-color:#ef4444;color:#fff;transform:translateY(-1px);box-shadow:0 2px 4px #ef444433}.filters-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1.25rem;margin-bottom:1rem}.review-questions-filters .filters-grid{grid-template-columns:repeat(3,1fr)}.filter-group label{font-weight:500;color:#374151;font-size:.9rem}.filter-group select{padding:.625rem .875rem;border:1.5px solid #d1d5db;border-radius:6px;font-size:.95rem;background-color:#fff;transition:all .2s;cursor:pointer}.filter-group select:focus{outline:none;border-color:#3b82f6;box-shadow:0 0 0 3px #3b82f61a}.filter-group select:disabled{background-color:#f3f4f6;cursor:not-allowed;opacity:.6}.search-btn{display:flex;align-items:center;justify-content:center;gap:.5rem;padding:.75rem 1.5rem;background:linear-gradient(135deg,#60a5fa,#3b82f6);color:#fff;border:none;border-radius:8px;font-size:.95rem;font-weight:600;cursor:pointer;transition:all .2s;grid-column:span 1}.search-btn:hover:not(:disabled){background:linear-gradient(135deg,#3b82f6,#2563eb);transform:translateY(-1px);box-shadow:0 4px 12px #3b82f64d}.search-btn:disabled{background:#9ca3af;cursor:not-allowed;opacity:.6}@media (max-width: 768px){.review-questions-container{padding:0 1rem 1rem;overflow-x:hidden;max-width:100vw;box-sizing:border-box}.review-questions-header{overflow:hidden}.review-questions-header h2{font-size:1.5rem;word-break:break-word;overflow-wrap:break-word}.review-questions-header p{font-size:.875rem;word-break:break-word}.review-questions-filters{padding:1.25rem;overflow:hidden;width:100%;box-sizing:border-box}.filters-grid{grid-template-columns:1fr;gap:1rem;width:100%}.filter-group{width:100%;box-sizing:border-box}.filter-group label{font-size:.875rem;word-break:break-word}.filter-group select{font-size:.875rem;width:100%;box-sizing:border-box;max-width:100%}.search-btn{width:100%;justify-content:center;margin-top:.5rem}.unlock-all-section{padding:1rem 0;width:100%;box-sizing:border-box}.unlock-all-btn{width:100%;justify-content:center;font-size:.875rem;padding:.75rem 1rem;text-align:center;word-break:break-word;white-space:normal;line-height:1.4}.assessments-list{overflow:hidden}.assessments-list h3{font-size:1.25rem;word-break:break-word;padding:0 .5rem}.assessment-card{overflow:hidden;margin-bottom:1rem}.assessment-header{flex-direction:column;gap:1rem;align-items:stretch}.assessment-info h4{font-size:1rem;word-break:break-word;overflow-wrap:break-word}.assessment-meta{flex-direction:column;gap:.5rem;align-items:flex-start}.meta-item{word-break:break-word;font-size:.875rem}.assessment-actions{flex-direction:row;flex-wrap:wrap;width:100%;justify-content:stretch;gap:.5rem}.toggle-release-btn{flex:1 1 auto;justify-content:center;min-width:110px;padding:.625rem .75rem;font-size:.8125rem}.toggle-btn,.delete-assessment-btn{flex:0 0 auto;padding:.625rem}.status-badge{font-size:.8125rem;padding:.25rem .625rem}.assessment-questions{overflow:hidden;padding:1rem .5rem}.question-item{overflow:hidden;padding:1rem .75rem}.question-header{flex-direction:column;align-items:flex-start;gap:.5rem}.question-text{word-break:break-word;overflow-wrap:break-word;font-size:.9375rem}.question-image img{max-width:100%;height:auto}.option-text{word-break:break-word;overflow-wrap:break-word}.edit-question-btn{margin-left:0;width:100%;justify-content:center}.edit-modal{margin:.5rem;max-width:calc(100vw - 1rem);max-height:calc(100vh - 1rem);overflow-y:auto}.edit-modal-header h3{font-size:1.125rem}.edit-modal-body{padding:1rem}.edit-form-group label{font-size:.875rem}.edit-form-group input,.edit-form-group textarea,.edit-form-group select{font-size:.875rem;width:100%;box-sizing:border-box}.edit-option-row{flex-direction:column;gap:.5rem;align-items:stretch}.edit-option-row input{width:100%}.edit-matching-row{flex-direction:column;gap:.5rem}.edit-matching-row input{width:100%}.edit-modal-footer{flex-direction:row;gap:.75rem}.edit-modal-footer button{flex:1;font-size:.875rem}}@media (max-width: 480px){.review-questions-container{padding:5rem .75rem .75rem}.review-questions-header h2{font-size:1.25rem}.review-questions-header p{font-size:.8125rem}.review-questions-filters{padding:1rem}.filter-group label{font-size:.8125rem}.filter-group select{font-size:.8125rem;padding:.5rem .75rem}.search-btn{font-size:.875rem;padding:.625rem 1rem}.unlock-all-section{padding:.75rem 0}.unlock-all-btn{font-size:.8125rem;padding:.625rem .875rem}.assessments-list h3{font-size:1.125rem}.assessment-info h4{font-size:.9375rem}.meta-item{font-size:.8125rem}.toggle-release-btn{font-size:.75rem;padding:.5rem .625rem;min-width:100px}.question-text{font-size:.875rem}.edit-modal{margin:.25rem;max-width:calc(100vw - .5rem)}.edit-modal-header h3{font-size:1rem}.edit-form-group label,.edit-form-group input,.edit-form-group textarea,.edit-form-group select{font-size:.8125rem}.edit-modal-footer button{font-size:.8125rem;padding:.5rem 1rem}}.report-sheet-container{padding:0 24px 24px;max-width:1400px;margin:0 auto}.report-sheet-header{display:flex;gap:16px;align-items:center;margin-bottom:24px}.report-sheet-header h2{margin:0;font-size:1.75rem;color:#333}.report-sheet-header p{margin:0;color:#666}.report-message{padding:12px 16px;border-radius:8px;margin-bottom:24px}.report-message.success{background:#d4edda;color:#155724;border:1px solid #c3e6cb}.report-message.error{background:#f8d7da;color:#721c24;border:1px solid #f5c6cb}.report-filters-section{background:#fff;border:1px solid #e0e0e0;border-radius:12px;padding:24px;margin-bottom:24px}.filters-header{display:flex;gap:12px;align-items:center;margin-bottom:20px}.filters-header h3{margin:0;font-size:1.1rem;color:#333}.filters-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;margin-bottom:20px}.form-group label{font-weight:600;color:#555;font-size:.9rem}.form-group select,.form-group input{padding:10px 12px;border:1px solid #ddd;border-radius:6px;font-size:.95rem;background:#fff}.form-group select:focus,.form-group input:focus{outline:none;border-color:#6366f1}.student-search-section{margin-top:20px;position:relative}.search-box{display:flex;align-items:center;gap:12px;padding:12px 16px;border:2px solid #6366f1;border-radius:8px;background:#fff}.search-box input{flex:1;border:none;outline:none;font-size:1rem}.student-dropdown{position:absolute;top:100%;left:0;right:0;background:#fff;border:1px solid #ddd;border-radius:8px;margin-top:8px;max-height:300px;overflow-y:auto;box-shadow:0 4px 12px #0000001a;z-index:10}.student-dropdown-item{padding:12px 16px;display:flex;justify-content:space-between;align-items:center;cursor:pointer;transition:background .2s}.student-dropdown-item:hover{background:#f5f5f5}.student-id{font-size:.85rem;color:#666}.report-loading{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:60px 20px;text-align:center}.spinner{animation:spin 1s linear infinite;color:#6366f1}.report-empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:80px 20px;text-align:center;color:#666}.report-empty-state svg{color:#ccc;margin-bottom:16px}.students-list-section{background:#fff;border:1px solid #e0e0e0;border-radius:12px;padding:24px;margin-bottom:24px}.students-list-header{margin-bottom:24px}.students-list-header h3{margin:0 0 8px;font-size:1.3rem;color:#333}.students-list-header p{margin:0;color:#666;font-size:.9rem}.students-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:16px}.student-card{background:#fff;border:2px solid #e0e0e0;border-radius:12px;padding:20px;cursor:pointer;transition:all .2s}.student-card:hover{border-color:#6366f1;box-shadow:0 4px 12px #6366f126;transform:translateY(-2px)}.student-card-content{display:flex;align-items:center;gap:16px}.student-avatar{width:50px;height:50px;border-radius:50%;background:linear-gradient(135deg,#6366f1,#8b5cf6);color:#fff;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:1.1rem;flex-shrink:0}.student-info h4{margin:0 0 4px;font-size:1rem;color:#333}.student-info p{margin:0;font-size:.85rem;color:#666}.report-actions{display:flex;justify-content:space-between;align-items:center;margin-bottom:24px;gap:12px}.back-btn{display:flex;align-items:center;gap:8px;padding:10px 20px;background:#6b7280;color:#fff;border:none;border-radius:6px;font-size:.95rem;cursor:pointer;transition:background .2s}.back-btn:hover{background:#4b5563}.print-btn{display:flex;align-items:center;gap:8px;padding:10px 20px;background:#6366f1;color:#fff;border:none;border-radius:6px;font-size:.95rem;cursor:pointer;transition:background .2s}.print-btn:hover{background:#4f46e5}.school-name{font-size:1.8rem;color:#7b1fa2;margin:0 0 8px;font-weight:700}.grades-table-container{margin-bottom:30px}.grades-table thead{background:#7b1fa2;color:#fff}.grades-table td.total{font-weight:700;color:#1976d2}.grades-table td.grade{font-weight:700;color:#7b1fa2;font-size:1rem}.summary-value{font-weight:700;color:#1976d2;font-size:1.1rem}@media print{body *{visibility:hidden}.report-card,.report-card *{visibility:visible}body{background:#fff;margin:0;padding:0}.report-sheet-container{padding:0;margin:0}.report-card{position:absolute;left:0;top:0;width:100%;margin:0;border:8px solid #d4af37;padding:30px;page-break-inside:avoid;box-sizing:border-box}.school-logo img{display:block;margin:0 auto}.student-info-section{display:flex!important;flex-direction:row!important;justify-content:space-between;align-items:flex-start;gap:30px}.student-details{flex:0 1 auto;max-width:70%}.passport-photo{flex-shrink:0;width:120px;height:150px}.grades-table{page-break-inside:avoid}.grades-table thead{background:#7b1fa2!important;-webkit-print-color-adjust:exact;print-color-adjust:exact}.grades-table th{color:#fff!important;-webkit-print-color-adjust:exact;print-color-adjust:exact}.position-row{background:#c8e6c9!important;-webkit-print-color-adjust:exact;print-color-adjust:exact}.summary-row{background:#f5f5f5!important;-webkit-print-color-adjust:exact;print-color-adjust:exact}.summary-label{text-align:left!important}.report-card{-webkit-print-color-adjust:exact;print-color-adjust:exact}}@media (max-width: 768px){.report-sheet-container{padding:0 16px 16px}.filters-grid,.students-grid{grid-template-columns:1fr}.report-actions{flex-direction:column;align-items:stretch}.back-btn,.print-btn{width:100%;justify-content:center}.report-card{padding:20px;border-width:4px}.school-name{font-size:1.4rem}.report-title{font-size:1rem}.student-info-section{flex-direction:column}.detail-row-compact{flex-direction:column;gap:8px}.passport-photo{width:100px;height:130px;align-self:center}.grades-table{font-size:.85rem}.grades-table th,.grades-table td{padding:8px 6px}}@media (max-width: 480px){.report-card{padding:16px}.school-logo img{width:60px;height:60px}.detail-label,.detail-value{font-size:.85rem}.detail-row-compact{flex-direction:column;gap:4px}.grades-table{font-size:.75rem}.grades-table th,.grades-table td{padding:6px 4px}}.admin-fee-receipts-container{padding:2rem;max-width:1600px;margin:0 auto}.admin-receipts-header{margin-bottom:2rem}.admin-receipts-header .header-content{display:flex;align-items:center;gap:1rem}.admin-receipts-header svg{color:#1976d2;flex-shrink:0}.admin-receipts-header h2{margin:0;font-size:1.75rem;color:#1a1a1a;font-weight:600}.admin-receipts-header p{margin:.25rem 0 0;color:#666;font-size:.95rem}.admin-receipts-filters{background:#f8f9fa;padding:1.5rem;border-radius:8px;margin-bottom:2rem}.filter-group select:hover:not(:disabled),.filter-group input:hover{border-color:#1976d2}.search-input::placeholder{color:#999}.admin-receipts-content{background:#fff;border-radius:8px;box-shadow:0 2px 8px #0000000d}.receipts-table-container{overflow-x:auto}.receipts-table{width:100%;border-collapse:collapse;font-size:.9rem}.receipts-table thead{background:#f8f9fa;position:sticky;top:0;z-index:10}.receipts-table th{padding:1rem;text-align:left;font-weight:600;color:#333;border-bottom:2px solid #e0e0e0;white-space:nowrap}.receipts-table td{padding:1rem;border-bottom:1px solid #f0f0f0;color:#555}.receipts-table tbody tr{transition:background-color .2s}.receipts-table tbody tr:hover{background:#f8f9fa}.receipt-number{font-weight:600;color:#1976d2;font-family:Courier New,monospace}.student-cell{display:flex;flex-direction:column;gap:.25rem}.student-name{font-weight:500;color:#333}.student-username{font-size:.85rem;color:#999}.amount{font-weight:500;text-align:right;font-family:Courier New,monospace}.amount.paid{color:#2e7d32}.amount.balance{color:#d32f2f}.status-badge{display:inline-block;padding:.35rem .75rem;border-radius:20px;font-size:.75rem;font-weight:600;text-transform:uppercase}.status-badge.partial{background:#fff3e0;color:#f57c00}.status-badge.pending{background:#fce4ec;color:#c2185b}.download-receipt-btn{background:linear-gradient(135deg,#1976d2,#42a5f5);color:#fff;border:none;padding:.5rem .75rem;border-radius:6px;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .3s}.download-receipt-btn:hover{transform:translateY(-2px);box-shadow:0 4px 12px #1976d24d}.receipts-summary{padding:1rem 1.5rem;border-top:1px solid #e0e0e0;background:#f8f9fa;text-align:center;color:#666;font-size:.9rem}.receipts-summary strong{color:#1976d2;font-weight:600}@media (max-width: 1200px){.filter-row{grid-template-columns:repeat(2,1fr)}.filter-group.search-group{grid-column:span 2}}@media (max-width: 768px){.admin-fee-receipts-container{padding:1rem}.admin-receipts-header h2{font-size:1.5rem}.filter-row{grid-template-columns:1fr}.filter-group.search-group{grid-column:span 1}.receipts-table{font-size:.85rem}.receipts-table th,.receipts-table td{padding:.75rem .5rem}}@media (max-width: 480px){.admin-receipts-header .header-content{flex-direction:column;text-align:center}.admin-receipts-header h2{font-size:1.25rem}.receipts-table th,.receipts-table td{padding:.5rem .25rem;font-size:.8rem}}.announcements-container{padding:2rem;max-width:1600px;margin:0 auto}.announcements-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:2rem}.announcements-header .header-content{display:flex;align-items:center;gap:1rem}.announcements-header svg{color:#1976d2;flex-shrink:0}.announcements-header h2{margin:0;font-size:1.75rem;color:#1a1a1a;font-weight:600}.announcements-header p{margin:.25rem 0 0;color:#666;font-size:.95rem}.create-announcement-btn{background:linear-gradient(135deg,#1976d2,#42a5f5);color:#fff;border:none;padding:.75rem 1.5rem;border-radius:8px;cursor:pointer;display:flex;align-items:center;gap:.5rem;font-size:1rem;font-weight:500;transition:all .3s}.create-announcement-btn:hover{transform:translateY(-2px);box-shadow:0 4px 12px #1976d24d}.announcements-filters{background:#f8f9fa;padding:1.5rem;border-radius:8px;margin-bottom:2rem}.filter-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:1rem}.filter-group.search-group{grid-column:span 2}.filter-group select,.filter-group input{padding:.65rem;border:1px solid #ddd;border-radius:6px;font-size:.95rem;background:#fff;transition:all .2s ease}.filter-group select:hover,.filter-group input:hover{border-color:#1976d2}.filter-group select:focus,.filter-group input:focus{outline:none;border-color:#1976d2;box-shadow:0 0 0 3px #1976d21a}.announcements-content{background:#fff;border-radius:8px}.loading-state,.empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:4rem 2rem;text-align:center}.loading-state p{color:#666;margin:0}.empty-state p{color:#666;margin:.5rem 0 0}.announcements-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(400px,1fr));gap:1.5rem}.announcement-card{background:#fff;border:1px solid #e0e0e0;border-radius:12px;padding:1.5rem;transition:all .3s;display:flex;flex-direction:column;gap:1rem}.announcement-card:hover{box-shadow:0 4px 16px #0000001a;transform:translateY(-2px)}.announcement-card.inactive{opacity:.6;background:#f5f5f5}.announcement-card-header{display:flex;justify-content:space-between;align-items:flex-start}.announcement-meta{display:flex;gap:.5rem;flex-wrap:wrap}.priority-badge{padding:.25rem .75rem;border-radius:20px;font-size:.75rem;font-weight:600;text-transform:uppercase}.priority-badge.urgent{background:#ffebee;color:#c62828}.priority-badge.high{background:#fff3e0;color:#e65100}.priority-badge.medium{background:#e3f2fd;color:#1565c0}.priority-badge.low{background:#f3e5f5;color:#6a1b9a}.audience-badge{padding:.25rem .75rem;border-radius:20px;font-size:.75rem;font-weight:500;background:#e8f5e9;color:#2e7d32;display:flex;align-items:center;gap:.25rem}.announcement-actions{display:flex;gap:.5rem}.icon-btn{background:transparent;border:none;padding:.5rem;border-radius:6px;cursor:pointer;transition:all .2s;color:#666}.icon-btn:hover{background:#f5f5f5;color:#1976d2}.icon-btn.delete:hover{background:#ffebee;color:#d32f2f}.announcement-title{margin:0;font-size:1.25rem;font-weight:600;color:#1a1a1a;line-height:1.4}.announcement-message{margin:0;color:#555;line-height:1.6;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}.announcement-footer{display:flex;justify-content:space-between;align-items:center;padding-top:1rem;border-top:1px solid #e0e0e0;margin-top:auto}.announcement-stats{display:flex;gap:1rem;font-size:.85rem;color:#666}.announcement-stats strong{color:#1976d2;font-weight:600}.announcement-info{display:flex;flex-direction:column;align-items:flex-end;font-size:.85rem;color:#999}.announcement-info .creator{color:#666}.modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000;padding:2rem}.announcement-modal{position:relative;background:#fff;border-radius:12px;width:100%;max-width:600px;max-height:90vh;overflow-y:auto;box-shadow:0 8px 32px #0003}.modal-header h3{margin:0;font-size:1.5rem;color:#1a1a1a}.close-modal-btn{background:transparent;border:none;font-size:2rem;color:#999;cursor:pointer;line-height:1;padding:0;width:32px;height:32px;display:flex;align-items:center;justify-content:center;border-radius:6px;transition:all .2s}.close-modal-btn:hover{background:#f5f5f5;color:#333}.announcement-form{padding:1.5rem;display:flex;flex-direction:column;gap:1.5rem}.form-group{display:flex;flex-direction:column;gap:.5rem}.form-group label{font-weight:500;color:#333;font-size:.95rem}.form-group .required{color:#d32f2f}.form-group input,.form-group textarea,.form-group select{padding:.75rem;border:1px solid #ddd;border-radius:6px;font-size:1rem;font-family:inherit;transition:all .2s}.form-group input:focus,.form-group textarea:focus,.form-group select:focus{outline:none;border-color:#1976d2;box-shadow:0 0 0 3px #1976d21a}.form-group textarea{resize:vertical;min-height:100px}.form-group select[multiple]{min-height:150px}.form-group small{color:#666;font-size:.85rem}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:1rem}.modal-actions{display:flex;gap:1rem;justify-content:flex-end;padding-top:1rem;border-top:1px solid #e0e0e0}.cancel-btn,.submit-btn{padding:.75rem 1.5rem;border:none;border-radius:8px;font-size:1rem;font-weight:500;cursor:pointer;transition:all .3s}.cancel-btn{background:#f5f5f5;color:#666}.submit-btn{background:linear-gradient(135deg,#1976d2,#42a5f5);color:#fff}.submit-btn:hover{transform:translateY(-2px);box-shadow:0 4px 12px #1976d24d}@media (max-width: 1200px){.announcements-grid{grid-template-columns:repeat(auto-fill,minmax(350px,1fr))}}@media (max-width: 768px){.announcements-container{padding:1rem}.announcements-header{flex-direction:column;align-items:flex-start;gap:1rem}.announcements-header h2{font-size:1.5rem}.filter-row{grid-template-columns:1fr}.filter-group.search-group{grid-column:span 1}.announcements-grid,.form-row{grid-template-columns:1fr}.modal-overlay{padding:1rem}.announcement-footer{flex-direction:column;align-items:flex-start;gap:.5rem}.announcement-info{align-items:flex-start}}@media (max-width: 480px){.announcements-header .header-content{flex-direction:column;text-align:center}.announcements-header h2{font-size:1.25rem}.create-announcement-btn{width:100%;justify-content:center}.announcement-card{padding:1rem}}.user-search-container{position:relative;margin-bottom:1rem}.user-search-input{width:100%;padding:.75rem 2.5rem .75rem .75rem;border:1px solid #ddd;border-radius:6px;font-size:.95rem;transition:all .2s}.user-search-container .search-icon{position:absolute;right:.75rem;top:50%;transform:translateY(-50%);color:#999;pointer-events:none}.users-checkbox-list{max-height:300px;overflow-y:auto;border:1px solid #ddd;border-radius:6px;padding:.5rem;background:#fff}.user-checkbox-item{display:flex;align-items:center;gap:.75rem;padding:.75rem;border-radius:6px;cursor:pointer;transition:all .2s;margin-bottom:.25rem}.user-checkbox-item:hover{background:#f5f5f5}.user-checkbox-item input[type=checkbox]{width:18px;height:18px;cursor:pointer;flex-shrink:0}.user-info{display:flex;flex-direction:column;gap:.25rem;flex:1}.user-name{font-weight:500;color:#333;font-size:.95rem}.user-meta{font-size:.85rem;color:#666}.no-users-message{text-align:center;padding:2rem;color:#999;font-style:italic}.users-checkbox-list::-webkit-scrollbar{width:8px}.users-checkbox-list::-webkit-scrollbar-track{background:#f5f5f5;border-radius:4px}.users-checkbox-list::-webkit-scrollbar-thumb{background:#ccc;border-radius:4px}.users-checkbox-list::-webkit-scrollbar-thumb:hover{background:#999}.checkbox-label{display:flex;align-items:center;gap:.75rem;cursor:pointer;font-weight:500!important}.checkbox-label input[type=checkbox]{width:18px;height:18px;cursor:pointer}.checkbox-label span{font-weight:500}.modal-loading-overlay{position:absolute;top:0;left:0;right:0;bottom:0;background:#fffffff2;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);display:flex;align-items:center;justify-content:center;z-index:10;border-radius:12px}.loading-content{display:flex;flex-direction:column;align-items:center;gap:1rem;text-align:center;padding:2rem}.loading-content svg{color:#1976d2}.loading-content p{margin:0;font-size:1.25rem;font-weight:600;color:#1a1a1a}.loading-content small{color:#666;font-size:.9rem}.submit-btn:disabled,.cancel-btn:disabled{opacity:.6;cursor:not-allowed}.submit-btn:disabled:hover,.cancel-btn:disabled:hover{transform:none;box-shadow:none}.submit-btn{display:flex;align-items:center;justify-content:center}.close-modal-btn:disabled{opacity:.5;cursor:not-allowed}.close-modal-btn:disabled:hover{background:transparent;color:#999}.top-header{position:fixed;top:0;right:0;left:100px;height:50px;background:#fff;border-bottom:none;z-index:1000;display:flex;align-items:center;justify-content:space-between;padding:0 1.5rem;box-shadow:none}.top-header-left{display:flex;align-items:center}.top-header-right{display:flex;align-items:center;gap:1rem}.top-hamburger-btn{display:none;background:none;border:none;color:#374151;cursor:pointer;padding:8px;border-radius:6px;transition:all .2s}.top-hamburger-btn:hover{background:#f3f4f6;color:#1f2937}.top-logout-btn{display:flex;align-items:center;gap:8px;padding:8px 16px;background:#ef4444;color:#fff;border:none;border-radius:6px;font-size:.9rem;font-weight:500;cursor:pointer;transition:all .2s}.top-logout-btn:hover{background:#dc2626;transform:translateY(-1px);box-shadow:0 2px 4px #ef44444d}.top-logout-btn:active{transform:translateY(0)}.account-dropdown{position:relative}.account-btn{display:flex;align-items:center;gap:6px;background:#f3f4f6;border:none;padding:6px 10px;border-radius:24px;cursor:pointer;transition:all .2s}.account-btn:hover{background:#e5e7eb}.account-avatar{width:32px;height:32px;border-radius:50%;background:#2563eb;display:flex;align-items:center;justify-content:center;color:#fff;overflow:hidden}.account-avatar img{width:100%;height:100%;object-fit:cover}.account-btn svg.rotated{transform:rotate(180deg)}.account-btn svg{transition:transform .2s;color:#6b7280}.dropdown-menu{position:absolute;top:calc(100% + 8px);right:0;background:#fff;border-radius:12px;box-shadow:0 10px 40px #00000026;min-width:220px;overflow:hidden;z-index:1001;animation:slideDown .2s ease}.dropdown-header{padding:1rem;display:flex;align-items:center;gap:12px;background:linear-gradient(135deg,#3b82f6,#1d4ed8);color:#fff}.dropdown-avatar{width:48px;height:48px;border-radius:50%;background:#fff3;display:flex;align-items:center;justify-content:center;overflow:hidden}.dropdown-avatar img{width:100%;height:100%;object-fit:cover}.dropdown-name{font-weight:600;font-size:.95rem}.dropdown-divider{height:1px;background:#e5e7eb}.dropdown-item{width:100%;display:flex;align-items:center;gap:10px;padding:12px 16px;background:none;border:none;font-size:.9rem;color:#374151;cursor:pointer;transition:all .2s;text-align:left}.dropdown-item:hover{background:#f3f4f6}.dropdown-item.logout{color:#ef4444}.dropdown-item.logout:hover{background:#fef2f2}.avatar-modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:2000;padding:1rem}.avatar-modal{background:#fff;border-radius:16px;padding:2rem;max-width:400px;width:100%;position:relative;animation:modalIn .3s ease}@keyframes modalIn{0%{opacity:0;transform:scale(.9)}to{opacity:1;transform:scale(1)}}.modal-close{position:absolute;top:12px;right:12px;background:none;border:none;color:#6b7280;cursor:pointer;padding:4px;border-radius:4px}.modal-close:hover{background:#f3f4f6;color:#374151}.avatar-modal h3{margin:0 0 1.5rem;font-size:1.25rem;color:#1f2937;text-align:center}.current-avatar{width:120px;height:120px;border-radius:50%;margin:0 auto 1.5rem;overflow:hidden;border:4px solid #e5e7eb}.current-avatar img{width:100%;height:100%;object-fit:cover}.no-avatar{width:100%;height:100%;background:linear-gradient(135deg,#3b82f6,#1d4ed8);display:flex;align-items:center;justify-content:center;color:#fff}.avatar-actions{display:flex;flex-direction:column;gap:10px}.upload-btn{background:linear-gradient(135deg,#3b82f6,#1d4ed8);color:#fff;border:none;padding:12px;border-radius:8px;font-weight:600;cursor:pointer;transition:all .2s}.upload-btn:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 4px 12px #3b82f666}.upload-btn:disabled{opacity:.7;cursor:not-allowed}.remove-btn{background:none;border:2px solid #ef4444;color:#ef4444;padding:10px;border-radius:8px;font-weight:600;cursor:pointer;transition:all .2s}.remove-btn:hover{background:#fef2f2}.upload-hint{text-align:center;font-size:.8rem;color:#6b7280;margin:1rem 0 0}@media (max-width: 768px){.top-header{left:0;padding:0 1rem}.top-hamburger-btn{display:block}.top-logout-btn{padding:6px 12px;font-size:.85rem}.top-logout-btn span{display:none}.top-logout-btn{padding:8px;border-radius:50%}.account-avatar{width:28px;height:28px}.dropdown-menu{min-width:200px}.avatar-modal{padding:1.5rem}.current-avatar{width:100px;height:100px}}.session-management{display:flex;align-items:center;gap:10px;background:transparent;border:none;padding:0;margin:0}.session-info{display:flex;align-items:center;background:transparent;border:none;padding:0;margin:0}.session-info-text{padding:8px 16px;border:none;border-radius:6px;font-size:.9rem;font-weight:600;color:#333;background:#e0e0e0;white-space:nowrap}.session-buttons{display:flex;gap:10px}.session-btn{padding:8px 16px;border:none;border-radius:6px;font-size:.9rem;font-weight:600;cursor:pointer;transition:all .2s ease;white-space:nowrap}.session-btn:disabled{opacity:.5;cursor:not-allowed}.session-btn-primary{background:#2196f3;color:#fff}.session-btn-primary:hover:not(:disabled){background:#1976d2;transform:translateY(-1px);box-shadow:0 4px 8px #2196f34d}.session-btn-success{background:#4caf50;color:#fff}.session-btn-success:hover:not(:disabled){background:#388e3c;transform:translateY(-1px);box-shadow:0 4px 8px #4caf504d}.session-btn-danger{background:#f44336;color:#fff}.session-btn-danger:hover:not(:disabled){background:#d32f2f;transform:translateY(-1px);box-shadow:0 4px 8px #f443364d}.session-btn-disabled{background:#bdbdbd!important;cursor:not-allowed!important}.session-management-loading{font-size:.9rem;color:#666;padding:10px}.session-modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:9999}.session-modal{background:#fff;border-radius:12px;padding:30px;max-width:500px;width:90%;box-shadow:0 10px 40px #0003}.session-modal-title{font-size:1.5rem;color:#333;margin:0 0 15px;font-weight:700}.session-modal-description{font-size:1rem;color:#666;margin:0 0 20px}.session-options{display:flex;flex-direction:column;gap:15px;margin-bottom:20px}.session-option{display:flex;align-items:center;gap:10px;cursor:pointer;padding:10px;border-radius:6px;transition:background .2s ease}.session-option:hover{background:#f5f5f5}.session-option input[type=checkbox]{width:20px;height:20px;cursor:pointer}.session-option span{font-size:1rem;color:#333;font-weight:500}.session-modal-warning{background:#fff3cd;border:2px solid #ffc107;border-radius:8px;padding:12px;margin:20px 0;font-size:.9rem;color:#856404;font-weight:500}.session-modal-actions{display:flex;gap:10px;justify-content:flex-end;margin-top:25px}.session-modal-btn{padding:10px 24px;border:none;border-radius:6px;font-size:1rem;font-weight:600;cursor:pointer;transition:all .2s ease}.session-modal-btn:disabled{opacity:.5;cursor:not-allowed}.session-modal-btn-cancel{background:#e0e0e0;color:#333}.session-modal-btn-cancel:hover:not(:disabled){background:#bdbdbd}.session-modal-btn-confirm{background:#2196f3;color:#fff}.session-modal-btn-confirm:hover:not(:disabled){background:#1976d2;transform:translateY(-1px);box-shadow:0 4px 8px #2196f34d}.session-modal-btn-danger{background:#f44336;color:#fff}.session-modal-btn-danger:hover:not(:disabled){background:#d32f2f;transform:translateY(-1px);box-shadow:0 4px 8px #f443364d}@media (max-width: 768px){.session-management{flex-direction:column;align-items:flex-start;gap:15px}.session-buttons{flex-wrap:wrap;width:100%}.session-btn{flex:1;min-width:140px}.session-modal{padding:20px;width:95%}.session-modal-title{font-size:1.25rem}}.admin-profile-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#0009;display:flex;justify-content:center;align-items:center;z-index:10000;padding:20px}.admin-profile-modal{background:#fff;border-radius:12px;width:100%;max-width:600px;max-height:90vh;overflow-y:auto;box-shadow:0 10px 40px #0003;animation:slideIn .3s ease-out}@keyframes slideIn{0%{opacity:0;transform:translateY(-30px)}to{opacity:1;transform:translateY(0)}}.admin-profile-header{display:flex;justify-content:space-between;align-items:center;padding:24px;border-bottom:2px solid #e5e7eb}.admin-profile-header h2{margin:0;font-size:24px;color:#1f2937;font-weight:600}.close-btn{background:none;border:none;font-size:32px;color:#6b7280;cursor:pointer;width:40px;height:40px;display:flex;align-items:center;justify-content:center;border-radius:8px;transition:all .2s}.close-btn:hover{background:#f3f4f6;color:#1f2937}.admin-profile-tabs{display:flex;border-bottom:1px solid #e5e7eb;padding:0 24px;gap:8px}.tab-btn{padding:12px 24px;border:none;background:none;color:#6b7280;font-size:15px;font-weight:500;cursor:pointer;border-bottom:3px solid transparent;transition:all .2s;position:relative;top:1px}.tab-btn:hover{color:#1f2937;background:#f9fafb}.tab-btn.active{color:#2563eb;border-bottom-color:#2563eb;font-weight:600}.admin-profile-content{padding:24px}.settings-form{max-width:500px}.settings-form h3{margin:0 0 8px;font-size:20px;color:#1f2937;font-weight:600}.form-description{margin:0 0 24px;color:#6b7280;font-size:14px;line-height:1.5}.form-group label{display:block;margin-bottom:8px;font-size:14px;font-weight:500;color:#374151}.form-group input{width:100%;padding:12px 16px;border:2px solid #e5e7eb;border-radius:8px;font-size:15px;transition:all .2s;font-family:inherit}.form-group input:focus{outline:none;border-color:#2563eb;box-shadow:0 0 0 3px #2563eb1a}.form-group input::placeholder{color:#9ca3af}.form-group small{display:block;margin-top:6px;font-size:13px;color:#6b7280}.submit-btn{width:100%;padding:14px 24px;background:#2563eb;color:#fff;border:none;border-radius:8px;font-size:16px;font-weight:600;cursor:pointer;transition:all .2s;margin-top:8px}.submit-btn:hover:not(:disabled){background:#1d4ed8;transform:translateY(-1px);box-shadow:0 4px 12px #2563eb4d}.submit-btn:active:not(:disabled){transform:translateY(0)}.success-message{padding:14px 16px;background:#d1fae5;border:1px solid #34d399;border-radius:8px;color:#065f46;margin-bottom:20px;display:flex;align-items:center;gap:10px;font-size:14px;animation:fadeIn .3s}.error-message{padding:14px 16px;background:#fee2e2;border:1px solid #f87171;border-radius:8px;color:#991b1b;margin-bottom:20px;display:flex;align-items:center;gap:10px;font-size:14px;animation:fadeIn .3s}.success-message .icon,.error-message .icon{font-size:18px;font-weight:700}.warning-note{margin-top:16px;padding:12px;background:#fef3c7;border:1px solid #fbbf24;border-radius:6px;color:#92400e;font-size:13px;text-align:center}@media (max-width: 768px){.admin-profile-modal{max-width:100%;border-radius:12px 12px 0 0;max-height:95vh}.admin-profile-header{padding:20px}.admin-profile-header h2{font-size:20px}.admin-profile-content{padding:20px}.admin-profile-tabs{padding:0 20px}.tab-btn{padding:12px 16px;font-size:14px}.settings-form h3{font-size:18px}}.admin-dashboard-container{display:flex;min-height:100vh}.admin-dashboard-main{margin-left:100px;padding:2rem;padding-top:50px;flex:1;min-height:100vh;background-color:#fafafa}.admin-dashboard-header-container{display:flex;justify-content:space-between;align-items:flex-start;gap:30px;margin-bottom:2rem}.admin-dashboard-header-left{flex:1}.admin-dashboard-header-right{flex-shrink:0;display:flex;align-items:flex-start;padding-top:4px}.admin-dashboard-greeting{color:#333;font-size:1.5rem;font-weight:600;margin-top:0;margin-bottom:.5rem}.admin-dashboard-subtitle{color:#666;font-size:1.1rem;margin-bottom:0}@media (max-width: 1024px){.admin-dashboard-header-container{flex-direction:column;gap:20px}.admin-dashboard-header-right{width:100%;align-self:flex-start}}.admin-dashboard-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:1rem;margin-top:2rem}.admin-dashboard-card{background:#fff;padding:1.5rem;border-radius:8px;border:1px solid #e0e0e0;box-shadow:0 2px 4px #0000001a;transition:box-shadow .3s ease,transform .3s ease}.admin-dashboard-card:hover{box-shadow:0 4px 12px #00000026;transform:translateY(-2px)}.admin-dashboard-card-title{color:#0d47a1;font-size:1.2rem;font-weight:600;margin-bottom:1rem}.admin-dashboard-card-text{color:#333;font-size:.95rem;line-height:1.5}.admin-dashboard-section{background:#fff;border-radius:8px;padding:2rem;box-shadow:0 2px 4px #0000001a}.admin-dashboard-section-title{color:#333;font-size:1.8rem;font-weight:600;margin-bottom:1rem}.admin-dashboard-section-text{color:#666;font-size:1rem;line-height:1.6}@media (max-width: 768px){.admin-dashboard-main{margin-left:0;padding:1rem;padding-top:50px}.admin-dashboard-greeting{font-size:1.25rem;margin-top:0}.admin-dashboard-grid{grid-template-columns:1fr}}.assignments-container{padding:0 2rem 2rem;max-width:1400px;margin:0 auto}.assignments-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:2rem}.assignments-header h1{font-size:2rem;color:#1a1a1a;margin-bottom:.5rem}.assignments-header p{color:#666;font-size:.95rem}.message{display:flex;align-items:center;gap:.75rem;padding:1rem 1.25rem;border-radius:8px;margin-bottom:1.5rem;font-weight:500}.message.success{background-color:#d4edda;color:#155724;border:1px solid #c3e6cb}.message.error{background-color:#f8d7da;color:#721c24;border:1px solid #f5c6cb}.filter-tabs{display:flex;gap:.5rem;margin-bottom:2rem;flex-wrap:wrap}.filter-tab{padding:.75rem 1.5rem;border:2px solid #e0e0e0;background:#fff;border-radius:8px;cursor:pointer;font-weight:500;transition:all .3s}.filter-tab:hover{border-color:#4caf50;background:#f8f9fa}.filter-tab.active{background:#4caf50;color:#fff;border-color:#4caf50}.assignments-list{display:flex;flex-direction:column;gap:1.5rem}.assignment-card{background:#fff;border-radius:12px;padding:1.5rem;box-shadow:0 2px 8px #0000001a;transition:transform .2s,box-shadow .2s}.assignment-card:hover{transform:translateY(-2px);box-shadow:0 4px 12px #00000026}.assignment-header{margin-bottom:1rem}.assignment-title-section{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:1rem;margin-bottom:.75rem}.assignment-title-section h3{font-size:1.35rem;color:#1a1a1a;margin:0}.status-badge{padding:.4rem .9rem;border-radius:20px;font-size:.85rem;font-weight:600;text-transform:uppercase;letter-spacing:.5px}.status-badge.pending{background:#fff3cd;color:#856404}.status-badge.submitted{background:#d4edda;color:#155724}.status-badge.overdue{background:#f8d7da;color:#721c24}.status-badge.graded{background:#d1ecf1;color:#0c5460}.status-badge.graded-pending{background:#e2e3e5;color:#383d41}.status-badge.late{background:#f5c6cb;color:#721c24}.assignment-meta{display:flex;gap:1.5rem;flex-wrap:wrap;font-size:.9rem;color:#666}.meta-item{display:flex;align-items:center;gap:.5rem}.assignment-body{margin-bottom:1.5rem}.assignment-description{color:#555;line-height:1.6;margin-bottom:1rem}.assignment-details{display:flex;gap:1.5rem;flex-wrap:wrap;margin-top:1rem;padding:1rem;background:#f8f9fa;border-radius:8px}.detail-item{display:flex;align-items:center;gap:.5rem;font-size:.9rem;color:#666}.submission-info{margin-top:1rem;padding:1rem;background:#e8f5e9;border-left:4px solid #4CAF50;border-radius:4px}.submitted-label{display:flex;align-items:center;gap:.5rem;color:#2e7d32;font-weight:500;margin-bottom:.5rem}.submission-count-info{color:#1b5e20;font-size:.9rem;margin-bottom:.5rem;font-weight:500}.grade-display{color:#1b5e20;font-size:1.1rem;margin-top:.5rem}.assignment-files{margin-top:1rem;padding:1rem;background:#f0f8ff;border-radius:8px;border:1px solid #b3d9ff}.assignment-files h4{font-size:1rem;margin-bottom:.75rem;color:#1976d2}.file-list{display:flex;flex-direction:column;gap:.5rem}.file-download-link{display:flex;align-items:center;gap:.5rem;padding:.75rem;background:#fff;border-radius:6px;border:1px solid #e0e0e0;text-decoration:none;color:#333;transition:all .3s}.file-download-link:hover{background:#e3f2fd;border-color:#2196f3;transform:translate(5px)}.file-download-link span{flex:1;font-weight:500}.file-download-link small{color:#999;font-size:.85rem}.file-download-link .download-icon{color:#2196f3}.assignment-actions{display:flex;gap:1rem;flex-wrap:wrap}.view-btn,.submit-btn,.update-btn{display:flex;align-items:center;gap:.5rem;padding:.75rem 1.5rem;border:none;border-radius:8px;cursor:pointer;font-weight:500;transition:all .3s}.view-btn{background:#6c757d;color:#fff}.view-btn:hover{background:#5a6268}.submit-btn{background:#4caf50;color:#fff}.submit-btn:hover{background:#45a049}.update-btn{background:#2196f3;color:#fff}.update-btn:hover{background:#0b7dda}.empty-state{text-align:center;padding:4rem 2rem;color:#666}.empty-state svg{color:#ccc;margin-bottom:1rem}.empty-state h3{font-size:1.5rem;margin-bottom:.5rem;color:#444}.loading-state,.error-state{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:4rem 2rem;color:#666}.spinner{width:50px;height:50px;border:4px solid #f3f3f3;border-top:4px solid #4CAF50;border-radius:50%;animation:spin 1s linear infinite;margin-bottom:1rem}.retry-btn{margin-top:1rem;padding:.75rem 1.5rem;background:#4caf50;color:#fff;border:none;border-radius:8px;cursor:pointer;font-weight:500}.retry-btn:hover{background:#45a049}.modal-content{background:#fff;border-radius:12px;width:100%;max-width:700px;max-height:90vh;overflow-y:auto;box-shadow:0 10px 40px #0003}.modal-header{display:flex;justify-content:space-between;align-items:center;padding:1.5rem;border-bottom:1px solid #e0e0e0}.modal-header h2{font-size:1.5rem;color:#1a1a1a;margin:0}.close-btn{background:none;border:none;cursor:pointer;color:#666;padding:.5rem;display:flex;align-items:center;transition:color .3s}.close-btn:hover{color:#1a1a1a}.modal-body{padding:1.5rem}.assignment-info-box{background:#f8f9fa;padding:1.25rem;border-radius:8px;margin-bottom:1.5rem}.assignment-info-box h3{font-size:1.2rem;margin-bottom:.75rem;color:#1a1a1a}.assignment-info-box p{color:#555;line-height:1.6;margin-bottom:.75rem}.info-row{display:flex;gap:1.5rem;font-size:.9rem;color:#666}.form-group label{display:block;font-weight:500;margin-bottom:.5rem;color:#333}.form-group textarea{width:100%;padding:.75rem;border:1px solid #ddd;border-radius:8px;font-family:inherit;font-size:.95rem;resize:vertical}.form-group textarea:focus{outline:none;border-color:#4caf50}.file-upload-area{border:2px dashed #ddd;border-radius:8px;padding:2rem;text-align:center;transition:all .3s;cursor:pointer}.file-upload-area:hover{border-color:#4caf50;background:#f8f9fa}.file-upload-label{display:flex;flex-direction:column;align-items:center;gap:.75rem;cursor:pointer;color:#666}.file-upload-label span{font-weight:500;color:#4caf50}.file-upload-label small{color:#999;font-size:.85rem}.selected-files{margin-top:1rem;padding:1rem;background:#f8f9fa;border-radius:8px}.selected-files h4{font-size:1rem;margin-bottom:.75rem;color:#333}.file-item{display:flex;justify-content:space-between;align-items:center;padding:.75rem;background:#fff;border-radius:6px;margin-bottom:.5rem}.file-info{display:flex;align-items:center;gap:.5rem;flex:1}.file-info span{font-weight:500;color:#333}.file-info small{color:#999}.remove-file-btn{background:#dc3545;color:#fff;border:none;padding:.5rem;border-radius:4px;cursor:pointer;display:flex;align-items:center;transition:background .3s}.remove-file-btn:hover{background:#c82333}.modal-footer{display:flex;justify-content:flex-end;gap:1rem;padding:1.5rem;border-top:1px solid #e0e0e0}.cancel-btn,.submit-modal-btn{padding:.75rem 1.5rem;border:none;border-radius:8px;cursor:pointer;font-weight:500;transition:all .3s}.cancel-btn{background:#6c757d;color:#fff}.cancel-btn:hover{background:#5a6268}.submit-modal-btn{background:#4caf50;color:#fff}.submit-modal-btn:hover{background:#45a049}.submit-modal-btn:disabled,.cancel-btn:disabled{background:#ccc;cursor:not-allowed}@media (max-width: 768px){.assignments-container{padding:0 1rem 1rem}.assignments-header h1{font-size:1.5rem}.filter-tabs{overflow-x:auto;padding-bottom:.5rem}.assignment-title-section{flex-direction:column;align-items:flex-start}.assignment-meta,.assignment-details{flex-direction:column;gap:.75rem}.assignment-actions{flex-direction:column}.view-btn,.submit-btn,.update-btn{width:100%;justify-content:center}.modal-content{max-width:100%;margin:0}.info-row{flex-direction:column;gap:.5rem}}.assignment-card.compact{padding:1rem 1.25rem}.assignment-card.compact .assignment-header{margin-bottom:.75rem}.assignment-card.compact .assignment-title-section h3{font-size:1rem;margin-bottom:.25rem}.assignment-card.compact .assignment-meta{gap:1rem}.assignment-card.compact .assignment-actions{margin-top:0;padding-top:.75rem;border-top:1px solid #eee}.details-modal{max-width:700px}.details-section{display:flex;align-items:center;gap:1rem;margin-bottom:1.5rem;flex-wrap:wrap}.details-section h3{margin:0;font-size:1.3rem;color:#1a1a1a}.details-meta{background:#f8f9fa;padding:1rem;border-radius:8px;margin-bottom:1.5rem}.meta-row{display:flex;align-items:center;gap:.5rem;padding:.5rem 0;border-bottom:1px solid #e9ecef}.meta-row:last-child{border-bottom:none}.meta-row span{color:#666;display:flex;align-items:center;gap:.3rem;min-width:120px}.meta-row strong{color:#333}.details-description{margin-bottom:1.5rem}.details-description h4{margin:0 0 .5rem;color:#333;font-size:1rem}.details-description p{margin:0;color:#555;line-height:1.6;white-space:pre-wrap}.details-files{margin-bottom:1.5rem}.details-files h4{margin:0 0 .75rem;color:#333;font-size:1rem}.details-submission{background:#e8f5e9;padding:1rem;border-radius:8px;border:1px solid #c8e6c9}.details-submission h4{margin:0 0 .75rem;color:#2e7d32;font-size:1rem}.submission-details p{margin:.5rem 0;display:flex;align-items:center;gap:.5rem;color:#555}.feedback-section{margin-top:1rem;padding-top:1rem;border-top:1px solid #c8e6c9}.feedback-section strong{color:#2e7d32;display:block;margin-bottom:.5rem}.feedback-section p{margin:0;color:#555;line-height:1.5}.my-grades-container{padding:0 24px 24px;max-width:1200px;margin:0 auto}.grades-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:24px;flex-wrap:wrap;gap:16px}.grades-header h2{margin:0;font-size:1.75rem;color:#333}.grades-session-info{display:flex;gap:12px;align-items:center}.session-badge{padding:8px 16px;background:#1976d2;color:#fff;border-radius:20px;font-size:.9rem;font-weight:500}.filters-section{background:#fff;border:1px solid #e0e0e0;border-radius:12px;padding:20px;margin-bottom:24px}.filters-section h3{margin:0 0 16px;font-size:1.1rem;color:#333}.filters-grid{display:grid;grid-template-columns:1fr 1fr auto;gap:16px;align-items:end}.filter-group label{font-weight:500;color:#666;font-size:.9rem}.filter-group select{padding:10px 12px;border:1px solid #ddd;border-radius:6px;font-size:.95rem;background:#fff;cursor:pointer;transition:border-color .2s}.filter-group select:focus{outline:none;border-color:#1976d2}.filter-apply-btn{padding:10px 20px;background:#1976d2;color:#fff;border:none;border-radius:6px;cursor:pointer;font-size:.95rem;display:flex;align-items:center;gap:8px;transition:background .2s;white-space:nowrap}.filter-apply-btn:hover:not(:disabled){background:#1565c0}.filter-apply-btn:disabled{background:#ccc;cursor:not-allowed}.grades-info-card{background:#e3f2fd;border:1px solid #90caf9;border-radius:12px;padding:20px;margin-bottom:24px}.grades-info-card h3{margin:0 0 16px;color:#1565c0;font-size:1.1rem}.info-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:16px;margin-bottom:16px}.info-item{display:flex;gap:12px;align-items:start}.info-item svg{color:#1976d2;flex-shrink:0;margin-top:2px}.info-item strong{display:block;color:#333;margin-bottom:4px}.info-item p{margin:0;color:#666;font-size:.9rem}.info-note{margin:16px 0 0;padding:12px;background:#fff;border-radius:6px;font-size:.9rem;color:#666}.info-note strong{color:#1565c0}.subjects-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:24px}.subject-grade-tile{background:#fff;border:1px solid #e0e0e0;border-radius:12px;overflow:hidden;transition:box-shadow .3s,transform .2s}.subject-grade-tile:hover{box-shadow:0 4px 16px #0000001a;transform:translateY(-2px)}.tile-header{background:linear-gradient(135deg,#1976d2,#1565c0);padding:16px 20px;color:#fff;display:flex;justify-content:space-between;align-items:center}.tile-header h3{margin:0;font-size:1.15rem;font-weight:600}.tile-dept-badge{background:#fff3;padding:4px 10px;border-radius:12px;font-size:.75rem;font-weight:500}.tile-teacher{padding:10px 20px;background:#f5f7fa;color:#666;font-size:.85rem;border-bottom:1px solid #e0e0e0}.scores-table{padding:16px 20px}.score-row{display:flex;align-items:center;padding:10px 0;border-bottom:1px solid #f0f0f0}.score-row:last-child{border-bottom:none}.score-label{flex:1;font-weight:500;color:#555;font-size:.95rem}.score-value{font-weight:600;color:#333;font-size:1rem;min-width:50px;text-align:right}.score-max{color:#999;font-size:.85rem;margin-left:4px;min-width:40px}.tile-total{display:flex;align-items:center;padding:14px 20px;background:#f8f9fa;border-top:2px solid #e0e0e0}.total-label{flex:1;font-weight:600;color:#333;font-size:1rem}.total-value{font-weight:700;font-size:1.3rem;margin-right:8px}.total-grade{background:#e3f2fd;color:#1976d2;padding:4px 12px;border-radius:6px;font-weight:700;font-size:1rem}.subject-card{background:#fff;border:1px solid #e0e0e0;border-radius:12px;overflow:hidden;transition:box-shadow .3s}.subject-card:hover{box-shadow:0 4px 12px #0000001a}.subject-card-header{padding:20px;background:linear-gradient(135deg,#60a5fa,#3b82f6);color:#fff}.subject-info{display:flex;flex-direction:column;gap:8px}.subject-title{display:flex;align-items:center;gap:12px}.subject-title h3{margin:0;font-size:1.2rem}.subject-meta{margin:0;opacity:.9;font-size:.9rem;display:flex;align-items:center;gap:8px;flex-wrap:wrap}.dept-badge{padding:2px 8px;background:#fff3;border-radius:12px;font-size:.8rem}.subject-card-body{padding:20px}.grade-section{margin-bottom:24px;padding-bottom:20px;border-bottom:1px solid #f0f0f0}.grade-section:last-of-type{border-bottom:none}.grade-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px}.grade-label{font-weight:600;color:#333;font-size:1rem}.assignment-count{font-size:.85rem;color:#666;font-weight:400;margin-left:8px}.grade-value{font-weight:600;color:#666}.progress-bar{width:100%;height:12px;background:#f0f0f0;border-radius:6px;overflow:hidden;margin-bottom:8px}.progress-fill{height:100%;border-radius:6px;transition:width .3s ease}.grade-footer{display:flex;justify-content:space-between;align-items:center}.percentage{font-size:.9rem;color:#666}.letter-grade{font-size:1.2rem;font-weight:700}.expand-btn{width:100%;padding:10px;margin-top:12px;background:#f5f5f5;border:none;border-radius:6px;cursor:pointer;display:flex;align-items:center;justify-content:center;gap:8px;font-size:.9rem;color:#666;transition:background .2s}.expand-btn:hover{background:#e0e0e0}.assignment-details{margin-top:16px;padding-top:16px;border-top:1px solid #f0f0f0}.assignment-item{padding:12px;background:#f9f9f9;border-radius:8px;margin-bottom:12px}.assignment-item:last-child{margin-bottom:0}.assignment-header{display:flex;justify-content:space-between;align-items:start;margin-bottom:8px}.assignment-header h4{margin:0;font-size:1rem;color:#333;flex:1}.assignment-score{font-weight:600;font-size:1rem;flex-shrink:0}.assignment-meta{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap;font-size:.85rem;color:#666;margin-bottom:8px}.graded-date{color:#999}.test-type-badge{padding:4px 12px;background-color:#e3f2fd;color:#1976d2;border-radius:12px;font-size:.75rem;font-weight:600;white-space:nowrap}.not-submitted-badge{padding:4px 12px;background-color:#ffebee;color:#c62828;border-radius:12px;font-size:.75rem;font-weight:600;white-space:nowrap}.assignment-feedback{margin-top:12px;padding:12px;background:#fff;border-left:3px solid #1976d2;border-radius:4px}.assignment-feedback strong{display:block;margin-bottom:6px;color:#1976d2;font-size:.9rem}.assignment-feedback p{margin:0;color:#666;font-size:.9rem;line-height:1.5}.hidden-grades-notice{display:flex;align-items:center;gap:8px;padding:12px;background:#fff3cd;border:1px solid #ffeaa7;border-radius:6px;font-size:.85rem;color:#856404;margin-top:12px}.hidden-grades-notice svg{flex-shrink:0}.no-data{text-align:center;color:#999;font-style:italic;padding:20px 0;margin:0}.loading-state,.error-state,.empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:60px 20px;text-align:center}.loading-icon{color:#1976d2;animation:spin 2s linear infinite}.loading-state p,.empty-state p{margin-top:16px;color:#666;font-size:1rem}.error-message{color:#d32f2f;margin-bottom:16px}.retry-btn{padding:10px 20px;background:#1976d2;color:#fff;border:none;border-radius:6px;cursor:pointer;font-size:.95rem;transition:background .2s}.retry-btn:hover{background:#1565c0}@media (max-width: 768px){.my-grades-container{padding:0 16px 16px}.grades-header{flex-direction:column;align-items:flex-start}.subjects-grid,.info-grid,.filters-grid{grid-template-columns:1fr}.filter-apply-btn{width:100%;justify-content:center}}@media (max-width: 480px){.my-grades-container{padding:0 12px 12px}.grades-header h2{font-size:1.5rem}.session-badge{font-size:.85rem;padding:6px 12px}}.available-assessments-container{padding:0 2rem 2rem;max-width:1400px;margin:0 auto}.assessments-header{margin-bottom:2rem}.assessments-header h2{font-size:1.75rem;font-weight:700;color:#1f2937;margin-bottom:.5rem}.assessments-header p{color:#6b7280;font-size:.95rem}.assessments-loading{text-align:center;padding:3rem;color:#6b7280;font-size:1.1rem}.assessments-error{background-color:#fee2e2;border:1px solid #fecaca;color:#b91c1c;padding:1rem;border-radius:8px;margin-bottom:1.5rem;font-size:.95rem;display:flex;align-items:center;gap:.5rem}.no-assessments{text-align:center;padding:4rem 2rem;background:#fff;border-radius:12px;box-shadow:0 1px 3px #0000001a}.no-assessments svg{color:#9ca3af;margin-bottom:1rem}.no-assessments h3{font-size:1.25rem;font-weight:600;color:#1f2937;margin-bottom:.5rem}.no-assessments p{color:#6b7280;font-size:.95rem}.assessments-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:1.5rem}.assessment-card{background:#fff;border-radius:12px;box-shadow:0 1px 3px #0000001a,0 1px 2px -1px #0000001a;overflow:hidden;cursor:pointer;transition:all .3s;border:2px solid transparent}.assessment-card:hover{transform:translateY(-4px);box-shadow:0 10px 15px -3px #0000001a,0 4px 6px -2px #0000001a}.assessment-card.test{border-color:#dbeafe}.assessment-card.test:hover{border-color:#3b82f6}.assessment-card.exam{border-color:#fce7f3}.assessment-card.exam:hover{border-color:#ec4899}.assessment-card-header{padding:1rem 1.5rem;display:flex;justify-content:space-between;align-items:center;background:linear-gradient(135deg,#f9fafb,#f3f4f6);border-bottom:1px solid #e5e7eb}.assessment-type-badge{padding:.375rem .75rem;border-radius:9999px;font-size:.8125rem;font-weight:600}.assessment-type-badge.test{background-color:#dbeafe;color:#1e40af}.assessment-type-badge.exam{background-color:#fce7f3;color:#be185d}.assessment-subject{font-size:.875rem;color:#6b7280;font-weight:500}.assessment-card-body{padding:1.5rem}.assessment-card-body h3{font-size:1.125rem;font-weight:600;color:#1f2937;margin-bottom:.5rem}.assessment-class{color:#6b7280;font-size:.875rem;margin-bottom:1rem}.assessment-details{display:flex;flex-direction:column;gap:.75rem}.detail-item{display:flex;align-items:center;gap:.5rem;color:#374151;font-size:.875rem}.detail-item svg{color:#6b7280}.assessment-card-footer{padding:1rem 1.5rem;background-color:#f9fafb;border-top:1px solid #e5e7eb}.start-btn{width:100%;padding:.75rem;background:linear-gradient(135deg,#3b82f6,#2563eb);color:#fff;border:none;border-radius:8px;font-size:.95rem;font-weight:600;cursor:pointer;transition:all .2s}.start-btn:hover{background:linear-gradient(135deg,#2563eb,#1d4ed8);transform:translateY(-1px);box-shadow:0 4px 6px -1px #0000001a}@media (max-width: 768px){.available-assessments-container{padding:0 1rem 1rem}.assessments-grid{grid-template-columns:1fr}.assessment-card-header{flex-direction:column;align-items:flex-start;gap:.5rem}}.parent-attendance-container{padding:0 24px 24px;max-width:1400px;margin:0 auto}.parent-attendance-header{display:flex;align-items:center;gap:16px;margin-bottom:32px}.parent-attendance-header h2{margin:0;font-size:1.75rem;color:#333}.parent-attendance-header p{margin:0;color:#666;font-size:.95rem}.attendance-filters{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:20px;margin-bottom:32px;background:#fff;padding:24px;border-radius:12px;border:1px solid #e0e0e0}.filter-group label{display:flex;align-items:center;gap:8px;font-weight:600;color:#555;font-size:.9rem}.filter-group select{padding:10px 12px;border:1px solid #ddd;border-radius:6px;font-size:.95rem;background:#fff;cursor:pointer}.filter-group select:focus{outline:none;border-color:#1e21f7}.attendance-info-card{background:linear-gradient(135deg,#467daa,#a7f3b3);color:#fff;padding:24px;border-radius:12px;margin-bottom:32px;display:flex;gap:40px;flex-wrap:wrap}.info-item{display:flex;flex-direction:column;gap:4px}.info-label{font-size:.85rem;opacity:.9}.info-value{font-size:1.1rem;font-weight:600}.attendance-stats-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:20px;margin-bottom:32px}.stat-card{background:#fff;border-radius:12px;padding:24px;display:flex;flex-direction:row;gap:16px;align-items:center;border:1px solid #e0e0e0;transition:transform .2s,box-shadow .2s}.parent-attendance-container .stat-card{flex-direction:row!important}.stat-card:hover{transform:translateY(-2px);box-shadow:0 4px 12px #0000001a}.stat-icon{width:50px;height:50px;border-radius:10px;display:flex;align-items:center;justify-content:center;flex-shrink:0}.stat-success .stat-icon{background:#d4edda;color:#155724}.stat-danger .stat-icon{background:#f8d7da;color:#721c24}.stat-info .stat-icon{background:#d1ecf1;color:#0c5460}.stat-warning .stat-icon{background:#fff3cd;color:#856404}.stat-primary .stat-icon{background:#e7e7ff;color:#6366f1}.stat-content h3{margin:0 0 4px;font-size:1.75rem;font-weight:700;color:#333}.stat-content p{margin:0;font-size:.9rem;color:#666}.attendance-records-section{background:#fff;border-radius:12px;padding:24px;border:1px solid #e0e0e0;margin-bottom:32px}.attendance-records-section h3{margin:0 0 20px;font-size:1.2rem;color:#333}.records-list{display:flex;flex-direction:column;gap:12px}.record-item{display:flex;justify-content:space-between;align-items:center;padding:16px;background:#fff5f5;border-radius:8px;border-left:4px solid #dc2626}.record-date{display:flex;align-items:center;gap:8px;font-weight:600;color:#333}.record-subjects{display:flex;flex-direction:column;align-items:flex-end;gap:4px}.subject-count{font-size:.9rem;color:#991b1b;font-weight:500}.subject-details{font-size:.85rem;color:#6366f1;cursor:pointer}.subject-details summary{list-style:none;cursor:pointer}.subject-details summary::-webkit-details-marker{display:none}.subject-details ul{margin:8px 0 0;padding:8px;list-style:none;background:#fff;border-radius:4px;border:1px solid #e0e0e0}.subject-details ul li{padding:4px 0;color:#555}.holidays-section{background:#fff;border-radius:12px;padding:24px;border:1px solid #e0e0e0}.holidays-section h3{margin:0 0 20px;font-size:1.2rem;color:#333;display:flex;align-items:center;gap:8px}.holidays-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:12px}.holiday-item{display:flex;gap:12px;padding:12px;background:#fff3cd;border-radius:8px;border-left:4px solid #ffc107}.holiday-date{font-weight:700;color:#856404;font-size:.9rem;min-width:60px}.holiday-info{display:flex;flex-direction:column;gap:2px}.holiday-label{font-weight:600;color:#333;font-size:.9rem}.holiday-type{font-size:.8rem;color:#666}.parent-attendance-loading,.parent-attendance-error,.parent-attendance-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:80px 20px;text-align:center}.spinner{width:48px;height:48px;border:4px solid #f3f3f3;border-top:4px solid #6366f1;border-radius:50%;animation:spin 1s linear infinite;margin-bottom:16px}.parent-attendance-error{color:#721c24}.parent-attendance-empty svg{color:#ccc;margin-bottom:16px}.parent-attendance-empty h3{margin:0 0 8px;color:#333}.parent-attendance-empty p{margin:0;color:#666}@media (max-width: 768px){.parent-attendance-container{padding:0 16px 16px}.parent-attendance-header{margin-bottom:24px}.attendance-filters,.attendance-stats-grid{grid-template-columns:1fr}.attendance-info-card{flex-direction:column;gap:16px}.record-item{flex-direction:column;align-items:flex-start;gap:12px}.record-subjects{align-items:flex-start}.holidays-list{grid-template-columns:1fr}}.parent-grade-container{padding:0 24px 24px;max-width:1200px;margin:0 auto;overflow-x:hidden}.parent-grade-header{display:flex;gap:16px;align-items:center;margin-bottom:24px}.parent-grade-header h2{margin:0;font-size:1.75rem;color:#333}.parent-grade-header p{margin:0;color:#666}.grade-filters{background:#fff;border:1px solid #e0e0e0;border-radius:12px;padding:24px;margin-bottom:24px;display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:20px}.filter-group{display:flex;flex-direction:column;gap:8px}.filter-group label{font-weight:600;color:#555;font-size:.9rem;display:flex;align-items:center;gap:8px}.filter-group select{padding:10px 12px;border:1px solid #ddd;border-radius:6px;font-size:.95rem;background:#fff;transition:border-color .2s}.filter-group select:focus{outline:none;border-color:#0ea5e9}.parent-grade-loading{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:60px 20px;text-align:center}.spinner{animation:spin 1s linear infinite;color:#0ea5e9}.parent-grade-error{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:80px 20px;text-align:center;color:#666}.parent-grade-error svg{color:#ef4444;margin-bottom:16px}.parent-grade-error h3{margin:12px 0;color:#333}.parent-grade-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:80px 20px;text-align:center;color:#666}.parent-grade-empty svg{color:#ccc;margin-bottom:16px}.download-section{display:flex;justify-content:center;margin-bottom:32px}.download-report-btn{display:flex;align-items:center;gap:12px;padding:14px 32px;background:linear-gradient(135deg,#0ea5e9,#0284c7);color:#fff;border:none;border-radius:12px;font-size:1.1rem;font-weight:600;cursor:pointer;transition:all .3s;box-shadow:0 4px 12px #0ea5e94d}.download-report-btn:hover{transform:translateY(-2px);box-shadow:0 6px 20px #0ea5e966}.grade-summary-card{background:#fff;border-radius:16px;padding:32px;box-shadow:0 2px 8px #00000014;border:1px solid #e0e0e0}.grade-summary-card h3{margin:0 0 24px;font-size:1.5rem;color:#333;text-align:center}.summary-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:20px;margin-bottom:32px}.stat-card{background:linear-gradient(135deg,#e0f2fe,#bae6fd);border-radius:12px;padding:20px;display:flex;align-items:center;gap:16px;border:2px solid #0ea5e9;transition:transform .2s}.stat-card:hover{transform:translateY(-4px)}.stat-icon{width:50px;height:50px;background:#0ea5e9;color:#fff;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:1.5rem;font-weight:700;flex-shrink:0}.stat-content{display:flex;flex-direction:column;gap:4px}.stat-label{font-size:.85rem;color:#666;font-weight:500}.stat-value{font-size:1.5rem;font-weight:700;color:#0284c7}.subjects-summary{margin-top:32px}.subjects-summary h4{margin:0 0 20px;font-size:1.2rem;color:#333;padding-bottom:12px;border-bottom:2px solid #0ea5e9}.subjects-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:16px}.subject-item{background:#f8fafc;border-radius:10px;padding:16px;display:flex;justify-content:space-between;align-items:center;border:1px solid #e2e8f0;transition:all .2s}.subject-item:hover{background:#e0f2fe;border-color:#0ea5e9;transform:translate(4px)}.subject-name-sum{font-weight:600;color:#333;font-size:.95rem}.subject-score-sum{display:flex;align-items:center;gap:12px}.score-num{font-size:1.2rem;font-weight:700;color:#0284c7}.grade-badge{background:#0ea5e9;color:#fff;padding:4px 12px;border-radius:20px;font-weight:700;font-size:.85rem}.report-card{background:#fff;border:8px solid #d4af37;border-radius:8px;padding:40px;max-width:900px;margin:0 auto}.report-header{text-align:center;margin-bottom:30px}.school-logo{margin-bottom:16px}.school-logo img{width:80px;height:80px;object-fit:contain}.school-name{font-size:1.8rem;color:#0ea5e9;margin:0 0 8px;font-weight:700}.report-title{font-size:1.2rem;color:#333;margin:0 0 8px;font-weight:600}.report-term{font-size:.9rem;color:#666;margin:0}.student-info-section{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:30px;gap:30px}.student-details{flex:0 1 auto;max-width:70%;display:flex;flex-direction:column;gap:8px}.detail-row-compact{display:flex;gap:40px;margin-bottom:8px}.detail-item{display:flex;gap:8px;flex:1}.detail-label{font-weight:600;color:#333;white-space:nowrap}.detail-value{color:#555}.passport-photo{width:120px;height:150px;flex-shrink:0;border:2px solid #ddd;border-radius:4px;display:flex;align-items:center;justify-content:center;overflow:hidden}.passport-photo img{width:100%;height:100%;object-fit:cover}.photo-placeholder{text-align:center;color:#999;font-size:.85rem;padding:8px}.grades-table-container{margin-bottom:30px;overflow-x:visible}.grades-table{width:100%;border-collapse:collapse;margin-bottom:0}.grades-table thead{background:#0ea5e9;color:#fff}.grades-table th{padding:12px;text-align:center;font-weight:600;font-size:.9rem;border:1px solid white;color:#fff}.grades-table th:first-child{text-align:left}.grades-table tbody tr{border-bottom:1px solid #e0e0e0}.grades-table tbody tr:hover{background:#f9f9f9}.grades-table td{padding:10px 12px;text-align:center;font-size:.9rem}.grades-table td.subject-name{text-align:left;font-weight:500}.grades-table td.score{font-weight:500;color:#333}.grades-table td.total{font-weight:700;color:#0284c7}.grades-table td.grade{font-weight:700;color:#0ea5e9;font-size:1rem}.summary-row{font-weight:600;background:#f5f5f5}.summary-row td{padding:12px}.summary-label{text-align:left!important;font-weight:700;color:#333;padding-left:12px!important}.summary-value{font-weight:700;color:#0284c7;font-size:1.1rem}.position-row{background:#c8e6c9!important}.position-row .summary-value{color:#2e7d32}.report-footer{text-align:center;padding-top:20px;border-top:1px solid #e0e0e0}.report-footer p{margin:0;font-size:.85rem;color:#666}@media print{.parent-grade-header,.grade-filters,.download-section,.grade-summary-card{display:none!important}.report-card-wrapper{display:block!important;width:100%}body{background:#fff;margin:0;padding:0}.parent-grade-container{padding:0;margin:0}.report-card{width:100%;max-width:100%;margin:0;border:4px solid #d4af37;padding:15px;box-sizing:border-box}.report-header{margin-bottom:15px}.school-logo{margin-bottom:8px}.school-logo img{display:block;margin:0 auto;width:60px;height:60px}.school-name{font-size:1.3rem;margin:0 0 4px}.report-title{font-size:.95rem;margin:0 0 4px}.report-term{font-size:.8rem;margin:0}.student-info-section{display:flex!important;flex-direction:row!important;justify-content:space-between;align-items:flex-start;gap:15px;margin-bottom:15px}.student-details{flex:0 1 auto;max-width:70%}.detail-row-compact{margin-bottom:4px}.detail-label,.detail-value{font-size:.8rem}.passport-photo{flex-shrink:0;width:90px;height:110px}.grades-table-container{margin-bottom:10px}.grades-table{font-size:.75rem}.grades-table thead{background:#0ea5e9!important;-webkit-print-color-adjust:exact;print-color-adjust:exact}.grades-table th{padding:6px 4px;font-size:.7rem;color:#fff!important;-webkit-print-color-adjust:exact;print-color-adjust:exact}.grades-table td{padding:5px 4px;font-size:.75rem}.grades-table td.subject-name{font-size:.75rem}.grades-table td.grade{font-size:.8rem}.summary-row td{padding:6px 4px;font-size:.8rem}.summary-value{font-size:.85rem}.position-row{background:#c8e6c9!important;-webkit-print-color-adjust:exact;print-color-adjust:exact}.summary-row{background:#f5f5f5!important;-webkit-print-color-adjust:exact;print-color-adjust:exact}.summary-label{text-align:left!important}.report-footer{padding-top:10px;margin-top:10px}.report-footer p{font-size:.7rem;margin:0}.report-card{-webkit-print-color-adjust:exact;print-color-adjust:exact}}@media (max-width: 768px){.parent-grade-container{padding:0 16px 16px}.grade-filters{grid-template-columns:1fr}.download-report-btn{font-size:1rem;padding:12px 24px}.grade-summary-card{padding:20px}.grade-summary-card h3{font-size:1.3rem}.summary-stats,.subjects-grid{grid-template-columns:1fr}.report-card{padding:20px;border-width:4px}.school-name{font-size:1.4rem}.report-title{font-size:1rem}.student-info-section{flex-direction:column;max-width:100%}.detail-row-compact{flex-direction:column;gap:8px}.passport-photo{width:100px;height:130px;align-self:center}.grades-table-container{margin-bottom:30px}.grades-table{font-size:.85rem;width:100%}.grades-table th,.grades-table td{padding:8px 6px;white-space:nowrap}.grades-table td.subject-name{white-space:normal;min-width:120px}}@media (max-width: 480px){.parent-grade-container{padding:0 12px 12px}.download-report-btn{font-size:.95rem;padding:10px 20px;gap:8px}.grade-summary-card{padding:16px}.grade-summary-card h3{font-size:1.1rem}.stat-card{padding:16px}.stat-icon{width:40px;height:40px;font-size:1.2rem}.stat-value{font-size:1.2rem}.subjects-summary h4{font-size:1rem}.report-card{padding:16px}.school-logo img{width:60px;height:60px}.school-name{font-size:1.2rem;word-wrap:break-word}.report-title{font-size:.9rem;word-wrap:break-word}.detail-label{font-size:.85rem}.detail-value{font-size:.85rem;word-wrap:break-word}.detail-row-compact{flex-direction:column;gap:4px}.grades-table-container{margin-bottom:30px}.grades-table{font-size:.75rem;width:100%}.grades-table th,.grades-table td{padding:6px 4px;white-space:nowrap}.grades-table td.subject-name{white-space:normal;min-width:100px}}.notification-popup-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#0006;display:flex;align-items:flex-start;justify-content:center;z-index:10000;padding:60px 20px 20px;animation:fadeIn .3s ease}.notification-popup{position:relative;background:#fff;border-radius:12px;width:100%;max-width:400px;box-shadow:0 10px 40px #0003;animation:slideDown .3s ease;overflow:hidden}@keyframes slideDown{0%{opacity:0;transform:translateY(-20px)}to{opacity:1;transform:translateY(0)}}.notification-popup.priority-high{border-left:4px solid #ef4444}.notification-popup.priority-medium{border-left:4px solid #f59e0b}.notification-popup.priority-low{border-left:4px solid #3b82f6}.popup-close-btn{position:absolute;top:12px;right:12px;background:none;border:none;color:#9ca3af;cursor:pointer;padding:4px;border-radius:6px;transition:all .2s ease;z-index:10}.popup-close-btn:hover{background:#f3f4f6;color:#374151}.popup-header{display:flex;align-items:center;padding:16px 40px 12px 16px}.popup-icon{flex-shrink:0;margin-right:12px}.popup-title{flex:1}.popup-title h3{margin:0;font-size:16px;font-weight:600;color:#1f2937}.notification-counter{display:inline-block;margin-left:8px;font-size:11px;color:#6b7280;background:#e5e7eb;padding:2px 6px;border-radius:10px;vertical-align:middle}.popup-content{padding:0 16px 12px}.notification-message-short{font-size:14px;line-height:1.5;color:#4b5563;margin:0}.notification-message-full{font-size:13px;line-height:1.5;color:#4b5563;margin:0 0 12px;white-space:pre-line}.incomplete-details{background:#fffbeb;border:1px solid #fde68a;border-radius:8px;padding:12px}.incomplete-details h4{margin:0 0 8px;font-size:12px;font-weight:600;color:#92400e}.incomplete-details ul{margin:0;padding-left:0;list-style:none}.incomplete-details li{display:flex;justify-content:space-between;align-items:center;padding:6px 0;border-bottom:1px solid #fef3c7;gap:8px}.incomplete-details li:last-child{border-bottom:none;padding-bottom:0}.incomplete-details li strong{font-size:13px;color:#1f2937}.missing-items{font-size:11px;color:#d97706;background:#fef3c7;padding:2px 6px;border-radius:4px}.popup-footer{padding:12px 16px;background:#f9fafb;border-top:1px solid #e5e7eb;display:flex;justify-content:space-between;align-items:center}.show-more-btn{display:flex;align-items:center;gap:4px;padding:6px 10px;background:none;color:#6b7280;border:1px solid #d1d5db;border-radius:6px;font-size:12px;font-weight:500;cursor:pointer;transition:all .2s ease}.show-more-btn:hover{background:#f3f4f6;color:#374151}.dismiss-btn{padding:8px 16px;background:#3b82f6;color:#fff;border:none;border-radius:6px;font-size:13px;font-weight:600;cursor:pointer;transition:all .2s ease}.dismiss-btn:hover{background:#2563eb}@media (max-width: 480px){.notification-popup-overlay{padding:20px 12px;align-items:flex-start}.notification-popup{max-width:100%;border-radius:10px}.popup-header{padding:12px 36px 10px 12px}.popup-title h3{font-size:15px}.popup-content{padding:0 12px 10px}.notification-message-short,.notification-message-full{font-size:13px}.popup-footer{padding:10px 12px}.incomplete-details{padding:10px}.incomplete-details li{flex-direction:column;align-items:flex-start;gap:4px}}.password-change-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#00000080;display:flex;justify-content:center;align-items:center;z-index:1000;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.password-change-modal{background:#fff;border-radius:12px;width:90%;max-width:500px;box-shadow:0 10px 40px #0003;animation:slideUp .3s ease}@keyframes slideUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.password-change-header{padding:24px;border-bottom:1px solid #e0e0e0;display:flex;justify-content:space-between;align-items:center}.password-change-header h2{margin:0;font-size:24px;color:#333;font-weight:600}.close-btn{background:none;border:none;font-size:28px;color:#999;cursor:pointer;width:32px;height:32px;display:flex;align-items:center;justify-content:center;border-radius:50%;transition:all .2s}.close-btn:hover{background:#f5f5f5;color:#333}.password-change-content{padding:24px}.settings-form{display:flex;flex-direction:column;gap:20px}.form-description{color:#666;font-size:14px;margin:0 0 8px;line-height:1.5}.form-group{display:flex;flex-direction:column;gap:8px}.form-group label{font-weight:600;color:#333;font-size:14px}.form-group input{padding:12px;border:1px solid #ddd;border-radius:8px;font-size:14px;transition:all .2s}.form-group input:focus{outline:none;border-color:#4a90e2;box-shadow:0 0 0 3px #4a90e21a}.form-group small{color:#666;font-size:12px}.submit-btn{background:linear-gradient(135deg,#4a90e2,#357abd);color:#fff;border:none;padding:14px;border-radius:8px;font-weight:600;font-size:15px;cursor:pointer;transition:all .2s;margin-top:8px}.submit-btn:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 4px 12px #4a90e24d}.submit-btn:disabled{opacity:.6;cursor:not-allowed}.success-message,.error-message{padding:14px;border-radius:8px;display:flex;align-items:center;gap:10px;margin-bottom:20px;animation:fadeIn .3s ease}@keyframes fadeIn{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}.success-message{background:#d4edda;color:#155724;border:1px solid #c3e6cb}.error-message{background:#f8d7da;color:#721c24;border:1px solid #f5c6cb}.success-message .icon,.error-message .icon{font-weight:700;font-size:18px}.warning-note{color:#856404;background:#fff3cd;border:1px solid #ffeeba;padding:12px;border-radius:8px;font-size:13px;margin:0;text-align:center}@media (max-width: 768px){.password-change-modal{width:95%;margin:20px}.password-change-header,.password-change-content{padding:20px}}.attendance-leaderboard-card{background:#fff;border-radius:12px;padding:1.5rem;box-shadow:0 2px 8px #0000001a;border:1px solid #e0e0e0;width:100%;box-sizing:border-box}.attendance-leaderboard-header{display:flex;align-items:flex-start;gap:1rem;margin-bottom:1rem}.attendance-leaderboard-title-section h3{margin:0;font-size:1.1rem;font-weight:600;color:#1f2937}.attendance-leaderboard-title-section p{margin:.25rem 0 0;font-size:.85rem;color:#6b7280}.attendance-leaderboard-toggle-btn{width:100%;padding:.6rem 1rem;border:none;border-radius:6px;font-weight:600;font-size:.9rem;cursor:pointer;transition:all .2s ease}.attendance-leaderboard-toggle-btn.open{background-color:#f59e0b;color:#fff}.attendance-leaderboard-toggle-btn.open:hover{background-color:#d97706}.attendance-leaderboard-toggle-btn.close{background-color:#dc2626;color:#fff}.attendance-leaderboard-toggle-btn.close:hover{background-color:#b91c1c}.attendance-leaderboard-content{margin-top:1rem;animation:slideDown .3s ease}.class-info-tags{display:flex;gap:.5rem;margin-bottom:1rem;flex-wrap:wrap}.info-tag{background:#fef3c7;color:#92400e;padding:.3rem .6rem;border-radius:6px;font-size:.75rem;font-weight:600}.rankings-list{list-style:none;margin:0;padding:0}.rankings-list li{display:flex;align-items:center;padding:.6rem 0;border-bottom:1px solid #e5e7eb;gap:.75rem}.rankings-list li:last-child{border-bottom:none}.rankings-list li.current-user{background:#fef3c7;margin:0 -1.5rem;padding:.6rem 1.5rem;border-radius:6px}.rankings-list .student-name{flex:1;font-size:.85rem;color:#1f2937;font-weight:500;display:flex;align-items:center;gap:.4rem}.you-badge{background:#f59e0b;color:#fff;padding:.1rem .4rem;border-radius:4px;font-size:.65rem;font-weight:700}.your-position{margin-top:.75rem;text-align:center;font-size:.8rem;color:#6b7280}.your-position strong{color:#f59e0b}.attendance-leaderboard-loading{display:flex;justify-content:center;padding:2rem}.loading-spinner-al{width:30px;height:30px;border:3px solid #e5e7eb;border-top:3px solid #f59e0b;border-radius:50%;animation:spin 1s linear infinite}.attendance-leaderboard-error{text-align:center;padding:1rem;color:#dc2626}@media (max-width: 480px){.attendance-leaderboard-card{padding:1rem}.attendance-leaderboard-title-section h3{font-size:1rem}.attendance-leaderboard-toggle-btn{padding:.5rem;font-size:.85rem}.rankings-list li{padding:.5rem 0}.rankings-list li.current-user{margin:0 -1rem;padding:.5rem 1rem}.student-rank{min-width:60px}}.subject-rankings-card{background:#fff;border-radius:12px;padding:1.5rem;box-shadow:0 2px 8px #0000001a;border:1px solid #e0e0e0;width:100%;box-sizing:border-box;overflow:visible;height:auto}.subject-rankings-header{display:flex;align-items:flex-start;gap:1rem;margin-bottom:1rem}.subject-rankings-title-section h3{margin:0;font-size:1.1rem;font-weight:600;color:#1f2937}.subject-rankings-title-section p{margin:.25rem 0 0;font-size:.85rem;color:#6b7280}.subject-rankings-toggle-btn{width:100%;padding:.6rem 1rem;border:none;border-radius:6px;font-weight:600;font-size:.9rem;cursor:pointer;transition:all .2s ease}.subject-rankings-toggle-btn.open{background-color:#0d9488;color:#fff}.subject-rankings-toggle-btn.open:hover{background-color:#0f766e}.subject-rankings-toggle-btn.close{background-color:#dc2626;color:#fff}.subject-rankings-toggle-btn.close:hover{background-color:#b91c1c}.subject-rankings-content{margin-top:1rem;animation:slideDown .3s ease;overflow:visible}.subject-list{display:block;width:100%}.subject-wrapper{display:block;width:100%;margin-bottom:.5rem;height:auto!important;min-height:0!important;max-height:none!important}.subject-item{display:flex;align-items:center;justify-content:space-between;padding:.75rem 1rem;background:#f9fafb;border-radius:8px;cursor:pointer;transition:all .2s ease;border:1px solid transparent}.subject-item:hover{background:#f3f4f6}.subject-item.active{background:#d1fae5;border-color:#10b981;border-radius:8px 8px 0 0}.subject-item .subject-name{font-weight:500;color:#1f2937;font-size:.9rem}.subject-chevron{color:#6b7280;transition:transform .2s ease}.subject-chevron.rotated{transform:rotate(180deg)}.top-students-panel{padding:.75rem;background:#ecfdf5;border-radius:0 0 8px 8px;border:1px solid #10b981;border-top:none;display:block;height:auto!important;min-height:0!important;max-height:none!important;overflow:visible!important}.students-list{list-style:none;margin:0;padding:0;height:auto!important;max-height:none!important;overflow:visible!important}.students-list li{display:flex;align-items:center;padding:.5rem 0;border-bottom:1px solid #d1fae5;gap:.5rem}.students-list li:last-child{border-bottom:none}.students-list li.current-user{background:#fef3c7;margin:0 -.75rem;padding:.5rem .75rem;border-radius:6px}.rank-badge{font-size:.75rem;font-weight:700;color:#6b7280;min-width:35px}.student-avatar{width:24px;height:24px;border-radius:50%;object-fit:cover}.default-avatar{color:#6b7280}.students-list .student-name{flex:1;font-size:.85rem;color:#1f2937;font-weight:500;display:flex;align-items:center;gap:.4rem}.you-badge{background:#10b981;color:#fff;padding:.1rem .4rem;border-radius:4px;font-size:.65rem;font-weight:700}.student-score{font-weight:700;font-size:.9rem}.show-more-btn{display:flex;align-items:center;justify-content:center;gap:.3rem;width:100%;margin-top:.75rem;padding:.5rem;background:transparent;border:1px solid #fde68a;border-radius:6px;color:#92400e;font-weight:600;font-size:.8rem;cursor:pointer;transition:all .2s ease}.show-more-btn:hover{background:#fef3c7}.your-position{margin-top:.75rem;text-align:center;font-size:.8rem;color:#92400e}.your-position strong{color:#d97706}.subject-rankings-loading{display:flex;justify-content:center;padding:2rem}.loading-spinner-sr{width:30px;height:30px;border:3px solid #e5e7eb;border-top:3px solid #0d9488;border-radius:50%;animation:spin 1s linear infinite}.loading-spinner-sr.small{width:20px;height:20px;border-width:2px}.students-loading{display:flex;justify-content:center;padding:1rem}.subject-rankings-error{text-align:center;padding:1rem;color:#dc2626}@media (max-width: 480px){.subject-rankings-card{padding:1rem;overflow:visible;height:auto}.subject-rankings-content{overflow:visible;height:auto}.subject-list{display:block;overflow:visible}.subject-wrapper{display:block;overflow:visible;margin-bottom:.5rem}.subject-rankings-title-section h3{font-size:1rem}.subject-rankings-toggle-btn{padding:.5rem;font-size:.85rem}.subject-item{padding:.6rem .75rem}.top-students-panel{padding:.75rem;display:block;position:static}.students-list{display:block}.students-list li{padding:.5rem 0}}.my-grades-card{background:#fff;border-radius:12px;padding:1.5rem;box-shadow:0 2px 8px #0000001a;border:1px solid #e0e0e0;width:100%;box-sizing:border-box}.my-grades-header{display:flex;align-items:flex-start;gap:1rem;margin-bottom:1rem}.my-grades-title-section h3{margin:0;font-size:1.1rem;font-weight:600;color:#1f2937}.my-grades-title-section p{margin:.25rem 0 0;font-size:.85rem;color:#6b7280}.my-grades-toggle-btn{width:100%;padding:.6rem 1rem;border:none;border-radius:6px;font-weight:600;font-size:.9rem;cursor:pointer;transition:all .2s ease}.my-grades-toggle-btn.highest{background-color:#10b981;color:#fff}.my-grades-toggle-btn.highest:hover{background-color:#059669}.my-grades-toggle-btn.lowest{background-color:#ef4444;color:#fff}.my-grades-toggle-btn.lowest:hover{background-color:#dc2626}.my-grades-toggle-btn.close{background-color:#6b7280;color:#fff}.my-grades-toggle-btn.close:hover{background-color:#4b5563}.my-grades-content{margin-top:1rem;animation:slideDown .3s ease}.grades-list{list-style:none;margin:0;padding:0;height:auto!important;max-height:none!important;overflow:visible!important}.grades-list li{display:flex;align-items:center;padding:.6rem 0;border-bottom:1px solid #e5e7eb;gap:.5rem}.grades-list li:last-child{border-bottom:none}.grade-rank{font-size:.75rem;font-weight:700;color:#6b7280;min-width:30px}.grade-subject{flex:1;font-size:.85rem;color:#1f2937;font-weight:500;display:flex;align-items:center;gap:.4rem}.grade-emoji{font-size:.9em}.grade-score{font-weight:700;font-size:.9rem}.show-more-btn{display:flex;align-items:center;justify-content:center;gap:.3rem;width:100%;margin-top:.75rem;padding:.5rem;background:transparent;border:1px solid #e5e7eb;border-radius:6px;color:#6b7280;font-weight:600;font-size:.8rem;cursor:pointer;transition:all .2s ease}.show-more-btn:hover{background:#f9fafb;border-color:#d1d5db}.my-grades-loading{display:flex;justify-content:center;padding:2rem}.loading-spinner-mg{width:30px;height:30px;border:3px solid #e5e7eb;border-radius:50%;animation:spin 1s linear infinite}.loading-spinner-mg.highest{border-top-color:#10b981}.loading-spinner-mg.lowest{border-top-color:#ef4444}.my-grades-error,.my-grades-empty{text-align:center;padding:1rem;color:#6b7280}@media (max-width: 480px){.my-grades-card{padding:1rem}.my-grades-title-section h3{font-size:1rem}.my-grades-toggle-btn{padding:.5rem;font-size:.85rem}.grades-list li{padding:.5rem 0}}.fee-status-card{background:#fff;border-radius:12px;padding:1.5rem;box-shadow:0 2px 8px #0000001a;border:1px solid #e0e0e0;width:100%;box-sizing:border-box}.fee-status-header{display:flex;align-items:flex-start;gap:1rem;margin-bottom:1rem}.fee-status-title-section h3{margin:0;font-size:1.1rem;font-weight:600;color:#1f2937}.fee-status-title-section p{margin:.25rem 0 0;font-size:.85rem;color:#6b7280}.fee-status-toggle-btn{width:100%;padding:.6rem 1rem;border:none;border-radius:6px;font-weight:600;font-size:.9rem;cursor:pointer;transition:all .2s ease}.fee-status-toggle-btn.open{background-color:#8b5cf6;color:#fff}.fee-status-toggle-btn.open:hover{background-color:#7c3aed}.fee-status-toggle-btn.close{background-color:#6b7280;color:#fff}.fee-status-toggle-btn.close:hover{background-color:#4b5563}.fee-status-content{margin-top:1rem;animation:slideDown .3s ease}@keyframes slideDown{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}.fee-summary{background:#f9fafb;border-radius:8px;padding:.75rem;margin-bottom:1rem}.fee-info-row{display:flex;justify-content:space-between;align-items:center;padding:.4rem 0}.fee-info-row:not(:last-child){border-bottom:1px solid #e5e7eb}.fee-label{font-size:.85rem;color:#6b7280;font-weight:500}.fee-value{font-size:.9rem;font-weight:700;color:#1f2937}.fee-value.paid{color:#10b981}.fee-value.balance{color:#ef4444}.fee-progress{margin-bottom:1rem}.progress-bar{width:100%;height:10px;background:#e5e7eb;border-radius:5px;overflow:hidden;margin-bottom:.5rem}.progress-fill{height:100%;border-radius:5px;transition:width .5s ease}.progress-info{display:flex;justify-content:space-between;align-items:center}.percentage{font-size:.8rem;font-weight:600;color:#6b7280}.status-badge{font-size:.7rem;font-weight:700;color:#fff;padding:.2rem .5rem;border-radius:4px;text-transform:uppercase}.show-breakdown-btn{display:flex;align-items:center;justify-content:center;gap:.3rem;width:100%;padding:.5rem;background:transparent;border:1px solid #e5e7eb;border-radius:6px;color:#6b7280;font-weight:600;font-size:.8rem;cursor:pointer;transition:all .2s ease}.show-breakdown-btn:hover{background:#f9fafb;border-color:#d1d5db}.fees-breakdown{margin-top:.75rem;background:#fef3c7;border-radius:6px;padding:.5rem}.breakdown-item{display:flex;justify-content:space-between;align-items:center;padding:.4rem 0;font-size:.8rem}.breakdown-item:not(:last-child){border-bottom:1px solid #fde68a}.breakdown-name{font-weight:500;color:#92400e}.breakdown-details{color:#78350f;font-weight:600}.fee-status-loading{display:flex;justify-content:center;padding:2rem}.loading-spinner-fs{width:30px;height:30px;border:3px solid #e5e7eb;border-top:3px solid #8b5cf6;border-radius:50%;animation:spin 1s linear infinite}.fee-status-error,.fee-status-empty{text-align:center;padding:1rem;color:#6b7280}@media (max-width: 480px){.fee-status-card{padding:1rem}.fee-status-title-section h3{font-size:1rem}.fee-status-toggle-btn{padding:.5rem;font-size:.85rem}.fee-info-row{padding:.3rem 0}.fee-label{font-size:.8rem}.fee-value{font-size:.85rem}}.my-classes-container{padding:0 16px 24px;max-width:900px;margin:0 auto}.class-header{background:linear-gradient(135deg,#3b82f6,#1d4ed8);border-radius:16px;padding:1.25rem;color:#fff;margin-bottom:1rem;box-shadow:0 4px 12px #3b82f64d}.class-badge{display:flex;align-items:center;gap:.75rem;font-size:1.4rem;font-weight:700;margin-bottom:.35rem}.session-info{font-size:.9rem;opacity:.9;font-weight:500}.welcome-section{margin-bottom:1.25rem}.welcome-section h2{margin:0 0 .4rem;font-size:1.2rem;color:#1f2937;font-weight:700}.gen-z-message{margin:0;font-size:.85rem;color:#6b7280;line-height:1.4}.subjects-grid{display:grid;grid-template-columns:1fr;gap:12px}.subject-card{background:#fff;border-radius:12px;padding:14px;border:1px solid #e5e7eb;box-shadow:0 2px 8px #0000000a;cursor:pointer;transition:all .2s ease;display:flex;align-items:center;gap:12px;min-height:72px}.subject-card:hover{box-shadow:0 4px 16px #0000001a;transform:translateY(-2px)}.subject-card:active{transform:translateY(0)}.subject-icon-wrapper{width:52px;height:52px;border-radius:12px;display:flex;align-items:center;justify-content:center;flex-shrink:0}.subject-card-info{flex:1;min-width:0}.subject-card-name{margin:0 0 4px;font-size:.95rem;font-weight:600;color:#1f2937;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.subject-teacher{display:flex;align-items:center;gap:4px;color:#6b7280;font-size:.75rem}.subject-teacher svg{color:#9ca3af;flex-shrink:0}.subject-card-stats{display:flex;flex-direction:column;gap:4px;flex-shrink:0}.mini-stat{display:flex;align-items:center;gap:4px;font-size:.7rem;color:#6b7280;font-weight:500}.mini-stat svg{color:#9ca3af}.subject-modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#00000080;display:flex;align-items:flex-end;justify-content:center;z-index:1000;animation:fadeIn .2s ease}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.subject-modal{background:#fff;border-radius:20px 20px 0 0;width:100%;max-width:600px;max-height:85vh;overflow:hidden;display:flex;flex-direction:column;animation:slideUp .3s ease}@keyframes slideUp{0%{transform:translateY(100%)}to{transform:translateY(0)}}.modal-header{display:flex;justify-content:space-between;align-items:center;padding:16px 16px 12px;border-bottom:1px solid #e5e7eb}.modal-title{display:flex;align-items:center;gap:10px}.modal-title h3{margin:0;font-size:1.1rem;font-weight:700;color:#1f2937}.modal-close{background:#f3f4f6;border:none;border-radius:50%;width:32px;height:32px;display:flex;align-items:center;justify-content:center;cursor:pointer;color:#6b7280;transition:all .2s ease}.modal-close:hover{background:#e5e7eb;color:#1f2937}.modal-teacher-info{display:flex;align-items:center;gap:6px;padding:8px 16px;background:#f9fafb;font-size:.85rem;color:#4b5563}.modal-teacher-info svg{color:#9ca3af}.content-tabs{display:flex;gap:6px;padding:12px 16px;background:#fff;overflow-x:auto;-webkit-overflow-scrolling:touch}.content-tabs::-webkit-scrollbar{display:none}.tab-btn{display:flex;align-items:center;gap:4px;padding:8px 12px;background:#f3f4f6;border:none;border-radius:20px;font-size:.75rem;font-weight:600;color:#6b7280;cursor:pointer;transition:all .2s ease;white-space:nowrap}.tab-btn:hover{background:#e5e7eb}.tab-btn.active{background:#2563eb;color:#fff}.tab-btn svg{flex-shrink:0}.modal-tab-content{flex:1;overflow-y:auto;padding:12px 16px 24px;background:#fafafa}.empty-content{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:2rem;color:#9ca3af;text-align:center}.empty-content p{margin:.5rem 0 0;font-size:.9rem}.content-item{background:#fff;border-radius:10px;padding:12px;margin-bottom:10px;border:1px solid #e5e7eb}.content-item:last-child{margin-bottom:0}.content-item h4{margin:0 0 6px;font-size:.95rem;font-weight:600;color:#1f2937}.content-description{margin:0 0 8px;font-size:.85rem;color:#4b5563;line-height:1.4}.content-meta{display:flex;align-items:center;gap:4px;font-size:.7rem;color:#9ca3af}.note-item{border-left:3px solid #3b82f6}.announcement-item{border-left:3px solid #f59e0b}.assignment-item{border-left:3px solid #10b981}.assignment-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:6px}.status-badge{padding:2px 8px;border-radius:10px;font-size:.65rem;font-weight:700;text-transform:uppercase}.status-badge.graded{background:#d1fae5;color:#065f46}.status-badge.submitted{background:#dbeafe;color:#1e40af}.status-badge.pending{background:#fef3c7;color:#92400e}.status-badge.not-submitted{background:#fee2e2;color:#991b1b}.assignment-details{background:#f9fafb;border-radius:6px;padding:10px;margin-bottom:8px}.detail-row{display:flex;justify-content:space-between;align-items:center;padding:4px 0;font-size:.8rem}.detail-label{color:#6b7280;font-weight:500}.detail-value{color:#1f2937;font-weight:600}.detail-value.score{color:#059669}.percentage{color:#6b7280;font-weight:500;margin-left:4px}.grade-row{border-top:1px dashed #d1d5db;margin-top:4px;padding-top:6px}.feedback-section{margin-top:6px;padding-top:6px;border-top:1px solid #e5e7eb}.feedback-label{display:block;font-size:.75rem;color:#6b7280;font-weight:600;margin-bottom:4px}.feedback-text{margin:0;font-size:.8rem;color:#4b5563;font-style:italic;line-height:1.4}.loading-state,.error-state,.empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:3rem 1rem;text-align:center}.loading-spinner-mc{width:40px;height:40px;border:4px solid #e5e7eb;border-top:4px solid #2563eb;border-radius:50%;animation:spin 1s linear infinite}.loading-state p,.error-state p,.empty-state p{margin-top:1rem;color:#6b7280;font-size:1rem}.retry-btn{margin-top:1rem;padding:.6rem 1.5rem;background:#2563eb;color:#fff;border:none;border-radius:8px;font-weight:600;cursor:pointer;transition:background .2s ease}.retry-btn:hover{background:#1d4ed8}@media (min-width: 480px){.subjects-grid{grid-template-columns:repeat(2,1fr)}.subject-modal{border-radius:20px;margin:auto 16px;max-height:80vh}.subject-modal-overlay{align-items:center}}@media (min-width: 768px){.my-classes-container{padding:0 24px 24px}.class-header{padding:1.5rem}.class-badge{font-size:1.5rem}.welcome-section h2{font-size:1.4rem}.gen-z-message{font-size:.95rem}.subjects-grid{grid-template-columns:repeat(3,1fr);gap:16px}.subject-card{padding:16px;min-height:80px}.subject-icon-wrapper{width:56px;height:56px}.subject-card-name{font-size:1rem}.subject-teacher{font-size:.8rem}.mini-stat{font-size:.75rem}}.student-dashboard-container{display:flex;min-height:100vh}.student-dashboard-main{margin-left:100px;padding:2rem;padding-top:50px;flex:1;min-height:100vh;background-color:#fafafa}.student-dashboard-greeting{color:#1a1a2e;font-size:1.75rem;font-weight:700;margin-top:0;margin-bottom:.25rem;letter-spacing:-.5px}.student-dashboard-subtitle{color:#666;font-size:1rem;margin-bottom:1.5rem;opacity:.8}.student-home-dashboard{max-width:1400px}.dashboard-welcome{margin-bottom:1.5rem}.dashboard-records-grid{display:grid;grid-template-columns:1fr;gap:1.5rem}@media (min-width: 1200px){.dashboard-records-grid{grid-template-columns:1fr 1fr;align-items:start}}.student-dashboard-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:1rem;margin-top:2rem}.student-dashboard-card{background:#fff;padding:1.5rem;border-radius:8px;border:1px solid #e0e0e0;box-shadow:0 2px 4px #0000001a;transition:box-shadow .3s ease,transform .3s ease}.student-dashboard-card:hover{box-shadow:0 4px 12px #00000026;transform:translateY(-2px)}.student-dashboard-card-title{color:#0d47a1;font-size:1.2rem;font-weight:600;margin-bottom:1rem}.student-dashboard-card-text{color:#333;font-size:.95rem;line-height:1.5}.student-dashboard-section{background:#fff;border-radius:8px;padding:2rem;box-shadow:0 2px 4px #0000001a}.student-dashboard-section-title{color:#333;font-size:1.8rem;font-weight:600;margin-bottom:1rem}.student-dashboard-section-text{color:#666;font-size:1rem;line-height:1.6}@media (max-width: 768px){.student-dashboard-main{margin-left:0;padding:1rem;padding-top:50px}.student-dashboard-greeting{font-size:1.5rem;margin-top:0}.student-dashboard-subtitle{font-size:.9rem}.dashboard-records-grid{gap:1rem}.student-dashboard-grid{grid-template-columns:1fr}}.content-manager-container{background:#fff;border-radius:8px;padding:2rem;box-shadow:0 2px 4px #0000001a;min-height:500px;margin-top:0;max-width:100%;overflow-x:hidden;box-sizing:border-box}.content-manager-header{display:flex;align-items:center;margin-bottom:2rem;padding-bottom:1rem;border-bottom:2px solid #f0f0f0}.subject-info h2{color:#0d47a1;font-size:1.6rem;margin-bottom:.5rem}.subject-info p{color:#666;font-size:1rem}.content-tabs{display:flex;gap:.5rem;margin-bottom:2rem;border-bottom:1px solid #e0e0e0}.tab-btn{background:none;border:none;padding:.75rem 1.5rem;cursor:pointer;font-size:1rem;color:#666;border-bottom:2px solid transparent;transition:all .3s ease}.tab-btn.active{color:#0d47a1;border-bottom-color:#0d47a1;font-weight:600}.tab-btn:hover{color:#0d47a1}.error-message{background-color:#ffebee;border:1px solid #f44336;color:#c62828;padding:1rem;border-radius:6px;margin-bottom:1.5rem;display:flex;justify-content:space-between;align-items:center}.error-message button{background:none;border:none;color:#c62828;font-size:1.2rem;cursor:pointer;padding:.25rem}.loading-state{text-align:center;padding:3rem 1rem;color:#666}.view-content-tab{padding-top:1rem}.content-summary{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:1rem;margin-bottom:2rem}.summary-card{background:#f8f9fa;border:1px solid #e0e0e0;border-radius:8px;padding:1.5rem;text-align:center;transition:box-shadow .3s ease}.summary-card:hover{box-shadow:0 4px 12px #0000001a}.summary-card h3{color:#333;font-size:1rem;margin-bottom:.5rem}.summary-card .count{color:#0d47a1;font-size:2rem;font-weight:700}.content-sections{display:flex;flex-direction:column;gap:2rem}.content-section h3{color:#333;font-size:1.3rem;margin-bottom:1rem;padding-bottom:.5rem;border-bottom:1px solid #e0e0e0}.no-content{color:#888;font-style:italic;text-align:center;padding:2rem;background:#f8f9fa;border-radius:6px}.content-list{display:flex;flex-direction:column;gap:1rem}.content-item{background:#fff;border:1px solid #e0e0e0;border-radius:8px;padding:1.5rem;transition:box-shadow .3s ease}.content-item:hover{box-shadow:0 4px 12px #0000001a}.content-item.assignment{border-left:4px solid #2196f3}.content-item.note{border-left:4px solid #4caf50}.content-item.announcement{border-left:4px solid #ff9800}.content-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:1rem}.content-header h4{color:#333;font-size:1.1rem;margin:0;flex:1;word-wrap:break-word;overflow-wrap:break-word;max-width:100%}.content-actions{display:flex;align-items:center;gap:.5rem}.content-buttons{display:flex;gap:.5rem}.edit-btn,.delete-btn{background:none;border:none;cursor:pointer;font-size:1.2rem;padding:.25rem;transition:transform .2s ease}.edit-btn:hover,.delete-btn:hover{transform:scale(1.1)}.content-meta{display:flex;gap:.5rem;flex-wrap:wrap;align-items:center}.due-date{background-color:#e3f2fd;color:#1976d2;padding:.25rem .75rem;border-radius:12px;font-size:.8rem;font-weight:500}.max-score{background-color:#f3e5f5;color:#7b1fa2;padding:.25rem .75rem;border-radius:12px;font-size:.8rem;font-weight:500}.overdue-badge{background-color:#ffebee;color:#d32f2f;padding:.25rem .75rem;border-radius:12px;font-size:.8rem;font-weight:600}.content-description{color:#666;line-height:1.6;margin-bottom:1rem;word-wrap:break-word;overflow-wrap:break-word;max-width:100%}.file-attachment{margin-bottom:1rem}.file-attachment a{color:#0d47a1;text-decoration:none;padding:.5rem 1rem;background:#f8f9fa;border:1px solid #e0e0e0;border-radius:6px;display:inline-block;transition:background-color .3s ease}.file-attachment a:hover{background-color:#e3f2fd}.content-footer{color:#888;font-size:.85rem;border-top:1px solid #f0f0f0;padding-top:.75rem}.create-content-tab{padding-top:1rem}.create-content-tab h3{color:#333;margin-bottom:1.5rem}.content-type-selector{display:flex;gap:.5rem;margin-bottom:2rem;padding:1rem;background:#f8f9fa;border-radius:8px}.type-btn{background:#fff;border:1px solid #e0e0e0;color:#666;padding:.75rem 1.5rem;border-radius:6px;cursor:pointer;font-size:.95rem;transition:all .3s ease;flex:1;text-align:center}.type-btn.active{background-color:#0d47a1;color:#fff;border-color:#0d47a1}.type-btn:hover:not(.active){border-color:#0d47a1;color:#0d47a1}.content-form{max-width:100%;width:100%;box-sizing:border-box}.form-group{margin-bottom:1.5rem}.form-group label{display:block;color:#333;font-weight:500;margin-bottom:.5rem}.form-group input,.form-group textarea{width:100%;padding:.75rem;border:1px solid #e0e0e0;border-radius:6px;font-size:1rem;transition:border-color .3s ease;box-sizing:border-box;max-width:100%}.form-group input:focus,.form-group textarea:focus{outline:none;border-color:#0d47a1;box-shadow:0 0 0 2px #0d47a11a}.form-group small{color:#888;font-size:.85rem;margin-top:.25rem;display:block}.file-preview-list{margin-top:1rem;padding:1rem;background:#f8f9fa;border-radius:6px;max-width:100%;box-sizing:border-box}.file-preview-list h4{margin:0 0 .75rem;color:#333;font-size:.95rem}.file-items{display:flex;flex-direction:column;gap:.75rem}.file-item{display:flex;justify-content:space-between;align-items:center;padding:.75rem;background:#fff;border:1px solid #e0e0e0;border-radius:4px;gap:1rem}.file-info{flex:1;display:flex;flex-direction:column;gap:.25rem;min-width:0}.file-name{color:#333;font-weight:500;word-wrap:break-word;overflow-wrap:break-word}.file-size{color:#888;font-size:.85rem}.file-actions{display:flex;gap:.5rem}.preview-btn,.remove-btn{padding:.4rem .75rem;border-radius:4px;font-size:.85rem;cursor:pointer;border:none;transition:all .2s ease}.preview-btn{background-color:#e3f2fd;color:#0d47a1}.preview-btn:hover{background-color:#bbdefb}.remove-btn{background-color:#ffebee;color:#d32f2f}.remove-btn:hover{background-color:#ffcdd2}.file-attachments{margin-top:1rem}.file-attachments h5{margin:0 0 .5rem;color:#666;font-size:.9rem;font-weight:500}.form-actions{display:flex;gap:1rem;margin-top:2rem}.submit-btn{background-color:#0d47a1;color:#fff;border:none;padding:.75rem 2rem;border-radius:6px;font-size:1rem;cursor:pointer;transition:background-color .3s ease}.submit-btn:hover:not(:disabled){background-color:#1565c0}.submit-btn:disabled{background-color:#ccc;cursor:not-allowed}.cancel-btn{background:none;border:1px solid #e0e0e0;color:#666;padding:.75rem 2rem;border-radius:6px;font-size:1rem;cursor:pointer;transition:all .3s ease}.cancel-btn:hover{border-color:#666}.preview-modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background-color:#000000b3;display:flex;align-items:center;justify-content:center;z-index:1000;padding:1rem}.preview-modal,.delete-confirm-modal{background:#fff;border-radius:8px;max-width:800px;width:100%;max-height:90vh;overflow:hidden;display:flex;flex-direction:column;box-sizing:border-box}.preview-header,.delete-confirm-header{display:flex;justify-content:space-between;align-items:center;padding:1rem;border-bottom:1px solid #e0e0e0;background:#f8f9fa}.preview-header h3,.delete-confirm-header h3{margin:0;color:#333;font-size:1.1rem;word-wrap:break-word;overflow-wrap:break-word;flex:1}.close-preview-btn{background:none;border:none;font-size:1.5rem;cursor:pointer;color:#666;padding:.25rem;line-height:1;transition:color .2s ease}.close-preview-btn:hover{color:#333}.preview-content{flex:1;overflow:auto;padding:1rem;display:flex;align-items:center;justify-content:center}.preview-image{max-width:100%;max-height:70vh;object-fit:contain}.preview-pdf{width:100%;height:70vh;border:none}.preview-text{width:100%;max-height:60vh;overflow:auto;font-family:monospace;font-size:.9rem;line-height:1.5;white-space:pre-wrap;word-wrap:break-word;background:#f8f9fa;padding:1rem;border-radius:4px}.preview-file-info{text-align:center;padding:2rem}.file-icon{font-size:4rem;margin-bottom:1rem}.delete-confirm-content{padding:1.5rem}.delete-confirm-content p{margin:0 0 1.5rem;color:#666;line-height:1.5}.delete-confirm-actions{display:flex;gap:1rem;justify-content:flex-end}.confirm-delete-btn{background-color:#d32f2f;color:#fff;border:none;padding:.75rem 1.5rem;border-radius:6px;cursor:pointer;font-size:.95rem;transition:background-color .3s ease}.confirm-delete-btn:hover{background-color:#c62828}.cancel-delete-btn{background:none;border:1px solid #e0e0e0;color:#666;padding:.75rem 1.5rem;border-radius:6px;cursor:pointer;font-size:.95rem;transition:all .3s ease}.cancel-delete-btn:hover{border-color:#666}@media (max-width: 768px){.content-manager-container{padding:.75rem;margin-top:0;border-radius:0}.content-manager-header{flex-direction:column;align-items:flex-start;gap:.75rem;margin-bottom:1rem;padding-bottom:.75rem}.subject-info h2{font-size:1.3rem}.subject-info p{font-size:.9rem}.back-btn{margin-right:0;padding:.5rem .75rem;font-size:.9rem}.content-tabs{margin-bottom:1rem;gap:.25rem}.tab-btn{padding:.6rem 1rem;font-size:.9rem}.content-summary{grid-template-columns:1fr;gap:.75rem;margin-bottom:1.5rem}.summary-card{padding:1rem}.summary-card h3{font-size:.9rem}.summary-card .count{font-size:1.5rem}.content-sections{gap:1.5rem}.content-section h3{font-size:1.1rem}.content-item{padding:1rem}.content-type-selector{flex-direction:column;padding:.75rem;gap:.5rem}.type-btn{padding:.6rem 1rem;font-size:.9rem}.content-header{flex-direction:column;align-items:flex-start;gap:.5rem}.content-header h4{font-size:1rem}.content-actions{align-self:stretch;flex-direction:row;justify-content:space-between;align-items:center;width:100%}.content-meta{align-self:flex-start;flex-wrap:wrap}.due-date,.max-score,.overdue-badge{font-size:.75rem;padding:.2rem .5rem}.content-description{font-size:.9rem}.file-attachment a{font-size:.85rem;padding:.4rem .75rem}.form-group{margin-bottom:1rem}.form-group label{font-size:.9rem}.form-group input,.form-group textarea{padding:.6rem;font-size:.9rem}.form-actions{flex-direction:column;gap:.75rem;margin-top:1.5rem}.form-actions button{width:100%;padding:.7rem 1.5rem;font-size:.95rem}.file-item{flex-direction:column;align-items:flex-start;gap:.5rem}.file-actions{align-self:stretch;justify-content:flex-end}.preview-modal{max-width:95vw;max-height:95vh;margin:.5rem}.preview-pdf{width:90vw;height:60vh}.preview-text{max-width:85vw;max-height:50vh;font-size:.85rem}.delete-confirm-modal{max-width:90vw}.delete-confirm-actions{flex-direction:column;gap:.5rem}.delete-confirm-actions button{width:100%}}.modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#000000b3;display:flex;align-items:center;justify-content:center;z-index:1000;padding:20px}.submissions-modal{background:#fff;border-radius:12px;max-width:900px;width:100%;max-height:90vh;overflow-y:auto;box-shadow:0 10px 40px #0003}.modal-header{display:flex;justify-content:space-between;align-items:center;padding:24px;border-bottom:1px solid #e0e0e0;position:sticky;top:0;background:#fff;z-index:10}.modal-header h2{margin:0;font-size:1.5rem;color:#333}.student-username{color:#666;margin:4px 0 0;font-size:.9rem}.close-btn{background:none;border:none;cursor:pointer;padding:8px;border-radius:6px;transition:background .2s}.close-btn:hover{background:#f5f5f5}.modal-loading{padding:40px;text-align:center;color:#666}.error-message{margin:16px 24px;padding:12px;background:#fee;border:1px solid #fcc;border-radius:6px;color:#c33;display:flex;align-items:center;gap:8px}.submissions-list{padding:24px}.no-submissions{text-align:center;padding:60px 20px;color:#999}.no-submissions svg{color:#ddd;margin-bottom:16px}.submissions-grid{display:grid;gap:16px}.submission-card{border:1px solid #e0e0e0;border-radius:8px;padding:20px;transition:box-shadow .2s}.submission-card:hover{box-shadow:0 4px 12px #0000001a}.submission-header{display:flex;justify-content:space-between;align-items:start;margin-bottom:16px}.submission-title h4{margin:0 0 4px;color:#333;font-size:1.1rem}.subject-name{color:#666;font-size:.9rem;margin:0}.status-icon{flex-shrink:0}.status-icon.graded{color:#4caf50}.status-icon.late{color:#ff9800}.status-icon.pending{color:#2196f3}.submission-details{display:flex;flex-direction:column;gap:8px;margin-bottom:16px}.detail-row{display:flex;align-items:center;gap:8px;font-size:.9rem;color:#666}.detail-row svg{color:#999;flex-shrink:0}.detail-row.late{color:#ff9800}.detail-row.late svg{color:#ff9800}.grade-display{display:flex;align-items:center;gap:12px;margin-bottom:12px;padding:12px;background:#f5f5f5;border-radius:6px}.grade-display .score{font-weight:600;color:#333}.released-badge{background:#4caf50;color:#fff;padding:4px 12px;border-radius:12px;font-size:.85rem;font-weight:500}.grade-btn{width:100%;padding:12px;background:#1976d2;color:#fff;border:none;border-radius:6px;cursor:pointer;font-size:1rem;font-weight:500;transition:background .2s}.grade-btn:hover{background:#1565c0}.grading-form{padding:24px}.back-btn{background:none;border:none;color:#1976d2;cursor:pointer;padding:8px 0;margin-bottom:20px;font-size:.95rem;display:flex;align-items:center;gap:4px}.back-btn:hover{text-decoration:underline}.grading-details{background:#f9f9f9;padding:24px;border-radius:8px}.grading-details h3{margin:0 0 4px;color:#333}.subject-info{color:#666;margin:0 0 20px}.submission-info{display:flex;flex-direction:column;gap:8px;margin-bottom:20px;padding:16px;background:#fff;border-radius:6px}.info-row{display:flex;align-items:center;gap:8px;font-size:.95rem}.info-row .label{font-weight:600;color:#666;min-width:100px}.info-row.late-badge{color:#ff9800;font-weight:500}.submission-text-section{margin-bottom:20px}.submission-text-section h4{margin:0 0 8px;color:#333;font-size:1rem}.submission-text{background:#fff;padding:16px;border-radius:6px;white-space:pre-wrap;color:#333;line-height:1.6;margin:0}.files-section{margin-bottom:20px}.files-section h4{margin:0 0 12px;color:#333;font-size:1rem}.files-list{display:flex;flex-direction:column;gap:8px}.file-item{display:flex;align-items:center;gap:12px;padding:12px;background:#fff;border:1px solid #e0e0e0;border-radius:6px}.file-item svg{color:#1976d2;flex-shrink:0}.file-info{flex:1;display:flex;flex-direction:column;gap:4px}.file-name{font-weight:500;color:#333}.file-size{font-size:.85rem;color:#666}.download-btn{padding:8px;background:#1976d2;color:#fff;border:none;border-radius:6px;cursor:pointer;text-decoration:none;display:flex;align-items:center;justify-content:center;transition:background .2s}.download-btn:hover{background:#1565c0}.grading-inputs{background:#fff;padding:20px;border-radius:6px}.form-group{margin-bottom:20px}.form-group label{display:block;margin-bottom:8px;font-weight:600;color:#333}.form-group input[type=number],.form-group textarea{width:100%;padding:12px;border:1px solid #ddd;border-radius:6px;font-size:1rem;font-family:inherit;transition:border-color .2s}.form-group input[type=number]:focus,.form-group textarea:focus{outline:none;border-color:#1976d2}.form-group.checkbox{display:flex;align-items:center}.form-group.checkbox label{margin:0;font-weight:400;display:flex;align-items:center;gap:8px;cursor:pointer}.form-group.checkbox input[type=checkbox]{width:auto;cursor:pointer}.grading-actions{display:flex;gap:12px;justify-content:flex-end;margin-top:24px}.cancel-btn{padding:12px 24px;background:#f5f5f5;color:#666;border:none;border-radius:6px;cursor:pointer;font-size:1rem;font-weight:500;transition:background .2s}.cancel-btn:hover{background:#e0e0e0}.submit-btn{padding:12px 24px;background:#4caf50;color:#fff;border:none;border-radius:6px;cursor:pointer;font-size:1rem;font-weight:500;transition:background .2s}.submit-btn:hover:not(:disabled){background:#45a049}.submit-btn:disabled{background:#ccc;cursor:not-allowed}@media (max-width: 768px){.modal-overlay{padding:0}.submissions-modal{max-height:100vh;border-radius:0}.submissions-grid{grid-template-columns:1fr}}.assigned-classes-container{background:#fff;border-radius:8px;padding:2rem;box-shadow:0 2px 4px #0000001a;min-height:500px;margin-top:0}.assigned-classes-header{margin-bottom:2rem;border-bottom:2px solid #f0f0f0;padding-bottom:1rem;padding-top:.5rem}.assigned-classes-header h2{color:#0d47a1;font-size:1.8rem;font-weight:600;margin-bottom:.5rem}.assigned-classes-header p{color:#666;font-size:1rem}.assigned-classes-loading,.assigned-classes-error{text-align:center;padding:3rem 1rem}.assigned-classes-loading p{color:#666;font-size:1.1rem}.assigned-classes-error h2{color:#d32f2f;margin-bottom:1rem}.assigned-classes-error p{color:#666;margin-bottom:1.5rem}.retry-btn{background-color:#0d47a1;color:#fff;border:none;padding:.75rem 1.5rem;border-radius:6px;font-size:1rem;cursor:pointer;transition:background-color .3s ease}.retry-btn:hover{background-color:#1565c0}.no-subjects{text-align:center;padding:3rem 1rem}.no-subjects h3{color:#333;font-size:1.5rem;margin-bottom:1rem}.no-subjects p{color:#666;font-size:1rem}.classes-grid{display:flex;flex-direction:column;gap:2rem}.class-section{border:1px solid #e0e0e0;border-radius:8px;padding:1.5rem;background-color:#fafafa}.class-header{margin-bottom:1.5rem;border-bottom:1px solid #e0e0e0;padding-bottom:1rem}.class-header h3{color:#fff;font-size:1.4rem;font-weight:600;margin-bottom:.25rem}.class-session{color:#fff;font-size:.95rem;opacity:.9}.subjects-tiles{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:1rem}.subject-tile{background:#fff;border:1px solid #e0e0e0;border-radius:8px;padding:1.5rem;cursor:pointer;transition:all .3s ease;display:flex;justify-content:space-between;align-items:center}.subject-tile:hover{border-color:#0d47a1;box-shadow:0 4px 12px #0d47a126;transform:translateY(-2px)}.subject-tile-content{flex:1}.subject-name{color:#333;font-size:1.1rem;font-weight:600;margin-bottom:.5rem}.subject-department{background-color:#e3f2fd;color:#0d47a1;padding:.25rem .75rem;border-radius:12px;font-size:.8rem;font-weight:500}.subject-tile-arrow{color:#0d47a1;font-size:1.2rem;font-weight:700;margin-left:1rem}.subject-detail-header{display:flex;align-items:center;margin-bottom:2rem;padding-bottom:1rem;border-bottom:2px solid #f0f0f0}.back-btn{background:none;border:1px solid #0d47a1;color:#0d47a1;padding:.5rem 1rem;border-radius:6px;cursor:pointer;font-size:.95rem;margin-right:1.5rem;transition:all .3s ease}.back-btn:hover{background-color:#0d47a1;color:#fff}.subject-detail-info h2{color:#0d47a1;font-size:1.6rem;margin-bottom:.5rem}.subject-detail-meta{color:#666;font-size:1rem;display:flex;align-items:center;gap:1rem}.department-badge{background-color:#e8f5e8;color:#2e7d32;padding:.25rem .75rem;border-radius:12px;font-size:.8rem;font-weight:500}.manage-content-btn{background-color:#0d47a1;color:#fff;border:none;padding:.65rem 1.25rem;border-radius:6px;font-size:.95rem;cursor:pointer;margin-left:auto;transition:background-color .3s ease;font-weight:500}.manage-content-btn:hover{background-color:#1565c0}.students-grid{margin-top:2rem}.students-grid h3{color:#333;font-size:1.4rem;margin-bottom:1.5rem}.no-students{text-align:center;padding:2rem;color:#666;font-style:italic}.students-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:1rem}.student-card{background:#fff;border:1px solid #e0e0e0;border-radius:8px;padding:1.5rem;transition:box-shadow .3s ease,transform .3s ease}.student-card:hover{box-shadow:0 4px 12px #00000026;transform:translateY(-2px)}.student-info h4{color:#333;font-size:1.1rem;font-weight:600;margin-bottom:.5rem}.student-username{color:#666;font-size:.9rem;margin-bottom:.75rem}.student-details{display:flex;gap:.5rem;margin-bottom:1rem;flex-wrap:wrap}.student-gender,.student-age,.student-department{background-color:#f5f5f5;color:#333;padding:.2rem .6rem;border-radius:10px;font-size:.8rem}.student-department{background-color:#e3f2fd;color:#0d47a1}.student-actions{display:flex;gap:.5rem}.action-btn{background-color:#0d47a1;color:#fff;border:none;padding:.5rem 1rem;border-radius:4px;font-size:.85rem;cursor:pointer;transition:background-color .3s ease}.action-btn:hover{background-color:#1565c0}@media (max-width: 768px){.assigned-classes-container{padding:0 1rem 1rem}.subjects-tiles,.students-list{grid-template-columns:1fr}.subject-detail-header{flex-direction:column;align-items:flex-start;gap:1rem}.back-btn{margin-right:0}.manage-content-btn{margin-left:0;width:100%}.student-details{justify-content:flex-start}}.set-test-container{padding:2rem;max-width:100%;margin:0 auto;overflow-x:hidden;box-sizing:border-box}.set-test-header{margin-bottom:2rem}.set-test-header h2{font-size:1.75rem;font-weight:700;color:#1f2937;margin-bottom:.5rem}.set-test-header p{color:#6b7280;font-size:.95rem}.set-test-loading{text-align:center;padding:3rem;color:#6b7280;font-size:1.1rem}.set-test-error{background-color:#fee2e2;border:1px solid #fecaca;color:#b91c1c;padding:1rem;border-radius:8px;margin-bottom:1.5rem;font-size:.95rem}.set-test-success{background-color:#d1fae5;border:1px solid #a7f3d0;color:#065f46;padding:1rem;border-radius:8px;margin-bottom:1.5rem;font-size:.95rem}.set-test-form{background:#fff;padding:2rem;border-radius:12px;box-shadow:0 1px 3px #0000001a,0 1px 2px -1px #0000001a;max-width:100%;box-sizing:border-box}.set-test-form-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:1.5rem;margin-bottom:2rem}.set-test-form-group{display:flex;flex-direction:column}.set-test-form-group label{font-size:.875rem;font-weight:600;color:#374151;margin-bottom:.5rem}.set-test-form-group input,.set-test-form-group select{padding:.75rem;border:1px solid #d1d5db;border-radius:8px;font-size:.95rem;transition:all .2s}.set-test-form-group input:focus,.set-test-form-group select:focus{outline:none;border-color:#3b82f6;box-shadow:0 0 0 3px #3b82f61a}.set-test-questions-section{margin-bottom:2rem}.set-test-questions-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1.5rem}.set-test-questions-header h3{font-size:1.25rem;font-weight:600;color:#1f2937}.bulk-question-input:focus{outline:none;border-color:#3b82f6;box-shadow:0 0 0 3px #3b82f61a}.set-test-add-question-btn{display:flex;align-items:center;gap:.5rem;padding:.625rem 1.25rem;background-color:#3b82f6;color:#fff;border:none;border-radius:8px;font-size:.875rem;font-weight:500;cursor:pointer;transition:all .2s}.set-test-add-question-btn:hover:not(:disabled){background-color:#2563eb;transform:translateY(-1px);box-shadow:0 4px 6px -1px #0000001a}.set-test-add-question-btn:disabled{background-color:#9ca3af;cursor:not-allowed;opacity:.6}.set-test-question-item{background-color:#f9fafb;padding:1.5rem;border-radius:8px;margin-bottom:1rem;border:1px solid #e5e7eb}.set-test-question-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1rem}.set-test-question-number{font-weight:600;color:#374151;font-size:.95rem}.set-test-remove-question-btn{display:flex;align-items:center;gap:.5rem;padding:.5rem 1rem;background-color:#ef4444;color:#fff;border:none;border-radius:6px;font-size:.875rem;cursor:pointer;transition:all .2s}.set-test-remove-question-btn:hover{background-color:#dc2626}.set-test-question-fields{display:grid;grid-template-columns:3fr 1fr;gap:1rem}.set-test-question-field{display:flex;flex-direction:column}.set-test-question-field label,.set-test-marks-field label{font-size:.875rem;font-weight:600;color:#374151;margin-bottom:.5rem}.set-test-question-field textarea{padding:.75rem;border:1px solid #d1d5db;border-radius:8px;font-size:.95rem;font-family:inherit;resize:vertical;transition:all .2s}.set-test-question-field textarea:focus{outline:none;border-color:#3b82f6;box-shadow:0 0 0 3px #3b82f61a}.set-test-marks-field{display:flex;flex-direction:column}.set-test-marks-field input{padding:.75rem;border:1px solid #d1d5db;border-radius:8px;font-size:.95rem;transition:all .2s}.set-test-marks-field input:focus{outline:none;border-color:#3b82f6;box-shadow:0 0 0 3px #3b82f61a}.session-filter-select:focus{outline:none;border-color:#3b82f6;box-shadow:0 0 0 3px #3b82f61a}.session-confirm-btn{padding:.75rem 2.5rem;background-color:#3b82f6;color:#fff;border:none;border-radius:8px;font-size:1rem;font-weight:600;cursor:pointer;transition:all .2s}.session-confirm-btn:hover:not(:disabled){background-color:#2a43d1;transform:translateY(-2px);box-shadow:0 10px 15px -3px #0000001a}.selected-session-banner{background-color:#eff6ff;border:1px solid #2c45d2;padding:1rem 1.5rem;border-radius:8px;margin-bottom:1.5rem;display:flex;justify-content:space-between;align-items:center}.change-session-btn{padding:.5rem 1.25rem;background-color:#fff;color:#1a6cef;border:1px solid #115fd2;border-radius:6px;font-size:.875rem;font-weight:500;cursor:pointer;transition:all .2s}.change-session-btn:hover{background-color:#3b82f6;color:#fff}.set-test-question-type-selector{margin-bottom:1rem;padding-bottom:1rem;border-bottom:1px solid #e5e7eb}.set-test-question-type-selector label{font-size:.875rem;font-weight:600;color:#374151;margin-right:.75rem}.add-pair-btn{display:flex;align-items:center;gap:.375rem;padding:.5rem .875rem;background-color:#3b82f6;color:#fff;border:none;border-radius:6px;font-size:.8125rem;cursor:pointer;transition:all .2s}.add-pair-btn:hover{background-color:#2563eb}.set-test-image-field{margin-top:1rem;padding-top:1rem;border-top:1px solid #e5e7eb}.set-test-image-field label{font-size:.875rem;font-weight:600;color:#374151;display:block;margin-bottom:.5rem}.set-test-image-input{display:block;width:100%;padding:.625rem;border:2px dashed #d1d5db;border-radius:8px;font-size:.875rem;cursor:pointer;transition:all .2s}.set-test-image-input:hover{border-color:#3b82f6;background-color:#eff6ff}.set-test-image-preview{margin-top:1rem;display:flex;flex-direction:column;gap:.75rem;align-items:center;padding:1rem;background-color:#f9fafb;border-radius:8px;border:1px solid #e5e7eb}.set-test-image-preview img{max-width:100%;max-height:300px;width:auto;height:auto;border-radius:6px;box-shadow:0 4px 6px -1px #0000001a;object-fit:contain}.set-test-remove-image-btn{padding:.5rem 1rem;background-color:#ef4444;color:#fff;border:none;border-radius:6px;font-size:.875rem;cursor:pointer;transition:all .2s}.set-test-remove-image-btn:hover{background-color:#dc2626}.set-test-total-marks{padding:1rem;background-color:#eff6ff;border:1px solid #bfdbfe;border-radius:8px;text-align:right;font-size:1.1rem;color:#1e40af;margin-top:1rem}.set-test-form-actions{display:flex;justify-content:flex-end;gap:1rem;padding-top:1rem;border-top:1px solid #e5e7eb}.set-test-submit-btn{display:flex;align-items:center;gap:.5rem;padding:.75rem 2rem;background-color:#10b981;color:#fff;border:none;border-radius:8px;font-size:1rem;font-weight:600;cursor:pointer;transition:all .2s}.set-test-submit-btn:hover{background-color:#059669;transform:translateY(-2px);box-shadow:0 10px 15px -3px #0000001a}@media (max-width: 768px){.set-test-container{padding:.75rem;overflow-x:hidden}.set-test-header{margin-bottom:1.5rem}.set-test-header h2{font-size:1.5rem}.set-test-header p{font-size:.875rem}.set-test-form{padding:1rem;border-radius:8px}.set-test-form-grid{grid-template-columns:1fr;gap:1rem}.set-test-form-group label{font-size:.8125rem}.set-test-form-group input,.set-test-form-group select{font-size:.875rem;padding:.625rem}.set-test-question-fields{grid-template-columns:1fr}.set-test-questions-section{margin-bottom:1.5rem}.set-test-questions-header{flex-direction:column;gap:.75rem;align-items:stretch;margin-bottom:1rem}.set-test-questions-header h3{font-size:1.125rem}.question-actions-group{flex-direction:column;gap:.75rem}.bulk-add-group{width:100%;gap:.5rem}.bulk-question-input{flex:1;max-width:80px;font-size:.8125rem;padding:.625rem .5rem}.set-test-add-question-btn{justify-content:center;padding:.625rem 1rem;font-size:.8125rem;flex:1}.set-test-question-item{padding:1rem;margin-bottom:.75rem}.set-test-question-header{margin-bottom:.75rem}.set-test-question-number{font-size:.875rem}.set-test-remove-question-btn{padding:.5rem .75rem;font-size:.8125rem}.set-test-question-type-selector label{font-size:.8125rem}.question-type-select{font-size:.8125rem;min-width:100%;max-width:100%}.set-test-question-field label,.set-test-marks-field label{font-size:.8125rem}.set-test-question-field textarea,.set-test-marks-field input{font-size:.875rem;padding:.625rem}.set-test-form-actions{flex-direction:column;padding-top:.75rem}.set-test-submit-btn{width:100%;justify-content:center;padding:.75rem 1.5rem;font-size:.9375rem}.set-test-total-marks{font-size:1rem;padding:.75rem}.question-options{padding:.75rem}.question-options>label{font-size:.875rem;margin-bottom:.5rem}.option-row{grid-template-columns:25px 1fr;gap:.5rem;margin-bottom:.5rem}.option-label{font-size:.875rem}.correct-checkbox{grid-column:1 / -1;justify-content:center;margin-top:.25rem;padding:.5rem}.correct-checkbox span{font-size:.8125rem}.option-row input[type=text]{font-size:.8125rem;padding:.5rem;width:100%;box-sizing:border-box;word-wrap:break-word}.question-matching{padding:.75rem}.matching-header{flex-direction:column;align-items:flex-start;gap:.5rem}.add-pair-btn{width:100%;justify-content:center;font-size:.8125rem}.matching-pair-row{grid-template-columns:1fr;gap:.5rem}.matching-pair-row input{font-size:.8125rem;padding:.5rem;width:100%;box-sizing:border-box}.matching-pair-row .arrow{display:none}.remove-pair-btn{justify-self:center;width:100%}.question-true-false,.question-text-answer{padding:.75rem}.question-true-false label,.question-text-answer label{font-size:.875rem}.question-true-false select,.question-text-answer textarea{font-size:.875rem;padding:.625rem}.session-filter-container{padding:1.5rem;max-width:100%;box-sizing:border-box}.session-filter-container h3{font-size:1.25rem}.session-filter-container p{font-size:.875rem;margin-bottom:1.5rem}.session-filter-grid{grid-template-columns:1fr;gap:1rem;margin-bottom:1.5rem}.session-filter-group label{font-size:.8125rem}.session-filter-select{font-size:.875rem;padding:.625rem}.session-confirm-btn{padding:.75rem 2rem;font-size:.9375rem}.selected-session-banner{padding:.75rem 1rem;flex-direction:column;gap:.75rem;align-items:flex-start}.selected-session-banner>div{font-size:.875rem}.change-session-btn{width:100%;text-align:center;font-size:.8125rem}.set-test-image-field label{font-size:.8125rem}.set-test-image-input{font-size:.8125rem;padding:.5rem}.set-test-image-preview{padding:.75rem}.set-test-image-preview img{max-height:200px}.set-test-remove-image-btn{font-size:.8125rem;padding:.5rem .75rem}input,select,textarea{word-wrap:break-word;overflow-wrap:break-word}}.set-exam-container{padding:2rem;max-width:100%;margin:0 auto;overflow-x:hidden;box-sizing:border-box}.set-exam-header{margin-bottom:2rem}.set-exam-header h2{font-size:1.75rem;font-weight:700;color:#1f2937;margin-bottom:.5rem}.set-exam-header p{color:#6b7280;font-size:.95rem}.set-exam-loading{text-align:center;padding:3rem;color:#6b7280;font-size:1.1rem}.set-exam-error{background-color:#fee2e2;border:1px solid #fecaca;color:#b91c1c;padding:1rem;border-radius:8px;margin-bottom:1.5rem;font-size:.95rem}.set-exam-success{background-color:#d1fae5;border:1px solid #a7f3d0;color:#065f46;padding:1rem;border-radius:8px;margin-bottom:1.5rem;font-size:.95rem}.set-exam-form{background:#fff;padding:2rem;border-radius:12px;box-shadow:0 1px 3px #0000001a,0 1px 2px -1px #0000001a;max-width:100%;box-sizing:border-box}.set-exam-form-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:1.5rem;margin-bottom:2rem}.set-exam-form-group{display:flex;flex-direction:column}.set-exam-form-group label{font-size:.875rem;font-weight:600;color:#374151;margin-bottom:.5rem}.set-exam-form-group input,.set-exam-form-group select{padding:.75rem;border:1px solid #d1d5db;border-radius:8px;font-size:.95rem;transition:all .2s}.set-exam-form-group input:focus,.set-exam-form-group select:focus{outline:none;border-color:#8b5cf6;box-shadow:0 0 0 3px #8b5cf61a}.set-exam-questions-section{margin-bottom:2rem}.set-exam-questions-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1.5rem}.set-exam-questions-header h3{font-size:1.25rem;font-weight:600;color:#1f2937}.question-actions-group{display:flex;gap:1rem;align-items:center}.bulk-add-group{display:flex;gap:.5rem;align-items:center}.bulk-question-input{width:70px;padding:.625rem .5rem;border:1px solid #d1d5db;border-radius:8px;font-size:.875rem;text-align:center;transition:all .2s}.bulk-question-input:focus{outline:none;border-color:#8b5cf6;box-shadow:0 0 0 3px #8b5cf61a}.set-exam-add-question-btn{display:flex;align-items:center;gap:.5rem;padding:.625rem 1.25rem;background-color:#8b5cf6;color:#fff;border:none;border-radius:8px;font-size:.875rem;font-weight:500;cursor:pointer;transition:all .2s}.set-exam-add-question-btn:hover:not(:disabled){background-color:#7c3aed;transform:translateY(-1px);box-shadow:0 4px 6px -1px #0000001a}.set-exam-add-question-btn:disabled{background-color:#9ca3af;cursor:not-allowed;opacity:.6}.set-exam-question-item{background-color:#faf5ff;padding:1.5rem;border-radius:8px;margin-bottom:1rem;border:1px solid #e9d5ff}.set-exam-question-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1rem}.set-exam-question-number{font-weight:600;color:#374151;font-size:.95rem}.set-exam-remove-question-btn{display:flex;align-items:center;gap:.5rem;padding:.5rem 1rem;background-color:#ef4444;color:#fff;border:none;border-radius:6px;font-size:.875rem;cursor:pointer;transition:all .2s}.set-exam-remove-question-btn:hover{background-color:#dc2626}.set-exam-question-fields{display:grid;grid-template-columns:3fr 1fr;gap:1rem}.set-exam-question-field{display:flex;flex-direction:column}.set-exam-question-field label,.set-exam-marks-field label{font-size:.875rem;font-weight:600;color:#374151;margin-bottom:.5rem}.set-exam-question-field textarea{padding:.75rem;border:1px solid #d1d5db;border-radius:8px;font-size:.95rem;font-family:inherit;resize:vertical;transition:all .2s}.set-exam-question-field textarea:focus{outline:none;border-color:#8b5cf6;box-shadow:0 0 0 3px #8b5cf61a}.set-exam-marks-field{display:flex;flex-direction:column}.set-exam-marks-field input{padding:.75rem;border:1px solid #d1d5db;border-radius:8px;font-size:.95rem;transition:all .2s}.set-exam-marks-field input:focus{outline:none;border-color:#8b5cf6;box-shadow:0 0 0 3px #8b5cf61a}.session-filter-container{background:#fff;padding:2.5rem;border-radius:12px;box-shadow:0 1px 3px #0000001a,0 1px 2px -1px #0000001a;max-width:600px;margin:0 auto;text-align:center}.session-filter-container h3{font-size:1.5rem;font-weight:700;color:#1f2937;margin-bottom:.5rem}.session-filter-container p{color:#6b7280;font-size:.95rem;margin-bottom:2rem}.session-filter-grid{display:grid;grid-template-columns:1fr 1fr;gap:1.5rem;margin-bottom:2rem}.session-filter-group{text-align:left}.session-filter-group label{display:block;font-size:.875rem;font-weight:600;color:#374151;margin-bottom:.5rem}.session-filter-select{width:100%;padding:.75rem;border:1px solid #d1d5db;border-radius:8px;font-size:.95rem;transition:all .2s}.session-filter-select:focus{outline:none;border-color:#8b5cf6;box-shadow:0 0 0 3px #8b5cf61a}.session-confirm-btn{padding:.75rem 2.5rem;background-color:#8b5cf6;color:#fff;border:none;border-radius:8px;font-size:1rem;font-weight:600;cursor:pointer;transition:all .2s}.session-confirm-btn:hover:not(:disabled){background-color:#7c3aed;transform:translateY(-2px);box-shadow:0 10px 15px -3px #0000001a}.session-confirm-btn:disabled{background-color:#d1d5db;cursor:not-allowed}.selected-session-banner{background-color:#f5f3ff;border:1px solid #ddd6fe;padding:1rem 1.5rem;border-radius:8px;margin-bottom:1.5rem;display:flex;justify-content:space-between;align-items:center}.selected-session-banner>div{font-size:.95rem;color:#374151}.change-session-btn{padding:.5rem 1.25rem;background-color:#fff;color:#8b5cf6;border:1px solid #8b5cf6;border-radius:6px;font-size:.875rem;font-weight:500;cursor:pointer;transition:all .2s}.change-session-btn:hover{background-color:#8b5cf6;color:#fff}.set-exam-question-type-selector{margin-bottom:1rem;padding-bottom:1rem;border-bottom:1px solid #e5e7eb}.set-exam-question-type-selector label{font-size:.875rem;font-weight:600;color:#374151;margin-right:.75rem}.question-type-select{padding:.5rem;border:1px solid #d1d5db;border-radius:6px;font-size:.875rem;min-width:200px}.question-options{margin-top:1rem;padding:1rem;background-color:#f9fafb;border-radius:8px}.question-options>label{display:block;font-weight:600;margin-bottom:.75rem;color:#374151}.option-row{display:grid;grid-template-columns:30px 1fr auto;gap:.75rem;align-items:center;margin-bottom:.75rem}.option-label{font-weight:600;color:#1f2937;font-size:.95rem}.option-row input[type=text]{padding:.625rem;border:1px solid #d1d5db;border-radius:6px;font-size:.875rem}.correct-checkbox{display:flex;align-items:center;gap:.5rem;padding:.5rem 1rem;background-color:#fff;border:1px solid #d1d5db;border-radius:6px;cursor:pointer;transition:all .2s}.correct-checkbox:hover{background-color:#f3f4f6}.correct-checkbox input[type=radio]{cursor:pointer}.correct-checkbox span{font-size:.875rem;color:#374151}.question-true-false{margin-top:1rem;padding:1rem;background-color:#f9fafb;border-radius:8px}.question-true-false label{display:block;font-weight:600;margin-bottom:.5rem;color:#374151}.question-true-false select{width:100%;padding:.75rem;border:1px solid #d1d5db;border-radius:6px;font-size:.95rem}.question-text-answer{margin-top:1rem;padding:1rem;background-color:#f9fafb;border-radius:8px}.question-text-answer label{display:block;font-weight:600;margin-bottom:.5rem;color:#374151}.question-text-answer textarea{width:100%;padding:.75rem;border:1px solid #d1d5db;border-radius:6px;font-size:.95rem;font-family:inherit;resize:vertical}.question-matching{margin-top:1rem;padding:1rem;background-color:#f9fafb;border-radius:8px}.matching-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1rem}.matching-header label{font-weight:600;color:#374151}.add-pair-btn{display:flex;align-items:center;gap:.375rem;padding:.5rem .875rem;background-color:#8b5cf6;color:#fff;border:none;border-radius:6px;font-size:.8125rem;cursor:pointer;transition:all .2s}.add-pair-btn:hover{background-color:#7c3aed}.matching-pair-row{display:grid;grid-template-columns:1fr auto 1fr auto;gap:.75rem;align-items:center;margin-bottom:.75rem}.matching-pair-row input{padding:.625rem;border:1px solid #d1d5db;border-radius:6px;font-size:.875rem}.matching-pair-row .arrow{font-weight:700;color:#6b7280;font-size:1.25rem}.remove-pair-btn{padding:.5rem;background-color:#ef4444;color:#fff;border:none;border-radius:6px;cursor:pointer;display:flex;align-items:center;transition:all .2s}.remove-pair-btn:hover{background-color:#dc2626}.set-exam-image-field{margin-top:1rem;padding-top:1rem;border-top:1px solid #e5e7eb}.set-exam-image-field label{font-size:.875rem;font-weight:600;color:#374151;display:block;margin-bottom:.5rem}.set-exam-image-input{display:block;width:100%;padding:.625rem;border:2px dashed #d1d5db;border-radius:8px;font-size:.875rem;cursor:pointer;transition:all .2s}.set-exam-image-input:hover{border-color:#8b5cf6;background-color:#faf5ff}.set-exam-image-preview{margin-top:1rem;display:flex;flex-direction:column;gap:.75rem;align-items:center;padding:1rem;background-color:#f9fafb;border-radius:8px;border:1px solid #e5e7eb}.set-exam-image-preview img{max-width:100%;max-height:300px;width:auto;height:auto;border-radius:6px;box-shadow:0 4px 6px -1px #0000001a;object-fit:contain}.set-exam-remove-image-btn{padding:.5rem 1rem;background-color:#ef4444;color:#fff;border:none;border-radius:6px;font-size:.875rem;cursor:pointer;transition:all .2s}.set-exam-remove-image-btn:hover{background-color:#dc2626}.set-exam-total-marks{padding:1rem;background-color:#f5f3ff;border:1px solid #ddd6fe;border-radius:8px;text-align:right;font-size:1.1rem;color:#6b21a8;margin-top:1rem}.set-exam-form-actions{display:flex;justify-content:flex-end;gap:1rem;padding-top:1rem;border-top:1px solid #e5e7eb}.set-exam-submit-btn{display:flex;align-items:center;gap:.5rem;padding:.75rem 2rem;background-color:#8b5cf6;color:#fff;border:none;border-radius:8px;font-size:1rem;font-weight:600;cursor:pointer;transition:all .2s}.set-exam-submit-btn:hover{background-color:#7c3aed;transform:translateY(-2px);box-shadow:0 10px 15px -3px #0000001a}@media (max-width: 768px){.set-exam-container{padding:.75rem;overflow-x:hidden}.set-exam-header{margin-bottom:1.5rem}.set-exam-header h2{font-size:1.5rem}.set-exam-header p{font-size:.875rem}.set-exam-form{padding:1rem;border-radius:8px}.set-exam-form-grid{grid-template-columns:1fr;gap:1rem}.set-exam-form-group label{font-size:.8125rem}.set-exam-form-group input,.set-exam-form-group select{font-size:.875rem;padding:.625rem}.set-exam-question-fields{grid-template-columns:1fr}.set-exam-questions-section{margin-bottom:1.5rem}.set-exam-questions-header{flex-direction:column;gap:.75rem;align-items:stretch;margin-bottom:1rem}.set-exam-questions-header h3{font-size:1.125rem}.question-actions-group{flex-direction:column;gap:.75rem}.bulk-add-group{width:100%;gap:.5rem}.bulk-question-input{flex:1;max-width:80px;font-size:.8125rem;padding:.625rem .5rem}.set-exam-add-question-btn{justify-content:center;padding:.625rem 1rem;font-size:.8125rem;flex:1}.set-exam-question-item{padding:1rem;margin-bottom:.75rem}.set-exam-question-header{margin-bottom:.75rem}.set-exam-question-number{font-size:.875rem}.set-exam-remove-question-btn{padding:.5rem .75rem;font-size:.8125rem}.set-exam-question-type-selector label{font-size:.8125rem}.question-type-select{font-size:.8125rem;min-width:100%;max-width:100%}.set-exam-question-field label,.set-exam-marks-field label{font-size:.8125rem}.set-exam-question-field textarea,.set-exam-marks-field input{font-size:.875rem;padding:.625rem}.set-exam-form-actions{flex-direction:column;padding-top:.75rem}.set-exam-submit-btn{width:100%;justify-content:center;padding:.75rem 1.5rem;font-size:.9375rem}.set-exam-total-marks{font-size:1rem;padding:.75rem}.question-options{padding:.75rem}.question-options>label{font-size:.875rem;margin-bottom:.5rem}.option-row{grid-template-columns:25px 1fr;gap:.5rem;margin-bottom:.5rem}.option-label{font-size:.875rem}.correct-checkbox{grid-column:1 / -1;justify-content:center;margin-top:.25rem;padding:.5rem}.correct-checkbox span{font-size:.8125rem}.option-row input[type=text]{font-size:.8125rem;padding:.5rem;width:100%;box-sizing:border-box;word-wrap:break-word}.question-matching{padding:.75rem}.matching-header{flex-direction:column;align-items:flex-start;gap:.5rem}.add-pair-btn{width:100%;justify-content:center;font-size:.8125rem}.matching-pair-row{grid-template-columns:1fr;gap:.5rem}.matching-pair-row input{font-size:.8125rem;padding:.5rem;width:100%;box-sizing:border-box}.matching-pair-row .arrow{display:none}.remove-pair-btn{justify-self:center;width:100%}.question-true-false,.question-text-answer{padding:.75rem}.question-true-false label,.question-text-answer label{font-size:.875rem}.question-true-false select,.question-text-answer textarea{font-size:.875rem;padding:.625rem}.session-filter-container{padding:1.5rem;max-width:100%;box-sizing:border-box}.session-filter-container h3{font-size:1.25rem}.session-filter-container p{font-size:.875rem;margin-bottom:1.5rem}.session-filter-grid{grid-template-columns:1fr;gap:1rem;margin-bottom:1.5rem}.session-filter-group label{font-size:.8125rem}.session-filter-select{font-size:.875rem;padding:.625rem}.session-confirm-btn{padding:.75rem 2rem;font-size:.9375rem}.selected-session-banner{padding:.75rem 1rem;flex-direction:column;gap:.75rem;align-items:flex-start}.selected-session-banner>div{font-size:.875rem}.change-session-btn{width:100%;text-align:center;font-size:.8125rem}.set-exam-image-field label{font-size:.8125rem}.set-exam-image-input{font-size:.8125rem;padding:.5rem}.set-exam-image-preview{padding:.75rem}.set-exam-image-preview img{max-height:200px}.set-exam-remove-image-btn{font-size:.8125rem;padding:.5rem .75rem}input,select,textarea{word-wrap:break-word;overflow-wrap:break-word}}.vq-main-wrapper{padding:0 2rem 2rem;max-width:1400px;margin:0 auto}.vq-page-header{margin-bottom:2rem}.vq-page-header h2{font-size:1.75rem;font-weight:700;color:#1f2937;margin-bottom:.5rem}.vq-page-header p{color:#6b7280;font-size:.95rem}.view-questions-loading{text-align:center;padding:3rem;color:#6b7280;font-size:1.1rem}.view-questions-error{background-color:#fee2e2;border:1px solid #fecaca;color:#b91c1c;padding:1rem;border-radius:8px;margin-bottom:1.5rem;font-size:.95rem}.view-questions-filters{background:#fff;padding:2rem;border-radius:12px;box-shadow:0 1px 3px #0000001a,0 1px 2px -1px #0000001a;margin-bottom:2rem}.filters-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:1.5rem;margin-bottom:1.5rem}.filter-group{display:flex;flex-direction:column}.filter-group label{font-size:.875rem;font-weight:600;color:#374151;margin-bottom:.5rem}.filter-group select{padding:.75rem;border:1px solid #d1d5db;border-radius:8px;font-size:.95rem;transition:all .2s}.filter-group select:focus{outline:none;border-color:#3b82f6;box-shadow:0 0 0 3px #6366f11a}.filter-group select:disabled{background-color:#f3f4f6;cursor:not-allowed}.search-btn{display:flex;align-items:center;gap:.5rem;padding:.75rem 2rem;background-color:#3b82f6;color:#fff;border:none;border-radius:8px;font-size:1rem;font-weight:600;cursor:pointer;transition:all .2s}.search-btn:hover:not(:disabled){background-color:#2563eb;transform:translateY(-1px);box-shadow:0 4px 6px -1px #0000001a}.search-btn:disabled{background-color:#d1d5db;cursor:not-allowed}.assessments-results{margin-top:2rem}.no-results{text-align:center;padding:3rem;background:#fff;border-radius:12px;color:#6b7280;font-size:1rem}.assessments-list h3{font-size:1.25rem;font-weight:600;color:#1f2937;margin-bottom:1.5rem}.assessment-card{background:#fff;border-radius:12px;box-shadow:0 1px 3px #0000001a,0 1px 2px -1px #0000001a;margin-bottom:1.5rem;overflow:hidden}.assessment-header{display:flex;justify-content:space-between;align-items:center;padding:1.5rem;cursor:pointer;transition:background-color .2s}.assessment-header:hover{background-color:#f9fafb}.assessment-info h4{font-size:1.125rem;font-weight:600;color:#1f2937;margin-bottom:.5rem}.assessment-meta{display:flex;gap:1.5rem;flex-wrap:wrap}.meta-item{font-size:.875rem;color:#6b7280}.toggle-btn{padding:.5rem;background:none;border:none;color:#3b82f6;cursor:pointer;transition:all .2s;border-radius:6px}.toggle-btn:hover{background-color:#eef2ff}.assessment-questions{border-top:1px solid #e5e7eb;padding:1.5rem;background-color:#f9fafb}.no-questions{text-align:center;padding:2rem;color:#6b7280}.question-item{background:#fff;padding:1.5rem;border-radius:8px;margin-bottom:1rem;border:1px solid #e5e7eb}.question-header{display:flex;align-items:center;gap:1rem;margin-bottom:1rem;flex-wrap:wrap}.question-number{font-weight:700;color:#1f2937;font-size:.95rem;background-color:#eef2ff;padding:.25rem .75rem;border-radius:4px}.question-type-badge{font-size:.8125rem;color:#3b82f6;background-color:#eef2ff;padding:.25rem .75rem;border-radius:4px;font-weight:500}.question-marks{font-size:.875rem;color:#059669;font-weight:600}.edit-question-btn{margin-left:auto;display:flex;align-items:center;gap:.5rem;padding:.5rem 1rem;background-color:#3b82f6;color:#fff;border:none;border-radius:6px;font-size:.875rem;cursor:pointer;transition:all .2s}.edit-question-btn:hover{background-color:#2563eb;transform:translateY(-1px)}.question-text{font-size:.95rem;color:#1f2937;line-height:1.6;margin-bottom:1rem;white-space:pre-wrap}.question-image{margin:1rem 0}.question-image img{max-width:100%;max-height:300px;border-radius:8px;box-shadow:0 4px 6px -1px #0000001a}.question-options{margin-top:1rem;display:flex;flex-direction:column;gap:.75rem}.option{display:flex;align-items:center;gap:.75rem;padding:.75rem;background-color:#f9fafb;border-radius:6px;border:1px solid #e5e7eb}.option.correct{background-color:#d1fae5;border-color:#a7f3d0}.option-label{font-weight:700;color:#1f2937;min-width:25px}.option.correct .option-label{color:#065f46}.option-text{flex:1;color:#374151;font-size:.95rem}.option.correct .option-text{color:#065f46;font-weight:600}.correct-badge{font-size:.8125rem;color:#065f46;background-color:#a7f3d0;padding:.25rem .75rem;border-radius:4px;font-weight:600}.question-answer{margin-top:1rem;padding:1rem;background-color:#f0fdf4;border-left:4px solid #10b981;border-radius:4px;color:#065f46;font-weight:600}.question-answer strong{color:#065f46;display:block;margin-bottom:.5rem;font-weight:700}.matching-pairs{margin-top:1rem;padding:1rem;background-color:#fef3c7;border-left:4px solid #f59e0b;border-radius:4px}.matching-pairs strong{color:#92400e;display:block;margin-bottom:.75rem;font-weight:700}.matching-pair{display:flex;align-items:center;gap:1rem;padding:.5rem 0;color:#92400e;font-weight:600}.matching-pair .arrow{font-weight:700;color:#f59e0b}.edit-modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background-color:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000;padding:1rem}.edit-modal{background:#fff;border-radius:12px;width:100%;max-width:700px;max-height:90vh;overflow-y:auto;box-shadow:0 20px 25px -5px #0000001a,0 8px 10px -6px #0000001a}.edit-modal-header{display:flex;justify-content:space-between;align-items:center;padding:1.5rem;border-bottom:1px solid #e5e7eb}.edit-modal-header h3{font-size:1.25rem;font-weight:600;color:#1f2937}.close-modal-btn{background:none;border:none;font-size:2rem;color:#6b7280;cursor:pointer;padding:0;width:2rem;height:2rem;display:flex;align-items:center;justify-content:center;border-radius:4px;transition:all .2s}.close-modal-btn:hover{background-color:#f3f4f6;color:#1f2937}.edit-modal-body{padding:1.5rem}.edit-form-group{margin-bottom:1.5rem}.edit-form-group label{display:block;font-size:.875rem;font-weight:600;color:#374151;margin-bottom:.5rem}.edit-form-group textarea,.edit-form-group input[type=text],.edit-form-group input[type=number],.edit-form-group select{width:100%;padding:.75rem;border:1px solid #d1d5db;border-radius:8px;font-size:.95rem;transition:all .2s}.edit-form-group textarea:focus,.edit-form-group input:focus,.edit-form-group select:focus{outline:none;border-color:#3b82f6;box-shadow:0 0 0 3px #6366f11a}.edit-option-row{display:grid;grid-template-columns:30px 1fr auto;gap:.75rem;align-items:center;margin-bottom:.75rem}.edit-option-row .option-label{font-weight:700;color:#1f2937}.edit-option-row input[type=text]{width:100%}.edit-matching-row{display:grid;grid-template-columns:1fr auto 1fr;gap:.75rem;align-items:center;margin-bottom:.75rem}.edit-matching-row .arrow{font-weight:700;color:#3b82f6}.edit-modal-footer{display:flex;justify-content:flex-end;gap:1rem;padding:1.5rem;border-top:1px solid #e5e7eb}.cancel-btn,.save-btn{padding:.75rem 1.5rem;border-radius:8px;font-size:.95rem;font-weight:600;cursor:pointer;transition:all .2s}.cancel-btn{background-color:#fff;color:#374151;border:1px solid #d1d5db}.cancel-btn:hover:not(:disabled){background-color:#f9fafb}.save-btn{background-color:#3b82f6;color:#fff;border:none}.save-btn:hover:not(:disabled){background-color:#2563eb;transform:translateY(-1px)}.save-btn:disabled,.cancel-btn:disabled{opacity:.5;cursor:not-allowed}.current-image-preview{margin-top:.75rem;border:2px solid #e5e7eb;border-radius:8px;padding:1rem;background-color:#f9fafb}.current-image-preview img{max-width:100%;max-height:250px;border-radius:6px;display:block;margin:0 auto 1rem}.image-actions{display:flex;justify-content:center;gap:.75rem}.delete-image-btn,.remove-image-btn{padding:.5rem 1rem;border-radius:6px;font-size:.875rem;font-weight:600;cursor:pointer;transition:all .2s;border:none}.delete-image-btn{background-color:#ef4444;color:#fff}.delete-image-btn:hover{background-color:#dc2626}.remove-image-btn{background-color:#6b7280;color:#fff}.remove-image-btn:hover{background-color:#4b5563}.image-delete-notice{color:#dc2626;font-size:.875rem;font-style:italic;margin-top:.5rem}@media (max-width: 1024px){.filters-grid{grid-template-columns:repeat(2,1fr)}}@media (max-width: 768px){.vq-main-wrapper{padding:0 1rem 1rem;overflow-x:hidden}.vq-page-header{margin-top:0;margin-bottom:1rem;padding-top:.5rem}.vq-page-header h2{font-size:1.5rem;margin-top:0}.vq-page-header p{font-size:.875rem}.filters-grid{grid-template-columns:1fr}.view-questions-filters{padding:1.5rem}.assessment-meta{flex-direction:column;gap:.5rem;align-items:flex-start}.meta-item{word-break:break-word}.question-header{flex-direction:column;align-items:flex-start;gap:.75rem}.edit-question-btn{margin-left:0;width:100%;justify-content:center}.question-text,.option-text{word-wrap:break-word;overflow-wrap:break-word;word-break:break-word}.assessment-card{overflow:hidden}.assessment-header{padding:1rem;flex-direction:column;align-items:flex-start;gap:1rem}.assessment-info{width:100%}.assessment-info h4{word-break:break-word;font-size:1rem}.question-item{padding:1rem;overflow:hidden}.option{flex-wrap:wrap;padding:.625rem}.option-label{flex-shrink:0}.option-text{flex:1 1 100%;min-width:0}.correct-badge{flex-shrink:0}.matching-pair{flex-direction:column;align-items:flex-start;gap:.5rem}.matching-pair .arrow{transform:rotate(90deg)}.edit-modal{margin:.5rem;max-width:calc(100vw - 1rem)}.edit-modal-header,.edit-modal-body,.edit-modal-footer{padding:1rem}.edit-option-row{grid-template-columns:25px 1fr;gap:.5rem}.edit-option-row input[type=checkbox]{grid-column:1 / -1;margin-top:.5rem}.edit-matching-row{grid-template-columns:1fr;gap:.5rem}.edit-matching-row .arrow{text-align:center}.edit-modal-footer{flex-direction:column}.cancel-btn,.save-btn{width:100%}.question-image img,.current-image-preview img{max-width:100%;height:auto}.search-btn{width:100%;justify-content:center}}@media (max-width: 480px){.view-questions-container{padding:5rem .75rem .75rem}.view-questions-filters,.assessment-card,.question-item{border-radius:8px}.view-questions-filters{padding:1rem}.assessment-header,.question-item{padding:.875rem}.assessment-info h4{font-size:.95rem}.question-text,.option-text{font-size:.875rem}}.mg-main-wrapper{padding:0 2rem 2rem;max-width:1400px;margin:0 auto}.mg-page-header{margin-bottom:2rem}.mg-page-header h2{font-size:1.75rem;font-weight:700;color:#1f2937;margin-bottom:.5rem}.mg-page-header p{color:#6b7280;font-size:.95rem}.manual-grading-loading{text-align:center;padding:3rem;color:#6b7280;font-size:1.1rem}.message{display:flex;align-items:flex-start;gap:.75rem;padding:1rem 1.25rem;border-radius:8px;margin-bottom:1.5rem;font-size:.95rem;white-space:pre-line;word-break:break-word}.message.success{background-color:#d1fae5;border:1px solid #6ee7b7;color:#065f46}.message.error{background-color:#fee2e2;border:1px solid #fecaca;color:#b91c1c}.subjects-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:1.5rem}.no-subjects{grid-column:1 / -1;text-align:center;padding:3rem;background:#fff;border-radius:12px;box-shadow:0 1px 3px #0000001a}.subject-card{background:#fff;border-radius:12px;padding:1.5rem;cursor:pointer;transition:all .3s;border:2px solid #e5e7eb;box-shadow:0 1px 3px #0000001a}.subject-card:hover{transform:translateY(-4px);box-shadow:0 10px 15px -3px #0000001a;border-color:#3b82f6}.subject-card .subject-name{font-size:1.125rem;font-weight:600;color:#1f2937;margin-bottom:.75rem;word-wrap:break-word;overflow-wrap:break-word;-webkit-hyphens:auto;hyphens:auto}.subject-session{color:#6b7280;font-size:.9375rem;font-weight:500;margin-bottom:1rem}.grade-status{display:flex;flex-direction:column;gap:.5rem}.status-badge{display:inline-block;padding:.375rem .75rem;border-radius:6px;font-size:.8125rem;font-weight:600}.status-badge.available{background-color:#d1fae5;color:#065f46}.status-badge.locked{background-color:#fee2e2;color:#b91c1c}.mg-grading-container{background:#fff;border-radius:12px;padding:2rem;box-shadow:0 1px 3px #0000001a;margin:0 auto;max-width:100%}.grading-controls{display:flex;justify-content:space-between;align-items:center;margin-bottom:1.5rem;flex-wrap:wrap;gap:1rem}.back-btn{padding:.625rem 1.25rem;background:#fff;border:2px solid #e5e7eb;color:#374151;border-radius:8px;font-size:.95rem;font-weight:500;cursor:pointer;transition:all .2s}.grade-type-selector{display:flex;gap:.5rem}.grade-type-btn{padding:.625rem 1.5rem;background:#fff;border:2px solid #e5e7eb;color:#6b7280;border-radius:8px;font-size:.9375rem;font-weight:600;cursor:pointer;transition:all .2s}.grade-type-btn:hover{border-color:#d1d5db}.grade-type-btn.active{background:linear-gradient(135deg,#60a5fa,#3b82f6);color:#fff;border-color:#3b82f6}.subject-info-banner{background:linear-gradient(135deg,#eff6ff,#dbeafe);padding:1.5rem;border-radius:10px;margin-bottom:1.5rem;border:2px solid #93c5fd}.subject-info-banner h3{font-size:1.25rem;font-weight:700;color:#1e40af;margin-bottom:.25rem}.subject-info-banner p{color:#1e40af;font-size:.9375rem;margin-bottom:.5rem}.max-score-info{font-weight:600;margin-top:.75rem}.cannot-grade-message,.grades-locked-message{text-align:center;padding:3rem 2rem;background:#fef3c7;border:2px solid #fcd34d;border-radius:12px;color:#92400e}.cannot-grade-message svg,.grades-locked-message svg{margin-bottom:1rem;color:#d97706}.cannot-grade-message h3,.grades-locked-message h3{font-size:1.5rem;font-weight:700;margin-bottom:.75rem;color:#92400e}.cannot-grade-message p,.grades-locked-message p{font-size:1rem;color:#92400e;margin-bottom:1.5rem}.grades-locked-message{background:#fee2e2;border-color:#fca5a5;color:#7f1d1d}.grades-locked-message svg{color:#dc2626}.grades-locked-message h3,.grades-locked-message p{color:#7f1d1d}.students-table-container{overflow-x:auto;margin-bottom:1.5rem}.students-table{width:100%;border-collapse:collapse;background:#fff}.students-table thead{background:#f9fafb;border-bottom:2px solid #e5e7eb}.students-table th{padding:1rem;text-align:left;font-weight:600;color:#374151;font-size:.875rem;text-transform:uppercase;letter-spacing:.05em}.students-table tbody tr{border-bottom:1px solid #e5e7eb;transition:background-color .2s}.students-table tbody tr:hover{background-color:#f9fafb}.students-table td{padding:1rem;color:#1f2937;font-size:.9375rem}.grade-input{width:120px;padding:.5rem;border:2px solid #e5e7eb;border-radius:6px;font-size:.9375rem;font-weight:500;transition:all .2s}.grade-input:focus{outline:none;border-color:#3b82f6;box-shadow:0 0 0 3px #3b82f61a}.locked-score{display:flex;align-items:center;gap:.5rem;font-weight:600;color:#6b7280}.inline-lock-icon{margin-left:.5rem;color:#dc2626}.save-grade-btn{display:flex;align-items:center;gap:.375rem;padding:.5rem 1rem;background:linear-gradient(135deg,#10b981,#059669);color:#fff;border:none;border-radius:6px;font-size:.875rem;font-weight:600;cursor:pointer;transition:all .2s;white-space:nowrap}.save-grade-btn:hover:not(:disabled){background:linear-gradient(135deg,#059669,#047857);transform:translateY(-1px);box-shadow:0 4px 8px #10b9814d}.save-grade-btn:disabled{opacity:.6;cursor:not-allowed}.locked-badge{display:inline-flex;align-items:center;gap:.375rem;padding:.375rem .75rem;background-color:#fee2e2;color:#991b1b;border-radius:6px;font-size:.8125rem;font-weight:600;white-space:nowrap}.save-section{display:flex;flex-direction:column;align-items:center;gap:1rem;padding-top:1.5rem;border-top:2px solid #e5e7eb}.grading-info{width:100%;text-align:center;padding:.75rem 1rem;background:linear-gradient(135deg,#eff6ff,#dbeafe);border-radius:8px;border:2px solid #93c5fd}.info-text{margin:0;color:#1e40af;font-size:.9375rem;font-weight:600}.save-grades-btn{display:flex;align-items:center;gap:.75rem;padding:.875rem 2rem;background:linear-gradient(135deg,#10b981,#059669);color:#fff;border:none;border-radius:10px;font-size:1rem;font-weight:700;cursor:pointer;transition:all .3s}.save-grades-btn:hover:not(:disabled){background:linear-gradient(135deg,#059669,#047857);transform:translateY(-2px);box-shadow:0 8px 12px -2px #10b9814d}.save-grades-btn:disabled{opacity:.6;cursor:not-allowed}.info-section{padding:1.5rem 1rem;text-align:center;border-top:2px solid #e5e7eb;margin-top:1.5rem}.warning-text{color:#d97706;font-size:.875rem;font-weight:600;text-align:center;margin:0}@media (max-width: 768px){.mg-main-wrapper{padding:0 1rem 1rem;overflow-x:hidden;max-width:100vw;box-sizing:border-box}.mg-page-header{margin-top:0;margin-bottom:1.5rem;padding-top:.5rem;overflow:hidden}.mg-page-header h2{font-size:1.5rem;margin-top:0;word-break:break-word;overflow-wrap:break-word}.mg-page-header p{font-size:.875rem;word-break:break-word}.message{padding:.875rem 1rem;font-size:.875rem}.subjects-grid{grid-template-columns:1fr;gap:1rem}.subject-card{padding:1.25rem;width:100%;box-sizing:border-box}.subject-card .subject-name{font-size:1.125rem;word-wrap:break-word;overflow-wrap:break-word;-webkit-hyphens:auto;hyphens:auto;line-height:1.4;margin-bottom:.75rem}.subject-session{font-size:.875rem;margin-bottom:1rem}.grade-status{display:flex;flex-direction:column;gap:.5rem}.status-badge{display:block;text-align:center;padding:.5rem .75rem;font-size:.8125rem}.mg-grading-container{padding:1rem;overflow:visible;margin:0 -1rem;width:calc(100% + 2rem);box-sizing:border-box;border-radius:0}.grading-controls{flex-direction:column;align-items:stretch;gap:1rem;padding:0;margin-bottom:1.5rem}.back-btn{width:100%;justify-content:center;text-align:center}.grade-type-selector{width:100%;display:flex;gap:.5rem}.grade-type-btn{flex:1;padding:.625rem 1rem;font-size:.875rem}.subject-info-banner{padding:1.25rem;margin:0 0 1.5rem}.subject-info-banner h3{font-size:1.125rem;word-break:break-word}.subject-info-banner p{font-size:.875rem;word-break:break-word}.grading-info{padding:.625rem .875rem;margin:0 0 1.5rem}.info-text{font-size:.875rem}.cannot-grade-message,.grades-locked-message{padding:2rem 1rem;margin:0}.cannot-grade-message h3,.grades-locked-message h3{font-size:1.25rem}.cannot-grade-message p,.grades-locked-message p{font-size:.9375rem}.students-table-container{overflow-x:auto;-webkit-overflow-scrolling:touch;width:100%;margin:0;padding:0;box-sizing:border-box}.students-table{width:100%;min-width:600px;font-size:.875rem;margin:0 auto}.students-table th{padding:.75rem .5rem;font-size:.8125rem;white-space:nowrap}.students-table td{padding:.75rem .5rem;font-size:.875rem}.grade-input{width:100px;padding:.5rem .375rem;font-size:.875rem}.save-grade-btn{padding:.5rem .75rem;font-size:.8125rem}.locked-badge{font-size:.75rem;padding:.375rem .625rem}.info-section{padding:1.25rem 0}.warning-text{font-size:.8125rem}}@media (max-width: 480px){.mg-main-wrapper{padding:0 .75rem .75rem}.mg-page-header{margin-top:0;padding-top:.5rem;margin-bottom:1.25rem}.mg-page-header h2{font-size:1.25rem;margin-top:0}.mg-page-header p{font-size:.8125rem}.message{padding:.75rem .875rem;font-size:.8125rem}.subjects-grid{gap:.875rem}.subject-card{padding:1rem;width:100%;box-sizing:border-box}.subject-card .subject-name{font-size:1rem;word-wrap:break-word;overflow-wrap:break-word;-webkit-hyphens:auto;hyphens:auto;line-height:1.4;margin-bottom:.625rem}.subject-session{font-size:.8125rem;margin-bottom:.875rem}.status-badge{padding:.5rem .625rem;font-size:.75rem}.mg-grading-container{padding:.75rem;margin:0 -.75rem;width:calc(100% + 1.5rem);box-sizing:border-box;border-radius:0}.grading-controls{padding:0}.back-btn{padding:.5rem 1rem;font-size:.875rem}.grade-type-btn{padding:.5rem .75rem;font-size:.8125rem}.subject-info-banner{padding:1rem;margin:0 0 1.5rem}.subject-info-banner h3{font-size:1rem}.subject-info-banner p{font-size:.8125rem}.grading-info{padding:.5rem .75rem;margin:0 0 1.5rem}.info-text{font-size:.8125rem}.cannot-grade-message,.grades-locked-message{padding:1.5rem .875rem;margin:0}.cannot-grade-message h3,.grades-locked-message h3{font-size:1.125rem}.cannot-grade-message p,.grades-locked-message p{font-size:.875rem}.students-table-container{width:100%;margin:0;padding:0;box-sizing:border-box}.students-table{width:100%;min-width:550px;font-size:.8125rem;margin:0 auto}.students-table th{padding:.625rem .375rem;font-size:.75rem}.students-table td{padding:.625rem .375rem;font-size:.8125rem}.grade-input{width:80px;padding:.5rem .25rem;font-size:.8125rem}.save-grade-btn{padding:.5rem .625rem;font-size:.75rem}.locked-badge{font-size:.7rem;padding:.3125rem .5rem}.info-section{padding:1rem 0}.warning-text{font-size:.75rem}}.teacher-announcements-container{max-width:900px;margin:0 auto;padding:0 1rem}.teacher-announcements-loading,.teacher-announcements-error{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:4rem 2rem;text-align:center;color:#666}.teacher-announcements-loading .spin{animation:spin 1s linear infinite}.teacher-announcements-error svg{color:#ef5350;margin-bottom:1rem}.announcements-list{display:flex;flex-direction:column;gap:1rem;padding-bottom:2rem}.announcement-item.priority-urgent{border-left-color:#d32f2f;background:#ffebee}.announcement-item.priority-urgent .announcement-icon{background:#ffcdd2;color:#d32f2f}.announcement-item.priority-medium .announcement-icon{background:#fff3e0;color:#ff9800}.announcement-item.priority-low .announcement-icon{background:#e8f5e9;color:#4caf50}.announcement-meta{display:flex;gap:.75rem;align-items:center;margin-bottom:.75rem;flex-wrap:wrap}.priority-badge{display:inline-block;padding:.25rem .65rem;border-radius:12px;font-size:.75rem;font-weight:600;text-transform:uppercase}.announcement-item.priority-urgent .priority-badge{background:#ffcdd2;color:#b71c1c}.announcement-item.priority-high .priority-badge{background:#ffebee;color:#c62828}.announcement-item.priority-medium .priority-badge{background:#fff3e0;color:#e65100}.announcement-item.priority-low .priority-badge{background:#e8f5e9;color:#2e7d32}.created-by{font-size:.8rem;color:#888;font-weight:500}@media (max-width: 768px){.teacher-announcements-container{padding:0 .5rem}.announcements-header{flex-direction:column;align-items:flex-start;gap:1rem}.header-left h2{font-size:1.5rem}.announcement-item{padding:1rem;gap:.75rem}.announcement-icon{min-width:36px;height:36px}.announcement-title{font-size:.95rem}.announcement-message{font-size:.9rem}.announcements-filters{gap:.5rem}.filter-btn{padding:.5rem 1rem;font-size:.85rem}}@media (max-width: 480px){.announcement-item{flex-direction:column;align-items:flex-start}.announcement-icon{margin-bottom:.5rem}.announcement-footer,.announcement-meta{gap:.5rem}}.teacher-dashboard-container{display:flex;min-height:100vh}.teacher-dashboard-main{margin-left:100px;padding:2rem;padding-top:50px;flex:1;min-height:100vh;background-color:#fafafa}.teacher-dashboard-greeting{color:#333;font-size:1.5rem;font-weight:600;margin-top:0;margin-bottom:.5rem}.teacher-dashboard-subtitle{color:#666;font-size:1.1rem;margin-bottom:2rem}.teacher-dashboard-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:1rem;margin-top:2rem}.teacher-dashboard-card{background:#fff;padding:1.5rem;border-radius:8px;border:1px solid #e0e0e0;box-shadow:0 2px 4px #0000001a;transition:box-shadow .3s ease,transform .3s ease}.teacher-dashboard-card:hover{box-shadow:0 4px 12px #00000026;transform:translateY(-2px)}.teacher-dashboard-card-title{color:#0d47a1;font-size:1.2rem;font-weight:600;margin-bottom:1rem}.teacher-dashboard-card-text{color:#333;font-size:.95rem;line-height:1.5}.teacher-dashboard-section{background:#fff;border-radius:8px;padding:2rem;box-shadow:0 2px 4px #0000001a}.teacher-dashboard-section-title{color:#333;font-size:1.8rem;font-weight:600;margin-bottom:1rem}.teacher-dashboard-section-text{color:#666;font-size:1rem;line-height:1.6}.td-main-wrapper{max-width:1200px;margin:0 auto}.td-page-header{margin-bottom:2rem}.td-page-header h2{color:#1f2937;font-size:1.75rem;font-weight:700;margin-bottom:.5rem}.td-page-header p{color:#6b7280;font-size:1rem}.td-loading,.td-no-data{text-align:center;padding:3rem;color:#6b7280;font-size:1.1rem}.grading-tiles-container{display:grid;grid-template-columns:repeat(2,1fr);gap:1.25rem;margin-top:1.5rem}.grading-tiles-row-2{display:grid;grid-template-columns:repeat(2,1fr);gap:1.25rem;margin-top:1.25rem}.grading-tile{background:#fff;border-radius:10px;padding:1.25rem;box-shadow:0 2px 6px #00000014;border:1px solid #e5e7eb;transition:all .3s ease}.grading-tile:hover{box-shadow:0 3px 10px #0000001f;transform:translateY(-2px)}.grading-tile-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1rem;padding-bottom:.75rem;border-bottom:2px solid #f3f4f6}.grading-tile-header h3{font-size:1.25rem;font-weight:700;color:#1f2937;margin:0}.session-badge{background:linear-gradient(135deg,#3b82f6,#2563eb);color:#fff;padding:.375rem .75rem;border-radius:16px;font-size:.8125rem;font-weight:600}.subject-selector{margin-bottom:1rem;display:flex;align-items:center;gap:.75rem;padding:.75rem;background:#f9fafb;border-radius:8px}.subject-selector label{font-size:.875rem;font-weight:600;color:#374151;white-space:nowrap}.subject-dropdown{flex:1;padding:.5rem;border:1px solid #d1d5db;border-radius:6px;font-size:.875rem;background:#fff;color:#1f2937;cursor:pointer;outline:none;transition:border-color .2s}.subject-dropdown:hover{border-color:#3b82f6}.subject-dropdown:focus{border-color:#3b82f6;box-shadow:0 0 0 3px #3b82f61a}.grading-section{margin-bottom:1rem;padding:1rem;background:#f9fafb;border-radius:8px;transition:all .2s ease}.grading-section:last-child{margin-bottom:0}.grading-section.clickable{cursor:pointer;border:1px solid transparent}.grading-section.clickable:hover{background:#f3f4f6;border-color:#3b82f6;transform:translateY(-1px);box-shadow:0 2px 4px #3b82f61a}.section-title{font-size:.8125rem;font-weight:600;color:#374151;margin-bottom:.75rem;text-transform:uppercase;letter-spacing:.5px}.progress-bar-container{width:100%;height:32px;background:#e5e7eb;border-radius:16px;overflow:hidden;margin-bottom:.5rem;position:relative}.progress-bar{height:100%;border-radius:16px;display:flex;align-items:center;justify-content:center;transition:width .5s ease;min-width:100px;position:relative}.test-progress{background:linear-gradient(135deg,#10b981,#059669)}.exam-progress{background:linear-gradient(135deg,#8b5cf6,#7c3aed)}.progress-label{color:#fff;font-weight:600;font-size:.875rem;white-space:nowrap}.count-display{font-size:1.75rem;font-weight:700;color:#1f2937;margin-bottom:.25rem;margin-top:0}.section-description{color:#6b7280;font-size:.875rem;line-height:1.4;margin:0}.no-data-message{color:#10b981;font-size:.875rem;font-weight:600;margin:0;padding:.75rem;text-align:center;background:#d1fae5;border-radius:6px}@media (max-width: 768px){.teacher-dashboard-main{margin-left:0;padding:1rem;padding-top:50px}.teacher-dashboard-greeting{font-size:1.25rem;margin-top:0}.teacher-dashboard-grid{grid-template-columns:1fr}.td-page-header h2{font-size:1.375rem}.td-page-header p{font-size:.875rem}.grading-tiles-container,.grading-tiles-row-2{grid-template-columns:1fr;gap:1rem}.grading-tile{padding:1rem}.grading-tile-header{flex-direction:column;align-items:flex-start;gap:.75rem;margin-bottom:.75rem;padding-bottom:.5rem}.grading-tile-header h3{font-size:1.125rem}.session-badge{font-size:.75rem;padding:.375rem .75rem}.subject-selector{padding:.625rem;gap:.5rem}.subject-selector label{font-size:.8125rem}.subject-dropdown{font-size:.8125rem;padding:.4375rem}.grading-section{padding:.875rem;margin-bottom:.75rem}.section-title{font-size:.75rem;margin-bottom:.625rem}.progress-bar-container{height:28px;margin-bottom:.375rem}.progress-label{font-size:.8125rem}.count-display{font-size:1.5rem;margin-bottom:.25rem}.section-description{font-size:.8125rem}.no-data-message{font-size:.8125rem;padding:.625rem}}.modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000;padding:1rem}.modal-content{background:#fff;border-radius:12px;max-width:800px;width:100%;max-height:90vh;overflow:hidden;display:flex;flex-direction:column;box-shadow:0 10px 40px #0003}.modal-header{display:flex;justify-content:space-between;align-items:flex-start;padding:1.5rem;border-bottom:1px solid #e5e7eb}.modal-header h3{font-size:1.25rem;font-weight:700;color:#1f2937;margin:0 0 .25rem}.modal-subtitle{font-size:.875rem;color:#6b7280;margin:0}.modal-close-btn{background:none;border:none;font-size:2rem;color:#6b7280;cursor:pointer;padding:0;width:32px;height:32px;display:flex;align-items:center;justify-content:center;border-radius:4px;transition:all .2s}.modal-close-btn:hover{background:#f3f4f6;color:#1f2937}.modal-body{padding:1.5rem;overflow-y:auto;flex:1}.modal-loading{text-align:center;padding:3rem;color:#6b7280;font-size:1rem}.modal-no-data{text-align:center;padding:3rem;color:#10b981;font-size:1rem;font-weight:600}.students-list{width:100%}.modal-students-table{width:100%;border-collapse:collapse;font-size:.875rem}.modal-students-table thead{background:#f9fafb;border-bottom:2px solid #e5e7eb}.modal-students-table th{padding:.75rem;text-align:left;font-weight:600;color:#374151;font-size:.8125rem;text-transform:uppercase;letter-spacing:.5px}.modal-students-table td{padding:.875rem .75rem;border-bottom:1px solid #f3f4f6;color:#1f2937}.modal-students-table tbody tr:hover{background:#f9fafb}.modal-students-table tbody tr:last-child td{border-bottom:none}.modal-footer{margin-top:1rem;padding-top:1rem;border-top:1px solid #e5e7eb;text-align:right}.modal-footer p{margin:0;font-size:.875rem;font-weight:600;color:#374151}.status-badge{display:inline-block;padding:.25rem .75rem;border-radius:12px;font-size:.75rem;font-weight:600;text-transform:uppercase;letter-spacing:.5px}.status-not-done{background:#fef3c7;color:#92400e}.status-awaiting{background:#dbeafe;color:#1e40af}.score-display{font-weight:700;font-size:1rem;color:#059669}.students-ranking-list{list-style:none;padding:0;margin:0}.students-ranking-list li{display:flex;align-items:center;padding:.75rem;margin-bottom:.5rem;background:#fff;border:1px solid #e5e7eb;border-radius:6px;transition:all .2s}.students-ranking-list li:last-child{margin-bottom:0}.students-ranking-list li:hover{background:#f9fafb;border-color:#3b82f6}.rank-number{display:flex;align-items:center;justify-content:center;width:28px;height:28px;border-radius:50%;font-weight:700;font-size:.875rem;margin-right:.75rem;flex-shrink:0}.rank-number.top{background:linear-gradient(135deg,#10b981,#059669);color:#fff}.rank-number.bottom{background:linear-gradient(135deg,#ef4444,#dc2626);color:#fff}.student-info{flex:1}.student-info .name{font-weight:600;color:#1f2937;font-size:.875rem;margin-bottom:.125rem}.student-info .username{font-size:.75rem;color:#6b7280}.no-rankings-message{text-align:center;padding:2rem 1rem;color:#6b7280;font-size:.875rem}@media (max-width: 768px){.modal-overlay{padding:.5rem}.modal-content{max-height:95vh}.modal-header{padding:1rem}.modal-header h3{font-size:1.125rem}.modal-subtitle{font-size:.8125rem}.modal-body{padding:1rem}.modal-students-table{font-size:.8125rem}.modal-students-table th,.modal-students-table td{padding:.625rem .5rem}.modal-students-table th{font-size:.75rem}@media (max-width: 480px){.modal-students-table thead{display:none}.modal-students-table,.modal-students-table tbody,.modal-students-table tr,.modal-students-table td{display:block;width:100%}.modal-students-table tr{margin-bottom:1rem;border:1px solid #e5e7eb;border-radius:8px;padding:.75rem;background:#fff}.modal-students-table td{padding:.5rem 0;border:none;position:relative;padding-left:45%}.modal-students-table td:before{content:attr(data-label);position:absolute;left:0;font-weight:600;color:#6b7280;font-size:.75rem;text-transform:uppercase}}}.parent-announcements-container{max-width:900px;margin:0 auto}.parent-announcements-loading,.parent-announcements-error{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:4rem 2rem;text-align:center;color:#666}.parent-announcements-loading .spin{animation:spin 1s linear infinite}.parent-announcements-error svg{color:#ef5350;margin-bottom:1rem}.retry-button{margin-top:1rem;padding:.6rem 1.5rem;background:#2196f3;color:#fff;border:none;border-radius:6px;cursor:pointer;font-size:.95rem;font-weight:500;transition:background .2s}.retry-button:hover{background:#1976d2}.announcements-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1.5rem;padding-bottom:1rem;border-bottom:2px solid #e0e0e0}.header-left{display:flex;align-items:center;gap:.75rem}.header-left svg{color:#2196f3}.header-left h2{margin:0;font-size:1.75rem;font-weight:600;color:#333}.header-stats{display:flex;gap:1rem}.unread-badge{background:#ff9800;color:#fff;padding:.4rem .85rem;border-radius:20px;font-size:.85rem;font-weight:600}.announcements-filters{display:flex;gap:.75rem;margin-bottom:1.5rem;flex-wrap:wrap}.filter-btn{padding:.6rem 1.2rem;background:#f5f5f5;border:1px solid #e0e0e0;border-radius:20px;font-size:.9rem;font-weight:500;color:#666;cursor:pointer;transition:all .2s}.filter-btn:hover{background:#e0e0e0}.filter-btn.active{background:#2196f3;color:#fff;border-color:#2196f3}.announcements-list{display:flex;flex-direction:column;gap:1rem}.announcement-item{display:flex;gap:1rem;padding:1.25rem;background:#fff;border:1px solid #e0e0e0;border-left:4px solid #e0e0e0;border-radius:8px;transition:all .2s}.announcement-item:hover{box-shadow:0 4px 12px #0000001a;transform:translateY(-1px)}.announcement-item.unread{background:#f8fbff;border-left-color:#2196f3}.announcement-item.priority-high{border-left-color:#ef5350}.announcement-item.priority-medium{border-left-color:#ff9800}.announcement-item.priority-low{border-left-color:#4caf50}.announcement-icon{display:flex;align-items:flex-start;justify-content:center;min-width:40px;height:40px;background:#f5f5f5;border-radius:50%;color:#666;padding:.6rem}.announcement-item.unread .announcement-icon{background:#e3f2fd;color:#2196f3}.announcement-item.priority-high .announcement-icon{background:#ffebee;color:#ef5350}.announcement-content{flex:1;min-width:0}.announcement-header-row{display:flex;align-items:center;gap:.5rem;margin-bottom:.5rem}.announcement-title{margin:0;font-size:1.05rem;font-weight:600;color:#333;flex:1}.unread-dot{min-width:8px;height:8px;background:#2196f3;border-radius:50%}.announcement-child-badge{display:inline-flex;align-items:center;gap:.3rem;background:#e3f2fd;color:#1565c0;padding:.3rem .65rem;border-radius:12px;font-size:.8rem;font-weight:500;margin-bottom:.5rem}.announcement-message{margin:0 0 .75rem;color:#555;font-size:.95rem;line-height:1.6;white-space:pre-line}.announcement-footer{display:flex;gap:1rem;flex-wrap:wrap;align-items:center}.announcement-date{font-size:.8rem;color:#888}.announcement-subject,.announcement-classroom{font-size:.8rem;background:#f5f5f5;color:#666;padding:.2rem .5rem;border-radius:12px;font-weight:500}.no-announcements{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:4rem 2rem;text-align:center}.no-announcements h3{margin:1rem 0 .5rem;color:#333;font-size:1.25rem}.no-announcements p{margin:0;color:#666;font-size:.95rem}@media (max-width: 768px){.announcements-header{flex-direction:column;align-items:flex-start;gap:1rem}.header-left h2{font-size:1.5rem}.announcement-item{padding:1rem;gap:.75rem}.announcement-icon{min-width:36px;height:36px}.announcement-title{font-size:.95rem}.announcement-message{font-size:.9rem}.announcements-filters{gap:.5rem}.filter-btn{padding:.5rem 1rem;font-size:.85rem}}@media (max-width: 480px){.announcement-item{flex-direction:column;align-items:flex-start}.announcement-icon{margin-bottom:.5rem}.announcement-footer{gap:.5rem}}.fees-receipt-container{padding:2rem;max-width:1400px;margin:0 auto}.fees-receipt-header{margin-bottom:2rem}.fees-receipt-header .header-content{display:flex;align-items:center;gap:1rem}.fees-receipt-header svg{color:#1976d2;flex-shrink:0}.fees-receipt-header h2{margin:0;font-size:1.75rem;color:#1a1a1a;font-weight:600}.fees-receipt-header p{margin:.25rem 0 0;color:#666;font-size:.95rem}.fees-receipt-filters{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:1rem;padding:1.5rem;background:#f8f9fa;border-radius:8px;margin-bottom:2rem}.filter-group{display:flex;flex-direction:column;gap:.5rem}.filter-group label{display:flex;align-items:center;gap:.5rem;font-size:.9rem;font-weight:500;color:#333}.filter-group label svg{color:#1976d2}.filter-group select{padding:.65rem;border:1px solid #ddd;border-radius:6px;font-size:.95rem;background:#fff;cursor:pointer;transition:all .2s ease}.filter-group select:hover:not(:disabled){border-color:#1976d2}.filter-group select:focus{outline:none;border-color:#1976d2;box-shadow:0 0 0 3px #1976d21a}.filter-group select:disabled{background:#f5f5f5;cursor:not-allowed;opacity:.6}.fees-receipt-content{min-height:400px}.loading-state,.error-state,.empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:4rem 2rem;text-align:center}.loading-state svg.spin{animation:spin 1s linear infinite;color:#1976d2;margin-bottom:1rem}.loading-state p,.empty-state p{color:#666;margin:.5rem 0 0}.error-state svg{color:#d32f2f;margin-bottom:1rem}.error-state h3{color:#d32f2f;margin:.5rem 0}.error-state p{color:#666;margin:.5rem 0 0}.empty-state svg{color:#999;margin-bottom:1rem}.empty-state h3{color:#333;margin:.5rem 0}.receipts-list{display:flex;flex-direction:column;gap:1.5rem}.receipt-card{display:flex;gap:1.5rem;padding:1.5rem;background:#fff;border:1px solid #e0e0e0;border-radius:10px;transition:all .3s ease;box-shadow:0 2px 4px #0000000d}.receipt-card:hover{box-shadow:0 4px 12px #0000001a;border-color:#1976d2}.receipt-icon{display:flex;align-items:center;justify-content:center;width:48px;height:48px;background:linear-gradient(135deg,#1976d2,#42a5f5);border-radius:8px;flex-shrink:0}.receipt-icon svg{color:#fff}.receipt-details{flex:1;display:flex;flex-direction:column;gap:.75rem}.receipt-header-row{display:flex;align-items:center;justify-content:space-between;gap:1rem}.receipt-header-row h3{margin:0;font-size:1.15rem;color:#1a1a1a;font-weight:600}.receipt-status{padding:.35rem .75rem;border-radius:20px;font-size:.8rem;font-weight:600;text-transform:uppercase}.receipt-status.paid{background:#e8f5e9;color:#2e7d32}.receipt-status.partial{background:#fff3e0;color:#f57c00}.receipt-status.pending{background:#fce4ec;color:#c2185b}.receipt-info{display:flex;flex-wrap:wrap;gap:1.5rem}.info-item{display:flex;align-items:center;gap:.5rem;color:#666;font-size:.9rem}.info-item svg{color:#1976d2;flex-shrink:0}.receipt-amounts{display:flex;gap:2rem;padding:.75rem;background:#f8f9fa;border-radius:6px}.amount-item{display:flex;align-items:center;gap:.5rem}.amount-label{font-size:.9rem;color:#666}.amount-value{font-size:1.1rem;font-weight:600}.amount-value.paid{color:#2e7d32}.amount-value.balance{color:#d32f2f}.receipt-remarks{padding:.75rem;background:#fff8e1;border-left:3px solid #fbc02d;border-radius:4px;font-size:.9rem;color:#555}.receipt-remarks strong{color:#333}.receipt-actions{display:flex;align-items:center;justify-content:center}.download-btn{display:flex;align-items:center;gap:.5rem;padding:.75rem 1.25rem;background:linear-gradient(135deg,#1976d2,#42a5f5);color:#fff;border:none;border-radius:6px;font-size:.9rem;font-weight:500;cursor:pointer;transition:all .3s ease;white-space:nowrap}.download-btn:hover{transform:translateY(-2px);box-shadow:0 4px 12px #1976d24d}.download-btn:active{transform:translateY(0)}@media (max-width: 768px){.fees-receipt-container{padding:1rem}.fees-receipt-header h2{font-size:1.5rem}.fees-receipt-filters{grid-template-columns:1fr;padding:1rem}.receipt-card{flex-direction:column;gap:1rem}.receipt-icon{width:40px;height:40px}.receipt-icon svg{width:20px;height:20px}.receipt-header-row{flex-direction:column;align-items:flex-start}.receipt-info,.receipt-amounts{flex-direction:column;gap:.75rem}.receipt-actions{width:100%}.download-btn{width:100%;justify-content:center}}@media (max-width: 480px){.fees-receipt-header .header-content{flex-direction:column;text-align:center}.fees-receipt-header h2{font-size:1.25rem}.receipt-card{padding:1rem}}.parent-dashboard-container{display:flex;min-height:100vh}.parent-dashboard-main{margin-left:100px;padding:2rem;padding-top:50px;flex:1;min-height:100vh;background-color:#fafafa}.parent-dashboard-greeting{color:#333;font-size:1.5rem;font-weight:600;margin-top:0;margin-bottom:.5rem}.parent-dashboard-subtitle{color:#666;font-size:1.1rem;margin-bottom:2rem}.parent-dashboard-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:1rem;margin-top:2rem}.parent-dashboard-card{background:#fff;padding:1.5rem;border-radius:8px;border:1px solid #e0e0e0;box-shadow:0 2px 4px #0000001a;transition:box-shadow .3s ease,transform .3s ease}.parent-dashboard-card:hover{box-shadow:0 4px 12px #00000026;transform:translateY(-2px)}.parent-dashboard-card-title{color:#0d47a1;font-size:1.2rem;font-weight:600;margin-bottom:1rem}.parent-dashboard-card-text{color:#333;font-size:.95rem;line-height:1.5}.parent-dashboard-section{background:#fff;border-radius:8px;padding:2rem;box-shadow:0 2px 4px #0000001a}.parent-dashboard-section-title{color:#333;font-size:1.8rem;font-weight:600;margin-bottom:1rem}.parent-dashboard-section-text{color:#666;font-size:1rem;line-height:1.6}.parent-overview{max-width:1200px;margin:0 auto;overflow-x:hidden}.parent-welcome-section{margin-bottom:2rem}.parent-dashboard-greeting{color:#1a1a1a;font-size:1.75rem;font-weight:600;margin-top:0;margin-bottom:.5rem}.parent-dashboard-subtitle{color:#555;font-size:1rem;line-height:1.6;margin-bottom:0}.child-selector{background:#fff;padding:1rem 1.25rem;border-radius:10px;border:1px solid #e0e0e0;margin-bottom:1.5rem;display:flex;align-items:center;gap:1rem;flex-wrap:wrap}.child-selector label{display:flex;align-items:center;gap:.5rem;font-weight:500;color:#444}.child-selector select{flex:1;min-width:200px;padding:.6rem 1rem;border:1px solid #ddd;border-radius:6px;font-size:.95rem;background:#fff;cursor:pointer;transition:border-color .2s}.child-selector select:focus{outline:none;border-color:#2196f3;box-shadow:0 0 0 3px #2196f31a}.loading-state,.no-children-state{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:3rem;text-align:center;background:#fff;border-radius:12px;border:1px solid #e0e0e0}.loading-state p,.no-children-state p{color:#666;margin:1rem 0 0}.no-children-state h3{margin:1rem 0 .5rem;color:#333}.no-children-state svg{color:#9e9e9e}.spin{animation:spin 1s linear infinite}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.parent-dashboard-tiles{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:1.5rem}.parent-tile{background:#fff;border-radius:12px;border:1px solid #e0e0e0;padding:1.5rem;box-shadow:0 2px 8px #0000000d;transition:box-shadow .3s,transform .2s;width:100%;max-width:100%;box-sizing:border-box;overflow:hidden}.parent-tile:hover{box-shadow:0 4px 16px #0000001a;transform:translateY(-2px)}.tile-header{display:flex;align-items:center;gap:.75rem;margin-bottom:1rem;padding-bottom:.75rem;border-bottom:2px solid #f0f0f0}.tile-header svg{color:#2196f3}.tile-header h3{margin:0;font-size:1.15rem;font-weight:600;color:#333}.child-info-badge{background:#e3f2fd;color:#1565c0;padding:.4rem .75rem;border-radius:20px;font-size:.85rem;font-weight:500;display:inline-block;margin-bottom:1rem}.tile-loading{display:flex;align-items:center;justify-content:center;gap:.5rem;padding:2rem;color:#666}.fees-details{display:flex;flex-direction:column;gap:.75rem}.fee-item{display:flex;justify-content:space-between;align-items:center;padding:.75rem;background:#f8f9fa;border-radius:8px}.fee-item.highlight{background:#fff3e0;border:1px solid #ffe0b2}.fee-label{font-size:.9rem;color:#555;font-weight:500}.fee-amount{font-weight:600;font-size:1rem}.fee-amount.total{color:#1976d2}.fee-amount.paid{color:#2e7d32}.fee-amount.balance.owing{color:#d32f2f;font-size:1.1rem}.fee-amount.balance.cleared{color:#2e7d32;font-size:1.1rem}.fee-status{margin-top:.5rem;text-align:center}.status-badge{display:inline-flex;align-items:center;gap:.4rem;padding:.5rem 1rem;border-radius:20px;font-size:.85rem;font-weight:600}.status-badge.paid{background:#e8f5e9;color:#2e7d32}.status-badge.owing{background:#ffebee;color:#c62828}.last-payment{margin-top:.75rem;font-size:.8rem;color:#888;text-align:center}.no-fees-data{text-align:center;padding:2rem;color:#999}.academic-tile .tile-header svg{color:#ff9800}.parent-tile.blurred{position:relative}.tile-locked{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:2rem 1rem;text-align:center;background:#f5f5f5;border-radius:8px}.tile-locked svg{color:#9e9e9e;margin-bottom:1rem}.tile-locked h4{margin:0 0 .5rem;color:#666;font-size:1.1rem}.tile-locked p{margin:0 0 1rem;color:#888;font-size:.9rem}.balance-reminder{background:#ffebee;color:#c62828;padding:.5rem 1rem;border-radius:20px;font-size:.85rem;font-weight:600}.academic-details{text-align:center;padding:1rem 0}.position-display{margin-bottom:.5rem}.position-number{font-size:3rem;font-weight:700;color:#ff9800}.position-suffix{font-size:1.2rem;font-weight:600;color:#ff9800;vertical-align:super}.position-label{color:#666;font-size:.9rem;margin-bottom:1.5rem}.average-display{background:#fff3e0;padding:.75rem;border-radius:8px;margin-bottom:.75rem;display:flex;justify-content:space-between;align-items:center}.average-label{font-size:.9rem;color:#555;font-weight:500}.average-value{font-size:1.2rem;font-weight:700;color:#e65100}.grade-display-parent{background:#f3e5f5;padding:.75rem;border-radius:8px;display:flex;justify-content:space-between;align-items:center}.grade-display-parent .grade-label{font-size:.9rem;color:#555;font-weight:500}.grade-letter{font-size:1.5rem;font-weight:700;padding:.25rem .75rem;border-radius:6px}.grade-letter.A{background:#e8f5e9;color:#2e7d32}.grade-letter.B{background:#f1f8e9;color:#558b2f}.grade-letter.C{background:#fff8e1;color:#f9a825}.grade-letter.D{background:#fff3e0;color:#ef6c00}.grade-letter.F{background:#ffebee;color:#c62828}.no-academic-data{text-align:center;padding:2rem;color:#999}.improvement-tile .tile-header svg{color:#e65100}.improvement-note{text-align:center;color:#666;font-size:.85rem;margin:0 0 1rem;font-style:italic}.improvement-list{display:flex;flex-direction:column;gap:.75rem}.improvement-item{display:flex;align-items:center;gap:.75rem;padding:.75rem;background:#fff9f5;border:1px solid #ffe0cc;border-radius:8px;transition:background .2s}.improvement-item:hover{background:#fff3e0}.improvement-rank{min-width:32px;height:32px;display:flex;align-items:center;justify-content:center;background:#ff9800;color:#fff;border-radius:50%;font-weight:700;font-size:.9rem}.improvement-subject-info{flex:1;min-width:0}.improvement-subject-name{margin:0 0 .2rem;font-size:.95rem;font-weight:600;color:#333;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.improvement-teacher{font-size:.8rem;color:#888}.improvement-score{display:flex;align-items:baseline;gap:.25rem}.improvement-score .score-value{font-size:1.2rem;font-weight:700}.improvement-score .score-max{font-size:.8rem;color:#999}.no-improvement-data{text-align:center;padding:2rem;color:#999}.assignments-tile .tile-header svg{color:#1976d2}.assignments-content{display:flex;flex-direction:column;gap:1rem}.assignments-summary{display:flex;gap:.5rem;flex-wrap:wrap}.summary-badge{display:inline-flex;align-items:center;gap:.3rem;padding:.4rem .75rem;border-radius:20px;font-size:.8rem;font-weight:600}.summary-badge.overdue{background:#ffebee;color:#c62828}.summary-badge.pending{background:#fff3e0;color:#ef6c00}.assignments-list{display:flex;flex-direction:column;gap:.75rem}.assignment-item{display:flex;gap:.75rem;padding:.75rem;border-radius:8px;background:#f8f9fa;border-left:3px solid transparent;transition:all .2s}.assignment-item:hover{background:#f0f0f0}.assignment-item.overdue{background:#fff5f5;border-left-color:#ef5350}.assignment-item.pending{background:#fffbf5;border-left-color:#ffa726}.assignment-status-indicator{display:flex;align-items:flex-start;padding-top:.2rem}.status-icon.overdue{color:#ef5350}.status-icon.pending{color:#ffa726}.assignment-info{flex:1;min-width:0}.assignment-title{margin:0 0 .3rem;font-size:.95rem;font-weight:600;color:#333;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.assignment-meta{display:flex;gap:.75rem;flex-wrap:wrap;margin-bottom:.3rem}.assignment-subject{font-size:.8rem;color:#666;font-weight:500}.assignment-due{font-size:.75rem;color:#888}.overdue-badge{display:inline-block;background:#ffebee;color:#c62828;padding:.2rem .5rem;border-radius:12px;font-size:.7rem;font-weight:600}.assignments-footer{text-align:center;padding-top:.5rem;border-top:1px solid #e0e0e0}.more-assignments{font-size:.85rem;color:#666;font-weight:500}.no-assignments-data{display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:2rem;color:#666}.no-assignments-data p{margin:0;font-size:.95rem}@media (max-width: 768px){.parent-dashboard-main{margin-left:0;padding:1rem;padding-top:50px}.parent-dashboard-greeting{font-size:1.4rem;margin-top:0}.parent-dashboard-subtitle{font-size:.95rem}.child-selector{flex-direction:column;align-items:stretch}.child-selector select{min-width:auto;width:100%}.parent-dashboard-tiles{grid-template-columns:1fr}.parent-tile{padding:1.25rem}.parent-dashboard-grid{grid-template-columns:1fr}}@media (max-width: 480px){.parent-dashboard-main{padding:.75rem;padding-top:50px}.parent-dashboard-greeting{font-size:1.25rem}.fee-item{padding:.6rem}.fee-label{font-size:.85rem}.fee-amount{font-size:.95rem}.improvement-item{padding:.5rem;gap:.5rem}.improvement-rank{min-width:28px;height:28px;font-size:.8rem}.improvement-subject-name{font-size:.85rem}.improvement-teacher{font-size:.75rem}.improvement-score .score-value{font-size:1rem}.improvement-score .score-max{font-size:.75rem}.assignment-item{padding:.6rem;gap:.5rem}.assignment-title{font-size:.85rem}.assignment-meta{gap:.5rem}.assignment-subject{font-size:.75rem}.assignment-due{font-size:.7rem}.summary-badge{font-size:.75rem;padding:.3rem .6rem}}html,body,#root{height:100%;margin:0;padding:0;font-family:Arial,sans-serif}.homepage-container{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100vh;width:100vw;background:linear-gradient(to right,#67c947,#087ecb)}.login-card{background:#ffffff1a;padding:2rem;border-radius:10px;width:100%;max-width:360px;box-shadow:0 4px 16px #00000040;text-align:center;color:#fff}.login-card h2{margin-bottom:1.5rem;font-size:1.5rem}.login-card form{display:flex;flex-direction:column}.login-input{padding:.75rem;margin-bottom:1rem;border:none;border-radius:5px;font-size:1rem}.login-button{padding:.75rem;background:#000;color:#fff;border:none;border-radius:5px;font-size:1rem;cursor:pointer;transition:background-color .2s}.login-button:hover{background:#333}.login-error{margin-top:1rem;color:#fbb;font-size:.9rem}@media (max-width: 480px){.login-card{margin:0 1rem;padding:1.5rem}}.logo-above{width:120px;height:auto;margin-bottom:.5rem}.take-assessment-loading{text-align:center;padding:3rem;color:#6b7280;font-size:1.1rem}.take-assessment-error{max-width:600px;margin:3rem auto;text-align:center;padding:3rem 2rem;background:#fff;border-radius:12px;box-shadow:0 1px 3px #0000001a}.take-assessment-error svg{color:#ef4444;margin-bottom:1rem}.take-assessment-error h2{font-size:1.5rem;font-weight:700;color:#1f2937;margin-bottom:.5rem}.take-assessment-error p{color:#6b7280;margin-bottom:1.5rem}.take-assessment-error button{padding:.75rem 1.5rem;background:linear-gradient(135deg,#3b82f6,#2563eb);color:#fff;border:none;border-radius:8px;font-size:.95rem;font-weight:600;cursor:pointer;transition:all .2s}.take-assessment-error button:hover{background:linear-gradient(135deg,#2563eb,#1d4ed8);transform:translateY(-1px)}.assessment-instructions{max-width:900px;margin:0 auto;padding:2rem}.back-btn{display:flex;align-items:center;gap:.5rem;padding:.625rem 1.25rem;background:#fff;border:2px solid #e5e7eb;color:#374151;border-radius:8px;font-size:.95rem;font-weight:500;cursor:pointer;transition:all .2s;margin-bottom:2rem}.back-btn:hover{background-color:#f9fafb;border-color:#d1d5db}.instructions-content{background:#fff;border-radius:16px;box-shadow:0 4px 6px -1px #0000001a,0 2px 4px -2px #0000001a;padding:2.5rem}.instructions-content h1{font-size:2rem;font-weight:700;color:#1f2937;margin-bottom:.5rem}.assessment-subject{color:#6b7280;font-size:1rem;margin-bottom:2rem}.assessment-info-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:1.5rem;margin-bottom:2rem;padding:1.5rem;background:#f9fafb;border-radius:12px}.info-item{display:flex;align-items:center;gap:1rem}.info-item svg{color:#3b82f6;flex-shrink:0}.info-item strong{display:block;font-size:.875rem;color:#6b7280;margin-bottom:.25rem}.info-item p{font-size:1.125rem;font-weight:600;color:#1f2937;margin:0}.instructions-box{background:#eff6ff;border:2px solid #dbeafe;border-radius:12px;padding:1.5rem;margin-bottom:2rem}.instructions-box h3{font-size:1.125rem;font-weight:600;color:#1e40af;margin-bottom:1rem}.instructions-box ul{list-style:none;padding:0;margin:0}.instructions-box li{color:#1e40af;font-size:.95rem;position:relative;padding:.5rem 0 .5rem 1.5rem}.instructions-box li:before{content:"•";position:absolute;left:.5rem;font-weight:700}.start-assessment-btn{width:100%;padding:1rem;background:linear-gradient(135deg,#10b981,#059669);color:#fff;border:none;border-radius:10px;font-size:1.125rem;font-weight:700;cursor:pointer;transition:all .3s}.start-assessment-btn:hover{background:linear-gradient(135deg,#059669,#047857);transform:translateY(-2px);box-shadow:0 8px 12px -2px #10b9814d}.take-assessment-container{max-width:1200px;margin:0 auto;padding:2rem;padding-top:160px}.assessment-header-fixed{position:fixed;top:0;left:0;right:0;background:#fff;box-shadow:0 2px 4px #0000001a;z-index:100;padding:1rem 2rem}.assessment-header-content{display:flex;justify-content:space-between;align-items:center;max-width:1200px;margin:0 auto;padding-bottom:.75rem}.assessment-title-section h2{font-size:1.5rem;font-weight:700;color:#1f2937;margin:0 0 .25rem}.assessment-title-section p{font-size:.95rem;color:#6b7280;margin:0}.timer-section{display:flex;align-items:center;gap:.75rem;padding:.75rem 1.5rem;background:#f0fdf4;border:2px solid #86efac;border-radius:10px;transition:all .3s}.timer-section svg{color:#16a34a}.timer-text{font-size:1.25rem;font-weight:700;color:#16a34a;font-variant-numeric:tabular-nums}.timer-section.warning{background:#fef3c7;border-color:#fbbf24}.timer-section.warning svg,.timer-section.warning .timer-text{color:#d97706}.timer-section.critical{background:#fee2e2;border-color:#fca5a5;animation:pulse-timer 1s infinite}.timer-section.critical svg,.timer-section.critical .timer-text{color:#dc2626}@keyframes pulse-timer{0%,to{transform:scale(1)}50%{transform:scale(1.05)}}.progress-bar{width:100%;height:8px;background-color:#e5e7eb;border-radius:999px;overflow:hidden;max-width:1200px;margin:0 auto}.progress-fill{height:100%;background:linear-gradient(90deg,#3b82f6,#60a5fa);transition:width .3s ease;border-radius:999px}.progress-text{text-align:center;font-size:.875rem;color:#6b7280;margin-top:.5rem;max-width:1200px;margin-left:auto;margin-right:auto}.questions-container{display:flex;flex-direction:column;gap:2rem}.question-card{background:#fff;border-radius:16px;box-shadow:0 1px 3px #0000001a,0 1px 2px -1px #0000001a;padding:2rem;border:2px solid #f3f4f6;transition:all .2s}.question-card:hover{border-color:#e5e7eb;box-shadow:0 4px 6px -1px #0000001a,0 2px 4px -2px #0000001a}.question-header-section{display:flex;justify-content:space-between;align-items:center;margin-bottom:1rem;padding-bottom:.75rem;border-bottom:2px solid #f3f4f6}.question-number{font-size:1rem;font-weight:600;color:#3b82f6;background:#eff6ff;padding:.375rem .875rem;border-radius:6px}.question-marks{font-size:.875rem;font-weight:600;color:#059669;background:#d1fae5;padding:.375rem .875rem;border-radius:6px}.question-text{font-size:1.125rem;color:#1f2937;line-height:1.6;margin-bottom:1.5rem;font-weight:500}.question-image{margin-bottom:1.5rem;border-radius:12px;overflow:hidden;border:2px solid #e5e7eb}.question-image img{width:100%;height:auto;display:block}.answer-options{display:flex;flex-direction:column;gap:.875rem}.option-label{display:flex;align-items:flex-start;gap:1rem;padding:1rem 1.25rem;background:#f9fafb;border:2px solid #e5e7eb;border-radius:10px;cursor:pointer;transition:all .2s}.option-label:hover{background:#f3f4f6;border-color:#d1d5db}.option-label input[type=radio]{margin-top:.25rem;width:18px;height:18px;cursor:pointer;flex-shrink:0}.option-label input[type=radio]:checked{accent-color:#3b82f6}.option-text{font-size:1rem;color:#374151;line-height:1.5;flex:1}.option-label input[type=radio]:checked~.option-text{color:#1f2937;font-weight:500}.option-label:has(input[type=radio]:checked){background:#eff6ff;border-color:#3b82f6}.answer-textarea-container{margin-top:.5rem}.answer-textarea{width:100%;padding:1rem;border:2px solid #e5e7eb;border-radius:10px;font-size:1rem;color:#1f2937;font-family:inherit;resize:vertical;transition:all .2s}.answer-textarea:focus{outline:none;border-color:#3b82f6;box-shadow:0 0 0 3px #6366f11a}.answer-textarea::placeholder{color:#9ca3af}.matching-container{margin-top:.5rem}.matching-instruction{font-size:.95rem;color:#6b7280;margin-bottom:1rem;font-style:italic}.matching-row{display:flex;align-items:center;gap:1rem;margin-bottom:.875rem;padding:1rem;background:#f9fafb;border-radius:8px}.matching-left{flex:1;font-size:1rem;color:#1f2937;font-weight:500}.matching-input{width:60px;padding:.625rem;border:2px solid #e5e7eb;border-radius:6px;font-size:1rem;font-weight:600;text-align:center;text-transform:uppercase;color:#1f2937;transition:all .2s}.matching-input:focus{outline:none;border-color:#3b82f6;box-shadow:0 0 0 3px #6366f11a}.matching-options{margin-top:1.5rem;padding:1.25rem;background:#eff6ff;border:2px solid #dbeafe;border-radius:10px}.matching-options p{margin:.5rem 0;font-size:.95rem;color:#1e40af}.matching-options p strong{font-weight:600}.submit-section{margin-top:3rem;padding:2rem;background:#fff;border-radius:16px;box-shadow:0 4px 6px -1px #0000001a,0 2px 4px -2px #0000001a;text-align:center;border:2px solid #e5e7eb}.submit-assessment-btn{padding:1rem 3rem;background:linear-gradient(135deg,#3b82f6,#2563eb);color:#fff;border:none;border-radius:10px;font-size:1.125rem;font-weight:700;cursor:pointer;transition:all .3s;min-width:250px}.submit-assessment-btn:hover:not(:disabled){background:linear-gradient(135deg,#2563eb,#1d4ed8);transform:translateY(-2px);box-shadow:0 8px 12px -2px #6366f14d}.submit-assessment-btn:disabled{opacity:.6;cursor:not-allowed}@media (max-width: 768px){.take-assessment-container{padding:1rem;padding-top:180px}.assessment-header-fixed{padding:1rem}.assessment-header-content{flex-direction:column;gap:1rem;align-items:stretch}.assessment-title-section h2{font-size:1.25rem}.timer-section{justify-content:center}.assessment-instructions{padding:1rem}.instructions-content{padding:1.5rem}.instructions-content h1{font-size:1.5rem}.assessment-info-grid{grid-template-columns:1fr}.question-card{padding:1.5rem}.question-header-section{flex-direction:column;align-items:flex-start;gap:.5rem}.question-text{font-size:1rem}.option-label{padding:.875rem 1rem}.matching-row{flex-direction:column;align-items:stretch}.submit-assessment-btn{width:100%;min-width:auto}}
