@import"https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700;800&display=swap";*,*:before,*:after{box-sizing:border-box}html,body,#root{height:100%;width:100%;margin:0;padding:0}body{font-family:var(--font-sans);background-color:#f8f3ea;color:#0b1957;-webkit-font-smoothing:antialiased;overflow-x:hidden;transition:background-color .3s ease,color .3s ease}body.dark{background-color:#0b1640;color:#f1f5f9}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-track{background:#f1f5f9}.dark ::-webkit-scrollbar-track{background:#0d1c44}::-webkit-scrollbar-thumb{background:#cbd5e1;border-radius:5px;border:2px solid transparent;background-clip:content-box}.dark ::-webkit-scrollbar-thumb{background:#1e3a8a}::-webkit-scrollbar-thumb:hover{background:#94a3b8;background-clip:content-box}.dark ::-webkit-scrollbar-thumb:hover{background:#2563eb}.custom-checkbox{appearance:none;-webkit-appearance:none;width:16px;height:16px;border:1.2px solid #D1D5DB;border-radius:4px;cursor:pointer;position:relative;transition:background .15s,border-color .15s;flex-shrink:0;background:#fff;display:flex;align-items:center;justify-content:center}.custom-checkbox:checked{background:#0062ff;border-color:#0062ff}.custom-checkbox:checked:after{content:url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" width="12.5" height="12.5" viewBox="0 0 24 24" fill="none" stroke="white" stroke-width="5" stroke-linecap="round" stroke-linejoin="round"><polyline points="20 6 9 17 4 12"></polyline></svg>');display:block;width:12.5px;height:12.5px}@keyframes ring-spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.animate-fadeIn{animation:fadeIn .2s ease}.animate-slideUp{animation:slideUp .25s ease}.animate-modalSlide{animation:modalSlide .3s cubic-bezier(.16,1,.3,1)}.animate-pageFadeIn{animation:pageFadeIn .4s ease-out}.loader-ring{display:inline-block;position:relative;width:52px;height:52px}.loader-ring div{box-sizing:border-box;display:block;position:absolute;width:44px;height:44px;margin:4px;border:4px solid #0D1C44;border-radius:50%;animation:ring-spin 1.1s cubic-bezier(.5,0,.5,1) infinite;border-color:#0D1C44 transparent transparent transparent}.loader-ring div:nth-child(1){animation-delay:-.45s}.loader-ring div:nth-child(2){animation-delay:-.3s}.loader-ring div:nth-child(3){animation-delay:-.15s}.alert-overlay{position:fixed;inset:0;background:#0d1c4473;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;z-index:9999}.alert-box{background:#fff;border-radius:20px;padding:36px 32px 28px;width:90%;max-width:360px;text-align:center;box-shadow:0 20px 60px #0d1c4438;box-sizing:border-box}.alert-icon-wrap{width:64px;height:64px;border-radius:50%;display:flex;align-items:center;justify-content:center;margin:0 auto 16px}.alert-icon{font-size:32px;line-height:1}.alert-title{font-size:18px;font-weight:800;margin-bottom:10px}.alert-message{font-size:14px;color:#6b7280;line-height:1.6;margin-bottom:24px}.alert-btn{width:100%;color:#fff;font-weight:700;font-size:15px;padding:14px;border-radius:10px;border:none;cursor:pointer;transition:opacity .2s}.alert-btn:hover{opacity:.88}.loader-overlay{position:fixed;inset:0;background:#0b19578c;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);display:flex;align-items:center;justify-content:center;z-index:9999;animation:loaderOverlayFadeIn .35s ease forwards}@keyframes loaderOverlayFadeIn{0%{opacity:0}to{opacity:1}}.loader-card{background:#fff;border-radius:24px;padding:44px 52px 40px;display:flex;flex-direction:column;align-items:center;gap:18px;box-shadow:0 32px 64px #0b195738,0 8px 24px #0b19571a;animation:loaderCardPop .4s cubic-bezier(.16,1,.3,1) forwards;min-width:280px;border:1px solid rgba(11,25,87,.06)}@keyframes loaderCardPop{0%{opacity:0;transform:scale(.88) translateY(20px)}to{opacity:1;transform:scale(1) translateY(0)}}.loader-logo-wrap{position:relative;width:80px;height:80px;display:flex;align-items:center;justify-content:center}.loader-logo-ring{position:absolute;inset:0;border-radius:50%;background:conic-gradient(from 0deg,#0B1957 0%,#3B5BDB 40%,#9ECCFA 70%,transparent 100%);animation:loaderSpin 1.1s linear infinite}.loader-logo-ring:after{content:"";position:absolute;inset:5px;border-radius:50%;background:#fff}@keyframes loaderSpin{to{transform:rotate(360deg)}}.loader-logo-icon{position:relative;z-index:1;width:52px;height:52px;background:#0b1957;border-radius:14px;display:flex;align-items:center;justify-content:center;box-shadow:0 4px 16px #0b195759;animation:loaderIconPulse 2s ease-in-out infinite}@keyframes loaderIconPulse{0%,to{box-shadow:0 4px 16px #0b195759}50%{box-shadow:0 4px 28px #3b5bdb8c}}.loader-text-block{text-align:center}.loader-title{font-size:15px;font-weight:800;color:#0b1957;letter-spacing:.01em;margin:0 0 4px;font-family:ui-sans-serif,system-ui,sans-serif}.loader-message{font-size:13px;font-weight:500;color:#6b7280;letter-spacing:.01em;margin:0;font-family:ui-sans-serif,system-ui,sans-serif}.loader-progress-track{width:180px;height:4px;background:#e8ecf8;border-radius:99px;overflow:hidden}.loader-progress-bar{height:100%;width:40%;border-radius:99px;background:linear-gradient(90deg,#0b1957,#3b5bdb,#9eccfa);background-size:200% 100%;animation:loaderProgress 1.5s ease-in-out infinite}@keyframes loaderProgress{0%{transform:translate(-100%);background-position:0% 0%}50%{background-position:100% 0%}to{transform:translate(350%);background-position:0% 0%}}.loader-dots{display:flex;gap:7px;align-items:center}.loader-dot{width:7px;height:7px;border-radius:50%;background:#0b1957;display:inline-block;animation:loaderDotBounce .9s ease-in-out infinite}@keyframes loaderDotBounce{0%,80%,to{transform:scale(.6);opacity:.35;background:#0b1957}40%{transform:scale(1.15);opacity:1;background:#3b5bdb}}:root{--login-font: "Inter", ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji"}.login-page{min-height:100vh;width:100%;background:#f8f3ea!important;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:16px;font-family:var(--login-font)}.login-header{display:flex;flex-direction:column;align-items:center;text-align:center;margin-bottom:32px}.logo-box{width:64px;height:64px;background:#0b1957;border-radius:16px;display:inline-flex;align-items:center;justify-content:center;margin:0 0 24px}.login-title{margin:0 0 8px;font-size:28px;font-weight:700;color:#0f1b40;letter-spacing:-.02em;font-family:"Inter",var(--login-font);line-height:1.2}@media(prefers-color-scheme:dark){.login-title{color:#fff}}.login-subtitle{margin:0;font-size:14.5px;font-weight:400;line-height:1.5;color:#6b7280;font-family:"Inter",var(--login-font)}@media(prefers-color-scheme:dark){.login-subtitle{color:#d1d5db}}.login-card{width:100%;max-width:448px}.login-form-card{box-sizing:border-box;display:block;width:100%;min-height:350px;padding:32px;margin:0;background-color:#fff;color:#0b1957;border:.8px solid oklch(.967 .003 264.542);border-radius:16px;box-shadow:#0000 0 0,#0000 0 0,#0000 0 0,#0000 0 0,#0000001a 0 10px 15px -3px,#0000001a 0 4px 6px -4px;font-family:var(--login-font);font-size:16px;line-height:24px;outline-color:#9eccfa80;text-size-adjust:100%;unicode-bidi:isolate;-webkit-tap-highlight-color:rgba(0,0,0,0);overflow:hidden}.login-form{display:flex;flex-direction:column;gap:12px}.form-group{display:flex;flex-direction:column}.form-label{display:block;font-size:14px;font-weight:600;color:#0b1957;margin-bottom:6px;font-family:var(--login-font)}.input-wrap{position:relative}.form-input{width:100%;background:#f8f3ea;border:1px solid #E5E7EB;border-radius:12px;padding:12px 16px;font-size:15px;font-family:"Inter",var(--login-font);color:#0b1957;outline:none;transition:border-color .15s,box-shadow .15s;box-sizing:border-box}.form-input::placeholder{color:#9ca3af}.form-input:focus{outline:none;border-color:#9eccfa;box-shadow:0 0 10px #9eccfa66}.form-input:-webkit-autofill,.form-input:-webkit-autofill:hover,.form-input:-webkit-autofill:focus,.form-input:-webkit-autofill:active{-webkit-box-shadow:0 0 0 50px rgb(248,243,234) inset!important;-webkit-text-fill-color:#0B1957!important;transition:background-color 5000s ease-in-out 0s}.eye-btn{position:absolute;right:12px;top:50%;transform:translateY(-50%);background:none;border:none;cursor:pointer;color:#9ca3af;padding:4px;display:flex;align-items:center;border-radius:4px;transition:color .15s}.form-row{display:flex;align-items:center;justify-content:space-between;margin-top:4px;margin-bottom:4px}.checkbox-label{display:flex;align-items:center;gap:8px;cursor:pointer;font-size:14px;color:#4b5563;-webkit-user-select:none;user-select:none;font-family:var(--login-font)}@media(prefers-color-scheme:dark){.checkbox-label{color:#d1d5db}}.checkbox-label input[type=checkbox]{appearance:none;-webkit-appearance:none;width:16px;height:16px;border:1px solid #D1D5DB;border-radius:4px;cursor:pointer;position:relative;transition:all .15s ease-in-out;background:#fff;box-sizing:border-box;margin:0}.checkbox-label input[type=checkbox]:checked{background-color:#2563eb;border-color:#2563eb}.checkbox-label input[type=checkbox]:checked:after{content:url('data:image/svg+xml;utf8,<svg viewBox="0 0 16 16" fill="white" xmlns="http://www.w3.org/2000/svg"><path d="M12.207 4.793a1 1 0 010 1.414l-5 5a1 1 0 01-1.414 0l-2-2a1 1 0 011.414-1.414L6.5 9.086l4.293-4.293a1 1 0 011.414 0z"/></svg>');display:block;width:16px;height:16px;position:absolute;top:-1px;left:-1px}.text-link{background:none;border:none;padding:0;cursor:pointer;font-size:14px;font-weight:500;color:#2f80ed;text-decoration:none;font-family:"Inter",var(--login-font);transition:opacity .15s}.text-link:hover{text-decoration:underline;opacity:.85}.sign-in-btn{width:100%;background-color:#0b1957!important;color:#fff;font-family:var(--login-font);font-size:16px;font-weight:600;padding:14px;border:none;border-radius:12px;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background .15s ease,box-shadow .15s ease,opacity .15s ease;min-height:52px;margin-top:8px}.sign-in-btn:hover:not(:disabled){background-color:#152561!important;box-shadow:0 8px 15px -3px #0b19574d}.sign-in-btn:active:not(:disabled){background-color:#0a1240!important}.sign-in-btn--disabled,.sign-in-btn:disabled{background-color:#7d87a4!important;opacity:.8;cursor:not-allowed;box-shadow:none}.form-input.input-ok{border-color:#22c55e;box-shadow:0 0 10px #22c55e4d}.form-input.input-error{border-color:#ef4444;box-shadow:0 0 10px #ef44444d}.email-status-icon{position:absolute;right:14px;top:50%;transform:translateY(-50%);font-size:15px;font-weight:700;pointer-events:none;transition:color .15s}.email-ok{color:#16a34a}.email-bad{color:#ef4444}.email-format-hint{font-size:12px;color:#f97316;font-weight:500;display:flex;align-items:center;gap:4px;margin-top:4px}.email-format-hint:before{content:"ℹ "}.email-ok-hint{font-size:12px;color:#16a34a;font-weight:600;margin-top:4px}.field-error{font-size:12px;color:#ef4444;font-weight:500;display:flex;align-items:center;gap:4px;margin-top:4px}.field-error:before{content:"⚠ "}.pwd-rules{display:flex;flex-direction:column;gap:4px;padding:10px 12px;background:#f9f8f6;border-radius:8px;margin-top:4px}.pwd-rule{display:flex;align-items:center;gap:6px;font-size:12px;color:#9ca3af;transition:color .15s}.pwd-rule--ok{color:#16a34a}.pwd-rule-dot{font-size:13px;font-weight:700}.remember-hint{font-size:11px;color:#9ca3af;font-weight:400}.continue-card{display:flex;flex-direction:column;align-items:center;gap:10px;text-align:center;padding:40px 32px 32px;background:#fff;border-radius:16px;box-shadow:0 10px 25px -5px #0000001a;border:1px solid #F3F4F6}.continue-avatar{width:72px;height:72px;border-radius:50%;background:#bfdbfe;color:#1e40af;font-size:26px;font-weight:800;display:flex;align-items:center;justify-content:center;margin-bottom:4px;letter-spacing:.05em}.continue-name{font-size:20px;font-weight:800;color:#0b1957}.continue-email{font-size:14px;color:#6b7280;margin-top:-4px}.continue-role-badge{font-size:12px;font-weight:600;padding:3px 12px;border-radius:20px;background:#eff6ff;color:#2563eb;text-transform:capitalize;margin-bottom:8px}.switch-user-link{background:none;border:none;font-family:var(--login-font);font-size:14px;font-weight:600;color:#6b7280;cursor:pointer;text-decoration:underline;margin-top:4px;transition:color .15s}.switch-user-link:hover{color:#0b1957}@media(max-width:480px){.login-form-card{padding:24px 16px}.login-title{font-size:20px}.login-subtitle{font-size:13px}.forgot-modal{padding:24px 20px}.forgot-actions{flex-direction:column;gap:10px;align-items:stretch}.forgot-cancel-btn{width:100%;text-align:center;order:2}.forgot-send-btn{width:100%;text-align:center;order:1}}@media(max-width:640px){.login-success-toast,.logout-success-toast{min-width:calc(100% - 48px);max-width:calc(100% - 48px);left:24px;right:24px;top:16px}.toast-notification{min-width:calc(100% - 64px);right:32px;left:32px}}.forgot-overlay{position:fixed;top:0;left:0;width:100%;height:100%;background:#00000073;display:flex;align-items:center;justify-content:center;z-index:1000;padding:24px;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.forgot-modal{background:#fff;width:100%;max-width:448px;padding:32px;border-radius:20px;position:relative;box-shadow:0 20px 25px -5px #0000001a,0 10px 10px -5px #0000000a;animation:modalSlide .3s cubic-bezier(.16,1,.3,1)}@keyframes modalSlide{0%{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}.forgot-close{position:absolute;right:20px;top:20px;background:none;border:none;cursor:pointer;color:#94a3b8;padding:4px;display:flex;align-items:center;justify-content:center;transition:color .15s}.forgot-close:hover{color:#475569}.forgot-title{box-sizing:border-box;display:block;font-size:20px;font-weight:700;line-height:1.4;color:#0f1b40;margin-bottom:8px;font-family:"Inter",var(--login-font);text-align:left;padding-right:24px}.forgot-subtitle{font-size:15px;color:#64748b;margin-bottom:24px;line-height:1.5}.forgot-modal .form-input{width:100%;border:1px solid #D1D5DB;background:#f8f3ea;transition:all .2s ease}.forgot-modal .form-input:focus{border-color:#9eccfa;box-shadow:0 0 10px #9eccfa66;outline:none}.login-success-toast{position:fixed;top:24px;right:28px;background:#fff;box-shadow:0 8px 32px #0000001f,0 2px 8px #0000000f;border-radius:14px;padding:16px 20px;display:flex;align-items:flex-start;gap:14px;z-index:99999;animation:toastSlideFromRight .9s cubic-bezier(.25,.46,.45,.94) forwards;font-family:Inter,sans-serif;min-width:380px;max-width:480px;border-left:4px solid #22C55E}.logout-success-toast{position:fixed;top:24px;right:28px;background:#fff;box-shadow:0 8px 32px #0000001f,0 2px 8px #0000000f;border-radius:14px;padding:16px 20px;display:flex;align-items:flex-start;gap:14px;z-index:99999;animation:toastSlideFromRight .9s cubic-bezier(.25,.46,.45,.94) forwards;font-family:Inter,sans-serif;min-width:380px;max-width:480px;border-left:4px solid #F59E0B}@keyframes toastSlideFromRight{0%{opacity:0;transform:translate(110%)}to{opacity:1;transform:translate(0)}}.toast-notification{position:absolute;top:24px;right:32px;background:#fff;box-shadow:0 4px 24px #00000014;border-radius:12px;padding:16px 20px;display:flex;align-items:flex-start;gap:14px;z-index:9999;animation:toastSlide .4s cubic-bezier(.16,1,.3,1);font-family:Inter,sans-serif;min-width:320px}@keyframes toastSlide{0%{opacity:0;transform:translateY(-20px) scale(.95)}to{opacity:1;transform:translateY(0) scale(1)}}.toast-icon{width:32px;height:32px;background:#d1fae5;border-radius:50%;display:flex;align-items:center;justify-content:center;flex-shrink:0}.toast-text{flex:1;margin-top:2px}.toast-title{font-size:14px;font-weight:700;color:#0b1957;margin-bottom:4px}.toast-desc{font-size:12.5px;color:#6b7280}.toast-close{background:none;border:none;cursor:pointer;color:#9ca3af;padding:4px;margin-top:2px;transition:color .15s;display:flex}.forgot-actions{display:flex;gap:12px;margin-top:28px;justify-content:flex-end}.forgot-cancel-btn{background:#fff;border:1.5px solid #D1D5DB;color:#0b1957;font-size:15px;font-weight:600;padding:10px 24px;height:auto;border-radius:10px;cursor:pointer;transition:background .15s,border-color .15s;font-family:"Inter",var(--login-font);white-space:nowrap}.forgot-cancel-btn:hover{background:#f3f4f6;border-color:#aab0be}.forgot-send-btn{background-color:#0f1b40!important;color:#fff;font-size:15px;font-weight:600;padding:10px 24px;height:auto;border:none;border-radius:10px;cursor:pointer;transition:background-color .15s,opacity .15s;font-family:"Inter",var(--login-font);white-space:nowrap}.forgot-send-btn:hover:not(:disabled){background-color:#152561!important}.forgot-send-btn:disabled{background-color:#7d87a4!important;opacity:.8;cursor:not-allowed}:root{--brand-dark: #0B1957;--brand-beige: #F8F3EA;--brand-blue: #2F80ED;--text-gray: #6B7280}.reset-page{min-height:100vh;display:flex;flex-direction:column;align-items:center;justify-content:center;background:var(--brand-beige)!important;font-family:Inter,-apple-system,sans-serif;padding:24px;color:var(--brand-dark)}.reset-header{text-align:center;margin-bottom:32px}.logo-box{width:64px;height:64px;background:var(--brand-dark);border-radius:16px;display:flex;align-items:center;justify-content:center;margin:0 auto 24px}.reset-title{font-size:28px;font-weight:700;color:#0f1b40;margin:0 0 8px;letter-spacing:-.02em}.reset-subtitle{font-size:14.5px;color:var(--text-gray);margin:0;font-weight:400}.reset-card{width:100%;max-width:448px}.reset-form-card{background:#fff;border-radius:16px;padding:32px;box-shadow:0 10px 15px -3px #0000001a,0 4px 6px -4px #0000001a;border:.8px solid #F1F5F9}.reset-form{display:flex;flex-direction:column;gap:16px}.form-group{display:flex;flex-direction:column;gap:6px}.form-label{font-size:14px;font-weight:600;color:var(--brand-dark)}.input-wrap{position:relative;display:flex;align-items:center}.form-input{width:100%;background:var(--brand-beige);border:1px solid #E5E7EB;border-radius:12px;padding:12px 16px;color:var(--brand-dark);font-size:15px;outline:none;transition:border-color .15s,box-shadow .15s;box-sizing:border-box}.form-input:focus{border-color:#9eccfa;box-shadow:0 0 10px #9eccfa66}.form-input.has-icon{padding-right:48px}.form-input.input-error{border-color:#ef4444;box-shadow:0 0 10px #ef444433}.eye-btn{position:absolute;right:12px;background:none;border:none;color:#9ca3af;cursor:pointer;display:flex;align-items:center;justify-content:center;padding:8px;border-radius:4px;transition:color .15s}.eye-btn:hover{color:#4b5563}.error-alert{background:#ef444414;border-radius:8px;padding:10px 12px;display:flex;align-items:center;gap:8px;color:#ef4444;font-size:12px;font-weight:500;margin-bottom:8px}.create-pw-btn{width:100%;background-color:var(--brand-dark)!important;color:#fff;font-size:16px;font-weight:600;padding:14px;border:none;border-radius:12px;cursor:pointer;transition:background .15s ease,box-shadow .15s ease;margin-top:8px;min-height:52px}.create-pw-btn:hover{background-color:#152561!important;box-shadow:0 8px 15px -3px #0b19574d}.back-link{background:none;border:none;color:#6b7280;font-size:14px;font-weight:600;padding:8px;cursor:pointer;text-decoration:underline;margin-top:8px;align-self:center}.back-link:hover{color:var(--brand-dark)}.reset-toast{position:fixed;top:24px;right:28px;background:#fff;border-radius:14px;padding:16px 20px;display:flex;align-items:center;gap:14px;box-shadow:0 8px 32px #0000001f;z-index:99999;min-width:320px;border-left:4px solid #22C55E;animation:rpToastIn .4s cubic-bezier(.16,1,.3,1) forwards}.toast-text{display:flex;flex-direction:column}.toast-title{color:var(--brand-dark);font-weight:700;font-size:14px}.toast-desc{color:var(--text-gray);font-size:12.5px}@keyframes rpToastIn{0%{opacity:0;transform:translate(110%)}to{opacity:1;transform:translate(0)}}.att-page{display:flex;flex-direction:column;gap:20px;font-family:Inter,sans-serif}.att-stats-row{display:grid;grid-template-columns:repeat(4,1fr);gap:16px}.att-stat-card{background:#fff;border-radius:16px;padding:24px;display:flex;flex-direction:row;align-items:flex-start;justify-content:space-between;box-shadow:0 2px 10px #0d1c440a;border:1px solid #f3f4f6;transition:all .4s cubic-bezier(.175,.885,.32,1.275);gap:12px}.att-stat-card:hover{transform:translateY(-8px);box-shadow:0 15px 35px #9eccfa73;border-color:#9eccfa}.att-stat-card:hover .att-stat-icon{transform:scale(1.15) rotate(5deg)}.att-stat-icon{width:46px;height:46px;border-radius:50%;display:flex;align-items:center;justify-content:center;flex-shrink:0;transition:transform .3s ease}.att-stat-card--scan{cursor:pointer}.att-stat-info{display:flex;flex-direction:column;gap:4px;flex:1;min-width:0}.att-stat-label{font-size:13px;color:#6b7280;font-weight:500;letter-spacing:.025em}.att-stat-value{font-size:28px;font-weight:600;color:#0b1957;line-height:1;letter-spacing:-.025em;margin-top:4px}.att-scan-title{font-size:28px;font-weight:600}.att-stat-sub{font-size:12px;color:#9ca3af;margin-top:8px}.att-stat-icon{width:46px;height:46px;border-radius:50%;display:flex;align-items:center;justify-content:center;flex-shrink:0}.att-icon-scan,.att-icon-total{background-color:#dbeafe}.att-icon-present{background-color:#d1fae5}.att-icon-absent{background-color:#fee2e2}.att-section-card{background:#fff;border-radius:16px;padding:24px;box-shadow:0 4px 15px #0d1c440a;border:1px solid #f3f4f6;margin-top:8px;width:100%;transition:all .4s cubic-bezier(.175,.885,.32,1.275)}.att-section-card:hover{transform:translateY(-4px);box-shadow:0 12px 30px #9eccfa59;border-color:#9eccfa}.att-section-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:4px}.att-section-title{font-size:18px;font-weight:700;color:#0b1957;margin-bottom:4px}.att-section-subtitle{font-size:13.5px;color:#6b7280;margin-bottom:24px}.att-month-selector-wrapper{position:relative;z-index:50}.att-month-selector{display:flex;align-items:center;gap:12px;background:#fdfbf7;border-radius:12px;padding:8px 16px;font-size:14px;font-weight:600;color:#0b1957;cursor:pointer;transition:all .2s ease;border:1px solid transparent}.att-month-selector:hover,.att-month-selector--active{background:#f8f3ea;border-color:#ede8df}.att-month-selector--active svg{transform:rotate(180deg)}.att-month-selector svg{color:#9ca3af;transition:transform .3s ease}.att-month-dropdown-overlay{position:fixed;inset:0;z-index:-1}.att-month-dropdown{position:absolute;top:calc(100% + 8px);right:0;background:#fff;border-radius:14px;padding:6px;min-width:140px;box-shadow:0 10px 25px #0d1c441f;border:1px solid #F3F4F6;animation:attDropdownFadeIn .2s ease}@keyframes attDropdownFadeIn{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}.att-month-option{padding:10px 14px;font-size:13.5px;font-weight:500;color:#4b5563;border-radius:8px;cursor:pointer;transition:all .15s ease}.att-month-option:hover{background:#f8f3ea;color:#0b1957}.att-month-option--selected{background:#0b1957;color:#fff!important}.att-section-subtitle.lg-margin{margin-bottom:24px}.att-main-row{display:grid;grid-template-columns:1fr 300px;gap:20px;align-items:stretch}.att-trend-card{box-sizing:border-box;min-width:0}.att-trend-legend{display:flex;align-items:center;justify-content:center;gap:24px;margin-top:32px;font-size:13.5px;font-weight:500;color:#6b7280}.att-trend-legend span{display:flex;align-items:center;gap:8px}.att-trend-dot{width:10px;height:10px;border-radius:50%;display:inline-block;flex-shrink:0}.att-graph-stats-row{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-top:20px;border-top:1px solid #EDE8DF;padding-top:16px}.att-graph-stat-card{display:flex;flex-direction:column;align-items:center;gap:6px;padding:14px 8px;background:#f8f3ea;border-radius:10px;border:1px solid #EDE8DF;transition:all .3s ease;cursor:default}.att-graph-stat-card:hover{background:#fff;transform:translateY(-3px);box-shadow:0 8px 15px #0d1c440d}.att-graph-stat-label{font-size:12px;color:#6b7280;font-weight:500;letter-spacing:.02em}.att-graph-stat-value{font-size:22px;font-weight:700;line-height:1;letter-spacing:-.02em}.att-graph-stat-value--present{color:#0b1957}.att-graph-stat-value--absent{color:#ef4444}.att-graph-stat-value--overall{color:#0b1957}.att-calendar-card{box-sizing:border-box;min-width:0;display:flex;flex-direction:column}.att-calendar-widget{margin-top:12px;display:flex;flex-direction:column;flex:1}.att-cal-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px}.att-cal-month-label{font-size:14px;font-weight:600;color:#0b1957;font-family:Inter,sans-serif}.att-cal-nav{background:none;border:none;cursor:pointer;font-size:18px;color:#6b7280;width:28px;height:28px;border-radius:50%;display:flex;align-items:center;justify-content:center;transition:background .15s,color .15s;line-height:1;padding:0}.att-cal-nav:hover{background:#ede8df;color:#0b1957}.att-cal-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:2px;text-align:center}.att-cal-dayname{font-size:11px;font-weight:600;color:#9ca3af;padding:4px 0;font-family:Inter,sans-serif;letter-spacing:.04em}.att-cal-day{font-size:12.5px;font-weight:500;color:#374151;width:30px;height:30px;display:flex;align-items:center;justify-content:center;border-radius:50%;margin:1px auto;cursor:default;font-family:Inter,sans-serif;transition:background .15s}.att-cal-day--faded{color:#c8bfb0}.att-cal-day--attended{background:#0b1957;color:#fff;font-weight:600}.att-cal-day--scheduled{background:#cbd5e1;color:#0b1957;font-weight:600}.att-cal-day--holiday{background:#fed7d7;color:#c53030;font-weight:600}.att-cal-day--today{border:2px solid #0B1957;background-color:#dbeafe;color:#0b1957;font-weight:600;z-index:1}.att-cal-legend{display:flex;flex-direction:column;gap:8px;margin-top:auto;padding-top:16px;border-top:1px solid #EDE8DF}.att-cal-legend-item{display:flex;align-items:center;gap:8px;font-size:12px;color:#6b7280;font-family:Inter,sans-serif;font-weight:500}.att-cal-legend-dot{width:12px;height:12px;border-radius:50%;flex-shrink:0}.att-cal-legend-dot--attended{background:#0b1957}.att-cal-legend-dot--scheduled{background:#cbd5e1}.att-cal-legend-dot--holiday{background:#fed7d7}.borderless-list{display:flex;flex-direction:column;gap:16px}.borderless-row{display:flex;align-items:center;gap:16px;padding:16px 20px;border-radius:12px;transition:all .4s cubic-bezier(.175,.885,.32,1.275);border:1px solid rgba(13,28,68,.05);box-shadow:0 2px 4px #0d1c4403;background-color:#f9f7f3;cursor:pointer}.borderless-row:hover{transform:translate(6px) scale(1.01);background-color:#fff;box-shadow:0 10px 25px #9eccfa4d;border-color:#9eccfa}.att-recent-icon-wrapper{flex-shrink:0}.att-recent-icon-circle{width:42px;height:42px;border-radius:50%;display:flex;align-items:center;justify-content:center}.att-circle-present{background-color:#d1fae5}.att-circle-absent{background-color:#fee2e2}.flex-col-center{display:flex;flex-direction:column;justify-content:center;flex:1;min-width:0}.att-recent-subject.lg-text{font-size:15.5px;font-weight:600;color:#0b1957;line-height:1.25;margin-bottom:4px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.att-recent-date.space-tracked{font-size:13px;color:#6b7280;letter-spacing:.025em;margin-top:0}.att-page .att-status-pill-container{position:relative;display:flex;align-items:center;justify-content:flex-end;width:90px;height:38px;margin-left:auto}.att-page .att-status-icon-only{position:absolute;right:0;width:32px;height:32px;display:flex;align-items:center;justify-content:center;transition:all .4s cubic-bezier(.4,0,.2,1);opacity:1;transform:scale(1)}.att-page .status-present{color:#10b981}.att-page .status-absent{color:#ef4444}.att-page .tooltip-reveal{position:absolute;right:0;opacity:0;transform:scale(.8) translate(20px);transition:all .4s cubic-bezier(.4,0,.2,1);white-space:nowrap;pointer-events:none}.att-page .att-recent-card:hover .att-status-icon-only{opacity:0;transform:scale(.6) translate(-20px)}.att-page .att-recent-card:hover .tooltip-reveal{opacity:1;transform:scale(1) translate(0);pointer-events:auto}.borderless-badge{font-size:13.5px;font-weight:500;padding:6px 16px;border-radius:8px;flex-shrink:0;border:none}.badge-present{background-color:#d1fae5;color:#10b981}.badge-absent{background-color:#fee2e2;color:#ef4444}.dark .status-present{color:#34d399}.dark .badge-absent{background:#ef444426;color:#ef4444}@media(max-width:1024px){.att-stats-row{grid-template-columns:repeat(2,1fr)}.att-main-row{grid-template-columns:1fr 260px}}@media(max-width:860px){.att-main-row{grid-template-columns:1fr}}@media(max-width:767px){.att-stats-row{grid-template-columns:repeat(2,1fr);gap:12px}}@media(max-width:600px){.att-stats-row{grid-template-columns:1fr;gap:12px}.att-graph-stats-row{grid-template-columns:1fr}.att-page-header{flex-direction:column;align-items:flex-start;gap:8px}.att-stat-value{font-size:24px}.borderless-row{padding:12px;flex-wrap:wrap;gap:12px}.borderless-badge{width:100%;text-align:center}.att-section-card{padding:16px}}@media(max-width:400px){.att-stats-row{grid-template-columns:1fr}}.dark .att-stat-card{background:#162050;border:1px solid rgba(255,255,255,.06);box-shadow:0 2px 12px #0000004d;transition:all .3s ease}.dark .att-stat-card:hover{border-color:#60a5fa99;box-shadow:0 0 20px #3b82f640}.dark .att-stat-label{color:#94a3b8}.dark .att-stat-value,.dark .att-scan-title{color:#f1f5f9}.dark .att-stat-sub{color:#64748b}.dark .att-section-card{background:#162050;border:1px solid rgba(255,255,255,.06);box-shadow:0 2px 12px #0000004d;transition:all .3s ease}.dark .att-section-card:hover{border-color:#60a5fa99;box-shadow:0 0 20px #3b82f640}.dark .att-section-title{color:#f1f5f9}.dark .att-section-subtitle,.dark .att-trend-legend{color:#94a3b8}.dark .att-graph-stats-row{border-top-color:#ffffff14}.dark .att-graph-stat-card{background:#1a2560;border-color:#ffffff0f}.dark .att-graph-stat-label{color:#94a3b8}.dark .att-graph-stat-value--present,.dark .att-graph-stat-value--overall,.dark .att-cal-month-label{color:#f1f5f9}.dark .att-cal-nav{color:#94a3b8}.dark .att-cal-nav:hover{background:#ffffff14;color:#f1f5f9}.dark .att-cal-dayname{color:#64748b}.dark .att-cal-day{color:#cbd5e1}.dark .att-cal-day--faded{color:#334155}.dark .att-cal-day--attended{background:#1d4ed8;color:#fff}.dark .att-cal-day--scheduled{background:#334155;color:#94a3b8}.dark .att-cal-day--holiday{background:#f8717133;color:#f87171}.dark .att-cal-day--today{border:2px solid #3B82F6;background-color:#3b82f640;color:#60a5fa;font-weight:600}.dark .att-cal-legend{border-top-color:#ffffff14}.dark .att-cal-legend-item{color:#94a3b8}.dark .att-cal-legend-dot--attended{background:#1d4ed8}.dark .att-cal-legend-dot--scheduled{background:#334155}.dark .att-cal-legend-dot--holiday{background:#f8717133;border:1px solid #F87171}.dark .borderless-row{background:#1a2560;border:1px solid rgba(255,255,255,.06);box-shadow:none;transition:all .3s ease}.dark .borderless-row:hover{border-color:#60a5fa99;box-shadow:0 0 20px #3b82f633}.dark .att-recent-subject{color:#f1f5f9!important}.dark .att-recent-date{color:#94a3b8!important}.dark .att-circle-present{background:#10b98133}.dark .att-circle-absent{background:#ef444433}.dark .badge-present{background:#10b98126;color:#34d399}.dark .badge-absent{background:#ef444426;color:#f87171}.dark .att-icon-scan,.dark .att-icon-total{background:#3b82f633}.dark .att-icon-present{background:#10b98133}.dark .att-icon-absent{background:#ef444433}.att-modal-overlay{position:fixed;inset:0;background:#0006;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);display:flex;align-items:center;justify-content:center;z-index:9999;animation:attFadeIn .18s ease}@keyframes attFadeIn{0%{opacity:0}to{opacity:1}}.att-modal-box{background:#fff;max-width:400px;width:100%;border-radius:20px;padding:32px 32px 28px;display:flex;flex-direction:column;align-items:center;text-align:center;box-shadow:0 14px 44px -10px #0003;box-sizing:border-box;animation:attSlideUp .22s cubic-bezier(.34,1.56,.64,1)}@keyframes attSlideUp{0%{transform:translateY(24px) scale(.96);opacity:0}to{transform:translateY(0) scale(1);opacity:1}}.att-modal-icon{width:64px;height:64px;border-radius:50%;background:#dcfce7;display:flex;align-items:center;justify-content:center;margin-bottom:20px;flex-shrink:0}.att-modal-title{font-size:20px;font-weight:600;color:#0b1957;margin:0 0 10px;font-family:Inter,sans-serif}.att-modal-subtitle{font-size:14px;color:#6b7280;margin:0 0 28px;line-height:1.5;font-family:Inter,sans-serif}.att-modal-done-btn{width:100%;height:48px;background:#0b1957;color:#fff;border:none;border-radius:12px;font-size:15px;font-weight:600;cursor:pointer;font-family:Inter,sans-serif;transition:opacity .15s;letter-spacing:.01em}.att-modal-done-btn:hover{opacity:.9}.dark .att-modal-overlay{background:#0009}.dark .att-modal-box{background:#162050;box-shadow:0 10px 40px #00000080;border:1px solid rgba(255,255,255,.08)}.dark .att-modal-icon{background:#10b9811a}.dark .att-modal-title{color:#f1f5f9}.dark .att-modal-subtitle{color:#94a3b8}.dark .att-modal-done-btn{background:#3b82f6}.dark .att-modal-done-btn:hover{background:#2563eb}.dark .att-month-selector{background:#ffffff0d;color:#f1f5f9;border-color:#ffffff1a}.dark .att-month-selector:hover,.dark .att-month-selector--active{background:#ffffff14;border-color:#fff3}.dark .att-month-dropdown{background:#162050;border-color:#ffffff14;box-shadow:0 10px 40px #0006}.dark .att-month-option{color:#94a3b8}.dark .att-month-option:hover{background:#ffffff0d;color:#f1f5f9}.dark .att-month-option--selected{background:#3b82f6;color:#fff!important}.dark .att-month-selector svg{color:#94a3b8}.att-scanner-frame{width:220px;height:220px;border:2px solid #E5E7EB;border-radius:20px;margin:0 auto 28px;display:flex;align-items:center;justify-content:center;position:relative;overflow:hidden;background:#f8fafc}.dark .att-scanner-frame{background:#0f172a66;border-color:#ffffff1a}.att-scanner-line{position:absolute;top:0;left:0;width:100%;height:3px;background:linear-gradient(90deg,transparent,#3B82F6,transparent);box-shadow:0 0 10px #3b82f6;animation:attScanMove 2.5s ease-in-out infinite;z-index:2}@keyframes attScanMove{0%,to{top:0%}50%{top:100%}}.att-modal-cancel-btn{width:100%;height:48px;background:transparent;color:#6b7280;border:1px solid #E5E7EB;border-radius:12px;font-size:15px;font-weight:600;cursor:pointer;font-family:Inter,sans-serif;transition:all .2s}.att-modal-cancel-btn:hover{background:#f9fafb;border-color:#d1d5db}.dark .att-modal-cancel-btn{color:#94a3b8;border-color:#ffffff1a}.dark .att-modal-cancel-btn:hover{background:#ffffff0a;border-color:#fff3}.att-records-pagination{display:flex;align-items:center;justify-content:center;gap:16px;margin-top:32px;padding-top:24px;border-top:1px solid rgba(13,28,68,.04)}.att-pag-btn{width:44px;height:44px;display:flex;align-items:center;justify-content:center;background:#fff;border:1px solid rgba(13,28,68,.08);border-radius:14px;color:#0b1957;cursor:pointer;transition:all .3s cubic-bezier(.175,.885,.32,1.275);box-shadow:0 2px 4px #0d1c4405}.att-pag-btn:hover:not(:disabled){border-color:#3b82f6;color:#3b82f6;transform:translateY(-2px);box-shadow:0 8px 15px #3b82f61a}.att-pag-btn:disabled{opacity:.3;cursor:not-allowed;background:#f8fafc}.att-pag-pill{display:flex;align-items:center;justify-content:center;gap:12px;background:#f6f3ed;padding:10px 24px;border-radius:22px;min-width:100px}.att-pag-current{font-size:18px;font-weight:800;color:#0b1957}.att-pag-separator{font-size:16px;font-weight:500;color:#94a3b8}.att-pag-total{font-size:18px;font-weight:700;color:#0b1957}.dark .att-records-pagination{border-top-color:#ffffff0f}.dark .att-pag-btn{background:#1a2560;border-color:#ffffff1a;color:#f1f5f9}.dark .att-pag-btn:hover:not(:disabled){border-color:#3b82f6;color:#3b82f6;box-shadow:0 8px 20px #0006}.dark .att-pag-pill{background:#ffffff0d}.dark .att-pag-current,.dark .att-pag-total{color:#f1f5f9}.submissions-page{display:flex;flex-direction:column;gap:20px;width:100%;max-width:1600px;margin:0 auto;padding:32px 24px;box-sizing:border-box;font-family:Inter,sans-serif;animation:pageFadeIn .4s ease-out}.submissions-stats-row{display:grid;grid-template-columns:repeat(4,1fr);gap:16px}.sub-stat-card{background:#fff;border-radius:12px;padding:24px 28px;display:flex;flex-direction:column;justify-content:center;align-items:flex-start;border:1px solid #EDE8DF;box-shadow:0 4px 15px #0d1c440a;box-sizing:border-box;gap:16px;transition:all .4s cubic-bezier(.175,.885,.32,1.275);cursor:default}.sub-stat-card:hover{transform:translateY(-8px);box-shadow:0 15px 35px #9eccfa73;border-color:#9eccfa;background:#fff}.sub-stat-label{font-size:13.5px;font-weight:500;color:#6b7280;margin:0}.sub-stat-value{font-size:28px;font-weight:700;line-height:1;margin:0}.sub-history-card{background:#fff;border-radius:20px;padding:28px;box-shadow:0 4px 20px #0d1c440a;box-sizing:border-box;border:1px solid transparent;transition:all .4s cubic-bezier(.175,.885,.32,1.275)}.sub-history-card:hover{transform:translateY(-4px);box-shadow:0 12px 35px #9eccfa59;border-color:#9eccfa}.sub-history-title{font-size:18px;font-weight:700;color:#0d1c44;margin:0 0 4px}.sub-history-header-flex{display:flex;justify-content:space-between;align-items:center;margin-bottom:24px}.sub-search-box{display:flex;align-items:center;background:#fbf3ea;border:1px solid rgba(11,25,87,.1);border-radius:8px;padding:8px 14px;gap:8px;color:#0b1957;transition:all .3s ease}.sub-search-box:focus-within{background:#fff;border-color:#3b82f6;box-shadow:0 0 12px #3b82f633}.sub-search-input{border:none;background:transparent;outline:none;font-size:13px;font-family:inherit;color:#0b1957;width:160px}.sub-search-input::placeholder{color:#94a3b8}.sub-search-box svg{transition:transform .3s ease,color .3s ease}.sub-search-box:focus-within svg{transform:scale(1.1);color:#3b82f6}@media(max-width:600px){.sub-search-input,.sub-search-box{width:100%}}.sub-history-list{display:flex;flex-direction:column;gap:8px}.sub-item-card{background:#fbf3ea;border:1px solid rgba(11,25,87,.1);border-radius:12px;padding:18px 24px;transition:all .4s cubic-bezier(.175,.885,.32,1.275);cursor:pointer}.sub-item-card:hover{transform:translate(10px) scale(1.02);box-shadow:0 10px 25px #9eccfa4d;border-color:#9eccfa;background:#fff}.sub-item-content{display:flex;justify-content:space-between;align-items:flex-start}.sub-item-main{display:flex;flex-direction:column;gap:6px}.sub-item-title{font-size:16px;font-weight:600;color:#0b1957;margin:0}.sub-item-date{font-size:13px;color:#6b7280;margin:0}.sub-item-pills{display:flex;gap:8px;margin-top:8px}.sub-pill{padding:4px 12px;border-radius:9999px;font-size:12px;font-weight:600;letter-spacing:.02em}.sub-pill--status.submitted{background:#dcfce7;color:#166534}.sub-pill--status.missed{background:#fff1f2;color:#e11d48;border:1px solid #FECDD3;box-shadow:0 2px 4px #e11d480d}.sub-pill--type{background:transparent;border:1px solid rgba(11,25,87,.2);color:#0b1957}.sub-pill--grade{background:#0b1957;color:#fff}.sub-item-actions{display:flex;align-items:center;gap:12px;padding-top:4px}.sub-icon-btn{background:transparent;border:none;cursor:pointer;color:#6b7280;display:flex;align-items:center;justify-content:center;padding:4px;transition:color .15s}.sub-icon-btn:hover{color:#0b1957}.sub-preview-btn{background:#0b19570d;border-radius:8px;padding:8px;width:34px;height:34px;color:#3b82f6;transition:all .3s ease}.sub-preview-btn:hover{background:#3b82f61a;transform:scale(1.1);color:#2563eb}.sub-status-toggle-btn{background:#0b19570d;border-radius:8px;padding:8px;width:34px;height:34px;color:#6b7280;transition:all .3s ease}.sub-status-toggle-btn:hover{background:#0b195714;transform:scale(1.1);color:#374151}.sub-status-toggle-btn.active{background:#0b1957;color:#fff}.sub-feedback-wrapper{margin-top:16px;padding-top:16px;border-top:1px solid rgba(13,28,68,.06);animation:feedbackSlideDown .3s ease-out}@keyframes feedbackSlideDown{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}.sub-feedback-container{padding:16px 20px;background:#fff;border-radius:12px;border-left:4px solid #0B1957;box-shadow:inset 0 2px 4px #00000005}.feedback-label{font-size:13px;font-weight:800;color:#3b82f6;margin:0 0 8px;text-transform:uppercase;letter-spacing:.05em}.feedback-text{font-size:14px;color:#4b5563;line-height:1.6;margin:0;font-weight:500}.sub-item-card--open{background:#fff!important;border-color:#3b82f6!important;box-shadow:0 10px 25px #3b82f626!important}@media(max-width:767px){.submissions-stats-row{grid-template-columns:repeat(2,1fr)}.sub-table-header{display:none}.sub-item{flex-direction:column;align-items:stretch;gap:16px;padding:20px!important;height:auto}.sub-item-date,.sub-item-grade,.sub-item-actions{width:100%;text-align:left;justify-content:flex-start}.sub-item-actions{border-top:1px solid rgba(13,28,68,.05);padding-top:12px;justify-content:space-between}}@media(max-width:600px){.sub-history-header-flex{flex-direction:column;align-items:flex-start;gap:16px}.sub-search-box{width:100%;box-sizing:border-box}.sub-search-input{width:100%}.sub-item-content{flex-direction:column;gap:16px}}.sub-pagination{display:flex;align-items:center;justify-content:center;gap:16px;margin-top:32px;padding-top:24px;border-top:1px solid rgba(13,28,68,.04)}.sub-pag-btn{width:44px;height:44px;display:flex;align-items:center;justify-content:center;background:#fff;border:1px solid rgba(13,28,68,.08);border-radius:14px;color:#0b1957;cursor:pointer;transition:all .3s cubic-bezier(.175,.885,.32,1.275);box-shadow:0 2px 4px #0d1c4405}.sub-pag-btn:hover:not(:disabled){border-color:#3b82f6;color:#3b82f6;transform:translateY(-2px);box-shadow:0 8px 15px #3b82f61a}.sub-pag-btn:disabled{opacity:.3;cursor:not-allowed;background:#f8fafc}.sub-pag-pill{display:flex;align-items:center;justify-content:center;gap:12px;background:#f6f3ed;padding:10px 24px;border-radius:22px;min-width:100px;box-shadow:inset 0 2px 4px #00000005}.sub-pag-current{font-size:18px;font-weight:800;color:#0b1957}.sub-pag-separator{font-size:16px;font-weight:500;color:#94a3b8}.sub-pag-total{font-size:18px;font-weight:700;color:#0b1957}.dark .sub-stat-card{background:#162050;box-shadow:0 2px 12px #0000004d;border:1px solid rgba(255,255,255,.08);transition:all .3s ease}.dark .sub-stat-card:hover{border-color:#60a5fa99;box-shadow:0 0 20px #3b82f640;transform:translateY(-2px)}.dark .sub-stat-label{color:#94a3b8}.dark .sub-history-card{background:#162050;box-shadow:0 2px 12px #0000004d;border:1px solid rgba(255,255,255,.06);transition:all .3s ease}.dark .sub-history-card:hover{border-color:#60a5fa66;box-shadow:0 0 20px #3b82f626}.dark .sub-history-title{color:#f1f5f9}.dark .sub-search-box{background:#ffffff0d;border-color:#ffffff1a;color:#94a3b8}.dark .sub-search-box:hover{background:#ffffff14;border-color:#3b82f666}.dark .sub-search-box:focus-within{background:#ffffff1a;border-color:#3b82f6;box-shadow:0 0 18px #3b82f666;color:#fff}.dark .sub-search-input{color:#f1f5f9}.dark .sub-search-box svg{color:#64748b}.dark .sub-search-box:focus-within svg{color:#60a5fa;filter:drop-shadow(0 0 5px rgba(96,165,250,.5))}.dark .sub-item-card{background:#1a2560;border:1px solid rgba(255,255,255,.06);transition:all .3s ease}.dark .sub-item-card:hover{border-color:#60a5fa99;box-shadow:0 0 15px #3b82f633;transform:translate(4px)}.dark .sub-item-title{color:#f1f5f9}.dark .sub-item-date{color:#94a3b8}.dark .sub-pill--type{background:#ffffff0d;border-color:#ffffff1a;color:#e2e8f0}.dark .sub-pill--status.submitted{background:#22c55e33;border:1px solid rgba(34,197,94,.4);color:#4ade80}.dark .sub-pill--status.missed{background:#ef444433;border:1px solid rgba(239,68,68,.4);color:#f87171}.dark .sub-pill--grade{background:#3b82f6;color:#fff}.dark .sub-icon-btn{color:#94a3b8}.dark .sub-icon-btn:hover{color:#f1f5f9}.dark .sub-preview-btn{background:#3b82f61f;border:1px solid rgba(59,130,246,.2);color:#93c5fd}.dark .sub-preview-btn:hover{background:#3b82f640;border-color:#93c5fd99;box-shadow:0 0 15px #3b82f666;color:#fff;transform:scale(1.12)}.dark .sub-status-toggle-btn{background:#94a3b81a;border:1px solid rgba(148,163,184,.15);color:#94a3b8}.dark .sub-status-toggle-btn:hover{background:#94a3b833;border-color:#94a3b866;color:#f1f5f9;transform:scale(1.12)}.dark .sub-status-toggle-btn.active{background:#3b82f6;color:#fff;border-color:#60a5fa}.dark .sub-item-card--open{background:#111b45!important;border-color:#3b82f6!important;box-shadow:0 10px 30px #0006!important}.dark .sub-feedback-wrapper{border-top-color:#ffffff1a}.dark .sub-feedback-container{background:#ffffff08;border-left-color:#3b82f6}.dark .feedback-label{color:#60a5fa}.dark .feedback-text{color:#94a3b8}.dark .sub-pagination{border-top-color:#ffffff0f}.dark .sub-pag-btn{background:#1a2560;border-color:#ffffff1a;color:#f1f5f9}.dark .sub-pag-btn:hover:not(:disabled){border-color:#3b82f6;color:#3b82f6;box-shadow:0 8px 20px #0006}.dark .sub-pag-pill{background:#ffffff0d}.dark .sub-pag-current,.dark .sub-pag-total{color:#f1f5f9}.rewards-page{display:flex;flex-direction:column;gap:24px;width:100%;max-width:1600px;margin:0 auto;padding:32px 24px;box-sizing:border-box;font-family:Inter,sans-serif;animation:pageFadeIn .4s ease-out}@keyframes pageFadeIn{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.rewards-summary-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:16px}.rewards-stat-card{background:#fff;border-radius:16px;padding:24px;display:flex;justify-content:flex-start;align-items:center;gap:20px;border:1px solid #ECE8DD;box-shadow:0 4px 15px #0d1c440a;min-height:120px;box-sizing:border-box;transition:all .4s cubic-bezier(.175,.885,.32,1.275);cursor:default}.rewards-stat-card:hover{transform:translateY(-8px);box-shadow:0 15px 35px #9eccfa73;border-color:#9eccfa}.rewards-stat-card:hover .rewards-stat-icon{transform:scale(1.15) rotate(8deg)}.rewards-stat-icon{width:54px;height:54px;border-radius:50%;display:flex;align-items:center;justify-content:center;flex-shrink:0;transition:transform .3s ease}.rewards-stat-info{display:flex;flex-direction:column;gap:4px}.rewards-stat-label{font-size:14px;font-weight:500;color:#6b7280}.rewards-stat-value{font-size:30px;font-weight:600;color:#0d1c44;line-height:1.1;letter-spacing:-.5px;margin:0}.rewards-stat-sub{font-size:13px;font-weight:500;color:#4b5563;margin-top:4px}.rewards-stat-icon{width:54px;height:54px;border-radius:50%;display:flex;align-items:center;justify-content:center;flex-shrink:0}.rewards-main-grid{display:grid;grid-template-columns:2fr 1fr;gap:24px;align-items:start}@media(max-width:1200px){.rewards-main-grid{grid-template-columns:1fr}}.achievements-column{display:flex;flex-direction:column;gap:16px}.rw-card{background:#fff;border-radius:16px;padding:24px;box-sizing:border-box;box-shadow:0 4px 15px #0d1c440a;transition:all .4s cubic-bezier(.175,.885,.32,1.275);border:1px solid transparent}.rw-card:hover{border-color:#3b82f6!important;box-shadow:0 15px 45px #3b82f64d!important;transform:translateY(-8px)}.rewards-section-title{font-size:20px;font-weight:800;color:#0b1957;margin-bottom:8px;letter-spacing:.02em}.rewards-section-subtitle{font-size:13.5px;color:#64748b;margin-bottom:24px;font-weight:500}.rewards-section-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:8px}.badge-filter-wrap{position:relative;z-index:100}.badge-filter-btn{display:flex;align-items:center;gap:12px;padding:8px 18px;border-radius:100px;background:#fdf9f3!important;border:none;color:#0b1957;font-size:14px;font-weight:700;cursor:pointer;transition:all .3s cubic-bezier(.175,.885,.32,1.275);min-width:90px;justify-content:space-between}.badge-filter-btn:hover{background:#f5efe6!important;transform:translateY(-2px);box-shadow:0 4px 12px #0b195714}.badge-filter-menu{position:absolute;top:calc(100% + 10px);right:0;width:140px;background:#fff;border-radius:20px;box-shadow:0 15px 40px #0b195726;display:flex;flex-direction:column;overflow:hidden;padding:6px;animation:menuFadeIn .3s cubic-bezier(.34,1.56,.64,1)}@keyframes menuFadeIn{0%{opacity:0;transform:translateY(-10px) scale(.95)}to{opacity:1;transform:translateY(0) scale(1)}}.badge-filter-menu button{background:#fdf9f3!important;border:none;color:#0b1957;padding:10px 16px;font-size:14px;font-weight:700;cursor:pointer;text-align:center;border-radius:999px;margin:3px;transition:all .2s}.badge-filter-menu button:hover{background:#f5efe6!important;transform:scale(1.03);color:#0d1c44}.rewards-badges-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:16px}.badge-card{border-radius:16px;padding:24px;display:flex;align-items:flex-start;gap:16px;background:#fdfbf7;border:1.5px solid #BFDBFE;box-shadow:0 4px 12px #0d1c4408;transition:all .4s cubic-bezier(.175,.885,.32,1.275);cursor:default}.badge-card:hover:not(.badge-card--progress){transform:translateY(-8px) scale(1.02);box-shadow:0 12px 30px #3b82f640;border-color:#3b82f6}.badge-card--progress:hover{transform:translateY(-4px);box-shadow:0 12px 30px #3b82f633;border-color:#3b82f6}.badge-card--progress{background:#fff;border:1.5px solid #E2E8F0;box-shadow:none}.badge-icon-wrap{width:48px;height:48px;border-radius:12px;display:flex;align-items:center;justify-content:center;flex-shrink:0}.badge-info{display:flex;flex-direction:column;gap:6px;flex:1}.badge-title{font-size:15px;font-weight:600;color:#0b1957;margin:0}.badge-desc{font-size:13px;color:#6b7280;margin:0;line-height:1.4}.badge-status-pill{margin-top:10px;background:#dcfce7;color:#166534;padding:5px 14px;border-radius:20px;font-size:11px;font-weight:700;display:inline-block;width:max-content;transition:all .3s}.badge-status-pill:hover{transform:scale(1.05);background:#bbf7d0}.badge-progress-wrap{margin-top:12px;display:flex;flex-direction:column;gap:6px}.badge-progress-bar{width:100%;height:4px;background:#e5e7eb;border-radius:9999px;overflow:hidden}.badge-progress-fill{height:100%;background:#93c5fd;border-radius:9999px}.badge-status-pill.locked-pill{background:#f1f5f9;color:#64748b}.earn-badge-btn{margin-top:10px;background:#0b1957;color:#fff;padding:8px 16px;border:none;border-radius:8px;font-size:12px;font-weight:700;cursor:pointer;transition:all .3s;width:max-content}.earn-badge-btn:hover{background:#1a2560;transform:translateY(-2px);box-shadow:0 4px 12px #0b195733}.badge-earned{background:#fdfbf7!important;border-color:#bbf7d0!important;box-shadow:0 8px 20px #16a34a1a!important}.badge-locked{background:#fff!important;border-color:#e2e8f0!important;opacity:.8}.badge-locked:hover{opacity:1}.badge-progress-pct{font-size:12px;color:#9ca3af}.loading-badges,.empty-badges{grid-column:span 2;padding:40px;text-align:center;color:#64748b;font-size:14px;font-weight:500;background:#f8fafc;border-radius:12px;border:1px dashed #CBD5E1}.leaderboard-card{padding:32px}.leaderboard-header{margin-bottom:24px}.leaderboard-title-wrap{display:flex;align-items:center;gap:10px;margin-bottom:6px}.leaderboard-title{font-size:18px;font-weight:700;color:#0b1957;margin:0}.leaderboard-subtitle{font-size:13.5px;color:#64748b;margin:0;font-weight:500}.leaderboard-list{display:flex;flex-direction:column;gap:12px}.rewards-page .leaderboard-item{display:flex;align-items:center;padding:12px 16px;border-radius:20px;transition:all .3s cubic-bezier(.175,.885,.32,1.275);cursor:default;background:#f8fafc;border:1.5px solid #E2E8F0}.rewards-page .leaderboard-item:hover{transform:translateY(-2px);box-shadow:0 8px 25px #3b82f633!important;border-color:#3b82f6!important;background:#fff}.rank-icon-wrap{width:24px;height:24px;display:flex;align-items:center;justify-content:center;margin-right:12px;flex-shrink:0}.rank-number{font-size:14px;font-weight:700;color:#64748b}.leaderboard-avatar{width:32px;height:32px;border-radius:50%;background:#dbeafe;color:#1e40af;display:flex;align-items:center;justify-content:center;font-size:11px;font-weight:700;margin-right:12px;flex-shrink:0}.leaderboard-name{flex:1;font-size:13.5px;font-weight:600;color:#0b1957;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.leaderboard-pts-wrap{display:flex;align-items:center;gap:8px;padding:6px 4px;border-radius:0;background:transparent;border:none;flex-shrink:0;transition:all .3s ease}.leaderboard-pts{font-size:15px;font-weight:800;color:#0b1957;letter-spacing:-.01em}.leaderboard-item:nth-child(1) .leaderboard-pts-wrap{background:transparent;border:none}.leaderboard-item:nth-child(2) .leaderboard-pts-wrap{background:transparent;border:none}.leaderboard-item:nth-child(3) .leaderboard-pts-wrap{background:transparent;border:none}.leaderboard-pagination{display:flex;align-items:center;justify-content:center;gap:16px;margin-top:32px}.pagination-btn{width:44px;height:44px;display:flex;align-items:center;justify-content:center;background:#0b1957;color:#fff;border:none;border-radius:14px;cursor:pointer;transition:all .2s cubic-bezier(.4,0,.2,1);box-shadow:0 4px 12px #0b195726}.pagination-btn:hover:not(:disabled){background:#1a2560;transform:translateY(-2px);box-shadow:0 8px 20px #0b195740}.pagination-info{display:flex;align-items:center;gap:12px;padding:10px 24px;background:#fdf9f3;border-radius:100px;font-size:22px;font-weight:800;color:#0b1957;min-width:90px;justify-content:center}.dark .pagination-info{background:#ffffff0d;color:#f8fafc}.reward-store-section{margin-top:0}.reward-store-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:24px}.reward-store-title{font-size:18px;font-weight:600;color:#0b1957;margin:0 0 16px;letter-spacing:-.2px}.reward-store-subtitle{font-size:14px;color:#6b7280;margin:0;font-weight:400}.store-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px}.store-card{background:#fff;width:100%;border-radius:20px;border:1px solid #BFDBFE;box-shadow:0 8px 20px #3b82f614;display:flex;flex-direction:column;align-items:stretch;overflow:hidden;transition:all .4s cubic-bezier(.16,1,.3,1);cursor:default;box-sizing:border-box;padding:16px;position:relative}.store-card:after{content:"";position:absolute;inset:0;border-radius:20px;background:radial-gradient(circle at top right,rgba(59,130,246,.03),transparent);pointer-events:none}.store-card:hover{transform:translateY(-10px) scale(1.02);box-shadow:0 20px 40px #3b82f640;border-color:#3b82f6}.store-card--purchased{border-color:#bbf7d0}.store-card-img-wrap{width:100%;height:160px;display:flex;align-items:center;justify-content:center;border-radius:14px;flex-shrink:0;overflow:hidden;background:#f8fafc;border:1px solid rgba(0,0,0,.03);position:relative}.stock-badge{position:absolute;top:10px;right:10px;padding:6px 12px;border-radius:8px;font-size:11px;font-weight:800;z-index:10;box-shadow:0 4px 10px #0000001a;text-transform:uppercase}.in-stock{background:#dcfce7;color:#166534;border:1px solid #BBF7D0}.out-of-stock{background:#fee2e2;color:#991b1b;border:1px solid #FECACA}.store-card-image{width:100%;height:100%;object-fit:cover;transition:transform .6s cubic-bezier(.16,1,.3,1)}.store-card:hover .store-card-image{transform:scale(1.08)}.store-card-body{width:100%;padding:16px 0;flex:1;display:flex;flex-direction:column;gap:4px}.store-card-name{font-size:16px;font-weight:700;color:#0b1957;margin:0}.store-card-desc{font-size:13px;color:#6b7280;margin:0;line-height:1.4;width:100%}.store-card-points{display:flex;align-items:center;gap:6px;margin-top:4px;height:20px}.store-card-star{font-size:15px;line-height:1}.store-card-pts-val{font-size:14px;font-weight:700;color:#0b1957}.store-purchase-btn{margin:8px 0 0;width:100%;height:40px;border-radius:8px;font-size:14px;font-weight:600;cursor:pointer;transition:background .18s ease,transform .12s ease;display:flex;align-items:center;justify-content:center;gap:8px;flex-shrink:0}.store-purchase-btn--redeem{background:#0b1957;color:#fff;border:none;box-shadow:0 4px 12px #0b195733}.store-purchase-btn--redeem:hover{background:#1a2560;transform:translateY(-2px);box-shadow:0 8px 20px #0b19574d,0 0 10px #3b82f633}.store-purchase-btn--redeem:active{background:#070f33;transform:translateY(0)}.store-purchase-btn--done{background:#dcfce7!important;color:#16a34a!important;cursor:default;box-shadow:none!important;transform:none!important}.store-purchase-btn--disabled{background:#8fa2bb;color:#fff;cursor:not-allowed;border:none}.store-toast{position:fixed;bottom:32px;right:32px;background:#fff;border:1px solid #BBF7D0;border-radius:16px;padding:18px 24px;display:flex;align-items:center;gap:14px;font-size:15px;font-weight:700;color:#16a34a;box-shadow:0 12px 36px #10b98133,0 4px 12px #00000014;z-index:99999;pointer-events:none;opacity:0;transform:translateY(120%) scale(.9);transition:all .5s cubic-bezier(.175,.885,.32,1.275)}.dark .reward-store-title{color:#f1f5f9}.dark .reward-store-subtitle{color:#94a3b8}.dark .store-card{background:#162050;border:1.5px solid rgba(59,130,246,.85);box-shadow:0 4px 20px #0000004d;transition:all .3s ease}.dark .store-card:hover{border-color:#60a5facc;box-shadow:0 0 25px #3b82f666;transform:translateY(-4px)}.dark .store-card-name{color:#f1f5f9}.dark .store-card-desc{color:#94a3b8}.dark .store-card-pts-val{color:#f1f5f9}.dark .store-card-img-wrap{border:1px solid rgba(255,255,255,.06)}.store-card-emoji--dark{filter:drop-shadow(0 0 8px rgba(255,255,255,.25))}.dark .store-toast{background:#162050;border-color:#16a34a66}@media(max-width:900px){.rewards-main-grid{grid-template-columns:1fr}.store-grid{grid-template-columns:repeat(2,1fr)}}@media(max-width:767px){.rewards-summary-grid,.rewards-badges-grid{grid-template-columns:1fr}}@media(max-width:640px){.rewards-page{padding:24px 16px}.rewards-summary-grid,.rewards-badges-grid,.store-grid{grid-template-columns:1fr}}.dark .rw-card{background:#162050;padding:24px;box-sizing:border-box;box-shadow:0 2px 12px #0000004d;transition:all .3s ease}.dark .rw-card:hover{box-shadow:0 0 20px #3b82f640}.dark .rewards-stat-card{background:#162050;border:1.5px solid rgba(59,130,246,.4);box-shadow:0 4px 20px #0000004d;transition:all .3s ease}.dark .rewards-stat-card:hover{border-color:#60a5facc;box-shadow:0 0 25px #3b82f666;transform:translateY(-2px)}.dark .rewards-stat-label{color:#94a3b8}.dark .rewards-stat-value{color:#f1f5f9}.dark .rewards-stat-sub{color:#64748b}.dark .rewards-section-title{color:#f1f5f9}.dark .rewards-section-subtitle{color:#94a3b8}.dark .badge-card{background:#162050;border:1.5px solid rgba(59,130,246,.5)!important;box-shadow:0 4px 20px #00000040;transition:all .3s ease}.dark .badge-card:hover{border-color:#60a5facc!important;box-shadow:0 0 25px #3b82f666;transform:translateY(-3px)}.dark .badge-status-pill.dark-pill{background:transparent;padding:0;color:#10b981;font-size:13px;font-weight:500}.dark .badge-card--progress{background:#1a2560;border-color:#ffffff0f!important}.dark .badge-title{color:#f1f5f9}.dark .badge-desc{color:#94a3b8}.dark .badge-progress-pct{color:#64748b}.dark .badge-progress-bar{background:#ffffff1a}.dark .rewards-page .leaderboard-item{background:#ffffff08!important;border:1px solid rgba(255,255,255,.1)!important;border-radius:14px!important}.dark .rewards-page .leaderboard-item:hover{background:#ffffff0f!important;border-color:#3b82f6!important;box-shadow:0 0 20px #3b82f673!important;transform:translateY(-2px)}.dark .leaderboard-title{color:#f8fafc}.dark .leaderboard-subtitle{color:#94a3b8}.dark .leaderboard-name,.dark .leaderboard-pts{color:#f1f5f9}.dark .leaderboard-pts-wrap{background:transparent;border:none;padding:6px 4px}.dark .leaderboard-item:nth-child(n) .leaderboard-pts-wrap{background:transparent;border:none}.dark .leaderboard-avatar{background:#3b82f633;color:#93c5fd}.dark .view-more-leaderboard{color:#94a3b8}.dark .view-more-leaderboard:hover{background:#ffffff0d;color:#f1f5f9}.dark .rw-card{background:#16205099;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border:1px solid rgba(255,255,255,.08)}.dark .rw-card:hover{border-color:#3b82f6!important;box-shadow:0 0 25px #3b82f666!important;transform:translateY(-4px)}.dark .badge-card{background:#1e296466!important;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border:1px solid rgba(255,255,255,.05)!important}.dark .rw-card:hover{border:1.5px solid #3B82F6!important;box-shadow:0 0 35px #3b82f673!important;transform:translateY(-8px)}.dark .badge-card:hover{background:#1e296499!important;border:1.5px solid #3B82F6!important;box-shadow:0 0 25px #3b82f666!important;transform:translateY(-8px)}.dark .rewards-stat-card{background:#16205099!important;border:1px solid rgba(255,255,255,.1)!important}.dark .rewards-stat-card:hover{border:1.5px solid #3B82F6!important;box-shadow:0 0 25px #3b82f659!important;transform:translateY(-6px)}.dark .store-card{background:#16205099!important;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border:1px solid rgba(255,255,255,.08)!important}.dark .store-card:hover{border:1.5px solid #3B82F6!important;box-shadow:0 0 30px #3b82f673!important;background:#162050cc!important;transform:translateY(-10px)}.dark .store-purchase-btn--redeem{background:#3b82f6;box-shadow:0 4px 15px #3b82f64d}.dark .store-purchase-btn--redeem:hover{background:#2563eb;box-shadow:0 8px 25px #3b82f680}.dark .badge-filter-btn{background:#ffffff14!important;color:#fff!important;border:1px solid rgba(255,255,255,.1)!important}.dark .badge-filter-btn:hover{background:#ffffff1f!important;border-color:#3b82f6!important}.dark .badge-filter-menu{background:#0d163ff2!important;-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);border:1.5px solid rgba(255,255,255,.1)!important}.dark .badge-filter-menu button{background:#ffffff14!important;color:#f1f5f9!important}.dark .badge-filter-menu button:hover{background:#3b82f6!important;color:#fff!important}.dark-tab{background:#ffffff0d!important;color:#94a3b8!important;border:1px solid rgba(255,255,255,.1)!important;transition:all .3s ease}.dark-tab.active{background:#3b82f6!important;color:#fff!important;border-color:#3b82f6!important;box-shadow:0 4px 15px #3b82f666}.dark-history-card{background:#16205099!important;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border:1px solid rgba(59,130,246,.3)!important;box-shadow:0 4px 15px #0003!important}.dark-history-card:hover{border-color:#3b82f6!important;box-shadow:0 0 20px #3b82f64d!important;transform:translateY(-2px)}.history-card{display:flex;justify-content:space-between;align-items:center;padding:16px 20px;border-radius:16px;transition:all .3s ease;border:1px solid #E2E8F0;background:#f8fafc}.history-card-left{display:flex;gap:16px;align-items:center}.history-reward-img{width:60px;height:40px;border-radius:8px;object-fit:cover;border:1px solid rgba(0,0,0,.05)}.history-reward-name{margin:0;font-size:15px;font-weight:700;color:#0b1957}.dark-history-card .history-reward-name{color:#f1f5f9}.history-reward-date{color:#64748b;font-size:12px}.dark-history-card .history-reward-date{color:#94a3b8}.voucher-code-box{background:#fff;padding:10px 24px;border-radius:12px;border:2px dashed #3B82F6;cursor:pointer;font-weight:800;color:#3b82f6;font-family:JetBrains Mono,monospace;letter-spacing:1px;transition:all .3s ease}.voucher-code-box:hover{transform:scale(1.05);background:#eff6ff}.dark-voucher{background:#3b82f61a!important;border-color:#60a5fa!important;color:#60a5fa!important;text-shadow:0 0 10px rgba(96,165,250,.4)}.dark-voucher:hover{background:#3b82f633!important;box-shadow:0 0 15px #3b82f64d}.dark .loading-badges,.dark .empty-badges{background:#ffffff0d!important;border-color:#ffffff1a!important;color:#94a3b8!important}.notif-panel-overlay{position:fixed;top:0;left:0;width:100%;height:100%;background:#0006;backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px);z-index:1200;display:flex;justify-content:flex-end}.notif-panel-content{width:100%;max-width:420px;height:100%;background:#ffffffd9;backdrop-filter:blur(25px);-webkit-backdrop-filter:blur(25px);box-shadow:-15px 0 50px #0d195733;display:flex;flex-direction:column;position:relative;overflow:hidden;animation:profileSlideSpring .6s cubic-bezier(.34,1.56,.64,1);border-top-left-radius:30px;border-bottom-left-radius:30px}.notif-panel-content:before{content:"";position:absolute;top:0;left:0;width:3px;height:100%;background:linear-gradient(180deg,transparent,#9ECCFA,#0B1957,#9ECCFA,transparent);background-size:100% 200%;animation:borderFlow 4s linear infinite;z-index:5;border-top-left-radius:30px;border-bottom-left-radius:30px}.notif-panel-header{padding:24px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid #F1EFE9;position:relative;z-index:10}.notif-panel-title{font-size:20px;font-weight:700;color:#0b1957;margin:0}.notif-panel-close{background:none;border:none;cursor:pointer;padding:8px;display:flex;align-items:center;justify-content:center;transition:transform .2s;color:#0b1957}.notif-panel-close:hover{transform:rotate(90deg)}.notif-panel-body{flex:1;overflow-y:auto;padding:32px 24px;display:flex;flex-direction:column;gap:16px;position:relative;z-index:10}.notif-panel-item{display:flex;gap:16px;padding:18px;background:#ffffff80;border-radius:18px;border:1px solid #F1EFE9;transition:all .3s cubic-bezier(.34,1.56,.64,1)}.notif-panel-item:hover{transform:translate(-5px) scale(1.02);background:#fff;box-shadow:0 8px 25px #0d195714;border-color:#9eccfa}.notif-panel-icon-box{width:44px;height:44px;border-radius:12px;display:flex;align-items:center;justify-content:center;flex-shrink:0;transition:transform .3s ease}.notif-panel-item:hover .notif-panel-icon-box{transform:rotate(-5deg)}.notif-panel-icon-box.assignment{background:#e0f2fe;color:#0369a1}.notif-panel-icon-box.lecture{background:#dcfce7;color:#166534}.notif-panel-icon-box.feedback{background:#fef3c7;color:#92400e}.notif-panel-icon-box.alert{background:#fee2e2;color:#991b1b}.notif-panel-icon-box.announcement{background:#fef3c7;color:#92400e}.notif-panel-icon-box.holiday{background:#dcfce7;color:#166534}.notif-panel-icon-box.session{background:#f3e8ff;color:#7e22ce}.notif-panel-text-box{flex:1}.notif-panel-msg{font-size:14.5px;font-weight:600;color:#374151;margin:0 0 4px;line-height:1.4}.notif-panel-time{font-size:12px;color:#9ca3af;margin:0}.dark .notif-panel-content{background:#0d163feb}.dark .notif-panel-content:before{background:linear-gradient(180deg,transparent,#0EA5E9,#D946EF,#0EA5E9,transparent)}.dark .notif-panel-header{border-bottom-color:#ffffff14}.dark .notif-panel-title,.dark .notif-panel-close{color:#f1f5f9}.dark .notif-panel-item{background:#ffffff08;border-color:#ffffff0d}.dark .notif-panel-item:hover{background:#ffffff0f;border-color:#0ea5e94d}.dark .notif-panel-msg{color:#e5e7eb}.dark .notif-panel-time{color:#94a3b8}@media(max-width:480px){.notif-panel-content{max-width:100%;border-radius:0}.notif-panel-content:before{border-top-left-radius:0;border-bottom-left-radius:0}}.dashboard-root{min-height:100vh;background:#f5f2ea;display:flex;flex-direction:column;font-family:Inter,sans-serif}.navbar{background:#0d1c44;height:64px;display:flex;align-items:center;padding:0 28px;gap:0;position:sticky;top:0;z-index:100;box-shadow:0 2px 16px #0d1c444d}.navbar-left{display:flex;align-items:center;gap:10px;flex-shrink:0;margin-right:auto}.nav-logo-box{width:40px;height:40px;background:#a4cafe;border-radius:12px;display:flex;align-items:center;justify-content:center}.nav-brand{font-size:18px;font-weight:700;color:#fff;white-space:nowrap;letter-spacing:.02em}.mobile-menu-btn{display:none;background:none;border:none;color:#fff;cursor:pointer;padding:8px;border-radius:8px;margin-right:4px;transition:all .2s;background:#ffffff0d}.mobile-menu-btn:hover{background:#ffffff26}.navbar-nav{display:flex;align-items:center;justify-content:center;flex:1;height:64px;margin:0;padding:0;box-sizing:border-box;font-size:16px;color:#0b1957;gap:8px}.nav-item{background:none;border:none;color:#cbd5e1;font-family:inherit;font-size:15px;font-weight:500;padding:8px 16px;border-radius:8px;cursor:pointer;transition:all .2s ease;white-space:nowrap}.nav-item:hover:not(.nav-item--active){color:#fff;background:#ffffff1a}.nav-item:active{transform:scale(.96)}.nav-item--active{background:#9eccfa;color:#0b1957;font-weight:600;border:none;border-radius:100px;padding:8px 16px}.navbar-right{display:flex;align-items:center;gap:8px;flex-shrink:0;margin-left:auto}.icon-btn{width:36px;height:36px;background:#ffffff1a;border:none;border-radius:50%;color:#ffffffd9;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background .2s;position:relative}.icon-btn:hover{background:#fff3}.icon-btn.active{background:#ffffff4d;color:#fff;box-shadow:0 0 10px #ffffff1a}.avatar-btn{background:none;border:none;cursor:pointer;padding:0;border-radius:50%;transition:opacity .2s}.avatar-btn:hover{opacity:.85}.profile-menu-wrap{position:relative;display:inline-block}.profile-dropdown{position:absolute;top:calc(100% + 12px);right:0;background:#fff;box-shadow:0 4px 20px #0d1c441f;border-radius:12px;padding:8px 0;min-width:170px;z-index:200;border:1px solid rgba(13,28,68,.05)}.profile-dropdown-item{display:block;width:100%;text-align:left;padding:10px 18px;background:none;border:none;font-family:Inter,sans-serif;font-size:13.5px;font-weight:500;color:#0d1c44;cursor:pointer;transition:background .15s,color .15s}.profile-dropdown-item:hover{background:#f9fafb}.profile-dropdown-item.text-red{color:#dc2626}.profile-dropdown-item.text-red:hover{background:#fef2f2;color:#b91c1c}.dashboard-body{flex:1;width:100%;max-width:1600px;margin:0 auto;box-sizing:border-box;padding-bottom:60px}.container{max-width:1600px;margin:0 auto;padding:32px 24px;display:flex;flex-direction:column;gap:24px}.greeting-card{background:linear-gradient(to right,#9eccfa33,#d1e8ff33);border-radius:16px;padding:24px 32px;border:1px solid rgba(158,204,250,.3);display:flex;flex-direction:column;justify-content:center;transition:all .4s cubic-bezier(.175,.885,.32,1.275);cursor:default}.greeting-card:hover{transform:translateY(-5px);box-shadow:0 12px 30px #9eccfa80;border-color:#9eccfacc}.greeting-title{font-size:24px;font-weight:700;color:#0b1957;margin:0 0 6px}.greeting-text{font-size:16px;color:#4b5563;margin:0}.stats-row{display:grid;grid-template-columns:repeat(4,1fr);gap:24px}@media(max-width:1200px){.stats-row{grid-template-columns:repeat(2,1fr)}}@media(max-width:640px){.stats-row,.stats-row.is-marked{grid-template-columns:1fr}}.stat-card{background:#fff;border-radius:16px;padding:24px;display:flex;align-items:flex-start;justify-content:space-between;border:1px solid #f3f4f6;transition:all .4s cubic-bezier(.175,.885,.32,1.275);box-shadow:0 2px 10px #0d1c440a}.stat-card:hover{transform:translateY(-8px);box-shadow:0 15px 35px #9eccfa73;border-color:#9eccfa}.stat-card:hover .stat-icon-box{transform:scale(1.15) rotate(5deg)}.stat-info{display:flex;flex-direction:column}.stat-label{font-size:14px;color:#0b1957;font-weight:400;margin:0}.stat-value{font-size:28px;font-weight:600;color:#0b1957;margin:8px 0;line-height:1}.stat-sub{font-size:11.5px;color:#6b7280;margin:0}.stat-icon-box{width:48px;height:48px;border-radius:12px;display:flex;align-items:center;justify-content:center;flex-shrink:0;transition:transform .3s ease}.mark-att-card{flex-direction:column;align-items:flex-start;justify-content:flex-start;gap:0}.mark-att-card .stat-info{width:100%}.mark-att-date{font-size:22px!important;font-weight:700!important;line-height:1.2!important;margin:6px 0 2px!important}.mark-att-actions{margin-top:16px;width:100%}.mark-attendance-btn{width:100%;background:#0d1943;color:#fff;border:none;border-radius:12px;padding:12px 0;font-size:15px;font-weight:700;cursor:pointer;transition:all .3s cubic-bezier(.175,.885,.32,1.275);display:flex;align-items:center;justify-content:center;text-shadow:0 1px 2px rgba(0,0,0,.1)}.mark-attendance-btn:hover{background:#16245a;transform:translateY(-2px);box-shadow:0 8px 20px #0d194340}.mark-attendance-btn:active{transform:translateY(1px)}.mark-attendance-btn:disabled{background:#9ca3af!important;opacity:.6;cursor:not-allowed;transform:none!important;box-shadow:none!important}.status-item{display:flex;align-items:center;gap:10px;font-size:14.5px;font-weight:600;letter-spacing:.01em}.status-item.marked{color:#10b981;background:#10b9810d;padding:8px 12px;border-radius:8px;width:fit-content}.status-text-green{color:#10b981;display:flex;align-items:center;gap:8px}.mark-att-card .stat-icon-box{position:absolute;top:24px;right:24px}.mark-att-card{position:relative}.card{background:#fff;border-radius:20px;padding:32px;border:1px solid #f3f4f6;box-shadow:0 4px 15px #00000005;transition:all .4s cubic-bezier(.175,.885,.32,1.275)}.card:hover{transform:translateY(-4px);box-shadow:0 12px 30px #9eccfa59;border-color:#9eccfa}.card-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}.card-header-left{display:flex;align-items:center;gap:8px}.card-title{font-size:18px;font-weight:600;color:#0b1957;margin:0}.card-subtitle{font-size:14px;color:#6b7280;margin-bottom:20px;margin-top:-6px}.main-grid{display:grid;grid-template-columns:1fr;gap:24px}@media(min-width:1024px){.main-grid{grid-template-columns:repeat(3,1fr)}.left-column{grid-column:span 2}}.left-column,.col-right{display:flex;flex-direction:column;gap:24px}.deadlines-card{background:#fff;border-radius:16px;padding:24px;border:1px solid #f3f4f6;box-shadow:0 1px 2px #0000000d}.deadlines-header{display:flex;align-items:center;gap:8px;margin-bottom:16px}.calendar-icon{width:20px;height:20px;color:#0b1957}.deadlines-title{font-size:18px;font-weight:600;color:#0b1957;margin:0}.deadlines-subtitle{font-size:14px;color:#4b5563;margin-bottom:16px;margin-top:-6px}.deadlines-list{display:flex;flex-direction:column;gap:12px}.deadline-item{display:flex;align-items:center;justify-content:space-between;padding:16px;border-radius:12px;border:1px solid;transition:all .4s cubic-bezier(.175,.885,.32,1.275)}.deadline-item:hover{transform:translateY(-5px) scale(1.01);box-shadow:0 12px 25px #9eccfa59;border-color:#9eccfa}.deadline-left{display:flex;align-items:center;gap:16px}.deadline-icon-box{width:48px;height:48px;border-radius:12px;display:flex;align-items:center;justify-content:center}.file-icon{width:20px;height:20px}.deadline-title{font-weight:500;color:#0b1957;margin:0}.deadline-course{font-size:14px;color:#4b5563;margin:0}.deadline-right{text-align:right}.deadline-days{font-weight:600}.deadline-date{font-size:14px;color:#4b5563}.deadline-urgent{background:#fef2f2;border-color:#fecaca}.deadline-warning{background:#fff7ed;border-color:#fed7aa}.deadline-normal{background:#f8f3ea;border-color:#e5e7eb}.icon-urgent{background:#fee2e2}.icon-warning{background:#ffedd5}.icon-normal{background:#9eccfa}.text-urgent{color:#dc2626}.text-warning{color:#ea580c}.text-normal{color:#0b1957}.leaderboard-list{display:flex;flex-direction:column;gap:10px}.leaderboard-row{display:flex;align-items:center;gap:12px;padding:12px 16px;border-radius:16px;background:#fafafa;border:1px solid #F3F4F6;transition:all .3s cubic-bezier(.175,.885,.32,1.275)}.leaderboard-row:hover{transform:translateY(-2px);box-shadow:0 8px 25px #3b82f626!important;border-color:#3b82f6!important;background:#fff}.leaderboard-row--gold .lb-points,.leaderboard-row--silver .lb-points,.leaderboard-row--bronze .lb-points{background:transparent;border:none}.lb-rank{width:26px;text-align:center;flex-shrink:0;font-size:16px;line-height:1}.lb-num{font-size:14px;font-weight:700;color:#6b7280}.lb-name{flex:1;font-size:14px;font-weight:600;color:#0b1957;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.lb-points{font-size:15px;font-weight:800;color:#0b1957;white-space:nowrap;display:flex;align-items:center;gap:6px;background:transparent;padding:6px 4px;border:none}.leaderboard-row--gold .lb-points,.leaderboard-row--silver .lb-points,.leaderboard-row--bronze .lb-points{background:transparent}.chart-wrap{margin-top:8px}.att-chart-legend{display:flex;align-items:center;gap:18px;justify-content:center;margin-top:10px;font-size:12px;font-weight:500;color:#6b7280}.att-legend-dot{display:inline-block;width:9px;height:9px;border-radius:50%;margin-right:4px}.faculty-card{padding:0;overflow:hidden}.faculty-card .card-header{padding:24px 24px 20px}.faculty-list{padding:16px 24px 24px;display:flex;flex-direction:column;gap:12px}.faculty-item{background:#f8f3ea;border:1px solid #E5E7EB;border-radius:12px;overflow:hidden;transition:transform .2s,box-shadow .2s}.faculty-item-name{margin:0 0 4px;font-size:14.5px;font-weight:600;color:#0b1957}.faculty-item-role.role-teacher,.faculty-item-role.role-admin{background:#bfdbfe;color:#1e40af}.faculty-item-details{padding:16px;display:flex;flex-direction:column;gap:12px;background:#ffffff4d}.dark .faculty-item{background:#1a2560;border-color:#ffffff14}.dark .faculty-item-header{border-color:#ffffff14}.dark .faculty-item-expand{background:#ffffff0d}.dark .faculty-item:hover{border-color:#3b82f6!important;box-shadow:0 0 18px #3b82f673!important;transform:translateY(-2px);background:#3b82f60d}.dark .faculty-item:hover .faculty-item-expand{background:#ffffff1a}.dark .faculty-item-details{background:transparent}.dark .faculty-detail-value{color:#e2e8f0}.admin-note{background:#fff7ed;border:1px solid #FED7AA;border-radius:12px;padding:14px 16px;font-size:13px;color:#92400e;margin-top:14px;line-height:1.5}.submit-assignments-card{padding:0;overflow:hidden}.submit-card-header{padding:24px 24px 20px;background:#fff;display:flex;justify-content:space-between;align-items:center;margin:0}.submit-card-title{font-size:18px;font-weight:600;color:#0b1957;margin:0}.submit-search-wrap{width:220px}.submit-search-input{width:100%;padding:10px 14px;font-size:13px;border-radius:8px;border:1px solid #ECE8DD;outline:none;background:#fdf9f3;color:#4b5563;font-family:inherit;box-sizing:border-box;transition:all .3s ease}.submit-search-input::placeholder{color:#9ca3af}.submit-search-input:focus{background:#fff;border-color:#3b82f6;box-shadow:0 0 12px #3b82f633}.submit-list-wrap{padding:16px 24px 24px;gap:8px;background:#fff;display:flex;flex-direction:column}.submit-row-stacked{border:1px solid #E5E7EB;border-radius:8px;overflow:hidden;padding:0;display:flex;flex-direction:column;align-items:stretch}.submit-row-header{padding:16px 20px;background:#f8f3ea;display:flex;justify-content:space-between;align-items:flex-start}.submit-row-title{margin:0 0 6px;font-size:14.5px;font-weight:600;color:#0b1957}.submit-row-due{margin:0;font-size:12px;color:#6b7280}.submit-row-desc{margin:5px 0 0;font-size:12.5px;color:#64748b;line-height:1.5;white-space:pre-wrap}.upload-icon-btn{background:none;border:none;cursor:pointer;color:#0b1957;padding:4px}.upload-icon-btn:hover{color:#3b82f6}.submit-upload-area{padding:16px 20px;background:#fff}.uploaded-file-card{display:flex;justify-content:space-between;align-items:center;padding:14px 16px;background:#f9fafb;border:1px solid #E5E7EB;border-radius:6px;margin-bottom:16px}.uploaded-file-card.success{background:#f0fdf4;border-color:#bbf7d0;margin-bottom:16px}.uploaded-file-info{display:flex;align-items:center;gap:10px}.uploaded-file-name{font-size:13.5px;color:#374151;font-weight:500}.success-info .uploaded-file-name{color:#166534}.uploaded-file-badge{font-size:12px;color:#111827;font-weight:700;margin-left:6px}.success-badge{color:#166534}.uploaded-file-remove{background:none;border:none;cursor:pointer;color:#9ca3af}.uploaded-file-remove:hover{color:#ef4444}.submit-btn-dark{background:#0b1957;color:#fff;border:none;padding:10px 24px;border-radius:8px;font-size:13.5px;font-weight:600;cursor:pointer;font-family:Inter,sans-serif;transition:background .2s}.submit-btn-dark:hover{background:#1a2d5a}.submit-btn-dark.disabled{background:#374151;cursor:not-allowed;opacity:.9}.submit-url-wrap{margin-bottom:20px}.mt-12{margin-top:12px}.submit-url-input{width:100%;padding:14px 20px;background:#fff;border:1.5px solid rgba(13,28,68,.08);border-radius:10px;font-size:14px;color:#0b1957;text-align:center;outline:none;transition:all .2s cubic-bezier(.4,0,.2,1);font-family:inherit;box-sizing:border-box;box-shadow:0 2px 4px #0d1c4405}.submit-url-input::placeholder{color:#94a3b8;opacity:.8}.submit-url-input:hover{border-color:#3b82f64d;background:#fbfcfe}.submit-url-input:focus{background:#fff;border-color:#3b82f6;box-shadow:0 0 12px #3b82f633;transform:translateY(-1px)}.submit-url-wrap.is-submitted .submit-url-input{background:#f9fafb;border-color:#e5e7eb;color:#64748b;cursor:default;box-shadow:none;transform:none}.dark .submit-url-input{background:#ffffff0a;border-color:#ffffff1a;color:#f1f5f9;box-shadow:none}.dark .submit-url-input:focus{border-color:#3b82f6;background:#ffffff14;box-shadow:0 0 18px #3b82f666}.dark .submit-url-wrap.is-submitted .submit-url-input{background:#ffffff05;border-color:#ffffff0d}.submit-list{display:flex;flex-direction:column;gap:12px}.submit-row{transition:transform .15s}.submit-row:hover{transform:translateY(-2px);box-shadow:0 4px 12px #0000000d}.submit-info{flex:1;min-width:0}.submit-title{font-size:15px;font-weight:600;color:#0b1957;margin:0 0 4px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.submit-due{font-size:13px;color:#6b7280;margin:0}.attach-btn{flex-shrink:0;background:#0b1957;color:#fff;border:none;border-radius:10px;padding:8px 16px;font-family:Inter,sans-serif;font-size:12.5px;font-weight:600;cursor:pointer;transition:background .2s,transform .15s;white-space:nowrap}.attach-btn:hover{background:#1a2d5a;transform:scale(1.03)}.submit-file-label{display:flex;align-items:center;gap:6px;margin-top:6px;font-size:13px;font-weight:500;color:#3b82f6;cursor:default}.submit-file-label span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:220px}.submit-dropzone{flex-shrink:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;width:170px;min-height:80px;border:1.5px dashed rgba(11,25,87,.35);border-radius:12px;background:#0b195708;cursor:pointer;padding:14px 16px;box-sizing:border-box;transition:border-color .2s,background .2s;color:#6b7280}.submit-dropzone:hover{border-color:#3b82f6;background:#3b82f60a}.submit-drop-text{font-size:11.5px;font-weight:500;color:#4b5563;text-align:center;line-height:1.3}.submit-browse-text{font-size:11px;font-weight:600;color:#3b82f6;text-align:center;transition:color .15s,text-decoration-color .15s;text-decoration:underline;text-decoration-color:transparent}.submit-dropzone:hover .submit-browse-text{color:#0b1957;text-decoration-color:#0b1957}.submit-action-group{display:flex;align-items:center;gap:8px;flex-shrink:0}.submit-green-btn{background:#22c55e;color:#fff;border:none;border-radius:9999px;padding:8px 20px;font-size:13px;font-weight:600;cursor:pointer;font-family:Inter,sans-serif;transition:background .2s,transform .15s;white-space:nowrap}.submit-green-btn:hover{background:#16a34a;transform:scale(1.03)}.submit-view-btn{background:#0b1957;color:#fff;border:none;border-radius:9999px;padding:8px 18px;font-size:13px;font-weight:600;cursor:pointer;font-family:Inter,sans-serif;transition:background .2s,transform .15s;white-space:nowrap}.submit-view-btn:hover{background:#1a2d5a;transform:scale(1.03)}.submit-remove-btn{width:32px;height:32px;border-radius:50%;background:#ef4444;color:#fff;border:none;font-size:18px;font-weight:700;line-height:1;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:background .2s,transform .15s;flex-shrink:0}.submit-remove-btn:hover{background:#dc2626;transform:scale(1.08)}.dark .submit-file-label{color:#60a5fa}.dark .submit-dropzone{border-color:#fff3;background:#ffffff08;color:#94a3b8}.dark .submit-dropzone:hover{border-color:#60a5fa;background:#60a5fa0d}.dark .submit-drop-text{color:#94a3b8}.dark .submit-browse-text{color:#60a5fa}.dark .submit-dropzone:hover .submit-browse-text{color:#f1f5f9;text-decoration-color:#f1f5f9}.dark .submit-view-btn{background:#1e3a8a;color:#fff;border:none}.dark .submit-view-btn:hover{background:#2563eb}.dark .submit-card-header{background:transparent;border-bottom:1px solid rgba(255,255,255,.08)}.dark .submit-card-title{color:#f1f5f9}.dark .submit-search-input{background:#ffffff0d;color:#f1f5f9}.dark .submit-row-stacked{border-color:#ffffff14;background:#ffffff05}.dark .submit-row-header{background:#ffffff08;border-bottom:1px solid rgba(255,255,255,.05)}.dark .submit-row-due{color:#94a3b8}@media(max-width:1024px){.main-grid,.content-grid{grid-template-columns:1fr}.col-left,.col-right{grid-column:span 1}.stats-row,.stats-row.is-marked{grid-template-columns:repeat(2,1fr)}}.student-mobile-drawer,.student-mobile-backdrop{display:none}@media(max-width:1024px){.desktop-nav{display:none!important}.mobile-menu-btn{display:flex;align-items:center;justify-content:center;z-index:1001}.student-mobile-drawer{position:fixed;top:0;left:-300px;width:280px;height:100vh;background:#0d1c44;z-index:3000;transition:all .4s cubic-bezier(.4,0,.2,1);display:flex;flex-direction:column;box-shadow:10px 0 30px #0006}.student-mobile-drawer--open{left:0}.drawer-header{padding:24px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid rgba(255,255,255,.1)}.drawer-brand{font-size:20px;font-weight:700;color:#fff}.drawer-close{background:none;border:none;cursor:pointer;padding:5px}.drawer-items{padding:20px;display:flex;flex-direction:column;gap:10px}.drawer-item{width:100%;text-align:left;padding:14px 20px;font-size:16px;color:#cbd5e1;background:transparent;border:none;border-radius:12px;font-weight:500;transition:all .2s}.drawer-item--active{background:#4b6cb7;color:#fff;font-weight:700}.student-mobile-backdrop{position:fixed;inset:0;background:#0009;z-index:2500;opacity:0;pointer-events:none;transition:opacity .3s ease;display:block}.student-mobile-backdrop--visible{opacity:1;pointer-events:auto}.nav-brand{font-size:14px}.nav-logo-box{width:32px;height:32px}}@media(max-width:640px){.dashboard-body{padding:16px 14px 32px}.greeting-card{padding:20px}.greeting-title{font-size:20px}.stats-row,.stats-row.is-marked{grid-template-columns:1fr;gap:12px}.card{padding:24px 16px}.submit-card-header{flex-direction:column;align-items:flex-start;gap:12px;padding:20px 16px}.submit-search-wrap{width:100%}.submit-list-wrap{padding:12px 16px 16px}.nav-status-badge{display:none}}@media(max-width:400px){.confirm-submit-modal,.dash-pass-modal{padding:24px 16px}.dash-pass-actions{flex-direction:column;gap:10px}}.dash-pass-input:focus{border-color:#9eccfa;box-shadow:0 0 10px #9eccfa66}.confirm-submit-modal{background:#fff;width:100%;max-width:400px;border-radius:20px;padding:32px 32px 28px;box-shadow:0 14px 44px -10px #0003;position:relative;box-sizing:border-box;font-family:Inter,sans-serif;display:flex;flex-direction:column;align-items:center;text-align:center}.confirm-submit-icon-wrap{width:64px;height:64px;border-radius:50%;background:#fff9e6;display:flex;align-items:center;justify-content:center;margin-bottom:20px;box-sizing:border-box}.confirm-submit-title{font-size:20px;font-weight:600;color:#0b1957;margin:0 0 10px}.confirm-submit-subtitle{font-size:14px;color:#6b7280;line-height:1.5;margin:0 0 28px}.confirm-submit-actions{display:flex;gap:12px;width:100%}.confirm-submit-cancel{flex:1;height:48px;background:#f1f5f9;border:none;border-radius:12px;font-size:15px;font-weight:600;color:#0d1c44;cursor:pointer;font-family:Inter,sans-serif;transition:background .15s}.confirm-submit-cancel:hover{background:#e2e8f0}.confirm-submit-btn{flex:1;height:48px;background:#0b1957;border:none;border-radius:12px;font-size:15px;font-weight:600;color:#fff;cursor:pointer;font-family:Inter,sans-serif;transition:opacity .15s}.confirm-submit-btn:hover{opacity:.9}.dark.dashboard-root,.dark .dashboard-root{background:#0b1640}.dark .navbar{background:#0d1c44;box-shadow:0 2px 16px #0006}.dark .greeting-card{background:linear-gradient(to right,#1e326480,#14235080);border-color:#ffffff12}.dark .greeting-title{color:#f1f5f9}.dark .greeting-text{color:#94a3b8}.dark .stat-card{background:#162050;border:1px solid rgba(255,255,255,.06);box-shadow:0 2px 12px #0000004d;transition:all .3s ease}.dark .stat-card:hover{border-color:#60a5fa99;box-shadow:0 0 20px #3b82f640;transform:translateY(-2px)}.dark .stat-sub{color:#64748b}.dark .card{background:#162050;border:1px solid rgba(255,255,255,.06);box-shadow:0 2px 12px #0000004d;transition:all .3s ease}.dark .card:hover{border-color:#3b82f6!important;box-shadow:0 0 20px #3b82f666!important;transform:translateY(-2px)}.dark .card-title{color:#f1f5f9}.dark .card-subtitle{color:#94a3b8}.dark .deadlines-card{background:#162050;border:1px solid rgba(255,255,255,.06);box-shadow:0 2px 12px #0000004d;transition:all .3s ease}.dark .deadlines-card:hover{border-color:#60a5fa99;box-shadow:0 0 20px #3b82f640}.dark .deadlines-title{color:#f1f5f9}.dark .deadlines-subtitle{color:#94a3b8}.dark .deadline-urgent{background:#ef444426;border-color:#ef444473}.dark .deadline-warning{background:#f9731626;border-color:#f9731673}.dark .deadline-normal{background:#3b82f61a;border-color:#3b82f64d}.dark .deadline-title{color:#f1f5f9}.dark .deadline-course,.dark .deadline-date{color:#94a3b8}.dark .submit-search-input{background:#1a2560;border-color:#ffffff1a;color:#f1f5f9}.dark .submit-search-input:focus{background:#1e2d6b;border-color:#3b82f6;box-shadow:0 0 18px #3b82f666}.dark .submit-list-wrap{background:transparent}.dark .submit-row-stacked{border-color:#ffffff14;background:#1a2560}.dark .submit-row-header{background:#ffffff08}.dark .submit-row-title,.dark .upload-icon-btn{color:#f1f5f9}.dark .upload-icon-btn:hover{color:#60a5fa}.dark .submit-upload-area{background:#1a2560;border-top:1px solid rgba(255,255,255,.08)}.dark .uploaded-file-card{background:#ffffff0d;border-color:#ffffff1a}.dark .uploaded-file-card.success{background:#10b9811a;border-color:#10b9814d}.dark .uploaded-file-name{color:#f1f5f9}.dark .success-info .uploaded-file-name{color:#34d399}.dark .uploaded-file-badge{color:#cbd5e1}.dark .success-badge{color:#34d399}.dark .submit-btn-dark{background:#3b82f6}.dark .submit-btn-dark:hover{background:#2563eb}.dark .submit-btn-dark.disabled{background:#334155;color:#94a3b8}.dark .leaderboard-row{background:#162050;border:1px solid rgba(255,255,255,.08)}.dark .leaderboard-row:hover{border-color:#3b82f6!important;box-shadow:0 0 20px #3b82f673!important;transform:translateY(-2px);background:#1c2865}.dark .leaderboard-row--gold .lb-points,.dark .leaderboard-row--silver .lb-points,.dark .leaderboard-row--bronze .lb-points{background:transparent;border:none}.dark .lb-name{color:#f1f5f9}.dark .lb-num{color:#94a3b8}.dark .lb-points{background:transparent;color:#f1f5f9;padding:5px 4px;border:none}.dark .leaderboard-row--gold .lb-points,.dark .leaderboard-row--silver .lb-points,.dark .leaderboard-row--bronze .lb-points{background:transparent}.dark .leaderboard-pagination{border-top-color:#94a3b81a}.dark .pagination-btn{background:#1e2d6b;border-color:#94a3b833;color:#f1f5f9}.dark .pagination-btn:hover:not(:disabled){background:#60a5fa;color:#0b1957;border-color:#60a5fa}.dark .pagination-info{background:#94a3b81a;color:#f1f5f9}.dark .qr-scan-box{background:#a4cafe1a;border-color:#a4cafe4d}.dark .qr-scan-label{color:#a4cafe}.dark .admin-note{background:#fed7aa1a;border-color:#fed7aa33;color:#fed7aa}.dark .attach-btn{background:#1e3a8a}.dark .attach-btn:hover{background:#2563eb}.dark .chart-wrap{background:transparent}.dark .chart-wrap svg{background:transparent!important}.dark .chart-wrap text{fill:#94a3b8!important}.dark .recharts-tooltip-wrapper .recharts-default-tooltip{background:#1e2d6b!important;border:1px solid rgba(255,255,255,.1)!important;color:#f1f5f9!important}.dark .recharts-tooltip-item{color:#94a3b8!important}.dark .dash-modal-overlay{background:#0009;backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px)}.dark .dash-pass-input{background:#1a2560;border-color:#ffffff1a;color:#f1f5f9}.dark .dash-pass-input:focus{border-color:#9eccfa;box-shadow:0 0 15px #9eccfa80}.dark .dash-pass-cancel-btn{background:#1a2560;border-color:#ffffff1a;color:#94a3b8}.dark .dash-pass-cancel-btn:hover{background:#1e2d6b}.dark .profile-dropdown{background:#162050;border-color:#ffffff14;box-shadow:0 4px 20px #0006}.dark .profile-dropdown-item{color:#f1f5f9}.dark .profile-dropdown-item:hover{background:#ffffff0d}.dark .profile-dropdown-item.text-red{color:#f87171}.dark .profile-dropdown-item.text-red:hover{background:#ef44441a}.dark .confirm-submit-modal{background:#162050;box-shadow:0 10px 40px #00000080}.dark .confirm-submit-icon-wrap{background:#fef3c70d;border-color:#fef3c71a}.dark .confirm-submit-title{color:#f1f5f9}.dark .confirm-submit-subtitle{color:#94a3b8}.dark .confirm-submit-cancel{background:#ffffff1a;color:#f1f5f9}.dark .confirm-submit-cancel:hover{background:#ffffff26}.dark .confirm-submit-btn{background:#3b82f6}.dark .confirm-submit-btn:hover{background:#2563eb}.confirm-submit-icon-wrap.success-icon{background:#dcfce7}.dark .confirm-submit-icon-wrap.success-icon{background:#10b9811a!important}@media(max-width:1024px){.navbar{padding:0 16px}.stats-row{grid-template-columns:repeat(2,1fr)}}@media(max-width:768px){.mobile-menu-btn{display:block}.navbar-nav{position:fixed;top:64px;left:0;width:100%;height:auto;background:#0d1c44;flex-direction:column;padding:16px;gap:8px;transform:translateY(-100%);opacity:0;pointer-events:none;transition:all .3s cubic-bezier(.4,0,.2,1);box-shadow:0 10px 15px -3px #0000001a;border-top:1px solid rgba(255,255,255,.1);z-index:1000}.navbar-nav--open{transform:translateY(0);opacity:1;pointer-events:auto}.nav-item{width:100%;text-align:left;padding:12px 20px}.navbar-left{gap:8px}.nav-brand{font-size:14px}.nav-status-badge{display:none}.main-grid{grid-template-columns:1fr}.stats-row{grid-template-columns:repeat(2,1fr)}}@media(max-width:600px){.nav-status-badge{display:none}}@media(max-width:480px){.stats-row{grid-template-columns:1fr}.nav-brand{display:none}.dashboard-body{padding:16px}.greeting-card{padding:24px 20px}.greeting-title{font-size:18px}.navbar-right{gap:4px}.nav-item{padding:8px;font-size:13px}}.profile-panel-overlay{position:fixed;top:0;left:0;width:100%;height:100%;background:#0006;backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px);z-index:1100;display:flex;justify-content:flex-end}.profile-panel-content{width:100%;max-width:420px;height:100%;background:#ffffffd9;backdrop-filter:blur(25px);-webkit-backdrop-filter:blur(25px);box-shadow:-15px 0 50px #0d195733;display:flex;flex-direction:column;position:relative;overflow:hidden;animation:profileSlideSpring .6s cubic-bezier(.34,1.56,.64,1);border-top-left-radius:30px;border-bottom-left-radius:30px;border-left:none}.profile-panel-header{padding:24px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid #F1EFE9}.profile-panel-title{font-size:20px;font-weight:700;color:#0b1957;margin:0}.profile-panel-close{background:none;border:none;cursor:pointer;padding:4px;display:flex;align-items:center;justify-content:center;transition:transform .2s}.profile-panel-body{flex:1;overflow-y:auto;padding:32px 24px;display:flex;flex-direction:column;gap:32px}.profile-image-section{display:flex;flex-direction:column;align-items:center;gap:12px}.profile-image-placeholder{width:110px;height:110px;border-radius:50%;background:#fff;display:flex;align-items:center;justify-content:center;position:relative;padding:3px;background:linear-gradient(#fff,#fff) padding-box,linear-gradient(135deg,#9eccfa,#0b1957) border-box;border:3px solid transparent;box-shadow:0 10px 25px #0d19571a;transition:all .3s ease}.profile-username{font-size:16px;font-weight:600;color:#4b5563}.profile-details-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px}.profile-edit-btn{background:none;border:none;cursor:pointer;display:flex;align-items:center;justify-content:center;opacity:.7;transition:opacity .2s}.profile-edit-btn:hover{opacity:1}.profile-field-label{font-size:14px;font-weight:600;color:#0b1957}.profile-field-input-box{background:#f8f3ea;border:1px solid #ECE8DD;padding:12px 16px;border-radius:12px;font-size:14px;color:#4b5563;font-weight:500}.profile-change-pass-btn{background:#f8f3ea;color:#0b1957;border:1px solid #ECE8DD;padding:12px;border-radius:12px;font-size:14px;font-weight:600;cursor:pointer;transition:background .2s}.profile-change-pass-btn:hover{background:#f1efe9}.profile-logout-btn{background:#0b1957;color:#fff;border:none;padding:12px;border-radius:12px;font-size:14px;font-weight:600;cursor:pointer;display:flex;align-items:center;justify-content:center;gap:8px;transition:background .2s}.profile-logout-btn:hover{background:#ef4444;box-shadow:0 4px 12px #ef444433}.dark .profile-panel-content{background:#0d163feb;backdrop-filter:blur(25px);-webkit-backdrop-filter:blur(25px);border-left:2px solid transparent}.dark .profile-panel-content:before{background:linear-gradient(180deg,transparent,#0EA5E9,#D946EF,#0EA5E9,transparent);background-size:100% 200%}.dark .profile-panel-header,.dark .profile-panel-footer{border-color:#ffffff14}.dark .profile-panel-title,.dark .profile-details-title,.dark .profile-field-label{color:#f1f5f9}.dark .profile-image-placeholder{background:linear-gradient(#162050,#162050) padding-box,linear-gradient(135deg,#0ea5e9,#d946ef) border-box;box-shadow:0 10px 30px #0000004d}.dark .profile-image-placeholder:after{border-color:#d946ef}.dark .profile-username,.dark .profile-field-input-box{color:#94a3b8}.dark .profile-field-input-box{background:#1a2560;border-color:#ffffff1a}.dark .profile-change-pass-btn{background:#1a2560;border-color:#ffffff1a;color:#e2e8f0}.dark .profile-change-pass-btn:hover{background:#1e2d6b}.change-pass-modal{background:#fff;width:100%;max-width:500px;border-radius:16px;box-shadow:0 10px 40px #0000001a;position:relative;padding:32px;display:flex;flex-direction:column;gap:24px;animation:modalScaleIn .4s cubic-bezier(.34,1.56,.64,1)}@keyframes modalScaleIn{0%{opacity:0;transform:scale(.85) translateY(15px)}to{opacity:1;transform:scale(1) translateY(0)}}.change-pass-header{display:flex;align-items:center;justify-content:space-between}.change-pass-title{font-size:20px;font-weight:700;color:#0b1957;margin:0}.change-pass-close{background:none;border:none;cursor:pointer;padding:4px;display:flex;opacity:.7;transition:opacity .2s}.change-pass-close:hover{opacity:1}.change-pass-body{display:flex;flex-direction:column;gap:20px}.pass-field-group{display:flex;flex-direction:column;gap:8px}.pass-field-label{font-size:14px;font-weight:600;color:#0b1957}.pass-input-wrap{position:relative}.pass-input{width:100%;background:#fdf9f3;border:1px solid transparent;border-radius:12px;padding:14px 48px 14px 16px;font-size:15px;color:#0b1957;box-sizing:border-box;transition:all .2s}.pass-input:focus{background:#fff;border-color:#3b82f6;outline:none;box-shadow:0 0 0 4px #3b82f61a}.pass-eye-btn{position:absolute;right:12px;top:50%;transform:translateY(-50%);background:none;border:none;cursor:pointer;padding:4px;display:flex;opacity:.6;transition:all .2s}.pass-eye-btn:hover{opacity:1;transform:translateY(-50%) scale(1.1)}.pass-eye-btn:active{transform:translateY(-50%) scale(.9)}.change-pass-footer{display:flex;justify-content:flex-end;gap:12px;margin-top:8px}.pass-cancel-btn{background:#fff;border:1px solid #ECE8DD;color:#0b1957;padding:12px 28px;border-radius:10px;font-size:14px;font-weight:600;cursor:pointer;transition:all .2s cubic-bezier(.16,1,.3,1)}.pass-cancel-btn:hover{background:#f8f3ea;transform:translateY(-2px)}.pass-can.icon-btn:hover{background:#f1f4ff;transform:translateY(-2px);color:#4b6cb7}.icon-btn.active{background:#0b1957;color:#fff;box-shadow:0 4px 12px #0b195733}.pass-cancel-btn:active{transform:translateY(1px)}.pass-submit-btn{background:#0b1957;color:#fff;border:none;padding:12px 28px;border-radius:10px;font-size:14px;font-weight:600;cursor:pointer;transition:all .2s cubic-bezier(.16,1,.3,1)}.pass-submit-btn:hover{background:#152a7e;transform:translateY(-2px);box-shadow:0 4px 12px #0b195726}.pass-submit-btn:active{transform:translateY(1px)}.dark .change-pass-modal{background:#162050;border:1.5px solid rgba(59,130,246,.4);box-shadow:0 0 25px #3b82f640}.dark .change-pass-title,.dark .pass-field-label{color:#f1f5f9}.dark .pass-input{background:#1a2560;border-color:#ffffff0d;color:#94a3b8}.dark .pass-input:focus{background:#1e2d6b;border-color:#3b82f6;color:#f1f5f9;box-shadow:0 0 0 4px #3b82f633}.dark .pass-cancel-btn{background:#1a2560;border-color:#ffffff1a;color:#94a3b8}.dark .pass-cancel-btn:hover{background:#1e2d6b}.dark .pass-submit-btn{background:#3b82f6}.dark .pass-submit-btn:hover{background:#2563eb}.profile-field-input{width:100%;background:#fff;border:1px solid #ECE8DD;padding:12px 16px;border-radius:12px;font-size:14px;color:#0b1957;font-weight:500;box-sizing:border-box;outline:none;transition:all .2s}.profile-field-input:focus{border-color:#3b82f6;box-shadow:0 0 0 4px #3b82f61a}.profile-select-wrap{position:relative;width:100%}.profile-select{appearance:none;cursor:pointer}.profile-select-chevron{position:absolute;right:14px;top:50%;transform:translateY(-50%);pointer-events:none;display:flex;align-items:center}.profile-edit-actions{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:12px}.admin-unblock-input{flex:1;background:#f8f3ea;border:1px solid #E5E7EB;border-radius:12px;padding:8px 14px;font-size:13.5px;color:#0d1c44;outline:none;transition:all .3s cubic-bezier(.4,0,.2,1);font-family:inherit}.admin-unblock-input:focus{background:#fff;border-color:#3b82f6;box-shadow:0 0 12px #3b82f633}.dark .admin-unblock-input{background:#ffffff0d;border-color:#ffffff1a;color:#f1f5f9}.dark .admin-unblock-input:hover{background:#ffffff14}.dark .admin-unblock-input:focus{background:#ffffff1a;border-color:#3b82f6;box-shadow:0 0 15px #3b82f64d}.dark .admin-unblock-input::placeholder{color:#64748b}.dark .profile-field-input{background:#1a2560;border-color:#ffffff1a;color:#f1f5f9}.dark .profile-field-input:focus{border-color:#3b82f6;background:#1e2d6b;box-shadow:0 0 0 4px #3b82f633}.dark .profile-cancel-edit-btn{background:#1a2560;color:#94a3b8;border:1px solid rgba(255,255,255,.05)}.dark .profile-cancel-edit-btn:hover{background:#1e2d6b}.dark .submit-btn-dark{background:#2563eb;color:#fff;box-shadow:0 4px 14px #2563eb33;transition:all .3s ease}.dark .submit-btn-dark:hover{background:#3b82f6;box-shadow:0 6px 20px #2563eb66;transform:translateY(-1px)}.dark .submit-btn-dark.disabled{background:#1e2d6b;color:#64748b;box-shadow:none;cursor:not-allowed;border:1px solid rgba(255,255,255,.05)}.dark .pass-submit-btn{background:#2563eb;color:#fff;box-shadow:0 4px 14px #2563eb33;transition:all .3s cubic-bezier(.16,1,.3,1)}.dark .pass-submit-btn:hover{background:#3b82f6;box-shadow:0 6px 20px #2563eb66;transform:translateY(-2px)}.dark .pass-submit-btn:active{transform:translateY(1px) scale(.98)}.dark .attach-btn{background:#2563eb;color:#fff}.dark .attach-btn:hover{background:#3b82f6;box-shadow:0 0 15px #3b82f666}.store-toast{position:fixed;bottom:32px;right:32px;background:#fff;border:1px solid #BBF7D0;border-radius:16px;padding:18px 24px;display:flex;align-items:center;gap:14px;font-size:15px;font-weight:700;color:#16a34a;box-shadow:0 12px 36px #10b98133,0 4px 12px #00000014;z-index:999999;pointer-events:none;opacity:0;transform:translateY(120%) scale(.9);transition:all .5s cubic-bezier(.175,.885,.32,1.275)}.store-toast--visible{opacity:1;transform:translateY(0) scale(1);animation:toastPopBottom .5s cubic-bezier(.175,.885,.32,1.275)}@keyframes toastPopBottom{0%{transform:translateY(120%) scale(.9)}70%{transform:translateY(-10px) scale(1.05)}to{transform:translateY(0) scale(1)}}.store-toast-icon-wrap{width:32px;height:32px;background:#dcfce7;border-radius:50%;display:flex;align-items:center;justify-content:center;animation:iconSpin .6s cubic-bezier(.175,.885,.32,1.275) .2s both}@keyframes iconSpin{0%{transform:rotate(-180deg) scale(0);opacity:0}to{transform:rotate(0) scale(1);opacity:1}}.dark .store-toast{background:#162050;border-color:#16a34a66;box-shadow:0 12px 36px #0006}.store-toast.error-toast{border-color:#ef444466;background-color:#fef2f2}.dark .store-toast.error-toast{background:#1e1b1b;border-color:#ef444466}.store-toast-icon-wrap.error-icon{background:#fee2e2}@media(max-width:1024px){.navbar{padding:0 16px}.navbar-nav{display:none}.mobile-menu-btn{display:flex}.navbar-nav--open{display:flex!important;flex-direction:column;position:fixed;inset:64px 0 0;background:#0d1c44;padding:24px;z-index:1000;gap:12px;justify-content:flex-start;align-items:stretch;animation:navSlideDown .3s ease-out}.navbar-nav--open .nav-item{width:100%;padding:18px 20px;justify-content:flex-start;font-size:16px;border-bottom:1px solid rgba(255,255,255,.05);border-radius:0}.stats-row{grid-template-columns:repeat(2,1fr)}}@media(max-width:640px){.stats-row{grid-template-columns:1fr!important}.greeting-card{padding:24px;text-align:center}.store-toast{right:16px;left:16px;bottom:16px;width:auto;justify-content:center;padding:14px 16px}.profile-panel-content{max-width:100%;border-radius:0}.change-pass-modal{width:95%;padding:24px 20px;margin:16px}.change-pass-footer{flex-direction:column;gap:12px}.change-pass-footer button{width:100%}}@media(max-width:480px){.nav-brand{display:none}.navbar-right{gap:6px}.status-badge-inner{padding:4px 8px}.status-text{font-size:11px}.submit-card-header{flex-direction:column;align-items:flex-start;gap:16px}.submit-search-wrap{width:100%}.uploaded-file-info{flex-wrap:wrap;gap:6px}.uploaded-file-name{max-width:150px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.submit-btn-dark,.left-column,.right-column{width:100%}.submit-assignments-card,.performance-card{margin:0;border-radius:0}}.scanning-pulse{width:10px;height:10px;background-color:#3b82f6;border-radius:50%;position:relative;display:inline-block}.scanning-pulse:after{content:"";position:absolute;width:100%;height:100%;top:0;left:0;background-color:#3b82f6;border-radius:50%;animation:pulse-ring 1.2s cubic-bezier(.24,0,.38,1) infinite}@keyframes pulse-ring{0%{transform:scale(.33);opacity:1}80%,to{transform:scale(3);opacity:0}}.status-text-blue{color:#3b82f6}.marking-error-text{color:#ef4444;font-size:12px;margin-top:8px;text-align:center;font-weight:500}.submit-attachments-list{display:flex;flex-wrap:wrap;gap:10px;margin:12px 0 8px}.attachment-chip{display:flex;align-items:center;gap:10px;background:#fff;border:1.5px solid #E5E7EB;padding:8px 16px;border-radius:12px;color:#0b1957;font-size:14px;font-weight:600;text-decoration:none;transition:all .3s cubic-bezier(.175,.885,.32,1.275);box-shadow:0 2px 6px #0d19570a}.attachment-chip:hover{background:#fff;border-color:#3b82f6;transform:translateY(-3px);box-shadow:0 8px 20px #3b82f633;color:#2563eb}.attachment-chip svg{color:#64748b;transition:color .3s ease}.attachment-chip:hover svg{color:#3b82f6}.dark .attachment-chip{background:#1a2560;border-color:#ffffff14;color:#f1f5f9;box-shadow:0 4px 12px #0003}.dark .attachment-chip:hover{background:#1e2d6b;border-color:#3b82f6;color:#60a5fa;box-shadow:0 8px 24px #3b82f64d}.dark .attachment-chip svg{color:#94a3b8}.dark .attachment-chip:hover svg{color:#60a5fa}.preview-modal-overlay{position:fixed;inset:0;background:#070f32b3;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);display:flex;align-items:center;justify-content:center;z-index:99999;padding:20px;animation:fadeIn .3s ease}.preview-modal-container{background:#fff;border-radius:24px;width:100%;max-width:900px;max-height:90vh;display:flex;flex-direction:column;box-shadow:0 25px 50px -12px #00000040;overflow:hidden;animation:slideUp .3s ease}.preview-modal-header{display:flex;align-items:center;justify-content:space-between;padding:20px 24px;background:#fff;border-bottom:1px solid #F3F4F6}.preview-modal-header h3{margin:0;font-size:18px;font-weight:700;color:#0b1957}.preview-close-btn{background:#f3f4f6;border:none;width:36px;height:36px;border-radius:50%;display:flex;align-items:center;justify-content:center;cursor:pointer;color:#6b7280;transition:all .2s}.preview-close-btn:hover{background:#e5e7eb;color:#111827;transform:rotate(90deg)}.preview-modal-body{flex:1;overflow:auto;background:#f9fafb;padding:0;display:flex;flex-direction:column}.preview-iframe{width:100%;height:70vh;border:none}.preview-no-view{padding:60px 40px;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;gap:20px}.preview-icon-large{width:80px;height:80px;background:#f3f4f6;border-radius:24px;display:flex;align-items:center;justify-content:center;color:#9ca3af}.preview-no-view h4{font-size:20px;font-weight:700;color:#1f2937;margin:0}.preview-no-view p{font-size:15px;color:#6b7280;max-width:400px;margin:0}.dark .preview-modal-container{background:#162050;border:1px solid rgba(255,255,255,.1)}.dark .preview-modal-header{background:#162050;border-bottom-color:#ffffff1a}.dark .preview-modal-header h3{color:#f1f5f9}.dark .preview-close-btn{background:#ffffff0d;color:#94a3b8}.dark .preview-modal-body{background:#0f172a}.dark .preview-icon-large{background:#ffffff0d}.dark .preview-no-view h4{color:#f1f5f9}.dark .preview-no-view p{color:#94a3b8}@keyframes slideUp{0%{transform:translateY(20px);opacity:0}to{transform:translateY(0);opacity:1}}.admin-attendance-view{display:flex;flex-direction:column;gap:24px;width:100%;animation:fadeInAttendance .5s ease}@keyframes fadeInAttendance{0%{opacity:0;transform:translateY(15px)}to{opacity:1;transform:translateY(0)}}.attendance-card{background:#fff;border-radius:20px;padding:32px;border:1px solid rgba(11,25,87,.08);box-shadow:0 4px 20px #0b195708;transition:all .4s cubic-bezier(.175,.885,.32,1.275)}.attendance-card:hover{transform:translateY(-5px);box-shadow:0 15px 35px #9eccfa66;border-color:#9eccfa}.attendance-board-header{display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid #F1F5F9;padding-bottom:20px;margin-bottom:24px}.board-title{font-size:24px;font-weight:800;color:#0b1957;margin:0 0 4px}.board-subtitle{font-size:14px;color:#64748b;margin:0;font-weight:500}.section-title{font-size:18px;font-weight:700;color:#0b1957;margin-bottom:20px}.attendance-chart-wrap{width:100%;height:260px}.attendance-record-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px}.attendance-actions{display:flex;gap:12px}.attendance-search{display:flex;align-items:center;gap:10px;background:#f8fafc;padding:8px 16px;border-radius:12px;width:280px;border:1px solid #E2E8F0;transition:all .3s cubic-bezier(.4,0,.2,1)}.attendance-search:hover,.attendance-search:focus-within{background:#fff;border-color:#3b82f6;box-shadow:0 0 15px #3b82f640}.attendance-search input{border:none;background:transparent;outline:none;font-size:14px;color:#0b1957;width:100%}.attendance-month-picker{display:flex;align-items:center;gap:8px;background:#f8fafc;padding:8px 16px;border-radius:12px;border:1px solid #E2E8F0;font-weight:600;font-size:14px;color:#0b1957;cursor:pointer}.attendance-month-dropdown{position:absolute;top:calc(100% + 8px);right:0;width:160px;background:#fff;border-radius:12px;box-shadow:0 10px 25px #0000001a;border:1px solid #E2E8F0;z-index:50;padding:6px}.month-option{padding:8px 12px;border-radius:8px;font-size:13.5px;cursor:pointer;transition:.2s}.month-option:hover{background:#f1f5f9}.month-option--active{background:#0b1957;color:#fff}.attendance-table{width:100%;border-collapse:collapse}.attendance-table th{text-align:left;padding:14px 16px;background:#f8fafc;color:#64748b;font-size:12px;font-weight:700;text-transform:uppercase;border-bottom:1px solid #E2E8F0}.attendance-table th:last-child,.attendance-table td:last-child{text-align:center}.attendance-table td{padding:16px;border-bottom:1px solid #F1F5F9;font-size:14px;color:#334155}.student-name-cell{font-weight:600;color:#0b1957!important}.admin-attendance-view .att-status-pill-container{position:relative;display:flex;align-items:center;justify-content:center;width:100%;height:32px;margin:0}.admin-attendance-view .att-status-icon-only{position:absolute;left:50%;transform:translate(-50%) scale(1);display:flex;align-items:center;justify-content:center;transition:all .4s cubic-bezier(.4,0,.2,1);opacity:1;z-index:1}.admin-attendance-view .att-status-icon-only.status-present{color:#10b981}.admin-attendance-view .att-status-icon-only.status-absent{color:#ef4444}.admin-attendance-view .attendance-status-pill.tooltip-reveal{position:absolute;left:50%;transform:translate(-50%) scale(.8) translateY(10px);opacity:0;transition:all .4s cubic-bezier(.4,0,.2,1);white-space:nowrap;pointer-events:none;z-index:2}.admin-attendance-view .records-card:hover .att-status-icon-only{opacity:0;transform:translate(-50%) scale(.6) translateY(-10px)}.admin-attendance-view .records-card:hover .tooltip-reveal{opacity:1;transform:translate(-50%) scale(1) translateY(0);pointer-events:auto}.attendance-status-pill{padding:4px 12px;border-radius:20px;font-size:11px;font-weight:700;text-transform:uppercase}.status-present{background:#dcfce7;color:#166534}.status-absent{background:#fee2e2;color:#991b1b}.section-subtitle-red{font-size:16px;font-weight:700;color:#ef4444;margin-bottom:20px;display:block}.low-attendance-card{display:flex;justify-content:space-between;align-items:center;padding:16px;background:snow;border-radius:12px;margin-bottom:10px;border:1px solid rgba(239,68,68,.05)}.low-attendance-info{display:flex;align-items:center;gap:12px}.low-attendance-avatar{width:36px;height:36px;background:#dbeafe;color:#1e40af;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:12px;font-weight:700}.low-attendance-name{font-size:14px;font-weight:600;color:#0b1957;margin:0}.low-attendance-percent{font-size:12px;color:#64748b;margin:0}.red-text{color:#ef4444;font-weight:700}.dark .attendance-card{background:#162050;border:1px solid rgba(255,255,255,.06);box-shadow:0 4px 20px #0000004d}.dark .attendance-card:hover{border-color:#3b82f680;box-shadow:0 0 25px #3b82f626;transform:translateY(-5px)}.dark .board-title,.dark .section-title{color:#fff}.dark .attendance-board-header{border-bottom-color:#ffffff14}.dark .attendance-search,.dark .attendance-month-picker{background:#ffffff08;border-color:#ffffff1a;color:#f1f5f9}.dark .attendance-search:hover,.dark .attendance-search:focus-within,.dark .attendance-month-picker:hover{background:#ffffff0d;border-color:#3b82f6;box-shadow:0 0 20px #3b82f666}.dark .attendance-search input::placeholder{color:#64748b}.dark .attendance-month-dropdown{background:#1e2d6b;border-color:#ffffff1a;box-shadow:0 10px 25px #00000080}.dark .month-option--active{background:#3b82f6;color:#fff}.dark .attendance-table th{background:#ffffff05;color:#94a3b8;border-bottom-color:#ffffff14}.dark .attendance-table td{border-bottom-color:#ffffff08;color:#cbd5e1}.dark .att-status-icon-only.status-present{color:#34d399}.dark .att-status-icon-only.status-absent{color:#f87171}.dark .low-attendance-card{background:#ffffff05;border-color:#ffffff0d}.dark .low-attendance-card:hover{background:#ffffff0a;border-color:#3b82f64d}.dark .low-attendance-avatar{background:#1e2d6b;color:#93c5fd}@media(max-width:768px){.attendance-board-header,.attendance-record-header{flex-direction:column;align-items:flex-start;gap:16px}.attendance-actions{width:100%;flex-direction:column}.attendance-search{width:100%}}@media(max-width:600px){.attendance-card{padding:20px}.low-attendance-card{flex-direction:column;align-items:flex-start;gap:16px}}.admin-rewards-view{display:flex;flex-direction:column;width:100%;animation:fadeInRewards .5s cubic-bezier(.16,1,.3,1)}.admin-reward-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px}.admin-reward-item-card{background:#fff;border-radius:16px;padding:16px;border:1.5px solid rgba(59,130,246,.5);transition:all .4s cubic-bezier(.175,.885,.32,1.275);display:flex;flex-direction:column}.admin-reward-item-card:hover{transform:translateY(-10px) scale(1.02);box-shadow:0 20px 40px #9eccfa99;border-color:#9eccfa}.admin-reward-item-card:hover .reward-item-image img{transform:scale(1.1)}.dark .admin-reward-item-card{background:#162050;padding:16px;border:1.5px solid rgba(59,130,246,.85);box-shadow:0 4px 20px #0000004d;transition:all .4s cubic-bezier(.175,.885,.32,1.275)}.dark .admin-reward-item-card:hover{border-color:#60a5facc;box-shadow:0 0 25px #3b82f666;transform:translateY(-10px) scale(1.02)}@media(max-width:1024px){.admin-reward-grid{grid-template-columns:repeat(2,1fr)}}@media(max-width:640px){.rewards-board-header{flex-direction:column;align-items:flex-start;gap:16px}.admin-reward-grid{grid-template-columns:1fr}}.admin-activity-log-view{display:flex;flex-direction:column;width:100%;animation:fadeInLog .6s cubic-bezier(.22,1,.36,1)}@keyframes fadeInLog{0%{opacity:0;transform:translateY(20px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}.activity-main-board{background:#fff;border-radius:28px;padding:40px;border:1px solid rgba(11,25,87,.08);box-shadow:0 10px 40px #0b195708;transition:all .4s cubic-bezier(.175,.885,.32,1.275);position:relative;overflow:hidden}.dark .activity-main-board{background:#162050;border-color:#ffffff12;box-shadow:0 15px 50px #00000080}.activity-main-board:hover{transform:translateY(-5px);box-shadow:0 15px 45px #9eccfa4d;border-color:#9eccfa}.activity-board-header{display:flex;justify-content:space-between;align-items:center;padding-bottom:32px;border-bottom:1px solid #F1EFE9;margin-bottom:32px}.dark .activity-board-header{border-bottom-color:#ffffff0d}.board-title{font-size:28px;font-weight:800;color:#0b1957;margin:0 0 6px;letter-spacing:-.025em}.dark .board-title{color:#f1f5f9}.board-subtitle{font-size:15px;color:#64748b;margin:0;font-weight:500}.activity-table th.th-with-icon{padding:20px 16px;cursor:default;transition:all .3s ease;text-align:center!important}.header-content{display:flex!important;align-items:center!important;justify-content:center!important;gap:8px;width:100%!important;margin:0!important;position:relative;height:24px}.header-text{position:absolute;font-size:13px;opacity:0;transform:translateY(10px);transition:all .4s cubic-bezier(.4,0,.2,1);white-space:nowrap;color:#0b1957;font-weight:800;text-transform:uppercase;letter-spacing:.05em;pointer-events:none}.dark .header-text{color:#cbd5e1}.th-with-icon svg{stroke:#94a3b8;transition:all .4s cubic-bezier(.4,0,.2,1);flex-shrink:0;opacity:1;transform:translateY(0)}.activity-main-board:hover .header-text{opacity:1!important;transform:translateY(0)!important;pointer-events:auto}.activity-main-board:hover .th-with-icon svg{opacity:0!important;transform:translateY(-10px)!important}.th-with-icon:hover svg{stroke:#3b82f6}.dark .th-with-icon:hover svg{stroke:#60a5fa}.pastel-hover-row{transition:all .3s ease}.color-1:hover td{background-color:#f0f9ff!important}.color-2:hover td{background-color:#f0fdf4!important}.color-3:hover td{background-color:#fffbeb!important}.color-4:hover td{background-color:#fef2f2!important}.color-5:hover td{background-color:#faf5ff!important}.color-6:hover td{background-color:#f0fdfa!important}.dark .color-1:hover td{background-color:#3b82f614!important}.dark .color-2:hover td{background-color:#10b98114!important}.dark .color-3:hover td{background-color:#f59e0b14!important}.dark .color-4:hover td{background-color:#ef444414!important}.dark .color-5:hover td{background-color:#8b5cf614!important}.dark .color-6:hover td{background-color:#14b8a614!important}.pastel-hover-row:hover td{transform:translateY(-1px);border-left:none!important;border-right:none!important;box-shadow:none!important}.activity-table th,.activity-table td{border-left:none!important;border-right:none!important}.dark .activity-table td{border-bottom-color:#ffffff0d!important}.user-info-wrap{display:flex!important;align-items:center!important;justify-content:center!important;gap:12px;width:100%!important;margin:0!important;text-align:center!important}.user-info-wrap span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:inline-block;max-width:180px}.ip-cell-wrap{display:flex!important;align-items:center!important;justify-content:center!important;gap:12px;width:100%!important;margin:0!important}.ip-dot{width:6px;height:6px;border-radius:50%;background:#10b981;box-shadow:0 0 10px #10b98180}.ip-badge{background:#f1f5f9;color:#475569;padding:4px 10px;border-radius:6px;font-family:JetBrains Mono,monospace;font-size:12px;font-weight:600;border:1px solid #E2E8F0}.dark .ip-badge{background:#ffffff0a;color:#94a3b8;border-color:#ffffff12}.action-tag{font-size:14px;font-weight:600;color:#0b1957!important;padding:4px 0;text-align:center;width:auto;max-width:300px;margin:0 auto;white-space:normal;word-break:break-word}.dark .action-tag{color:#e2e8f0!important}.activity-search-wrap{position:relative;width:320px;height:44px;background:#f8fafc;border:1.5px solid #E2E8F0;border-radius:100px;display:flex;align-items:center;padding:0 16px;transition:all .3s cubic-bezier(.175,.885,.32,1.275);box-sizing:border-box;cursor:text}.activity-search-wrap:focus-within{background:#fff;border-color:#3b82f6;box-shadow:0 0 0 4px #3b82f61a}.activity-search-icon{color:#94a3b8;margin-right:10px;flex-shrink:0;display:flex;align-items:center;pointer-events:none;transition:all .3s ease}.activity-search-wrap:focus-within .activity-search-icon{color:#3b82f6;transform:scale(1.1)}.activity-search-input{width:100%;height:100%;background:transparent;border:none;outline:none;font-size:14px;font-weight:500;color:#0b1957;padding:0;margin:0}.dark .activity-search-wrap{background:#ffffff08;border-color:#ffffff14}.dark .activity-search-wrap:focus-within{background:#ffffff0d;border-color:#3b82f6}.dark .activity-search-input{color:#f8fafc}.activity-table-wrapper{border-radius:20px;border:1px solid #F1F5F9;overflow-x:hidden}.dark .activity-table-wrapper{border-color:#ffffff0d}.activity-table{width:100%;border-collapse:collapse}.activity-table td{padding:16px;border-bottom:1px solid #F1F5F9}.dark .activity-table td{border-bottom-color:#ffffff08}.time-cell{text-align:center}.time-cell span{font-size:13px;font-weight:500;color:#64748b;display:inline-block;width:auto}.dark .time-cell span{color:#475569}@media(max-width:767px){.activity-main-board{padding:24px 20px}.activity-board-header{flex-direction:column;align-items:flex-start;gap:20px}.activity-search-wrap{width:100%}.board-title{font-size:22px}}@media(max-width:480px){.user-info-wrap{width:140px}.action-tag{width:200px}}@keyframes fadeInV3{0%{opacity:0;transform:translateY(15px)}to{opacity:1;transform:translateY(0)}}.admin-notifications-page{display:flex;flex-direction:column;width:100%;animation:fadeInV3 .5s ease}.notif-unified-card{background:#fff;border-radius:24px;padding:40px;border:1px solid rgba(11,25,87,.08);box-shadow:0 10px 40px #0b195708;transition:all .4s cubic-bezier(.175,.885,.32,1.275)}.notif-unified-card:hover{transform:translateY(-5px);box-shadow:0 15px 40px #9eccfa66;border-color:#9eccfa}.admin-page-title{font-size:24px;font-weight:800;color:#0b1957;margin:0 0 6px;letter-spacing:-.01em}.admin-page-subtitle{font-size:15px;color:#64748b;margin:0}.admin-notif-grid{display:grid;grid-template-columns:1fr 1fr;gap:32px}.admin-notif-sub-section{background:#f8f9fb;border-radius:20px;padding:24px;border:1px solid #EDEDF5;transition:all .3s ease}.admin-notif-sub-section:hover{border-color:#9eccfa;background:#fff;box-shadow:0 8px 25px #9eccfa40}.activity-panel-item{display:flex;align-items:center;gap:16px;padding:16px;border-radius:12px;border:1px solid #F1F5F9;background:#fff;transition:all .3s cubic-bezier(.4,0,.2,1);position:relative}.holiday-confirm-overlay{position:fixed;inset:0;background:#0b195766;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);display:flex;align-items:center;justify-content:center;z-index:2000;animation:fadeInModal .3s ease}@keyframes fadeInModal{0%{opacity:0}to{opacity:1}}.holiday-confirm-modal{background:#fff;padding:40px;border-radius:28px;width:100%;max-width:420px;text-align:center;box-shadow:0 25px 50px -12px #00000040;border:1px solid rgba(11,25,87,.08);position:relative;animation:springModal .5s cubic-bezier(.34,1.56,.64,1)}@keyframes springModal{0%{transform:scale(.8);opacity:0}to{transform:scale(1);opacity:1}}.notif-success-toast{position:fixed;bottom:40px;right:40px;background:#0b1957;color:#fff;padding:16px 24px;border-radius:16px;display:flex;align-items:center;gap:12px;font-weight:700;font-size:15px;box-shadow:0 10px 25px #0b19574d;z-index:3000;animation:toastSlideIn .5s cubic-bezier(.34,1.56,.64,1)}@keyframes toastSlideIn{0%{transform:translate(100px);opacity:0}to{transform:translate(0);opacity:1}}.dark .notif-unified-card{background:#162050;border-color:#ffffff14;box-shadow:0 10px 40px #0006}.dark .notif-unified-card:hover{border-color:#3b82f680;box-shadow:0 0 30px #3b82f633}.dark .admin-page-subtitle{color:#94a3b8}.dark .admin-notif-sub-section{background:#ffffff05;border-color:#ffffff0d}.dark .admin-notif-sub-section:hover{border-color:#3b82f666;background:#ffffff0a}.dark .calendar-widget,.dark .activity-panel-item{background:#1e2d6b;border-color:#ffffff14;box-shadow:0 4px 15px #0003}@media(max-width:1024px){.admin-notif-grid{grid-template-columns:1fr}}@media(max-width:768px){.notif-unified-card{padding:24px}.admin-page-header{margin-bottom:24px}}.admin-dashboard-root{min-height:900px;background-color:#f8f3ea;font-family:Inter,system-ui,-apple-system,sans-serif;display:flex;flex-direction:column;padding-bottom:273px}.dark.admin-dashboard-root{background-color:#0b112b}.admin-navbar{background:#0d1c44;height:64px;display:flex;align-items:center;padding:0 28px;box-sizing:border-box;position:sticky;top:0;z-index:1000;box-shadow:0 2px 16px #0d1c444d}.admin-navbar-left{display:flex;align-items:center;gap:10px;flex-shrink:0;margin-right:auto}.admin-mobile-menu-btn{display:none;background:none;border:none;color:#fff;cursor:pointer;padding:8px;border-radius:8px;margin-right:4px}.admin-logo-box{width:40px;height:40px;background:#a4cafe;border-radius:12px;display:flex;align-items:center;justify-content:center}.admin-nav-brand{font-size:18px;font-weight:700;color:#fff;white-space:nowrap;letter-spacing:.02em}.admin-navbar-center{display:flex;align-items:center;justify-content:center;flex:1;height:64px;margin:0;padding:0;box-sizing:border-box;font-size:16px;gap:8px}.admin-nav-item{background:none;border:none;color:#cbd5e1;font-family:inherit;font-size:15px;font-weight:500;padding:8px 16px;border-radius:8px;cursor:pointer;transition:all .2s ease;white-space:nowrap;height:auto;display:flex;align-items:center;justify-content:center}.admin-nav-item:hover:not(.admin-nav-item--active){color:#fff;background:#ffffff1a}.admin-nav-item:active{transform:scale(.96)}.admin-nav-item--active{background:#9eccfa;color:#0b1957;font-weight:600;border:none;border-radius:100px;padding:8px 16px}.admin-navbar-right{display:flex;align-items:center;gap:8px;flex-shrink:0;margin-left:auto}.admin-nav-icon-btn.active{background:#ffffff4d;color:#fff;box-shadow:0 0 10px #ffffff1a}.nav-avatar{width:36px;height:36px;background:#4b6cb7;border-radius:50%;color:#fff;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:14px;cursor:pointer;transition:all .2s}.nav-avatar:hover{transform:scale(1.05);box-shadow:0 0 15px #9eccfa66}.admin-body{padding:32px 0;width:95%;max-width:1400px;margin:0 auto;display:flex;flex-direction:column;gap:24px;box-sizing:border-box}@media(max-width:1024px){.admin-navbar{padding:0 16px}}@media(max-width:767px){.admin-mobile-menu-btn{display:block}.admin-navbar-center{position:fixed;top:64px;left:0;width:100%;height:auto;background:#0b1957;flex-direction:column;padding:16px;gap:8px;transform:translateY(-100%);opacity:0;pointer-events:none;transition:all .3s cubic-bezier(.4,0,.2,1);box-shadow:0 10px 15px -3px #0000001a;border-top:1px solid rgba(255,255,255,.1);z-index:1000}.admin-navbar-center--open{transform:translateY(0);opacity:1;pointer-events:auto}.admin-nav-item{width:100%;text-align:left;padding:12px 20px}.admin-navbar-left{gap:8px}.admin-nav-brand{font-size:14px}}@media(max-width:480px){.admin-nav-brand{display:none}.admin-navbar-right{gap:4px}.admin-nav-item{padding:8px;font-size:13px}}.admin-page-header{margin-bottom:32px}.admin-page-title{font-size:28px;font-weight:700;color:#0b1957;margin:0 0 8px}.admin-page-subtitle{font-size:16px;color:#6b7280;margin:0}.admin-content-top{display:flex;justify-content:space-between;align-items:flex-end;margin-bottom:32px}.add-assignment-btn{background:#0b1957;color:#fff;border:none;padding:10px 24px;border-radius:8px;font-size:14px;font-weight:600;cursor:pointer;transition:opacity .2s}.add-assignment-btn:hover{opacity:.9}.admin-assignment-container{background:#fff;border-radius:16px;padding:24px;border:1px solid rgba(11,25,87,.1);display:flex;flex-direction:column;gap:24px}.assignment-list{display:flex;flex-direction:column;gap:12px}.assignment-card{background:#fbf3ea;border-radius:12px;padding:16px;border:1px solid rgba(11,25,87,.1);display:flex;justify-content:space-between;transition:all .4s cubic-bezier(.175,.885,.32,1.275);flex-wrap:wrap;gap:16px}@media(max-width:640px){.assignment-card{flex-direction:column;align-items:flex-start}.card-right{width:100%;align-items:flex-start!important}}.assignment-card:hover{transform:translateY(-4px);box-shadow:0 12px 30px #9eccfa66;border-color:#9eccfa;background:#fff}.assignment-icon-circle{width:44px;height:44px;background:#e5e7eb;border-radius:8px;display:flex;align-items:center;justify-content:center;color:#4b5563}.assignment-info{display:flex;flex-direction:column;gap:4px;flex:1}.assignment-info h3{font-size:16px;font-weight:600;color:#0b1957;margin:0}.assignment-info .desc{font-size:13px;color:#6b7280;margin:0}.card-footer{display:flex;gap:16px}.footer-stat{font-size:13px;font-weight:500}.stat-submitted{color:#16a34a}.stat-remaining{color:#f97316}.card-right{display:flex;flex-direction:column;align-items:flex-end}.due-date{display:flex;align-items:center;gap:6px;font-size:13px;color:#4b5563;font-weight:500}.admin-dashboard-view{display:flex;flex-direction:column;gap:24px}.admin-welcome-banner{background:linear-gradient(to right,#9eccfa33,#d1e8ff33);padding:24px 32px;border-radius:16px;border:1px solid rgba(158,204,250,.3);display:flex;flex-direction:column;justify-content:center;transition:all .4s cubic-bezier(.175,.885,.32,1.275);cursor:default}.admin-welcome-banner:hover{transform:translateY(-5px);box-shadow:0 12px 30px #9eccfa80;border-color:#9eccfacc}.dark .admin-welcome-banner{background:linear-gradient(to right,#3b82f61a,#9eccfa0d);border-color:#9eccfa33}.admin-stats-row{display:grid;grid-template-columns:repeat(4,1fr);gap:24px}@media(max-width:1200px){.admin-stats-row{grid-template-columns:repeat(2,1fr)}}@media(max-width:640px){.admin-stats-row{grid-template-columns:1fr;gap:16px}}.admin-stat-card{background:#fff;padding:20px;border-radius:16px;border:1px solid rgba(11,25,87,.1);display:flex;justify-content:space-between;align-items:center;transition:all .4s cubic-bezier(.175,.885,.32,1.275);cursor:pointer}.admin-stat-card:hover{transform:translateY(-6px);box-shadow:0 12px 30px #9eccfa73;border-color:#9eccfa}.admin-stat-card:hover .stat-icon-box{transform:scale(1.1) rotate(5deg)}.dark .admin-stat-card{background:#162050;border-color:#ffffff14}.dark .admin-stat-card:hover{border-color:#3b82f6;box-shadow:0 12px 30px #0006}.stat-icon-box{width:48px;height:48px;border-radius:12px;display:flex;align-items:center;justify-content:center;transition:transform .3s ease}.admin-content-columns{display:grid;grid-template-columns:1fr 1fr;gap:24px;align-items:start}@media(max-width:1024px){.admin-content-columns{grid-template-columns:1fr}}.admin-column{display:flex;flex-direction:column;gap:24px}.action-card{background:#fff;padding:20px;border-radius:16px;border:1px solid rgba(11,25,87,.1);display:flex;align-items:center;gap:16px;cursor:pointer;transition:all .4s cubic-bezier(.175,.885,.32,1.275)}.action-card:hover{transform:translateY(-4px);box-shadow:0 12px 30px #9eccfa66;border-color:#9eccfa;background:#fff}.action-card:hover .action-icon-box{animation:bounceAdmin .6s ease infinite alternate}@keyframes bounceAdmin{0%{transform:translateY(0)}to{transform:translateY(-4px)}}.action-icon-box{width:44px;height:44px;border-radius:12px;display:flex;align-items:center;justify-content:center}.action-text h3{font-size:16px;font-weight:600;color:#0f172a;margin:0 0 2px}.action-text p{font-size:13px;color:#64748b;margin:0}.dashboard-section:hover{transform:translateY(-4px);box-shadow:0 12px 30px #9eccfa66;border-color:#9eccfa}.dark .action-card{background:#162050;border-color:#ffffff14}.dark .action-text h3{color:#f1f5f9}.dark .action-text p{color:#94a3b8}.manage-search-wrap{position:relative;width:220px}.manage-search-input{width:100%;padding:8px 12px;background:#f8f3ea;border:1.5px solid #ECE8DD;border-radius:10px;font-size:13px;color:#0b1957;font-family:inherit;transition:all .2s;outline:none}.header-top{display:flex;align-items:center;gap:8px;margin-bottom:4px}.leaderboard-list,.student-list{display:flex;flex-direction:column;gap:8px}.admin-student-card{background:#fff;border-radius:12px;border:1px solid rgba(11,25,87,.1);display:flex;flex-direction:column;overflow:hidden;transition:all .3s cubic-bezier(.4,0,.2,1)}.admin-student-card:hover{transform:translateY(-4px);box-shadow:0 12px 30px #9eccfa66;border-color:#9eccfa}.dark .admin-student-card,.dark .faculty-card{background:#162050!important;border-color:#ffffff14!important}.dark .student-details,.dark .faculty-details{background:#111a45!important;border-top-color:#ffffff0f!important}.dark .info-label,.dark .detail-label,.dark .stat-label{color:#a4cafe!important}.dark .info-value,.dark .detail-value,.dark .stat-val{color:#f8fafc!important}.admin-student-row{display:flex;justify-content:space-between;align-items:center;padding:12px 16px;background:transparent;cursor:pointer;transition:background .2s}.admin-student-row:hover{background:#f8fafc}.student-details{padding:0 16px 16px;background:#fff}.student-info-grid{display:flex;justify-content:space-between;padding:20px 24px 10px;border-top:1px solid #F1F5F9}.course-display-wrap{display:flex;align-items:center;gap:8px}.course-edit-btn{background:none;border:none;padding:2px;cursor:pointer;display:flex;align-items:center;justify-content:center;color:#64748b;border-radius:4px;transition:all .2s;opacity:.6}.course-edit-btn:hover{background:#f1f5f9;color:#0f172a;opacity:1}.course-edit-wrap{display:flex;align-items:center;gap:8px;position:relative}.course-edit-input{width:100%;max-width:120px;padding:2px 8px;border:1px solid #3B82F6;border-radius:6px;font-size:13px;font-weight:600;color:#0b1957;background:#f8fafc;outline:none}.course-save-btn{background:none;border:none;padding:2px;cursor:pointer;display:flex;align-items:center;justify-content:center;border-radius:40px;transition:all .2s}.course-save-btn:hover{background:#ecfdf5;transform:scale(1.1)}.dark .course-edit-input{background:#ffffff0d;border-color:#3b82f666;color:#f8fafc}.dark .course-edit-btn:hover{background:#ffffff1a}.student-stats{display:flex;justify-content:space-between;padding:10px 24px 20px;border-bottom:1px solid #F1F5F9;margin-bottom:20px}.student-stat-item{display:flex;flex-direction:column;align-items:center;gap:8px;text-align:center;flex:1}.stat-icon-circle{width:36px;height:36px;border-radius:50%;display:flex;align-items:center;justify-content:center;margin-bottom:2px}.performance-icon{background:#eff6ff}.attendance-icon{background:#ecfdf5}.badges-icon{background:#fef3c7}.performance-icon svg{stroke:#3b82f6}.attendance-icon svg{stroke:#10b981}.badges-icon svg{stroke:#f59e0b}.stat-text{display:flex;flex-direction:column;align-items:center;gap:2px}.stat-label{font-size:11px;color:#64748b;font-weight:500}.stat-val{font-size:14px;color:#0f172a;font-weight:600}.student-actions{display:flex;gap:16px;padding:0 8px}.student-actions button{flex:1;padding:12px;border-radius:10px;font-size:14px;font-weight:600;cursor:pointer;border:none;transition:all .3s ease}.btn-block{background:#d1e8ff;color:#ea580c}.btn-block:hover{background:#bfdfff;transform:translateY(-2px);box-shadow:0 4px 12px #0b19571a}.btn-remove{background:#d1e8ff;color:#dc2626}.btn-remove:hover{background:#bfdfff;transform:translateY(-2px);box-shadow:0 4px 12px #0b19571a}.view-more-btn{width:100%;background:none;border:none;padding:16px 0 8px;display:flex;align-items:center;justify-content:center;gap:8px;color:#0b1957;font-size:.95rem;font-weight:600;cursor:pointer;transition:all .2s ease;border-top:1px solid #F1EFE9;margin-top:4px;font-family:inherit}.view-more-btn:hover{color:#2563eb}.dark .view-more-btn{color:#a4cafe;border-top-color:#ffffff0d}.dark .view-more-btn:hover{color:#fff;background:#ffffff05}.dark .student-details{background:#111a45}.dark .student-info-grid,.dark .student-stats{border-color:#ffffff14}.dark .info-label,.dark .stat-label,.dark .detail-label{color:#a4cafe;font-weight:600}.dark .info-value,.dark .detail-value{color:#f8fafc}.dark .stat-val{color:#fff}.dark .btn-block,.dark .btn-remove{background:#d1e8ff1a}.dark .btn-block:hover,.dark .btn-remove:hover{background:#d1e8ff26}.leaderboard-item.rank-1 .item-right{background:transparent;border:none}.leaderboard-item.rank-1 .item-avatar{background:#fcd34d;color:#92400e}.leaderboard-item.rank-2 .item-right{background:transparent;border:none}.leaderboard-item.rank-2 .item-avatar{background:#e2e8f0;color:#475569}.leaderboard-item.rank-3 .item-right{background:transparent;border:none}.leaderboard-item.rank-3 .item-avatar{background:#ffedd5;color:#9a3412}.leaderboard-item.rank-default .item-right{background:#f8fafc;border:none}.leaderboard-item.rank-default .item-avatar{background:#dbeafe;color:#1e3a8a}.leaderboard-item.rank-default .item-points{color:#0b1957}.accent-bg{background:#0b1957!important;color:#fff!important}.item-left,.row-left{display:flex;align-items:center;gap:8px}.rank-indicator{width:24px;display:flex;align-items:center;justify-content:center}.rank-number{font-size:13px;font-weight:700;color:#64748b;opacity:.8}.row-index{font-size:14px;font-weight:600;color:#94a3b8;width:20px}.item-avatar,.row-avatar{width:36px;height:36px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:13px;font-weight:700}.row-avatar{background:#dbeafe;color:#1e40af}.item-name,.row-name{font-size:14px;font-weight:600;color:#1e293b}.status-badge{padding:4px 12px;border-radius:100px;font-size:12px;font-weight:600;text-transform:capitalize}.row-right{display:flex;align-items:center;gap:12px;color:#94a3b8}.add-user-overlay{position:fixed;inset:0;background:#0b195780;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);display:flex;align-items:center;justify-content:center;z-index:20000;animation:fadeIn .3s ease;transition:all .3s ease}.dark .add-user-overlay{background:#000c;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px)}@keyframes popupSpring{0%{transform:scale(.8);opacity:0}60%{transform:scale(1.03);opacity:1}to{transform:scale(1);opacity:1}}.add-user-modal-wrapper{display:flex;flex-direction:column;gap:16px}.add-user-modal-title{color:#a0aab4;font-size:20px;font-weight:500;margin:0;padding-left:8px;text-transform:capitalize}.add-user-modal-card{background:#fff;border-radius:20px;padding:clamp(20px,5vw,32px);width:90%;max-width:546px;box-sizing:border-box;box-shadow:0 20px 50px #0b195726;animation:popupSpring .5s cubic-bezier(.175,.885,.32,1.275);border:1px solid rgba(11,25,87,.05);margin:20px}.add-user-modal-subtitle{color:#64748b;font-size:14px;margin:0 0 24px}.add-user-form-group input,.add-user-form-group select,.add-user-form-group-textarea{width:100%;height:45px;background-color:#fdf9f3;border:1px solid rgba(11,25,87,.1);border-radius:12px;padding:0 16px;box-sizing:border-box;font-family:inherit;font-size:14px;color:#0f172a;transition:all .2s ease}.add-user-form-group-textarea{height:100px;padding:12px 16px;resize:none}.add-user-form-group input:focus,.add-user-form-group select:focus,.add-user-form-group-textarea:focus{outline:none;border-color:#0b1957;background:#fff;box-shadow:0 0 12px #0b195726}.add-user-form-group input:focus,.add-user-form-group select:focus{outline:none;border-color:#0b1957}.dropdown-wrap{position:relative}.dropdown-wrap select{appearance:none;background-image:url("data:image/svg+xml;charset=UTF-8,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%230B1957' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3e%3cpolyline points='6 9 12 15 18 9'%3e%3c/polyline%3e%3c/svg%3e");background-repeat:no-repeat;background-position:right 16px center;background-size:16px;padding-right:40px}.add-user-form-actions{display:flex;justify-content:flex-end;gap:16px;margin-top:16px}.add-user-form .btn-cancel{background:#fdf9f3;color:#0b1957;border:1px solid rgba(11,25,87,.1);border-radius:12px;padding:0 24px;height:44px;font-size:14px;font-weight:700;cursor:pointer;transition:all .2s}.add-user-form .btn-cancel:hover{background:#ece8dd;transform:translateY(-2px)}.add-user-form .btn-submit{background:#0b1957;color:#fff;border:none;border-radius:12px;padding:0 24px;height:44px;font-size:14px;font-weight:700;cursor:pointer;transition:all .3s cubic-bezier(.4,0,.2,1)}.add-user-form .btn-submit:hover{background:#1a2560;box-shadow:0 10px 20px #0b195733;transform:translateY(-2px)}.add-user-form .btn-submit:hover{opacity:.9}.define-roles-card{flex-direction:column;align-items:stretch;padding:0;gap:0}.define-roles-card.expanded{padding-bottom:24px}.define-roles-header{display:flex;align-items:center;gap:16px;padding:24px;width:100%;box-sizing:border-box}.define-roles-list{display:flex;flex-direction:column;gap:12px;padding:0 24px}.define-roles-row{display:flex;justify-content:space-between;align-items:center;padding:16px 24px;background:#f4f7fb;border-radius:8px;border:1px solid rgba(11,25,87,.05)}.dr-pill-dropdown-wrap{position:relative}.dr-pill-dropdown-wrap select{appearance:none;background-color:#0b1957;color:#fff;border:none;border-radius:100px;padding:8px 36px 8px 16px;font-size:13px;font-weight:500;cursor:pointer;background-image:url("data:image/svg+xml;charset=UTF-8,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3e%3cpolyline points='6 9 12 15 18 9'%3e%3c/polyline%3e%3c/svg%3e");background-repeat:no-repeat;background-position:right 12px center;background-size:14px}.dr-pill-dropdown-wrap select:focus{outline:none;box-shadow:0 0 0 2px #0b195766}.sidebar-overlay{position:fixed;inset:0;background:#0b195773;backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);z-index:10000;display:flex;justify-content:flex-end;animation:fadeIn .3s ease}.add-user-sidebar{width:100%;max-width:420px;height:100%;background:#ffffffd9;backdrop-filter:blur(25px);-webkit-backdrop-filter:blur(25px);box-shadow:-15px 0 50px #0b195733;display:flex;flex-direction:column;position:relative;overflow:hidden;animation:slideInSpringAdmin .6s cubic-bezier(.34,1.56,.64,1);border-top-left-radius:30px;border-bottom-left-radius:30px}.add-user-sidebar:before{content:"";position:absolute;top:0;left:0;width:3px;height:100%;background:linear-gradient(180deg,transparent,#9ECCFA,#0B1957,#9ECCFA,transparent);background-size:100% 200%;animation:borderFlowAdmin 4s linear infinite;z-index:5;border-top-left-radius:30px;border-bottom-left-radius:30px}@keyframes borderFlowAdmin{0%{background-position:0% 0%}to{background-position:0% 200%}}@keyframes slideInSpringAdmin{0%{transform:translate(100%)}to{transform:translate(0)}}.sidebar-header{padding:24px;border-bottom:1px solid #F1F5F9;display:flex;align-items:center;justify-content:space-between}.sidebar-title{font-size:1.5rem;font-weight:700;color:#0b1957;margin:0}.sidebar-close-btn{background:none;border:none;color:#64748b;cursor:pointer;padding:4px;border-radius:6px;transition:all .2s;display:flex;align-items:center;justify-content:center}.sidebar-close-btn:hover{background:#f1f5f9;color:#0f172a}.sidebar-body{flex:1;padding:24px;overflow-y:auto;display:flex;flex-direction:column;gap:20px}.sidebar-field-group{display:flex;flex-direction:column;gap:8px}.sidebar-label{font-size:14px;font-weight:600;color:#0b1957}.sidebar-input{width:100%;padding:14px 16px;background:#fdf9f3;border:1px solid #ECE8DD;border-radius:12px;font-size:15px;color:#0b1957;transition:all .3s ease;box-sizing:border-box}.sidebar-input:focus{outline:none;background:#fff;border-color:#3b82f6;box-shadow:0 0 12px #3b82f633}.sidebar-input::placeholder{color:#94a3b8}.sidebar-select-wrap{position:relative}.sidebar-select{appearance:none;cursor:pointer;padding-right:40px}@media(max-width:640px){.admin-body{padding:16px 14px;width:100%}.admin-welcome-banner{padding:20px}.banner-title{font-size:20px}.student-info-grid,.student-stats,.faculty-info-grid,.faculty-stats{flex-direction:column;gap:16px;padding:16px!important}.student-info-item,.stat-item,.faculty-info-item{align-items:flex-start;text-align:left}.stat-item{flex-direction:row;align-items:center;gap:12px;width:100%}.manage-students-header,.manage-faculty-header{flex-direction:column;align-items:flex-start;gap:12px}.manage-search-wrap{width:100%}.admin-student-row,.admin-faculty-row{flex-wrap:wrap;gap:12px}.status-badge{margin-left:auto}.stat-value{font-size:22px}.admin-page-header{margin-bottom:24px}.admin-page-title{font-size:22px}}.sidebar-field-group{position:relative;display:flex;flex-direction:column;gap:8px}.sidebar-select-chevron{position:absolute;right:14px;top:50%;transform:translateY(-50%);pointer-events:none;color:#64748b;display:flex}.sidebar-footer{padding:24px;border-top:1px solid #F1F5F9;display:grid;grid-template-columns:1fr 1.2fr;gap:12px}.sidebar-cancel-btn{padding:12px;background:#f1f5f9;color:#64748b;border:1px solid #E2E8F0;border-radius:10px;font-weight:600;cursor:pointer;transition:all .2s}.sidebar-cancel-btn:hover{background:#e2e8f0;color:#475569}.sidebar-submit-btn{padding:12px;background:#0b1957;color:#fff;border:none;border-radius:10px;font-weight:600;cursor:pointer;transition:all .2s}.sidebar-submit-btn:hover{background:#152a7e;box-shadow:0 4px 12px #0b195733}.dark.admin-dashboard-root,.dark .admin-dashboard-root{background:#0b1640}.dark .admin-navbar{background:#0d1c44;box-shadow:0 4px 20px #00000080;border-bottom:1px solid rgba(255,255,255,.05);width:100%;left:0}.dark .admin-navbar-center,.dark .admin-navbar-left,.dark .admin-navbar-right{background:transparent!important}.dark .admin-logo-box{background:#a4cafe33;border:1px solid rgba(164,202,254,.3)}.dark .admin-logo-box svg{stroke:#fff}.dark .dashboard-section,.dark .admin-student-card,.dark .action-card,.dark .admin-assignment-container,.dark .admin-reward-container,.dark .admin-stat-card{background:#1a2560;border:1px solid rgba(255,255,255,.08);box-shadow:0 4px 20px #0006}.dark .dashboard-section:hover,.dark .admin-student-card:hover,.dark .action-card:hover,.dark .admin-stat-card:hover{border-color:#60a5fa66;box-shadow:0 8px 30px #00000080;transform:translateY(-4px)}.dark .admin-welcome-banner{background:linear-gradient(to right,#1e326480,#14235080);border:1px solid rgba(255,255,255,.07);overflow:visible}.dark .admin-welcome-banner:hover{transform:translateY(-5px);box-shadow:0 12px 30px #9eccfa4d}.dark .manage-search-input:focus{background:#ffffff14;border-color:#3b82f6}.dark .admin-page-title,.dark .section-title,.dark .action-text h3,.dark .row-name,.dark .item-name,.dark .item-points,.dark .reward-store-title,.dark .admin-store-card-name,.dark .banner-title,.dark .stat-value{color:#f1f5f9}.dark .admin-page-subtitle,.dark .section-subtitle,.dark .action-text p,.dark .stat-label,.dark .detail-label,.dark .admin-store-card-pts-val,.dark .banner-subtitle{color:#94a3b8}.dark .leaderboard-item.rank-1 .item-right,.dark .leaderboard-item.rank-2 .item-right,.dark .leaderboard-item.rank-3 .item-right,.dark .leaderboard-item.rank-default .item-right{background:transparent;border:none}.dark .stat-icon-box{background:#ffffff0d!important;border:1px solid rgba(255,255,255,.1)}.dark .accent-bg{background:#3b82f6!important;box-shadow:0 0 15px #3b82f666}.dark .item-points{color:#f1f5f9!important}.dark .star-icon{fill:#fbbf24;stroke:#fbbf24;filter:drop-shadow(0 0 5px rgba(251,191,36,.5))}.dark .add-user-sidebar{background:#162050;color:#fff}.dark .sidebar-header,.dark .sidebar-footer{border-color:#ffffff0d}.dark .sidebar-title{color:#fff}.dark .sidebar-label{color:#cbd5e1}.dark .sidebar-error-msg{background:#ef444426;border-color:#ef44444d}.dark .student-details,.dark .admin-student-row:hover{background:#ffffff08}.dark .student-stats{border-color:#ffffff0d}.dark .performance-icon{background:#3b82f626}.dark .attendance-icon{background:#10b98126}.dark .badges-icon{background:#f59e0b26}.dark .status-active{background:#22c55e26;color:#4ade80;border:1px solid rgba(34,197,94,.2)}.dark .status-blocked{background:#ef444426;color:#f87171;border:1px solid rgba(239,68,68,.2)}.dark .stat-val{color:#f8fafc}.dark .btn-block{background:#ea580c1a;color:#fb923c}.dark .btn-remove{background:#dc26261a;color:#f87171}.dark .btn-block:hover{background:#ea580c33}.dark .btn-remove:hover{background:#dc262633}.dark .row-avatar{background:#3b82f633;color:#9eccfa;border:1px solid rgba(59,130,246,.1)}.dark .row-index{color:#64748b}.dark .sidebar-input{background:#1a2560;border-color:#ffffff0d;color:#94a3b8}.dark .sidebar-input:focus{background:#1e2d6b;border-color:#3b82f6;color:#f1f5f9;box-shadow:0 0 18px #3b82f666}.dark .sidebar-close-btn{color:#94a3b8}.dark .sidebar-close-btn:hover{background:#ffffff0d;color:#fff}.dark .sidebar-submit-btn{background:#2563eb}.dark .sidebar-submit-btn:hover{background:#3b82f6;box-shadow:0 0 15px #3b82f64d}.dark .sidebar-cancel-btn{background:#1a2560;color:#94a3b8;border:1px solid rgba(255,255,255,.05)}.dark .sidebar-cancel-btn:hover{background:#1e2d6b}.sidebar-subtitle-text{font-size:.85rem;color:#64748b;margin:4px 0 0}.dark .sidebar-subtitle-text{color:#94a3b8}.sidebar-search-container{padding-bottom:8px}.sidebar-search-box{display:flex;align-items:center;gap:10px;background:#fdf9f3;padding:10px 16px;border-radius:12px;border:1px solid #ECE8DD;transition:all .2s}.sidebar-search-box:focus-within{background:#fff;border-color:#3b82f6;box-shadow:0 0 12px #3b82f633}.dark .sidebar-search-box{background:#1a2560}.dark .sidebar-search-box:focus-within{background:#1e2d6b;border-color:#3b82f6;box-shadow:0 0 18px #3b82f666}.sidebar-search-input{background:none;border:none;flex:1;font-size:.95rem;color:#0b1957;outline:none}.dark .sidebar-search-input{color:#fff}.roles-table-container{margin-top:10px}.roles-table{width:100%;border-collapse:collapse}.roles-table th{text-align:left;font-size:.75rem;font-weight:700;text-transform:uppercase;color:#0b1957;padding:12px 16px;background:#fdf9f3;border-radius:6px}.dark .roles-table th{background:#ffffff0d;color:#94a3b8}.roles-table td{padding:16px;font-size:.95rem;color:#0b1957;border-bottom:1px solid #F1EFE9}.dark .roles-table td{color:#cbd5e1;border-color:#ffffff0d}.role-user-name{font-weight:500}.role-change-pill{padding:6px 16px;border-radius:8px;font-size:.85rem;font-weight:600;border:none;cursor:pointer;transition:all .2s}.role-student{background:#dbeafe;color:#1e40af}.role-teacher{background:#dcfce7;color:#15803d}.dark .role-student{background:#3b82f626;color:#60a5fa}.dark .role-teacher{background:#22c55e26;color:#4ade80}.role-change-pill:hover{transform:translateY(-1px);filter:brightness(.95)}.confirm-popup-overlay{position:fixed;inset:0;background:#0b195799;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);z-index:20000;display:flex;align-items:center;justify-content:center;animation:fadeIn .3s ease}.role-confirm-card{width:440px;background:#fff;border-radius:20px;padding:32px;box-shadow:0 20px 50px #00000040;animation:popupScale .3s cubic-bezier(.16,1,.3,1)}@keyframes popupScale{0%{transform:scale(.95);opacity:0}to{transform:scale(1);opacity:1}}.role-confirm-title{font-size:1.5rem;font-weight:700;color:#0b1957;margin:0 0 16px}.role-confirm-body{font-size:1rem;line-height:1.6;color:#64748b;margin:0 0 32px}.role-confirm-body strong{color:#1e293b;font-weight:700}.role-confirm-footer{display:grid;grid-template-columns:1fr 1.2fr;gap:16px}.confirm-cancel-btn{padding:14px;background:#bfdbfe;color:#1e40af;border:none;border-radius:12px;font-weight:700;cursor:pointer;transition:all .2s}.confirm-action-btn{padding:14px;background:#0b1957;color:#fff;border:none;border-radius:12px;font-weight:700;cursor:pointer;transition:all .2s}.confirm-action-btn:hover{background:#050d2e;box-shadow:0 4px 15px #0b19574d}.dark .role-confirm-card{background:#0b1957;color:#fff;border:1px solid rgba(255,255,255,.1)}.dark .role-confirm-title{color:#fff}.dark .role-confirm-body{color:#cbd5e1}.dark .role-confirm-body strong{color:#fff}.dark .confirm-cancel-btn{background:#ffffff0d;color:#94a3b8;border:1px solid rgba(255,255,255,.1)}.dark .confirm-action-btn{background:#2563eb}.admin-status-badge{position:relative;display:inline-flex;align-items:center;justify-content:center;padding:2px;border-radius:100px;margin-right:8px;background:transparent;transition:all .3s ease;cursor:default;overflow:hidden;z-index:1}.admin-status-badge:hover{transform:translateY(-1px);box-shadow:0 4px 15px #9eccfa4d}.admin-status-badge:before{content:"";position:absolute;top:50%;left:50%;width:200%;height:200%;background:conic-gradient(from 0deg,transparent 0%,transparent 35%,#9ECCFA 50%,#F5F2EA 65%,transparent 80%,transparent 100%);transform-origin:center;animation:borderSpin 3s linear infinite;z-index:-2;transform:translate(-50%,-50%)}.admin-status-badge-inner{background:#0b1957;border-radius:98px;padding:4px 14px;position:relative;z-index:-1;display:flex;align-items:center;justify-content:center;width:100%;height:100%}.admin-status-text{font-size:12px;font-weight:800;letter-spacing:.05em;text-transform:uppercase;background:linear-gradient(90deg,#9eccfa,#f5f2ea,#9eccfa);background-size:200% auto;background-clip:text;-webkit-background-clip:text;-webkit-text-fill-color:transparent;animation:textGradientShift 3s linear infinite}.dark .admin-status-badge:hover{box-shadow:0 4px 20px #d946ef66}.dark .admin-status-badge:before{background:conic-gradient(from 0deg,transparent 0%,transparent 35%,#0EA5E9 50%,#D946EF 65%,transparent 80%,transparent 100%)}.dark .admin-status-text{background:linear-gradient(90deg,#0ea5e9,#d946ef,#0ea5e9);background-size:200% auto;background-clip:text;-webkit-background-clip:text;-webkit-text-fill-color:transparent}.leaderboard-view-more{width:100%;background:none;border:none;padding:16px 0 8px;display:flex;align-items:center;justify-content:center;gap:8px;color:#0b1957;font-size:.95rem;font-weight:600;cursor:pointer;transition:all .2s ease;border-top:1px solid #F1EFE9;margin-top:4px}.leaderboard-view-more:hover{color:#2563eb}.leaderboard-view-more span{letter-spacing:-.01em}.dark .leaderboard-view-more{color:#a4cafe;border-top-color:#ffffff0d}.dark .leaderboard-view-more:hover{color:#fff;background:#ffffff05}.faculty-avatar{background:#a4cafe;color:#0b1957;font-weight:700}.faculty-info-header{display:flex;flex-direction:column;gap:2px}.faculty-role-badge{font-size:.75rem;font-weight:600;color:#fff;background:#0b1957;padding:2px 8px;border-radius:4px;width:fit-content}.faculty-details{display:flex;flex-direction:column;gap:12px;padding-top:16px;border-top:1px solid #F1EFE9}.faculty-detail-item{display:flex;flex-direction:column;gap:4px}.faculty-detail-item .detail-label{font-size:.8rem;color:#64748b;font-weight:500}.faculty-detail-item .detail-value{font-size:.95rem;color:#0b1957;font-weight:600}.dark .faculty-details{border-top-color:#ffffff14;background:#111a45;padding:16px 24px;border-radius:0 0 12px 12px}.dark .faculty-detail-item .detail-label{color:#a4cafe}.dark .faculty-detail-item .detail-value{color:#f8fafc}.dark .faculty-avatar{background:#3b82f633;color:#9eccfa;border:1px solid rgba(59,130,246,.3)}.dark .faculty-role-badge{background:#a4cafe1a;color:#a4cafe;border:1px solid rgba(164,202,254,.2)}.profile-sidebar{max-width:400px}.profile-center-area{display:flex;flex-direction:column;align-items:center;gap:12px;padding:24px 0;margin-bottom:24px}.profile-large-avatar{width:110px;height:110px;border-radius:50%;background:#fff;display:flex;align-items:center;justify-content:center;position:relative;padding:3px;background:linear-gradient(#fff,#fff) padding-box,linear-gradient(135deg,#9eccfa,#0b1957) border-box;border:3px solid transparent;box-shadow:0 10px 25px #0b19571a;transition:all .3s ease}.profile-large-avatar:hover{transform:scale(1.05) rotate(5deg);box-shadow:0 15px 35px #0d195733}.profile-large-avatar:after{content:"";position:absolute;inset:-5px;border-radius:50%;border:2px solid #9ECCFA;opacity:.3;animation:pulseRing 2s cubic-bezier(.455,.03,.515,.955) infinite}.profile-panel-footer{padding:24px;display:grid;grid-template-columns:1fr 1fr;gap:12px;border-top:1px solid #F1EFE9}.profile-username{font-size:1.1rem;font-weight:700;color:#0b1957}.profile-details-section{display:flex;flex-direction:column;gap:20px}.details-header{display:flex;justify-content:space-between;align-items:center}.details-header h3{font-size:1.1rem;font-weight:700;color:#0b1957;margin:0}.profile-edit-btn{background:none;border:none;cursor:pointer;padding:4px;display:flex;align-items:center;justify-content:center;opacity:1;transition:opacity .2s}.profile-edit-btn:hover{opacity:.7}.profile-actions-bottom{display:flex;gap:12px;margin-top:40px}.profile-btn-outline{flex:1;background:#fdf9f3;border:1px solid #ECE8DD;color:#0b1957;font-weight:600;font-size:.9rem;padding:12px;border-radius:12px;cursor:pointer;transition:all .2s}.profile-btn-outline:hover{background:#ece8dd}.profile-logout-btn{flex:1;background:#0b1957;border:none;color:#fff;font-weight:600;font-size:.9rem;padding:12px;border-radius:12px;cursor:pointer;display:flex;align-items:center;justify-content:center;gap:8px;transition:all .2s}.profile-logout-btn:hover{background:#dc2626;box-shadow:0 4px 12px #dc262633}.dark .profile-large-avatar{background:linear-gradient(#162050,#162050) padding-box,linear-gradient(135deg,#0ea5e9,#d946ef) border-box;box-shadow:0 10px 30px #0000004d}.dark .profile-large-avatar:after{border-color:#d946ef}.dark .profile-username,.dark .profile-panel-title,.dark .details-header h3{color:#fff}.dark .profile-btn-outline{background:#ffffff0d;border-color:#ffffff1a;color:#fff}.dark .profile-edit-btn svg{stroke:#a4cafe}.admin-reward-container{background:#fff;border-radius:16px;padding:24px;border:1px solid rgba(11,25,87,.1)}.reward-store-title{font-size:1.1rem;font-weight:700;color:#0b1957;margin-bottom:20px}.admin-store-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px}.admin-store-card{background:#fff;border-radius:16px;border:1px solid #ECE8DD;padding:16px;display:flex;flex-direction:column;gap:12px;transition:all .3s ease}.admin-store-card:hover{transform:translateY(-8px) scale(1.02);box-shadow:0 15px 35px #0b19571f;border-color:#0b1957}.admin-store-card-img-wrap{width:100%;height:160px;display:flex;align-items:center;justify-content:center;border-radius:12px}.admin-store-card-emoji{font-size:48px}.admin-store-card-body{display:flex;flex-direction:column;gap:4px}.admin-store-card-name{font-size:1rem;font-weight:700;color:#0b1957;margin:0}.admin-store-card-points{display:flex;align-items:center;gap:6px}.admin-store-card-pts-val{font-size:.85rem;font-weight:600;color:#64748b}.admin-store-action-btn{width:100%;padding:10px;border-radius:8px;font-size:.9rem;font-weight:600;border:none;cursor:pointer;background:#0b1957;color:#fff;transition:all .2s}.admin-store-action-btn:hover{background:#1a2560}.admin-store-action-btn:disabled,.admin-store-action-btn:contains("Not Enough Points"){background:#8fa2bb;cursor:not-allowed}.admin-store-action-btn{background-color:#0b1957}.admin-store-action-btn:active{transform:scale(.98)}.dark .admin-reward-container{background:#162050;border-color:#ffffff0f}.dark .reward-store-title,.dark .admin-store-card-name{color:#fff}.dark .admin-store-card{background:#1a2560;border-color:#ffffff1a}.dark .admin-store-card:hover{border-color:#6ea1cd}.reward-modal-card{width:600px;padding:32px}.reward-upload-box{width:100%;height:80px;background:#fdf9f3;border:2px dashed rgba(11,25,87,.1);border-radius:16px;display:flex;align-items:center;justify-content:center;gap:12px;cursor:pointer;margin-top:8px;transition:all .3s cubic-bezier(.4,0,.2,1)}.reward-upload-box:hover{background:#f1efe9;border-color:#0b1957}.reward-upload-box span{font-size:14px;font-weight:600;color:#0b1957}.dark .reward-upload-box{background:#ffffff0d;border-color:#ffffff26}.dark .add-user-modal-card{background:#0d163ff2;backdrop-filter:blur(25px);-webkit-backdrop-filter:blur(25px);border:1px solid rgba(255,255,255,.1);color:#fff;box-shadow:0 25px 50px -12px #00000080}.dark .add-user-form-group input,.dark .add-user-form-group select,.dark .add-user-form-group-textarea{background-color:#ffffff0a;border-color:#ffffff1a;color:#f8fafc}.dark .add-user-form-group input:focus,.dark .add-user-form-group select:focus,.dark .add-user-form-group-textarea:focus{background-color:#ffffff14;border-color:#3b82f6;box-shadow:0 0 0 4px #3b82f633}.dark .add-user-form .btn-cancel{background:#ffffff0d;border-color:#ffffff1a;color:#94a3b8}.dark .add-user-form .btn-cancel:hover{background:#ffffff1a;color:#fff}.dark .add-user-form .btn-submit{background:#3b82f6;color:#fff;box-shadow:0 4px 15px #3b82f64d}.dark .add-user-form .btn-submit:hover{background:#2563eb;box-shadow:0 8px 25px #3b82f666;transform:translateY(-2px)}.dark .reward-upload-box span{color:#fff}.admin-attendance-view{display:flex;flex-direction:column}.attendance-card-container{background:#fff;border-radius:16px;padding:32px;border:1px solid rgba(11,25,87,.1)}.attendance-card-header{margin-bottom:24px}.dark .attendance-card-container{background:#162050;border-color:#ffffff14}.attendance-search{display:flex;align-items:center;gap:8px;background:#e8f0f7;padding:8px 16px;border-radius:8px;width:280px}.attendance-search:focus-within{background:#fff;border-color:#3b82f6;box-shadow:0 0 0 4px #3b82f61a,0 0 20px #3b82f626}.attendance-table th:nth-child(1){text-align:center}.attendance-table th:nth-child(2){text-align:left}.attendance-table th:nth-child(3){text-align:center}.attendance-table th:nth-child(4){text-align:center}.attendance-table th:first-child{border-top-left-radius:16px}.attendance-table th:last-child{border-top-right-radius:16px}.attendance-table td:nth-child(1){text-align:center}.attendance-table td:nth-child(2){text-align:left}.attendance-table td:nth-child(3){text-align:center}.attendance-table td:nth-child(4){text-align:center}.attendance-status-pill{font-size:13px;font-weight:500;padding:6px 16px;border-radius:8px;display:inline-flex;align-items:center;justify-content:center;min-width:80px;letter-spacing:.025em;border:none}.attendance-status-pill.status-present{background-color:#d1fae5;color:#10b981}.attendance-status-pill.status-absent{background-color:#fee2e2;color:#ef4444}.dark .attendance-search:focus-within,.dark .attendance-month-picker:hover{background:#ffffff14;border-color:#3b82f6}.dark .attendance-status-pill.status-present{background:#10b98126;color:#34d399;border:none}.dark .attendance-status-pill.status-absent{background:#ef444426;color:#f87171;border:none}.low-attendance-card{display:flex;justify-content:space-between;align-items:center;padding:16px 24px;background:#fdf9f3;border-radius:12px;border:1px solid rgba(11,25,87,.05)}.low-attendance-text{display:flex;flex-direction:column;gap:4px}.send-warning-btn{background:#fff;border:1px solid #0B1957;color:#0b1957;padding:8px 20px;border-radius:8px;font-size:13px;font-weight:600;cursor:pointer;transition:all .2s}.send-warning-btn:hover{background:#0b1957;color:#fff}.dark .attendance-search,.dark .attendance-month-picker,.dark .attendance-table th{background:#ffffff0d;color:#f1f5f9}.dark .attendance-search input{color:#f1f5f9}.dark .attendance-table td{border-bottom:1px solid rgba(255,255,255,.05);color:#cbd5e1}.dark .low-attendance-card:hover{border-color:#60a5fa99;box-shadow:0 0 15px #3b82f633}.dark .send-warning-btn{background:#ffffff0d;border:1px solid rgba(255,255,255,.2);color:#94a3b8}.dark .send-warning-btn:hover{background:#2563eb;border-color:#3b82f6;color:#fff;box-shadow:0 0 12px #3b82f666}.dark .attendance-month-picker{color:#f1f5f9}.dark .timestamp-cell{color:#94a3b8}.dark .attendance-line-chart path{stroke:#60a5fa}.admin-success-toast--visible{opacity:1;transform:translateY(0) scale(1);animation:toastPopBottomAdmin .5s cubic-bezier(.175,.885,.32,1.275)}@keyframes toastPopBottomAdmin{0%{transform:translateY(120%) scale(.9)}70%{transform:translateY(-10px) scale(1.05)}to{transform:translateY(0) scale(1)}}.toast-icon-wrap{width:32px;height:32px;background:#dcfce7;border-radius:50%;display:flex;align-items:center;justify-content:center;animation:iconSpinAdmin .6s cubic-bezier(.175,.885,.32,1.275) .2s both}@keyframes iconSpinAdmin{0%{transform:rotate(-180deg) scale(0);opacity:0}to{transform:rotate(0) scale(1);opacity:1}}.add-user-modal-card.reward-modal-card .add-user-form-group input,.add-user-modal-card.reward-modal-card .add-user-form-group textarea{transition:all .3s ease}.add-user-modal-card.reward-modal-card .add-user-form-group input:focus,.add-user-modal-card.reward-modal-card .add-user-form-group textarea:focus{background:#fff;border-color:#3b82f6;box-shadow:0 0 0 4px #3b82f61a,0 0 20px #3b82f626;transform:translateY(-1px);outline:none}.reward-upload-box{transition:all .4s cubic-bezier(.175,.885,.32,1.275)!important}.reward-upload-box:hover{transform:translateY(-3px);border-color:#3b82f6!important;box-shadow:0 8px 25px #3b82f633}.dark .add-user-modal-card.reward-modal-card .add-user-form-group input:focus,.dark .add-user-modal-card.reward-modal-card .add-user-form-group textarea:focus{background:#ffffff0d;border-color:#3b82f6;box-shadow:0 0 0 4px #3b82f633,0 0 25px #3b82f640}.admin-mobile-drawer,.admin-mobile-backdrop{display:none}@media(max-width:1024px){.admin-desktop-nav{display:none!important}.admin-mobile-menu-btn{display:flex;align-items:center;justify-content:center;z-index:1001}.admin-mobile-drawer{position:fixed;top:0;left:-300px;width:280px;height:100vh;background:#0d1c44;z-index:3000;transition:all .4s cubic-bezier(.4,0,.2,1);display:flex;flex-direction:column;box-shadow:10px 0 30px #0006}.admin-mobile-drawer--open{left:0}.admin-mobile-drawer .drawer-header{padding:24px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid rgba(255,255,255,.1)}.admin-mobile-drawer .drawer-brand{font-size:20px;font-weight:700;color:#fff}.admin-mobile-drawer .drawer-close{background:none;border:none;cursor:pointer;padding:5px}.admin-mobile-drawer .drawer-items{padding:20px;display:flex;flex-direction:column;gap:10px}.admin-mobile-drawer .drawer-item{width:100%;text-align:left;padding:14px 20px;font-size:16px;color:#cbd5e1;background:transparent;border:none;border-radius:12px;font-weight:500;transition:all .2s}.admin-mobile-drawer .drawer-item--active{background:#3b82f6;color:#fff;font-weight:700}.admin-mobile-backdrop{position:fixed;inset:0;background:#0009;z-index:2500;opacity:0;pointer-events:none;transition:opacity .3s ease;display:block}.admin-mobile-backdrop--visible{opacity:1;pointer-events:auto}.admin-stats-grid{grid-template-columns:repeat(2,1fr)}.main-content-row{flex-direction:column}}@keyframes navSlideDown{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}@media(max-width:640px){.admin-stats-grid{grid-template-columns:1fr}.admin-welcome-banner{padding:24px;flex-direction:column;text-align:center}.banner-content{align-items:center}.banner-title{font-size:24px}.admin-dashboard-root{padding-bottom:24px}.add-user-modal-card{padding:24px 16px;width:95%}.admin-success-toast{right:16px;left:16px;bottom:16px;min-width:0;width:auto;padding:14px 16px;gap:10px;justify-content:center}.dash-pass-modal{padding:24px 20px;margin:16px}.dash-pass-actions{flex-direction:column;gap:12px}}.dark .leaderboard-item .item-name,.dark .leaderboard-item .rank-number{color:#f1f5f9}.dark .item-points{color:#f1f5f9}.leaderboard-pagination{display:flex;align-items:center;justify-content:center;gap:16px;margin-top:24px}.pagination-btn{width:36px;height:36px;display:flex;align-items:center;justify-content:center;background:#0d1c44;color:#fff;border:none;border-radius:10px;cursor:pointer;transition:all .2s cubic-bezier(.4,0,.2,1);box-shadow:0 4px 12px #0d1c4426}.pagination-btn:hover:not(:disabled){background:#1a2560;transform:translateY(-2px);box-shadow:0 8px 20px #0d1c4440}.pagination-btn:disabled{background:#fff;border:1.5px solid #F1F5F9;color:#cbd5e1;cursor:not-allowed;box-shadow:none}.pagination-info{display:flex;align-items:center;gap:8px;padding:6px 16px;background:#f8f3ea;border-radius:100px;font-size:16px;font-weight:700;color:#0d1c44;min-width:70px;justify-content:center;border:1px solid rgba(13,28,68,.1)}.page-separator{color:#a3a3a3;font-weight:500}.dark .pagination-btn{background:#3b82f6;color:#fff}.dark .pagination-btn:disabled{background:#ffffff0d;border-color:#ffffff1a;color:#fff3}.dark .pagination-info{background:#ffffff0d;color:#f8fafc;border-color:#ffffff1a}.dark .current-page{color:#60a5fa}.faculty-attendance-view{display:flex;flex-direction:column}.attendance-card-container{background:#fff;border-radius:20px;padding:32px;border:1px solid rgba(11,25,87,.08);box-shadow:0 10px 40px #0b195708;transition:all .4s cubic-bezier(.175,.885,.32,1.275)}.attendance-card-container:hover{transform:translateY(-5px);box-shadow:0 15px 35px #9eccfa66;border-color:#9eccfa}.attendance-card-header-inner{margin-bottom:24px;margin-top:32px;padding-top:24px;border-top:1px solid rgba(11,25,87,.05)}.admin-page-header-inside{margin-bottom:24px}.admin-page-header-inside .admin-page-title{font-size:26px;font-weight:800;color:#0b1957;margin:0}.admin-page-header-inside .admin-page-subtitle{font-size:14.5px;color:#64748b;margin:4px 0 0;font-weight:500}.dark .attendance-card-header-inner{border-top-color:#ffffff0d}.dark .admin-page-header-inside .admin-page-title{color:#fff}.attendance-chart-wrap{width:100%;height:260px;position:relative;margin-top:8px}.attendance-chart-wrap .recharts-cartesian-axis-line{stroke-opacity:.8}.attendance-chart-wrap .recharts-cartesian-grid-horizontal line{stroke-opacity:.5}.dark.faculty-attendance-view,.dark .faculty-attendance-view{background:#0b1640}.dark .attendance-card-container{background:#162050;border:1px solid rgba(255,255,255,.06);box-shadow:0 2px 12px #0000004d;transition:all .3s ease}.dark .attendance-card-container:hover{border-color:#60a5fa99;box-shadow:0 0 20px #3b82f640}.attendance-record-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:24px}.attendance-actions{display:flex;gap:16px;align-items:center}.attendance-search{display:flex;align-items:center;gap:12px;background:#fdf9f3;padding:10px 18px;border-radius:14px;width:320px;border:1px solid #ECE8DD;transition:all .2s ease}.attendance-search:focus-within{background:#fff;border-color:#3b82f6;box-shadow:0 0 15px #3b82f640}.attendance-search input{border:none;background:transparent;outline:none;font-size:14px;font-weight:500;color:#0b1957;width:100%}.attendance-month-picker{display:flex;align-items:center;gap:12px;background:#fdf9f3;padding:10px 18px;border-radius:14px;cursor:pointer;font-size:14.5px;font-weight:700;color:#0b1957;min-width:130px;justify-content:space-between;border:1px solid #ECE8DD;transition:all .2s ease}.attendance-month-picker:hover{background:#fff;border-color:#0b1957}.attendance-month-dropdown{position:absolute;top:calc(100% + 8px);right:0;width:180px;background:#fff;border-radius:16px;border:1px solid #ECE8DD;box-shadow:0 12px 30px #0b19571f;z-index:1001;overflow:hidden;padding:8px;animation:dropdownFade .25s cubic-bezier(.16,1,.3,1)}@keyframes dropdownFade{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}.month-option{padding:10px 16px;font-size:14px;font-weight:500;color:#334155;border-radius:10px;cursor:pointer;transition:all .2s ease}.month-option:hover{background:#f8f3ea;color:#0b1957}.month-option--active{background:#0b1957;color:#fff!important;font-weight:700}.dark .attendance-month-dropdown{background:#1e2d6b;border-color:#ffffff1a;box-shadow:0 15px 40px #0006}.dark .month-option{color:#cbd5e1}.dark .month-option:hover{background:#ffffff0d;color:#fff}.dark .month-option--active{background:#3b82f6;color:#fff!important}.attendance-table-wrap{width:100%;overflow-x:auto}.attendance-table{width:100%;border-collapse:separate;border-spacing:0}.attendance-table th{padding:16px 24px;background:#f8f3ea;color:#0b1957;font-size:13px;font-weight:700;text-transform:uppercase;letter-spacing:.05em;border-bottom:2px solid #E8E2D7}.attendance-table th:first-child{border-top-left-radius:16px;text-align:center}.attendance-table th:last-child{border-top-right-radius:16px;text-align:center}.attendance-table td{padding:20px 24px;border-bottom:1px solid #F1EFE9;font-size:14.5px;color:#334155;vertical-align:middle}.attendance-table td:nth-child(1),.attendance-table td:nth-child(3),.attendance-table td:nth-child(4){text-align:center}.student-name-cell{font-weight:700;color:#0b1957!important}.timestamp-cell{color:#64748b;font-weight:500}.attendance-status-pill{font-size:13px;font-weight:500;padding:6px 16px;border-radius:8px;display:inline-flex;align-items:center;justify-content:center;min-width:80px}.status-present{background-color:#d1fae5;color:#10b981}.status-absent{background-color:#fee2e2;color:#ef4444}.faculty-attendance-view .att-status-pill-container{position:relative;display:flex;align-items:center;justify-content:center;width:100%;height:32px;margin:0}.faculty-attendance-view .att-status-icon-only{position:absolute;left:50%;transform:translate(-50%) scale(1);display:flex;align-items:center;justify-content:center;transition:all .4s cubic-bezier(.4,0,.2,1);opacity:1;z-index:1}.faculty-attendance-view .att-status-icon-only.status-present{color:#10b981}.faculty-attendance-view .att-status-icon-only.status-absent{color:#ef4444}.faculty-attendance-view .attendance-status-pill.tooltip-reveal{position:absolute;left:50%;transform:translate(-50%) scale(.8) translateY(10px);opacity:0;transition:all .4s cubic-bezier(.4,0,.2,1);white-space:nowrap;pointer-events:none;z-index:2}.faculty-attendance-view .attendance-card-container:hover .att-status-icon-only{opacity:0;transform:translate(-50%) scale(.6) translateY(-10px)}.faculty-attendance-view .attendance-card-container:hover .tooltip-reveal{opacity:1;transform:translate(-50%) scale(1) translateY(0);pointer-events:auto}.dark .faculty-attendance-view .att-status-icon-only.status-present{color:#34d399}.dark .faculty-attendance-view .att-status-icon-only.status-absent{color:#f87171}.dark .attendance-search,.dark .attendance-month-picker{background:#ffffff0d;border-color:#ffffff1a;color:#fff}.dark .attendance-search input{color:#fff}.dark .attendance-search:focus-within{background:#ffffff14;border-color:#3b82f6;box-shadow:0 0 20px #3b82f666}.dark .attendance-month-picker:hover{background:#ffffff14;border-color:#3b82f6}.dark .attendance-table th{background:#ffffff08;color:#94a3b8;border-bottom-color:#ffffff0f}.dark .attendance-table td{border-bottom-color:#ffffff0d;color:#cbd5e1}.dark .student-name-cell{color:#fff!important}.dark .status-present{background:#10b98126;color:#34d399}.dark .status-absent{background:#ef444426;color:#f87171}.section-subtitle-red{display:block;font-size:16px;color:#dc2626;font-weight:700;margin-bottom:20px}.low-attendance-list{display:flex;flex-direction:column;gap:12px}.low-attendance-card{display:flex;justify-content:space-between;align-items:center;padding:16px 24px;background:#fdf9f3;border-radius:12px;border:1px solid rgba(11,25,87,.05);transition:all .3s cubic-bezier(.175,.885,.32,1.275)}.low-attendance-card:hover{transform:translateY(-4px);box-shadow:0 8px 25px #9eccfa40;border-color:#9eccfa;background:#fff}.low-attendance-info{display:flex;align-items:center;gap:16px}.low-attendance-avatar{width:44px;height:44px;background:#dbeafe;border-radius:50%;display:flex;align-items:center;justify-content:center;font-weight:700;color:#1e40af;font-size:14px}.low-attendance-name{margin:0;font-size:15px;font-weight:700;color:#0b1957}.low-attendance-percent{margin:0;font-size:13px;color:#64748b;font-weight:500}.red-text{color:#dc2626;font-weight:600}.dark .low-attendance-card{background:#1a2560;border:1px solid rgba(255,255,255,.08);transition:all .3s ease}.dark .low-attendance-card:hover{border-color:#60a5fa99;box-shadow:0 0 15px #3b82f633;transform:translateY(-2px)}.dark .low-attendance-name{color:#f1f5f9}.dark .low-attendance-percent{color:#94a3b8}@media(max-width:768px){.attendance-record-header{flex-direction:column;align-items:flex-start;gap:16px}.attendance-actions{width:100%;flex-direction:column}.attendance-search{width:100%}}@media(max-width:600px){.attendance-card-container{padding:24px 16px}.low-attendance-card{flex-direction:column;align-items:flex-start;gap:16px}}.attendance-pagination-wrap{display:flex;align-items:center;justify-content:center;gap:16px;margin-top:24px;padding-top:20px;border-top:1px dashed rgba(13,28,68,.08)}.pagination-info{display:flex;align-items:center;gap:6px;font-family:Inter,sans-serif;font-weight:700;color:#0d1c44;background:#fdf9f3;padding:6px 14px;border-radius:100px;font-size:13px;letter-spacing:.02em;border:1px solid #ECE8DD}.dark .attendance-pagination-wrap{border-top-color:#ffffff14}.dark .pagination-info{background:#ffffff14;color:#f8fafc;border-color:#ffffff1a}.faculty-assignments-view{display:flex;flex-direction:column;gap:28px;padding-bottom:40px}.faculty-assignments-header{display:flex;justify-content:space-between;align-items:flex-start;padding:0 4px}.assignments-header-info{flex:1}.assignments-page-title{font-size:26px;font-weight:800;color:#0b1957;margin:0}.assignments-page-subtitle{font-size:14.5px;color:#64748b;margin:4px 0 0;font-weight:500}.header-cancel-btn{padding:10px 24px;background:#fff;border:1px solid #0B1957;color:#0b1957;border-radius:12px;font-weight:700;cursor:pointer;transition:all .2s ease}.header-cancel-btn:hover{background:#0b1957;color:#fff}.header-add-btn{padding:10px 24px;background:#0b1957;border:none;color:#fff;border-radius:12px;font-weight:700;cursor:pointer;transition:all .2s ease}.header-add-btn:hover{background:#152a7e;transform:translateY(-2px);box-shadow:0 4px 12px #0b195726}.assignment-form-card{background:#fff;border-radius:20px;padding:32px;border:1px solid rgba(11,25,87,.08);box-shadow:0 10px 40px #0b195708;transition:all .4s cubic-bezier(.175,.885,.32,1.275);margin-bottom:8px;animation:slideDownFade .4s ease-out}@keyframes slideDownFade{0%{opacity:0;transform:translateY(-20px)}to{opacity:1;transform:translateY(0)}}.assignment-form-card:hover{transform:translateY(-5px);box-shadow:0 15px 35px #9eccfa66;border-color:#9eccfa}.form-title{font-size:18px;font-weight:700;color:#0b1957;margin-bottom:24px}.form-body{display:flex;flex-direction:column;gap:20px}.form-group{display:flex;flex-direction:column;gap:8px}.form-group label{font-size:14px;font-weight:600;color:#64748b}.form-input,.form-textarea{padding:12px 16px;border-radius:10px;border:1px solid #ECE8DD;background:#fdf9f3;font-size:14px;transition:all .3s ease}.form-input:focus,.form-textarea:focus{background:#fff;border-color:#3b82f6;outline:none;box-shadow:0 0 15px #3b82f640;transform:translateY(-1px)}.form-input[type=date]{position:relative;padding-right:46px;cursor:text}.form-input[type=date]::-webkit-calendar-picker-indicator{display:none}.form-input-display{width:100%;height:46px;padding:0 16px;background:#fdf9f3;border:1px solid #ECE8DD;border-radius:10px;font-size:14px;color:#0b1957;display:flex;align-items:center;cursor:pointer;transition:all .3s ease}.form-input-display:hover{border-color:#3b82f6;background:#fff}.form-textarea{height:100px;resize:none}.form-row{display:flex;gap:20px}.flex-1{flex:1}.deadline-time-select{height:46px;padding:0 10px;background:#fdf9f3;border:1px solid #ECE8DD;border-radius:10px;font-size:14px;color:#0b1957;cursor:pointer;outline:none;transition:border-color .3s ease,background .3s ease;width:120px;flex-shrink:0}.deadline-time-select:hover,.deadline-time-select:focus{border-color:#3b82f6;background:#fff}.input-with-icon{position:relative;display:flex;align-items:center;width:100%}.calendar-icon-btn{position:absolute;right:16px;top:50%;transform:translateY(-50%);display:flex;align-items:center;justify-content:center;transition:all .2s ease-out;z-index:5;pointer-events:none}.input-with-icon:hover .calendar-icon-btn svg{transform:scale(1.25);stroke:#0b1957}.input-with-icon:active .calendar-icon-btn svg{transform:scale(1.1);stroke:#3b82f6}.dark .input-with-icon:hover .calendar-icon-btn svg{stroke:#60a5fa}.dark .input-with-icon:hover .calendar-icon-btn{background:#3b82f626}.dark .input-with-icon:hover .calendar-icon-btn svg{stroke:#60a5fa;filter:drop-shadow(0 0 8px rgba(96,165,250,.4))}.input-with-icon .form-input{width:100%}.input-with-icon svg{position:absolute;right:16px}.form-upload-box{padding:12px 16px;background:#f8fafc;border:1.5px dashed #CBD5E1;border-radius:12px;display:flex;align-items:center;gap:12px;cursor:pointer;transition:all .3s ease}.form-upload-box:hover{border-style:solid;border-color:#64748b;background:#fff;transform:translateY(-1px);box-shadow:0 4px 12px #0000000d}.form-upload-box span{font-size:14px;font-weight:700;color:#64748b;transition:color .3s ease}.form-upload-box:hover span{color:#0b1957}.form-footer{display:flex;justify-content:flex-end;gap:16px;margin-top:12px}.btn-cancel-light{padding:12px 24px;background:#f1f5f9;border:none;color:#64748b;border-radius:10px;font-weight:700}.btn-add-primary{padding:12px 32px;background:#0b1957;border:none;color:#fff;border-radius:12px;font-weight:700;box-shadow:0 4px 12px #0b195726;transition:all .2s ease;cursor:pointer}.btn-add-primary:hover{transform:translateY(-2px);box-shadow:0 6px 16px #0b195733}.btn-add-primary:active{transform:translateY(1px) scale(.97);box-shadow:0 2px 6px #0b19571a}.assignment-list-section{margin-top:24px}.section-title-bold{font-size:18px;font-weight:800;color:#0b1957;margin-bottom:20px}.assignment-list{display:flex;flex-direction:column;gap:16px}.loading-assignments,.no-assignments-msg{padding:40px;text-align:center;color:#64748b;font-weight:500;background:#f8fafc;border-radius:16px;border:1px dashed #CBD5E1}.dark .loading-assignments,.dark .no-assignments-msg{background:#ffffff08;color:#94a3b8;border-color:#ffffff1a}.assignments-display-card-inner{background:#fff;border-radius:20px;padding:32px;border:1px solid rgba(11,25,87,.08);box-shadow:0 10px 40px #0b195708;transition:all .4s cubic-bezier(.175,.885,.32,1.275)}.assignments-display-card-inner:hover{transform:translateY(-5px);box-shadow:0 15px 35px #9eccfa66;border-color:#9eccfa}.faculty-assignment-card{background:#fff;padding:24px;border-radius:16px;border:1px solid rgba(11,25,87,.05);display:flex;justify-content:space-between;align-items:center;transition:all .3s cubic-bezier(.175,.885,.32,1.275)}.faculty-assignment-card:hover{transform:translateY(-4px);box-shadow:0 12px 25px #9eccfa4d;border-color:#9eccfa}.card-left{display:flex;gap:20px}.card-icon{width:44px;height:44px;background:#f8fafc;border-radius:12px;display:flex;align-items:center;justify-content:center}.card-info h3{margin:0 0 6px;font-size:16px;font-weight:700;color:#0b1957}.card-desc{margin:0 0 12px;font-size:13px;color:#64748b}.card-stats{display:flex;gap:16px}.stat-sub{font-size:12px;color:#64748b;font-weight:600}.stat-rem{font-size:12px;color:#dc2626;font-weight:700}.card-right{text-align:right}.card-date{display:flex;align-items:center;gap:6px;color:#64748b;font-size:13px;font-weight:600}.dark.faculty-assignments-view,.dark .faculty-assignments-view{background:#0b1640}.dark .assignment-form-card,.dark .faculty-assignment-card,.dark .assignments-display-card-inner{background:#162050;border:1px solid rgba(255,255,255,.06);box-shadow:0 2px 12px #0000004d;transition:all .3s ease}.dark .assignment-form-card.assignment-glow{box-shadow:0 0 20px #3b82f666,0 0 40px #3b82f633,0 25px 50px -12px #00000080;border:2px solid rgba(59,130,246,.8);background:#101840fa}.dark .assignments-display-card-inner:hover{border-color:#60a5fa66;box-shadow:0 0 30px #3b82f626}.dark .faculty-assignment-card:hover{border-color:#60a5fa99;box-shadow:0 0 20px #3b82f640;transform:translateY(-4px)}.dark .form-title,.dark .section-title-bold,.dark .card-info h3,.dark .form-group label,.dark .card-desc,.dark .stat-sub,.dark .card-date{color:#f1f5f9}.dark .assignments-page-title{color:#fff}.dark .assignments-page-subtitle{color:#94a3b8}.dark .card-icon svg,.dark .card-date svg,.dark .back-btn svg{stroke:#94a3b8}.dark .faculty-assignment-card:hover .card-icon svg{stroke:#60a5fa}.dark .card-icon{background:#ffffff08;border:1px solid rgba(255,255,255,.05)}.dark .form-input,.dark .form-textarea{background:#1a2560;border-color:#ffffff1a;color:#f1f5f9}.dark .form-input:focus,.dark .form-textarea:focus{border-color:#3b82f6;background:#1e2d6b;box-shadow:0 0 20px #3b82f666;transform:translateY(-1px)}.dark .form-upload-box{background:#0003;border-color:#ffffff1a}.dark .form-upload-box:hover{border-color:#3b82f6;background:#3b82f61a;box-shadow:0 0 0 4px #3b82f633}.dark .form-upload-box span{color:#9eccfa}.dark .btn-cancel-light{background:#ffffff0d;color:#94a3b8}.dark .header-cancel-btn{border-color:#fff3;color:#94a3b8;background:transparent}.dark .header-cancel-btn:hover{border-color:#fff;color:#fff;box-shadow:0 0 15px #fff3;transform:translateY(-1px)}.dark .header-add-btn{background:#3b82f6;color:#fff}.dark .header-add-btn:hover{background:#2563eb;box-shadow:0 0 20px #3b82f666;transform:translateY(-2px)}.dark .btn-add-primary:hover{background:#3b82f6;box-shadow:0 0 20px #3b82f699;transform:translateY(-2px)}.sidebar-error-msg{color:#b45309;font-size:13px;font-weight:600;background:#fffbeb;padding:10px 14px;border-radius:10px;text-align:center;border:1px solid #FEF3C7;margin:12px 0;display:flex;align-items:center;justify-content:center;gap:8px}.admin-success-toast--visible{opacity:1;transform:translateY(0) scale(1)}.toast-icon-wrap{width:32px;height:32px;background:#dcfce7;border-radius:50%;display:flex;align-items:center;justify-content:center}.dark .toast-icon-wrap{background:#16a34a26}.sanyoj-calendar-overlay{position:fixed;inset:0;background:#0b195766;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);display:flex;align-items:center;justify-content:center;z-index:9999999;animation:calFadeIn .3s ease}@keyframes calFadeIn{0%{opacity:0}to{opacity:1}}.sanyoj-calendar-modal{background:#fffffff2;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);width:360px;border-radius:20px;padding:24px;box-shadow:0 20px 50px #0b19571f;animation:calScaleIn .2s ease-out;border:1px solid rgba(11,25,87,.08)}@keyframes calScaleIn{0%{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}.calendar-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:24px}.cal-header-left{flex:1}.cal-month-title{font-size:20px;font-weight:800;color:#0b1957;margin:0}.cal-header-nav{display:flex;align-items:center;gap:12px}.cal-nav-btn,.cal-close-btn{width:36px;height:36px;border-radius:12px;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all .3s cubic-bezier(.4,0,.2,1);border:none;background:#f8fafc;border:1px solid #F1F5F9}.cal-nav-btn:hover{background:#eef2ff;border-color:#3b82f6;transform:translateY(-2px)}.cal-close-btn{background:transparent;border:none;margin-left:4px}.cal-close-btn:hover{background:#eef2ff;transform:rotate(90deg)}.cal-close-btn:hover svg{stroke:#0b1957!important}.dark .cal-close-btn:hover{background:#ffffff1a}.dark .cal-close-btn:hover svg{stroke:#fff!important}.calendar-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:8px}.cal-day-label{height:40px;display:flex;align-items:center;justify-content:center;font-size:13px;font-weight:700;color:#64748b}.cal-day-cell{height:44px;display:flex;align-items:center;justify-content:center;font-size:14px;font-weight:700;color:#475569;border-radius:12px;cursor:pointer;transition:all .3s cubic-bezier(.4,0,.2,1);position:relative;overflow:hidden}.cal-day-cell:hover:not(.cal-day-muted){background:#f1f5f9;color:#3b82f6;transform:translateY(-2px);box-shadow:0 4px 12px #0000000d}.cal-day-cell:after{content:"";position:absolute;width:100%;height:100%;background:radial-gradient(circle,rgba(59,130,246,.1) 0%,transparent 70%);opacity:0;transition:opacity .3s ease}.cal-day-cell:hover:after{opacity:1}.cal-day-muted{color:#cbd5e1;opacity:.5;cursor:pointer}.cal-day-muted:hover{background:#f1f5f9;opacity:1}.cal-day-today{background:#fff;color:#3b82f6;border:2px solid #3B82F6;box-shadow:0 0 15px #3b82f633}.cal-day-selected{background:#0b1957!important;color:#fff!important;box-shadow:0 8px 20px #0b195740,0 0 0 4px #0b19571a;transform:scale(1.05);z-index:2}.calendar-footer{display:flex;justify-content:space-between;align-items:center;margin-top:24px;padding-top:20px;border-top:1px solid rgba(11,25,87,.05)}.cal-footer-btn{padding:8px 16px;border-radius:10px;font-size:14px;font-weight:700;cursor:pointer;transition:all .2s ease;border:none}.clear-btn{background:transparent;color:#ef4444}.clear-btn:hover{background:#fef2f2}.today-btn{background:#f1f5f9;color:#0b1957}.today-btn:hover{background:#e2e8f0;transform:translateY(-1px)}.dark .sanyoj-calendar-modal{background:#162050d9;backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);box-shadow:0 24px 64px #00000080,0 0 0 1px #ffffff0d inset;border:1px solid rgba(255,255,255,.08)}.dark .cal-month-title{color:#fff}.dark .cal-nav-btn{background:#ffffff0d;border-color:#ffffff1a}.dark .cal-nav-btn:hover{background:#ffffff1a;border-color:#3b82f6}.dark .cal-day-cell{color:#cbd5e1}.dark .cal-day-cell:hover:not(.cal-day-muted){background:#3b82f61a;color:#60a5fa}.dark .cal-day-muted{color:#475569}.dark .cal-day-today{background:transparent;color:#60a5fa;border-color:#60a5fa}.dark .cal-day-selected{background:#3b82f6!important;color:#fff!important;box-shadow:0 8px 24px #3b82f666}.dark .calendar-footer{border-top-color:#ffffff0d}.dark .clear-btn:hover{background:#ef44441a}.dark .today-btn{background:#ffffff0d;color:#f1f5f9}.dark .today-btn:hover{background:#ffffff1a}.dark .form-input-display,.dark .deadline-time-select{background:#1a2560;border-color:#ffffff1a;color:#f1f5f9}.assignment-detail-container{animation:fadeIn .4s ease-out}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.detail-header-nav{display:flex;align-items:flex-start;gap:16px;margin-bottom:32px}.back-btn{width:40px;height:40px;border-radius:12px;background:#fff;border:1px solid rgba(11,25,87,.1);display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all .3s ease;box-shadow:0 4px 12px #0b19570d}.back-btn:hover{background:#f8fafc;transform:translate(-4px);box-shadow:0 6px 16px #0b19571a}.detail-title{font-size:24px;font-weight:800;color:#0b1957;margin:0}.detail-subtitle{font-size:15px;color:#64748b;margin:4px 0 0;font-weight:500}.submission-list-card{background:#fff;border-radius:20px;padding:32px;border:1px solid rgba(11,25,87,.08);box-shadow:0 10px 40px #0b195708}.sl-header{margin-bottom:24px}.sl-title{font-size:18px;font-weight:700;color:#0b1957;margin:0}.sl-subtitle{font-size:13px;color:#94a3b8;margin:4px 0 0}.sl-body{display:flex;flex-direction:column;gap:12px}.submission-row{display:flex;align-items:center;padding:16px 20px;background:#fff;border:1px solid #F1F5F9;border-radius:16px;transition:all .3s ease;position:relative;z-index:1}.submission-row.row-elevated{z-index:50}.submission-row:hover{border-color:#cbd5e1;transform:translateY(-2px);box-shadow:0 6px 20px #0000000a}.sub-rank{width:30px;font-size:13px;font-weight:700;color:#94a3b8}.sub-avatar{width:40px;height:40px;border-radius:12px;display:flex;align-items:center;justify-content:center;color:#fff;font-weight:700;font-size:14px;margin-right:16px}.sub-info{flex:1;display:flex;flex-direction:column}.sub-name{font-size:15px;font-weight:700;color:#0b1957}.sub-file{font-size:13px;color:#64748b;margin-top:2px}.sub-meta{display:flex;align-items:center;gap:32px}.sub-date{font-size:13px;color:#94a3b8;font-weight:500}.sub-actions{display:flex;gap:12px}.sub-action-btn{padding:8px 16px;border-radius:10px;font-size:13px;font-weight:700;border:none;cursor:pointer;transition:all .2s ease;display:flex;align-items:center;gap:6px}.grade-btn{background:#fee2e2;color:#991b1b}.grade-btn:hover{background:#fecaca}.preview-btn{background:#eef2ff;color:#3b43c9;width:36px;height:36px;padding:0;justify-content:center;position:relative}.preview-btn:hover{background:#e0e7ff}.preview-btn[data-tooltip]:after{content:attr(data-tooltip);position:absolute;bottom:100%;left:50%;transform:translate(-50%) translateY(-8px);background:#1e293b;color:#fff;padding:4px 10px;border-radius:6px;font-size:11px;font-weight:600;white-space:nowrap;opacity:0;pointer-events:none;transition:all .2s ease;box-shadow:0 4px 12px #00000026;z-index:100}.preview-btn[data-tooltip]:before{content:"";position:absolute;bottom:100%;left:50%;transform:translate(-50%) translateY(0);border-width:5px 5px 0 5px;border-style:solid;border-color:#1E293B transparent transparent transparent;opacity:0;pointer-events:none;transition:all .2s ease;z-index:100}.preview-btn[data-tooltip]:hover:after,.preview-btn[data-tooltip]:hover:before{opacity:1;transform:translate(-50%) translateY(-4px)}.preview-btn[data-tooltip]:hover:before{transform:translate(-50%) translateY(4px)}.feedback-btn{background:#f1f5f9;color:#475569}.feedback-btn:hover{background:#e2e8f0}.dark .back-btn{background:#1a2560;border-color:#ffffff1a;box-shadow:0 4px 12px #0000004d}.dark .back-btn:hover{background:#2563eb;border-color:#3b82f6;transform:translate(-4px)}.dark .detail-title{color:#fff}.dark .detail-subtitle{color:#94a3b8}.dark .submission-list-card{background:#162050;border-color:#ffffff14;box-shadow:0 10px 40px #0006}.dark .sl-title{color:#fff}.dark .sl-subtitle{color:#94a3b8}.dark .submission-row{background:#1a2560;border-color:#ffffff0d}.dark .submission-row:hover{background:#1e2d6b;border-color:#ffffff1a}.dark .sub-name{color:#fff}.dark .sub-file{color:#94a3b8}.dark .sub-meta .sub-date{color:#64748b}.dark .grade-btn{background:#ef44441a;color:#f87171;border:1px solid rgba(239,68,68,.2)}.dark .grade-btn:hover{background:#ef444433;border-color:#f87171}.dark .preview-btn{background:#3b43c926;color:#818cf8;border:1px solid rgba(59,67,201,.3)}.dark .preview-btn:hover{background:#3b43c940;border-color:#818cf8}.dark .preview-btn[data-tooltip]:after{background:#334155;color:#f8fafc;box-shadow:0 4px 12px #0000004d}.dark .preview-btn[data-tooltip]:before{border-top-color:#334155}.dark .feedback-btn{background:#ffffff0d;color:#f1f5f9;border:1px solid rgba(255,255,255,.1)}.dark .feedback-btn:hover{background:#ffffff1a;border-color:#fff3}.dark .grade-btn.graded{background:#059669;color:#fff;border-color:#10b981}.grade-dropdown-wrap{position:relative;z-index:1}.grade-dropdown-wrap.is-open{z-index:1000}.grade-options-menu{position:absolute;top:calc(100% + 4px);right:0;width:100px;background:#fff;border:1px solid rgba(11,25,87,.1);border-radius:12px;box-shadow:0 10px 30px #00000026;z-index:1001;overflow:hidden;animation:dropdownSlide .2s cubic-bezier(.16,1,.3,1)}@keyframes dropdownSlide{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}.grade-opt-item{padding:12px;display:flex;justify-content:center;align-items:center;cursor:pointer;transition:all .2s ease}.grade-opt-item:hover{background:#eef2ff}.opt-label{font-size:15px;font-weight:800;color:#0b1957}.opt-desc{display:none}.grade-btn.graded{background:#10b981;color:#fff}.grade-btn.graded:hover{background:#059669}.dark .grade-options-menu{background:#1e2d6b;border-color:#ffffff1a;box-shadow:0 10px 25px #0006}.dark .grade-opt-item:hover{background:#ffffff0d}.dark .opt-label{color:#fff}.dark .opt-desc{color:#94a3b8}.feedback-modal-overlay{position:fixed;inset:0;background:#0b195766;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);display:flex;align-items:center;justify-content:center;z-index:99999999}.feedback-modal-card{background:#fff;width:100%;max-width:500px;border-radius:24px;padding:32px;position:relative;box-shadow:0 24px 64px #0b195726;animation:fbPopIn .3s cubic-bezier(.34,1.56,.64,1);overflow:hidden}.feedback-modal-card:before{content:"";position:absolute;inset:0;padding:2px;border-radius:24px;background:linear-gradient(var(--border-angle, 0deg),#9ECCFA,#0B1957,#9ECCFA);-webkit-mask:linear-gradient(#fff 0 0) content-box,linear-gradient(#fff 0 0);mask:linear-gradient(#fff 0 0) content-box,linear-gradient(#fff 0 0);-webkit-mask-composite:xor;mask-composite:exclude;pointer-events:none;z-index:5;animation:rotate-border 4s linear infinite}@property --border-angle{syntax: "<angle>"; initial-value: 0deg; inherits: false;}@keyframes rotate-border{to{--border-angle: 360deg}}@keyframes fbPopIn{0%{opacity:0;transform:scale(.9) translateY(20px)}to{opacity:1;transform:scale(1) translateY(0)}}.fb-modal-close{position:absolute;top:20px;right:20px;background:transparent;border:none;cursor:pointer;padding:8px;border-radius:50%;transition:all .2s ease}.fb-modal-close:hover{background:#f1f5f9;transform:rotate(90deg)}.fb-modal-title{font-size:20px;font-weight:800;color:#0b1957;margin:0}.fb-modal-subtitle{font-size:14px;color:#64748b;margin:6px 0 24px;font-weight:500}.fb-textarea{width:100%;height:140px;background:#fdf9f3;border:1.5px solid #ECE8DD;border-radius:16px;padding:16px;font-size:14px;color:#0b1957;resize:none;transition:all .3s ease;margin-bottom:24px}.fb-textarea:focus{background:#fff;border-color:#3b82f6;outline:none;box-shadow:0 0 0 4px #3b82f61a,0 0 20px #3b82f626}.fb-modal-footer{display:flex;gap:12px}.fb-btn-cancel,.fb-btn-send{flex:1;padding:12px;border-radius:12px;font-size:14px;font-weight:700;cursor:pointer;transition:all .2s ease;border:none}.fb-btn-cancel{background:#fdf9f3;color:#0b1957;border:1px solid #ECE8DD}.fb-btn-cancel:hover{background:#f5f1e9}.fb-btn-send{background:#0b1957;color:#fff}.fb-btn-send:hover{background:#152a7e;transform:translateY(-2px);box-shadow:0 4px 12px #0b195733}.dark.feedback-modal-card,.dark .feedback-modal-card{background:#162050;border:none;box-shadow:0 24px 64px #00000080,0 0 30px #3b82f61a}.dark .feedback-modal-card:before{background:linear-gradient(var(--border-angle, 0deg),#3B82F6,#8B5CF6,#3B82F6)}.dark .fb-modal-title{color:#fff}.dark .fb-modal-subtitle{color:#94a3b8}.dark .fb-textarea{background:#1a2560;border-color:#ffffff1a;color:#fff}.dark .fb-btn-cancel{background:#ffffff0d;color:#f1f5f9;border-color:#ffffff1a}.dark .fb-btn-send{background:#3b82f6}.dark .fb-btn-send:hover{background:#2563eb}@media(max-width:768px){.faculty-assignments-header{flex-direction:column;gap:20px}.header-actions{width:100%;display:flex;gap:12px}.header-add-btn,.header-cancel-btn{width:100%;text-align:center;padding:12px 20px;font-weight:700;border-radius:12px}.form-row{flex-direction:column;gap:20px}.faculty-assignment-card{padding:20px;flex-direction:column;align-items:stretch;gap:16px}.card-right{text-align:left;width:100%;border-top:1px solid rgba(11,25,87,.05);padding-top:16px}}@media(max-width:600px){.assignment-form-card,.assignments-display-card-inner{padding:24px 16px}.card-left{flex-direction:column;align-items:flex-start;gap:12px}.form-group.flex-1{width:100%;min-width:100%}}.selected-files-list{margin-top:12px;display:flex;flex-direction:column;gap:8px;max-height:180px;overflow-y:auto;padding-right:4px}.selected-files-list::-webkit-scrollbar{width:4px}.selected-files-list::-webkit-scrollbar-track{background:transparent}.selected-files-list::-webkit-scrollbar-thumb{background:#cbd5e1;border-radius:4px}.file-item-chip{display:flex;align-items:center;justify-content:space-between;padding:8px 12px;background:#f8fafc;border:1px solid #E2E8F0;border-radius:10px;animation:slideInLeft .3s ease-out;transition:all .2s ease}@keyframes slideInLeft{0%{opacity:0;transform:translate(-10px)}to{opacity:1;transform:translate(0)}}.file-item-chip:hover{background:#fff;border-color:#3b82f6;box-shadow:0 4px 12px #3b82f61a}.file-item-info{display:flex;align-items:center;gap:10px;flex:1;min-width:0}.file-name-text{font-size:13px;font-weight:600;color:#475569;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.file-remove-btn{width:28px;height:28px;border-radius:8px;display:flex;align-items:center;justify-content:center;background:transparent;border:none;cursor:pointer;transition:all .2s ease;flex-shrink:0}.file-remove-btn:hover{background:#fee2e2;transform:rotate(90deg)}.dark .file-item-chip{background:#ffffff08;border-color:#ffffff14}.dark .file-item-chip:hover{background:#ffffff0f;border-color:#3b82f6}.dark .file-name-text{color:#cbd5e1}.dark .file-remove-btn:hover{background:#ef444433}.preview-modal-overlay{position:fixed;inset:0;background:#070f32a6;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);display:flex;align-items:center;justify-content:center;z-index:999999;padding:20px;animation:previewFadeIn .25s ease}@keyframes previewFadeIn{0%{opacity:0}to{opacity:1}}.preview-modal-container{background:#fff;border-radius:24px;width:100%;max-width:820px;max-height:92vh;display:flex;flex-direction:column;box-shadow:0 32px 80px #070f3238,0 0 0 1px #0b195712;animation:previewSlideUp .3s cubic-bezier(.34,1.56,.64,1);overflow:hidden}@keyframes previewSlideUp{0%{opacity:0;transform:translateY(24px) scale(.97)}to{opacity:1;transform:translateY(0) scale(1)}}.preview-modal-header{display:flex;align-items:center;justify-content:space-between;padding:20px 24px;border-bottom:1px solid rgba(11,25,87,.07);flex-shrink:0}.preview-header-left{display:flex;align-items:center;gap:14px;min-width:0}.preview-student-avatar{width:44px;height:44px;border-radius:14px;display:flex;align-items:center;justify-content:center;color:#fff;font-size:15px;font-weight:800;flex-shrink:0;box-shadow:0 4px 12px #00000026}.preview-header-info{min-width:0}.preview-student-name{font-size:17px;font-weight:800;color:#0b1957;margin:0 0 4px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.preview-file-label{display:flex;align-items:center;gap:5px;font-size:12.5px;color:#64748b;font-weight:500;margin:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.preview-submitted-on{color:#94a3b8}.preview-header-actions{display:flex;align-items:center;gap:10px;flex-shrink:0}.preview-download-btn{display:flex;align-items:center;gap:7px;padding:9px 18px;background:linear-gradient(135deg,#0b1957,#1e3a8a);color:#fff;border:none;border-radius:12px;font-size:13px;font-weight:700;cursor:pointer;transition:all .25s cubic-bezier(.4,0,.2,1);box-shadow:0 4px 14px #0b195740}.preview-download-btn:hover{transform:translateY(-2px);box-shadow:0 8px 20px #0b195759;background:linear-gradient(135deg,#152a7e,#1d4ed8)}.preview-download-btn:active{transform:translateY(0);box-shadow:0 2px 8px #0b195733}.preview-close-btn{width:38px;height:38px;border-radius:12px;display:flex;align-items:center;justify-content:center;background:#f1f5f9;border:none;cursor:pointer;transition:all .2s ease;color:#64748b}.preview-close-btn:hover{background:#e2e8f0;transform:rotate(90deg);color:#0b1957}.preview-doc-viewport{flex:1;overflow-y:auto;padding:28px 32px;background:#f1f5f9;background-image:radial-gradient(circle at 15% 50%,rgba(59,130,246,.04) 0%,transparent 50%),radial-gradient(circle at 85% 20%,rgba(11,25,87,.03) 0%,transparent 50%);scrollbar-width:thin;scrollbar-color:#CBD5E1 transparent}.preview-doc-viewport::-webkit-scrollbar{width:5px}.preview-doc-viewport::-webkit-scrollbar-track{background:transparent}.preview-doc-viewport::-webkit-scrollbar-thumb{background:#cbd5e1;border-radius:4px}.preview-doc-paper{background:#fff;border-radius:16px;padding:40px 44px;box-shadow:0 4px 6px #0000000a,0 10px 30px #0b19570f,0 0 0 1px #0b19570d;min-height:440px;display:flex;flex-direction:column;position:relative;transition:box-shadow .3s ease;animation:paperFade .35s ease-out}@keyframes paperFade{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.preview-doc-paper:hover{box-shadow:0 4px 6px #0000000a,0 16px 40px #0b195717,0 0 0 1px #0b195712}.preview-doc-topbar{display:flex;align-items:center;justify-content:space-between;margin-bottom:28px}.preview-doc-file-badge{display:inline-flex;align-items:center;gap:5px;padding:4px 10px;background:#eef2ff;color:#3b43c9;border-radius:8px;font-size:11.5px;font-weight:700}.preview-doc-page-tag{padding:4px 12px;background:#f0fdf4;color:#16a34a;border-radius:20px;font-size:11px;font-weight:700;letter-spacing:.04em;text-transform:uppercase}.preview-doc-h1{font-size:26px;font-weight:900;color:#0b1957;margin:0 0 16px;letter-spacing:-.02em;line-height:1.2}.preview-doc-rule{height:2px;background:linear-gradient(90deg,#0b1957,#0b19570d);border-radius:2px;margin-bottom:28px}.preview-doc-section{margin-bottom:24px}.preview-doc-h2{font-size:14px;font-weight:800;color:#1e3a8a;text-transform:uppercase;letter-spacing:.07em;margin:0 0 10px;padding-bottom:6px;border-bottom:1.5px solid #EEF2FF}.preview-doc-p{font-size:14.5px;line-height:1.78;color:#374151;margin:0;font-weight:400;white-space:pre-line}.preview-doc-footer-bar{display:flex;justify-content:space-between;align-items:center;margin-top:auto;padding-top:24px;border-top:1px dashed #E2E8F0}.preview-doc-author,.preview-doc-pgnum{font-size:12px;color:#94a3b8;font-weight:600}.preview-modal-footer{display:flex;align-items:center;justify-content:space-between;padding:16px 24px;border-top:1px solid rgba(11,25,87,.07);background:#fafbff;flex-shrink:0}.preview-pg-nav-btn{display:flex;align-items:center;gap:6px;padding:9px 18px;border-radius:11px;background:#f1f5f9;border:1px solid #E2E8F0;color:#475569;font-size:13px;font-weight:700;cursor:pointer;transition:all .2s ease;min-width:110px;justify-content:center}.preview-pg-nav-btn:hover:not(:disabled){background:#0b1957;color:#fff;border-color:#0b1957;transform:translateY(-1px);box-shadow:0 4px 12px #0b195733}.preview-pg-nav-btn:disabled{opacity:.38;cursor:not-allowed}.preview-pg-pills{display:flex;align-items:center;gap:8px}.preview-pg-pill{width:36px;height:36px;border-radius:10px;background:#f1f5f9;border:1.5px solid #E2E8F0;color:#64748b;font-size:13px;font-weight:700;cursor:pointer;transition:all .2s cubic-bezier(.4,0,.2,1);display:flex;align-items:center;justify-content:center}.preview-pg-pill:hover:not(.active){background:#e8eeff;border-color:#3b82f6;color:#0b1957;transform:translateY(-1px)}.preview-pg-pill.active{background:linear-gradient(135deg,#0b1957,#1e3a8a);border-color:transparent;color:#fff;box-shadow:0 4px 14px #0b19574d;transform:scale(1.1)}.preview-modal-container.dark{background:#111827;box-shadow:0 32px 80px #00000080,0 0 0 1px #ffffff0f}.dark .preview-modal-header{border-bottom-color:#ffffff12}.dark .preview-student-name{color:#f1f5f9}.dark .preview-file-label{color:#94a3b8}.dark .preview-close-btn{background:#ffffff12;color:#94a3b8}.dark .preview-close-btn:hover{background:#ffffff1f;color:#f1f5f9}.dark .preview-download-btn{background:linear-gradient(135deg,#1e3a8a,#2563eb);box-shadow:0 4px 14px #2563eb59}.dark .preview-download-btn:hover{background:linear-gradient(135deg,#1d4ed8,#3b82f6);box-shadow:0 8px 24px #2563eb80}.dark .preview-doc-viewport{background:#0f172a;background-image:radial-gradient(circle at 15% 50%,rgba(59,130,246,.06) 0%,transparent 50%),radial-gradient(circle at 85% 20%,rgba(139,92,246,.04) 0%,transparent 50%)}.dark .preview-doc-paper{background:#1e293b;box-shadow:0 4px 6px #0003,0 10px 30px #0000004d,0 0 0 1px #ffffff0f}.dark .preview-doc-file-badge{background:#3b43c933;color:#818cf8}.dark .preview-doc-page-tag{background:#16a34a26;color:#4ade80}.dark .preview-doc-h1{color:#f1f5f9}.dark .preview-doc-rule{background:linear-gradient(90deg,#6366f199,#6366f105)}.dark .preview-doc-h2{color:#818cf8;border-bottom-color:#6366f126}.dark .preview-doc-p{color:#cbd5e1}.dark .preview-doc-footer-bar{border-top-color:#ffffff12}.dark .preview-doc-author,.dark .preview-doc-pgnum{color:#475569}.dark .preview-modal-footer{background:#111827;border-top-color:#ffffff12}.dark .preview-pg-nav-btn{background:#ffffff0d;border-color:#ffffff1a;color:#94a3b8}.dark .preview-pg-nav-btn:hover:not(:disabled){background:#3b82f6;border-color:#3b82f6;color:#fff;box-shadow:0 4px 12px #3b82f659}.dark .preview-pg-pill{background:#ffffff0d;border-color:#ffffff1a;color:#64748b}.dark .preview-pg-pill:hover:not(.active){background:#6366f126;border-color:#6366f1;color:#a5b4fc}.dark .preview-pg-pill.active{background:linear-gradient(135deg,#3b82f6,#6366f1);box-shadow:0 4px 14px #6366f166}.assignments-pagination{display:flex;align-items:center;justify-content:center;gap:20px;margin-top:40px;padding-top:24px;border-top:1px solid rgba(11,25,87,.05)}.pag-numbers{display:flex;gap:8px}.pag-btn{display:flex;align-items:center;gap:8px;padding:10px 18px;border-radius:12px;background:#f8fafc;border:1px solid #E2E8F0;color:#475569;font-size:14px;font-weight:700;cursor:pointer;transition:all .3s cubic-bezier(.4,0,.2,1)}.pag-btn:hover:not(:disabled){background:#eef2ff;border-color:#3b82f6;color:#0b1957;transform:translateY(-2px);box-shadow:0 4px 12px #3b82f61a}.pag-btn:disabled{opacity:.5;cursor:not-allowed;background:#f1f5f9}.pag-num{width:40px;height:40px;display:flex;align-items:center;justify-content:center;border-radius:10px;background:#fff;border:1px solid #E2E8F0;color:#64748b;font-weight:700;font-size:14px;cursor:pointer;transition:all .3s cubic-bezier(.4,0,.2,1)}.pag-num:hover:not(.active){background:#f8fafc;border-color:#cbd5e1;color:#0b1957;transform:scale(1.05)}.pag-num.active{background:#0b1957;color:#fff;border-color:#0b1957;box-shadow:0 4px 12px #0b195733}.dark .assignments-pagination{border-top-color:#ffffff0d}.dark .pag-btn{background:#ffffff08;border-color:#ffffff14;color:#94a3b8}.dark .pag-btn:hover:not(:disabled){background:#3b82f61a;border-color:#3b82f6;color:#60a5fa}.dark .pag-num{background:#ffffff05;border-color:#ffffff0f;color:#94a3b8}.dark .pag-num:hover:not(.active){background:#ffffff0d;color:#fff}.dark .pag-num.active{background:#3b82f6;color:#fff;border-color:#3b82f6;box-shadow:0 0 15px #3b82f64d}.preview-url-banner{background:#f8fafc;border-bottom:1px solid #E2E8F0;padding:14px 24px;display:flex;align-items:center}.url-banner-content{display:flex;align-items:center;gap:8px;font-size:13.5px;font-weight:500}.url-banner-label{color:#64748b}.url-banner-link{color:#2563eb;text-decoration:none;font-weight:700;display:flex;align-items:center;transition:all .2s ease}.url-banner-link:hover{color:#1d4ed8;text-decoration:underline}.dark .preview-url-banner{background:#ffffff08;border-bottom-color:#ffffff14}.dark .url-banner-label{color:#94a3b8}.dark .url-banner-link{color:#60a5fa}.dark .url-banner-link:hover{color:#93c5fd}.target-audience-selector{display:flex;gap:12px;background:#0b195708;padding:6px;border-radius:12px;width:fit-content;margin-top:8px;border:1px solid rgba(11,25,87,.08)}.dark .target-audience-selector{background:#ffffff0d;border-color:#ffffff14}.target-pill{padding:8px 18px;border-radius:8px;font-size:13.5px;font-weight:600;border:none;background:transparent;color:#64748b;cursor:pointer;transition:all .3s cubic-bezier(.175,.885,.32,1.275)}.dark .target-pill{color:#94a3b8}.target-pill.active{background:#0b1957;color:#fff;box-shadow:0 4px 12px #0b195733}.dark .target-pill.active{background:#3b82f6;box-shadow:0 4px 15px #3b82f666}.target-audience-info-box{margin-top:12px;padding:12px 16px;border-radius:12px;background:#f8fafc;border:1px solid #E2E8F0;font-size:13px;color:#475569}.dark .target-audience-info-box{background:#ffffff05;border-color:#ffffff14;color:#94a3b8}.target-info-desc{margin:0;line-height:1.5}.target-info-desc strong{color:#0b1957}.dark .target-info-desc strong{color:#f1f5f9}.at-risk-glow strong{color:#ef4444!important}.custom-glow strong{color:#3b82f6!important}.custom-selection-group{display:flex;flex-direction:column;gap:12px;margin-top:16px;animation:slideDownFade .3s cubic-bezier(.175,.885,.32,1.1)}.custom-select-chips{display:flex;flex-wrap:wrap;gap:8px;padding:8px 12px;background:#0b195705;border:1px solid rgba(11,25,87,.05);border-radius:12px;max-height:120px;overflow-y:auto}.dark .custom-select-chips{background:#ffffff05;border-color:#ffffff0d}.student-chip{display:inline-flex;align-items:center;gap:8px;padding:6px 12px;background:#e0e7ff;color:#312e81;border-radius:8px;font-size:13px;font-weight:700;transition:all .2s cubic-bezier(.4,0,.2,1);box-shadow:0 2px 4px #4f46e514}.student-chip:hover{transform:translateY(-1px);box-shadow:0 4px 8px #4f46e526}.dark .student-chip{background:#3b82f626;color:#93c5fd;box-shadow:none}.chip-remove-btn{border:none;background:transparent;color:currentColor;cursor:pointer;display:flex;align-items:center;justify-content:center;padding:2px;border-radius:50%;transition:all .2s ease;opacity:.8}.chip-remove-btn:hover{background:#ffffff80;opacity:1;transform:scale(1.1)}.dark .chip-remove-btn:hover{background:#ffffff26}.student-search-input-wrapper{position:relative;width:100%}.student-search-input-wrapper .search-icon-left{position:absolute;left:14px;top:50%;transform:translateY(-50%);pointer-events:none;z-index:5;display:flex;align-items:center;justify-content:center}.student-search-input-wrapper .search-input-field{width:100%;padding-left:40px!important;padding-right:40px!important}.search-clear-btn{position:absolute;right:14px;top:50%;transform:translateY(-50%);border:none;background:transparent;cursor:pointer;padding:4px;border-radius:50%;display:flex;align-items:center;justify-content:center;transition:all .2s ease}.search-clear-btn:hover{background:#0000000d}.dark .search-clear-btn:hover{background:#ffffff14}.student-dropdown-menu{position:absolute;top:calc(100% + 8px);left:0;width:100%;max-height:250px;background:#fffffff5;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border:1px solid rgba(11,25,87,.08);border-radius:12px;box-shadow:0 10px 25px -5px #0b19571a,0 8px 10px -6px #0b19570d;z-index:1000;overflow-y:auto;padding:6px;display:flex;flex-direction:column;gap:4px;animation:slideDownFade .25s cubic-bezier(.175,.885,.32,1.1)}.dark .student-dropdown-menu{background:#162050f2;border-color:#ffffff14;box-shadow:0 15px 30px #0006}.student-dropdown-empty{padding:16px;text-align:center;font-size:13.5px;color:#64748b;font-weight:500}.dark .student-dropdown-empty{color:#94a3b8}.student-dropdown-item{display:flex;align-items:center;gap:12px;padding:10px 14px;border-radius:8px;cursor:pointer;transition:all .2s ease-out}.student-dropdown-item:hover{background:#eef2ff;transform:translate(2px)}.dark .student-dropdown-item:hover{background:#3b82f626}.student-dropdown-avatar{width:32px;height:32px;border-radius:50%;background:#bfdbfe;color:#1e3a8a;display:flex;align-items:center;justify-content:center;font-size:11px;font-weight:800;flex-shrink:0}.dark .student-dropdown-avatar{background:#3b82f633;color:#93c5fd}.student-dropdown-info{display:flex;flex-direction:column;gap:2px}.student-dropdown-name{font-size:13.5px;font-weight:700;color:#0b1957}.dark .student-dropdown-name{color:#f1f5f9}.student-dropdown-username{font-size:11px;color:#64748b;font-weight:500}.dark .student-dropdown-username{color:#94a3b8}.student-dropdown-menu::-webkit-scrollbar,.custom-select-chips::-webkit-scrollbar{width:6px}.student-dropdown-menu::-webkit-scrollbar-track,.custom-select-chips::-webkit-scrollbar-track{background:transparent}.student-dropdown-menu::-webkit-scrollbar-thumb,.custom-select-chips::-webkit-scrollbar-thumb{background:#64748b33;border-radius:3px}.student-dropdown-menu::-webkit-scrollbar-thumb:hover,.custom-select-chips::-webkit-scrollbar-thumb:hover{background:#64748b66}.faculty-rewards-view{display:flex;flex-direction:column;width:100%;animation:fadeInRewards .5s cubic-bezier(.16,1,.3,1)}@keyframes fadeInRewards{0%{opacity:0;transform:translateY(15px)}to{opacity:1;transform:translateY(0)}}.rewards-main-board{background:#fff;border-radius:24px;padding:24px;box-sizing:border-box;border:1.5px solid rgba(59,130,246,.5);box-shadow:0 10px 40px #0b195708;transition:all .4s cubic-bezier(.175,.885,.32,1.275)}.rewards-main-board:hover{transform:translateY(-5px);box-shadow:0 15px 40px #9eccfa66;border-color:#9eccfa}.rewards-board-header{display:flex;justify-content:space-between;align-items:center;padding-bottom:24px;border-bottom:1px solid #F1EFE9;margin-bottom:32px}.board-title{font-size:24px;font-weight:800;color:#0b1957;margin:0 0 6px;letter-spacing:-.01em}.board-subtitle{font-size:14.5px;color:#64748b;margin:0;font-weight:500}.tab-switcher{display:flex;gap:12px;margin-top:16px;background:#f8f9fa;padding:6px;border-radius:12px;width:fit-content}.tab-btn{padding:8px 16px;border-radius:8px;border:none;background:transparent;font-weight:600;font-size:14px;color:#64748b;cursor:pointer;transition:all .2s ease}.tab-btn.active{background:#fff;color:#0b1957;box-shadow:0 4px 12px #0b195714}.header-actions{display:flex;flex-direction:column;align-items:flex-end;gap:10px}.warehouse-top-status{display:flex;align-items:center;padding:6px 18px;border-radius:100px;font-size:13px;font-weight:800;letter-spacing:.02em;box-shadow:0 4px 12px #0000001f;border:none;transition:all .3s ease}.warehouse-top-status.status-all-out{background:#fee2e2;color:#b91c1c}.warehouse-top-status.status-available{background:#dcfce7;color:#166534}.dark .warehouse-top-status.status-all-out{background:#ef444433;color:#fca5a5}.dark .warehouse-top-status.status-available{background:#22c55e33;color:#86efac}.warehouse-card-actions{display:grid;grid-template-columns:1fr 36px;gap:8px;margin-top:15px;width:100%;height:36px;box-sizing:border-box}.btn-add-codes,.btn-delete-reward{margin:0!important;padding:0!important;border:none!important;height:100%!important;display:flex!important;align-items:center!important;justify-content:center!important;border-radius:8px!important;cursor:pointer;box-sizing:border-box!important;transition:background .2s ease}.btn-add-codes{background:#e0e7ff;color:#4338ca;font-weight:700;font-size:13px}.btn-add-codes:hover{background:#c7d2fe}.btn-delete-reward{background:#fee2e2;color:#ef4444;width:36px}.btn-delete-reward:hover{background:#fecdd3;color:#dc2626}.btn-delete-reward svg{display:block;width:16px;height:16px}.dark .btn-add-codes{background:#4338ca33;color:#a5b4fc}.dark .btn-delete-reward{background:#ef444426;color:#fca5a5}.dark .btn-delete-reward:hover{background:#ef444440}.add-reward-btn{background:#0b1957;color:#fff;padding:10px 20px;border-radius:10px;border:none;font-weight:700;font-size:14px;cursor:pointer;transition:all .2s ease}.add-reward-btn:hover{background:#152a7e;transform:translateY(-1px)}.section-title{font-size:1.45rem;font-weight:700;color:#0b1957;margin:0 0 24px;line-height:1.2}.faculty-reward-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px}.faculty-reward-item-card{background:#fff;border-radius:16px;padding:16px;border:1.5px solid rgba(59,130,246,.5);transition:all .4s cubic-bezier(.175,.885,.32,1.275);display:flex;flex-direction:column}.faculty-reward-item-card:hover{transform:translateY(-10px) scale(1.02);box-shadow:0 20px 40px #9eccfa99;border-color:#9eccfa}.reward-item-image{width:100%;height:180px;border-radius:12px;overflow:hidden;background:#f8f4ea;display:flex;align-items:center;justify-content:center}.reward-item-image img{width:100%;height:100%;object-fit:cover;transition:transform .5s ease}.faculty-reward-item-card:hover .reward-item-image img{transform:scale(1.1)}.reward-item-details{padding:16px 0 0;background:transparent;flex:1;display:flex;flex-direction:column;gap:8px}.reward-item-name{font-size:1.05rem;font-weight:800;color:#0b1957;margin:0}.reward-item-points{display:flex;align-items:center;gap:6px;margin-bottom:8px}.pts-label{font-size:13.5px;color:#64748b}.pts-label b{color:#3b82f6;font-weight:700}.stock-badge{padding:4px 10px;border-radius:100px;font-size:12px;font-weight:700;width:fit-content;margin-bottom:12px}.stock-badge.out-of-stock{background:#fee2e2;color:#b91c1c}.dark .stock-badge.out-of-stock{background:#ef444426;color:#fca5a5}.warehouse-status-badge{display:inline-block;padding:4px 10px;border-radius:6px;font-size:13px;font-weight:700;width:fit-content}.status-in-stock{background:#ecfdf5;color:#065f46;border:1px solid #A7F3D0}.status-out-of-stock{background:#fff1f2;color:#be123c;border:1px solid #FECDD3}.dark .status-in-stock{background:#10b9811a;color:#34d399;border-color:#10b98133}.dark .status-out-of-stock{background:#f43f5e1a;color:#fb7185;border-color:#f43f5e33}.reward-card-actions{display:flex;gap:10px;margin-top:auto}.btn-edit-reward,.btn-delete-reward{flex:1;display:flex;align-items:center;justify-content:center;gap:8px;padding:8px 0;border-radius:8px;font-size:13px;font-weight:700;border:none;cursor:pointer;transition:all .2s}.btn-edit-reward{background:#dbeafe;color:#1e40af}.btn-edit-reward:hover{background:#bfdbfe}.btn-delete-reward{background:#fee2e2;color:#b91c1c}.btn-delete-reward:hover{background:#fecaca}.dark .rewards-main-board{background:#162050;border:1.5px solid rgba(59,130,246,.85);padding:24px;box-sizing:border-box;box-shadow:0 10px 40px #0006}.dark .rewards-main-board:hover{border-color:#60a5fa99;box-shadow:0 0 30px #3b82f640}.dark .rewards-board-header{border-bottom:1.5px solid rgba(59,130,246,.2)}.dark .board-title,.dark .section-title,.dark .reward-item-name{color:#f8fafc}.dark .board-subtitle{color:#94a3b8}.dark .tab-switcher{background:#00000040;border:1px solid rgba(255,255,255,.05);padding:5px}.dark .tab-btn{color:#94a3b8}.dark .tab-btn:hover:not(.active){color:#f1f5f9;background:#ffffff0d}.dark .tab-btn.active{background:#ffffff1f;color:#fff;box-shadow:0 4px 15px #0006,0 0 10px #3b82f61a;border:1px solid rgba(255,255,255,.15)}.dark .faculty-reward-item-card{background:#162050;padding:16px;border:1.5px solid rgba(59,130,246,.85);box-shadow:0 4px 20px #0000004d;transition:all .4s cubic-bezier(.175,.885,.32,1.275)}.dark .faculty-reward-item-card:hover{border-color:#60a5facc;box-shadow:0 0 25px #3b82f666;transform:translateY(-10px) scale(1.02)}.dark .reward-item-details{background:transparent}.dark .reward-item-image{background:#ffffff0d}.dark .reward-item-image img{opacity:.85;filter:brightness(.9) contrast(1.1)}.dark .pts-label{color:#94a3b8}.dark .pts-label b{color:#60a5fa}.dark .rewards-board-content{margin-top:24px;padding:0}.dark .btn-edit-reward{background:#1e3a8a;color:#dbeafe}.dark .btn-edit-reward:hover{background:#2563eb}.dark .btn-delete-reward{background:#450a0a;color:#fecaca}.dark .btn-delete-reward:hover{background:#7f1d1d}.dark .add-reward-btn{background:#1d4ed8}@media(max-width:1024px){.faculty-reward-grid{grid-template-columns:repeat(2,1fr)}}@media(max-width:640px){.rewards-board-header{flex-direction:column;align-items:flex-start;gap:16px}.faculty-reward-grid{grid-template-columns:1fr}}.warehouse-container{animation:fadeIn .3s ease}.warehouse-stats{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:20px;margin-top:20px}.warehouse-stat-card{background:#f8fafc;padding:20px;border-radius:16px;border:1px solid #E2E8F0;display:flex;flex-direction:column;gap:8px}.warehouse-stat-card h4{margin:0;font-size:16px;color:#0b1957}.warehouse-stat-card p{margin:0;font-size:14px;color:#64748b}.btn-add-codes{margin-top:12px;background:#dbeafe;color:#1e40af;border:none;padding:8px;border-radius:8px;font-weight:700;cursor:pointer;transition:all .2s}.btn-add-codes:hover{background:#bfdbfe}.dark .warehouse-stat-card{background:#ffffff08;border-color:#3b82f633}.dark .warehouse-stat-card h4{color:#fff}.dark .btn-add-codes{background:#1e3a8a;color:#dbeafe}.add-user-overlay{position:fixed;top:0;left:0;width:100%;height:100%;background:#0b195766;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);display:flex;align-items:center;justify-content:center;z-index:2000;animation:fadeIn .3s ease}.add-user-modal-card{background:#fffffff2;width:90%;max-width:500px;border-radius:24px;padding:40px;box-shadow:0 25px 50px -12px #00000040;border:1px solid rgba(255,255,255,.3);animation:modalSlideUp .4s cubic-bezier(.16,1,.3,1)}.dark .add-user-modal-card{background:#162050f2;border-color:#3b82f64d}.add-user-modal-card h2{font-size:28px;font-weight:800;color:#0b1957;margin:0 0 24px;text-align:center;letter-spacing:-.02em}.dark .add-user-modal-card h2{color:#fff}.add-user-form input,.add-user-form textarea{background:#f8fafc;border:1.5px solid #E2E8F0;padding:14px 18px;border-radius:12px;font-size:15px;color:#0b1957;transition:all .2s ease}.dark .add-user-form input,.dark .add-user-form textarea{background:#ffffff0d;border-color:#3b82f633;color:#fff}.add-user-form input:focus,.add-user-form textarea:focus{outline:none;border-color:#3b82f6;background:#fff;box-shadow:0 0 0 4px #3b82f61a}.dark .add-user-form input:focus,.dark .add-user-form textarea:focus{background:#ffffff14}.btn-submit{background:linear-gradient(135deg,#0b1957,#1d4ed8);color:#fff;padding:16px;border-radius:12px;border:none;font-weight:700;font-size:16px;cursor:pointer;transition:all .3s ease;margin-top:10px;box-shadow:0 10px 20px -5px #1d4ed866}.btn-submit:hover{transform:translateY(-2px);box-shadow:0 15px 25px -5px #1d4ed880;filter:brightness(1.1)}@keyframes modalSlideUp{0%{opacity:0;transform:translateY(30px) scale(.95)}to{opacity:1;transform:translateY(0) scale(1)}}.dark .add-user-modal-card.reward-glow{box-shadow:0 0 20px #3b82f666,0 0 40px #3b82f633,0 25px 50px -12px #00000080;border:2px solid rgba(59,130,246,.8);background:#101840fa}.custom-modal-overlay{position:fixed;top:0;left:0;width:100%;height:100%;background:#0b195766;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);display:flex;align-items:center;justify-content:center;z-index:3000;animation:fadeIn .2s ease-out}.delete-confirm-modal{background:#fff;width:90%;max-width:400px;padding:32px;border-radius:20px;text-align:center;box-shadow:0 20px 40px #0000001a;animation:modalSlideUp .3s cubic-bezier(.16,1,.3,1)}.dark .delete-confirm-modal{background:#111827;border:1.5px solid rgba(239,68,68,.3);box-shadow:0 0 25px #ef444433}.modal-icon-warning{width:70px;height:70px;background:#fef2f2;border-radius:50%;display:flex;align-items:center;justify-content:center;margin:0 auto 20px}.dark .modal-icon-warning{background:#ef44441a}.delete-confirm-modal h3{font-size:22px;font-weight:800;color:#111827;margin-bottom:12px}.dark .delete-confirm-modal h3{color:#fff}.delete-confirm-modal p{color:#4b5563;font-size:15px;line-height:1.6;margin-bottom:28px}.dark .delete-confirm-modal p{color:#9ca3af}.delete-confirm-modal p strong{color:#111827;font-weight:700}.dark .delete-confirm-modal p strong{color:#fff}.delete-modal-actions{display:flex;gap:12px}.delete-modal-actions button{flex:1;padding:12px;border-radius:12px;font-weight:700;font-size:15px;cursor:pointer;transition:all .2s ease}.cancel-btn{background:#f3f4f6;color:#4b5563;border:none}.cancel-btn:hover{background:#e5e7eb}.dark .cancel-btn{background:#ffffff0d;color:#f3f4f6}.confirm-delete-btn{background:#ef4444;color:#fff;border:none;box-shadow:0 4px 12px #ef444440}.confirm-delete-btn:hover{background:#dc2626;box-shadow:0 6px 16px #ef444459;transform:translateY(-1px)}.dark .delete-confirm-modal{border-color:#ef444499;box-shadow:0 0 20px #ef44444d,0 0 40px #ef44441a}@keyframes facFadeIn{0%{opacity:0;transform:translateY(15px)}to{opacity:1;transform:translateY(0)}}.faculty-notifications-page{display:flex;flex-direction:column;width:100%;animation:facFadeIn .5s ease}.notif-tabs{display:flex;gap:12px;margin-bottom:24px;border-bottom:1px solid #EDEDF5;padding-bottom:12px}.notif-tab{background:none;border:none;padding:8px 16px;font-size:14px;font-weight:700;color:#64748b;cursor:pointer;border-radius:8px;transition:all .3s}.notif-tab:hover{color:#0b1957;background:#f1f5f9}.notif-tab.active{color:#0b1957;background:#e0f2fe;position:relative}.notif-tab.active:after{content:"";position:absolute;bottom:-13px;left:0;right:0;height:3px;background:#0b1957;border-radius:3px 3px 0 0}.dark .notif-tabs{border-color:#ffffff14}.dark .notif-tab{color:#94a3b8}.dark .notif-tab:hover{background:#ffffff0d;color:#f1f5f9}.dark .notif-tab.active{background:#3b82f633;color:#60a5fa}.dark .notif-tab.active:after{background:#3b82f6}.fac-notif-unified-card{background:#fff;border-radius:24px;padding:40px;border:1px solid rgba(13,25,87,.08);box-shadow:0 10px 40px #0b195708;transition:all .4s cubic-bezier(.175,.885,.32,1.275)}.fac-notif-unified-card:hover{transform:translateY(-5px);box-shadow:0 15px 40px #9eccfa66;border-color:#9eccfa}.fac-page-header{margin-bottom:32px}.fac-page-title{font-size:24px;font-weight:800;color:#0b1957;margin:0 0 6px;letter-spacing:-.01em}.fac-page-subtitle{font-size:15px;color:#64748b;margin:0}.fac-notif-grid{display:grid;grid-template-columns:1fr 1fr;gap:32px}.fac-notif-sub-section{background:#f8f9fb;border-radius:20px;padding:24px;border:1px solid #EDEDF5;transition:all .3s ease}.fac-notif-sub-section:hover{border-color:#9eccfa;background:#fff;box-shadow:0 8px 25px #9eccfa40}.card-inner-title{font-size:17px;font-weight:700;color:#0b1957;margin-bottom:24px;margin-top:0}.calendar-widget{background:#fff;border-radius:16px;padding:16px;border:1px solid #EDEDF5;width:280px;margin:0 auto 24px}.calendar-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px}.cal-nav-btn{background:none;border:none;color:#94a3b8;cursor:pointer;font-size:18px}.cal-month{font-weight:700;color:#0b1957}.calendar-days{display:grid;grid-template-columns:repeat(7,1fr);text-align:center;margin-bottom:8px}.day-label{font-size:12px;font-weight:600;color:#94a3b8}.calendar-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:4px}.date-cell{height:32px;display:flex;align-items:center;justify-content:center;font-size:13px;font-weight:600;color:#64748b;border-radius:8px;cursor:pointer;transition:all .2s}.date-cell:hover:not(.empty){background:#f8f3ea}.date-cell.selected{background:#0b1957;color:#fff}.date-cell.holiday{color:#ef4444}.date-cell.session{color:#3b82f6}.calendar-status{text-align:center;font-size:12px;color:#64748b;margin-top:16px;font-weight:500}.calendar-actions{display:grid;grid-template-columns:1fr 1fr;gap:12px}.btn-declare-session{background:#0b1957;color:#fff;border:none;padding:12px;border-radius:10px;font-weight:600;cursor:pointer}.btn-declare-holiday{background:#fff;color:#ef4444;border:1px solid #FEE2E2;padding:12px;border-radius:10px;font-weight:600;cursor:pointer}.announcement-send-card{margin-top:24px}.announcement-textarea{width:100%;height:100px;padding:16px;border-radius:12px;border:1px solid #E2E8F0;font-family:inherit;font-size:14px;margin-top:8px;resize:none;outline:none;transition:all .2s}.announcement-textarea:focus{border-color:#3b82f6;background:#fff;box-shadow:0 0 15px #3b82f640;outline:none}.input-error{border-color:#ef4444!important;box-shadow:0 0 0 2px #ef44441a!important}.sidebar-label{font-size:14px;font-weight:700;color:#0b1957}.announcement-actions{display:flex;justify-content:flex-end;gap:12px;margin-top:20px}.btn-submit{background:#0b1957;color:#fff;border:none;padding:12px 24px;border-radius:10px;font-weight:700;cursor:pointer}.btn-cancel{background:#fff;color:#64748b;border:1px solid #E2E8F0;padding:12px 24px;border-radius:10px;font-weight:700;cursor:pointer}.activity-items{display:flex;flex-direction:column;gap:12px}.activity-panel-item{display:flex;align-items:center;gap:16px;padding:18px;border-radius:16px;border:1px solid #F1F5F9;background:#fff9;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);transition:all .3s cubic-bezier(.34,1.56,.64,1);position:relative}.activity-panel-item:hover{transform:translate(4px) translateY(-2px);border-color:#9eccfa;box-shadow:0 4px 15px #9eccfa33}.activity-panel-item.unread{background:#f0f7ff;border-color:#bfdbfe}.act-icon-box{width:40px;height:40px;border-radius:8px;display:flex;align-items:center;justify-content:center;flex-shrink:0}.act-icon-box.submission{background:#dbeafe;color:#1e40af}.act-icon-box.attendance{background:#dcfce7;color:#166534}.act-icon-box.announcement{background:#f3e8ff;color:#7e22ce}.act-icon-box.holiday{background:#fee2e2;color:#991b1b}.act-icon-box.session{background:#f3e8ff;color:#7e22ce}.act-text{font-size:14px;font-weight:700;color:#334155;margin:0}.act-time{font-size:11.5px;color:#64748b}.unread-dot{position:absolute;right:16px;width:8px;height:8px;background:#0b1957;border-radius:50%}.holiday-confirm-overlay{position:fixed;inset:0;background:#0d195766;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);display:flex;align-items:center;justify-content:center;z-index:2000;animation:facFadeInModal .3s ease}@keyframes facFadeInModal{0%{opacity:0}to{opacity:1}}.holiday-confirm-modal{background:#fff;padding:40px;border-radius:28px;width:100%;max-width:420px;text-align:center;box-shadow:0 25px 50px -12px #00000040;border:1px solid rgba(13,25,87,.08);position:relative;animation:facSpringModal .5s cubic-bezier(.34,1.56,.64,1)}@keyframes facSpringModal{0%{transform:scale(.8);opacity:0}to{transform:scale(1);opacity:1}}.holiday-icon-box{width:64px;height:64px;background:#fef2f2;color:#ef4444;border-radius:20px;display:flex;align-items:center;justify-content:center;margin:0 auto 24px}.session-icon-box{background:#f3e8ff!important;color:#7e22ce!important}.confirm-title{font-size:22px;font-weight:800;color:#0b1957;margin:0 0 12px}.confirm-desc{font-size:15px;color:#64748b;line-height:1.6;margin-bottom:32px}.confirm-desc b{color:#0f172a}.confirm-actions{display:grid;grid-template-columns:1fr 1fr;gap:16px}.btn-yes{background:#ef4444;color:#fff;border:none;padding:14px;border-radius:14px;font-weight:700;cursor:pointer;transition:all .2s}.btn-yes:hover{background:#dc2626;transform:translateY(-2px);box-shadow:0 4px 12px #ef44444d}.btn-no{background:#f8fafc;color:#64748b;border:1px solid #E2E8F0;padding:14px;border-radius:14px;font-weight:700;cursor:pointer}.btn-no:hover{background:#f1f5f9}.notif-success-toast{position:fixed;bottom:40px;right:40px;background:#0b1957;color:#fff;padding:16px 24px;border-radius:16px;display:flex;align-items:center;gap:12px;font-weight:700;font-size:15px;box-shadow:0 10px 25px #0b19574d;z-index:3000;animation:facToastSlideIn .5s cubic-bezier(.34,1.56,.64,1)}@keyframes facToastSlideIn{0%{transform:translate(100px);opacity:0}to{transform:translate(0);opacity:1}}.toast-icon{width:28px;height:28px;background:#fff3;border-radius:50%;display:flex;align-items:center;justify-content:center;color:#4ade80}.dark .fac-notif-unified-card{background:#162050;border-color:#ffffff14;box-shadow:0 10px 40px #0006}.dark .fac-notif-unified-card:hover{border-color:#3b82f680;box-shadow:0 0 30px #3b82f633}.dark .fac-page-title{color:#f1f5f9}.dark .fac-page-subtitle{color:#94a3b8}.dark .fac-notif-sub-section{background:#ffffff05;border-color:#ffffff0d}.dark .fac-notif-sub-section:hover{border-color:#3b82f666;background:#ffffff0a}.dark .card-inner-title,.dark .cal-month{color:#f1f5f9}.dark .calendar-widget{background:#1e2d6b;border-color:#ffffff14;box-shadow:0 4px 15px #0003}.dark .activity-panel-item{background:#ffffff08;border-color:#ffffff0d;box-shadow:0 4px 15px #0000001a}.dark .date-cell{color:#cbd5e1}.dark .date-cell:hover:not(.empty){background:#3b82f633;color:#fff}.dark .date-cell.selected{background:#3b82f6;color:#fff}.dark .sidebar-label{color:#94a3b8}.dark .act-text{color:#f1f5f9}.dark .act-time{color:#94a3b8}.dark .announcement-textarea{background:#0d1432;border:1px solid rgba(96,165,250,.3);color:#f1f5f9;box-shadow:0 0 10px #3b82f61a}.dark .announcement-textarea:focus{border-color:#60a5fa!important;box-shadow:0 0 25px #3b82f699!important}.dark .input-error{border-color:#f87171!important;box-shadow:0 0 15px #f871714d!important}.dark .btn-declare-holiday{background:#ef44441a;border-color:#ef444433;color:#f87171}.dark .btn-cancel{background:#1e2d6b;border-color:#ffffff1a;color:#94a3b8}.dark .btn-cancel:hover{background:#2d3e8b;color:#fff}.dark .holiday-confirm-modal{background:#162050;border:2px solid rgba(96,165,250,.8)!important;box-shadow:0 0 35px #3b82f699,inset 0 0 20px #3b82f633!important}.dark .confirm-title{color:#f1f5f9}.dark .confirm-desc{color:#94a3b8}.dark .confirm-desc b{color:#3b82f6}.dark .holiday-icon-box{background:#ef444426;color:#f87171}.dark .btn-no{background:#1e2d6b;border-color:#ffffff1a;color:#94a3b8}.dark .notif-success-toast{background:#1e2d6b;border:1px solid rgba(59,130,246,.3);box-shadow:0 10px 30px #0006}.dark .activity-panel-item.unread{background:#3b82f61a;border-color:#3b82f64d}.dark .act-icon-box.submission{background:#3b82f633;color:#60a5fa}.dark .act-icon-box.attendance{background:#10b98133;color:#34d399}.dark .act-icon-box.announcement{background:#a78bfa33;color:#a78bfa}.dark .act-icon-box.holiday{background:#f8717133;color:#f87171}.dark .act-icon-box.session{background:#a78bfa33;color:#a78bfa}.dark .unread-dot{background:#3b82f6;box-shadow:0 0 10px #3b82f680}.dark .session-icon-box{background:#a78bfa26!important;color:#a78bfa!important}.dark .btn-declare-session,.dark .btn-submit{background:#3b82f6;color:#fff}.dark .btn-declare-session:hover,.dark .btn-submit:hover{background:#2563eb;box-shadow:0 0 15px #3b82f666}@media(max-width:1024px){.fac-notif-grid{grid-template-columns:1fr}}@media(max-width:768px){.fac-notif-unified-card{padding:24px}.fac-page-header{margin-bottom:24px}}@media(max-width:480px){.calendar-actions,.confirm-actions{grid-template-columns:1fr}.btn-submit,.btn-cancel{width:100%}.announcement-actions{flex-direction:column}}.dark .pagination-btn{background:#1e2d6b;border-color:#ffffff1a;color:#f1f5f9}.dark .pagination-btn:hover:not(:disabled){background:#3b82f6;border-color:#3b82f6}.dark .pagination-info{background:#ffffff0d;color:#f1f5f9}.faculty-dashboard-root{min-height:900px;background-color:#f8f3ea;font-family:Inter,system-ui,-apple-system,sans-serif;display:flex;flex-direction:column;padding-bottom:273px}.dark.faculty-dashboard-root{background-color:#0b112b}.faculty-navbar{width:100%;height:64px;background-color:#0d1c44;display:flex;align-items:center;justify-content:space-between;padding:0 28px;box-sizing:border-box;position:sticky;top:0;z-index:1000;box-shadow:0 2px 16px #0d1c444d}.faculty-navbar-left{display:flex;align-items:center;gap:12px}.faculty-logo-box{width:40px;height:40px;background:#a4cafe;border-radius:12px;display:flex;align-items:center;justify-content:center}.faculty-nav-brand{font-size:18px;font-weight:700;color:#fff;white-space:nowrap;letter-spacing:.02em}.faculty-mobile-menu-btn{display:none;background:none;border:none;color:#fff;cursor:pointer;padding:8px;border-radius:8px}.faculty-mobile-drawer,.faculty-mobile-backdrop{display:none}@media(max-width:1024px){.faculty-navbar{padding:0 16px}.faculty-mobile-menu-btn{display:block;order:-1;z-index:1200}.faculty-navbar-center{display:none}}.faculty-navbar-center{display:flex;align-items:center;gap:4px;height:100%}.faculty-nav-item{background:none;border:none;color:#cbd5e1;font-family:inherit;padding:8px 16px;font-size:15px;font-weight:500;cursor:pointer;border-radius:8px;transition:all .2s ease;height:auto;display:flex;align-items:center;justify-content:center;white-space:nowrap}.faculty-nav-item:hover:not(.faculty-nav-item--active){color:#fff;background:#ffffff1a}.faculty-nav-item--active{background:#9eccfa;color:#0b1957;font-weight:600;border-radius:100px}.faculty-mobile-drawer{position:fixed;top:0;left:-100%;width:280px;height:100vh;background:#0d1c44;z-index:1300;transition:all .4s cubic-bezier(.4,0,.2,1);box-shadow:10px 0 30px #0003;display:flex;flex-direction:column}.faculty-mobile-drawer--open{left:0}.drawer-header{padding:24px 20px;display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid rgba(255,255,255,.1);margin-bottom:16px}.drawer-header .nav-brand{color:#fff;font-size:20px;font-weight:700}.drawer-close{background:none;border:none;color:#fff;cursor:pointer;padding:4px}.drawer-items{display:flex;flex-direction:column;padding:0 16px;gap:8px}.drawer-item{width:100%!important;background:none;border:none;color:#cbd5e1;padding:12px 16px;font-size:16px;font-weight:500;text-align:left;border-radius:10px;transition:all .2s;cursor:pointer}.drawer-item--active{background:#9eccfa;color:#0b1957;font-weight:700}.faculty-mobile-backdrop{position:fixed;inset:0;background:#0009;z-index:1250;opacity:0;pointer-events:none;transition:opacity .3s ease;display:block}.faculty-mobile-backdrop--visible{opacity:1;pointer-events:auto}@media(max-width:767px){.faculty-navbar-center{display:none}.faculty-mobile-menu-btn{display:block;order:-1}}.faculty-navbar-right{display:flex;align-items:center;gap:16px}.nav-status-badge{position:relative;display:inline-flex;align-items:center;justify-content:center;padding:2px;border-radius:100px;margin-right:8px;background:transparent;transition:all .3s ease;cursor:default;overflow:hidden;z-index:1}.nav-status-badge:hover{transform:translateY(-1px);box-shadow:0 4px 15px #9eccfa4d}.nav-status-badge:before{content:"";position:absolute;top:50%;left:50%;width:200%;height:200%;background:conic-gradient(from 0deg,transparent 0%,transparent 35%,#9ECCFA 50%,#F5F2EA 65%,transparent 80%,transparent 100%);transform-origin:center;animation:borderSpin 3s linear infinite;z-index:-2;transform:translate(-50%,-50%)}.status-badge-inner{background:#0d1c44;border-radius:98px;padding:4px 14px;position:relative;z-index:-1;display:flex;align-items:center;justify-content:center;width:100%;height:100%}.status-text{font-size:13.5px;font-weight:800;letter-spacing:.05em;text-transform:uppercase;background:linear-gradient(90deg,#9eccfa,#f5f2ea,#9eccfa);background-size:200% auto;background-clip:text;-webkit-background-clip:text;-webkit-text-fill-color:transparent;animation:textGradientShift 3s linear infinite}.icon-btn{width:36px;height:36px;background:#ffffff1a;border:none;border-radius:50%;color:#ffffffd9;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .2s;position:relative}.icon-btn:hover{background:#fff3;transform:translateY(-1px)}.icon-btn.active{background:#ffffff4d;color:#fff;box-shadow:0 0 15px #ffffff1a}.notif-badge{position:absolute;top:-4px;right:-4px;background-color:#ef4444;color:#fff;font-size:10px;font-weight:700;width:16px;height:16px;border-radius:50%;display:flex;align-items:center;justify-content:center;border:2px solid #0D1C44;z-index:2}.dark .notif-badge{border-color:#0b112b}.nav-avatar{width:36px;height:36px;background:#4b6cb7;border-radius:50%;color:#fff;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:14px;cursor:pointer;transition:all .2s;border:2px solid rgba(255,255,255,.1)}.nav-avatar:hover{transform:scale(1.05);box-shadow:0 0 15px #9eccfa66;border-color:#ffffff4d}.dark .nav-avatar{background:#3b82f6;border-color:#3b82f680;box-shadow:0 0 15px #3b82f64d}@keyframes borderSpin{to{transform:translate(-50%,-50%) rotate(360deg)}}@keyframes textGradientShift{to{background-position:200% center}}.dark .nav-status-badge:hover{box-shadow:0 4px 20px #d946ef66}.dark .nav-status-badge:before{background:conic-gradient(from 0deg,transparent 0%,transparent 35%,#0EA5E9 50%,#D946EF 65%,transparent 80%,transparent 100%)}.dark .status-text{background:linear-gradient(90deg,#0ea5e9,#d946ef,#0ea5e9);background-size:200% auto;background-clip:text;-webkit-background-clip:text;-webkit-text-fill-color:transparent}.faculty-body{padding:32px 0;width:95%;max-width:1400px;margin:0 auto;display:flex;flex-direction:column;gap:24px;box-sizing:border-box}.faculty-dashboard-view{display:flex;flex-direction:column;gap:24px}.faculty-welcome-banner{background:linear-gradient(to right,#9eccfa33,#d1e8ff33);padding:24px 32px;border-radius:16px;border:1px solid rgba(158,204,250,.3);display:flex;flex-direction:column;justify-content:center;transition:all .4s cubic-bezier(.175,.885,.32,1.275);cursor:default}.faculty-welcome-banner:hover{transform:translateY(-5px);box-shadow:0 12px 30px #9eccfa80;border-color:#9eccfacc}.banner-title{font-size:24px;font-weight:700;color:#0b1957;margin:0 0 4px}.banner-subtitle{font-size:14px;color:#6b7280;margin:0}.dark .banner-title{color:#f1f5f9}.dark .banner-subtitle{color:#94a3b8}.dark .faculty-welcome-banner{background:linear-gradient(to right,#3b82f61a,#9eccfa0d);border-color:#9eccfa33}.faculty-stats-row{display:grid;grid-template-columns:repeat(4,1fr);gap:24px}@media(max-width:1200px){.faculty-stats-row{grid-template-columns:repeat(2,1fr)}}@media(max-width:640px){.faculty-stats-row{grid-template-columns:1fr;gap:16px}}.faculty-stat-card{background:#fff;padding:20px;border-radius:16px;border:1px solid rgba(11,25,87,.1);display:flex;justify-content:space-between;align-items:center;transition:all .4s cubic-bezier(.175,.885,.32,1.275);cursor:pointer}.faculty-stat-card:hover{transform:translateY(-8px);box-shadow:0 15px 35px #9eccfa73;border-color:#9eccfa}.dark .faculty-stat-card{background:#162050;border-color:#ffffff14}.dark .stat-value{color:#f1f5f9}.dark .stat-label{color:#94a3b8}.stat-info{display:flex;flex-direction:column;gap:4px}.stat-label{font-size:14px;color:#64748b;font-weight:500}.stat-value{font-size:28px;font-weight:700;color:#0f172a}.stat-icon-box{width:48px;height:48px;border-radius:12px;display:flex;align-items:center;justify-content:center}.faculty-content-columns{display:grid;grid-template-columns:1fr 1fr;gap:24px;align-items:start}@media(max-width:1024px){.faculty-content-columns{grid-template-columns:1fr}}.faculty-column{display:flex;flex-direction:column;gap:24px}.dashboard-section{background:#fff;border-radius:16px;padding:24px;border:1px solid rgba(11,25,87,.1);transition:all .4s cubic-bezier(.175,.885,.32,1.275)}.dashboard-section:hover{transform:translateY(-5px);box-shadow:0 12px 30px #9eccfa66;border-color:#9eccfa}.dark .dashboard-section{background:#162050;border-color:#ffffff14}.dark .section-title{color:#f8fafc}.dark .section-subtitle{color:#94a3b8}.section-header{margin-bottom:24px}.manage-students-header{display:flex;justify-content:space-between;align-items:center}.manage-search-wrap{position:relative;width:180px}.manage-search-input{width:100%;padding:8px 12px;background:#fdf9f3;border:1.5px solid #ECE8DD;border-radius:10px;font-size:13px;color:#0b1957;font-family:inherit;transition:all .2s;outline:none}.manage-search-input:focus{background:#fff;border-color:#3b82f6;box-shadow:0 0 12px #3b82f633}.manage-search-input::placeholder{color:#94a3b8}.dark .manage-search-input{background:#ffffff0a;border-color:#ffffff14;color:#f1f5f9}.section-title{font-size:16px;font-weight:600;color:#0b1957;display:block}.section-subtitle{font-size:13px;color:#64748b;margin-top:4px}.leaderboard-list{display:flex;flex-direction:column;gap:8px}.leaderboard-item{display:flex;justify-content:space-between;align-items:center;padding:12px 16px;border-radius:16px;background:#fafafa;border:1px solid #F3F4F6;transition:all .3s cubic-bezier(.175,.885,.32,1.275);cursor:pointer}.leaderboard-item:hover{transform:translateY(-2px);box-shadow:0 8px 25px #3b82f626!important;border-color:#3b82f6!important;background:#fff}.leaderboard-item.rank-1 .item-right,.leaderboard-item.rank-2 .item-right,.leaderboard-item.rank-3 .item-right{background:transparent;border:none}.item-left{display:flex;align-items:center;gap:12px}.item-avatar{width:32px;height:32px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:12px;font-weight:700;background:#dbeafe;color:#1e40af}.item-name{font-size:14px;font-weight:600;color:#1e293b}.item-right{display:flex;align-items:center;gap:8px;padding:6px 14px;border-radius:100px;background:#f8fafc;flex-shrink:0;transition:all .3s ease;border:1px solid transparent;color:#0b1957;font-weight:800;font-size:14px}.item-points{font-size:14px;font-weight:700;color:#0b1957}.star-icon{fill:#f59e0b;stroke:#f59e0b}.leaderboard-pagination{display:flex;align-items:center;justify-content:center;gap:16px;margin-top:24px;padding-top:20px;border-top:1px dashed rgba(13,28,68,.08)}.pagination-btn{width:36px;height:36px;display:flex;align-items:center;justify-content:center;background:#fff;border:1px solid #E5E1D8;border-radius:10px;color:#0d1c44;cursor:pointer;transition:all .2s cubic-bezier(.175,.885,.32,1.275);box-shadow:0 2px 5px #00000005}.pagination-btn:hover:not(:disabled){background:#0d1c44;color:#fff;border-color:#0d1c44;transform:translateY(-2px);box-shadow:0 4px 12px #0d1c4426}.pagination-btn:disabled{opacity:.3;cursor:not-allowed;background:#f9fafb}.pagination-info{display:flex;align-items:center;gap:6px;font-family:Inter,sans-serif;font-weight:700;color:#0d1c44;background:#f5f2ea;padding:6px 14px;border-radius:100px;font-size:13px;letter-spacing:.02em}.page-separator{color:#9ca3af;font-weight:400}.dark .leaderboard-pagination{border-top-color:#ffffff14}.dark .pagination-btn{background:#ffffff0d;border-color:#ffffff1a;color:#f1f5f9}.dark .pagination-btn:hover:not(:disabled){background:#3b82f6;border-color:#3b82f6;box-shadow:0 4px 15px #3b82f666}.dark .pagination-btn:disabled{background:#ffffff05;color:#fff3}.dark .pagination-info{background:#ffffff14;color:#f8fafc}.dark .page-separator{color:#fff6}.view-more-btn{width:100%;background:none;border:none;padding:12px;color:#64748b;font-size:13px;font-weight:600;cursor:pointer;display:flex;align-items:center;justify-content:center;gap:6px}.student-list{display:flex;flex-direction:column;gap:12px}.faculty-student-card{background:#fff;border-radius:12px;border:1px solid rgba(11,25,87,.1);overflow:hidden;transition:all .3s ease}.faculty-student-card:hover{border-color:#0b195726;box-shadow:0 12px 30px #0b195714}.dark .faculty-student-card,.dark .faculty-card{background:#162050!important;border-color:#ffffff14!important}.dark .student-name,.dark .faculty-name{color:#f1f5f9!important}.dark .student-details,.dark .faculty-contact-details{background:#111a45!important;border-top-color:#ffffff0f!important}.dark .info-label,.dark .contact-label,.dark .stat-item-label{color:#a4cafe!important}.dark .info-value,.dark .contact-val,.dark .stat-item-val{color:#f8fafc!important}.dark .student-info-grid,.dark .student-stats{border-color:#ffffff14!important}.dark .student-avatar,.dark .faculty-avatar-circle{background:#3b82f633!important;color:#60a5fa!important}.faculty-student-row{display:flex;justify-content:space-between;align-items:center;padding:12px 16px;cursor:pointer}.info-main{display:flex;align-items:center;gap:12px}.student-index{font-size:13px;color:#94a3b8;width:20px}.student-avatar{width:36px;height:36px;border-radius:50%;background:#bfdbfe;color:#1e40af;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:13px}.student-name{font-size:14px;font-weight:600;color:#0b1957}.status-badge{padding:4px 12px;border-radius:100px;font-size:11px;font-weight:700;text-transform:capitalize}.status-active{background:#dcfce7;color:#166534}.status-blocked{background:#fee2e2;color:#991b1b}.status-removed{background:#f3f4f6;color:#4b5563;border:1px solid #D1D5DB}.student-details{padding:0 16px 16px;border-top:1px solid #F1F5F9;background:#fff}.student-info-grid{display:flex;justify-content:space-between;padding:20px 24px 10px;border-bottom:1px dashed rgba(11,25,87,.05)}.student-info-item{display:flex;flex-direction:column;gap:4px}.info-label{font-size:11px;color:#64748b;font-weight:500;text-transform:capitalize}.info-value{font-size:14px;color:#0b1957;font-weight:700;word-break:break-all}.student-stats{display:flex;justify-content:space-between;padding:10px 24px 20px;margin-bottom:20px}.stat-item{display:flex;flex-direction:column;align-items:center;gap:8px;text-align:center;flex:1}.icon-wrap{width:36px;height:36px;border-radius:50%;display:flex;align-items:center;justify-content:center;margin-bottom:2px}.stat-item-text{display:flex;flex-direction:column;align-items:center;gap:2px}.stat-item-label{font-size:11px;color:#64748b;font-weight:500}.stat-item-val{font-size:14px;color:#0b1957;font-weight:700}.action-btns{display:flex;gap:12px}.action-btns button{flex:1;padding:10px;border-radius:8px;font-size:13px;font-weight:600;cursor:pointer;transition:.2s}.btn-block{background:#dbeafe;color:#1e40af;border:none}.btn-remove{background:#dbeafe;color:#dc2626;border:none}.btn-block:hover,.btn-remove:hover{background:#bfdbfe}.faculty-section{background:#fff;border-radius:16px;padding:24px;border:1px solid rgba(11,25,87,.08);box-shadow:0 10px 40px #0b195708;transition:all .4s cubic-bezier(.175,.885,.32,1.275)}.faculty-section:hover{transform:translateY(-5px);box-shadow:0 15px 35px #9eccfa66;border-color:#9eccfa}.faculty-card{background:#fff;border-radius:12px;border:1px solid rgba(11,25,87,.1);padding:16px;display:flex;flex-direction:column;gap:16px;transition:all .3s cubic-bezier(.4,0,.2,1)}.faculty-card:hover{transform:scale(1.005);box-shadow:0 12px 30px #9eccfa4d;border-color:#9eccfa}.faculty-header{display:flex;justify-content:space-between;align-items:center}.faculty-main{display:flex;align-items:center;gap:12px}.faculty-avatar-circle{width:40px;height:40px;background:#bfdbfe;border-radius:50%;display:flex;align-items:center;justify-content:center;color:#1e40af}.faculty-name{font-size:15px;font-weight:700;color:#0b1957}.admin-badge{background:#dbeafe;color:#1e40af;padding:2px 8px;border-radius:100px;font-size:11px;font-weight:700;margin-top:2px;display:inline-block}.faculty-contact-details{display:flex;flex-direction:column;gap:8px}.contact-item{display:flex;flex-direction:column;gap:2px}.contact-label{font-size:12px;color:#64748b;font-weight:500}.contact-val{font-size:13px;color:#0b1957;font-weight:500}.dark.faculty-dashboard-root,.dark .faculty-dashboard-root{background:#0b1640}.dark .faculty-navbar{background:#0d1c44;box-shadow:0 2px 16px #0006}.dark .faculty-stat-card,.dark .dashboard-section,.dark .faculty-student-card,.dark .faculty-card,.dark .faculty-section{background:#162050;border:1px solid rgba(255,255,255,.06);box-shadow:0 2px 12px #0000004d;transition:all .3s ease}.dark .leaderboard-item{background:#162050;border:1px solid rgba(255,255,255,.08);box-shadow:none}.dark .faculty-stat-card:hover,.dark .dashboard-section:hover,.dark .faculty-student-card:hover,.dark .faculty-card:hover,.dark .faculty-section:hover{border-color:#60a5fa99;box-shadow:0 0 20px #3b82f640;transform:translateY(-2px)}.dark .leaderboard-item:hover{background:#1c2865;border-color:#3b82f6!important;box-shadow:0 0 20px #3b82f673!important;transform:translateY(-2px)}.dark .faculty-welcome-banner{background:linear-gradient(to right,#1e326480,#14235080);border:1px solid rgba(255,255,255,.07)}.dark .faculty-welcome-banner:hover{transform:translateY(-5px);box-shadow:0 12px 30px #9eccfa4d}.dark .manage-search-input{background:#ffffff0d;border-color:#ffffff1a;color:#f1f5f9}.dark .manage-search-input:focus{background:#ffffff14;border-color:#3b82f6;box-shadow:0 0 18px #3b82f666}.dark .banner-title,.dark .stat-value,.dark .section-title,.dark .item-name,.dark .student-name,.dark .faculty-name,.dark .contact-val,.dark .item-right,.dark .stat-item-val{color:#f1f5f9}.dark .stat-label,.dark .section-subtitle,.dark .contact-label,.dark .stat-item-label,.dark .item-subtitle{color:#94a3b8}.dark .faculty-nav-item{color:#cbd5e1}.dark .faculty-nav-item:hover:not(.faculty-nav-item--active){color:#fff;background:#ffffff1a}.dark .faculty-nav-item--active{background:#9eccfa;color:#0b1957}.dark .student-details{background:#ffffff05;border-top:1px solid rgba(255,255,255,.05)}.dark .btn-block,.dark .btn-remove{background:#ffffff0d;color:#f1f5f9}.dark .btn-block:hover,.dark .btn-remove:hover{background:#ffffff1a}.add-user-overlay{position:fixed;inset:0;background:#0b195766;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);display:flex;align-items:center;justify-content:center;z-index:10000;animation:modalFadeIn .3s ease}@keyframes modalFadeIn{0%{opacity:0}to{opacity:1}}.add-user-modal-card{background:#fff;border-radius:24px;width:500px;padding:32px;box-shadow:0 25px 50px -12px #0b195740;position:relative;animation:modalSlideUp .4s cubic-bezier(.175,.885,.32,1.275)}@keyframes modalSlideUp{0%{transform:translateY(30px) scale(.95);opacity:0}to{transform:translateY(0) scale(1);opacity:1}}.reward-modal-card{width:600px}.sidebar-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:24px;padding-bottom:16px;border-bottom:1px solid rgba(11,25,87,.05)}.sidebar-close-btn{background:#f1f5f9;border:none;width:36px;height:36px;border-radius:10px;display:flex;align-items:center;justify-content:center;cursor:pointer;color:#64748b;transition:all .2s}.sidebar-close-btn:hover{background:#e2e8f0;color:#0b1957;transform:rotate(90deg)}.add-user-modal-subtitle{font-size:14.5px;color:#64748b;margin-bottom:24px}.add-user-form{display:flex;flex-direction:column;gap:20px}.add-user-form-group{display:flex;flex-direction:column;gap:8px}.add-user-form-group label{font-size:13.5px;font-weight:700;color:#0b1957}.add-user-form-group input,.add-user-form-group textarea{background:#fdf9f3;border:1.5px solid #ECE8DD;padding:12px 16px;border-radius:12px;font-size:14.5px;color:#0b1957;outline:none;transition:all .2s}.add-user-form-group textarea{height:100px;resize:none}.add-user-form-group input:focus,.add-user-form-group textarea:focus{background:#fff;border-color:#3b82f6;box-shadow:0 0 15px #3b82f640;transform:translateY(-1px)}.reward-upload-box{width:100%;height:90px;background:#fdf9f3;border:2.5px dashed rgba(11,25,87,.1);border-radius:20px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;cursor:pointer;transition:all .4s cubic-bezier(.175,.885,.32,1.275);color:#0b1957;font-weight:600;position:relative;overflow:hidden}.reward-upload-box:after{content:"";position:absolute;inset:0;background:radial-gradient(circle at center,rgba(59,130,246,.1),transparent);opacity:0;transition:opacity .4s}.reward-upload-box:hover{background:#fdf9f3;border-color:#3b82f6;transform:translateY(-2px);box-shadow:0 10px 25px #3b82f626}.reward-upload-box:hover:after{opacity:1}.reward-upload-box:active{transform:scale(.98)}.add-user-form-actions{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-top:12px}.btn-cancel{padding:14px;background:#f1f5f9;color:#64748b;border:none;border-radius:12px;font-weight:700;cursor:pointer}.btn-submit{padding:14px;background:#0b1957;color:#fff;border:none;border-radius:12px;font-weight:700;cursor:pointer;transition:all .2s}.btn-submit:hover{background:#1a2560;box-shadow:0 4px 15px #0b195733}.dark .add-user-overlay{background:#0009}.dark .add-user-modal-card{background:#0d163ff2;backdrop-filter:blur(25px);-webkit-backdrop-filter:blur(25px);border:1px solid rgba(255,255,255,.1);box-shadow:0 25px 50px -12px #00000080}.dark .sidebar-close-btn{background:#ffffff0d;color:#94a3b8}.dark .add-user-form-group label{color:#cbd5e1;font-weight:600}.dark .add-user-form-group input,.dark .add-user-form-group textarea{background:#ffffff08;border-color:#ffffff1a;color:#fff}.dark .add-user-form-group input:focus,.dark .add-user-form-group textarea:focus{border-color:#3b82f6;box-shadow:0 0 20px #3b82f666}.dark .reward-upload-box{background:#ffffff0a;border-color:#ffffff1a}.dark .reward-upload-box:hover{background:#ffffff14;border-color:#3b82f6}.dark .btn-cancel{background:#ffffff0d;border-color:#ffffff1a;color:#94a3b8}.dark .btn-cancel:hover{background:#ffffff1a;color:#fff}.dark .btn-submit{background:#3b82f6;color:#fff;box-shadow:0 4px 15px #3b82f64d}.dark .btn-submit:hover{background:#2563eb;box-shadow:0 8px 25px #3b82f666;transform:translateY(-2px)}@keyframes profileSlideSpring{0%{transform:translate(100%)}to{transform:translate(0)}}@keyframes borderFlow{0%{background-position:0% 0%}to{background-position:0% 200%}}.profile-panel-overlay{position:fixed;inset:0;background:#0006;backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px);z-index:5000;display:flex;justify-content:flex-end;animation:fadeInPanel .3s ease}.profile-panel-content{width:100%;max-width:420px;height:100%;background:#ffffffd9;backdrop-filter:blur(25px);-webkit-backdrop-filter:blur(25px);box-shadow:-15px 0 50px #0d195733;display:flex;flex-direction:column;position:relative;overflow:hidden;animation:profileSlideSpring .6s cubic-bezier(.34,1.56,.64,1);border-top-left-radius:30px;border-bottom-left-radius:30px}.profile-panel-content:before{content:"";position:absolute;top:0;left:0;width:3px;height:100%;background:linear-gradient(180deg,transparent,#9ECCFA,#0B1957,#9ECCFA,transparent);background-size:100% 200%;animation:borderFlow 4s linear infinite;z-index:5;border-top-left-radius:30px;border-bottom-left-radius:30px}@keyframes fadeInPanel{0%{opacity:0}to{opacity:1}}.profile-panel-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:40px}.profile-panel-title{font-size:24px;font-weight:800;color:#0b1957;margin:0}.profile-panel-close{background:#f8f3ea;border:none;width:40px;height:40px;border-radius:12px;display:flex;align-items:center;justify-content:center;cursor:pointer;color:#0b1957;transition:all .2s}.profile-panel-close:hover{transform:rotate(90deg)}.profile-image-section{display:flex;flex-direction:column;align-items:center;gap:16px;margin-bottom:48px}.profile-image-placeholder{width:100px;height:100px;background:#f8f3ea;border-radius:30px;display:flex;align-items:center;justify-content:center;color:#0b1957;border:2px solid #0B1957;position:relative;transition:all .3s cubic-bezier(.175,.885,.32,1.275)}.profile-image-placeholder:hover{transform:scale(1.05) rotate(5deg);box-shadow:0 15px 35px #0d195733}.profile-image-placeholder:after{content:"";position:absolute;inset:-5px;border-radius:50%;border:2px solid #9ECCFA;opacity:.3;animation:pulseRing 2s cubic-bezier(.455,.03,.515,.955) infinite}@keyframes pulseRing{0%{transform:scale(.95);opacity:.5}to{transform:scale(1.2);opacity:0}}.profile-username{font-size:16px;font-weight:700;color:#0b1957;letter-spacing:-.01em}.profile-details-section{display:flex;flex-direction:column;gap:24px}.profile-details-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px}.profile-details-title{font-size:18px;font-weight:700;color:#0b1957;margin:0}.profile-field-group{display:flex;flex-direction:column;gap:8px}.profile-field-label{font-size:12px;font-weight:600;color:#64748b;text-transform:uppercase;letter-spacing:.05em}.profile-field-input-box{background:#f8f3ea;border:1px solid rgba(11,25,87,.05);padding:14px 18px;border-radius:14px;color:#0b1957;font-weight:600;font-size:14.5px}.profile-panel-footer{margin-top:auto;display:grid;grid-template-columns:1fr 1fr;gap:16px}.profile-change-pass-btn{background:#f8f3ea;border:none;padding:14px;border-radius:14px;color:#0b1957;font-weight:700;font-size:14px;cursor:pointer;transition:all .2s}.profile-logout-btn{background:#0b1957;color:#fff;border:none;padding:14px;border-radius:14px;font-weight:700;font-size:14px;cursor:pointer;display:flex;align-items:center;justify-content:center;gap:10px;transition:all .2s}.profile-logout-btn:hover{background:#ef4444;transform:translateY(-2px);box-shadow:0 8px 20px #ef444433}.dark .profile-panel-content{background:#0d163feb;backdrop-filter:blur(25px);-webkit-backdrop-filter:blur(25px)}.dark .profile-panel-content:before{background:linear-gradient(180deg,transparent,#0EA5E9,#D946EF,#0EA5E9,transparent)}.dark .profile-panel-title,.dark .profile-username,.dark .profile-details-title,.dark .profile-field-input-box{color:#f1f5f9}.dark .profile-panel-close,.dark .profile-image-placeholder,.dark .profile-field-input-box,.dark .profile-change-pass-btn{background:#ffffff08;color:#f1f5f9;border-color:#ffffff1a}.dark .profile-image-placeholder{border-color:#3b82f6}.dark .profile-logout-btn{background:#ef4444}.dark .profile-logout-btn:hover{background:#dc2626}.sidebar-error-msg{color:#b45309;font-size:13px;font-weight:600;background:#fffbeb;padding:10px 14px;border-radius:10px;text-align:center;border:1px solid #FEF3C7;margin-top:8px;display:flex;align-items:center;justify-content:center;gap:8px}.dark .sidebar-error-msg{background:#f59e0b1a;color:#fbbf24;border-color:#f59e0b33}.dash-modal-overlay{position:fixed;top:0;left:0;width:100%;height:100%;background:#0006;backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;z-index:9999}.dash-pass-modal{background:#fff;width:100%;max-width:460px;border-radius:24px;padding:32px;box-shadow:0 10px 40px -10px #00000026;position:relative;box-sizing:border-box;font-family:Inter,sans-serif}.dash-pass-close{position:absolute;top:24px;right:24px;background:none;border:none;cursor:pointer;color:#9ca3af;transition:color .15s;padding:4px;display:flex}.dash-pass-close:hover{color:#4b5563}.dash-pass-title{font-size:22px;font-weight:600;color:#0b1957;margin:0 0 6px}.dash-pass-subtitle{font-size:14.5px;color:#6b7280;margin:0 0 24px}.dash-pass-field{margin-bottom:20px}.dash-pass-label{display:block;font-size:14px;font-weight:600;color:#0b1957;margin-bottom:8px}.dash-pass-input-wrap{position:relative;width:100%}.dash-pass-input{width:100%;height:50px;padding:0 46px 0 16px;background:#f8f3ea;border:1px solid #F8F3EA;border-radius:12px;font-size:15px;color:#0b1957;box-sizing:border-box;font-family:Inter,sans-serif;outline:none;transition:border-color .2s,box-shadow .2s}.dash-pass-input:focus{background:#fff;border-color:#3b82f6;box-shadow:0 0 0 4px #3b82f61a,0 0 20px #3b82f626}.dash-pass-eye{position:absolute;right:14px;top:50%;transform:translateY(-50%);background:none;border:none;color:#9ca3af;cursor:pointer;display:flex;padding:0;transition:color .15s}.dash-pass-eye:hover{color:#4b5563}.dash-pass-actions{display:flex;gap:16px;margin-top:32px}.dash-pass-cancel-btn{flex:1;height:48px;background:#fff;border:1px solid #D1D5DB;border-radius:12px;font-size:15px;font-weight:600;color:#0b1957;cursor:pointer;font-family:Inter,sans-serif;transition:background .15s}.dash-pass-cancel-btn:hover{background:#f9fafb}.dash-pass-continue-btn{flex:1;height:48px;background:#0b1957;border:none;border-radius:12px;font-size:15px;font-weight:600;color:#fff;cursor:pointer;font-family:Inter,sans-serif;transition:opacity .15s}.dash-pass-continue-btn:hover{opacity:.9}.admin-success-toast{position:fixed;bottom:32px;right:32px;background:#fff;border:1px solid #BBF7D0;border-radius:16px;padding:18px 24px;display:flex;align-items:center;gap:14px;font-size:15px;font-weight:700;color:#16a34a;box-shadow:0 12px 36px #10b98133,0 4px 12px #00000014;z-index:999999;pointer-events:none;opacity:0;transform:translateY(120%) scale(.9);transition:all .5s cubic-bezier(.175,.885,.32,1.275);width:fit-content;min-width:320px;white-space:nowrap}.admin-success-toast--visible{opacity:1;transform:translateY(0) scale(1);animation:toastPopBottomFaculty .5s cubic-bezier(.175,.885,.32,1.275)}@keyframes toastPopBottomFaculty{0%{transform:translateY(120%) scale(.9)}70%{transform:translateY(-10px) scale(1.05)}to{transform:translateY(0) scale(1)}}.toast-icon-wrap{width:32px;height:32px;background:#dcfce7;border-radius:50%;display:flex;align-items:center;justify-content:center;animation:iconSpinFaculty .6s cubic-bezier(.175,.885,.32,1.275) .2s both}@keyframes iconSpinFaculty{0%{transform:rotate(-180deg) scale(0);opacity:0}to{transform:rotate(0) scale(1);opacity:1}}.dark .dash-pass-modal{background:#162050;box-shadow:0 10px 40px #00000080}.dark .dash-pass-title{color:#f1f5f9}.dark .dash-pass-subtitle{color:#94a3b8}.dark .dash-pass-label{color:#f1f5f9}.dark .dash-pass-input{background:#0d1432;border-color:#1e2d6b;color:#f1f5f9}.dark .dash-pass-input:focus{border-color:#3b82f6;box-shadow:0 0 0 4px #3b82f633,0 0 25px #3b82f640}.dark .dash-pass-cancel-btn{background:#1e2d6b;border-color:#2e3b7a;color:#94a3b8}.dark .dash-pass-continue-btn{background:#3b82f6;color:#fff}.dark .admin-success-toast{background:#162050;border-color:#16a34a66;box-shadow:0 12px 36px #0006;color:#16a34a}.dark .admin-page-title{color:#f1f5f9}.dark .add-user-modal-subtitle{color:#94a3b8}.profile-field-input{width:100%;background:#f8f3ea;border:1px solid #ECE8DD;padding:12px 16px;border-radius:12px;font-size:14px;color:#4b5563;font-weight:500;transition:all .2s;outline:none;box-sizing:border-box}.profile-field-input:focus{border-color:#3b82f6;background:#fff;box-shadow:0 0 0 4px #3b82f61a}.profile-edit-actions{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:20px}.profile-cancel-edit-btn{background:#f1f5f9;color:#4b5563;border:none;padding:12px;border-radius:10px;font-size:14px;font-weight:600;cursor:pointer;transition:background .2s}.profile-cancel-edit-btn:hover{background:#e2e8f0}.profile-save-btn{background:#22c55e;color:#fff;border:none;padding:12px;border-radius:10px;font-size:14px;font-weight:600;cursor:pointer;transition:opacity .2s}.profile-save-btn:hover{opacity:.9}.dark .profile-field-input{background:#ffffff0d;border-color:#ffffff1a;color:#f1f5f9}.dark .profile-field-input:focus{border-color:#3b82f6;background:#ffffff14;box-shadow:0 0 0 4px #3b82f633}.dark .profile-cancel-edit-btn{background:#ffffff0d;color:#94a3b8;border:1px solid rgba(255,255,255,.05)}.dark .profile-cancel-edit-btn:hover{background:#ffffff14}.dark .student-details{background:#0f172a;border-color:#ffffff0d}.dark .student-info-grid,.dark .student-stats{border-color:#ffffff0d}.dark .info-label,.dark .stat-item-label{color:#94a3b8}.dark .info-value{color:#e2e8f0}.dark .stat-item-val{color:#f1f5f9}@media(max-width:1024px){.faculty-navbar{padding:0 16px}.faculty-navbar-center{display:none}.faculty-mobile-menu-btn{display:flex}.faculty-stats-grid{grid-template-columns:repeat(2,1fr)}}@media(max-width:640px){.faculty-stats-grid{grid-template-columns:1fr}.faculty-welcome-banner{padding:24px;flex-direction:column;text-align:center}.fac-banner-content{align-items:center}.fac-banner-title{font-size:24px}.faculty-dashboard-root{padding-bottom:24px}.admin-success-toast{right:16px;left:16px;bottom:16px;min-width:0;width:auto;padding:14px 16px;gap:10px;justify-content:center}.dash-pass-modal{padding:24px 20px;margin:16px}.dash-pass-actions{flex-direction:column;gap:12px}.add-user-modal-card{padding:24px 16px;width:95%}}.field-error-tooltip{position:absolute;top:calc(100% + 8px);left:16px;background:#fff;border:1px solid #E2E8F0;box-shadow:0 4px 12px #0000001a,0 2px 4px #0000000d;padding:8px 14px;border-radius:10px;display:flex;align-items:center;gap:10px;z-index:1000;pointer-events:none;animation:tooltip-slide-up .2s cubic-bezier(.16,1,.3,1)}.dark .field-error-tooltip{background:#1e293b;border-color:#334155;box-shadow:0 4px 20px #0006,0 0 15px #f59e0b1a}.field-error-tooltip:after{content:"";position:absolute;bottom:100%;left:15px;width:0;height:0;border-left:6px solid transparent;border-right:6px solid transparent;border-bottom:6px solid #ffffff}.dark .field-error-tooltip:after{border-bottom-color:#1e293b}.field-error-tooltip:before{content:"";position:absolute;bottom:100%;left:14px;width:0;height:0;border-left:7px solid transparent;border-right:7px solid transparent;border-bottom:7px solid #E2E8F0}.dark .field-error-tooltip:before{border-bottom-color:#334155}.field-error-icon{background:#f59e0b;color:#fff;width:18px;height:18px;display:flex;align-items:center;justify-content:center;border-radius:3px;font-size:13px;font-weight:800;flex-shrink:0}.field-error-text{color:#334155;font-size:13px;font-weight:600;white-space:nowrap}.dark .field-error-text{color:#f1f5f9}@keyframes tooltip-slide-up{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}@media(max-width:640px){.faculty-body{padding:16px 14px;width:100%}.faculty-welcome-banner{padding:20px}.banner-title{font-size:20px}.student-info-grid,.student-stats{flex-direction:column;gap:16px;padding:16px!important}.student-info-item,.stat-item{align-items:flex-start;text-align:left}.stat-item{flex-direction:row;align-items:center;gap:12px;width:100%}.icon-wrap{margin-bottom:0}.manage-students-header{flex-direction:column;align-items:flex-start;gap:12px}.manage-search-wrap{width:100%}.faculty-student-row{flex-wrap:wrap;gap:12px}.status-badge{margin-left:auto}.stat-value{font-size:22px}}.dark .leaderboard-item{background:#162050!important;border:1px solid rgba(255,255,255,.08)!important;box-shadow:none!important}.dark .leaderboard-item:hover{background:#1c2865!important;border-color:#3b82f6!important;box-shadow:0 0 20px #3b82f673!important;transform:translateY(-2px)}.dark .leaderboard-item.rank-1 .item-right,.dark .leaderboard-item.rank-2 .item-right,.dark .leaderboard-item.rank-3 .item-right,.dark .leaderboard-item.rank-default .item-right{background:transparent;border:none;color:#f1f5f9!important}.dark .leaderboard-item.rank-default .item-right span{color:#f1f5f9!important}.faculty-item{background:#f8f3ea;border:1px solid #E5E7EB;border-radius:12px;overflow:hidden;transition:transform .2s,box-shadow .2s;margin-bottom:12px}.faculty-item:hover{transform:translateY(-2px);box-shadow:0 4px 12px #0b19570d}.faculty-item-header{display:flex;align-items:center;padding:16px;cursor:pointer}.faculty-item-info{flex:1;margin-left:14px}.faculty-item-name{margin:0 0 4px;font-size:14.5px;font-weight:600;color:#0b1957;text-align:left}.faculty-item-role{display:inline-block;padding:4px 10px;border-radius:9999px;font-size:11px;font-weight:600}.faculty-item-role.role-teacher,.faculty-item-role.role-faculty,.faculty-item-role.role-admin{background:#bfdbfe;color:#1e40af}.faculty-item-expand{display:flex;align-items:center;justify-content:center;width:28px;height:28px;border-radius:50%;background:#ffffff80;transition:background .2s}.faculty-item:hover .faculty-item-expand{background:#fffc}.faculty-item-details{padding:16px;display:flex;flex-direction:column;gap:12px;background:#ffffff4d;text-align:left}.faculty-detail-row{display:flex;flex-direction:column;gap:2px}.faculty-detail-label{font-size:11px;color:#6b7280;font-weight:500}.faculty-detail-value{font-size:13.5px;color:#374151;font-weight:500}.dark .faculty-item{background:#162050;border-color:#ffffff14}.dark .faculty-item-name{color:#f1f5f9}.dark .faculty-detail-label{color:#94a3b8}.dark .faculty-detail-value{color:#cbd5e1}
