.toast-container{position:fixed;top:20px;right:20px;z-index:9999;display:flex;flex-direction:column;gap:12px;pointer-events:none}.toast{display:flex;align-items:center;gap:12px;min-width:300px;max-width:500px;padding:16px 20px;background:#fff;border-radius:12px;box-shadow:0 8px 24px #00000026;pointer-events:all;cursor:pointer;animation:slideIn .3s ease-out,fadeIn .3s ease-out;transition:all .3s ease;border-left:4px solid}@keyframes slideIn{0%{transform:translate(400px);opacity:0}to{transform:translate(0);opacity:1}}.toast:hover{transform:translate(-5px);box-shadow:0 10px 30px #0003}.toast-icon{width:28px;height:28px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:16px;font-weight:700;color:#fff;flex-shrink:0}.toast-message{flex:1;font-size:14px;line-height:1.5;color:#333;font-weight:500}.toast-close{width:24px;height:24px;border:none;background:#0000001a;border-radius:50%;font-size:20px;line-height:1;color:#666;cursor:pointer;transition:all .2s;display:flex;align-items:center;justify-content:center;flex-shrink:0}.toast-close:hover{background:#0003;color:#333}.toast-success{border-left-color:#27ae60}.toast-success .toast-icon{background:#27ae60}.toast-error{border-left-color:#e74c3c}.toast-error .toast-icon{background:#e74c3c}.toast-warning{border-left-color:#f39c12}.toast-warning .toast-icon{background:#f39c12}.toast-info{border-left-color:#3498db}.toast-info .toast-icon{background:#3498db}@media (max-width: 768px){.toast-container{top:10px;right:10px;left:10px;align-items:stretch}.toast{min-width:unset;width:100%}}@media (max-width: 480px){.toast{padding:12px 16px;font-size:13px}.toast-icon{width:24px;height:24px;font-size:14px}.toast-message{font-size:13px}}.login-container{min-height:100vh;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#667eea,#764ba2);padding:15px}@media (max-height: 800px){.login-container{padding:10px;min-height:auto;height:100vh}}.login-card{background:#fff;border-radius:20px;box-shadow:0 20px 60px #0000004d;padding:30px;width:100%;max-width:450px;animation:slideUp .5s ease-out}@media (max-height: 800px){.login-card{padding:25px}}.login-header{text-align:center;margin-bottom:30px}@media (max-height: 800px){.login-header{margin-bottom:20px}}.login-logo{width:90px;height:90px;object-fit:contain;margin-bottom:15px;border-radius:12px}@media (max-height: 800px){.login-logo{width:70px;height:70px;margin-bottom:10px}}.login-header h1{font-size:1.75rem;color:#333;margin:0 0 8px;font-weight:700}@media (max-height: 800px){.login-header h1{font-size:1.5rem;margin:0 0 5px}}.login-header p{color:#666;font-size:.95rem;margin:0}@media (max-height: 800px){.login-header p{font-size:.85rem}}.login-form{display:flex;flex-direction:column;gap:2px}@media (max-height: 800px){.login-form{gap:2px}}.form-group{display:flex;flex-direction:column;gap:0px}.form-group label{color:#333;font-weight:600;font-size:.9rem;margin-left:2px;margin-bottom:2px}.input-icon{position:absolute;left:12px;font-size:1.2rem;pointer-events:none;z-index:1}.input-wrapper input{width:100%;padding:10px 45px;padding-left:45px!important;border:2px solid #e1e8ed;border-radius:10px;font-size:.95rem;transition:all .3s ease;outline:none;text-indent:0}.input-wrapper input:focus{border-color:#667eea;box-shadow:0 0 0 3px #667eea1a}.input-wrapper input.error{border-color:#e74c3c}.input-wrapper input:disabled{background-color:#f5f5f5;cursor:not-allowed}.toggle-password{position:absolute;right:15px;background:none;border:none;font-size:1.2rem;cursor:pointer;padding:5px;transition:transform .2s}.toggle-password:hover{transform:scale(1.1)}.error-message{color:#e74c3c;font-size:.85rem;margin-left:4px;animation:shake .3s}.login-button{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;border:none;padding:12px;border-radius:10px;font-size:1rem;font-weight:600;cursor:pointer;transition:all .3s ease;margin-top:4px}.login-button:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 10px 25px #667eea4d}.login-button:active:not(:disabled){transform:translateY(0)}.login-button:disabled{opacity:.7;cursor:not-allowed}.loading-spinner{display:inline-flex;align-items:center;gap:8px}.login-footer{text-align:center;margin-top:10px}.forgot-link{color:#667eea;text-decoration:none;font-size:.9rem;font-weight:500;transition:color .3s}.forgot-link:hover{color:#764ba2;text-decoration:underline}@media (max-width: 480px){.login-card{padding:25px 18px}.login-header{margin-bottom:20px}.login-logo{width:75px;height:75px;margin-bottom:12px}.login-header h1{font-size:1.4rem}.login-form{gap:14px}.input-wrapper input{padding:12px 40px;font-size:.95rem}.login-button{padding:13px;font-size:1rem}}@media (max-width: 480px) and (max-height: 700px){.login-container{padding:8px}.login-card{padding:18px 15px}.login-header{margin-bottom:16px}.login-logo{width:60px;height:60px;margin-bottom:8px}.login-header h1{font-size:1.25rem;margin:0 0 4px}.login-header p{font-size:.8rem}.login-form{gap:10px}.form-group{gap:5px}.input-wrapper input{padding:10px 40px}.login-button{padding:11px;margin-top:4px;font-size:.95rem}.login-footer{margin-top:12px}}.developer-footer{text-align:center;padding-top:20px;margin-top:20px;border-top:1px solid #e0e0e0}.developer-text{font-size:.85rem;color:#666;margin:0 0 8px}.developer-text strong{color:#667eea;font-weight:600}.developer-links{display:flex;justify-content:center;align-items:center;gap:8px;flex-wrap:wrap}.developer-link{font-size:.8rem;color:#667eea;text-decoration:none;transition:color .3s}.developer-link:hover{color:#764ba2;text-decoration:underline}.separator{color:#ccc;font-size:.8rem}@media (max-height: 800px){.developer-footer{padding-top:15px;margin-top:15px}.developer-text{font-size:.8rem;margin:0 0 6px}.developer-link{font-size:.75rem}}@media (max-width: 480px){.developer-footer{padding-top:15px;margin-top:15px}.developer-links{flex-direction:column;gap:6px}.separator{display:none}}@media (max-width: 480px) and (max-height: 700px){.developer-footer{padding-top:12px;margin-top:12px}.developer-text{font-size:.75rem;margin:0 0 5px}.developer-link{font-size:.7rem}}.forgot-password-container{min-height:100vh;display:flex;justify-content:center;align-items:center;background:linear-gradient(135deg,#667eea,#764ba2);padding:20px}.forgot-password-card{background:#fff;border-radius:20px;box-shadow:0 20px 60px #0000004d;max-width:500px;width:100%;padding:40px;animation:slideUp .5s ease}.forgot-password-header{text-align:center;margin-bottom:40px}.header-icon{width:80px;height:80px;margin:0 auto 20px;background:linear-gradient(135deg,#667eea,#764ba2);border-radius:50%;display:flex;align-items:center;justify-content:center;animation:pulse 2s infinite}@keyframes pulse{0%,to{transform:scale(1);box-shadow:0 0 #667eeab3}50%{transform:scale(1.05);box-shadow:0 0 20px 10px #667eea00}}.forgot-password-header h1{font-size:28px;font-weight:700;color:#2c3e50;margin-bottom:10px}.forgot-password-header p{font-size:15px;color:#666;line-height:1.6}.forgot-password-form{display:flex;flex-direction:column;gap:25px}.form-group input{width:100%;padding:14px 16px;border:2px solid #e0e0e0;border-radius:12px;font-size:15px;transition:all .3s ease;background:#f8f9fa}.form-group input:focus{outline:none;border-color:#667eea;background:#fff;box-shadow:0 0 0 4px #667eea1a}.form-group input.error{border-color:#f44336;background:#ffebee}.form-group input:disabled{opacity:.6;cursor:not-allowed}.success-indicator{position:absolute;right:16px;top:44px;color:#4caf50;font-size:18px;animation:bounceIn .5s ease}@keyframes bounceIn{0%{transform:scale(0)}50%{transform:scale(1.2)}to{transform:scale(1)}}.submit-button{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;border:none;padding:16px;border-radius:12px;font-size:16px;font-weight:600;cursor:pointer;display:flex;align-items:center;justify-content:center;gap:10px;transition:all .3s ease;box-shadow:0 8px 20px #667eea66;margin-top:10px}.submit-button:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 12px 28px #667eea80}.back-link{display:inline-flex;align-items:center;gap:8px;color:#667eea;text-decoration:none;font-weight:600;font-size:15px;transition:all .3s ease}.back-link:hover{color:#764ba2;gap:12px}.success-card{text-align:center}.success-icon{width:100px;height:100px;margin:0 auto 30px;background:linear-gradient(135deg,#4caf50,#81c784);border-radius:50%;display:flex;align-items:center;justify-content:center;animation:successPulse 1s ease}@keyframes successPulse{0%{transform:scale(0);opacity:0}50%{transform:scale(1.1)}to{transform:scale(1);opacity:1}}.success-icon i{font-size:50px;color:#fff}.success-card h2{font-size:26px;font-weight:700;color:#2c3e50;margin-bottom:20px}.success-message{font-size:16px;color:#555;line-height:1.6;margin-bottom:25px}.success-info{background:#e8f5e9;border-left:4px solid #4caf50;padding:15px 20px;border-radius:8px;margin-bottom:30px;display:flex;gap:12px;text-align:left}.success-info i{color:#4caf50;font-size:20px;flex-shrink:0;margin-top:2px}.success-info p{margin:0;font-size:14px;color:#2e7d32;line-height:1.6}.back-to-login-btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;padding:14px 32px;border-radius:12px;text-decoration:none;font-weight:600;font-size:16px;transition:all .3s ease;box-shadow:0 8px 20px #667eea66}.back-to-login-btn:hover{transform:translateY(-2px);box-shadow:0 12px 28px #667eea80}.back-to-login-btn i{font-size:16px}@media (max-width: 768px){.forgot-password-container{padding:15px}.forgot-password-card{padding:30px 20px}.forgot-password-header h1{font-size:24px}.header-icon{width:70px;height:70px}.header-icon i{font-size:32px}.success-icon{width:80px;height:80px}.success-icon i{font-size:40px}}.reset-password-container{min-height:100vh;display:flex;justify-content:center;align-items:center;background:linear-gradient(135deg,#b22222,#8b0000);padding:20px}.reset-password-card{background:#fff;border-radius:20px;box-shadow:0 20px 60px #0000004d;max-width:550px;width:100%;padding:40px;animation:slideUp .5s ease}.reset-password-header{text-align:center;margin-bottom:35px}.header-icon{width:80px;height:80px;margin:0 auto 20px;background:linear-gradient(135deg,#b22222,#8b0000);border-radius:50%;display:flex;align-items:center;justify-content:center;animation:pulse 2s infinite}@keyframes pulse{0%,to{transform:scale(1);box-shadow:0 0 #b22222b3}50%{transform:scale(1.05);box-shadow:0 0 20px 10px #b2222200}}.header-icon i{font-size:36px;color:#fff}.reset-password-header h1{font-size:28px;font-weight:700;color:#2c3e50;margin-bottom:10px}.reset-password-header p{font-size:15px;color:#666;margin-bottom:15px}.user-info-box{display:inline-flex;align-items:center;gap:8px;background:#f5f5f5;padding:10px 20px;border-radius:25px;font-size:14px;color:#555;margin-top:10px}.user-info-box i{color:#b22222;font-size:16px}.user-info-box strong{color:#b22222}.reset-password-form{display:flex;flex-direction:column;gap:25px}.form-group{position:relative}.form-group label{display:flex;align-items:center;gap:8px;font-weight:600;color:#2c3e50;margin-bottom:10px;font-size:14px}.form-group label i{color:#b22222;font-size:16px}.password-input-wrapper{position:relative;display:flex;align-items:center}.password-input-wrapper input{width:100%;padding:14px 50px 14px 16px;border:2px solid #e0e0e0;border-radius:12px;font-size:15px;transition:all .3s ease;background:#f8f9fa}.password-input-wrapper input:focus{outline:none;border-color:#b22222;background:#fff;box-shadow:0 0 0 4px #b222221a}.password-input-wrapper input.error{border-color:#f44336;background:#ffebee}.password-input-wrapper input:disabled{opacity:.6;cursor:not-allowed}.toggle-password{position:absolute;right:12px;background:transparent;border:none;cursor:pointer;color:#666;padding:8px;display:flex;align-items:center;justify-content:center;transition:all .3s ease}.toggle-password:hover{color:#b22222}.toggle-password i{font-size:18px}.password-strength{margin-top:10px;display:flex;align-items:center;gap:12px}.strength-bar{flex:1;height:6px;background:#e0e0e0;border-radius:3px;overflow:hidden}.strength-fill{height:100%;transition:all .3s ease;border-radius:3px}.strength-label{font-size:13px;font-weight:600;min-width:60px;text-align:right}.match-indicator{display:flex;align-items:center;gap:6px;color:#4caf50;font-size:13px;margin-top:8px;animation:bounceIn .5s ease}@keyframes bounceIn{0%{transform:scale(0)}50%{transform:scale(1.1)}to{transform:scale(1)}}.match-indicator i{font-size:14px}.error-message{display:flex;align-items:center;gap:6px;color:#f44336;font-size:13px;margin-top:8px;animation:shake .3s ease}.error-message i{font-size:14px}.password-requirements{background:#f8f9fa;border-left:4px solid #b22222;padding:15px 20px;border-radius:8px}.requirements-header{display:flex;align-items:center;gap:8px;font-weight:600;color:#2c3e50;font-size:14px;margin-bottom:12px}.requirements-header i{color:#b22222;font-size:16px}.password-requirements ul{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:8px}.password-requirements li{display:flex;align-items:center;gap:10px;font-size:13px;color:#666;transition:all .3s ease}.password-requirements li i{font-size:14px;color:#ccc;transition:all .3s ease}.password-requirements li.met,.password-requirements li.met i{color:#4caf50}.submit-button{background:linear-gradient(135deg,#b22222,#8b0000);color:#fff;border:none;padding:16px;border-radius:12px;font-size:16px;font-weight:600;cursor:pointer;display:flex;align-items:center;justify-content:center;gap:10px;transition:all .3s ease;box-shadow:0 8px 20px #b2222266;margin-top:10px}.submit-button:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 12px 28px #b2222280}.submit-button:active:not(:disabled){transform:translateY(0)}.submit-button:disabled{opacity:.7;cursor:not-allowed}.submit-button i{font-size:18px}.form-footer{text-align:center;margin-top:10px}.back-link{display:inline-flex;align-items:center;gap:8px;color:#b22222;text-decoration:none;font-weight:600;font-size:15px;transition:all .3s ease}.back-link:hover{color:#8b0000;gap:12px}.back-link i{font-size:14px;transition:transform .3s ease}.back-link:hover i{transform:translate(-3px)}@media (max-width: 768px){.reset-password-container{padding:15px}.reset-password-card{padding:30px 20px}.reset-password-header h1{font-size:24px}.header-icon{width:70px;height:70px}.header-icon i{font-size:32px}.password-requirements{padding:12px 15px}.password-requirements ul{gap:10px}}.layout{display:flex;min-height:100vh;background:#f5f7fa}.sidebar{background:linear-gradient(180deg,#667eea,#764ba2);color:#fff;transition:width .3s ease;display:flex;flex-direction:column;position:sticky;top:0;height:100vh;box-shadow:2px 0 10px #0000001a}.sidebar.open{width:260px}.sidebar.closed{width:80px}.sidebar-header{padding:20px;display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid rgba(255,255,255,.2)}.sidebar-logo{display:flex;align-items:center;gap:12px;flex:1}.sidebar-logo img{width:40px;height:40px;border-radius:8px;object-fit:contain;background:#fff;padding:4px}.sidebar.closed .sidebar-logo img{width:35px;height:35px}.sidebar-title{font-size:1.3rem;font-weight:700;white-space:nowrap;color:#fff}.sidebar-header h2{margin:0;font-size:1.5rem;white-space:nowrap}.sidebar.closed .sidebar-header h2{display:none}.toggle-btn{background:#fff3;border:none;color:#fff;width:30px;height:30px;border-radius:50%;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .3s}.toggle-btn:hover{background:#ffffff4d;transform:scale(1.1)}.user-info{padding:20px;display:flex;align-items:center;gap:15px;border-bottom:1px solid rgba(255,255,255,.2)}.user-avatar{width:50px;height:50px;border-radius:50%;background:#fff;color:#667eea;display:flex;align-items:center;justify-content:center;font-size:1.5rem;font-weight:700;flex-shrink:0}.user-details{overflow:hidden}.user-details h3{margin:0;font-size:1rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.user-details p{margin:5px 0 0;font-size:.85rem;opacity:.9}.sidebar-nav{flex:1;padding:20px 0;overflow-y:auto}.nav-item{display:flex;align-items:center;gap:15px;padding:15px 20px;color:#fff;text-decoration:none;transition:all .3s;position:relative}.nav-item:hover{background:#ffffff1a}.nav-item.active{background:#fff3;border-left:4px solid white}.nav-icon{font-size:1.5rem;flex-shrink:0}.nav-label{font-size:1rem;white-space:nowrap}.sidebar.closed .nav-label{display:none}.sidebar.closed .nav-item{justify-content:center;padding:15px}.logout-btn{margin:20px;padding:15px;background:#fff3;border:none;color:#fff;border-radius:10px;cursor:pointer;display:flex;align-items:center;gap:15px;justify-content:center;font-size:1rem;transition:all .3s}.logout-btn:hover{background:#ffffff4d;transform:translateY(-2px)}.sidebar.closed .logout-btn span:last-child{display:none}.main-content{flex:1;overflow-y:auto;display:flex;flex-direction:column}.main-header{display:flex;justify-content:flex-end;align-items:center;padding:15px 30px;background:#fff;box-shadow:0 2px 4px #0000001a;position:sticky;top:0;z-index:100}.header-spacer{flex:1}.notification-icon{position:relative;width:45px;height:45px;border-radius:50%;display:flex;align-items:center;justify-content:center;background:#f5f7fa;color:#667eea;text-decoration:none;transition:all .3s ease;font-size:20px}.notification-icon:hover{background:#667eea;color:#fff;transform:scale(1.1)}.notification-icon.active{background:#667eea;color:#fff}.company-info{display:flex;flex-direction:column;background:#0000000d;padding:8px 16px;border-radius:8px;border:1px solid #e0e0e0;margin-right:16px}.company-name{font-weight:600;font-size:.85rem;color:#333}.company-details{font-size:.7rem;color:#666;margin-top:2px}.user-menu-container{position:relative;margin-right:16px}.user-menu-btn{display:flex;align-items:center;gap:10px;background:#f5f7fa;border:1px solid #e0e0e0;border-radius:25px;padding:6px 16px 6px 6px;cursor:pointer;transition:all .3s}.user-menu-btn:hover{background:#e8eaf0}.user-menu-avatar{width:32px;height:32px;border-radius:50%;object-fit:contain;background:#fff;padding:2px}.user-menu-name{font-size:.9rem;font-weight:500;color:#333}.user-dropdown{position:absolute;top:calc(100% + 8px);right:0;background:#fff;border-radius:12px;box-shadow:0 4px 20px #00000026;min-width:280px;z-index:9999}.user-dropdown-header{display:flex;align-items:center;padding:16px;gap:12px}.dropdown-avatar{width:40px;height:40px;border-radius:50%;object-fit:contain;background:#fff;padding:4px}.dropdown-user-info{flex:1}.dropdown-username{font-weight:600;font-size:1rem;color:#333}.dropdown-details{font-size:.8rem;color:#666;margin-top:2px}.user-dropdown-divider{height:1px;background:#e0e0e0;margin:0 16px}.user-dropdown-item{display:flex;align-items:center;gap:12px;width:100%;padding:12px 16px;background:transparent;border:none;text-align:left;cursor:pointer;font-size:.9rem;color:#333;transition:background .2s}.user-dropdown-item:hover{background:#f5f7fa}.user-dropdown-item i{font-size:1.1rem;color:#667eea;width:20px}.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}.modal-content{background:#fff;border-radius:16px;padding:0;width:90%;max-width:500px;box-shadow:0 8px 32px #0003}.modal-header{display:flex;justify-content:space-between;align-items:center;padding:20px 24px;border-bottom:1px solid #e0e0e0}.modal-header h2{margin:0;font-size:1.3rem;color:#333}.modal-close{background:transparent;border:none;font-size:1.5rem;color:#999;cursor:pointer;padding:4px 8px;transition:color .2s}.modal-close:hover{color:#333}.modal-form{padding:24px}.form-field{margin-bottom:20px}.form-field label{display:block;margin-bottom:8px;font-weight:500;font-size:.9rem;color:#333}.form-field input{width:100%;padding:12px 16px;border:2px solid #e0e0e0;border-radius:8px;font-size:.95rem;transition:border-color .2s;box-sizing:border-box}.form-field select{width:100%;padding:12px 16px;border:2px solid #e0e0e0;border-radius:8px;font-size:.95rem;transition:border-color .2s;box-sizing:border-box;background:#fff;cursor:pointer}.form-field input:focus,.form-field select:focus{outline:none;border-color:#667eea}.form-field input:disabled,.form-field select:disabled{background:#f5f5f5;cursor:not-allowed}.modal-actions{display:flex;gap:12px;justify-content:flex-end;margin-top:24px}.btn-secondary,.btn-primary{padding:10px 24px;border:none;border-radius:8px;font-size:.95rem;font-weight:500;cursor:pointer;transition:all .3s}.btn-secondary{background:#f5f7fa;color:#333}.btn-secondary:hover:not(:disabled){background:#e8eaf0}.btn-primary{background:#667eea;color:#fff}.btn-primary:hover:not(:disabled){background:#5568d3}.btn-primary:disabled,.btn-secondary:disabled{opacity:.6;cursor:not-allowed}.notification-badge{position:absolute;top:0;right:0;background:#ff4757;color:#fff;font-size:11px;font-weight:700;padding:2px 6px;border-radius:10px;min-width:18px;text-align:center;border:2px solid white}@media (max-width: 768px){.sidebar{position:fixed;z-index:1000}.sidebar.closed{width:70px;transform:translate(0)}.sidebar.open{width:260px;transform:translate(0)}.main-content{margin-left:70px}.sidebar.open~.main-content{margin-left:0}.company-info,.user-menu-name{display:none}.user-menu-btn{padding:6px}.main-header{padding:10px 15px}}.submenu-container{position:relative}.submenu-trigger{cursor:pointer;-webkit-user-select:none;user-select:none}.submenu-arrow{margin-left:auto;font-size:.8rem;transition:transform .3s}.submenu-items{background:#0003;border-radius:8px;margin:5px 10px;overflow:hidden;animation:slideDown .3s ease}@keyframes slideDown{0%{opacity:0;max-height:0}to{opacity:1;max-height:500px}}.submenu-item{padding-left:50px!important;font-size:.95rem}.submenu-item .nav-icon{font-size:1.2rem}.submenu-item:hover{background:#ffffff26}.submenu-item.active{background:#ffffff40;border-left:3px solid white}.sidebar-nav::-webkit-scrollbar{width:6px}.sidebar-nav::-webkit-scrollbar-track{background:#ffffff1a}.sidebar-nav::-webkit-scrollbar-thumb{background:#ffffff4d;border-radius:3px}.sidebar-nav::-webkit-scrollbar-thumb:hover{background:#ffffff80}.home-container{padding:30px;width:100%;margin:0 auto}.home-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:30px}.home-header h1{margin:0;color:#333;font-size:2rem}.refresh-btn{background:#667eea;color:#fff;border:none;padding:10px 20px;border-radius:8px;cursor:pointer;font-size:1rem;transition:all .3s;display:flex;align-items:center;gap:8px}.refresh-btn:hover:not(:disabled){background:#5568d3;transform:translateY(-2px)}.notifications-container{min-height:400px}.loading-state{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:60px 20px}.loading-state p{margin-top:20px;color:#666;font-size:1rem}.empty-state{text-align:center;padding:60px 20px}.empty-state h2{color:#333;margin:0 0 10px;font-size:1.5rem}.empty-state p{color:#666;margin:10px 0;font-size:1rem}.empty-state .hint{color:#999;font-size:.9rem;font-style:italic}.notifications-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(350px,1fr));gap:20px;margin-bottom:30px}.notification-card{background:#fff;border-radius:12px;padding:20px;box-shadow:0 2px 8px #0000001a;transition:all .3s;border:1px solid #e0e0e0}.notification-card:hover{transform:translateY(-4px);box-shadow:0 4px 16px #00000026}.card-header{display:flex;align-items:flex-start;gap:12px;margin-bottom:15px}.icon-container{width:40px;height:40px;border-radius:50%;background:linear-gradient(135deg,#667eea,#764ba2);display:flex;align-items:center;justify-content:center;flex-shrink:0;font-size:1.2rem}.card-title{margin:0;color:#333;font-size:1.1rem;line-height:1.4;flex:1}.card-description{color:#666;line-height:1.6;margin:0 0 15px;font-size:.95rem;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}.card-footer{display:flex;justify-content:space-between;align-items:center;padding-top:15px;border-top:1px solid #f0f0f0;font-size:.85rem;color:#666}.uploader-info,.date-info{display:flex;align-items:center;gap:6px}.load-more-btn:hover{background:#667eea;color:#fff;transform:translateY(-2px)}@media (max-width: 768px){.home-container{padding:20px}.home-header{flex-direction:column;gap:15px;align-items:flex-start}.home-header h1{font-size:1.5rem}.notifications-grid{grid-template-columns:1fr;gap:15px}.notification-card{padding:15px}}.profile-container{padding:0;background:#f5f7fa;min-height:100vh}.profile-header{background:linear-gradient(135deg,#667eea,#764ba2);padding:40px 20px 60px;color:#fff}.profile-banner{max-width:800px;margin:0 auto;display:flex;align-items:center;gap:30px}.avatar-container{position:relative;flex-shrink:0}.avatar,.avatar-placeholder{width:120px;height:120px;border-radius:50%;border:4px solid white;box-shadow:0 4px 12px #0003}.avatar-placeholder{background:#fff;color:#667eea;display:flex;align-items:center;justify-content:center;font-size:3rem;font-weight:700}.online-indicator{position:absolute;bottom:8px;right:8px;width:20px;height:20px;background:#4caf50;border:3px solid white;border-radius:50%}.profile-info h1{margin:0 0 8px;font-size:2rem;font-weight:700}.profile-subtitle{margin:0 0 15px;opacity:.9;font-size:1.1rem}.badge{display:inline-flex;align-items:center;gap:6px;background:#fff3;padding:6px 12px;border-radius:20px;font-size:.9rem}.badge-icon{background:#4caf50;color:#fff;border-radius:50%;width:18px;height:18px;display:flex;align-items:center;justify-content:center;font-size:.75rem;font-weight:700}.profile-content{max-width:1200px;margin:-40px auto 0;padding:0 20px 40px;display:grid;grid-template-columns:repeat(auto-fit,minmax(350px,1fr));gap:20px}.info-card{background:#fff;border-radius:12px;padding:24px;box-shadow:0 2px 8px #0000001a}.card-header{display:flex;align-items:center;gap:12px;margin-bottom:20px;padding-bottom:15px;border-bottom:2px solid #f0f0f0}.card-icon{font-size:1.5rem}.card-header h2{margin:0;font-size:1.3rem;color:#333}.card-body{display:flex;flex-direction:column;gap:15px}.info-row{display:flex;align-items:center;gap:12px;padding:10px;background:#f8f9fa;border-radius:8px;font-size:.95rem;color:#666}.info-row .icon{font-size:1.2rem;flex-shrink:0}.info-row span:nth-child(2){flex:1}.action-btn{width:32px;height:32px;border-radius:50%;background:#fff;border:1px solid #e0e0e0;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all .3s;text-decoration:none;font-size:1rem}.action-btn:hover{background:#667eea;border-color:#667eea;transform:scale(1.1)}.action-cards{grid-column:1 / -1;display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:20px}.action-card{background:#fff;border-radius:12px;padding:20px;display:flex;align-items:center;gap:15px;cursor:pointer;transition:all .3s;box-shadow:0 2px 8px #0000001a}.action-card:hover{transform:translateY(-4px);box-shadow:0 4px 16px #00000026}.action-icon-container{width:50px;height:50px;border-radius:12px;background:linear-gradient(135deg,#667eea,#764ba2);display:flex;align-items:center;justify-content:center;font-size:1.5rem;flex-shrink:0}.action-content{flex:1}.action-content h3{margin:0 0 4px;color:#333;font-size:1.1rem}.action-content p{margin:0;color:#666;font-size:.9rem}.arrow{font-size:1.5rem;color:#ccc}@media (max-width: 768px){.profile-header{padding:30px 15px 50px}.profile-banner{flex-direction:column;text-align:center;gap:20px}.avatar,.avatar-placeholder{width:100px;height:100px}.avatar-placeholder{font-size:2.5rem}.profile-info h1{font-size:1.5rem}.profile-subtitle{font-size:1rem}.badge{font-size:.85rem;padding:5px 10px}.profile-content{grid-template-columns:1fr;margin-top:-30px;padding:0 15px 30px;gap:15px}.info-card{padding:20px 16px}.card-header{margin-bottom:15px;padding-bottom:12px}.card-header h2{font-size:1.1rem}.card-icon{font-size:1.3rem}.info-row{padding:8px;font-size:.9rem;flex-wrap:wrap}.info-row .icon{font-size:1.1rem}.action-cards{grid-template-columns:1fr;gap:15px}.action-card{padding:16px;gap:12px}.action-icon-container{width:45px;height:45px;font-size:1.3rem}.action-content h3{font-size:1rem}.action-content p{font-size:.85rem}.arrow{font-size:1.3rem}}.assignments-container{padding:30px;width:100%;margin:0 auto}.assignments-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:30px;flex-wrap:wrap;gap:15px}.assignments-header h1{margin:0;color:#333;font-size:2rem}.refresh-btn,.create-btn{padding:10px 20px;border:none;border-radius:8px;cursor:pointer;font-size:1rem;transition:all .3s;display:flex;align-items:center;gap:8px}.create-btn{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;font-weight:600}.refresh-btn:hover:not(:disabled),.create-btn:hover{transform:translateY(-2px);box-shadow:0 4px 12px #667eea4d}.refresh-btn:disabled{opacity:.6;cursor:not-allowed}.create-first-btn{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;border:none;padding:12px 30px;border-radius:8px;cursor:pointer;font-size:1rem;font-weight:600;transition:all .3s}.create-first-btn:hover{transform:translateY(-2px);box-shadow:0 4px 12px #667eea4d}.assignments-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(350px,1fr));gap:20px;margin-bottom:30px}.assignment-card{background:#fff;border-radius:12px;padding:20px;box-shadow:0 2px 8px #0000001a;transition:all .3s;border:1px solid #e0e0e0}.assignment-card:hover{transform:translateY(-4px);box-shadow:0 4px 16px #00000026}.card-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:15px}.assignment-badge{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;padding:6px 12px;border-radius:6px;font-size:.85rem;font-weight:600}.assignment-title{margin:0 0 10px;color:#333;font-size:1.2rem;line-height:1.4}.assignment-description{color:#666;line-height:1.6;margin:0 0 15px;font-size:.95rem;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.assignment-details{display:flex;flex-direction:column;gap:10px;margin-bottom:15px;padding:15px;background:#f8f9fa;border-radius:8px}.card-footer{display:flex;justify-content:space-between;align-items:center;padding-top:15px;border-top:1px solid #f0f0f0;font-size:.85rem;color:#999}.modal-content{background:#fff;border-radius:20px;width:100%;max-height:90vh;overflow-y:auto;box-shadow:0 20px 60px #0000004d;animation:slideUp .3s ease-out}.modal-content.assignment-modal{max-width:900px}.assignment-form{padding:24px}.selection-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:12px;margin-top:12px}.selection-item{background:#f8f9fa;border-radius:8px;transition:all .3s ease}.checkbox-label{display:flex;align-items:center;gap:8px;padding:12px;cursor:pointer;-webkit-user-select:none;user-select:none}.checkbox-label input[type=checkbox]{width:18px;height:18px;cursor:pointer;accent-color:#667eea}.checkbox-label span{font-size:14px;color:#333;font-weight:500}.selection-item:has(input:checked){background:#667eea1a;border:2px solid #667eea}.sections-container{display:flex;flex-direction:column;gap:20px}.class-sections{background:#f8f9fa;border-radius:12px;padding:16px}.class-sections h4{margin:0 0 12px;color:#667eea;font-size:15px;font-weight:600}.file-upload-area{display:flex;align-items:center;gap:12px}.delete-btn{background:#f44336;color:#fff;border:none;width:36px;height:36px;border-radius:50%;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .3s ease}.delete-btn:hover{background:#d32f2f;transform:scale(1.1)}.card-footer{display:flex;justify-content:space-between;align-items:center}.footer-info{display:flex;flex-direction:column;gap:4px}@media (max-width: 768px){.assignments-container{padding:20px}.assignments-header{flex-direction:column;align-items:flex-start}.assignments-header h1{font-size:1.5rem}.assignments-grid{grid-template-columns:1fr}.header-actions{width:100%}.refresh-btn,.create-btn{flex:1}.modal-content.assignment-modal{max-height:95vh}.modal-actions{flex-direction:column}.btn-cancel,.btn-submit{width:100%;justify-content:center}.selection-grid{grid-template-columns:repeat(auto-fill,minmax(120px,1fr))}}.messages-container{padding:30px;width:100%;margin:0 auto}.messages-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:30px;flex-wrap:wrap;gap:15px}.messages-header h1{margin:0;color:#333;font-size:2rem}.refresh-btn,.compose-btn,.start-conversation-btn{padding:10px 20px;border:none;border-radius:8px;cursor:pointer;font-size:1rem;transition:all .3s;display:flex;align-items:center;gap:8px}.compose-btn{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;font-weight:600}.refresh-btn:hover:not(:disabled),.compose-btn:hover,.start-conversation-btn:hover{transform:translateY(-2px);box-shadow:0 4px 12px #667eea4d}.start-conversation-btn{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;font-weight:600}.conversations-list{background:#fff;border-radius:12px;box-shadow:0 2px 8px #0000001a;overflow:hidden}.conversation-card{display:flex;align-items:center;gap:15px;padding:20px;border-bottom:1px solid #f0f0f0;cursor:pointer;transition:all .3s;position:relative}.conversation-card:last-child{border-bottom:none}.conversation-card:hover{background:#f8f9fa}.conversation-arrow{color:#ccc;display:flex;align-items:center;transition:all .3s ease}.conversation-card:hover .conversation-arrow{color:#667eea;transform:translate(4px)}.conversation-avatar{width:50px;height:50px;border-radius:50%;background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;display:flex;align-items:center;justify-content:center;font-size:1.5rem;font-weight:700;flex-shrink:0}.conversation-content{flex:1;overflow:hidden}.conversation-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:5px}.conversation-header h3{margin:0;font-size:1.1rem;color:#333;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.time{font-size:.85rem;color:#999;flex-shrink:0;margin-left:10px}.last-message{margin:0;color:#666;font-size:.95rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.unread-badge{position:absolute;top:50%;right:20px;transform:translateY(-50%);background:#e74c3c;color:#fff;padding:4px 8px;border-radius:12px;font-size:.75rem;font-weight:700}@media (max-width: 768px){.messages-container{padding:20px}.messages-header{flex-direction:column;align-items:flex-start}.messages-header h1{font-size:1.5rem}.header-actions{width:100%}.refresh-btn,.compose-btn{flex:1}.conversation-card{padding:15px}.conversation-avatar{width:40px;height:40px;font-size:1.2rem}}.chat-detail-container{display:flex;flex-direction:column;height:calc(100vh - 60px);background:#f5f5f5}.chat-header{display:flex;align-items:center;gap:16px;padding:16px 24px;background:#fff;border-bottom:1px solid #e0e0e0;box-shadow:0 2px 4px #0000000d}.back-btn{background:#f5f5f5;border:none;width:40px;height:40px;border-radius:50%;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all .3s ease}.back-btn:hover{background:#e0e0e0;transform:scale(1.05)}.back-btn i{color:#333;font-size:18px}.chat-user-info{display:flex;align-items:center;gap:12px;flex:1}.user-avatar{width:48px;height:48px;border-radius:50%;background:linear-gradient(135deg,#667eea,#764ba2);display:flex;align-items:center;justify-content:center;color:#fff;font-size:20px;font-weight:600}.user-details h2{margin:0;font-size:18px;font-weight:600;color:#333}.online-status{font-size:13px;color:#4caf50;font-weight:500}.refresh-btn-small{background:#f5f5f5;border:none;width:40px;height:40px;border-radius:50%;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all .3s ease}.refresh-btn-small:hover:not(:disabled){background:#e0e0e0}.refresh-btn-small:disabled{opacity:.5;cursor:not-allowed}.spinning{animation:spin 1s linear infinite}.messages-area{flex:1;overflow-y:auto;padding:20px;background:#f5f5f5}.loading-messages,.no-messages{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100%;color:#999}.loading-messages .spinner{width:40px;height:40px;border:4px solid #f3f3f3;border-top:4px solid #667eea;border-radius:50%;animation:spin 1s linear infinite;margin-bottom:16px}.no-messages i{font-size:64px;color:#e0e0e0;margin-bottom:16px}.no-messages p{font-size:18px;font-weight:600;color:#666;margin:0 0 8px}.no-messages span{font-size:14px;color:#999}.messages-list{display:flex;flex-direction:column;gap:12px;max-width:900px;margin:0 auto}.message-item{display:flex;animation:fadeIn .3s ease-out}@keyframes fadeIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.message-item.received{justify-content:flex-start}.message-item.sent{justify-content:flex-end}.message-bubble{max-width:70%;padding:12px 16px;border-radius:18px;position:relative;word-wrap:break-word}.message-item.received .message-bubble{background:#fff;border-bottom-left-radius:4px;box-shadow:0 1px 2px #0000001a}.message-item.sent .message-bubble{background:linear-gradient(135deg,#667eea,#764ba2);border-bottom-right-radius:4px;box-shadow:0 2px 4px #667eea4d}.message-text{margin:0;font-size:15px;line-height:1.5;white-space:pre-wrap}.message-item.received .message-text{color:#333}.message-item.sent .message-text{color:#fff}.message-meta{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-top:6px}.message-time{font-size:11px;opacity:.7}.message-item.received .message-time{color:#999}.message-item.sent .message-time{color:#fff}.delete-message-btn{background:#fff3;border:none;width:24px;height:24px;border-radius:50%;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all .3s ease;opacity:0}.message-item.sent .message-bubble:hover .delete-message-btn{opacity:1}.delete-message-btn:hover{background:#ffffff4d;transform:scale(1.1)}.delete-message-btn i{font-size:12px;color:#fff}.message-input-container{background:#fff;padding:16px 24px;border-top:1px solid #e0e0e0}.input-wrapper{display:flex;align-items:flex-end;gap:12px;background:#f5f5f5;border-radius:24px;padding:8px 12px;border:2px solid transparent;transition:all .3s ease}.input-wrapper:focus-within{border-color:#667eea;background:#fff}.input-wrapper textarea{flex:1;border:none;background:transparent;resize:none;outline:none;font-size:15px;font-family:inherit;padding:8px;max-height:120px;min-height:20px;line-height:1.5}.input-wrapper textarea:disabled{opacity:.6;cursor:not-allowed}.send-btn{background:linear-gradient(135deg,#667eea,#764ba2);border:none;width:40px;height:40px;border-radius:50%;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all .3s ease;flex-shrink:0}.send-btn:not(.disabled):hover{transform:scale(1.1);box-shadow:0 4px 12px #667eea66}.send-btn.disabled{opacity:.4;cursor:not-allowed}.send-btn i{color:#fff;font-size:16px}.char-count{font-size:12px;color:#999;text-align:right;margin-top:4px}@media (max-width: 768px){.chat-detail-container{height:calc(100vh - 56px)}.chat-header{padding:12px 16px}.messages-area{padding:12px}.message-bubble{max-width:85%}.message-input-container{padding:12px 16px}}.notices-container{padding:30px;width:100%;margin:0 auto}.notices-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:30px;flex-wrap:wrap;gap:15px}.notices-header h1{margin:0;color:#333;font-size:2rem}.header-actions{display:flex;gap:10px}.refresh-btn,.create-btn,.create-first-btn{padding:10px 20px;border:none;border-radius:8px;cursor:pointer;font-size:1rem;transition:all .3s;display:flex;align-items:center;gap:8px}.refresh-btn{background:#667eea;color:#fff}.create-btn,.create-first-btn{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;font-weight:600}.refresh-btn:hover:not(:disabled),.create-btn:hover,.create-first-btn:hover{transform:translateY(-2px);box-shadow:0 4px 12px #667eea4d}.loading-state,.empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:60px 20px;min-height:400px}.spinner{width:50px;height:50px;border:4px solid #f3f3f3;border-top:4px solid #667eea;border-radius:50%;animation:spin 1s linear infinite}.empty-icon{font-size:5rem;opacity:.3;margin-bottom:20px}.empty-state h2{color:#333;margin:0 0 10px}.empty-state p{color:#666;margin-bottom:20px}.notices-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(350px,1fr));gap:20px;margin-bottom:30px}.notice-card{background:#fff;border-radius:12px;padding:20px;box-shadow:0 2px 8px #0000001a;transition:all .3s;border:1px solid #e0e0e0}.notice-card:hover{transform:translateY(-4px);box-shadow:0 4px 16px #00000026}.card-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:15px;position:relative}.notice-icon{width:50px;height:50px;border-radius:50%;background:linear-gradient(135deg,#667eea,#764ba2);display:flex;align-items:center;justify-content:center;font-size:1.5rem}.badge-container{flex:1;display:flex;justify-content:center}.status-badge{background:#4caf50;color:#fff;padding:4px 10px;border-radius:4px;font-size:.75rem;font-weight:600}.card-actions-icons{display:flex;gap:8px;position:absolute;top:0;right:0}.icon-btn{width:32px;height:32px;border:none;border-radius:6px;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .2s ease;font-size:14px}.edit-icon-btn{background:#e8f5e9;color:#28a745}.edit-icon-btn:hover:not(:disabled){background:#28a745;color:#fff;transform:scale(1.1)}.delete-icon-btn{background:#ffebee;color:#dc3545}.delete-icon-btn:hover:not(:disabled){background:#dc3545;color:#fff;transform:scale(1.1)}.icon-btn:disabled{opacity:.5;cursor:not-allowed}.notice-title{margin:0 0 10px;color:#333;font-size:1.2rem;line-height:1.4}.notice-description{color:#666;line-height:1.6;margin:0 0 15px;font-size:.95rem;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}.notice-details{display:flex;flex-direction:column;gap:8px;margin-bottom:15px;padding:12px;background:#f8f9fa;border-radius:8px}.detail-item{display:flex;align-items:center;gap:8px;font-size:.9rem;color:#666}.detail-item .icon{font-size:1rem}.download-btn{width:100%;background:#667eea;color:#fff;border:none;padding:10px;border-radius:6px;cursor:pointer;font-size:.95rem;margin-bottom:15px;transition:all .3s}.download-btn:hover{background:#5568d3}.card-footer{display:flex;justify-content:space-between;align-items:center;padding-top:15px;border-top:1px solid #f0f0f0;font-size:.85rem}.uploader-info,.date-info{display:flex;align-items:center;gap:6px;color:#666}.card-footer .icon{font-size:1rem}.load-more-container{display:flex;justify-content:center;padding:20px 0}.load-more-btn{background:#fff;color:#667eea;border:2px solid #667eea;padding:12px 32px;border-radius:8px;cursor:pointer;font-size:1rem;font-weight:600;transition:all .3s}.load-more-btn:hover{background:#667eea;color:#fff}.loading-more{display:flex;align-items:center;justify-content:center;gap:10px;padding:20px;color:#666}.spinner-small{width:20px;height:20px;border:3px solid #f3f3f3;border-top:3px solid #667eea;border-radius:50%;animation:spin 1s linear infinite}.modal-title i{font-size:24px;color:#667eea}.notice-form{padding:24px}.edit-info-banner{display:flex;align-items:center;gap:10px;background:#e3f2fd;border-left:4px solid #2196f3;padding:12px 16px;border-radius:6px;margin-bottom:20px;font-size:14px;color:#1976d2}.edit-info-banner i{font-size:16px}.form-group label i{color:#667eea}.form-group input,.form-group textarea,.form-group select{width:100%;padding:12px 16px;border:2px solid #e0e0e0;border-radius:10px;font-size:15px;font-family:inherit;transition:all .3s ease}.form-group .multi-select{min-height:120px}.form-group input:focus,.form-group textarea:focus,.form-group select:focus{outline:none;border-color:#667eea;box-shadow:0 0 0 3px #667eea1a}.field-hint{display:block;margin-top:6px;font-size:12px;color:#999;font-style:italic}.form-group input:disabled,.form-group textarea:disabled,.form-group select:disabled{background:#f5f5f5;cursor:not-allowed}.checkbox-group{border:2px solid #e0e0e0;border-radius:10px;padding:12px;max-height:200px;overflow-y:auto;background:#fafafa}.checkbox-item{display:flex;align-items:center;padding:8px 12px;margin-bottom:6px;background:#fff;border-radius:6px;cursor:pointer;transition:all .2s ease;border:1px solid #e8e8e8}.checkbox-item:hover{background:#f0f4ff;border-color:#667eea}.checkbox-item:last-child{margin-bottom:0}.checkbox-item input[type=checkbox]{width:18px;height:18px;cursor:pointer;margin-right:10px;accent-color:#667eea}.checkbox-item input[type=checkbox]:disabled{cursor:not-allowed;opacity:.5}.checkbox-label{flex:1;font-size:14px;color:#333;-webkit-user-select:none;user-select:none}.placeholder-text{text-align:center;color:#999;font-style:italic;padding:20px;margin:0}.file-upload-label:hover{border-color:#667eea;background:#667eea0d}.file-upload-label i{font-size:20px;color:#667eea}.btn-submit{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;box-shadow:0 4px 12px #667eea4d}.btn-submit:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 6px 16px #667eea66}@media (max-width: 768px){.notices-container{padding:20px}.notices-header{flex-direction:column;align-items:flex-start}.notices-header h1{font-size:1.5rem}.notices-grid{grid-template-columns:1fr}.header-actions{width:100%}.refresh-btn,.create-btn{flex:1}.modal-content{max-height:95vh}.modal-actions{flex-direction:column}.btn-cancel,.btn-submit{width:100%;justify-content:center}}.attendance-container{padding:20px;width:100%;margin:0 auto}.attendance-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:30px;padding:20px;background:linear-gradient(135deg,#b22222,#dc3545);border-radius:12px;box-shadow:0 4px 12px #b2222233;color:#fff}.header-title{display:flex;align-items:center;gap:12px}.header-title i{font-size:28px}.header-title h1{margin:0;font-size:26px;font-weight:700}.refresh-button{display:flex;align-items:center;gap:8px;padding:10px 20px;background:#fff3;border:2px solid rgba(255,255,255,.4);border-radius:8px;color:#fff;font-weight:600;cursor:pointer;transition:all .3s ease}.refresh-button:hover:not(:disabled){background:#ffffff4d;transform:translateY(-2px)}.refresh-button:disabled{opacity:.6;cursor:not-allowed}.class-selection{background:#fff;padding:24px;border-radius:12px;box-shadow:0 2px 8px #0000001a;margin-bottom:24px}.selection-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:20px}.form-group label{font-weight:600;color:#333;font-size:14px}.form-select{padding:12px 16px;border:2px solid #e0e0e0;border-radius:8px;font-size:15px;transition:all .3s ease;background:#fff;cursor:pointer}.form-select:focus{outline:none;border-color:#b22222;box-shadow:0 0 0 3px #b222221a}.form-select:disabled{background:#f5f5f5;cursor:not-allowed;opacity:.6}.empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:60px 40px;background:#fff;border-radius:12px;box-shadow:0 2px 8px #0000001a;text-align:center;margin:20px 0}.empty-state-icon{font-size:80px;color:#e0e0e0;margin-bottom:24px}.empty-state-icon.success{color:#4caf50}.success-title{color:#4caf50!important}.empty-state p{font-size:16px;color:#666;line-height:1.6;margin:0 0 12px}.empty-state-hint{font-size:14px;color:#999;font-style:italic;margin:0 0 32px}.empty-state-actions{display:flex;gap:12px;flex-wrap:wrap;justify-content:center}.refresh-classes-btn,.contact-admin-btn{display:flex;align-items:center;gap:8px;padding:12px 24px;border-radius:25px;font-weight:600;cursor:pointer;transition:all .3s ease}.refresh-classes-btn{background:#b222221a;border:2px solid rgba(178,34,34,.3);color:#b22222}.refresh-classes-btn:hover{background:#b2222233;transform:translateY(-2px)}.contact-admin-btn{background:#b222220d;border:2px solid rgba(178,34,34,.2);color:#b22222}.contact-admin-btn:hover{background:#b2222226;transform:translateY(-2px)}.attendance-actions{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px;padding:16px;background:#fff;border-radius:12px;box-shadow:0 2px 8px #0000001a;gap:12px;flex-wrap:wrap}.save-attendance-btn{display:flex;align-items:center;gap:10px;padding:14px 28px;background:linear-gradient(135deg,#dc3545,#b22222);color:#fff;border:none;border-radius:8px;font-weight:600;font-size:16px;cursor:pointer;transition:all .3s ease;box-shadow:0 4px 12px #dc35454d}.save-attendance-btn:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 6px 16px #dc354566}.save-attendance-btn:disabled{opacity:.6;cursor:not-allowed}.select-all-btn{display:flex;align-items:center;gap:8px;padding:12px 20px;background:#fff;border:2px solid #b22222;border-radius:8px;color:#b22222;font-weight:600;cursor:pointer;transition:all .3s ease}.select-all-btn:hover{background:#b222221a;transform:translateY(-2px)}.students-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:16px;position:relative}.loading-overlay{position:absolute;top:0;left:0;right:0;bottom:0;background:#ffffffe6;display:flex;flex-direction:column;align-items:center;justify-content:center;z-index:10;border-radius:12px}.loading-overlay i{font-size:48px;color:#b22222;margin-bottom:16px}.loading-overlay p{font-size:16px;color:#666;font-weight:600}.student-card{background:#fff;border-radius:12px;padding:16px;box-shadow:0 2px 8px #0000001a;cursor:pointer;transition:all .3s ease;border:2px solid transparent}.student-card:hover{transform:translateY(-4px);box-shadow:0 6px 16px #00000026}.student-card.present{border-color:#27ae604d;background:linear-gradient(135deg,#fff,#f0fff4)}.student-card.absent{border-color:#95a5a633;background:linear-gradient(135deg,#fff,#fafafa)}.student-info{display:flex;justify-content:space-between;align-items:center;gap:12px}.student-details{flex:1}.student-name{font-size:17px;font-weight:600;color:#2c3e50;margin:0 0 8px;letter-spacing:.3px}.student-card.present .student-name{color:#27ae60;font-weight:700}.roll-no{display:flex;align-items:center;gap:6px;color:#7f8c8d;font-size:14px;font-weight:500}.attendance-badge{display:flex;flex-direction:column;align-items:center;gap:6px}.badge-icon{width:44px;height:44px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:20px;color:#fff;box-shadow:0 2px 8px #00000026}.badge-icon.present-icon{background:linear-gradient(135deg,#27ae60,#2ecc71)}.badge-icon.absent-icon{background:linear-gradient(135deg,#95a5a6,#bdc3c7)}.attendance-status{font-size:12px;font-weight:600;text-align:center}.student-card.present .attendance-status{color:#27ae60}.student-card.absent .attendance-status{color:#95a5a6}@media (max-width: 768px){.attendance-container{padding:12px}.attendance-header{flex-direction:column;gap:16px;padding:16px}.header-title h1{font-size:22px}.selection-row{grid-template-columns:1fr}.attendance-actions{flex-direction:column}.save-attendance-btn,.select-all-btn{width:100%;justify-content:center}.students-list{grid-template-columns:1fr}.empty-state{padding:40px 20px}.empty-state-icon{font-size:60px}.empty-state h3{font-size:20px}}@media (max-width: 480px){.header-title i{font-size:22px}.header-title h1{font-size:18px}.empty-state-actions{flex-direction:column;width:100%}.refresh-classes-btn,.contact-admin-btn{width:100%;justify-content:center}}.change-password-container{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:20px;background:linear-gradient(135deg,#667eea,#764ba2)}.change-password-card{width:100%;max-width:500px;background:#fff;border-radius:20px;box-shadow:0 10px 40px #0003;overflow:hidden;animation:slideUp .4s ease-out}.header-section{background:linear-gradient(135deg,#b22222,#dc3545);padding:40px 30px;color:#fff;text-align:center;position:relative}.back-button{position:absolute;top:20px;left:20px;background:#fff3;border:none;color:#fff;width:40px;height:40px;border-radius:50%;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all .3s ease;font-size:18px}.back-button:hover{background:#ffffff4d;transform:translate(-3px)}.icon-container{width:80px;height:80px;margin:0 auto 20px;background:#fff3;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:36px}.header-content h1{margin:0 0 10px;font-size:28px;font-weight:700}.header-content p{margin:0;opacity:.9;font-size:15px}.password-form{padding:40px 30px 30px}.form-group{margin-bottom:25px}.form-group label{display:flex;align-items:center;gap:8px;font-weight:600;color:#333;margin-bottom:10px;font-size:14px}.input-wrapper{position:relative;display:flex;align-items:center}.input-wrapper input{width:100%;padding:14px 50px 14px 16px;border:2px solid #e0e0e0;border-radius:10px;font-size:15px;transition:all .3s ease;background:#fafafa}.input-wrapper input:focus{outline:none;border-color:#b22222;background:#fff;box-shadow:0 0 0 3px #b222221a}.input-wrapper input:disabled{background:#f5f5f5;cursor:not-allowed;opacity:.6}.toggle-password{position:absolute;right:12px;background:none;border:none;color:#999;cursor:pointer;padding:8px;display:flex;align-items:center;justify-content:center;transition:all .3s ease}.toggle-password:hover:not(:disabled){color:#b22222}.toggle-password:disabled{cursor:not-allowed;opacity:.5}.input-hint{display:block;margin-top:8px;font-size:12px;color:#666;font-style:italic}.password-requirements{background:#f8f9fa;border-left:4px solid #b22222;padding:20px;border-radius:8px;margin-bottom:30px}.password-requirements h4{margin:0 0 12px;font-size:14px;color:#333;font-weight:600}.password-requirements ul{list-style:none;padding:0;margin:0}.password-requirements li{display:flex;align-items:center;gap:10px;padding:8px 0;color:#666;font-size:14px}.password-requirements li i{color:#ccc;font-size:16px}.password-requirements li.valid{color:#27ae60;font-weight:600}.password-requirements li.valid i{color:#27ae60}.submit-button{width:100%;padding:16px;background:linear-gradient(135deg,#b22222,#dc3545);color:#fff;border:none;border-radius:10px;font-size:16px;font-weight:600;cursor:pointer;display:flex;align-items:center;justify-content:center;gap:10px;transition:all .3s ease;box-shadow:0 4px 12px #b222224d;margin-bottom:12px}.submit-button:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 6px 16px #b2222266}.submit-button:disabled{opacity:.6;cursor:not-allowed;transform:none}.cancel-button{width:100%;padding:14px;background:#fff;color:#666;border:2px solid #e0e0e0;border-radius:10px;font-size:15px;font-weight:600;cursor:pointer;transition:all .3s ease}.cancel-button:hover:not(:disabled){background:#f5f5f5;border-color:#ccc}.cancel-button:disabled{opacity:.6;cursor:not-allowed}.security-notice{background:#fff3cd;border:1px solid #ffc107;border-radius:8px;padding:16px;margin:20px 30px 30px;display:flex;align-items:start;gap:12px}.security-notice i{color:#ffc107;font-size:20px;flex-shrink:0;margin-top:2px}.security-notice p{margin:0;font-size:13px;color:#856404;line-height:1.5}@media (max-width: 768px){.change-password-container{padding:0;background:#fff}.change-password-card{border-radius:0;box-shadow:none;min-height:100vh}.header-section{padding:60px 20px 30px}.icon-container{width:60px;height:60px;font-size:28px}.header-content h1{font-size:24px}.password-form{padding:30px 20px}.security-notice{margin:20px 20px 30px}}@media (max-width: 480px){.header-section{padding:50px 16px 25px}.header-content h1{font-size:22px}.icon-container{width:50px;height:50px;font-size:24px}.password-form{padding:25px 16px}.input-wrapper input{padding:12px 45px 12px 14px;font-size:14px}.submit-button{padding:14px;font-size:15px}.security-notice{margin:20px 16px 25px;padding:14px}}.circulars-container{padding:20px;width:100%;margin:0 auto}.circulars-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:30px;padding:24px;background:linear-gradient(135deg,#b22222,#dc3545);border-radius:16px;box-shadow:0 4px 12px #b2222233}.header-content{display:flex;align-items:center;gap:16px;color:#fff}.header-content i{font-size:32px}.header-content h1{margin:0;font-size:28px;font-weight:700}.create-circular-btn{display:flex;align-items:center;gap:8px;padding:12px 24px;background:#fff3;border:2px solid rgba(255,255,255,.4);border-radius:10px;color:#fff;font-weight:600;font-size:15px;cursor:pointer;transition:all .3s ease}.create-circular-btn:hover{background:#ffffff4d;transform:translateY(-2px)}.modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#0009;display:flex;align-items:center;justify-content:center;z-index:1000;padding:20px;animation:fadeIn .3s ease-out}.modal-content{background:#fff;border-radius:20px;max-width:700px;width:100%;max-height:90vh;overflow-y:auto;box-shadow:0 20px 60px #0000004d;animation:slideUp .3s ease-out}.modal-header{display:flex;justify-content:space-between;align-items:center;padding:24px;border-bottom:2px solid #f0f0f0;position:sticky;top:0;background:#fff;z-index:10}.modal-title{display:flex;align-items:center;gap:12px}.modal-title i{font-size:24px;color:#b22222}.modal-title h2{margin:0;font-size:22px;font-weight:700;color:#333}.modal-close{background:#f5f5f5;border:none;width:36px;height:36px;border-radius:50%;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .3s ease}.modal-close:hover{background:#e0e0e0;transform:rotate(90deg)}.modal-close i{font-size:18px;color:#666}.circular-form{padding:24px}.form-section{margin-bottom:30px}.form-section h3{font-size:16px;font-weight:600;color:#333;margin:0 0 16px;padding-bottom:8px;border-bottom:2px solid #f0f0f0}.form-group label{display:flex;align-items:center;gap:8px;font-weight:600;color:#333;margin-bottom:8px;font-size:14px}.form-group label i{color:#b22222}.form-group input,.form-group textarea{width:100%;padding:12px 16px;border:2px solid #e0e0e0;border-radius:10px;font-size:15px;font-family:inherit;transition:all .3s ease}.form-group input:focus,.form-group textarea:focus{outline:none;border-color:#b22222;box-shadow:0 0 0 3px #b222221a}.form-group input:disabled,.form-group textarea:disabled{background:#f5f5f5;cursor:not-allowed}.form-group textarea{resize:vertical;min-height:100px}.file-upload-area{position:relative;display:flex;align-items:center;gap:12px}.file-input{display:none}.file-upload-label{flex:1;display:flex;align-items:center;gap:12px;padding:16px 20px;border:2px dashed #e0e0e0;border-radius:10px;cursor:pointer;transition:all .3s ease;color:#666;font-size:14px}.file-upload-label:hover{border-color:#b22222;background:#b222220d}.file-upload-label i{font-size:20px;color:#b22222}.remove-file-btn{width:36px;height:36px;border:none;background:#f44336;color:#fff;border-radius:50%;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .3s ease}.remove-file-btn:hover{background:#d32f2f;transform:rotate(90deg)}.modal-actions{display:flex;gap:12px;justify-content:flex-end;margin-top:30px;padding-top:20px;border-top:2px solid #f0f0f0}.btn-cancel,.btn-submit{padding:12px 24px;border:none;border-radius:10px;font-weight:600;font-size:15px;cursor:pointer;transition:all .3s ease;display:flex;align-items:center;gap:8px}.btn-cancel{background:#f5f5f5;color:#666}.btn-cancel:hover:not(:disabled){background:#e0e0e0}.btn-submit{background:linear-gradient(135deg,#b22222,#dc3545);color:#fff;box-shadow:0 4px 12px #b222224d}.btn-submit:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 6px 16px #b2222266}.btn-cancel:disabled,.btn-submit:disabled{opacity:.6;cursor:not-allowed;transform:none!important}.loading-state,.empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:80px 40px;text-align:center}.loading-state i{font-size:48px;color:#b22222;margin-bottom:20px}.loading-state p{font-size:16px;color:#666;font-weight:600}.empty-icon{width:120px;height:120px;background:linear-gradient(135deg,#f5f5f5,#e0e0e0);border-radius:50%;display:flex;align-items:center;justify-content:center;margin-bottom:30px}.empty-icon i{font-size:60px;color:#999}.empty-state h3{font-size:24px;font-weight:700;color:#333;margin:0 0 12px}.empty-state p{font-size:16px;color:#666;line-height:1.6;max-width:500px;margin:0 0 30px}.empty-state-btn{display:inline-flex;align-items:center;gap:10px;padding:14px 28px;background:linear-gradient(135deg,#b22222,#dc3545);color:#fff;border:none;border-radius:10px;font-weight:600;font-size:16px;cursor:pointer;transition:all .3s ease;box-shadow:0 4px 12px #b222224d}.empty-state-btn:hover{transform:translateY(-2px);box-shadow:0 6px 16px #b2222266}.circulars-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(350px,1fr));gap:20px;margin-bottom:30px}.circular-card{background:#fff;border-radius:16px;box-shadow:0 2px 8px #0000001a;overflow:hidden;transition:all .3s ease;border:2px solid transparent}.circular-card:hover{transform:translateY(-4px);box-shadow:0 8px 24px #00000026;border-color:#b2222233}.circular-header{padding:20px;background:linear-gradient(135deg,#f8f9fa,#e9ecef);border-bottom:2px solid #dee2e6}.circular-icon{width:48px;height:48px;background:linear-gradient(135deg,#b22222,#dc3545);border-radius:12px;display:flex;align-items:center;justify-content:center;margin-bottom:12px}.circular-icon i{font-size:24px;color:#fff}.circular-meta{display:flex;justify-content:space-between;align-items:center}.circular-date{display:flex;align-items:center;gap:6px;font-size:13px;color:#666;font-weight:500}.circular-date i{color:#b22222}.circular-actions{display:flex;gap:8px}.action-btn{width:32px;height:32px;border:none;border-radius:8px;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .3s ease}.download-btn{background:#4caf501a;color:#4caf50}.download-btn:hover{background:#4caf50;color:#fff;transform:scale(1.1)}.edit-btn{background:#2196f31a;color:#2196f3}.edit-btn:hover{background:#2196f3;color:#fff;transform:scale(1.1)}.delete-btn{background:#f443361a;color:#f44336}.circular-body{padding:20px}.circular-title{font-size:18px;font-weight:700;color:#333;margin:0 0 12px;line-height:1.4}.circular-description{font-size:14px;color:#666;line-height:1.6;margin:0 0 16px}.circular-attachment{display:inline-flex;align-items:center;gap:8px;padding:8px 14px;background:#4caf501a;border-radius:20px;font-size:13px;color:#4caf50;font-weight:600;cursor:pointer;transition:all .3s ease;border:1px solid rgba(76,175,80,.3)}.circular-attachment:hover{background:#4caf50;color:#fff;transform:translateY(-2px);box-shadow:0 4px 8px #4caf504d}.circular-attachment i{font-size:14px}.circular-attachment i:last-child{font-size:13px;opacity:.8}.load-more-container{text-align:center;padding:20px 0}.load-more-btn{padding:14px 32px;background:#fff;border:2px solid #b22222;border-radius:10px;color:#b22222;font-weight:600;font-size:15px;cursor:pointer;transition:all .3s ease}.load-more-btn:hover{background:#b22222;color:#fff;transform:translateY(-2px);box-shadow:0 4px 12px #b222224d}@media (max-width: 768px){.circulars-container{padding:12px}.circulars-header{flex-direction:column;gap:16px;padding:20px}.header-content{width:100%}.create-circular-btn{width:100%;justify-content:center}.circulars-grid{grid-template-columns:1fr}.modal-content{max-height:95vh}.modal-actions{flex-direction:column}.btn-cancel,.btn-submit{width:100%;justify-content:center}}@media (max-width: 480px){.header-content h1{font-size:22px}.header-content i{font-size:24px}.modal-title h2{font-size:18px}.circular-card{border-radius:12px}}.co-scholastic-container{padding:30px;width:100%;margin:0 auto}.co-scholastic-header{margin-bottom:30px}.co-scholastic-header h1{margin:0;color:#333;font-size:2rem}.filters-section{background:#fff;padding:24px;border-radius:12px;box-shadow:0 2px 8px #0000001a;margin-bottom:24px}.filter-row{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{display:flex;align-items:center;gap:8px;font-weight:600;color:#333;font-size:14px}.filter-group select{padding:12px 16px;border:2px solid #e0e0e0;border-radius:10px;font-size:15px;font-family:inherit;transition:all .3s ease;background:#fff;cursor:pointer}.filter-group select:focus{outline:none;border-color:#667eea;box-shadow:0 0 0 3px #667eea1a}.filter-group select:disabled{background:#f5f5f5;cursor:not-allowed;opacity:.6}.empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:60px 20px;background:#f8f9fa;border-radius:12px;border:2px dashed #e0e0e0;min-height:400px}.empty-icon{font-size:80px;color:#e0e0e0;margin-bottom:24px}.empty-state h2{color:#333;margin:0 0 12px;font-size:24px}.empty-state p{color:#666;text-align:center;max-width:500px;line-height:1.6;margin-bottom:24px}.load-btn{background:linear-gradient(135deg,#2bbbbb,#1a9999);color:#fff;border:none;padding:14px 32px;border-radius:10px;font-size:16px;font-weight:600;cursor:pointer;display:flex;align-items:center;gap:10px;transition:all .3s ease}.load-btn:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 6px 20px #2bbbbb66}.load-btn:disabled{opacity:.6;cursor:not-allowed;transform:none}.action-bar{display:flex;justify-content:space-between;align-items:center;padding:16px 24px;background:#fff;border-radius:12px;box-shadow:0 2px 8px #0000001a;margin-bottom:24px}.save-btn{background:linear-gradient(135deg,#b22222,#8b1a1a);color:#fff;border:none;padding:12px 24px;border-radius:10px;font-size:16px;font-weight:600;cursor:pointer;display:flex;align-items:center;gap:10px;transition:all .3s ease}.save-btn:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 6px 20px #b2222266}.save-btn:disabled{opacity:.6;cursor:not-allowed;transform:none}.refresh-btn-icon{background:#f5f5f5;border:none;width:44px;height:44px;border-radius:50%;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all .3s ease}.refresh-btn-icon:hover{background:#e0e0e0;transform:rotate(180deg)}.refresh-btn-icon i{color:#b22222;font-size:18px}.students-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(400px,1fr));gap:20px}.student-card{background:#fff;border-radius:12px;box-shadow:0 2px 8px #0000001a;border:1px solid #e8e8e8;overflow:hidden;transition:all .3s ease}.student-card.has-marks{border-left:4px solid #27ae60}.student-header{background:#f4f6f9;padding:16px;border-bottom:1px solid #e1e8ed;display:flex;justify-content:space-between;align-items:center}.student-name{margin:0 0 8px;font-size:16px;font-weight:600;color:#2c3e50}.roll-info{display:flex;align-items:center;gap:6px;font-size:14px;color:#7f8c8d}.roll-info i{color:#95a5a6}.status-badge{display:flex;align-items:center}.status-badge .evaluated{display:flex;align-items:center;gap:6px;background:#d5edda;color:#27ae60;padding:6px 12px;border-radius:12px;font-size:12px;font-weight:600}.status-badge .pending{display:flex;align-items:center;gap:6px;background:#fdf2e9;color:#e67e22;padding:6px 12px;border-radius:12px;font-size:12px;font-weight:600}.marks-input-container{padding:16px}.marks-input-wrapper{display:flex;align-items:center;gap:12px;background:#f8f9fb;border-radius:10px;padding:12px;border:2px solid #e1e8ed}.marks-input-wrapper i{color:#8e44ad;font-size:20px}.marks-input-wrapper label{font-size:14px;font-weight:600;color:#34495e}.marks-input-wrapper input{flex:1;padding:10px 14px;border:1px solid #bdc3c7;border-radius:6px;font-size:16px;font-weight:600;text-align:center;transition:all .3s ease;background:#fff}.marks-input-wrapper input:focus{outline:none;border-color:#8e44ad;box-shadow:0 0 0 3px #8e44ad1a}.marks-input-wrapper input.filled{border-color:#8e44ad;background:#f8f6fb;color:#8e44ad}.marks-input-wrapper input::placeholder{color:#bdc3c7;font-weight:400}.loading-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#00000080;display:flex;flex-direction:column;align-items:center;justify-content:center;z-index:9999}.loading-overlay .spinner{width:60px;height:60px;border:6px solid #f3f3f3;border-top:6px solid #667eea;border-radius:50%;animation:spin 1s linear infinite;margin-bottom:16px}.loading-overlay p{color:#fff;font-size:18px;font-weight:600}@media (max-width: 768px){.co-scholastic-container{padding:20px}.co-scholastic-header h1{font-size:1.5rem}.filter-row,.students-grid{grid-template-columns:1fr}.action-bar{flex-direction:column;gap:12px}.save-btn{width:100%;justify-content:center}}.discipline-grades-container{padding:20px;width:100%;margin:0 auto}.discipline-grades-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:24px}.discipline-grades-header h1{font-size:28px;font-weight:600;color:var(--text-primary);display:flex;align-items:center;gap:12px}.discipline-grades-header h1 i{color:var(--primary-color)}.empty-state-hint{font-size:14px;color:var(--text-muted);font-style:italic}.students-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(350px,1fr));gap:20px}.student-card.has-grade{border-left-color:var(--success-color);background:linear-gradient(to right,rgba(76,175,80,.05) 0%,var(--bg-white) 100%)}.status-badge span{display:flex;align-items:center;gap:6px;padding:6px 12px;border-radius:20px;font-size:12px;font-weight:600;text-transform:uppercase;letter-spacing:.5px}.badge-completed{background:#27ae60;color:#fff;font-weight:700}.badge-pending{background:#f39c12;color:#fff;font-weight:700}.grade-input-section{display:flex;flex-direction:column;gap:8px}.grade-input-section label{display:flex;align-items:center;gap:8px;font-weight:500;color:var(--text-primary);font-size:14px}.grade-input-section label i{color:var(--primary-color)}.grade-input-section input{width:100%;padding:10px 12px;border:2px solid var(--border-color);border-radius:8px;font-size:16px;font-weight:600;text-align:center;text-transform:uppercase;background:var(--bg-white);color:var(--text-primary);transition:all .2s}.grade-input-section input:focus{outline:none;border-color:var(--primary-color);box-shadow:0 0 0 3px #b222221a}.grade-input-section input.filled{border-color:var(--success-color);background:#4caf500d}.grade-input-section input::placeholder{color:var(--text-muted);font-size:14px;text-transform:none;font-weight:400}@media (max-width: 768px){.discipline-grades-container{padding:16px}.discipline-grades-header h1{font-size:24px}.filters-card{padding:20px}.filters-grid,.students-list{grid-template-columns:1fr}.action-buttons{flex-direction:column}.save-btn,.refresh-btn{width:100%;justify-content:center}}.exam-activity-container{padding:20px;width:100%;margin:0 auto}.exam-activity-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:24px}.exam-activity-header h1{font-size:28px;font-weight:600;color:var(--text-primary);display:flex;align-items:center;gap:12px}.exam-activity-header h1 i{color:var(--primary-color)}.step-item i{font-size:32px;color:#9b59b6}.student-card.has-activity{border-left-color:#9b59b6;background:linear-gradient(to right,rgba(155,89,182,.05) 0%,var(--bg-white) 100%)}.badge-completed{background:#9b59b6;color:#fff}.activity-input-section{display:flex;flex-direction:column;gap:8px}.activity-input-section label{display:flex;align-items:center;gap:8px;font-weight:500;color:var(--text-primary);font-size:14px}.activity-input-section label i{color:var(--primary-color)}.activity-input-section textarea{width:100%;padding:12px;border:2px solid var(--border-color);border-radius:8px;font-size:14px;font-family:inherit;background:var(--bg-white);color:var(--text-primary);transition:all .2s;resize:vertical;min-height:100px;line-height:1.5}.activity-input-section textarea:focus{outline:none;border-color:var(--primary-color);box-shadow:0 0 0 3px #b222221a}.activity-input-section textarea.filled{border-color:#9b59b6;background:#9b59b60d}.activity-input-section textarea::placeholder{color:var(--text-muted);font-size:13px}@media (max-width: 768px){.exam-activity-container{padding:16px}.exam-activity-header h1{font-size:24px}.filters-card{padding:20px}.filters-grid,.students-list{grid-template-columns:1fr}.action-buttons{flex-direction:column}.save-btn,.refresh-btn{width:100%;justify-content:center}.steps-container{flex-direction:column;gap:20px}.step-item{max-width:100%}}.exam-remarks-container{padding:20px;width:100%;margin:0 auto}.exam-remarks-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:24px}.exam-remarks-header h1{font-size:28px;font-weight:600;color:var(--text-primary);display:flex;align-items:center;gap:12px}.exam-remarks-header h1 i{color:var(--primary-color)}.empty-state-icon{font-size:64px;color:var(--primary-color);margin-bottom:20px;opacity:.3}.steps-container{display:flex;justify-content:center;gap:40px;margin-top:32px;flex-wrap:wrap}.step-item i{font-size:32px;color:#3498db}.empty-state .load-btn{margin-top:24px;padding:12px 32px;background:var(--primary-color);color:#fff;border:none;border-radius:8px;font-size:16px;font-weight:500;cursor:pointer;display:inline-flex;align-items:center;gap:8px;transition:all .2s}.empty-state .load-btn:hover{background:var(--primary-dark);transform:translateY(-2px);box-shadow:0 4px 12px #b222224d}.save-btn,.refresh-btn{padding:10px 24px;border:none;border-radius:8px;font-size:14px;font-weight:500;cursor:pointer;display:flex;align-items:center;gap:8px;transition:all .2s}.save-btn{background:var(--success-color);color:#fff}.save-btn:hover:not(:disabled){background:var(--success-light);transform:translateY(-2px);box-shadow:0 4px 12px #4caf504d}.refresh-btn{background:var(--secondary-color);color:#fff;padding:10px 16px}.refresh-btn:hover{background:var(--secondary-dark);transform:translateY(-2px);box-shadow:0 4px 12px #667eea4d}.students-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(400px,1fr));gap:20px}.student-card{background:var(--bg-white);border-radius:12px;padding:20px;box-shadow:0 2px 8px #0000001a;border-left:4px solid var(--border-color);transition:all .2s}.student-card.has-remarks{border-left-color:#27ae60;background:linear-gradient(to right,rgba(39,174,96,.05) 0%,var(--bg-white) 100%)}.student-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:16px}.badge-pending{background:#f39c12;color:#fff}.remarks-input-section{display:flex;flex-direction:column;gap:8px}.remarks-input-section label{display:flex;align-items:center;gap:8px;font-weight:500;color:var(--text-primary);font-size:14px}.remarks-input-section label i{color:var(--primary-color)}.remarks-input-section textarea{width:100%;padding:12px;border:2px solid var(--border-color);border-radius:8px;font-size:14px;font-family:inherit;background:var(--bg-white);color:var(--text-primary);transition:all .2s;resize:vertical;min-height:100px;line-height:1.5}.remarks-input-section textarea:focus{outline:none;border-color:var(--primary-color);box-shadow:0 0 0 3px #b222221a}.remarks-input-section textarea.filled{border-color:#27ae60;background:#27ae600d}.remarks-input-section textarea::placeholder{color:var(--text-muted);font-size:13px}.spinner{width:40px;height:40px;border:4px solid var(--border-color);border-top-color:var(--primary-color);border-radius:50%;animation:spin 1s linear infinite;margin-bottom:16px}@media (max-width: 768px){.exam-remarks-container{padding:16px}.exam-remarks-header h1{font-size:24px}.filters-card{padding:20px}.filters-grid,.students-list{grid-template-columns:1fr}.action-buttons{flex-direction:column}.save-btn,.refresh-btn{width:100%;justify-content:center}.steps-container{flex-direction:column;gap:20px}.step-item{max-width:100%}}.height-entry-container{padding:20px;width:100%;margin:0 auto}.height-entry-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:24px}.height-entry-header h1{font-size:28px;font-weight:600;color:var(--text-primary);display:flex;align-items:center;gap:12px}.height-entry-header h1 i{color:#e74c3c}.filters-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:20px}.filter-group label i{color:var(--primary-color)}.filter-group select{width:100%;padding:10px 12px;border:2px solid var(--border-color);border-radius:8px;font-size:14px;background:var(--bg-white);color:var(--text-primary);transition:all .2s}.filter-group select:focus{outline:none;border-color:var(--primary-color);box-shadow:0 0 0 3px #b222221a}.filter-group select:disabled{background-color:var(--bg-light);cursor:not-allowed;opacity:.6}.empty-state-icon{font-size:64px;color:#e74c3c;margin-bottom:20px;opacity:.3}.empty-state p{font-size:16px;color:var(--text-secondary);margin-bottom:24px;max-width:600px;margin-left:auto;margin-right:auto;line-height:1.5}.steps-container{display:flex;justify-content:center;gap:40px;margin-top:32px;margin-bottom:24px;flex-wrap:wrap}.step-item{display:flex;flex-direction:column;align-items:center;gap:12px;max-width:180px}.step-item i{font-size:32px;color:#e74c3c}.step-item span{font-size:14px;color:var(--text-secondary);text-align:center;line-height:1.4}.tip-container{display:flex;align-items:center;justify-content:center;gap:8px;padding:12px 20px;background:#f39c121a;border-radius:8px;margin-top:24px;max-width:500px;margin-left:auto;margin-right:auto}.tip-container i{color:#f39c12;font-size:18px}.tip-container span{font-size:14px;color:var(--text-primary)}.action-buttons{display:flex;justify-content:flex-end;gap:12px;margin-bottom:24px}.save-btn{padding:12px 32px;border:none;border-radius:8px;font-size:16px;font-weight:500;cursor:pointer;display:flex;align-items:center;gap:8px;transition:all .2s;background:var(--primary-color);color:#fff}.save-btn:hover:not(:disabled){background:var(--primary-dark);transform:translateY(-2px);box-shadow:0 4px 12px #b222224d}.save-btn:disabled{background:var(--bg-light);cursor:not-allowed;opacity:.6}.students-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(450px,1fr));gap:20px}.student-card{background:var(--bg-white);border-radius:12px;padding:0;box-shadow:0 2px 8px #0000001a;border:1px solid var(--border-color);transition:all .2s}.student-card:hover{box-shadow:0 4px 16px #00000026;transform:translateY(-2px)}.student-card.has-height{border-left:4px solid #27AE60}.student-header{background:var(--bg-light);padding:16px;border-bottom:1px solid var(--border-color);display:flex;justify-content:space-between;align-items:flex-start}.student-name{font-size:18px;font-weight:600;color:var(--text-primary);margin:0 0 8px}.roll-number{display:flex;align-items:center;gap:6px;font-size:14px;color:var(--text-secondary)}.roll-number i{color:var(--primary-color)}.status-badge{display:flex;align-items:center;gap:8px}.status-badge span{display:flex;align-items:center;gap:6px;padding:6px 12px;border-radius:20px;font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.5px}.badge-completed{background:#27ae60;color:#fff}.badge-pending{background:#e67e22;color:#fff}.height-input-section{padding:20px;width:100%;box-sizing:border-box}.height-input-wrapper{display:flex;flex-direction:column;gap:12px;padding:16px;background:var(--bg-light);border-radius:8px;border:2px solid var(--border-color);transition:all .2s}.height-input-wrapper .input-label-row{display:flex;align-items:center;gap:8px}.height-input-wrapper .input-field-row{display:flex;align-items:center;gap:12px;width:100%;box-sizing:border-box}.height-input-wrapper:focus-within{border-color:#e74c3c;background:var(--bg-white)}.height-input-wrapper i{color:#e74c3c;font-size:20px}.height-input-wrapper label{font-weight:500;color:var(--text-primary);font-size:14px;min-width:80px}.height-input-wrapper input{flex:1;padding:10px 16px;border:2px solid #BDC3C7;border-radius:6px;font-size:16px;font-weight:600;text-align:center;background:#fff;color:#2c3e50;transition:all .2s;box-shadow:inset 0 1px 3px #0000001a;max-width:100%;box-sizing:border-box}.height-input-wrapper input:focus{outline:none;border-color:#e74c3c;box-shadow:0 0 0 3px #e74c3c1a,inset 0 1px 3px #0000001a;background:#fff}.height-input-wrapper input.filled{border-color:#27ae60;background:#fff;box-shadow:0 0 0 2px #27ae601a,inset 0 1px 3px #0000001a}.height-input-wrapper input::placeholder{color:var(--text-muted);font-size:14px;font-weight:400}.unit-text{font-weight:600;color:#e74c3c;font-size:14px;min-width:30px}.spinner{width:40px;height:40px;border:4px solid var(--border-color);border-top-color:#e74c3c;border-radius:50%;animation:spin 1s linear infinite;margin-bottom:16px}@media (max-width: 768px){.height-entry-container{padding:16px}.height-entry-header h1{font-size:24px}.filters-card{padding:20px}.filters-grid,.students-list{grid-template-columns:1fr}.action-buttons{flex-direction:column}.save-btn{width:100%;justify-content:center}.steps-container{flex-direction:column;gap:20px}.step-item{max-width:100%}.height-input-wrapper{flex-wrap:wrap}.height-input-wrapper label{min-width:auto}}.weight-entry-container{padding:20px;width:100%;margin:0 auto}.weight-entry-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:24px}.weight-entry-header h1{font-size:28px;font-weight:600;color:var(--text-primary);display:flex;align-items:center;gap:12px}.weight-entry-header h1 i{color:#9b59b6}.weight-entry-container .filters-card{background:var(--bg-white);border-radius:12px;padding:24px;box-shadow:0 2px 8px #0000001a;margin-bottom:24px}.weight-entry-container .filters-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:20px}.weight-entry-container .filter-group label{display:flex;align-items:center;gap:8px;font-weight:500;color:var(--text-primary);margin-bottom:8px;font-size:14px}.weight-entry-container .filter-group label i{color:#9b59b6}.weight-entry-container .filter-group select{width:100%;padding:10px 12px;border:2px solid var(--border-color);border-radius:8px;font-size:14px;background:var(--bg-white);color:var(--text-primary);transition:all .2s}.weight-entry-container .filter-group select:focus{outline:none;border-color:#9b59b6;box-shadow:0 0 0 3px #9b59b61a}.weight-entry-container .filter-group select:disabled{background-color:var(--bg-light);cursor:not-allowed;opacity:.6}.weight-entry-container .empty-state{text-align:center;padding:60px 20px;background:var(--bg-white);border-radius:12px;box-shadow:0 2px 8px #0000001a}.weight-entry-container .empty-state-icon{font-size:64px;color:#9b59b6;margin-bottom:20px;opacity:.3}.weight-entry-container .empty-state h3{font-size:24px;font-weight:600;color:var(--text-primary);margin-bottom:12px}.weight-entry-container .empty-state p{font-size:16px;color:var(--text-secondary);margin-bottom:24px;max-width:600px;margin-left:auto;margin-right:auto;line-height:1.5}.weight-entry-container .steps-container{display:flex;justify-content:center;gap:40px;margin-top:32px;margin-bottom:24px;flex-wrap:wrap}.weight-entry-container .step-item{display:flex;flex-direction:column;align-items:center;gap:12px;max-width:180px}.weight-entry-container .step-item i{font-size:32px;color:#9b59b6}.weight-entry-container .step-item span{font-size:14px;color:var(--text-secondary);text-align:center;line-height:1.4}.weight-entry-container .tip-container{display:flex;align-items:center;justify-content:center;gap:8px;padding:12px 20px;background:#f39c121a;border-radius:8px;margin-top:24px;max-width:500px;margin-left:auto;margin-right:auto}.weight-entry-container .tip-container i{color:#f39c12;font-size:18px}.weight-entry-container .tip-container span{font-size:14px;color:var(--text-primary)}.weight-entry-container .action-buttons{display:flex;justify-content:flex-end;gap:12px;margin-bottom:24px}.weight-entry-container .save-btn{padding:12px 32px;border:none;border-radius:8px;font-size:16px;font-weight:500;cursor:pointer;display:flex;align-items:center;gap:8px;transition:all .2s;background:#9b59b6;color:#fff}.weight-entry-container .save-btn:hover:not(:disabled){background:#8e44ad;transform:translateY(-2px);box-shadow:0 4px 12px #9b59b64d}.weight-entry-container .save-btn:disabled{background:var(--bg-light);cursor:not-allowed;opacity:.6}.weight-entry-container .students-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(450px,1fr));gap:20px}.weight-entry-container .student-card{background:var(--bg-white);border-radius:12px;box-shadow:0 2px 8px #0000001a;border:1px solid var(--border-color);transition:all .2s;overflow:hidden;width:100%;box-sizing:border-box;display:flex;flex-direction:column}.weight-entry-container .student-card:hover{box-shadow:0 4px 12px #00000026}.weight-entry-container .student-card.has-weight{border-left:4px solid #8E44AD}.weight-entry-container .student-header{background:var(--bg-light);padding:16px;border-bottom:1px solid var(--border-color);display:flex;justify-content:space-between;align-items:flex-start}.weight-entry-container .student-info{flex:1}.weight-entry-container .student-name{font-size:16px;font-weight:600;color:var(--text-primary);margin:0 0 8px}.weight-entry-container .roll-number{display:flex;align-items:center;gap:6px;font-size:14px;color:var(--text-secondary);font-weight:500}.weight-entry-container .roll-number i{color:#9b59b6}.weight-entry-container .status-badge{display:flex;align-items:center}.weight-entry-container .badge-completed,.weight-entry-container .badge-pending{display:flex;align-items:center;gap:6px;padding:6px 12px;border-radius:12px;font-size:12px;font-weight:600}.weight-entry-container .badge-completed{background:#8e44ad1a;color:#8e44ad}.weight-entry-container .badge-pending{background:#e67e221a;color:#e67e22}.weight-entry-container .weight-input-section{padding:20px;overflow:visible;width:100%;box-sizing:border-box}.weight-entry-container .weight-input-wrapper{display:flex;flex-direction:column;gap:12px;padding:16px;background:var(--bg-light);border-radius:8px;border:2px solid var(--border-color);transition:all .2s;box-sizing:border-box;width:100%}.weight-entry-container .weight-input-wrapper .input-label-row{display:flex;align-items:center;gap:8px}.weight-entry-container .weight-input-wrapper .input-field-row{display:flex;align-items:center;gap:12px;width:100%;box-sizing:border-box}.weight-entry-container .weight-input-wrapper:focus-within{border-color:#9b59b6;background:var(--bg-white)}.weight-entry-container .weight-input-wrapper i{color:#9b59b6;font-size:20px;flex-shrink:0}.weight-entry-container .weight-input-wrapper label{font-weight:500;color:var(--text-primary);font-size:14px;min-width:fit-content;white-space:nowrap;flex-shrink:0}.weight-entry-container .weight-input-wrapper input{flex:1;padding:10px 16px;border:2px solid #BDC3C7;border-radius:6px;font-size:16px;font-weight:600;text-align:center;background:#fff;color:#2c3e50;transition:all .2s;box-shadow:inset 0 1px 3px #0000001a;max-width:100%;box-sizing:border-box}.weight-entry-container .weight-input-wrapper input:focus{outline:none;border-color:#9b59b6;box-shadow:0 0 0 3px #9b59b61a,inset 0 1px 3px #0000001a;background:#fff}.weight-entry-container .weight-input-wrapper input.filled{border-color:#27ae60;background:#fff;box-shadow:0 0 0 2px #27ae601a,inset 0 1px 3px #0000001a}.weight-entry-container .weight-input-wrapper input::placeholder{color:var(--text-muted);font-size:14px;font-weight:400}.weight-entry-container .unit-text{font-weight:600;color:#9b59b6;font-size:14px;min-width:fit-content;white-space:nowrap;flex-shrink:0}.weight-entry-container .loading-state{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:60px 20px;background:var(--bg-white);border-radius:12px;box-shadow:0 2px 8px #0000001a}.weight-entry-container .spinner{width:48px;height:48px;border:4px solid var(--bg-light);border-top-color:#9b59b6;border-radius:50%;animation:spin 1s linear infinite;margin-bottom:16px}.weight-entry-container .loading-state p{font-size:16px;color:var(--text-secondary)}@media (max-width: 768px){.weight-entry-container{padding:12px}.weight-entry-header h1{font-size:22px}.weight-entry-container .filters-card{padding:16px}.weight-entry-container .students-list{grid-template-columns:1fr}.weight-entry-container .steps-container{flex-direction:column;gap:20px}.weight-entry-container .step-item{max-width:100%}}.message-class-teacher-container{padding:20px;width:100%;margin:0 auto}.message-class-teacher-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:24px}.message-class-teacher-header h1{font-size:28px;font-weight:600;color:var(--text-primary);display:flex;align-items:center;gap:12px}.message-class-teacher-header h1 i{color:#4a90e2}.select-all-btn{padding:10px 24px;background:var(--bg-white);color:var(--text-primary);border:2px solid #4A90E2;border-radius:8px;font-size:14px;font-weight:500;cursor:pointer;display:flex;align-items:center;gap:8px;transition:all .2s}.select-all-btn:hover{background:#4a90e21a}.select-all-btn i{color:#4a90e2;font-size:18px}.teachers-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(350px,1fr));gap:20px}.teacher-card{background:var(--bg-white);border-radius:12px;padding:20px;box-shadow:0 2px 8px #0000001a;border:2px solid var(--border-color);transition:all .2s;cursor:pointer;display:flex;align-items:center;gap:16px}.teacher-card:hover{box-shadow:0 4px 16px #00000026;transform:translateY(-2px)}.teacher-card.selected{border-color:#4a90e2;background:#4a90e20d}.teacher-avatar{width:60px;height:60px;border-radius:50%;background:var(--bg-light);display:flex;align-items:center;justify-content:center;flex-shrink:0}.teacher-avatar i{font-size:32px;color:#7f8c8d}.teacher-card.selected .teacher-avatar i{color:#4a90e2}.teacher-name{font-size:18px;font-weight:600;color:var(--text-primary);margin:0 0 8px}.teacher-card.selected .teacher-name{color:#4a90e2}.class-info{display:flex;align-items:center;gap:6px;font-size:14px;color:var(--text-secondary)}.class-info i{color:#95a5a6}.teacher-card.selected .checkbox-container i{color:#4a90e2}.empty-state-icon{font-size:64px;color:#4a90e2;margin-bottom:20px;opacity:.3}.empty-state .refresh-btn{margin-top:24px;padding:12px 32px;background:#4a90e2;color:#fff;border:none;border-radius:8px;font-size:16px;font-weight:500;cursor:pointer;display:inline-flex;align-items:center;gap:8px;transition:all .2s}.empty-state .refresh-btn:hover{background:#357abd;transform:translateY(-2px);box-shadow:0 4px 12px #4a90e24d}.selected-count{display:flex;align-items:center;gap:8px;padding:12px 16px;background:#4a90e21a;border-radius:8px;margin-bottom:20px;color:#4a90e2;font-weight:500}@media (max-width: 768px){.message-class-teacher-container{padding:16px}.message-class-teacher-header h1{font-size:24px}.teachers-list{grid-template-columns:1fr}.teacher-card{padding:16px}.teacher-avatar{width:50px;height:50px}.teacher-avatar i{font-size:26px}.modal-content{max-width:100%}.modal-header,.modal-body,.modal-footer{padding:16px}.modal-footer{flex-direction:column}.cancel-btn,.send-btn{width:100%;justify-content:center}}.message-staff-container{padding:20px;width:100%;margin:0 auto}.message-staff-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:24px}.message-staff-header h1{font-size:28px;font-weight:600;color:var(--text-primary);display:flex;align-items:center;gap:12px}.message-staff-header h1 i{color:#e67e22}.compose-message-container{display:flex;justify-content:center;margin-bottom:20px}.compose-message-btn{padding:12px 32px;background:var(--primary-color);color:#fff;border:none;border-radius:8px;font-size:16px;font-weight:500;cursor:pointer;display:flex;align-items:center;gap:10px;transition:all .2s}.compose-message-btn:hover{background:var(--primary-dark);transform:translateY(-2px);box-shadow:0 4px 12px #b222224d}.select-all-container{display:flex;justify-content:center;margin-bottom:20px}.select-all-btn{padding:10px 24px;background:var(--bg-white);color:var(--text-primary);border:2px solid #E67E22;border-radius:8px;font-size:14px;font-weight:500;cursor:pointer;display:flex;align-items:center;gap:8px;transition:all .2s}.select-all-btn:hover{background:#e67e221a}.select-all-btn i{color:#e67e22;font-size:18px}.staffs-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(350px,1fr));gap:20px}.staff-card{background:var(--bg-white);border-radius:12px;padding:20px;box-shadow:0 2px 8px #0000001a;border:2px solid var(--border-color);transition:all .2s;cursor:pointer;display:flex;align-items:center;gap:16px}.staff-card:hover{box-shadow:0 4px 16px #00000026;transform:translateY(-2px)}.staff-card.selected{border-color:#e67e22;background:#e67e220d}.staff-avatar{width:60px;height:60px;border-radius:50%;background:var(--bg-light);display:flex;align-items:center;justify-content:center;flex-shrink:0}.staff-avatar i{font-size:32px;color:#7f8c8d}.staff-card.selected .staff-avatar i{color:#e67e22}.staff-info{flex:1}.staff-name{font-size:18px;font-weight:600;color:var(--text-primary);margin:0 0 8px}.staff-card.selected .staff-name{color:#e67e22}.role-info{display:flex;align-items:center;gap:6px;font-size:14px;color:var(--text-secondary)}.role-info i{color:#95a5a6}.checkbox-container{flex-shrink:0}.checkbox-container i{font-size:28px;color:#bdc3c7}.staff-card.selected .checkbox-container i{color:#e67e22}.empty-state-icon{font-size:64px;color:#e67e22;margin-bottom:20px;opacity:.3}.empty-state p{font-size:16px;color:var(--text-secondary);margin-bottom:8px;max-width:600px;margin-left:auto;margin-right:auto;line-height:1.5}.empty-state .refresh-btn{margin-top:24px;padding:12px 32px;background:#e67e22;color:#fff;border:none;border-radius:8px;font-size:16px;font-weight:500;cursor:pointer;display:inline-flex;align-items:center;gap:8px;transition:all .2s}.empty-state .refresh-btn:hover{background:#d35400;transform:translateY(-2px);box-shadow:0 4px 12px #e67e224d}.loading-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#0000004d;display:flex;align-items:center;justify-content:center;z-index:9999}.spinner{width:40px;height:40px;border:4px solid var(--border-color);border-top-color:var(--primary-color);border-radius:50%;animation:spin 1s linear infinite}.modal-content{background:var(--bg-white);border-radius:12px;width:100%;max-width:600px;max-height:90vh;overflow:hidden;display:flex;flex-direction:column;box-shadow:0 8px 32px #0003}.modal-header h2{font-size:20px;font-weight:600;color:var(--text-primary);margin:0;display:flex;align-items:center;gap:10px}.modal-header h2 i{color:var(--primary-color)}.modal-close-btn{background:none;border:none;cursor:pointer;padding:8px;color:var(--text-secondary);font-size:20px;transition:all .2s}.modal-close-btn:hover{color:var(--text-primary);background:var(--bg-light);border-radius:4px}.selected-count{display:flex;align-items:center;gap:8px;padding:12px 16px;background:#e67e221a;border-radius:8px;margin-bottom:20px;color:#e67e22;font-weight:500}.form-group label{display:flex;align-items:center;gap:8px;font-weight:500;color:var(--text-primary);font-size:14px}.form-group label i{color:var(--primary-color)}.form-group textarea{width:100%;padding:12px;border:2px solid var(--border-color);border-radius:8px;font-size:14px;font-family:inherit;background:var(--bg-white);color:var(--text-primary);transition:all .2s;resize:vertical;min-height:150px;line-height:1.5}.form-group textarea:focus{outline:none;border-color:var(--primary-color);box-shadow:0 0 0 3px #b222221a}.form-group textarea:disabled{background-color:var(--bg-light);cursor:not-allowed;opacity:.6}.form-group textarea::placeholder{color:var(--text-muted)}.cancel-btn,.send-btn{padding:10px 24px;border:none;border-radius:8px;font-size:14px;font-weight:500;cursor:pointer;display:flex;align-items:center;gap:8px;transition:all .2s}.cancel-btn{background:var(--bg-light);color:var(--text-primary)}.cancel-btn:hover:not(:disabled){background:#d0d0d0}.send-btn{background:var(--primary-color);color:#fff;min-width:160px}.send-btn:hover:not(:disabled){background:var(--primary-dark);transform:translateY(-2px);box-shadow:0 4px 12px #b222224d}.cancel-btn:disabled,.send-btn:disabled{cursor:not-allowed;opacity:.6}@media (max-width: 768px){.message-staff-container{padding:16px}.message-staff-header h1{font-size:24px}.staffs-list{grid-template-columns:1fr}.staff-card{padding:16px}.staff-avatar{width:50px;height:50px}.staff-avatar i{font-size:26px}.modal-content{max-width:100%}.modal-header,.modal-body,.modal-footer{padding:16px}.modal-footer{flex-direction:column}.cancel-btn,.send-btn{width:100%;justify-content:center}}.message-students-container{padding:20px;width:100%;margin:0 auto;min-height:100vh;background:linear-gradient(135deg,#f5f7fa,#c3cfe2)}.message-students-header{text-align:center;margin-bottom:30px;padding:20px;background:#fff;border-radius:12px;box-shadow:0 2px 8px #0000001a}.message-students-header h1{color:var(--text-dark);font-size:32px;margin-bottom:10px;display:flex;align-items:center;justify-content:center;gap:15px}.message-students-header h1 i{color:#28a745;font-size:36px}.message-students-header p{color:var(--text-light);font-size:16px;margin:0}.message-students-content{background:#fff;border-radius:12px;padding:30px;box-shadow:0 4px 6px #0000001a}.selector-card{margin-bottom:30px}.selector-label{display:flex;align-items:center;gap:10px;font-weight:600;color:var(--text-dark);margin-bottom:10px;font-size:16px}.selector-label i{color:#28a745;font-size:18px}.selector-dropdown{width:100%;padding:12px 16px;border:2px solid #e0e0e0;border-radius:8px;font-size:16px;color:var(--text-dark);background:#fff;cursor:pointer;transition:all .3s ease}.selector-dropdown:hover{border-color:#28a745}.selector-dropdown:focus{outline:none;border-color:#28a745;box-shadow:0 0 0 3px #28a7451a}.selector-dropdown:disabled{background-color:#f5f5f5;cursor:not-allowed;opacity:.6}.empty-state{text-align:center;padding:60px 20px;background:linear-gradient(135deg,#e8f5e9,#c8e6c9);border-radius:12px;margin-top:30px}.empty-icon{font-size:80px;color:#28a745;margin-bottom:20px}.empty-state h3{color:#28a745;font-size:24px;margin-bottom:10px;font-weight:600}.loading-state i{font-size:48px;color:#28a745;margin-bottom:15px}.write-message-btn{background:linear-gradient(135deg,#28a745,#20c997);color:#fff;border:none;padding:12px 24px;border-radius:8px;font-size:16px;font-weight:600;cursor:pointer;display:flex;align-items:center;gap:10px;transition:all .3s ease;box-shadow:0 4px 6px #28a7454d}.write-message-btn:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 6px 12px #28a74566}.select-all-btn{background:#fff;color:#28a745;border:2px solid #28a745;padding:12px 24px;border-radius:8px;font-size:16px;font-weight:600;cursor:pointer;display:flex;align-items:center;gap:10px;transition:all .3s ease}.select-all-btn:hover{background:#28a745;color:#fff;transform:translateY(-2px);box-shadow:0 4px 8px #28a7454d}.select-all-btn.selected{background:#28a745;color:#fff}.students-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:20px;margin-top:20px}.student-card{background:#fff;border:2px solid #e0e0e0;border-radius:10px;padding:20px;cursor:pointer;transition:all .3s ease;display:flex;justify-content:space-between;align-items:center;box-shadow:0 2px 4px #0000000d}.student-card:hover{transform:translateY(-4px);box-shadow:0 6px 12px #00000026;border-color:#28a745}.student-card.selected{background:linear-gradient(135deg,#e8f5e9,#c8e6c9);border-color:#28a745;box-shadow:0 4px 8px #28a74533}.student-name i{color:#28a745;font-size:20px}.student-card.selected .student-checkbox{color:#28a745}.modal-header{padding:25px 30px;border-bottom:2px solid #e0e0e0;display:flex;justify-content:space-between;align-items:center;background:linear-gradient(135deg,#e8f5e9,#c8e6c9);border-radius:16px 16px 0 0}.modal-header h2{margin:0;color:#28a745;font-size:24px;font-weight:600;display:flex;align-items:center;gap:12px}.close-btn:hover{background:#0000001a;color:#28a745;transform:rotate(90deg)}.selected-count{background:linear-gradient(135deg,#e8f5e9,#c8e6c9);color:#28a745;padding:12px 20px;border-radius:8px;margin-bottom:20px;font-weight:600;font-size:16px;display:flex;align-items:center;gap:10px;border:2px solid #28a745}.message-textarea{width:100%;padding:15px;border:2px solid #e0e0e0;border-radius:8px;font-size:16px;font-family:inherit;resize:vertical;min-height:150px;transition:all .3s ease}.message-textarea:focus{outline:none;border-color:#28a745;box-shadow:0 0 0 3px #28a7451a}.modal-footer{padding:20px 30px;border-top:2px solid #e0e0e0;display:flex;justify-content:flex-end;gap:15px;background:#f8f9fa;border-radius:0 0 16px 16px}.send-btn{background:linear-gradient(135deg,#28a745,#20c997);color:#fff;box-shadow:0 4px 6px #28a7454d}.send-btn:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 6px 12px #28a74566}@media (max-width: 768px){.message-students-container{padding:15px}.message-students-header h1{font-size:24px;flex-direction:column;gap:10px}.message-students-header h1 i{font-size:28px}.message-students-content{padding:20px}.students-grid{grid-template-columns:1fr;gap:15px}.action-buttons{flex-direction:column;align-items:stretch}.write-message-btn,.select-all-btn{width:100%;justify-content:center}.modal-content{width:95%;margin:10px}.modal-header h2{font-size:20px}.modal-body{padding:20px}.modal-footer{flex-direction:column;padding:15px 20px}.cancel-btn,.send-btn{width:100%}}@media (max-width: 480px){.message-students-header{padding:15px}.message-students-header h1{font-size:20px}.message-students-header p{font-size:14px}.student-name{font-size:16px}.empty-icon{font-size:60px}.empty-state h3{font-size:20px}.empty-state p{font-size:14px}}.birthday-message-container{padding:20px;width:100%;margin:0 auto;min-height:100vh;background:linear-gradient(135deg,#fff5e1,#ffe4b5)}.birthday-message-header{text-align:center;margin-bottom:30px;padding:25px;background:linear-gradient(135deg,#ff6b35,#ff8c42);border-radius:12px;box-shadow:0 4px 12px #ff6b354d;color:#fff}.birthday-message-header h1{font-size:32px;margin-bottom:10px;display:flex;align-items:center;justify-content:center;gap:15px;color:#fff}.birthday-message-header h1 i{font-size:36px;animation:bounce 2s ease-in-out infinite}@keyframes bounce{0%,to{transform:translateY(0)}50%{transform:translateY(-10px)}}.birthday-message-header p{font-size:16px;margin:0;opacity:.95}.birthday-message-content{background:#fff;border-radius:12px;padding:30px;box-shadow:0 4px 6px #0000001a}.loading-state i{font-size:48px;color:#ff6b35;margin-bottom:15px}.write-message-btn{background:linear-gradient(135deg,#ff6b35,#ff8c42);color:#fff;border:none;padding:12px 24px;border-radius:8px;font-size:16px;font-weight:600;cursor:pointer;display:flex;align-items:center;gap:10px;transition:all .3s ease;box-shadow:0 4px 6px #ff6b354d}.write-message-btn:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 6px 12px #ff6b3566}.select-all-btn,.refresh-btn{background:#fff;color:#ff6b35;border:2px solid #FF6B35;padding:12px 24px;border-radius:8px;font-size:16px;font-weight:600;cursor:pointer;display:flex;align-items:center;gap:10px;transition:all .3s ease}.select-all-btn:hover,.refresh-btn:hover:not(:disabled){background:#ff6b35;color:#fff;transform:translateY(-2px);box-shadow:0 4px 8px #ff6b354d}.select-all-btn.selected{background:#ff6b35;color:#fff}.students-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(350px,1fr));gap:20px;margin-top:20px}.student-card{background:#fff;border:2px solid #FFE4B5;border-radius:12px;padding:20px;cursor:pointer;transition:all .3s ease;display:flex;justify-content:space-between;align-items:center;box-shadow:0 2px 4px #ff6b351a;position:relative;overflow:hidden}.student-card:before{content:"🎉";position:absolute;top:-10px;right:-10px;font-size:40px;opacity:.1;transform:rotate(15deg)}.student-card:hover{transform:translateY(-4px);box-shadow:0 6px 12px #ff6b3533;border-color:#ff6b35}.student-card.selected{background:linear-gradient(135deg,#fff5e1,#ffe4b5);border-color:#ff6b35;box-shadow:0 4px 8px #ff6b354d}.birthday-icon{font-size:32px;color:#ff6b35;margin-right:15px;animation:pulse 2s ease-in-out infinite}@keyframes pulse{0%,to{transform:scale(1)}50%{transform:scale(1.1)}}.student-info{flex:1}.student-name{font-size:18px;font-weight:600;color:var(--text-dark);margin-bottom:8px;display:flex;align-items:center;gap:10px}.student-name i{color:#ff6b35;font-size:20px}.student-roll{font-size:14px;color:var(--text-light);font-weight:500}.student-checkbox{font-size:28px;color:#ccc;transition:all .3s ease}.student-card.selected .student-checkbox{color:#ff6b35}.student-checkbox i{transition:transform .3s ease}.student-card:hover .student-checkbox i{transform:scale(1.1)}.empty-state{text-align:center;padding:60px 20px;background:linear-gradient(135deg,#fff5e1,#ffe4b5);border-radius:12px;margin-top:30px}.empty-icon{font-size:80px;color:#ffb74d;margin-bottom:20px}.empty-state h3{color:#ff6b35;font-size:24px;margin-bottom:10px;font-weight:600}.refresh-button{margin-top:20px;background:linear-gradient(135deg,#ff6b35,#ff8c42);color:#fff;border:none;padding:12px 24px;border-radius:25px;font-size:16px;font-weight:600;cursor:pointer;display:inline-flex;align-items:center;gap:10px;transition:all .3s ease;box-shadow:0 4px 6px #ff6b354d}.refresh-button:hover{transform:translateY(-2px);box-shadow:0 6px 12px #ff6b3566}.modal-content{background:#fff;border-radius:16px;width:90%;max-width:700px;max-height:90vh;overflow:auto;box-shadow:0 20px 60px #0000004d;animation:slideUp .3s ease}.modal-header{padding:25px 30px;border-bottom:2px solid #FFE4B5;display:flex;justify-content:space-between;align-items:center;background:linear-gradient(135deg,#fff5e1,#ffe4b5);border-radius:16px 16px 0 0}.modal-header h2{margin:0;color:#ff6b35;font-size:24px;font-weight:600;display:flex;align-items:center;gap:12px}.close-btn:hover{background:#0000001a;color:#ff6b35;transform:rotate(90deg)}.selected-count{background:linear-gradient(135deg,#fff5e1,#ffe4b5);color:#ff6b35;padding:12px 20px;border-radius:8px;margin-bottom:20px;font-weight:600;font-size:16px;display:flex;align-items:center;gap:10px;border:2px solid #FF6B35}.birthday-suggestions{margin-bottom:20px;padding:15px;background:#f8f9fa;border-radius:8px;border-left:4px solid #FF6B35}.suggestions-label{font-size:14px;color:#555;font-weight:600;margin-bottom:10px;display:flex;align-items:center;gap:8px}.suggestions-label i{color:#ffb74d}.suggestion-chips{display:flex;flex-wrap:wrap;gap:10px}.suggestion-chip{background:#fff;color:#ff6b35;border:2px solid #FF6B35;padding:8px 16px;border-radius:20px;font-size:14px;font-weight:500;cursor:pointer;display:flex;align-items:center;gap:6px;transition:all .3s ease}.suggestion-chip:hover{background:#ff6b35;color:#fff;transform:translateY(-2px);box-shadow:0 4px 8px #ff6b354d}.message-textarea{width:100%;padding:15px;border:2px solid #FFE4B5;border-radius:8px;font-size:16px;font-family:inherit;resize:vertical;min-height:150px;transition:all .3s ease}.message-textarea:focus{outline:none;border-color:#ff6b35;box-shadow:0 0 0 3px #ff6b351a}.modal-footer{padding:20px 30px;border-top:2px solid #FFE4B5;display:flex;justify-content:flex-end;gap:15px;background:#f8f9fa;border-radius:0 0 16px 16px}.cancel-btn,.send-btn{padding:12px 24px;border:none;border-radius:8px;font-size:16px;font-weight:600;cursor:pointer;display:flex;align-items:center;gap:8px;transition:all .3s ease;min-width:180px;justify-content:center}.send-btn{background:linear-gradient(135deg,#ff6b35,#ff8c42);color:#fff;box-shadow:0 4px 6px #ff6b354d}.send-btn:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 6px 12px #ff6b3566}@media (max-width: 768px){.birthday-message-container{padding:15px}.birthday-message-header h1{font-size:24px;flex-direction:column;gap:10px}.birthday-message-header h1 i{font-size:28px}.birthday-message-content{padding:20px}.students-grid{grid-template-columns:1fr;gap:15px}.action-buttons{flex-direction:column;align-items:stretch}.write-message-btn,.select-all-btn,.refresh-btn{width:100%;justify-content:center}.modal-content{width:95%;margin:10px}.modal-header h2{font-size:20px}.modal-body{padding:20px}.modal-footer{flex-direction:column;padding:15px 20px}.cancel-btn,.send-btn{width:100%}.suggestion-chips{flex-direction:column}.suggestion-chip{justify-content:center}}@media (max-width: 480px){.birthday-message-header{padding:15px}.birthday-message-header h1{font-size:20px}.birthday-message-header p{font-size:14px}.student-name{font-size:16px}.empty-icon{font-size:60px}.empty-state h3{font-size:20px}.empty-state p{font-size:14px}}.subject-teacher-container{padding:20px;width:100%;margin:0 auto;min-height:100vh;background:linear-gradient(135deg,#f4f0f8,#e8dff5)}.subject-teacher-header{text-align:center;margin-bottom:30px;padding:25px;background:linear-gradient(135deg,#8e44ad,#9b59b6);border-radius:12px;box-shadow:0 4px 12px #8e44ad4d;color:#fff}.subject-teacher-header h1{font-size:32px;margin-bottom:10px;display:flex;align-items:center;justify-content:center;gap:15px;color:#fff}.subject-teacher-header h1 i{font-size:36px}.subject-teacher-header p{font-size:16px;margin:0;opacity:.95}.subject-teacher-content{background:#fff;border-radius:12px;padding:30px;box-shadow:0 4px 6px #0000001a}.loading-state{text-align:center;padding:60px 20px;color:var(--text-light)}.loading-state i{font-size:48px;color:#8e44ad;margin-bottom:15px}.loading-state p{font-size:18px;color:var(--text-dark)}.action-buttons{display:flex;justify-content:space-between;align-items:center;margin-bottom:25px;gap:15px;flex-wrap:wrap}.write-message-btn{background:linear-gradient(135deg,#8e44ad,#9b59b6);color:#fff;border:none;padding:12px 24px;border-radius:8px;font-size:16px;font-weight:600;cursor:pointer;display:flex;align-items:center;gap:10px;transition:all .3s ease;box-shadow:0 4px 6px #8e44ad4d;min-width:180px;justify-content:center}.write-message-btn:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 6px 12px #8e44ad66}.write-message-btn:active:not(:disabled){transform:translateY(0)}.write-message-btn:disabled{background:#ccc;cursor:not-allowed;box-shadow:none}.select-all-btn,.refresh-btn{background:#fff;color:#8e44ad;border:2px solid #8E44AD;padding:12px 24px;border-radius:8px;font-size:16px;font-weight:600;cursor:pointer;display:flex;align-items:center;gap:10px;transition:all .3s ease}.select-all-btn:hover,.refresh-btn:hover:not(:disabled){background:#8e44ad;color:#fff;transform:translateY(-2px);box-shadow:0 4px 8px #8e44ad4d}.select-all-btn.selected{background:#8e44ad;color:#fff}.refresh-btn:disabled{opacity:.5;cursor:not-allowed}.teachers-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(350px,1fr));gap:20px;margin-top:20px}.teacher-card{background:#fff;border:2px solid #E8DFF5;border-radius:12px;padding:20px;cursor:pointer;transition:all .3s ease;display:flex;justify-content:space-between;align-items:center;box-shadow:0 2px 4px #8e44ad1a}.teacher-card:hover{transform:translateY(-4px);box-shadow:0 6px 12px #8e44ad33;border-color:#8e44ad}.teacher-card.selected{background:linear-gradient(135deg,#f4f0f8,#e8dff5);border-color:#8e44ad;border-width:2px;box-shadow:0 4px 8px #8e44ad4d}.teacher-avatar{width:48px;height:48px;border-radius:24px;background:linear-gradient(135deg,#f4f0f8,#e8dff5);display:flex;align-items:center;justify-content:center;margin-right:15px;transition:all .3s ease}.teacher-card.selected .teacher-avatar{background:linear-gradient(135deg,#8e44ad,#9b59b6)}.teacher-avatar i{font-size:24px;color:#8e44ad}.teacher-card.selected .teacher-avatar i{color:#fff}.teacher-info{flex:1}.teacher-name{font-size:18px;font-weight:600;color:var(--text-dark);margin-bottom:8px;display:flex;align-items:center;gap:10px}.teacher-name i{color:#8e44ad;font-size:18px}.teacher-role{font-size:14px;color:var(--text-light);font-weight:500;display:flex;align-items:center;gap:6px}.teacher-role i{color:#95a5a6;font-size:14px}.teacher-checkbox{font-size:28px;color:#ccc;transition:all .3s ease}.teacher-card.selected .teacher-checkbox{color:#8e44ad}.teacher-checkbox i{transition:transform .3s ease}.teacher-card:hover .teacher-checkbox i{transform:scale(1.1)}.empty-state{text-align:center;padding:60px 20px;background:linear-gradient(135deg,#f4f0f8,#e8dff5);border-radius:12px;margin-top:30px}.empty-icon{font-size:80px;color:#8e44ad;margin-bottom:20px}.empty-state h3{color:#8e44ad;font-size:24px;margin-bottom:10px;font-weight:600}.empty-state p{color:#555;font-size:16px;line-height:1.6;margin-bottom:8px}.empty-hint{font-size:14px!important;color:#777!important;font-style:italic}.refresh-button{margin-top:20px;background:linear-gradient(135deg,#8e44ad,#9b59b6);color:#fff;border:none;padding:12px 24px;border-radius:25px;font-size:16px;font-weight:600;cursor:pointer;display:inline-flex;align-items:center;gap:10px;transition:all .3s ease;box-shadow:0 4px 6px #8e44ad4d}.refresh-button:hover{transform:translateY(-2px);box-shadow:0 6px 12px #8e44ad66}.modal-content{background:#fff;border-radius:16px;width:90%;max-width:600px;max-height:90vh;overflow:auto;box-shadow:0 20px 60px #0000004d;animation:slideUp .3s ease}.modal-header{padding:25px 30px;border-bottom:2px solid #E8DFF5;display:flex;justify-content:space-between;align-items:center;background:linear-gradient(135deg,#f4f0f8,#e8dff5);border-radius:16px 16px 0 0}.modal-header h2{margin:0;color:#8e44ad;font-size:24px;font-weight:600;display:flex;align-items:center;gap:12px}.close-btn{background:transparent;border:none;font-size:28px;color:#666;cursor:pointer;padding:5px;line-height:1;transition:all .3s ease;border-radius:50%;width:36px;height:36px;display:flex;align-items:center;justify-content:center}.close-btn:hover{background:#0000001a;color:#8e44ad;transform:rotate(90deg)}.modal-body{padding:30px}.selected-count{background:linear-gradient(135deg,#f4f0f8,#e8dff5);color:#8e44ad;padding:12px 20px;border-radius:8px;margin-bottom:20px;font-weight:600;font-size:16px;display:flex;align-items:center;gap:10px;border:2px solid #8E44AD}.selected-count i{font-size:18px}.message-textarea{width:100%;padding:15px;border:2px solid #E8DFF5;border-radius:8px;font-size:16px;font-family:inherit;resize:vertical;min-height:150px;transition:all .3s ease}.message-textarea:focus{outline:none;border-color:#8e44ad;box-shadow:0 0 0 3px #8e44ad1a}.message-textarea::placeholder{color:#999}.modal-footer{padding:20px 30px;border-top:2px solid #E8DFF5;display:flex;justify-content:flex-end;gap:15px;background:#f8f9fa;border-radius:0 0 16px 16px}.cancel-btn,.send-btn{padding:12px 24px;border:none;border-radius:8px;font-size:16px;font-weight:600;cursor:pointer;display:flex;align-items:center;gap:8px;transition:all .3s ease;min-width:160px;justify-content:center}.cancel-btn:hover{background:#f5f5f5;border-color:#999;transform:translateY(-2px);box-shadow:0 4px 8px #0000001a}.send-btn{background:linear-gradient(135deg,#8e44ad,#9b59b6);color:#fff;box-shadow:0 4px 6px #8e44ad4d}.send-btn:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 6px 12px #8e44ad66}.send-btn:disabled{background:#ccc;cursor:not-allowed;box-shadow:none}.send-btn i.fa-spinner{animation:spin 1s linear infinite}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@media (max-width: 768px){.subject-teacher-container{padding:15px}.subject-teacher-header h1{font-size:24px;flex-direction:column;gap:10px}.subject-teacher-header h1 i{font-size:28px}.subject-teacher-content{padding:20px}.teachers-grid{grid-template-columns:1fr;gap:15px}.action-buttons{flex-direction:column;align-items:stretch}.write-message-btn,.select-all-btn,.refresh-btn{width:100%;justify-content:center}.modal-content{width:95%;margin:10px}.modal-header h2{font-size:20px}.modal-body{padding:20px}.modal-footer{flex-direction:column;padding:15px 20px}.cancel-btn,.send-btn{width:100%}}@media (max-width: 480px){.subject-teacher-header{padding:15px}.subject-teacher-header h1{font-size:20px}.subject-teacher-header p{font-size:14px}.teacher-name{font-size:16px}.empty-icon{font-size:60px}.empty-state h3{font-size:20px}.empty-state p{font-size:14px}}.message-whom-container{padding:20px;width:100%;margin:0 auto;min-height:100vh;background:linear-gradient(135deg,#f8f9fa,#e9ecef)}.message-whom-header{text-align:center;margin-bottom:40px;padding:40px 20px;background:#fff;border-radius:16px;box-shadow:0 4px 12px #00000014}.header-icon-wrapper{display:inline-flex;align-items:center;justify-content:center;width:80px;height:80px;background:linear-gradient(135deg,#4f8cff,#3b7ce8);border-radius:50%;margin-bottom:20px;box-shadow:0 4px 12px #4f8cff4d}.header-icon-wrapper i{font-size:40px;color:#fff}.message-whom-header h1{font-size:32px;font-weight:700;color:#1a1a1a;margin-bottom:10px}.message-whom-header p{font-size:18px;color:#666;line-height:1.5;max-width:500px;margin:0 auto}.message-options-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(350px,1fr));gap:20px}.message-option-card{background:#fff;border-radius:16px;padding:24px;display:flex;align-items:center;gap:16px;cursor:pointer;transition:all .3s ease;border:1px solid #f0f0f0;box-shadow:0 2px 8px #00000014}.message-option-card:hover{transform:translateY(-4px);box-shadow:0 8px 20px #0000001f;border-color:#4f8cff}.message-option-card:active{transform:translateY(-2px)}.option-icon-container{width:56px;height:56px;border-radius:28px;display:flex;align-items:center;justify-content:center;flex-shrink:0;transition:all .3s ease}.message-option-card:hover .option-icon-container{transform:scale(1.1)}.option-icon-container i{font-size:28px}.option-content{flex:1}.option-content h3{font-size:18px;font-weight:600;color:#1a1a1a;margin:0 0 6px}.option-content p{font-size:14px;color:#666;margin:0;line-height:1.4}.option-arrow{color:#ccc;font-size:20px;flex-shrink:0;transition:all .3s ease}.message-option-card:hover .option-arrow{color:#4f8cff;transform:translate(4px)}@media (max-width: 768px){.message-whom-container{padding:15px}.message-whom-header{padding:30px 20px;margin-bottom:30px}.header-icon-wrapper{width:60px;height:60px;margin-bottom:15px}.header-icon-wrapper i{font-size:30px}.message-whom-header h1{font-size:26px}.message-whom-header p{font-size:16px}.message-options-grid{grid-template-columns:1fr;gap:15px}.message-option-card{padding:20px}.option-icon-container{width:48px;height:48px}.option-icon-container i{font-size:24px}.option-content h3{font-size:16px}.option-content p{font-size:13px}}@media (max-width: 480px){.message-whom-header{padding:25px 15px}.message-whom-header h1{font-size:22px}.message-whom-header p{font-size:14px}.message-option-card{padding:16px;gap:12px}.option-icon-container{width:44px;height:44px}.option-icon-container i{font-size:20px}}@keyframes fadeInUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.message-option-card{animation:fadeInUp .5s ease-out}.message-option-card:nth-child(1){animation-delay:.1s}.message-option-card:nth-child(2){animation-delay:.2s}.message-option-card:nth-child(3){animation-delay:.3s}.message-option-card:nth-child(4){animation-delay:.4s}.message-option-card:nth-child(5){animation-delay:.5s}.online-class-container{padding:0;min-height:calc(100vh - 60px);background:linear-gradient(135deg,#667eea,#764ba2)}.online-class-header{background:#fff;padding:30px;display:flex;justify-content:space-between;align-items:center;box-shadow:0 2px 8px #0000001a}.online-class-header h1{font-size:28px;font-weight:700;color:#2c3e50;margin:0;display:flex;align-items:center;gap:12px}.online-class-header h1 i{color:#667eea;font-size:32px}.add-class-btn{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;border:none;padding:12px 24px;border-radius:8px;font-size:16px;font-weight:600;cursor:pointer;display:flex;align-items:center;gap:8px;transition:all .3s ease;box-shadow:0 4px 12px #667eea66}.add-class-btn:hover{transform:translateY(-2px);box-shadow:0 6px 16px #667eea80}.online-class-content{padding:30px}.loading-state{text-align:center;padding:80px 20px;background:#fff;border-radius:12px;box-shadow:0 4px 12px #0000001a}.loading-state i{font-size:48px;color:#667eea;margin-bottom:20px}.loading-state p{font-size:18px;color:#555}.empty-state{text-align:center;padding:80px 40px;background:#fff;border-radius:12px;box-shadow:0 4px 12px #0000001a}.empty-state h3{font-size:26px;font-weight:700;color:#333;margin-bottom:12px}.empty-state p{font-size:16px;color:#666;line-height:1.6;margin-bottom:10px}.empty-hint{font-size:14px;color:#999;font-style:italic;margin-bottom:32px}.create-class-button{background:#667eea1a;color:#667eea;border:2px solid #667eea;padding:14px 28px;border-radius:25px;font-size:16px;font-weight:600;cursor:pointer;display:inline-flex;align-items:center;gap:10px;transition:all .3s ease}.create-class-button:hover{background:#667eea;color:#fff;transform:translateY(-2px);box-shadow:0 6px 16px #667eea66}.classes-list{background:#fff;border-radius:12px;box-shadow:0 4px 12px #0000001a;overflow:hidden}.list-header{padding:20px 30px;background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;display:flex;align-items:center;gap:12px;font-size:18px;font-weight:600}.list-header i{font-size:24px}.list-header span:first-of-type{flex:1}.class-count{background:#fff3;padding:4px 12px;border-radius:12px;font-size:14px}.classes-grid{padding:30px;display:grid;grid-template-columns:repeat(auto-fill,minmax(400px,1fr));gap:24px}.class-card{background:#fff;border:2px solid #e0e0e0;border-radius:12px;padding:24px;transition:all .3s ease;box-shadow:0 2px 8px #00000014}.class-card:hover{transform:translateY(-4px);box-shadow:0 8px 20px #00000026;border-color:#667eea}.class-card-header{display:flex;justify-content:space-between;align-items:start;margin-bottom:20px;padding-bottom:16px;border-bottom:2px solid #f5f7fa}.class-card-header h3{font-size:18px;font-weight:600;color:#2c3e50;margin:0;flex:1}.class-actions{display:flex;gap:8px}.edit-btn,.delete-btn{width:36px;height:36px;border-radius:8px;border:none;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .3s ease;font-size:16px}.edit-btn{background:#e8f5e9;color:#4caf50}.edit-btn:hover{background:#4caf50;color:#fff;transform:scale(1.1)}.delete-btn{background:#ffebee;color:#f44336}.delete-btn:hover{background:#f44336;color:#fff;transform:scale(1.1)}.class-details{display:flex;flex-direction:column;gap:12px;margin-bottom:20px}.detail-item{display:flex;align-items:center;gap:10px;font-size:14px;color:#555}.detail-item i{width:20px;color:#667eea;font-size:16px}.class-actions-bottom{display:flex;gap:10px;margin-top:20px;padding-top:16px;border-top:2px solid #f5f7fa}.join-btn{flex:1;background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;border:none;padding:12px 20px;border-radius:8px;font-size:15px;font-weight:600;cursor:pointer;display:flex;align-items:center;justify-content:center;gap:8px;transition:all .3s ease}.join-btn:hover{transform:translateY(-2px);box-shadow:0 6px 16px #667eea66}.modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#0009;display:flex;justify-content:center;align-items:center;z-index:1000;animation:fadeIn .3s ease}.modal-content.large-modal{width:95%;max-width:800px;max-height:90vh;overflow-y:auto}.modal-content{background:#fff;border-radius:16px;box-shadow:0 20px 60px #0000004d;animation:slideUp .3s ease}@keyframes slideUp{0%{transform:translateY(50px);opacity:0}to{transform:translateY(0);opacity:1}}.modal-header{padding:25px 30px;border-bottom:2px solid #e0e0e0;display:flex;justify-content:space-between;align-items:center;background:linear-gradient(135deg,#f5f7fa,#e8ebf0);border-radius:16px 16px 0 0}.modal-header h2{margin:0;color:#667eea;font-size:22px;font-weight:600;display:flex;align-items:center;gap:10px}.close-btn{background:transparent;border:none;font-size:24px;color:#666;cursor:pointer;width:36px;height:36px;display:flex;align-items:center;justify-content:center;border-radius:50%;transition:all .3s ease}.close-btn:hover{background:#0000001a;color:#667eea;transform:rotate(90deg)}.modal-body{padding:30px;max-height:60vh;overflow-y:auto}.form-group label{display:block;font-weight:600;color:#2c3e50;margin-bottom:8px;font-size:14px}.form-control{width:100%;padding:12px;border:2px solid #e0e0e0;border-radius:8px;font-size:14px;transition:all .3s ease}.form-control:focus{outline:none;border-color:#667eea;box-shadow:0 0 0 3px #667eea1a}.checkbox-group{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:12px}.checkbox-label{display:flex;align-items:center;gap:8px;padding:10px;background:#f8f9fa;border-radius:8px;cursor:pointer;transition:all .3s ease}.checkbox-label:hover{background:#e8ebf0}.checkbox-label input[type=checkbox]{width:18px;height:18px;cursor:pointer}.modal-footer{padding:20px 30px;border-top:2px solid #e0e0e0;display:flex;justify-content:flex-end;gap:12px;background:#f8f9fa;border-radius:0 0 16px 16px}.cancel-btn,.save-btn{padding:12px 24px;border:none;border-radius:8px;font-size:15px;font-weight:600;cursor:pointer;display:flex;align-items:center;gap:8px;transition:all .3s ease;min-width:120px;justify-content:center}.cancel-btn{background:#fff;color:#666;border:2px solid #ddd}.cancel-btn:hover{background:#f5f5f5;border-color:#999}.save-btn{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;box-shadow:0 4px 12px #667eea66}.save-btn:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 6px 16px #667eea80}.save-btn:disabled{opacity:.6;cursor:not-allowed}@media (max-width: 768px){.online-class-header{flex-direction:column;align-items:stretch;gap:15px}.online-class-header h1{font-size:24px}.add-class-btn{width:100%;justify-content:center}.classes-grid{grid-template-columns:1fr;padding:20px}.checkbox-group{grid-template-columns:1fr}.modal-footer{flex-direction:column}.cancel-btn,.save-btn{width:100%}}.scholastic-marks-container{padding:0;min-height:calc(100vh - 60px);background:linear-gradient(135deg,#667eea,#764ba2)}.scholastic-marks-header{background:#fff;padding:30px;box-shadow:0 2px 8px #0000001a}.scholastic-marks-header h1{font-size:28px;font-weight:700;color:#2c3e50;margin:0 0 10px;display:flex;align-items:center;gap:12px}.scholastic-marks-header h1 i{color:#667eea;font-size:32px}.scholastic-marks-header p{font-size:15px;color:#666;margin:0}.scholastic-marks-content{padding:30px}.selection-section{margin-bottom:30px}.selection-card{background:#fff;border-radius:12px;box-shadow:0 4px 12px #0000001a;overflow:hidden}.card-header{background:linear-gradient(135deg,#667eea,#764ba2);padding:20px 30px;color:#fff;display:flex;align-items:center;gap:12px}.card-header i{font-size:24px}.card-header h3{margin:0;font-size:18px;font-weight:600}.selection-grid{padding:30px;display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:20px}.class-section-subject-group{grid-column:span 2}@media (max-width: 768px){.class-section-subject-group{grid-column:span 1}}.form-group{display:flex;flex-direction:column;gap:8px}.form-group label{display:flex;align-items:center;gap:8px;font-weight:600;color:#2c3e50;font-size:14px}.form-group label i{color:#667eea;font-size:16px}.form-group select,.form-group input{padding:12px;border:2px solid #e0e0e0;border-radius:8px;font-size:14px;transition:all .3s ease;background:#f8f9fa}.form-group select:focus,.form-group input:focus{outline:none;border-color:#667eea;background:#fff;box-shadow:0 0 0 3px #667eea1a}.form-group select:disabled,.form-group input:disabled{opacity:.6;cursor:not-allowed}.load-button-group{display:flex;align-items:flex-end}.load-students-btn{width:100%;background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;border:none;padding:12px 20px;border-radius:8px;font-size:15px;font-weight:600;cursor:pointer;display:flex;align-items:center;justify-content:center;gap:8px;transition:all .3s ease;box-shadow:0 4px 12px #667eea66}.load-students-btn:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 6px 16px #667eea80}.load-students-btn:disabled{opacity:.6;cursor:not-allowed}.empty-state{background:#fff;border-radius:12px;box-shadow:0 4px 12px #0000001a;padding:80px 40px;text-align:center}.empty-icon{font-size:100px;color:#e0e0e0;margin-bottom:24px}.empty-icon i{animation:float 3s ease-in-out infinite}@keyframes float{0%,to{transform:translateY(0)}50%{transform:translateY(-10px)}}.empty-state h3{font-size:24px;font-weight:700;color:#333;margin-bottom:12px}.empty-state p{font-size:16px;color:#666;line-height:1.6;max-width:600px;margin:0 auto}.students-section{background:#fff;border-radius:12px;box-shadow:0 4px 12px #0000001a;overflow:hidden}.section-header{padding:20px 30px;background:linear-gradient(135deg,#f5f7fa,#e8ebf0);border-bottom:2px solid #e0e0e0;display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:15px}.header-left{display:flex;align-items:center;gap:12px}.header-left i{font-size:24px;color:#667eea}.header-left h3{margin:0;font-size:18px;font-weight:600;color:#2c3e50}.student-count{background:#667eea;color:#fff;padding:4px 12px;border-radius:12px;font-size:13px;font-weight:600}.header-right{display:flex;gap:10px}.selection-info{display:flex;gap:10px;flex-wrap:wrap}.info-badge{display:flex;align-items:center;gap:6px;background:#fff;padding:6px 12px;border-radius:20px;font-size:13px;font-weight:600;color:#555;box-shadow:0 2px 4px #0000001a}.info-badge i{color:#667eea;font-size:14px}.action-bar{padding:20px 30px;background:#f8f9fa;border-bottom:2px solid #e0e0e0;display:flex;gap:12px}.save-marks-btn,.refresh-btn{padding:12px 24px;border:none;border-radius:8px;font-size:15px;font-weight:600;cursor:pointer;display:flex;align-items:center;gap:8px;transition:all .3s ease}.save-marks-btn{background:linear-gradient(135deg,#4caf50,#45a049);color:#fff;box-shadow:0 4px 12px #4caf5066}.save-marks-btn:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 6px 16px #4caf5080}.refresh-btn{background:#fff;color:#667eea;border:2px solid #667eea}.refresh-btn:hover:not(:disabled){background:#667eea;color:#fff;transform:translateY(-2px)}.save-marks-btn:disabled,.refresh-btn:disabled{opacity:.6;cursor:not-allowed}.students-grid{padding:30px;display:grid;grid-template-columns:repeat(auto-fill,minmax(400px,1fr));gap:20px}.student-card{background:#fff;border:2px solid #e8e8e8;border-radius:12px;transition:all .3s ease;box-shadow:0 2px 8px #00000014;display:flex;flex-direction:column;overflow:hidden}.student-card:hover{transform:translateY(-4px);box-shadow:0 8px 20px #00000026}.student-card.has-marks{border-left:4px solid #2ecc71}.student-header{background:#f8f9fa;padding:16px;border-bottom:1px solid #e1e8ed;display:flex;justify-content:space-between;align-items:center}.student-info h4{margin:0 0 6px;font-size:16px;font-weight:600;color:#2c3e50}.roll-number{display:flex;align-items:center;gap:6px;font-size:14px;color:#7f8c8d;font-weight:500}.roll-number i{color:#95a5a6;font-size:14px}.status-badge span{display:flex;align-items:center;gap:6px;padding:6px 12px;border-radius:12px;font-size:12px;font-weight:600}.status-badge .graded{background:#d5edda;color:#2ecc71}.status-badge .pending{background:#fff3cd;color:#f39c12}.status-badge i{font-size:14px}.marks-input-section{padding:16px;width:100%;box-sizing:border-box}.marks-input-wrapper{display:flex;flex-direction:column;gap:12px;background:#f8f9fa;border-radius:10px;padding:12px;border:2px solid #e1e8ed;transition:all .3s ease;width:100%;box-sizing:border-box}.marks-input-wrapper .input-label-row{display:flex;align-items:center;gap:8px}.marks-input-wrapper .input-field-row{display:flex;align-items:center;gap:12px;width:100%;box-sizing:border-box}.marks-input-wrapper:focus-within{border-color:#667eea;background:#fff}.marks-input-wrapper i{color:#e74c3c;font-size:20px;flex-shrink:0}.marks-input-wrapper label{font-size:14px;font-weight:600;color:#34495e;white-space:nowrap;flex-shrink:0}.marks-input-wrapper input{flex:1;border:1px solid #bdc3c7;background:#fff;padding:10px 12px;border-radius:6px;font-size:16px;font-weight:600;color:#2c3e50;text-align:center;transition:all .3s ease;max-width:100%;box-sizing:border-box}.marks-input-wrapper input:focus{outline:none;border-color:#667eea;box-shadow:0 0 0 3px #667eea1a}.marks-input-wrapper input.filled{border-color:#2ecc71;background:#f8fff9;color:#2ecc71}.max-marks{font-size:14px;font-weight:600;color:#7f8c8d;white-space:nowrap;flex-shrink:0}@media (max-width: 1200px){.students-grid{grid-template-columns:repeat(auto-fill,minmax(350px,1fr))}}@media (max-width: 768px){.scholastic-marks-header{padding:20px}.scholastic-marks-header h1{font-size:24px}.scholastic-marks-content{padding:20px}.selection-grid{grid-template-columns:1fr;padding:20px}.section-header{flex-direction:column;align-items:flex-start}.action-bar{flex-direction:column}.save-marks-btn,.refresh-btn{width:100%;justify-content:center}.students-grid{grid-template-columns:1fr;padding:10px;gap:16px}.selection-info{width:100%}.student-card{width:100%;box-sizing:border-box;display:flex;flex-direction:column}.marks-input-section{padding:16px;width:100%;box-sizing:border-box;display:block}.marks-input-wrapper{width:100%;box-sizing:border-box;display:flex;flex-direction:column}.marks-input-wrapper .input-label-row{width:100%;margin-bottom:8px}.marks-input-wrapper .input-field-row{width:100%;display:flex;gap:8px}.marks-input-wrapper input{width:100%;max-width:none;box-sizing:border-box}}@media (max-width: 480px){.student-header{flex-direction:column;align-items:flex-start;gap:10px}.status-badge{align-self:flex-start}}.photo-gallery-container{padding:20px;width:100%;margin:0 auto}.photo-gallery-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:24px;flex-wrap:wrap;gap:16px}.photo-gallery-header h1{font-size:28px;font-weight:600;color:var(--text-primary);display:flex;align-items:center;gap:12px;margin-bottom:8px}.photo-gallery-header h1 i{color:#667eea}.subtitle{font-size:14px;color:var(--text-secondary);margin:0}.upload-btn{padding:12px 24px;background:#667eea;color:#fff;border:none;border-radius:8px;font-size:16px;font-weight:500;cursor:pointer;display:flex;align-items:center;gap:8px;transition:all .2s}.upload-btn:hover:not(:disabled){background:#764ba2;transform:translateY(-2px);box-shadow:0 4px 12px #667eea4d}.upload-btn:disabled{background:var(--bg-light);cursor:not-allowed;opacity:.6}.filters-card{background:var(--bg-white);border-radius:12px;padding:24px;box-shadow:0 2px 8px #0000001a;margin-bottom:24px}.filters-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:16px}.filter-group label{display:flex;align-items:center;gap:8px;font-weight:500;color:var(--text-primary);margin-bottom:8px;font-size:14px}.filter-group label i{color:#667eea}.filter-group input,.filter-group select{width:100%;padding:10px 12px;border:2px solid var(--border-color);border-radius:8px;font-size:14px;background:var(--bg-white);color:var(--text-primary);transition:all .2s}.filter-group input:focus,.filter-group select:focus{outline:none;border-color:#667eea;box-shadow:0 0 0 3px #667eea1a}.clear-btn{width:100%;padding:10px 12px;background:#fff;border:2px solid var(--border-color);border-radius:8px;font-size:14px;font-weight:500;cursor:pointer;transition:all .2s}.clear-btn:hover{border-color:#667eea;color:#667eea}.stats{margin-bottom:16px}.stats p{font-size:14px;color:var(--text-secondary);margin:0}.photos-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:24px;margin-bottom:32px}.photo-card{background:var(--bg-white);border-radius:12px;box-shadow:0 2px 8px #0000001a;overflow:hidden;transition:all .2s}.photo-card:hover{transform:translateY(-4px);box-shadow:0 4px 16px #00000026}.photo-image{position:relative;height:200px;overflow:hidden;cursor:pointer}.photo-image img{width:100%;height:100%;object-fit:cover;transition:transform .3s}.photo-card:hover .photo-image img{transform:scale(1.05)}.photo-overlay{position:absolute;top:0;left:0;right:0;bottom:0;background:#00000080;display:flex;align-items:center;justify-content:center;opacity:0;transition:opacity .3s}.photo-card:hover .photo-overlay{opacity:1}.photo-overlay i{color:#fff;font-size:32px}.photo-content{padding:16px}.photo-title{font-size:16px;font-weight:600;color:var(--text-primary);margin:0 0 8px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.photo-description{font-size:14px;color:var(--text-secondary);margin:0 0 12px;overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;min-height:40px}.photo-meta{display:flex;flex-direction:column;gap:8px}.photo-category,.photo-date{display:flex;align-items:center;gap:6px;font-size:13px;color:var(--text-secondary)}.photo-category i{color:#667eea}.photo-date i{color:var(--text-muted)}.photo-actions{display:flex;justify-content:flex-end;gap:8px;padding:12px 16px;border-top:1px solid var(--border-color);background:var(--bg-light)}.action-btn{width:36px;height:36px;border:none;border-radius:6px;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .2s}.action-btn:disabled{opacity:.5;cursor:not-allowed}.view-btn{background:#3498db;color:#fff}.view-btn:hover:not(:disabled){background:#2980b9}.edit-btn{background:#f39c12;color:#fff}.edit-btn:hover:not(:disabled){background:#e67e22}.delete-btn{background:#e74c3c;color:#fff}.delete-btn:hover:not(:disabled){background:#c0392b}.empty-state{text-align:center;padding:60px 20px;background:var(--bg-white);border-radius:12px;box-shadow:0 2px 8px #0000001a}.empty-state-icon{font-size:64px;color:#667eea;margin-bottom:20px;opacity:.3}.empty-state h3{font-size:24px;font-weight:600;color:var(--text-primary);margin-bottom:12px}.empty-state p{font-size:16px;color:var(--text-secondary);margin-bottom:24px}.loading-state{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:60px 20px;background:var(--bg-white);border-radius:12px;box-shadow:0 2px 8px #0000001a}.spinner{width:48px;height:48px;border:4px solid var(--bg-light);border-top-color:#667eea;border-radius:50%;animation:spin 1s linear infinite;margin-bottom:16px}.loading-state p{font-size:16px;color:var(--text-secondary)}.pagination{display:flex;justify-content:center;align-items:center;gap:12px;margin-top:32px}.page-btn{width:40px;height:40px;border:2px solid var(--border-color);background:#fff;border-radius:8px;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .2s;color:var(--text-primary)}.page-btn:hover:not(:disabled){border-color:#667eea;color:#667eea}.page-btn:disabled{opacity:.5;cursor:not-allowed}.page-info{font-size:14px;font-weight:500;color:var(--text-primary);padding:0 16px}.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}.modal-content{background:#fff;border-radius:12px;width:100%;max-width:600px;max-height:90vh;display:flex;flex-direction:column;box-shadow:0 8px 32px #0003}.modal-content.view-modal{max-width:800px}.modal-header{display:flex;justify-content:space-between;align-items:center;padding:20px 24px;border-bottom:1px solid var(--border-color)}.modal-header h2{margin:0;font-size:20px;font-weight:600;color:var(--text-primary)}.close-btn{width:32px;height:32px;border:none;background:var(--bg-light);border-radius:6px;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .2s}.close-btn:hover{background:var(--border-color)}.modal-body{padding:24px;overflow-y:auto;flex:1}.form-group{margin-bottom:20px}.form-group label{display:block;font-weight:500;color:var(--text-primary);margin-bottom:8px;font-size:14px}.form-group input,.form-group select,.form-group textarea{width:100%;padding:10px 12px;border:2px solid var(--border-color);border-radius:8px;font-size:14px;font-family:inherit;transition:all .2s}.form-group input:focus,.form-group select:focus,.form-group textarea:focus{outline:none;border-color:#667eea;box-shadow:0 0 0 3px #667eea1a}.form-group textarea{resize:vertical;min-height:80px}.category-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px}.toggle-category-btn{padding:6px 12px;background:#667eea;color:#fff;border:none;border-radius:6px;font-size:12px;cursor:pointer;transition:all .2s}.toggle-category-btn:hover{background:#764ba2}.file-upload-label{display:block;cursor:pointer}.file-upload-btn{display:flex;align-items:center;justify-content:center;gap:8px;padding:12px;border:2px dashed var(--border-color);border-radius:8px;background:var(--bg-light);color:var(--text-primary);font-weight:500;transition:all .2s}.file-upload-btn:hover{border-color:#667eea;background:#667eea0d}.file-help-text{font-size:12px;color:var(--text-secondary);margin:8px 0 0}.file-previews{display:grid;grid-template-columns:repeat(auto-fill,minmax(120px,1fr));gap:12px;max-height:300px;overflow-y:auto;padding:12px;background:var(--bg-light);border-radius:8px}.preview-item{text-align:center}.preview-item img{width:100%;height:120px;object-fit:cover;border-radius:8px;border:2px solid var(--border-color)}.preview-name{font-size:11px;color:var(--text-secondary);margin:4px 0 0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.view-image{text-align:center;margin-bottom:24px}.view-image img{max-width:100%;max-height:500px;border-radius:8px;box-shadow:0 4px 12px #0000001a}.view-details{display:flex;flex-direction:column;gap:16px}.detail-item{display:flex;flex-direction:column;gap:4px}.detail-item strong{font-size:14px;color:var(--text-primary)}.detail-item p{margin:0;font-size:14px;color:var(--text-secondary)}.modal-footer{display:flex;justify-content:flex-end;gap:12px;padding:20px 24px;border-top:1px solid var(--border-color)}.cancel-btn{padding:10px 20px;background:#fff;border:2px solid var(--border-color);border-radius:8px;font-size:14px;font-weight:500;cursor:pointer;transition:all .2s}.cancel-btn:hover{border-color:#667eea;color:#667eea}.submit-btn{padding:10px 20px;background:#667eea;color:#fff;border:none;border-radius:8px;font-size:14px;font-weight:500;cursor:pointer;display:flex;align-items:center;gap:8px;transition:all .2s}.submit-btn:hover:not(:disabled){background:#764ba2}.submit-btn:disabled{opacity:.6;cursor:not-allowed}@media (max-width: 768px){.photo-gallery-container{padding:12px}.photo-gallery-header{flex-direction:column}.photo-gallery-header h1{font-size:22px}.filters-grid,.photos-grid{grid-template-columns:1fr}.modal-content{max-width:100%;max-height:95vh}}.App{width:100%;min-height:100vh}.loading-screen{display:flex;align-items:center;justify-content:center;min-height:100vh;background:linear-gradient(135deg,#667eea,#764ba2);color:#fff}.loading-screen h2{font-size:2rem;animation:pulse 1.5s ease-in-out infinite}@keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}.coming-soon{display:flex;align-items:center;justify-content:center;min-height:60vh;font-size:2rem;color:#666;text-align:center;padding:40px}:root{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;line-height:1.5;font-weight:400;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}*{margin:0;padding:0;box-sizing:border-box}body{margin:0;min-width:320px;min-height:100vh;background:#f5f5f5}#root{width:100%;min-height:100vh}:root{--primary-color: #b22222;--primary-dark: #dc3545;--secondary-color: #667eea;--secondary-dark: #764ba2;--success-color: #27ae60;--success-light: #2ecc71;--error-color: #e74c3c;--warning-color: #f39c12;--info-color: #3498db;--text-primary: #333;--text-secondary: #666;--text-muted: #999;--border-color: #e0e0e0;--bg-light: #f5f5f5;--bg-white: #ffffff;--spacing-xs: 4px;--spacing-sm: 8px;--spacing-md: 16px;--spacing-lg: 24px;--spacing-xl: 32px;--spacing-xxl: 48px;--radius-sm: 6px;--radius-md: 10px;--radius-lg: 12px;--radius-xl: 16px;--radius-round: 50%;--shadow-sm: 0 2px 4px rgba(0, 0, 0, .1);--shadow-md: 0 4px 8px rgba(0, 0, 0, .12);--shadow-lg: 0 8px 16px rgba(0, 0, 0, .15);--shadow-xl: 0 12px 24px rgba(0, 0, 0, .2);--transition-fast: .15s ease;--transition-base: .3s ease;--transition-slow: .5s ease;--font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", "Roboto", "Oxygen", "Ubuntu", "Cantarell", sans-serif;--font-size-xs: 12px;--font-size-sm: 14px;--font-size-base: 16px;--font-size-lg: 18px;--font-size-xl: 20px;--font-size-2xl: 24px;--font-size-3xl: 30px}*{box-sizing:border-box;margin:0;padding:0}body{font-family:var(--font-family);font-size:var(--font-size-base);color:var(--text-primary);line-height:1.5;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.mt-sm{margin-top:var(--spacing-sm)}.mt-md{margin-top:var(--spacing-md)}.mt-lg{margin-top:var(--spacing-lg)}.mb-sm{margin-bottom:var(--spacing-sm)}.mb-md{margin-bottom:var(--spacing-md)}.mb-lg{margin-bottom:var(--spacing-lg)}.p-sm{padding:var(--spacing-sm)}.p-md{padding:var(--spacing-md)}.p-lg{padding:var(--spacing-lg)}.text-center{text-align:center}.text-left{text-align:left}.text-right{text-align:right}.text-muted{color:var(--text-muted)}.text-primary{color:var(--primary-color)}.text-success{color:var(--success-color)}.text-error{color:var(--error-color)}.font-bold{font-weight:700}.font-semibold{font-weight:600}.font-normal{font-weight:400}.flex{display:flex}.flex-col{flex-direction:column}.flex-center{display:flex;align-items:center;justify-content:center}.gap-sm{gap:var(--spacing-sm)}.gap-md{gap:var(--spacing-md)}.gap-lg{gap:var(--spacing-lg)}.card{background:var(--bg-white);border-radius:var(--radius-lg);box-shadow:var(--shadow-md);padding:var(--spacing-lg);transition:transform var(--transition-base),box-shadow var(--transition-base)}.card:hover{transform:translateY(-4px);box-shadow:var(--shadow-lg)}.card-header{display:flex;align-items:center;gap:var(--spacing-md);margin-bottom:var(--spacing-md)}.card-title{font-size:var(--font-size-xl);font-weight:700;color:var(--text-primary);margin:0}.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--spacing-sm);padding:12px 24px;border:none;border-radius:var(--radius-md);font-size:var(--font-size-base);font-weight:600;cursor:pointer;transition:all var(--transition-base);text-decoration:none}.btn:disabled{opacity:.6;cursor:not-allowed;transform:none!important}.btn-primary{background:linear-gradient(135deg,var(--primary-color) 0%,var(--primary-dark) 100%);color:#fff;box-shadow:0 4px 12px #b222224d}.btn-primary:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 6px 16px #b2222266}.btn-secondary{background:linear-gradient(135deg,var(--secondary-color) 0%,var(--secondary-dark) 100%);color:#fff;box-shadow:0 4px 12px #667eea4d}.btn-secondary:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 6px 16px #667eea66}.btn-outline{background:transparent;border:2px solid var(--primary-color);color:var(--primary-color)}.btn-outline:hover:not(:disabled){background:var(--primary-color);color:#fff}.loading-spinner{display:inline-flex;align-items:center;gap:var(--spacing-sm)}.spinner{width:20px;height:20px;border:3px solid rgba(255,255,255,.3);border-top-color:#fff;border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:var(--spacing-xxl) var(--spacing-lg);text-align:center}.empty-state-icon{font-size:64px;margin-bottom:var(--spacing-lg);opacity:.5}.empty-state h3{font-size:var(--font-size-2xl);font-weight:700;color:var(--text-primary);margin-bottom:var(--spacing-md)}.empty-state p{font-size:var(--font-size-base);color:var(--text-secondary);max-width:400px}.loading-state{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:var(--spacing-xxl);text-align:center}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideUp{0%{opacity:0;transform:translateY(30px)}to{opacity:1;transform:translateY(0)}}@keyframes slideDown{0%{opacity:0;transform:translateY(-30px)}to{opacity:1;transform:translateY(0)}}@keyframes shake{0%,to{transform:translate(0)}25%{transform:translate(-5px)}75%{transform:translate(5px)}}.fade-in{animation:fadeIn .3s ease-out}.slide-up{animation:slideUp .4s ease-out}.slide-down{animation:slideDown .4s ease-out}@media (max-width: 768px){:root{--font-size-base: 14px;--font-size-lg: 16px;--font-size-xl: 18px;--font-size-2xl: 20px}.card{padding:var(--spacing-md)}.btn{padding:10px 20px;font-size:var(--font-size-sm)}}@media (max-width: 480px){.empty-state{padding:var(--spacing-lg)}.empty-state-icon{font-size:48px}}
