:root{--primary-dark:#3d0c0c;--primary:#5d1a1a;--primary-light:#7d2a2a;--primary-lighter:#9d3a3a;--secondary:#1a3d5d;--secondary-light:#2a5d7d;--accent:#d4a84b;--accent-light:#e4c87b;--white:#fff;--gray-50:#f9fafb;--gray-100:#f3f4f6;--gray-200:#e5e7eb;--gray-300:#d1d5db;--gray-400:#9ca3af;--gray-500:#6b7280;--gray-600:#4b5563;--gray-700:#374151;--gray-800:#1f2937;--gray-900:#111827;--bg-primary:#fff;--bg-secondary:#f3f4f6;--bg-tertiary:#e5e7eb;--text-primary:#1f2937;--text-secondary:#4b5563;--border-color:#e5e7eb;--success:#10b981;--success-light:#d1fae5;--warning:#f59e0b;--warning-light:#fef3c7;--error:#ef4444;--error-light:#fee2e2;--info:#3b82f6;--info-light:#dbeafe;--shadow-sm:0 1px 2px 0 #0000000d;--shadow:0 1px 3px 0 #0000001a,0 1px 2px -1px #0000001a;--shadow-md:0 4px 6px -1px #0000001a,0 2px 4px -2px #0000001a;--shadow-lg:0 10px 15px -3px #0000001a,0 4px 6px -4px #0000001a;--shadow-xl:0 20px 25px -5px #0000001a,0 8px 10px -6px #0000001a;--radius-sm:0.25rem;--radius:0.5rem;--radius-md:0.75rem;--radius-lg:1rem;--radius-xl:1.5rem;--radius-full:9999px;--transition-fast:150ms ease;--transition:200ms ease;--transition-slow:300ms ease}.dark-mode{--primary-dark:#7d2a2a;--primary:#9d3a3a;--primary-light:#bd4a4a;--primary-lighter:#dd6a6a;--white:#1a1a2e;--gray-50:#16213e;--gray-100:#1a1a2e;--gray-200:#252545;--gray-300:#3a3a5a;--gray-400:#6b7280;--gray-500:#9ca3af;--gray-600:#d1d5db;--gray-700:#e5e7eb;--gray-800:#f3f4f6;--gray-900:#f9fafb;--bg-primary:#1a1a2e;--bg-secondary:#16213e;--bg-tertiary:#252545;--text-primary:#f3f4f6;--text-secondary:#d1d5db;--border-color:#3a3a5a;--success-light:#10b98133;--warning-light:#f59e0b33;--error-light:#ef444433;--info-light:#3b82f633}.dark-mode body{background-color:#f3f4f6;background-color:var(--bg-secondary);color:#1f2937;color:var(--text-primary)}.dark-mode .card,.dark-mode .dropdown-menu,.dark-mode .modal-content{background-color:#fff;background-color:var(--bg-primary);border-color:#e5e7eb;border-color:var(--border-color)}.dark-mode input,.dark-mode select,.dark-mode textarea{background-color:#e5e7eb;background-color:var(--bg-tertiary);border-color:#e5e7eb;border-color:var(--border-color);color:#1f2937;color:var(--text-primary)}.dark-mode input::placeholder,.dark-mode textarea::placeholder{color:#6b7280;color:var(--gray-500)}*,:after,:before{box-sizing:border-box;margin:0;padding:0}html{font-size:16px;scroll-behavior:smooth}body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background-color:#f3f4f6;background-color:var(--gray-100);color:#1f2937;color:var(--gray-800);font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,sans-serif;line-height:1.6}h1,h2,h3,h4,h5,h6{font-family:Poppins,sans-serif;font-weight:600;line-height:1.3}a{color:#5d1a1a;color:var(--primary);text-decoration:none;transition:color .2s ease;transition:color var(--transition)}a:hover{color:#7d2a2a;color:var(--primary-light)}button{cursor:pointer;font-family:inherit}input,select,textarea{font-family:inherit;font-size:inherit}.container{margin:0 auto;max-width:1200px;padding:0 1rem;width:100%}.flex{display:flex}.flex-col{flex-direction:column}.items-center{align-items:center}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.gap-1{gap:.25rem}.gap-2{gap:.5rem}.gap-3{gap:.75rem}.gap-4{gap:1rem}.text-sm{font-size:.875rem}.text-lg{font-size:1.125rem}.text-xl{font-size:1.25rem}.font-medium{font-weight:500}.font-semibold{font-weight:600}.font-bold{font-weight:700}.text-primary{color:#5d1a1a;color:var(--primary)}.text-gray-500{color:#6b7280;color:var(--gray-500)}.text-gray-600{color:#4b5563;color:var(--gray-600)}.text-white{color:#fff;color:var(--white)}.btn{align-items:center;border:none;border-radius:.5rem;border-radius:var(--radius);display:inline-flex;font-size:.875rem;font-weight:500;gap:.5rem;justify-content:center;padding:.625rem 1.25rem;transition:all .2s ease;transition:all var(--transition)}.btn-primary{background-color:#5d1a1a;background-color:var(--primary);color:var(--white)}.btn-primary:hover{background-color:#7d2a2a;background-color:var(--primary-light)}.btn-primary:disabled{background-color:#d1d5db;background-color:var(--gray-300);cursor:not-allowed}.btn-secondary{background-color:#fff;background-color:var(--white);border:1px solid #d1d5db;border:1px solid var(--gray-300);color:#374151}.btn-secondary:hover{background-color:#f9fafb;background-color:var(--gray-50);border-color:#9ca3af;border-color:var(--gray-400)}.btn-icon{border-radius:9999px;border-radius:var(--radius-full);padding:.5rem}.input-group{display:flex;flex-direction:column;gap:.375rem}.input-group label{color:#374151;color:var(--gray-700);font-size:.875rem;font-weight:500}.input{background-color:#fff;background-color:var(--white);border:1px solid #d1d5db;border:1px solid var(--gray-300);border-radius:.5rem;border-radius:var(--radius);font-size:.875rem;padding:.625rem .875rem;transition:border-color .2s ease,box-shadow .2s ease;transition:border-color var(--transition),box-shadow var(--transition)}.input:focus{border-color:#5d1a1a;border-color:var(--primary);box-shadow:0 0 0 3px #5d1a1a1a;outline:none}.input::placeholder{color:#9ca3af;color:var(--gray-400)}.card{background-color:#fff;background-color:var(--white);border-radius:1rem;border-radius:var(--radius-lg);box-shadow:0 1px 3px 0 #0000001a,0 1px 2px -1px #0000001a;box-shadow:var(--shadow);overflow:hidden}.card-header{border-bottom:1px solid #e5e7eb;border-bottom:1px solid var(--gray-200);padding:1rem 1.5rem}.card-body{padding:1.5rem}.badge{border-radius:9999px;padding:.25rem .625rem}.badge-success{background-color:#d1fae5;background-color:var(--success-light)}.badge-warning{background-color:#fef3c7;background-color:var(--warning-light)}.badge-error{background-color:#fee2e2;background-color:var(--error-light)}.badge-info{background-color:#dbeafe;background-color:var(--info-light)}.badge-primary{background-color:#5d1a1a1a;color:#5d1a1a}::-webkit-scrollbar{height:8px;width:8px}::-webkit-scrollbar-track{background:#f3f4f6;background:var(--gray-100)}::-webkit-scrollbar-thumb,::-webkit-scrollbar-track{border-radius:9999px;border-radius:var(--radius-full)}::-webkit-scrollbar-thumb{background:#d1d5db;background:var(--gray-300)}::-webkit-scrollbar-thumb:hover{background:#9ca3af;background:var(--gray-400)}@keyframes bounce{0%,to{transform:translateY(0)}50%{transform:translateY(-5px)}}.animate-fadeIn{animation:fadeIn ease .3s ease;animation:fadeIn var(--transition-slow) ease}.animate-slideUp{animation:slideUp ease .3s ease;animation:slideUp var(--transition-slow) ease}.animate-pulse{animation:pulse 2s ease infinite}.spinner{animation:spin .8s linear infinite;border:3px solid #e5e7eb;border-top-color:#5d1a1a;border:3px solid var(--gray-200);border-radius:50%;border-top-color:var(--primary);height:24px;width:24px}@keyframes spin{to{transform:rotate(1turn)}}@media (max-width:768px){html{font-size:14px}.container{padding:0 .75rem}}:root{--toastify-color-light:#fff;--toastify-color-dark:#121212;--toastify-color-info:#3498db;--toastify-color-success:#07bc0c;--toastify-color-warning:#f1c40f;--toastify-color-error:#e74c3c;--toastify-color-transparent:#ffffffb3;--toastify-icon-color-info:var(--toastify-color-info);--toastify-icon-color-success:var(--toastify-color-success);--toastify-icon-color-warning:var(--toastify-color-warning);--toastify-icon-color-error:var(--toastify-color-error);--toastify-toast-width:320px;--toastify-toast-background:#fff;--toastify-toast-min-height:64px;--toastify-toast-max-height:800px;--toastify-font-family:sans-serif;--toastify-z-index:9999;--toastify-text-color-light:#757575;--toastify-text-color-dark:#fff;--toastify-text-color-info:#fff;--toastify-text-color-success:#fff;--toastify-text-color-warning:#fff;--toastify-text-color-error:#fff;--toastify-spinner-color:#616161;--toastify-spinner-color-empty-area:#e0e0e0;--toastify-color-progress-light:linear-gradient(90deg,#4cd964,#5ac8fa,#007aff,#34aadc,#5856d6,#ff2d55);--toastify-color-progress-dark:#bb86fc;--toastify-color-progress-info:var(--toastify-color-info);--toastify-color-progress-success:var(--toastify-color-success);--toastify-color-progress-warning:var(--toastify-color-warning);--toastify-color-progress-error:var(--toastify-color-error)}.Toastify__toast-container{box-sizing:border-box;color:#fff;padding:4px;position:fixed;-webkit-transform:translateZ(9999);-webkit-transform:translateZ(var(--toastify-z-index));width:320px;width:var(--toastify-toast-width);z-index:9999;z-index:var(--toastify-z-index)}.Toastify__toast-container--top-left{left:1em;top:1em}.Toastify__toast-container--top-center{left:50%;top:1em;transform:translateX(-50%)}.Toastify__toast-container--top-right{right:1em;top:1em}.Toastify__toast-container--bottom-left{bottom:1em;left:1em}.Toastify__toast-container--bottom-center{bottom:1em;left:50%;transform:translateX(-50%)}.Toastify__toast-container--bottom-right{bottom:1em;right:1em}@media only screen and (max-width:480px){.Toastify__toast-container{left:0;margin:0;padding:0;width:100vw}.Toastify__toast-container--top-center,.Toastify__toast-container--top-left,.Toastify__toast-container--top-right{top:0;transform:translateX(0)}.Toastify__toast-container--bottom-center,.Toastify__toast-container--bottom-left,.Toastify__toast-container--bottom-right{bottom:0;transform:translateX(0)}.Toastify__toast-container--rtl{left:auto;right:0}}.Toastify__toast{border-radius:4px;box-shadow:0 1px 10px 0 #0000001a,0 2px 15px 0 #0000000d;box-sizing:border-box;cursor:default;direction:ltr;display:flex;font-family:sans-serif;font-family:var(--toastify-font-family);justify-content:space-between;margin-bottom:1rem;max-height:800px;max-height:var(--toastify-toast-max-height);min-height:64px;min-height:var(--toastify-toast-min-height);overflow:hidden;padding:8px;position:relative;z-index:0}.Toastify__toast--rtl{direction:rtl}.Toastify__toast--close-on-click{cursor:pointer}.Toastify__toast-body{align-items:center;display:flex;flex:1 1 auto;margin:auto 0;padding:6px}.Toastify__toast-body>div:last-child{flex:1 1;word-break:break-word}.Toastify__toast-icon{-webkit-margin-end:10px;display:flex;flex-shrink:0;margin-inline-end:10px;width:20px}.Toastify--animate{animation-duration:.7s;animation-fill-mode:both}.Toastify--animate-icon{animation-duration:.3s;animation-fill-mode:both}@media only screen and (max-width:480px){.Toastify__toast{border-radius:0;margin-bottom:0}}.Toastify__toast-theme--dark{background:#121212;background:var(--toastify-color-dark);color:#fff;color:var(--toastify-text-color-dark)}.Toastify__toast-theme--colored.Toastify__toast--default,.Toastify__toast-theme--light{background:#fff;background:var(--toastify-color-light);color:#757575;color:var(--toastify-text-color-light)}.Toastify__toast-theme--colored.Toastify__toast--info{background:#3498db;background:var(--toastify-color-info);color:#fff;color:var(--toastify-text-color-info)}.Toastify__toast-theme--colored.Toastify__toast--success{background:#07bc0c;background:var(--toastify-color-success);color:#fff;color:var(--toastify-text-color-success)}.Toastify__toast-theme--colored.Toastify__toast--warning{background:#f1c40f;background:var(--toastify-color-warning);color:#fff;color:var(--toastify-text-color-warning)}.Toastify__toast-theme--colored.Toastify__toast--error{background:#e74c3c;background:var(--toastify-color-error);color:#fff;color:var(--toastify-text-color-error)}.Toastify__progress-bar-theme--light{background:linear-gradient(90deg,#4cd964,#5ac8fa,#007aff,#34aadc,#5856d6,#ff2d55);background:var(--toastify-color-progress-light)}.Toastify__progress-bar-theme--dark{background:#bb86fc;background:var(--toastify-color-progress-dark)}.Toastify__progress-bar--info{background:#3498db;background:var(--toastify-color-progress-info)}.Toastify__progress-bar--success{background:#07bc0c;background:var(--toastify-color-progress-success)}.Toastify__progress-bar--warning{background:#f1c40f;background:var(--toastify-color-progress-warning)}.Toastify__progress-bar--error{background:#e74c3c;background:var(--toastify-color-progress-error)}.Toastify__progress-bar-theme--colored.Toastify__progress-bar--error,.Toastify__progress-bar-theme--colored.Toastify__progress-bar--info,.Toastify__progress-bar-theme--colored.Toastify__progress-bar--success,.Toastify__progress-bar-theme--colored.Toastify__progress-bar--warning{background:#ffffffb3;background:var(--toastify-color-transparent)}.Toastify__close-button{align-self:flex-start;background:#0000;border:none;color:#fff;cursor:pointer;opacity:.7;outline:none;padding:0;transition:.3s ease}.Toastify__close-button--light{color:#000;opacity:.3}.Toastify__close-button>svg{fill:currentColor;height:16px;width:14px}.Toastify__close-button:focus,.Toastify__close-button:hover{opacity:1}@keyframes Toastify__trackProgress{0%{transform:scaleX(1)}to{transform:scaleX(0)}}.Toastify__progress-bar{bottom:0;height:5px;left:0;opacity:.7;position:absolute;transform-origin:left;width:100%;z-index:9999;z-index:var(--toastify-z-index)}.Toastify__progress-bar--animated{animation:Toastify__trackProgress linear 1 forwards}.Toastify__progress-bar--controlled{transition:transform .2s}.Toastify__progress-bar--rtl{left:auto;right:0;transform-origin:right}.Toastify__spinner{animation:Toastify__spin .65s linear infinite;border:2px solid #e0e0e0;border-color:var(--toastify-spinner-color-empty-area);border-radius:100%;border-right-color:#616161;border-right-color:var(--toastify-spinner-color);box-sizing:border-box;height:20px;width:20px}@keyframes Toastify__bounceInRight{0%,60%,75%,90%,to{animation-timing-function:cubic-bezier(.215,.61,.355,1)}0%{opacity:0;transform:translate3d(3000px,0,0)}60%{opacity:1;transform:translate3d(-25px,0,0)}75%{transform:translate3d(10px,0,0)}90%{transform:translate3d(-5px,0,0)}to{transform:none}}@keyframes Toastify__bounceOutRight{20%{opacity:1;transform:translate3d(-20px,0,0)}to{opacity:0;transform:translate3d(2000px,0,0)}}@keyframes Toastify__bounceInLeft{0%,60%,75%,90%,to{animation-timing-function:cubic-bezier(.215,.61,.355,1)}0%{opacity:0;transform:translate3d(-3000px,0,0)}60%{opacity:1;transform:translate3d(25px,0,0)}75%{transform:translate3d(-10px,0,0)}90%{transform:translate3d(5px,0,0)}to{transform:none}}@keyframes Toastify__bounceOutLeft{20%{opacity:1;transform:translate3d(20px,0,0)}to{opacity:0;transform:translate3d(-2000px,0,0)}}@keyframes Toastify__bounceInUp{0%,60%,75%,90%,to{animation-timing-function:cubic-bezier(.215,.61,.355,1)}0%{opacity:0;transform:translate3d(0,3000px,0)}60%{opacity:1;transform:translate3d(0,-20px,0)}75%{transform:translate3d(0,10px,0)}90%{transform:translate3d(0,-5px,0)}to{transform:translateZ(0)}}@keyframes Toastify__bounceOutUp{20%{transform:translate3d(0,-10px,0)}40%,45%{opacity:1;transform:translate3d(0,20px,0)}to{opacity:0;transform:translate3d(0,-2000px,0)}}@keyframes Toastify__bounceInDown{0%,60%,75%,90%,to{animation-timing-function:cubic-bezier(.215,.61,.355,1)}0%{opacity:0;transform:translate3d(0,-3000px,0)}60%{opacity:1;transform:translate3d(0,25px,0)}75%{transform:translate3d(0,-10px,0)}90%{transform:translate3d(0,5px,0)}to{transform:none}}@keyframes Toastify__bounceOutDown{20%{transform:translate3d(0,10px,0)}40%,45%{opacity:1;transform:translate3d(0,-20px,0)}to{opacity:0;transform:translate3d(0,2000px,0)}}.Toastify__bounce-enter--bottom-left,.Toastify__bounce-enter--top-left{animation-name:Toastify__bounceInLeft}.Toastify__bounce-enter--bottom-right,.Toastify__bounce-enter--top-right{animation-name:Toastify__bounceInRight}.Toastify__bounce-enter--top-center{animation-name:Toastify__bounceInDown}.Toastify__bounce-enter--bottom-center{animation-name:Toastify__bounceInUp}.Toastify__bounce-exit--bottom-left,.Toastify__bounce-exit--top-left{animation-name:Toastify__bounceOutLeft}.Toastify__bounce-exit--bottom-right,.Toastify__bounce-exit--top-right{animation-name:Toastify__bounceOutRight}.Toastify__bounce-exit--top-center{animation-name:Toastify__bounceOutUp}.Toastify__bounce-exit--bottom-center{animation-name:Toastify__bounceOutDown}@keyframes Toastify__zoomIn{0%{opacity:0;transform:scale3d(.3,.3,.3)}50%{opacity:1}}@keyframes Toastify__zoomOut{0%{opacity:1}50%{opacity:0;transform:scale3d(.3,.3,.3)}to{opacity:0}}.Toastify__zoom-enter{animation-name:Toastify__zoomIn}.Toastify__zoom-exit{animation-name:Toastify__zoomOut}@keyframes Toastify__flipIn{0%{animation-timing-function:ease-in;opacity:0;transform:perspective(400px) rotateX(90deg)}40%{animation-timing-function:ease-in;transform:perspective(400px) rotateX(-20deg)}60%{opacity:1;transform:perspective(400px) rotateX(10deg)}80%{transform:perspective(400px) rotateX(-5deg)}to{transform:perspective(400px)}}@keyframes Toastify__flipOut{0%{transform:perspective(400px)}30%{opacity:1;transform:perspective(400px) rotateX(-20deg)}to{opacity:0;transform:perspective(400px) rotateX(90deg)}}.Toastify__flip-enter{animation-name:Toastify__flipIn}.Toastify__flip-exit{animation-name:Toastify__flipOut}@keyframes Toastify__slideInRight{0%{transform:translate3d(110%,0,0);visibility:visible}to{transform:translateZ(0)}}@keyframes Toastify__slideInLeft{0%{transform:translate3d(-110%,0,0);visibility:visible}to{transform:translateZ(0)}}@keyframes Toastify__slideInUp{0%{transform:translate3d(0,110%,0);visibility:visible}to{transform:translateZ(0)}}@keyframes Toastify__slideInDown{0%{transform:translate3d(0,-110%,0);visibility:visible}to{transform:translateZ(0)}}@keyframes Toastify__slideOutRight{0%{transform:translateZ(0)}to{transform:translate3d(110%,0,0);visibility:hidden}}@keyframes Toastify__slideOutLeft{0%{transform:translateZ(0)}to{transform:translate3d(-110%,0,0);visibility:hidden}}@keyframes Toastify__slideOutDown{0%{transform:translateZ(0)}to{transform:translate3d(0,500px,0);visibility:hidden}}@keyframes Toastify__slideOutUp{0%{transform:translateZ(0)}to{transform:translate3d(0,-500px,0);visibility:hidden}}.Toastify__slide-enter--bottom-left,.Toastify__slide-enter--top-left{animation-name:Toastify__slideInLeft}.Toastify__slide-enter--bottom-right,.Toastify__slide-enter--top-right{animation-name:Toastify__slideInRight}.Toastify__slide-enter--top-center{animation-name:Toastify__slideInDown}.Toastify__slide-enter--bottom-center{animation-name:Toastify__slideInUp}.Toastify__slide-exit--bottom-left,.Toastify__slide-exit--top-left{animation-name:Toastify__slideOutLeft}.Toastify__slide-exit--bottom-right,.Toastify__slide-exit--top-right{animation-name:Toastify__slideOutRight}.Toastify__slide-exit--top-center{animation-name:Toastify__slideOutUp}.Toastify__slide-exit--bottom-center{animation-name:Toastify__slideOutDown}@keyframes Toastify__spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}.login-page{align-items:center;background:linear-gradient(135deg,#1a1a2e,#16213e 50%,#0f3460);display:flex;justify-content:center;min-height:100vh;overflow:hidden;padding:1rem;position:relative}.login-page:before{animation:backgroundShift 20s ease-in-out infinite;background:radial-gradient(circle at 20% 80%,#5d1a1a4d 0,#0000 50%),radial-gradient(circle at 80% 20%,#8b5cf626 0,#0000 50%),radial-gradient(circle at 40% 40%,#06b6d41a 0,#0000 40%);content:"";height:200%;left:-50%;pointer-events:none;position:absolute;top:-50%;width:200%}@keyframes backgroundShift{0%,to{transform:translate(0) rotate(0deg)}25%{transform:translate(-5%,5%) rotate(1deg)}50%{transform:translate(5%,-5%) rotate(-1deg)}75%{transform:translate(-3%,-3%) rotate(.5deg)}}.login-page:after{animation:particleFloat 60s linear infinite;background-image:radial-gradient(2px 2px at 20px 30px,#ffffff4d,#0000),radial-gradient(2px 2px at 40px 70px,#fff3,#0000),radial-gradient(2px 2px at 50px 160px,#ffffff4d,#0000),radial-gradient(2px 2px at 90px 40px,#fff3,#0000),radial-gradient(2px 2px at 130px 80px,#ffffff4d,#0000),radial-gradient(2px 2px at 160px 120px,#fff3,#0000),radial-gradient(1px 1px at 200px 50px,#fff6,#0000),radial-gradient(1px 1px at 250px 90px,#ffffff4d,#0000),radial-gradient(1px 1px at 300px 150px,#fff3,#0000);background-repeat:repeat;background-size:300px 200px;content:"";height:100%;left:0;pointer-events:none;position:absolute;top:0;width:100%}.login-container{-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);background:#fffffff2;border-radius:var(--radius-xl);box-shadow:0 25px 50px -12px #0006,0 0 0 1px #ffffff1a;max-width:1000px;min-height:600px;width:100%;z-index:1}.login-branding,.login-container{display:flex;overflow:hidden;position:relative}.login-branding{align-items:center;background:linear-gradient(135deg,var(--primary-dark) 0,var(--primary) 40%,#7c2d2d 100%);color:var(--white);flex:1 1;justify-content:center;padding:3rem}.login-branding:before{background:linear-gradient(30deg,#0000 40%,#ffffff08 0,#ffffff08 60%,#0000 0),linear-gradient(150deg,#0000 40%,#ffffff08 0,#ffffff08 60%,#0000 0);background-size:60px 100px;bottom:0;left:0;right:0;top:0}.login-branding:after,.login-branding:before{content:"";pointer-events:none;position:absolute}.login-branding:after{animation:glowPulse 4s ease-in-out infinite;background:radial-gradient(circle,#ffffff26 0,#0000 70%);border-radius:50%;height:300px;right:-100px;top:-100px;width:300px}@keyframes glowPulse{0%,to{opacity:.5;transform:scale(1)}50%{opacity:.8;transform:scale(1.2)}}.branding-content{position:relative;text-align:center;z-index:1}.login-logo{animation:logoFloat 3s ease-in-out infinite;border-radius:50%;box-shadow:0 0 0 4px #ffd70066,0 0 30px #ffd7004d,0 10px 40px #0006;height:150px;margin-bottom:1.5rem;object-fit:cover;object-position:center top;width:150px}.logo-container{margin-bottom:2rem;perspective:1000px;position:relative}.logo-container:before{animation:rotateGlow 4s linear infinite;background:conic-gradient(from 0deg,#800020,gold,#800020,gold,#800020);filter:blur(15px);height:360px;opacity:.8;width:360px;z-index:0}.logo-container:after,.logo-container:before{border-radius:50%;content:"";left:50%;position:absolute;top:50%;transform:translate(-50%,-50%)}.logo-container:after{animation:pulseRing 2s ease-in-out infinite;border:3px solid #ffd70099;height:330px;width:330px;z-index:1}@keyframes rotateGlow{0%{transform:translate(-50%,-50%) rotate(0deg)}to{transform:translate(-50%,-50%) rotate(1turn)}}@keyframes pulseRing{0%,to{opacity:.6;transform:translate(-50%,-50%) scale(1)}50%{opacity:1;transform:translate(-50%,-50%) scale(1.05)}}.logo-icon{animation:logoFloat 3s ease-in-out infinite;aspect-ratio:1/1;background:#0000;box-shadow:0 0 0 4px #0c0204cc,0 0 0 8px #ffd70066,0 0 30px #ffd7004d,0 20px 60px #0006;box-sizing:border-box;height:300px;margin:0 auto;max-height:300px;max-width:300px;min-height:300px;min-width:300px;overflow:visible;padding:0;width:300px;z-index:2}.logo-icon:before{animation:shineSweep 3s ease-in-out infinite;background:linear-gradient(45deg,#0000 30%,#ffffff80 50%,#0000 70%);content:"";height:200%;left:-50%;position:absolute;top:-50%;width:200%;z-index:3}.logo-icon:after{animation:sparkle 2s ease-in-out infinite;background-image:radial-gradient(2px 2px at 20% 30%,gold 50%,#0000 100%),radial-gradient(2px 2px at 80% 20%,#fff 50%,#0000 100%),radial-gradient(2px 2px at 70% 80%,gold 50%,#0000 100%),radial-gradient(2px 2px at 30% 70%,#fff 50%,#0000 100%);height:100%;pointer-events:none;width:100%;z-index:4}@keyframes shineSweep{0%{transform:translateX(-100%) rotate(45deg)}50%,to{transform:translateX(100%) rotate(45deg)}}@keyframes sparkle{0%,to{opacity:.3;transform:scale(1)}50%{opacity:1;transform:scale(1.2)}}@keyframes logoFloat{0%,to{transform:translateY(0)}50%{transform:translateY(-10px)}}.logo-icon .school-logo{-webkit-clip-path:circle(50% at center);clip-path:circle(50% at center);display:block;filter:drop-shadow(0 4px 8px rgba(0,0,0,.2));object-fit:cover;position:relative;z-index:2}.branding-content h1{font-size:2.25rem;font-weight:700;letter-spacing:-.5px;margin-bottom:.5rem;text-shadow:0 2px 10px #0000004d}.tagline{font-size:1rem;font-weight:300;letter-spacing:.5px;margin-bottom:1.5rem;opacity:.9}.branding-divider{background:linear-gradient(90deg,#0000,var(--accent),#0000);border-radius:var(--radius-full);height:3px;margin:0 auto 1.5rem;position:relative;width:80px}.branding-divider:before{background:var(--accent);border-radius:50%;box-shadow:0 0 10px var(--accent);content:"";height:8px;left:50%;position:absolute;top:50%;transform:translate(-50%,-50%);width:8px}.institution{margin-bottom:2rem}.institution .college{font-size:1.125rem;font-weight:600;margin-bottom:.375rem;text-shadow:0 1px 3px #0003}.institution .school{font-size:.9375rem;font-weight:400;opacity:.85}.features-list{display:flex;flex-direction:column;gap:.75rem;text-align:left}.feature-item{align-items:center;display:flex;font-size:.875rem;gap:.75rem;opacity:.9}.feature-icon{font-size:1.25rem}.login-form-container{align-items:center;background:linear-gradient(180deg,#fff,#f8fafc);display:flex;flex:1 1;justify-content:center;padding:3rem;position:relative}.login-form-container:before{background:linear-gradient(90deg,var(--primary),var(--accent),var(--primary-light));content:"";height:4px;left:0;position:absolute;right:0;top:0}.login-form-wrapper{max-width:360px;width:100%}.login-header{margin-bottom:1.5rem;text-align:center}.login-header h2{-webkit-text-fill-color:#0000;background:linear-gradient(135deg,var(--gray-800) 0,var(--gray-600) 100%);-webkit-background-clip:text;background-clip:text;color:var(--gray-800);font-size:1.875rem;font-weight:700;margin-bottom:.5rem}.login-header p{color:var(--gray-500);font-size:.9375rem;font-weight:400}.login-type-toggle{background:var(--gray-100);border-radius:var(--radius);display:flex;gap:.5rem;margin-bottom:1.5rem;padding:.25rem}.login-type-toggle .toggle-btn{align-items:center;background:#0000;border:none;border-radius:calc(var(--radius) - 2px);color:var(--gray-600);cursor:pointer;display:flex;flex:1 1;font-size:.9375rem;font-weight:500;gap:.5rem;justify-content:center;padding:.75rem 1rem;transition:all .2s ease}.login-type-toggle .toggle-btn:hover{background:#ffffff80;color:var(--gray-800)}.login-type-toggle .toggle-btn.active{background:#fff;box-shadow:0 1px 3px #0000001a;color:var(--primary)}.login-type-toggle .toggle-btn svg{height:1rem;width:1rem}.input-wrapper input[type=date]{color:var(--gray-700)}.input-wrapper input[type=date]::-webkit-calendar-picker-indicator{cursor:pointer;filter:invert(.4)}.dark-mode .input-wrapper input[type=date]{color:var(--gray-200)}.dark-mode .input-wrapper input[type=date]::-webkit-calendar-picker-indicator{filter:invert(.7)}.error-alert{align-items:center;animation:shakeError .5s ease-in-out;background:linear-gradient(135deg,#fef2f2,#fee2e2);border:1px solid #fecaca;border-radius:var(--radius);box-shadow:0 2px 8px #ef444426;color:#991b1b;display:flex;font-size:.875rem;gap:.75rem;margin-bottom:1.5rem;padding:.9375rem 1rem;position:relative}.dark-mode .error-alert{background:linear-gradient(135deg,#991b1b,#7f1d1d);border-color:#7f1d1d;box-shadow:0 2px 8px #ef444440;color:#fef2f2}@keyframes shakeError{0%,to{transform:translateX(0)}10%,30%,50%,70%,90%{transform:translateX(-5px)}20%,40%,60%,80%{transform:translateX(5px)}}.error-alert svg{animation:pulse 1.5s ease-in-out infinite;flex-shrink:0;font-size:1.125rem}.error-alert span{flex:1 1}.error-close{align-items:center;background:none;border:none;border-radius:4px;color:inherit;cursor:pointer;display:flex;flex-shrink:0;font-size:1.5rem;height:24px;justify-content:center;line-height:1;margin-left:.5rem;opacity:.7;padding:0;transition:opacity .2s ease;width:24px}.error-close:hover{background:#0000001a;opacity:1}.dark-mode .error-close:hover{background:#ffffff1a}@keyframes pulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.7;transform:scale(1.1)}}.login-form{display:flex;flex-direction:column;gap:1.25rem}.form-group label{font-weight:500}.input-wrapper{align-items:center;display:flex;position:relative}.input-icon{color:var(--gray-400);font-size:1.125rem;left:.875rem;pointer-events:none;position:absolute;transition:all .3s ease}.input-wrapper.has-value .input-icon{opacity:0;transform:translateX(-10px)}.input-wrapper input{background:var(--white);border:2px solid var(--gray-200);border-radius:var(--radius);font-size:.9375rem;padding:.875rem .875rem .875rem 3.25rem!important;transition:all .3s cubic-bezier(.4,0,.2,1);width:100%}.input-wrapper.has-value input{padding-left:.875rem!important}.input-wrapper input:focus{background:#fff;border-color:var(--primary);box-shadow:0 0 0 4px #5d1a1a1a;outline:none}.input-wrapper input:hover:not(:focus){border-color:var(--gray-300)}.input-wrapper input::placeholder,.password-toggle{color:var(--gray-400)}.password-toggle{align-items:center;background:none;border:none;cursor:pointer;display:flex;justify-content:center;padding:.25rem;position:absolute;right:.75rem;transition:color var(--transition)}.password-toggle:hover{color:var(--gray-600)}.login-button{align-items:center;background:linear-gradient(135deg,var(--primary) 0,var(--primary-dark) 100%);border:none;border-radius:var(--radius);box-shadow:0 4px 15px #5d1a1a4d;color:var(--white);cursor:pointer;display:flex;font-size:1rem;font-weight:600;gap:.625rem;justify-content:center;margin-top:.5rem;overflow:hidden;padding:.9375rem;position:relative;transition:all .3s cubic-bezier(.4,0,.2,1);width:100%}.login-button:before{background:linear-gradient(90deg,#0000,#fff3,#0000);content:"";height:100%;left:-100%;position:absolute;top:0;transition:left .5s ease;width:100%}.login-button:hover:not(:disabled):before{left:100%}.login-button:hover:not(:disabled){box-shadow:0 8px 25px #5d1a1a66;transform:translateY(-2px)}.login-button:active:not(:disabled){box-shadow:0 4px 15px #5d1a1a4d;transform:translateY(0)}.login-button:disabled{cursor:not-allowed;opacity:.7}.spinner-small{animation:spin .8s linear infinite;border:2px solid #ffffff4d;border-radius:50%;border-top-color:#fff;height:18px;width:18px}.login-footer{border-top:1px solid var(--gray-100);margin-top:2rem;padding-top:1.5rem;text-align:center}.help-text{color:var(--gray-500);font-size:.8125rem;margin-bottom:.375rem}.contact-admin{color:var(--gray-400);font-size:.75rem}.demo-credentials{background:linear-gradient(135deg,var(--gray-50) 0,#f1f5f9 100%);border:1px solid var(--gray-100);border-radius:var(--radius);color:var(--gray-600);font-size:.75rem;margin-top:1.5rem;padding:1rem}.demo-credentials .demo-title{align-items:center;color:var(--gray-700);display:flex;font-weight:600;gap:.375rem;margin-bottom:.5rem}.demo-credentials .demo-title:before{content:"🔑";font-size:.875rem}.demo-credentials p{margin-bottom:.25rem}@media (max-width:1024px){.login-container{max-width:900px}.login-branding,.login-form-container{padding:2.5rem}}@media (max-width:768px){.login-container{flex-direction:column;margin:1rem;max-width:420px;min-height:auto}.login-branding{border-radius:var(--radius-xl) var(--radius-xl) 0 0;padding:2rem}.branding-content h1{font-size:1.5rem}.branding-content .tagline{font-size:.875rem}.features-list{display:none}.login-form-container{border-radius:0 0 var(--radius-xl) var(--radius-xl);padding:2rem}.login-header h2{font-size:1.25rem}}@media (max-width:480px){.login-page{padding:.5rem}.login-container{border-radius:var(--radius-lg);margin:.5rem;max-width:100%;min-height:auto}.login-branding{border-radius:var(--radius-lg) var(--radius-lg) 0 0;padding:1.5rem}.logo-icon{height:160px;min-height:160px;min-width:160px;width:160px}.logo-container:before{filter:blur(10px);height:200px;width:200px}.logo-container:after{height:185px;width:185px}.branding-content h1{font-size:1.25rem}.branding-content .tagline,.institution .college,.institution .school{font-size:.75rem}.login-form-container{border-radius:0 0 var(--radius-lg) var(--radius-lg);padding:1.5rem}.login-header{margin-bottom:1.25rem}.login-header h2{font-size:1.125rem}.form-group label,.login-header p{font-size:.8125rem}.input-wrapper input{font-size:.875rem;padding:.625rem .75rem .625rem 2.75rem!important}.input-wrapper.has-value input{padding-left:.75rem!important}.input-icon{font-size:1rem;left:.75rem}.login-button{font-size:.9375rem}.demo-credentials,.login-button{padding:.75rem}.demo-credentials p{font-size:.6875rem}.login-footer{margin-top:1rem}.login-footer p{font-size:.6875rem}}@media (max-width:360px){.login-branding{padding:1.25rem}.logo-icon{height:130px;min-height:130px;min-width:130px;width:130px}.logo-container:before{filter:blur(8px);height:170px;width:170px}.logo-container:after{height:155px;width:155px}.branding-content h1{font-size:1.125rem}.login-form-container{padding:1.25rem}.login-header h2{font-size:1rem}.input-wrapper input{font-size:.8125rem;padding:.5rem .625rem .5rem 2.5rem!important}.login-button{font-size:.875rem;padding:.625rem}}@media (max-width:768px) and (orientation:landscape){.login-page{min-height:auto;padding:1rem}.login-container{flex-direction:row;max-width:100%}.login-branding{border-radius:var(--radius-xl) 0 0 var(--radius-xl);min-width:40%}.login-form-container{border-radius:0 var(--radius-xl) var(--radius-xl) 0}.branding-divider{display:none}}@media (hover:none) and (pointer:coarse){.input-wrapper input{font-size:16px}.login-button{min-height:48px}.password-toggle{min-height:44px;min-width:44px}}.theme-toggle-btn{align-items:center;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#ffffff26;border:none;border-radius:50%;box-shadow:0 4px 15px #0003;color:#fff;cursor:pointer;display:flex;font-size:1.25rem;height:48px;justify-content:center;position:fixed;right:1.5rem;top:1.5rem;transition:all .3s ease;width:48px;z-index:100}.theme-toggle-btn:hover{background:#ffffff40;box-shadow:0 6px 20px #0000004d;transform:scale(1.1) rotate(15deg)}.theme-toggle-btn:active{transform:scale(.95)}.login-page.light-mode,.login-page:not(.dark-mode) .theme-toggle-btn{color:#fff}.dark-mode .theme-toggle-btn{background:#fbbf2433;color:#fbbf24}.dark-mode .theme-toggle-btn:hover{background:#fbbf244d}.dark-mode .login-type-toggle{background:var(--gray-700)}.dark-mode .login-type-toggle .toggle-btn{color:var(--gray-400)}.dark-mode .login-type-toggle .toggle-btn:hover{background:#ffffff1a;color:var(--gray-200)}.dark-mode .login-type-toggle .toggle-btn.active{background:var(--gray-600);color:var(--primary-light)}.verification-code-container{display:flex;gap:.75rem;justify-content:center;margin:1.5rem 0}.verification-code-input{background:var(--white);border:2px solid var(--gray-300);border-radius:var(--radius-md);color:var(--gray-900);font-size:1.75rem;font-weight:600;height:60px;outline:none;text-align:center;transition:all .2s ease;width:50px}.verification-code-input:focus{border-color:var(--primary);box-shadow:0 0 0 3px #8b1a1a26}.verification-code-input:hover:not(:focus){border-color:var(--gray-400)}.dark-mode .verification-code-input{background:var(--gray-700);border-color:var(--gray-600);color:var(--white)}.dark-mode .verification-code-input:focus{border-color:var(--primary-light);box-shadow:0 0 0 3px #dc353533}.dark-mode .verification-code-input:hover:not(:focus){border-color:var(--gray-500)}.verification-hint{color:var(--gray-500);font-size:.85rem;margin-bottom:.5rem;margin-top:-.5rem;text-align:center}.dark-mode .verification-hint{color:var(--gray-400)}.back-button{align-items:center;background:none;border:none;color:var(--gray-600);cursor:pointer;display:inline-flex;font-size:.9rem;gap:.5rem;margin-bottom:.5rem;padding:.5rem 0;transition:color .2s ease}.back-button:hover{color:var(--primary)}.dark-mode .back-button{color:var(--gray-400)}.dark-mode .back-button:hover{color:var(--primary-light)}.resend-code-section{border-top:1px solid var(--gray-200);margin-top:1.5rem;padding-top:1.5rem;text-align:center}.resend-code-section p{color:var(--gray-600);font-size:.9rem;margin-bottom:.75rem}.dark-mode .resend-code-section{border-top-color:var(--gray-700)}.dark-mode .resend-code-section p{color:var(--gray-400)}.resend-button{background:none;border:none;border-radius:var(--radius-md);color:var(--primary);cursor:pointer;font-size:.9rem;font-weight:600;padding:.5rem 1rem;transition:all .2s ease}.resend-button:hover:not(:disabled){background:#8b1a1a1a}.resend-button:disabled{color:var(--gray-400);cursor:not-allowed}.dark-mode .resend-button{color:var(--primary-light)}.dark-mode .resend-button:hover:not(:disabled){background:#dc35351a}.dark-mode .resend-button:disabled{color:var(--gray-600)}.success-alert{align-items:center;background:linear-gradient(135deg,#059669,#047857);border-radius:var(--radius-md);box-shadow:0 4px 6px -1px #05966933;color:#fff;display:flex;font-size:.9rem;gap:.75rem;margin-bottom:1.25rem;padding:.875rem 1rem}.success-alert svg{flex-shrink:0;font-size:1.1rem}@media (max-width:480px){.verification-code-container{gap:.5rem}.verification-code-input{font-size:1.5rem;height:52px;width:42px}}@media (max-width:360px){.verification-code-container{gap:.35rem}.verification-code-input{border-radius:8px;font-size:1.25rem;height:46px;width:36px}}.default-avatar{align-items:center;border-radius:50%;color:#fff;display:flex;flex-shrink:0;font-weight:600;justify-content:center;text-transform:uppercase;-webkit-user-select:none;user-select:none}.default-avatar-xs{font-size:10px;height:24px;width:24px}.default-avatar-sm{font-size:12px;height:32px;width:32px}.default-avatar-md{font-size:14px;height:40px;width:40px}.default-avatar-lg{font-size:20px;height:60px;width:60px}.default-avatar-xl{font-size:28px;height:80px;width:80px}.default-avatar-xxl{font-size:40px;height:120px;width:120px}.default-avatar-full{font-size:1.25rem;height:100%;width:100%}.default-avatar.color-0{background:linear-gradient(135deg,#8b1a1a,#c62828)}.default-avatar.color-1{background:linear-gradient(135deg,#1565c0,#42a5f5)}.default-avatar.color-2{background:linear-gradient(135deg,#2e7d32,#66bb6a)}.default-avatar.color-3{background:linear-gradient(135deg,#6a1b9a,#ab47bc)}.default-avatar.color-4{background:linear-gradient(135deg,#ef6c00,#ffa726)}.default-avatar.color-5{background:linear-gradient(135deg,#00838f,#26c6da)}.default-avatar.color-6{background:linear-gradient(135deg,#4527a0,#7e57c2)}.default-avatar.color-7{background:linear-gradient(135deg,#c2185b,#f06292)}.avatar-initials{letter-spacing:.5px;line-height:1}.default-avatar{box-shadow:0 2px 8px #00000026}.default-avatar.clickable{cursor:pointer;transition:transform .2s ease,box-shadow .2s ease}.default-avatar.clickable:hover{box-shadow:0 4px 12px #0003;transform:scale(1.05)}.dashboard{background:linear-gradient(135deg,#1a1a2e,#16213e 50%,#0f3460);display:flex;height:100vh;overflow:hidden;position:relative}.dashboard:before{animation:backgroundPulse 15s ease-in-out infinite;background:radial-gradient(circle at 10% 20%,#5d1a1a26 0,#0000 50%),radial-gradient(circle at 90% 80%,#8b5cf61a 0,#0000 50%),radial-gradient(circle at 50% 50%,#06b6d40d 0,#0000 50%);bottom:0;content:"";left:0;pointer-events:none;position:absolute;right:0;top:0}@keyframes backgroundPulse{0%,to{opacity:1}50%{opacity:.7}}.sidebar{-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);background:linear-gradient(135deg,var(--primary-dark) 0,var(--primary) 50%,#7c2d2d 100%);border-right:1px solid #ffffff1a;box-shadow:4px 0 30px #0003;display:flex;flex-direction:column;flex-shrink:0;position:relative;width:280px;z-index:10}.sidebar-header{background:#0000001a;border-bottom:1px solid #ffffff26;padding:1.25rem}.logo{align-items:center;display:flex;gap:.75rem}.sidebar-logo{border-radius:50%;box-shadow:0 0 0 2px #800020cc,0 0 0 4px #ffd7004d,0 4px 15px #0003;height:48px;min-width:48px;object-fit:cover;object-position:center top;transition:all .3s ease;width:48px}.sidebar-logo:hover{box-shadow:0 0 0 2px #800020cc,0 0 0 4px #ffd70080,0 0 20px #ffd7004d,0 8px 25px #00000040;transform:scale(1.05)}.logo-icon{align-items:center;background:radial-gradient(circle,#fff 0,#f8f4e8 100%);border-radius:50%;box-shadow:0 0 0 2px #800020cc,0 0 0 4px #ffd7004d,0 4px 15px #0003;display:flex;height:48px;justify-content:center;max-width:48px;min-width:48px;overflow:hidden;padding:6px;position:relative;transition:all .3s ease;width:48px}.logo-icon:hover{box-shadow:0 0 0 2px #800020cc,0 0 0 4px #ffd70080,0 0 20px #ffd7004d,0 8px 25px #00000040;transform:scale(1.05)}.logo-icon .school-logo{border-radius:50%;height:100%;object-fit:contain;width:100%}.logo-icon:after{animation:logoShine 3s ease-in-out infinite;background:linear-gradient(45deg,#0000 40%,#fff6 50%,#0000 60%);content:"";height:200%;left:-50%;position:absolute;top:-50%;width:200%}.logo-text{display:flex;flex-direction:column}.logo-title{-webkit-text-fill-color:#0000;background:linear-gradient(135deg,#fff,gold);-webkit-background-clip:text;background-clip:text;color:#fff;font-size:1rem;font-weight:700}.logo-subtitle{color:#fffc;font-size:.6875rem;font-weight:500}.sidebar-nav{overflow-y:auto;padding:1rem}.nav-section{margin-bottom:1.5rem}.nav-section-title{color:#ffffffb3;display:block;font-size:.6875rem;font-weight:600;letter-spacing:.05em;margin-bottom:.75rem;text-transform:uppercase}.stats-grid{display:flex;flex-direction:column;gap:.5rem}.stat-card{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#0006;border:1px solid #ffffff4d;border-radius:var(--radius);box-shadow:0 4px 15px #0000004d;color:#790b0b;gap:.75rem;padding:.875rem;transition:transform .3s ease,background .3s ease}.stat-card:hover{background:#00000080;transform:translateY(-2px)}.stat-card:before{background:radial-gradient(circle,#ffffff0d 0,#0000 70%);height:100px;transform:translate(30%,-30%);width:100px}.stat-icon{color:#790b0b;filter:drop-shadow(0 2px 4px rgba(0,0,0,.2));font-size:1.75rem;opacity:1}.stat-info{display:flex;flex-direction:column}.stat-value{color:#790b0b;font-size:1.5rem;font-weight:700;line-height:1;text-shadow:0 1px 2px #0000004d}.stat-label{color:#790b0b;font-size:.75rem;opacity:.9}.student-info-card{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#0006;border:1px solid #ffffff4d;border-radius:var(--radius);padding:1rem}.student-info-item{align-items:center;border-bottom:1px solid #ffffff1a;display:flex;gap:.75rem;padding:.5rem 0}.student-info-item:last-child{border-bottom:none}.student-info-item .info-icon{color:#790b0b;font-size:1rem}.student-info-item .info-label{color:#ffffffb3;font-size:.75rem;min-width:70px}.student-info-item .info-value{color:#fff;font-size:.875rem;font-weight:600}.stat-mini{align-items:center;background:#9e1e1e1a;border:1px solid #ffffff26;border-radius:var(--radius-sm);display:flex;justify-content:space-between;padding:.625rem .875rem;transition:all .2s ease}.stat-mini:hover{background:#fff3;border-color:#ffffff4d;transform:translateX(4px)}.stat-mini-label{color:#ffffffe6;font-size:.75rem;font-weight:500}.stat-mini-value{color:#fff;font-size:.9375rem;font-weight:700}.suggestion-group{margin-bottom:1rem}.suggestion-category{color:#ffffffb3;display:block;font-size:.75rem;font-weight:600;letter-spacing:.03em;margin-bottom:.5rem;text-transform:uppercase}.suggestion-btn{align-items:center;background:#0000;border:none;border-radius:var(--radius-sm);color:#ffffffd9;cursor:pointer;display:flex;font-size:.8125rem;gap:.5rem;overflow:hidden;padding:.625rem .75rem;position:relative;text-align:left;transition:all .2s cubic-bezier(.4,0,.2,1);width:100%}.suggestion-btn:before{background:#fffc;content:"";height:100%;left:0;position:absolute;top:0;transform:scaleY(0);transition:transform .2s ease;width:3px}.suggestion-btn:hover{background:linear-gradient(90deg,#ffffff26,#0000);color:#fff;padding-left:1rem}.suggestion-btn:hover:before{transform:scaleY(1)}.suggestion-btn svg{color:#fff9;font-size:.875rem;transition:color .2s ease}.suggestion-btn:hover svg{color:#fff}.sidebar-footer{background:linear-gradient(180deg,#0000,#0000001a);border-top:1px solid #ffffff26;padding:1rem}.user-info{background:#ffffff1a;border:1px solid #ffffff26;border-radius:var(--radius);gap:.75rem;margin-bottom:.75rem;padding:.5rem}.user-avatar,.user-info{align-items:center;display:flex}.user-avatar{background:linear-gradient(135deg,#fff3,#ffffff1a);border-radius:var(--radius-full);box-shadow:0 2px 8px #0003;color:#fffc;height:40px;justify-content:center;overflow:hidden;width:40px}.user-avatar-img{height:100%;object-fit:cover;width:100%}.user-details{display:flex;flex-direction:column;overflow:hidden}.user-name{color:#fff;font-size:.875rem;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.user-role{color:#ffffffb3;font-size:.6875rem;font-weight:500}.logout-btn{align-items:center;background:#ffffff1a;border:1px solid #fff3;border-radius:var(--radius);color:#ffffffe6;cursor:pointer;display:flex;font-size:.8125rem;font-weight:500;gap:.5rem;justify-content:center;padding:.625rem;transition:all .2s cubic-bezier(.4,0,.2,1);width:100%}.logout-btn:hover{background:#ff64644d;border-color:#ff969680;color:#fff}.main-content{position:relative;z-index:5}.chat-container,.main-content{display:flex;flex:1 1;overflow:hidden}.chat-container{-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);background:#fffffffa;border-radius:var(--radius-xl);box-shadow:0 25px 50px -12px #00000040,0 0 0 1px #ffffff1a;flex-direction:column;margin:1rem}.chat-header{align-items:center;background:linear-gradient(135deg,var(--primary-dark) 0,var(--primary) 50%,#7c2d2d 100%);color:var(--white);display:flex;justify-content:space-between;overflow:hidden;padding:1.25rem 1.5rem;position:relative}.chat-header:before{background:linear-gradient(30deg,#0000 40%,#ffffff0d 0,#ffffff0d 60%,#0000 0);background-size:30px 50px;bottom:0;left:0;right:0;top:0}.chat-header:after,.chat-header:before{content:"";pointer-events:none;position:absolute}.chat-header:after{animation:headerGlow 4s ease-in-out infinite;background:radial-gradient(circle,#ffffff1a 0,#0000 70%);height:200px;right:-50px;top:-100px;width:200px}@keyframes headerGlow{0%,to{opacity:.5;transform:scale(1)}50%{opacity:.8;transform:scale(1.1)}}.chat-header-info{align-items:center;display:flex;gap:.875rem;position:relative;z-index:1}.chat-icon{filter:drop-shadow(0 2px 4px rgba(0,0,0,.2));font-size:1.75rem}.chat-header h2{font-size:1.125rem;font-weight:700;margin-bottom:.125rem;text-shadow:0 1px 2px #0000001a}.chat-header p{font-size:.8125rem;font-weight:400;opacity:.9}.chat-header-actions{position:relative;z-index:1}.btn-help{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#ffffff26;border:1px solid #fff3;border-radius:var(--radius-full);color:var(--white);cursor:pointer;padding:.625rem;transition:all .2s ease}.btn-help:hover{background:#ffffff40;transform:scale(1.05)}.chat-messages{background:linear-gradient(180deg,#f8fafc,#f1f5f9);display:flex;flex:1 1;flex-direction:column;gap:1rem;overflow-y:auto;padding:1.5rem;position:relative}.chat-messages:before{background:linear-gradient(180deg,#f8fafc,#0000);content:"";height:60px;left:0;pointer-events:none;position:absolute;right:0;top:0;z-index:1}.message{display:flex;gap:.75rem;max-width:85%}.message-user{align-self:flex-end;flex-direction:row-reverse}.message-bot{align-self:flex-start}.message-avatar{flex-shrink:0}.bot-avatar{align-items:center;background:linear-gradient(135deg,var(--primary) 0,var(--primary-dark) 100%);box-shadow:0 4px 12px #5d1a1a4d;color:var(--white);display:flex;font-size:1.25rem;height:36px;justify-content:center;position:relative;width:36px}.bot-avatar,.bot-avatar:after{border-radius:var(--radius-full)}.bot-avatar:after{background:linear-gradient(135deg,#ffffff4d,#0000);content:"";inset:-2px;position:absolute;z-index:-1}.user-avatar-chat{align-items:center;background:linear-gradient(135deg,var(--secondary) 0,#1e3a5f 100%);border-radius:var(--radius-full);box-shadow:0 4px 12px #1e3a5f4d;color:var(--white);display:flex;height:36px;justify-content:center;overflow:hidden;width:36px}.chat-avatar-img{height:100%;object-fit:cover;width:100%}.message-content{display:flex;flex-direction:column;gap:.375rem}.message-bubble{border-radius:var(--radius-lg);box-shadow:0 2px 8px #0000000f;font-size:.9375rem;line-height:1.6;padding:1rem 1.125rem}.message-user .message-bubble{background:linear-gradient(135deg,var(--primary) 0,var(--primary-dark) 100%);border-bottom-right-radius:var(--radius-sm);color:var(--white)}.message-bot .message-bubble{background:linear-gradient(135deg,#f8f9fa,#e9ecef);border:1px solid #80002026;border-bottom-left-radius:var(--radius-sm);box-shadow:0 2px 8px #0000001a,0 0 0 1px #8000200d;color:var(--gray-800)}.message-error .message-bubble{background:var(--error-light);color:#991b1b}.message-bubble p{margin:0 0 .5rem}.message-bubble p:last-child{margin-bottom:0}.message-bubble strong{font-weight:600}.message-bubble ol,.message-bubble ul{margin:.5rem 0;padding-left:1.25rem}.message-bubble li{margin-bottom:.25rem}.ai-powered-badge{align-items:center;animation:aiBadgePulse 2s ease-in-out infinite;background:linear-gradient(135deg,#8b5cf61a,#a855f726);border:1px solid #8b5cf64d;border-radius:20px;color:#8b5cf6;display:inline-flex;font-size:.625rem;font-weight:600;gap:.25rem;letter-spacing:.5px;margin-bottom:.5rem;padding:.25rem .5rem;text-transform:uppercase}.ai-powered-badge svg{animation:aiZap 1.5s ease-in-out infinite}@keyframes aiBadgePulse{0%,to{box-shadow:0 0 0 0 #8b5cf64d}50%{box-shadow:0 0 8px 2px #8b5cf633}}@keyframes aiZap{0%,to{opacity:1}50%{opacity:.5}}.message-time{align-items:center;color:var(--gray-400);display:flex;font-size:.6875rem;gap:.25rem}.message-user .message-time{align-self:flex-end}.typing-indicator{align-items:center;background:var(--white)!important;display:flex;gap:.5rem;min-width:70px;padding:1.125rem 1.5rem!important}.typing-indicator span{animation:typingBounce 1.4s ease-in-out infinite;background:linear-gradient(135deg,var(--primary) 0,var(--primary-dark) 100%);border-radius:var(--radius-full);box-shadow:0 2px 6px #5d1a1a4d;height:10px;width:10px}.typing-indicator span:first-child{animation-delay:0s}.typing-indicator span:nth-child(2){animation-delay:.15s}.typing-indicator span:nth-child(3){animation-delay:.3s}@keyframes typingBounce{0%,60%,to{opacity:.5;transform:translateY(0) scale(1)}30%{opacity:1;transform:translateY(-8px) scale(1.1)}}.student-results{grid-gap:.875rem;display:grid;gap:.875rem;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));margin-top:1rem}.student-card-mini{background:linear-gradient(135deg,#fff,#f8fafc);border:1px solid var(--gray-200);border-radius:var(--radius-lg);cursor:pointer;overflow:hidden;padding:1rem;position:relative;transition:all .3s cubic-bezier(.4,0,.2,1)}.student-card-mini:before{background:linear-gradient(180deg,var(--primary) 0,var(--primary-light) 100%);content:"";height:100%;left:0;position:absolute;top:0;transform:scaleY(0);transition:transform .3s ease;width:4px}.student-card-mini:hover{border-color:var(--primary-light);box-shadow:0 8px 25px #5d1a1a1f;transform:translateY(-2px)}.student-card-mini:hover:before{transform:scaleY(1)}.student-card-with-photo{align-items:flex-start;display:flex;gap:.75rem}.student-photo-mini{background:var(--primary-light);border-radius:var(--radius);flex-shrink:0;height:48px;overflow:hidden;width:48px}.student-photo-mini img{height:100%;object-fit:cover;width:100%}.student-photo-mini .photo-placeholder{align-items:center;background:linear-gradient(135deg,var(--primary) 0,var(--primary-light) 100%);color:var(--white);display:flex;font-size:.875rem;font-weight:600;height:100%;justify-content:center;text-transform:uppercase;width:100%}.student-card-info{flex:1 1;min-width:0}.student-card-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:.5rem}.student-id{color:var(--primary);font-size:.6875rem;font-weight:500}.student-name{color:var(--gray-800);font-size:.875rem;font-weight:600;margin-bottom:.25rem}.student-meta{color:var(--gray-500);font-size:.75rem}.student-meta.student-fb{align-items:center;color:#1877f2;display:flex;gap:.35rem;margin-top:.25rem}.student-parents-info{border-top:1px dashed var(--gray-200);margin-top:.5rem;padding-top:.5rem}.parent-info{align-items:center;display:flex;flex-wrap:wrap;font-size:.7rem;gap:.35rem;margin-bottom:.25rem}.parent-info:last-child{margin-bottom:0}.parent-label{color:var(--gray-500);font-weight:500}.parent-name{color:var(--gray-700);font-weight:600}.parent-fb{align-items:center;color:#1877f2;display:flex;font-size:.65rem;gap:.2rem}.student-detail-card{background:var(--gray-50);border:1px solid var(--gray-200);border-radius:var(--radius);margin-top:1rem;overflow:hidden}.student-detail-header{align-items:center;background:linear-gradient(135deg,var(--primary) 0,var(--primary-light) 100%);color:var(--white);display:flex;gap:1rem;padding:1rem}.student-detail-avatar{align-items:center;background:#fff3;border-radius:var(--radius-full);display:flex;font-size:1rem;font-weight:600;height:48px;justify-content:center;width:48px}.student-detail-avatar-large{border:3px solid #ffffff4d;border-radius:var(--radius-full);flex-shrink:0;height:64px;overflow:hidden;width:64px}.student-detail-avatar-large img{height:100%;object-fit:cover;width:100%}.student-detail-avatar-large .avatar-initials{align-items:center;background:#fff3;color:var(--white);display:flex;font-size:1.25rem;font-weight:600;height:100%;justify-content:center;text-transform:uppercase;width:100%}.student-detail-info h4{font-size:1rem;font-weight:600;margin-bottom:.125rem}.student-detail-id{font-size:.75rem;opacity:.9}.student-status-badges{display:flex;gap:.5rem;margin-top:.5rem}.student-status-badges .badge{font-size:.65rem;padding:.25rem .5rem}.academic-record-card{background:linear-gradient(135deg,#fef9f9,#fdf5ff);border:1px solid #5d1a1a26;border-radius:var(--radius);box-shadow:0 4px 20px #5d1a1a1a;margin-top:1rem;overflow:hidden}.academic-record-header{align-items:center;background:linear-gradient(135deg,var(--primary) 0,#7c2d2d 100%);color:var(--white);display:flex;gap:1rem;padding:1rem 1.25rem}.academic-record-header .student-detail-info h4{font-size:1.1rem;font-weight:600;margin-bottom:.125rem}.academic-record-header .student-detail-id{font-size:.75rem;font-weight:500;opacity:.9}.academic-record-header .student-meta{font-size:.7rem;margin-top:.25rem;opacity:.85}.academic-record-body{padding:1.25rem}.academic-record-body .gwa-display{margin-bottom:1.25rem}.academic-record-body .grades-list{max-height:350px;overflow-y:auto}.export-buttons-group{display:flex;gap:.5rem;justify-content:center;margin:.75rem 0 1rem}.export-btn{align-items:center;border:none;border-radius:6px;box-shadow:0 2px 8px #0000001a;cursor:pointer;display:flex;font-size:.75rem;font-weight:600;gap:.35rem;padding:.4rem .75rem;transition:all .2s ease}.export-btn:hover{box-shadow:0 4px 12px #00000026;transform:translateY(-1px)}.export-btn:active{transform:translateY(0)}.export-btn.pdf-btn{background:linear-gradient(135deg,#dc2626,#b91c1c);color:#fff}.export-btn.pdf-btn:hover{background:linear-gradient(135deg,#ef4444,#dc2626)}.export-btn.excel-btn{background:linear-gradient(135deg,#16a34a,#15803d);color:#fff}.export-btn.excel-btn:hover{background:linear-gradient(135deg,#22c55e,#16a34a)}.schedule-export,.student-info-export{margin-bottom:0;margin-left:auto;margin-top:0}.student-detail-body{max-height:400px;overflow-y:auto;padding:1rem}.detail-section{border-bottom:1px solid var(--gray-200);margin-bottom:1.25rem;padding-bottom:1rem}.detail-section:last-child{border-bottom:none;margin-bottom:0;padding-bottom:0}.detail-section-title{align-items:center;color:var(--primary);display:flex;font-size:.8rem;font-weight:600;gap:.5rem;letter-spacing:.5px;margin-bottom:.75rem;text-transform:uppercase}.detail-section-title svg{font-size:.9rem}.detail-grid{grid-gap:1rem;display:grid;gap:1rem;grid-template-columns:repeat(2,1fr)}.detail-item{align-items:flex-start;display:flex;gap:.625rem}.detail-item.full-width{grid-column:span 2}.detail-icon{color:var(--primary);flex-shrink:0;font-size:1rem;margin-top:.125rem}.detail-label{color:var(--gray-500);display:block;font-size:.6875rem;margin-bottom:.125rem}.detail-value{color:var(--gray-800);font-size:.8125rem;font-weight:500;word-break:break-word}.age-badge{color:var(--primary-600);font-size:.75rem;font-weight:600}.academic-record-section{background:linear-gradient(135deg,#5d1a1a0d,#8b5cf60d);border-radius:12px;margin-top:1rem;padding:1rem!important}.gwa-display{align-items:center;background:linear-gradient(135deg,var(--primary) 0,#7c2d2d 100%);border-radius:10px;box-shadow:0 4px 15px #5d1a1a33;display:flex;gap:1rem;margin-bottom:1rem;padding:1rem 1.25rem}.gwa-label{color:#ffffffe6;flex:1 1}.gwa-value{color:#fff;font-size:1.75rem;font-weight:700;text-shadow:0 2px 4px #0003}.gwa-units{background:#fff3;border-radius:20px;color:#fff;font-size:.7rem;font-weight:600;padding:.25rem .75rem}.grades-list{display:flex;flex-direction:column;gap:1rem}.semester-grades{background:#fff;border-radius:8px;box-shadow:0 2px 8px #0000000d;padding:1rem}.semester-title{border-bottom:2px solid var(--primary);color:var(--primary);font-size:.8rem;font-weight:600;margin-bottom:.75rem;padding-bottom:.5rem}.grade-row,.grades-table{display:flex;flex-direction:column;gap:.5rem}.grade-row{background:var(--gray-50);border-radius:8px;padding:.75rem;transition:all .2s ease}.grade-row.subject-card{border:1px solid var(--gray-200)}.grade-row:hover{background:var(--gray-100);transform:translateX(4px)}.grade-subject{align-items:center;display:flex;flex:1 1;flex-wrap:wrap;gap:.5rem}.units-display{color:var(--gray-500);font-size:.7rem;font-weight:500}.periods-grades{background:var(--gray-100);border-radius:6px;padding:.5rem;width:100%}.period-grades-row{grid-gap:.5rem;display:grid;gap:.5rem;grid-template-columns:repeat(4,1fr)}.period-grades-row.ojt-grade{grid-template-columns:1fr;justify-items:center}.period-grade{color:var(--gray-600);font-size:.7rem;padding:.25rem;text-align:center}.period-grade strong{color:var(--gray-500);display:block;font-size:.65rem;margin-bottom:.125rem}.final-grade-display{align-items:center;border-top:1px solid var(--gray-200);display:flex;gap:.5rem;justify-content:flex-end;padding-top:.5rem}.final-grade-label{color:var(--gray-600);font-size:.75rem;font-weight:600}.course-code{color:var(--primary);font-size:.7rem;font-weight:700}.subject-title{color:var(--gray-600);font-size:.75rem}.prereq-tag{background:#fff4e6;background:var(--orange-light,#fff4e6);border-radius:4px;color:#e67700;color:var(--orange-dark,#e67700);display:inline-block;font-size:.65rem;font-weight:500;margin-top:.25rem;padding:.15rem .5rem}.grade-details{align-items:center;display:flex;gap:.75rem}.units{background:var(--gray-200);border-radius:4px;color:var(--gray-500);font-size:.65rem;padding:.2rem .5rem}.grade-value{border-radius:6px;font-size:.9rem;font-weight:700;min-width:45px;padding:.25rem .625rem;text-align:center}.grade-value.excellent{background:linear-gradient(135deg,#10b981,#059669);color:#fff}.grade-value.good{background:linear-gradient(135deg,#3b82f6,#2563eb);color:#fff}.grade-value.average{background:linear-gradient(135deg,#f59e0b,#d97706);color:#fff}.grade-value.poor{background:linear-gradient(135deg,#ef4444,#dc2626);color:#fff}.grade-status{border-radius:4px;font-size:.65rem;font-weight:700;letter-spacing:.03em;padding:.2rem .5rem;text-transform:uppercase}.grade-status.status-passed{background:#10b9811f;color:#059669}.grade-status.status-failed{background:#ef44441f;color:#dc2626}.grade-status.status-incomplete{background:#f59e0b1f;color:#d97706}.class-schedule-card{background:linear-gradient(135deg,#f0f9ff,#e0f2fe);border:1px solid #0e749026;border-radius:var(--radius);box-shadow:0 4px 20px #0e74901a;margin-top:1rem;overflow:hidden}.schedule-header{align-items:center;background:linear-gradient(135deg,#0891b2,#0e7490);color:var(--white);display:flex;gap:1rem;padding:1rem 1.25rem}.schedule-header .student-detail-avatar{border:2px solid #ffffff4d}.schedule-header .student-detail-info h4{font-size:1.1rem;font-weight:600;margin-bottom:.125rem}.schedule-header .student-detail-id{font-size:.75rem;font-weight:500;opacity:.9}.schedule-header .student-meta{font-size:.7rem;margin-top:.25rem;opacity:.85}.schedule-body{max-height:400px;overflow-y:auto;padding:1.25rem}.schedule-day-indicator{align-items:center;background:linear-gradient(135deg,#0891b2,#0e7490);border-radius:8px;color:#fff;display:flex;gap:.5rem;margin-bottom:1rem;padding:.75rem 1rem}.schedule-day-indicator svg{font-size:1.1rem}.schedule-day-indicator span{font-size:.9rem;font-weight:600}.day-schedule{margin-bottom:1.25rem}.day-schedule:last-child{margin-bottom:0}.day-title{align-items:center;border-bottom:2px solid #0e7490;color:#0e7490;display:flex;font-size:.85rem;font-weight:600;gap:.5rem;margin-bottom:.75rem;padding-bottom:.5rem}.day-title svg{font-size:.9rem}.classes-list{display:flex;flex-direction:column;gap:.75rem}.class-item{background:#fff;border:1px solid #0e74901a;border-radius:10px;box-shadow:0 2px 8px #0000000a;display:flex;gap:1rem;padding:.875rem;transition:all .2s ease}.class-item:hover{border-color:#0e749040;box-shadow:0 4px 12px #0e749026;transform:translateX(4px)}.class-time{align-items:center;background:linear-gradient(135deg,#ecfeff,#cffafe);border:1px solid #0e749026;border-radius:8px;display:flex;flex-direction:column;justify-content:center;min-width:70px;padding:.5rem}.class-time svg{color:#0891b2;font-size:.85rem;margin-bottom:.25rem}.class-time span{color:#0e7490;font-size:.7rem;font-weight:600;line-height:1.3;text-align:center}.class-details{display:flex;flex:1 1;flex-direction:column;gap:.375rem}.class-code{background:linear-gradient(135deg,#ecfeff,#cffafe);border-radius:4px;color:#0891b2;display:inline-block;font-size:.75rem;font-weight:700;padding:.2rem .5rem;width:-webkit-fit-content;width:fit-content}.class-title{color:var(--gray-800);font-size:.8rem;font-weight:500;line-height:1.3}.class-meta{display:flex;flex-wrap:wrap;gap:.75rem;margin-top:.25rem}.class-section{background:linear-gradient(135deg,#0891b2,#0e7490)}.class-number,.class-section{border-radius:4px;color:#fff;font-size:.65rem;font-weight:600;padding:.15rem .5rem}.class-number{background:linear-gradient(135deg,#7c3aed,#6d28d9)}.class-instructor,.class-room,.class-units{align-items:center;color:var(--gray-600);display:flex;font-size:.7rem;gap:.35rem}.class-instructor svg,.class-room svg,.class-units svg{color:#0891b2;font-size:.8rem}.no-classes-message{color:var(--gray-500);padding:2rem;text-align:center}.no-classes-message svg{color:var(--gray-300);font-size:2.5rem;margin-bottom:.75rem}.no-classes-message p{font-size:.875rem;margin-bottom:.25rem}.no-classes-message span{color:var(--gray-400);font-size:.75rem}.chat-input-container{background:linear-gradient(180deg,#fff0,#fff 20%);border-top:none;padding:1rem 1.5rem 1.5rem;position:relative}.chat-input-wrapper{align-items:center;background:var(--white);border:2px solid var(--gray-200);border-radius:var(--radius-xl);box-shadow:0 4px 20px #00000014;display:flex;gap:.75rem;padding:.5rem .5rem .5rem 1.25rem;transition:all .3s cubic-bezier(.4,0,.2,1)}.chat-input-wrapper:focus-within{border-color:var(--primary);box-shadow:0 4px 25px #5d1a1a26}.chat-input{background:#0000;border:none;color:var(--gray-800);flex:1 1;font-size:.9375rem;padding:.625rem 0}.chat-input:focus{outline:none}.chat-input::placeholder{color:var(--gray-400)}.send-btn{align-items:center;background:linear-gradient(135deg,var(--primary) 0,var(--primary-dark) 100%);border:none;border-radius:var(--radius-lg);box-shadow:0 4px 15px #5d1a1a4d;color:var(--white);cursor:pointer;display:flex;height:44px;justify-content:center;overflow:hidden;position:relative;transition:all .3s cubic-bezier(.4,0,.2,1);width:44px}.send-btn:before{background:linear-gradient(90deg,#0000,#ffffff4d,#0000);content:"";height:100%;left:-100%;position:absolute;top:0;transition:left .5s ease;width:100%}.send-btn:hover:not(:disabled):before{left:100%}.send-btn:hover:not(:disabled){box-shadow:0 6px 20px #5d1a1a66;transform:scale(1.05)}.send-btn:active:not(:disabled){transform:scale(.98)}.send-btn:disabled{background:linear-gradient(135deg,var(--gray-300) 0,var(--gray-400) 100%);box-shadow:none;cursor:not-allowed}.input-hint{color:var(--gray-400);font-size:.6875rem;margin-top:.625rem;text-align:center}.detail-sidebar{animation:detailSlide .4s cubic-bezier(.4,0,.2,1);-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);background:#fffffffa;border-left:1px solid #0000000d;box-shadow:-10px 0 40px #0000001a;display:flex;flex-direction:column;width:340px}@keyframes detailSlide{0%{opacity:0;transform:translateX(40px)}to{opacity:1;transform:translateX(0)}}.detail-sidebar-header{align-items:center;border-bottom:1px solid var(--gray-200);display:flex;justify-content:space-between;padding:1rem 1.25rem}.detail-sidebar-header h3{color:var(--gray-800);font-size:.9375rem}.close-btn{align-items:center;background:var(--gray-100);border:none;border-radius:var(--radius-full);color:var(--gray-500);cursor:pointer;display:flex;font-size:1.25rem;height:28px;justify-content:center;transition:all var(--transition);width:28px}.close-btn:hover{background:var(--gray-200);color:var(--gray-700)}.detail-sidebar-content{flex:1 1;overflow-y:auto;padding:1.25rem}.student-profile{border-bottom:1px solid var(--gray-200);margin-bottom:1.25rem;padding-bottom:1.25rem;text-align:center}.profile-avatar{align-items:center;background:linear-gradient(135deg,var(--primary) 0,var(--primary-light) 100%);border-radius:var(--radius-full);color:var(--white);display:flex;font-size:1.5rem;font-weight:600;height:72px;justify-content:center;margin:0 auto .75rem;width:72px}.student-profile h4{color:var(--gray-800);font-size:1rem;margin-bottom:.25rem}.profile-id{color:var(--primary);font-size:.75rem;font-weight:500}.profile-badges{display:flex;gap:.5rem;justify-content:center;margin-top:.75rem}.profile-details{display:flex;flex-direction:column;gap:1rem}.profile-detail-item{align-items:flex-start;display:flex;gap:.75rem}.profile-detail-item .detail-icon{align-items:center;background:var(--gray-100);border-radius:var(--radius);color:var(--primary);display:flex;flex-shrink:0;height:32px;justify-content:center;width:32px}.profile-detail-item .label{color:var(--gray-500);display:block;font-size:.6875rem;margin-bottom:.125rem}.profile-detail-item .value{color:var(--gray-800);font-size:.8125rem}.badge{border-radius:var(--radius-full);font-size:.6875rem;font-weight:500;padding:.1875rem .5rem}.badge-success{background:var(--success-light);color:#065f46}.badge-warning{background:var(--warning-light);color:#92400e}.badge-error{background:var(--error-light);color:#991b1b}.badge-info{background:var(--info-light);color:#1e40af}.badge-primary{background:#5d1a1a1a}.badge-default{background:var(--gray-200)}.mobile-menu-btn{align-items:center;background:#ffffff26;border:none;border-radius:8px;color:#fff;cursor:pointer;display:none;font-size:1.5rem;justify-content:center;min-height:44px;min-width:44px;padding:.5rem;position:relative;transition:background .2s;z-index:2}.mobile-menu-btn:hover{background:#ffffff40}.sidebar-overlay{display:none}@media (max-width:1024px){.sidebar{width:240px}.detail-sidebar{width:280px}}@media (max-width:768px){.mobile-menu-btn{align-items:center;display:flex;justify-content:center}.sidebar-overlay{background:#00000080;bottom:0;display:block;left:0;position:fixed;right:0;top:0;z-index:49}.dashboard{flex-direction:column}.sidebar{height:100vh;left:0;position:fixed;top:0;transform:translateX(-100%);transition:transform .3s ease;width:280px;z-index:50}.sidebar.sidebar-open{transform:translateX(0)}.main-content{width:100%}.chat-container{border-radius:0;margin:0}.detail-sidebar{box-shadow:var(--shadow-xl);height:100vh;max-width:320px;position:fixed;right:0;top:0;width:100%;z-index:100}.message{max-width:95%}.detail-grid,.student-results{grid-template-columns:1fr}.chat-header{padding:1rem}.chat-header h1{font-size:1.25rem}.suggestions{flex-wrap:wrap;gap:.375rem}.suggestion-btn{font-size:.75rem;padding:.375rem .75rem}.chat-input-container{padding:.75rem}}@media (max-width:480px){.chat-header{padding:.75rem}.chat-header h1{font-size:1.125rem}.chat-subtitle{font-size:.75rem}.header-actions .btn-icon{height:36px;width:36px}.message,.messages-container{padding:.75rem}.message{font-size:.875rem}.message-time{font-size:.625rem}.student-card{padding:.75rem}.student-card-header .student-id{font-size:.6875rem}.student-name{font-size:.9375rem}.info-item span{font-size:.75rem}.suggestions{gap:.25rem}.suggestion-btn{font-size:.6875rem;padding:.3125rem .625rem}.chat-input-form input{font-size:.875rem;padding:.625rem .75rem}.send-button{height:40px;width:40px}.detail-sidebar{max-width:100%}.detail-body,.detail-header{padding:.75rem}.detail-value{font-size:.875rem}.student-photo-mini{height:40px;width:40px}.student-photo-mini .photo-placeholder{font-size:.75rem}.student-detail-avatar-large{height:52px;width:52px}.student-detail-avatar-large .avatar-initials{font-size:1rem}.export-buttons-group{flex-wrap:wrap;gap:.375rem;justify-content:center}.export-btn{font-size:.7rem;padding:.35rem .6rem}.schedule-export,.student-info-export{justify-content:flex-end;margin-left:0;margin-top:.5rem;width:100%}}@media (max-width:360px){.chat-header h1{font-size:1rem}.message{font-size:.8125rem;padding:.625rem}.suggestion-btn{font-size:.625rem;padding:.25rem .5rem}.chat-input-form input{font-size:16px}}@media (hover:none) and (pointer:coarse){.chat-input-form input{font-size:16px}.send-button{min-height:44px;min-width:44px}.suggestion-btn{min-height:36px}.header-actions .btn-icon{min-height:44px;min-width:44px}}.voice-btn{align-items:center;background:linear-gradient(135deg,var(--gray-100) 0,var(--gray-200) 100%);border:none;border-radius:50%;color:var(--gray-600);cursor:pointer;display:flex;flex-shrink:0;height:44px;justify-content:center;transition:all .3s ease;width:44px}.voice-btn:hover{background:linear-gradient(135deg,var(--primary-light) 0,var(--primary) 100%);color:#fff;transform:scale(1.05)}.voice-btn.listening{animation:pulse-voice 1.5s ease-in-out infinite;background:linear-gradient(135deg,#ef4444,#dc2626);box-shadow:0 0 20px #ef444480;color:#fff}@keyframes pulse-voice{0%,to{box-shadow:0 0 20px #ef444480;transform:scale(1)}50%{box-shadow:0 0 30px #ef4444cc;transform:scale(1.1)}}.chat-input.listening-input{animation:border-pulse 1.5s ease-in-out infinite;background:#ef44440d;border-color:#ef4444}@keyframes border-pulse{0%,to{border-color:#ef4444}50%{border-color:#fca5a5}}.chat-header-actions{display:flex;gap:.5rem}.btn-action{align-items:center;background:#fff;border:1px solid var(--gray-200);border-radius:var(--radius);color:var(--gray-600);cursor:pointer;display:flex;height:40px;justify-content:center;transition:all .2s ease;width:40px}.btn-action:hover{background:var(--gray-100);border-color:var(--primary-light);color:var(--primary)}.btn-action.active{background:linear-gradient(135deg,#1a1a2e,#16213e);border-color:#1a1a2e;color:#fbbf24}.btn-action:disabled{cursor:not-allowed;opacity:.5}.dark-mode .dashboard{background:linear-gradient(135deg,#0f0f1a,#1a1a2e 50%,#16213e)}.dark-mode .sidebar{background:#1a1a2ef2;border-right-color:#ffffff1a}.dark-mode .nav-section-title{color:#9ca3af}.dark-mode .stat-card,.dark-mode .student-info-card{background:#ffffff0d;border-color:#ffffff1a}.dark-mode .student-info-item{border-bottom-color:#ffffff0d}.dark-mode .student-info-item .info-icon{color:var(--primary-light)}.dark-mode .student-info-item .info-label{color:#9ca3af}.dark-mode .stat-label,.dark-mode .stat-mini-label,.dark-mode .stat-mini-value,.dark-mode .stat-value,.dark-mode .student-info-item .info-value{color:#e5e7eb}.dark-mode .suggestion-btn{background:#ffffff0d;border-color:#ffffff1a;color:#d1d5db}.dark-mode .suggestion-btn:hover{background:#9d3a3a4d;border-color:var(--primary-light)}.dark-mode .user-name{color:#e5e7eb}.dark-mode .chat-container{background:#1a1a2ee6}.dark-mode .chat-header{background:#1a1a2ef2;border-bottom-color:#ffffff1a}.dark-mode .chat-header h2{color:#f3f4f6}.dark-mode .chat-header p{color:#9ca3af}.dark-mode .btn-action{background:#ffffff1a;border-color:#fff3;color:#e5e7eb}.dark-mode .btn-action:hover{background:#fff3}.dark-mode .message-bubble{background:#ffffff1a;color:#e5e7eb}.dark-mode .message-user .message-bubble{background:linear-gradient(135deg,var(--primary) 0,var(--primary-dark) 100%);color:#fff}.dark-mode .ai-powered-badge{background:linear-gradient(135deg,#8b5cf633,#a855f740);border-color:#8b5cf666;color:#a78bfa}.dark-mode .chat-input-container{background:linear-gradient(180deg,#1a1a2e00,#1a1a2e 20%)}.dark-mode .chat-input-wrapper{background:#1e1e32f2;border-color:#fff3}.dark-mode .chat-input{background:#0000;caret-color:#a78bfa;color:#fff}.dark-mode .chat-input::placeholder{color:#9ca3af}.dark-mode .input-hint{color:#6b7280}.dark-mode .voice-btn{background:#ffffff1a;color:#e5e7eb}.dark-mode .voice-btn:hover{background:linear-gradient(135deg,var(--primary) 0,var(--primary-dark) 100%)}.dark-mode .detail-sidebar{background:#1a1a2ef2;border-left-color:#ffffff1a}.dark-mode .detail-sidebar-header{border-bottom-color:#ffffff1a}.dark-mode .detail-sidebar-header h3{color:#f3f4f6}.dark-mode .chat-messages{background:linear-gradient(180deg,#1a1a2e,#16213e)}.dark-mode .chat-messages:before{background:linear-gradient(180deg,#1a1a2e,#0000)}.dark-mode .student-detail-card{background:#1e1e32f2;border-color:#ffffff1a}.dark-mode .student-detail-header{background:#ffffff0d}.dark-mode .academic-record-card{background:linear-gradient(135deg,#1e1e32f2,#281e3cf2);border-color:#ffffff1a}.dark-mode .academic-record-header{background:linear-gradient(135deg,#5d1a1acc,#641e1ee6)}.dark-mode .academic-record-body{background:#0000}.dark-mode .export-btn{box-shadow:0 2px 8px #0000004d}.dark-mode .export-btn:hover{box-shadow:0 4px 12px #0006}.dark-mode .student-detail-info h4{color:#f3f4f6}.dark-mode .student-detail-id{color:#9ca3af}.dark-mode .detail-section{background:#ffffff08;border-color:#ffffff1a}.dark-mode .detail-section-title{border-bottom-color:#ffffff1a;color:#e5e7eb}.dark-mode .detail-label{color:#9ca3af}.dark-mode .detail-value{color:#f3f4f6}.dark-mode .detail-icon{color:#a78bfa}.dark-mode .academic-record-section{background:linear-gradient(135deg,#5d1a1a26,#8b5cf61a)}.dark-mode .semester-grades{background:#ffffff0d}.dark-mode .semester-title{border-bottom-color:#e5a5a54d;color:#e5a5a5}.dark-mode .grade-row{background:#ffffff0d}.dark-mode .grade-row.subject-card{border-color:#ffffff1a}.dark-mode .grade-row:hover{background:#ffffff1a}.dark-mode .periods-grades{background:#ffffff0d}.dark-mode .period-grade{color:#d1d5db}.dark-mode .period-grade strong{color:#9ca3af}.dark-mode .final-grade-display{border-top-color:#ffffff1a}.dark-mode .final-grade-label{color:#d1d5db}.dark-mode .grade-status.status-passed{background:#10b98133;color:#34d399}.dark-mode .grade-status.status-failed{background:#ef444433;color:#f87171}.dark-mode .grade-status.status-incomplete{background:#f59e0b33;color:#fbbf24}.dark-mode .units-display{color:#9ca3af}.dark-mode .course-code{color:#e5a5a5}.dark-mode .subject-title{color:#9ca3af}.dark-mode .prereq-tag{background:#e6770033;color:#ffa94d}.dark-mode .units{background:#ffffff1a;color:#9ca3af}.dark-mode .class-schedule-card{background:linear-gradient(135deg,#142832f2,#192d37f2);border-color:#ffffff1a}.dark-mode .schedule-header{background:linear-gradient(135deg,#0891b2cc,#0e7490e6)}.dark-mode .schedule-body{background:#0000}.dark-mode .schedule-day-indicator{background:linear-gradient(135deg,#0891b299,#0e7490b3)}.dark-mode .day-title{border-bottom-color:#67e8f94d;color:#67e8f9}.dark-mode .class-item{background:#ffffff0d;border-color:#ffffff1a}.dark-mode .class-item:hover{background:#ffffff1a;border-color:#0891b266}.dark-mode .class-time{background:linear-gradient(135deg,#0891b233,#0e749026);border-color:#0891b24d}.dark-mode .class-time svg{color:#67e8f9}.dark-mode .class-time span{color:#a5f3fc}.dark-mode .class-code{background:linear-gradient(135deg,#0891b233,#0e749026);color:#67e8f9}.dark-mode .class-title{color:#f3f4f6}.dark-mode .class-section{background:linear-gradient(135deg,#0e7490,#155e75);color:#e0f2fe}.dark-mode .class-number{background:linear-gradient(135deg,#6d28d9,#5b21b6);color:#ede9fe}.dark-mode .class-instructor,.dark-mode .class-room,.dark-mode .class-units{color:#9ca3af}.dark-mode .class-instructor svg,.dark-mode .class-room svg,.dark-mode .class-units svg{color:#67e8f9}.dark-mode .no-classes-message{color:#9ca3af}.dark-mode .no-classes-message svg{color:#4b5563}.dark-mode .no-classes-message span{color:#6b7280}.dark-mode .student-card-mini{background:#ffffff0d;border-color:#ffffff1a}.dark-mode .student-card-mini:hover{background:#ffffff1a;border-color:var(--primary-light)}.dark-mode .student-name{color:#f3f4f6}.dark-mode .parent-label,.dark-mode .student-id,.dark-mode .student-meta{color:#9ca3af}.dark-mode .parent-name{color:#e5e7eb}.dark-mode .parent-fb{color:#60a5fa}.dark-mode .avatar-initials,.dark-mode .photo-placeholder{background:linear-gradient(135deg,#4f46e5,#7c3aed);color:#fff}.typing-text{display:inline}.typing-cursor{animation:blink-cursor .75s step-end infinite;background:var(--primary);display:inline-block;height:1.2em;margin-left:2px;width:2px}@keyframes blink-cursor{0%,to{opacity:1}50%{opacity:0}}.feature-badge{align-items:center;background:linear-gradient(135deg,#fbbf24,#f59e0b);border-radius:var(--radius-full);color:#1f2937;display:inline-flex;font-size:.625rem;font-weight:600;gap:.25rem;letter-spacing:.5px;padding:.125rem .5rem;text-transform:uppercase}.dark-mode ::-webkit-scrollbar-track{background:#ffffff0d}.dark-mode ::-webkit-scrollbar-thumb{background:#fff3}.image-zoom-modal{align-items:center;animation:fadeIn .2s ease-out;background:#000000e6;bottom:0;cursor:pointer;display:flex;justify-content:center;left:0;position:fixed;right:0;top:0;z-index:9999}.image-zoom-content{animation:zoomIn .3s ease-out;max-height:90vh;max-width:90vw;position:relative}.image-zoom-content img{border-radius:var(--radius-lg);box-shadow:0 25px 50px -12px #00000080;max-height:90vh;max-width:90vw;object-fit:contain}.zoom-close-btn{align-items:center;background:#ffffff1a;border:none;border-radius:50%;color:#fff;cursor:pointer;display:flex;font-size:24px;height:36px;justify-content:center;position:absolute;right:0;top:-40px;transition:all .2s ease;width:36px}.zoom-close-btn:hover{background:#fff3;transform:scale(1.1)}.clickable-avatar{cursor:pointer;position:relative;transition:all .2s ease}.clickable-avatar:hover{transform:scale(1.05)}.clickable-avatar:hover:after{background:#0003;border-radius:inherit;content:"";inset:0;position:absolute}.student-detail-avatar-large.clickable-avatar{overflow:visible}.student-detail-avatar-large .zoom-icon{align-items:center;background:linear-gradient(135deg,var(--primary) 0,var(--primary-dark) 100%);border-radius:50%;bottom:2px;box-shadow:0 2px 8px #0000004d;color:#fff;display:flex;height:24px;justify-content:center;opacity:0;position:absolute;right:2px;transition:opacity .2s ease;width:24px}.student-detail-avatar-large.clickable-avatar:hover .zoom-icon{opacity:1}.student-photo-mini.clickable-avatar:hover img{filter:brightness(.8)}.dark-mode ::-webkit-scrollbar-thumb:hover{background:#ffffff4d}.user-avatar-wrapper{display:inline-block;position:relative}.change-photo-btn{align-items:center;background:linear-gradient(135deg,var(--primary) 0,var(--primary-dark) 100%);border:2px solid #ffffffe6;border-radius:50%;bottom:-2px;color:#fff;cursor:pointer;display:flex;font-size:10px;height:22px;justify-content:center;position:absolute;right:-2px;transition:all .2s ease;width:22px;z-index:5}.change-photo-btn:hover{background:var(--primary-dark);box-shadow:0 2px 8px #8b1a1a66;transform:scale(1.15)}.modal-overlay{animation:fadeIn .2s ease;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#000000b3;z-index:1000}.photo-upload-modal{animation:slideUp .3s ease;background:#fff;border-radius:16px;box-shadow:0 25px 50px -12px #0006;margin:1rem;max-width:400px;overflow:hidden;width:100%}.modal-header{background:linear-gradient(135deg,var(--primary-dark) 0,var(--primary) 100%);border-bottom:1px solid var(--gray-200);color:#fff;padding:1.25rem 1.5rem}.modal-header h3{font-size:1.125rem;font-weight:600;margin:0}.modal-close-btn{align-items:center;background:#ffffff26;border:none;border-radius:50%;color:#fff;cursor:pointer;display:flex;font-size:18px;height:32px;justify-content:center;transition:all .2s ease;width:32px}.modal-close-btn:hover:not(:disabled){background:#ffffff40;transform:scale(1.1)}.modal-close-btn:disabled{cursor:not-allowed;opacity:.5}.modal-body{flex-direction:column;gap:1.25rem;padding:1.5rem}.current-photo,.modal-body{align-items:center;display:flex}.current-photo{background:var(--gray-100);border:4px solid var(--gray-200);border-radius:50%;height:120px;justify-content:center;overflow:hidden;width:120px}.current-photo-img{height:100%;object-fit:cover;width:100%}.no-photo{align-items:center;color:var(--gray-400);display:flex;flex-direction:column;gap:.5rem}.no-photo svg{font-size:2.5rem}.no-photo span{font-size:.75rem}.upload-error{align-items:center;background:#fee2e2;border-radius:8px;color:#dc2626;display:flex;font-size:.875rem;gap:.5rem;padding:.75rem 1rem;width:100%}.upload-error .error-icon{flex-shrink:0}.upload-instructions{text-align:center}.upload-instructions p{color:var(--gray-700);font-weight:500;margin:0}.upload-hint{color:var(--gray-500);font-size:.75rem}.upload-btn{align-items:center;background:linear-gradient(135deg,var(--primary) 0,var(--primary-dark) 100%);border:none;border-radius:10px;color:#fff;cursor:pointer;display:flex;font-size:.9rem;font-weight:600;gap:.5rem;justify-content:center;padding:.875rem 1.5rem;transition:all .2s ease;width:100%}.upload-btn:hover:not(.uploading){box-shadow:0 4px 12px #8b1a1a4d;transform:translateY(-2px)}.upload-btn.uploading{background:var(--gray-400);cursor:not-allowed}.upload-btn svg{font-size:1.1rem}.dark-mode .photo-upload-modal{background:var(--gray-800)}.dark-mode .modal-header{border-bottom-color:var(--gray-700)}.dark-mode .current-photo{background:var(--gray-700);border-color:var(--gray-600)}.dark-mode .no-photo{color:var(--gray-500)}.dark-mode .upload-instructions p{color:var(--gray-200)}.dark-mode .upload-hint{color:var(--gray-400)}.dark-mode .upload-error{background:#dc262626;color:#f87171}.analytics-container{animation:fadeIn .3s ease;padding:1.5rem}.analytics-header{margin-bottom:2rem}.analytics-header h2{align-items:center;color:#fff;display:flex;font-size:1.875rem;font-weight:700;gap:.75rem;letter-spacing:-.025em;margin-bottom:.5rem;text-shadow:0 2px 10px #0000004d}.analytics-header h2 svg{color:#fff}.analytics-header p{color:var(--gray-500);font-size:.875rem}.analytics-summary{grid-gap:1rem;display:grid;gap:1rem;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));margin-bottom:2rem}.summary-card{align-items:center;background:#fff;border:1px solid var(--gray-100);border-radius:var(--radius-lg);box-shadow:var(--shadow-md);display:flex;gap:1rem;padding:1.25rem;transition:all .3s ease}.summary-card:hover{box-shadow:var(--shadow-lg);transform:translateY(-2px)}.summary-icon{align-items:center;border-radius:var(--radius);display:flex;font-size:1.25rem;height:50px;justify-content:center;width:50px}.summary-icon.blue{background:#3b82f61a;color:#3b82f6}.summary-icon.green{background:#10b9811a;color:#10b981}.summary-icon.purple{background:#8b5cf61a;color:#8b5cf6}.summary-icon.orange{background:#f59e0b1a;color:#f59e0b}.summary-info{display:flex;flex-direction:column}.summary-value{color:var(--gray-800);font-size:1.75rem;font-weight:700;line-height:1.2}.summary-label{color:var(--gray-500);font-size:.75rem;letter-spacing:.5px;text-transform:uppercase}.charts-grid{grid-gap:1.5rem;display:grid;gap:1.5rem;grid-template-columns:repeat(2,1fr)}.chart-card{background:#fff;border:1px solid var(--gray-100);border-radius:var(--radius-lg);box-shadow:var(--shadow-md);padding:1.5rem}.chart-card.wide{grid-column:span 2}.chart-card h3{border-bottom:1px solid var(--gray-100);color:var(--gray-700);font-size:1rem;font-weight:600;margin-bottom:1rem;padding-bottom:.75rem}.chart-wrapper{height:280px;position:relative}.chart-wrapper.doughnut{height:260px}.dark-mode .analytics-header h2{color:#f3f4f6}.dark-mode .analytics-header p{color:#9ca3af}.dark-mode .summary-card{background:#ffffff0d;border-color:#ffffff1a}.dark-mode .summary-value{color:#f3f4f6}.dark-mode .summary-label{color:#9ca3af}.dark-mode .chart-card{background:#ffffff0d;border-color:#ffffff1a}.dark-mode .chart-card h3{border-bottom-color:#ffffff1a;color:#e5e7eb}.dark-mode .summary-icon.blue{background:#3b82f633}.dark-mode .summary-icon.green{background:#10b98133}.dark-mode .summary-icon.purple{background:#8b5cf633}.dark-mode .summary-icon.orange{background:#f59e0b33}.dark-mode .summary-card:hover{background:#ffffff14}.dark-mode .chart-card:hover,.dark-mode .summary-card:hover{box-shadow:0 10px 40px #0000004d}.dark-mode .empty-chart h3{color:#e5e7eb}.dark-mode .empty-chart p{color:#9ca3af}.dark-mode .empty-chart .empty-icon{color:#6b7280}.empty-chart{align-items:center;color:var(--gray-500);display:flex;flex-direction:column;height:250px;justify-content:center;text-align:center}.empty-chart .empty-icon{font-size:3rem;margin-bottom:1rem;opacity:.5}.empty-chart h3{color:var(--gray-700);font-size:1.125rem;font-weight:600;margin-bottom:.5rem}.empty-chart p{color:var(--gray-500);font-size:.875rem;max-width:300px}@media (max-width:1024px){.charts-grid{grid-template-columns:1fr}.chart-card.wide{grid-column:span 1}}@media (max-width:768px){.analytics-container{padding:1rem}.analytics-summary{grid-template-columns:repeat(2,1fr)}.summary-card{padding:1rem}.summary-value{font-size:1.5rem}.chart-wrapper{height:220px}}@media (max-width:480px){.analytics-summary{grid-template-columns:1fr}}@media (max-width:360px){.analytics-container{padding:.75rem}.chart-card{padding:1rem}.chart-wrapper{height:200px}.summary-value{font-size:1.25rem}}.qr-modal-overlay{align-items:center;animation:fadeIn .2s ease;-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);background:#0009;bottom:0;display:flex;justify-content:center;left:0;position:fixed;right:0;top:0;z-index:1000}.qr-modal{animation:slideUp .3s ease;background:#fff;border-radius:var(--radius-xl);box-shadow:0 25px 50px -12px #00000040;max-width:400px;overflow:hidden;width:90%}.qr-modal-header{align-items:center;background:linear-gradient(135deg,var(--primary-dark) 0,var(--primary) 100%);border-bottom:1px solid var(--gray-100);display:flex;justify-content:space-between;padding:1.25rem 1.5rem}.qr-modal-header h3{color:#fff;font-size:1.125rem;font-weight:600;margin:0}.qr-modal-header .close-btn{align-items:center;background:#fff3;border:none;border-radius:50%;color:#fff;cursor:pointer;display:flex;height:36px;justify-content:center;transition:all .2s ease;width:36px}.qr-modal-header .close-btn:hover{background:#ffffff4d;transform:rotate(90deg)}.qr-modal-content{align-items:center;display:flex;flex-direction:column;gap:1.5rem;padding:2rem}.qr-code-wrapper{background:#fff;border-radius:var(--radius-lg);box-shadow:0 4px 6px -1px #0000001a,0 2px 4px -2px #0000001a,inset 0 0 0 1px var(--gray-100);padding:1rem}.student-info-preview{text-align:center}.student-avatar-qr{align-items:center;background:linear-gradient(135deg,var(--primary) 0,var(--primary-light) 100%);border-radius:50%;box-shadow:0 4px 14px #5d1a1a4d;color:#fff;display:flex;font-size:1.25rem;font-weight:700;height:80px;justify-content:center;margin:0 auto .75rem;overflow:hidden;width:80px}.student-avatar-qr .student-profile-img{height:100%;object-fit:cover;width:100%}.student-avatar-qr .student-initials{align-items:center;display:flex;font-size:1.5rem;font-weight:700;height:100%;justify-content:center;width:100%}.student-info-preview h4{color:var(--gray-800);font-size:1.125rem;font-weight:600;margin:0 0 .5rem}.student-id-badge{background:var(--gray-100);border-radius:var(--radius-full);color:var(--primary);display:inline-block;font-size:.75rem;font-weight:600;margin-bottom:.5rem;padding:.25rem .75rem}.student-program{color:var(--gray-600);font-size:.875rem;margin:0 0 .75rem}.student-tags{display:flex;flex-wrap:wrap;gap:.5rem;justify-content:center}.student-tags .tag{background:var(--gray-100);border-radius:var(--radius-full);color:var(--gray-700);font-size:.75rem;padding:.25rem .625rem}.student-tags .tag.status{background:#10b9811a;color:#059669}.student-tags .tag.status.dropped,.student-tags .tag.status.not-enrolled{background:#ef44441a;color:#dc2626}.qr-modal-actions{display:flex;gap:1rem;padding:0 1.5rem 1.5rem}.btn-download,.btn-share{align-items:center;border:none;border-radius:var(--radius);cursor:pointer;display:flex;flex:1 1;font-size:.875rem;font-weight:500;gap:.5rem;justify-content:center;padding:.75rem 1rem;transition:all .2s ease}.btn-download{background:linear-gradient(135deg,var(--primary) 0,var(--primary-dark) 100%);color:#fff}.btn-download:hover{box-shadow:0 4px 12px #5d1a1a4d;transform:translateY(-1px)}.btn-share{background:var(--gray-100);border:1px solid var(--gray-200);color:var(--gray-700)}.btn-share:hover{background:var(--gray-200)}.qr-note{color:var(--gray-500);font-size:.75rem;margin:0;padding:0 1.5rem 1.5rem;text-align:center}.dark-mode .qr-modal{background:var(--bg-primary)}.dark-mode .qr-modal-header{border-bottom-color:var(--border-color)}.dark-mode .student-info-preview h4{color:var(--text-primary)}.dark-mode .student-id-badge{background:#ffffff1a}.dark-mode .student-program{color:var(--text-secondary)}.dark-mode .student-tags .tag{background:#ffffff1a;color:var(--text-secondary)}.dark-mode .btn-share{background:#ffffff1a;border-color:var(--border-color);color:var(--text-primary)}.dark-mode .btn-share:hover{background:#fff3}@media (max-width:480px){.qr-modal{margin:1rem;width:95%}.qr-modal-content{padding:1.5rem}.qr-modal-actions{flex-direction:column}}@media (max-width:360px){.qr-modal-content{padding:1rem}.qr-modal-header h2{font-size:1.125rem}.qr-student-name{font-size:.875rem}}.admin-dashboard{animation:gradientShift 15s ease infinite;background:linear-gradient(-45deg,#1a1a2e,#16213e,#0f3460,#1a1a2e);background-size:400% 400%;display:flex;height:100vh;overflow:hidden;position:relative}.admin-dashboard:before{background:radial-gradient(circle at 20% 80%,#5d1a1a26 0,#0000 50%),radial-gradient(circle at 80% 20%,#8b45451a 0,#0000 50%),radial-gradient(circle at 40% 40%,#ffffff05 0,#0000 30%);bottom:0;content:"";left:0;pointer-events:none;position:absolute;right:0;top:0;z-index:0}@keyframes gradientShift{0%{background-position:0 50%}50%{background-position:100% 50%}to{background-position:0 50%}}.admin-dashboard:after{animation:particleFloat 20s linear infinite;background-image:radial-gradient(2px 2px at 20px 30px,#ffffff26,#0000),radial-gradient(2px 2px at 40px 70px,#ffffff1a,#0000),radial-gradient(2px 2px at 50px 160px,#ffffff1f,#0000),radial-gradient(2px 2px at 90px 40px,#ffffff14,#0000),radial-gradient(2px 2px at 130px 80px,#ffffff1a,#0000),radial-gradient(2px 2px at 160px 120px,#ffffff26,#0000);background-size:200px 200px;content:"";height:100%;left:0;opacity:.5;pointer-events:none;position:absolute;top:0;width:100%;z-index:0}@keyframes particleFloat{0%{transform:translateY(0)}to{transform:translateY(-200px)}}.success-toast{align-items:center;animation:toastSlideIn .4s cubic-bezier(.16,1,.3,1);background:linear-gradient(135deg,#059669,#10b981);border-radius:12px;box-shadow:0 20px 40px #0596694d,0 0 0 1px #ffffff1a;color:#fff;display:flex;font-weight:500;gap:.75rem;padding:1rem 1.5rem;position:fixed;right:20px;top:20px;z-index:1000}.success-toast svg{font-size:1.25rem}@keyframes toastSlideIn{0%{opacity:0;transform:translateX(100px) scale(.8)}to{opacity:1;transform:translateX(0) scale(1)}}.admin-sidebar{backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);background:linear-gradient(135deg,var(--primary-dark) 0,var(--primary) 50%,#7c2d2d 100%);border-right:1px solid #ffffff1a;box-shadow:4px 0 30px #0003;display:flex;flex-direction:column;flex-shrink:0;position:relative;width:280px;z-index:10}.admin-sidebar .sidebar-header{background:#0000001a;border-bottom:1px solid #ffffff26;padding:1.5rem}.admin-sidebar .logo{align-items:center;display:flex;gap:.875rem}.admin-sidebar .sidebar-logo{border-radius:50%;box-shadow:0 0 0 2px #800020cc,0 0 0 4px #ffd7004d,0 4px 15px #0003;height:54px;min-width:54px;object-fit:cover;object-position:center top;transition:all .3s ease;width:54px}.admin-sidebar .sidebar-logo:hover{box-shadow:0 0 0 2px #800020cc,0 0 0 4px #ffd70080,0 0 20px #ffd7004d,0 8px 25px #00000040;transform:scale(1.05)}.admin-sidebar .logo-icon{align-items:center;background:radial-gradient(circle,#fff 0,#f8f4e8 100%);border-radius:50%;box-shadow:0 0 0 2px #800020cc,0 0 0 4px #ffd7004d,0 4px 15px #0003;display:flex;height:54px;justify-content:center;overflow:hidden;padding:7px;position:relative;transition:all .3s ease;width:54px}.admin-sidebar .logo-icon:hover{box-shadow:0 0 0 2px #800020cc,0 0 0 4px #ffd70080,0 0 20px #ffd7004d,0 8px 25px #00000040;transform:scale(1.05)}.admin-sidebar .logo-icon .school-logo{border-radius:50%;height:100%;object-fit:contain;width:100%}.admin-sidebar .logo-icon:after{animation:logoShine 3s ease-in-out infinite;background:linear-gradient(45deg,#0000 40%,#fff6 50%,#0000 60%);content:"";height:200%;left:-50%;position:absolute;top:-50%;width:200%}@keyframes logoShine{0%{transform:translateX(-100%) rotate(45deg)}to{transform:translateX(100%) rotate(45deg)}}.admin-sidebar .logo-text{display:flex;flex-direction:column}.admin-sidebar .logo-title{-webkit-text-fill-color:#0000;background:linear-gradient(135deg,#fff,gold);-webkit-background-clip:text;background-clip:text;color:#fff;font-size:1.125rem;font-weight:700;letter-spacing:-.025em}.admin-sidebar .logo-subtitle{color:#fffc;display:block;font-size:.75rem;font-weight:500}.sidebar-nav{display:flex;flex:1 1;flex-direction:column;gap:.375rem;padding:1.25rem 1rem}.nav-item{align-items:center;background:#0000;border:none;border-radius:12px;color:#ffffffd9;cursor:pointer;display:flex;font-size:.9375rem;font-weight:500;gap:.875rem;overflow:hidden;padding:.875rem 1.125rem;position:relative;text-align:left;transition:all .3s cubic-bezier(.16,1,.3,1);width:100%}.nav-item:before{background:#fff3;border-radius:12px;content:"";inset:0;opacity:0;position:absolute;transition:opacity .3s ease}.nav-item:hover{background:#ffffff26;color:#fff;transform:translateX(4px)}.nav-item.active{background:#0000004d;box-shadow:0 4px 15px #0003;color:#fff}.nav-item.active:before{opacity:0}.nav-item span,.nav-item svg{position:relative;z-index:1}.nav-item svg{font-size:1.25rem}.admin-sidebar .sidebar-footer{background:linear-gradient(180deg,#0000,#0000001a);border-top:1px solid #ffffff26;padding:1.25rem}.admin-sidebar .user-info{align-items:center;background:#ffffff1a;border:1px solid #ffffff26;border-radius:12px;display:flex;gap:.875rem;margin-bottom:1rem;padding:.875rem}.admin-sidebar .user-avatar{align-items:center;background:#fff3;border-radius:12px;box-shadow:0 4px 12px #0003;color:#fff;display:flex;font-size:1.125rem;height:44px;justify-content:center;width:44px}.admin-sidebar .user-details{flex:1 1}.admin-sidebar .user-name{color:#fff;display:block;font-size:.9375rem;font-weight:600}.admin-sidebar .user-role{color:#ffffffb3;display:block;font-size:.75rem;font-weight:500}.admin-sidebar .logout-btn{align-items:center;background:#ffffff1a;border:1px solid #fff3;border-radius:12px;color:#ffffffe6;cursor:pointer;display:flex;font-size:.875rem;font-weight:600;gap:.625rem;justify-content:center;padding:.75rem;transition:all .3s ease;width:100%}.admin-sidebar .logout-btn:hover{background:#ff64644d;border-color:#ff969680;color:#fff;transform:translateY(-2px)}.admin-sidebar .change-password-btn{align-items:center;background:#ffffff1a;border:1px solid #fff3;border-radius:12px;color:#ffffffe6;cursor:pointer;display:flex;font-size:.875rem;font-weight:600;gap:.625rem;justify-content:center;margin-bottom:.5rem;padding:.75rem;transition:all .3s ease;width:100%}.admin-sidebar .change-password-btn:hover{background:#fff3;border-color:#ffffff4d;color:#fff;transform:translateY(-2px)}.admin-main{flex:1 1;overflow-y:auto;padding:2rem;position:relative;z-index:1}.admin-main::-webkit-scrollbar{width:8px}.admin-main::-webkit-scrollbar-track{background:#ffffff1a;border-radius:4px}.admin-main::-webkit-scrollbar-thumb{background:#fff3;border-radius:4px}.admin-main::-webkit-scrollbar-thumb:hover{background:#ffffff4d}.page-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:2rem}.page-header h1{color:#fff;font-size:1.875rem;font-weight:700;letter-spacing:-.025em;text-shadow:0 2px 10px #0000004d}.btn-primary{align-items:center;background:linear-gradient(135deg,var(--primary),var(--primary-dark));border:none;border-radius:12px;box-shadow:0 4px 15px #5d1a1a4d;color:#fff;cursor:pointer;display:inline-flex;font-size:.9375rem;font-weight:600;gap:.625rem;padding:.875rem 1.5rem;transition:all .3s cubic-bezier(.16,1,.3,1)}.btn-primary:hover{box-shadow:0 12px 30px #5d1a1a66;transform:translateY(-3px)}.btn-secondary{align-items:center;background:#fff;border:2px solid var(--gray-200);border-radius:12px;color:var(--gray-700);cursor:pointer;display:inline-flex;font-size:.875rem;font-weight:600;gap:.5rem;padding:.75rem 1.25rem;transition:all .3s ease}.btn-secondary:hover{background:var(--gray-50);border-color:var(--gray-300);transform:translateY(-2px)}.btn-refresh{align-items:center;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#ffffff1a;border:1px solid #fff3;border-radius:12px;color:#ffffffe6;cursor:pointer;display:inline-flex;font-size:.875rem;font-weight:600;gap:.5rem;padding:.75rem 1.25rem;transition:all .3s ease}.btn-refresh:hover{background:#fff3;transform:translateY(-2px)}.btn-refresh svg{transition:transform .5s ease}.btn-refresh:hover svg{transform:rotate(180deg)}.btn-danger{align-items:center;background:linear-gradient(135deg,#dc2626,#ef4444);border:none;border-radius:12px;box-shadow:0 4px 15px #dc26264d;color:#fff;cursor:pointer;display:inline-flex;font-size:.875rem;font-weight:600;gap:.5rem;padding:.75rem 1.25rem;transition:all .3s ease}.btn-danger:hover:not(:disabled){background:linear-gradient(135deg,#b91c1c,#dc2626);box-shadow:0 6px 20px #dc262666;transform:translateY(-2px)}.btn-danger:disabled{cursor:not-allowed;opacity:.5;transform:none}.btn-danger svg{font-size:1rem}.btn-danger-outline{align-items:center;background:#0000;border:2px solid #ef4444;border-radius:12px;color:#ef4444;cursor:pointer;display:inline-flex;font-size:.875rem;font-weight:600;gap:.5rem;padding:.75rem 1.25rem;transition:all .3s ease}.btn-danger-outline:hover{background:#ef44441a;transform:translateY(-2px)}.btn-danger-outline svg{font-size:1rem}.header-actions{align-items:center;display:flex;gap:.75rem}.checkbox-col{text-align:center;width:50px}.checkbox-col input[type=checkbox]{accent-color:#8b4513;cursor:pointer;height:18px;width:18px}.data-table tbody tr.selected{background:#8b45131a!important}.data-table tbody tr.selected:hover{background:#8b451326!important}.stats-cards{grid-gap:1.5rem;display:grid;gap:1.5rem;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));margin-bottom:2rem}.stat-card{align-items:center;-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);background:#fffffff2;border-radius:20px;box-shadow:0 10px 40px #0000001a,0 0 0 1px #ffffff80;display:flex;gap:1.25rem;overflow:hidden;padding:1.75rem;position:relative;transition:all .4s cubic-bezier(.16,1,.3,1)}.stat-card:before{background:linear-gradient(90deg,var(--primary),var(--primary-light));content:"";height:4px;left:0;opacity:0;position:absolute;right:0;top:0;transition:opacity .3s ease}.stat-card:hover{box-shadow:0 20px 60px #00000026,0 0 0 1px #ffffff80;transform:translateY(-8px)}.stat-card:hover:before{opacity:1}.stat-card.primary{background:linear-gradient(135deg,var(--primary),var(--primary-dark));color:#fff}.stat-card.primary:before{background:linear-gradient(90deg,#ffffff4d,#ffffff1a);opacity:1}.stat-card.secondary{background:linear-gradient(135deg,#0369a1,#0ea5e9);color:#fff}.stat-card.secondary:before{background:linear-gradient(90deg,#ffffff4d,#ffffff1a);opacity:1}.stat-card.accent{background:linear-gradient(135deg,#059669,#10b981);color:#fff}.stat-card.accent:before{background:linear-gradient(90deg,#ffffff4d,#ffffff1a);opacity:1}.stat-card .stat-icon{align-items:center;background:#fff3;border-radius:16px;display:flex;flex-shrink:0;font-size:1.75rem;height:56px;justify-content:center;width:56px}.stat-card .stat-content{flex:1 1}.stat-card .stat-value{color:inherit;font-size:2.25rem;font-weight:800;line-height:1;margin-bottom:.375rem}.stat-card .stat-label{font-size:.875rem;font-weight:500;opacity:.85}.dashboard-grid{grid-gap:1.5rem;display:grid;gap:1.5rem;grid-template-columns:repeat(2,1fr)}.dashboard-card{-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);background:#fffffff2;border-radius:20px;box-shadow:0 10px 40px #0000001a,0 0 0 1px #ffffff80;padding:1.75rem;transition:all .3s ease}.dashboard-card:hover{box-shadow:0 15px 50px #0000001f,0 0 0 1px #ffffff80;transform:translateY(-4px)}.dashboard-card.full-width{grid-column:span 2}.dashboard-card h3{align-items:center;border-bottom:2px solid #5d1a1a1a;color:var(--gray-800);display:flex;font-size:1.0625rem;font-weight:700;gap:.5rem;margin-bottom:1.25rem;padding-bottom:1rem}.dashboard-card h3:before{background:linear-gradient(135deg,var(--primary),var(--primary-dark));border-radius:2px;content:"";height:20px;width:4px}.chart-bars{display:flex;flex-direction:column;gap:1rem}.bar-item{align-items:center;display:flex;gap:1rem}.bar-label{color:var(--gray-600);font-size:.8125rem;font-weight:600;width:70px}.bar-container{background:linear-gradient(90deg,#5d1a1a0d,#5d1a1a05);flex:1 1;height:28px;overflow:hidden}.bar-container,.bar-fill{border-radius:14px;position:relative}.bar-fill{background:linear-gradient(90deg,var(--primary),var(--primary-light));height:100%;transition:width .8s cubic-bezier(.16,1,.3,1)}.bar-fill:after{animation:barShine 2s ease-in-out infinite;background:linear-gradient(90deg,#0000,#ffffff4d,#0000);bottom:0;content:"";left:0;position:absolute;right:0;top:0}@keyframes barShine{0%{transform:translateX(-100%)}to{transform:translateX(100%)}}.bar-value{color:var(--gray-800);font-size:.9375rem;font-weight:700;text-align:right;width:40px}.status-list{display:flex;flex-direction:column;gap:.75rem}.status-item{align-items:center;background:linear-gradient(90deg,#5d1a1a08,#0000);border-left:3px solid var(--primary);border-radius:12px;display:flex;justify-content:space-between;padding:.875rem 1rem;transition:all .3s ease}.status-item:hover{background:linear-gradient(90deg,#5d1a1a0f,#5d1a1a05);transform:translateX(4px)}.status-count{color:var(--gray-800);font-size:1.125rem;font-weight:700}.filters-bar{flex-wrap:wrap;gap:1rem;margin-bottom:1.5rem}.filters-bar,.search-box{align-items:center;display:flex}.search-box{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#fffffff2;border:2px solid #ffffff80;border-radius:14px;box-shadow:0 4px 20px #0000001a;flex:1 1;gap:.75rem;max-width:350px;padding:.75rem 1.25rem;transition:all .3s ease}.search-box:focus-within{border-color:var(--primary);box-shadow:0 4px 20px #5d1a1a26}.search-box input{background:#0000;border:none;color:var(--gray-700);font-size:.9375rem;width:100%}.search-box input:focus{outline:none}.search-box input::placeholder,.search-box svg{color:var(--gray-400)}.search-box svg{font-size:1.125rem}.filters-bar select{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#fffffff2;border:2px solid #ffffff80;border-radius:14px;box-shadow:0 4px 20px #0000001a;color:var(--gray-700);cursor:pointer;font-size:.875rem;font-weight:500;padding:.75rem 1.25rem;transition:all .3s ease}.filters-bar select:focus,.filters-bar select:hover{border-color:var(--primary)}.filters-bar select:focus{outline:none}.data-table-container{-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);background:#fffffff2;border-radius:20px;box-shadow:0 10px 40px #0000001a,0 0 0 1px #ffffff80;overflow:hidden}.data-table{border-collapse:collapse;width:100%}.data-table td,.data-table th{border-bottom:1px solid #0000000d;padding:1rem 1.25rem;text-align:left}.data-table th{background:linear-gradient(180deg,#f8fafc,#f1f5f9);color:var(--gray-500);font-size:.75rem;font-weight:700;letter-spacing:.08em;position:-webkit-sticky;position:sticky;text-transform:uppercase;top:0}.data-table td{color:var(--gray-700);font-size:.9375rem}.data-table tbody tr{transition:all .2s ease}.data-table tbody tr:hover{background:linear-gradient(90deg,#5d1a1a05,#0000)}.id-cell{background:#5d1a1a0d;border-radius:8px;color:var(--primary);display:inline-block;font-family:Monaco,Menlo,monospace;font-size:.8125rem;font-weight:600;padding:.375rem .75rem}.name-cell .name{color:var(--gray-800);font-weight:600}.name-cell .middle-name{color:var(--gray-500);display:block;font-size:.8125rem;margin-top:.125rem}.schedule-cell{display:flex;flex-direction:column;gap:.25rem}.schedule-day{background:#5d1a1a1a;border-radius:4px;color:var(--primary);display:inline-block;font-size:.75rem;font-weight:600;padding:.2rem .5rem;width:-webkit-fit-content;width:fit-content}.schedule-time{color:var(--gray-600);font-family:Monaco,Menlo,monospace;font-size:.7rem}.room-badge{background:#5d1a1a1a;border-radius:6px;color:var(--primary);display:inline-block;font-size:.85rem;font-weight:500;padding:.3rem .6rem}.class-number-badge{background:linear-gradient(135deg,#5d1a1a26,#8b45451a);border:1px solid #5d1a1a33;color:#1a1a2e;font-weight:600}.section-badge{background:linear-gradient(135deg,#10b98126,#10b9811a);border:1px solid #10b98133;border-radius:6px;color:#1a1a2e;font-weight:600}.class-number-badge,.section-badge{display:inline-block;font-size:.85rem;padding:.3rem .6rem}.class-number-badge{background:linear-gradient(135deg,#7c3aed26,#7c3aed1a);border:1px solid #7c3aed33;border-radius:6px;color:#7c3aed;font-weight:700;min-width:2rem;text-align:center}.section-count-badge{background:#6b72801a;border-radius:4px;color:#6b7280;display:block;font-size:.7rem;font-weight:500;margin-top:.25rem;padding:.15rem .4rem}.group-header-row{background:#fff9;border-top:3px solid var(--primary)}.group-header-row td{font-weight:500}.grouped-row{background:#f9fafbcc;border-top:2px dashed #0ea5e966}.grouped-row td{padding-bottom:.6rem;padding-top:.6rem}.data-table tbody tr.group-header-row:not(:first-child){border-top:4px solid var(--primary)}.action-buttons{display:flex;gap:.5rem}.btn-icon{align-items:center;border:none;border-radius:10px;cursor:pointer;display:flex;height:36px;justify-content:center;transition:all .3s cubic-bezier(.16,1,.3,1);width:36px}.btn-icon.edit{background:#0ea5e91a;color:#0ea5e9}.btn-icon.edit:hover{background:#0ea5e9;box-shadow:0 6px 15px #0ea5e94d;color:#fff;transform:translateY(-3px)}.btn-icon.duplicate{background:#22c55e1a;color:#22c55e}.btn-icon.duplicate:hover{background:#22c55e;box-shadow:0 6px 15px #22c55e4d;color:#fff;transform:translateY(-3px)}.btn-icon.qr{background:#8b5cf61a;color:#8b5cf6}.btn-icon.qr:hover{background:#8b5cf6;box-shadow:0 6px 15px #8b5cf64d;color:#fff;transform:translateY(-3px)}.btn-icon.reset-password{background:#f59e0b1a;color:#f59e0b}.btn-icon.reset-password:hover:not(:disabled){background:#f59e0b;box-shadow:0 6px 15px #f59e0b4d;color:#fff;transform:translateY(-3px)}.btn-icon.delete{background:#ef44441a;color:#ef4444}.btn-icon.delete:hover:not(:disabled){background:#ef4444;box-shadow:0 6px 15px #ef44444d;color:#fff;transform:translateY(-3px)}.btn-icon:disabled{cursor:not-allowed;opacity:.4}.badge{align-items:center;border-radius:20px;display:inline-flex;font-size:.75rem;font-weight:600;letter-spacing:.02em;padding:.375rem .875rem}.badge-success{background:linear-gradient(135deg,#0596691a,#10b98126);border:1px solid #05966933}.badge-warning{background:linear-gradient(135deg,#f59e0b1a,#fbbf2426);border:1px solid #f59e0b33;color:#d97706}.badge-error{background:linear-gradient(135deg,#ef44441a,#f8717126);border:1px solid #ef444433;color:#dc2626}.badge-info{background:linear-gradient(135deg,#0ea5e91a,#38bdf826);border:1px solid #0ea5e933;color:#0284c7}.badge-primary{background:linear-gradient(135deg,#5d1a1a1a,#8b454526);border:1px solid #5d1a1a33;color:var(--primary)}.badge-default{background:linear-gradient(135deg,#64748b1a,#94a3b826);border:1px solid #64748b33;color:#475569}.badge-teacher{background:linear-gradient(135deg,#0ea5e91a,#38bdf826);border:1px solid #0ea5e933;color:#0284c7}.badge-department_head{background:linear-gradient(135deg,#f59e0b1a,#fbbf2426);border:1px solid #f59e0b33;color:#d97706}.badge-admin{background:linear-gradient(135deg,#5d1a1a1a,#8b454526);border:1px solid #5d1a1a33;color:var(--primary)}.pagination{background:linear-gradient(180deg,#f8fafc00,#f8fafc);border-top:1px solid #0000000d;justify-content:space-between;padding:1.25rem 1.5rem}.pagination,.pagination-header{align-items:center;display:flex}.pagination-header{gap:.75rem}.pagination-header .btn-icon{align-items:center;background:#fff;border:1px solid var(--gray-200);border-radius:8px;color:var(--gray-600);cursor:pointer;display:flex;height:32px;justify-content:center;transition:all .2s ease;width:32px}.pagination-header .btn-icon:hover:not(:disabled){background:var(--primary);border-color:var(--primary);color:#fff}.pagination-header .btn-icon:disabled{cursor:not-allowed;opacity:.4}.pagination-footer{align-items:center;background:#f8fafc80;border-top:1px solid #0000000d;display:flex;justify-content:space-between;padding:1rem 1.5rem}.pagination-info,.pagination-pages{color:var(--gray-500);font-size:.875rem;font-weight:500}.pagination-buttons{align-items:center;display:flex;gap:1rem}.pagination-buttons button{align-items:center;background:#fff;border:2px solid var(--gray-200);border-radius:12px;color:var(--gray-600);cursor:pointer;display:flex;height:40px;justify-content:center;transition:all .3s ease;width:40px}.pagination-buttons button:hover:not(:disabled){background:var(--primary);border-color:var(--primary);box-shadow:0 4px 12px #5d1a1a33;color:#fff;transform:translateY(-2px)}.pagination-buttons button:disabled{cursor:not-allowed;opacity:.4}.pagination-buttons span{color:var(--gray-700);font-size:.9375rem;font-weight:600}.modal-overlay{align-items:center;animation:modalFadeIn .3s ease;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#0009;bottom:0;display:flex;justify-content:center;left:0;position:fixed;right:0;top:0;z-index:100}@keyframes modalFadeIn{0%{opacity:0}to{opacity:1}}.modal{animation:modalSlideUp .4s cubic-bezier(.16,1,.3,1);background:#fff;border-radius:24px;box-shadow:0 25px 80px #00000040,0 0 0 1px #ffffff1a;max-height:90vh;max-width:750px;overflow-y:auto;width:90%}.modal.modal-small{max-width:500px}.modal.modal-sm{max-width:450px}@keyframes modalSlideUp{0%{opacity:0;transform:translateY(40px) scale(.95)}to{opacity:1;transform:translateY(0) scale(1)}}.modal-header{align-items:center;background:#fff;border-bottom:1px solid #0000000d;display:flex;justify-content:space-between;padding:1.5rem 2rem;position:-webkit-sticky;position:sticky;top:0;z-index:1}.modal-header h2{color:var(--gray-800);font-size:1.375rem;font-weight:700;letter-spacing:-.025em}.modal-header .close-btn{align-items:center;background:var(--gray-100);border:none;border-radius:12px;color:var(--gray-500);cursor:pointer;display:flex;height:40px;justify-content:center;transition:all .3s ease;width:40px}.modal-header .close-btn:hover{background:var(--error);color:#fff;transform:rotate(90deg)}.modal-error{align-items:center;background:linear-gradient(90deg,#ef44441a,#ef44440d);border-left:4px solid #dc2626;color:#dc2626;display:flex;font-size:.9375rem;font-weight:500;gap:.75rem;padding:1rem 2rem}.modal-form{padding:2rem}.form-grid{grid-gap:1.25rem;display:grid;gap:1.25rem;grid-template-columns:repeat(2,1fr)}.form-group{display:flex;flex-direction:column;gap:.5rem}.form-group.full-width{grid-column:span 2}.form-section-divider{align-items:center;display:flex;gap:1rem;grid-column:span 2;margin:1rem 0 .5rem}.form-section-divider:after,.form-section-divider:before{background:linear-gradient(90deg,#0000,var(--gray-300),#0000);content:"";flex:1 1;height:1px}.form-section-divider span{color:var(--maroon);font-size:.8rem;font-weight:600;letter-spacing:.5px;text-transform:uppercase;white-space:nowrap}.form-group label{color:var(--gray-700);font-size:.875rem;font-weight:600}.form-group input,.form-group select{background:#fff;border:2px solid var(--gray-200);border-radius:12px;font-size:.9375rem;padding:.875rem 1rem;transition:all .3s ease}.form-group input:focus,.form-group select:focus{border-color:var(--primary);box-shadow:0 0 0 4px #5d1a1a1a;outline:none}.password-input-wrapper{align-items:center;display:flex;position:relative}.password-input-wrapper input{padding-right:3rem;width:100%}.password-toggle-btn{align-items:center;background:none;border:none;color:var(--gray-500);cursor:pointer;display:flex;justify-content:center;padding:.5rem;position:absolute;right:.75rem;transition:color .2s ease}.password-toggle-btn:hover{color:var(--primary)}.password-toggle-btn svg{height:20px;width:20px}.form-group input:disabled,.form-group input:read-only{background:var(--gray-50);border-style:dashed;color:var(--gray-500);cursor:not-allowed}.form-group .field-hint{color:var(--gray-400);font-size:.75rem;font-style:italic}.profile-image-section{align-items:center;background:linear-gradient(135deg,#5d1a1a05,#5d1a1a0d);border:2px dashed #5d1a1a33;border-radius:16px;display:flex;gap:2rem;margin-bottom:2rem;padding:1.5rem}.profile-image-preview{background:#fff;border:3px solid #fff;border-radius:20px;box-shadow:0 8px 25px #0000001a;flex-shrink:0;height:130px;overflow:hidden;width:130px}.profile-image-preview img{height:100%;object-fit:cover;width:100%}.profile-image-preview .no-image{align-items:center;background:var(--gray-50);color:var(--gray-400);display:flex;flex-direction:column;gap:.5rem;height:100%;justify-content:center;width:100%}.profile-image-preview .no-image svg{font-size:2.5rem}.profile-image-preview .no-image span{font-size:.75rem;font-weight:500}.profile-image-actions{display:flex;flex-direction:column;gap:.75rem}.btn-remove-image{align-items:center;background:#ef44441a;border:none;border-radius:10px;color:#dc2626;cursor:pointer;display:inline-flex;font-size:.875rem;font-weight:600;gap:.5rem;padding:.625rem 1rem;transition:all .3s ease}.btn-remove-image:hover{background:#dc2626;color:#fff}.image-hint{color:var(--gray-400);font-size:.75rem}.photo-thumbnail{border:2px solid #fff;border-radius:14px;box-shadow:0 4px 12px #0000001a;height:50px;margin:0 auto;overflow:hidden;width:50px}.photo-thumbnail img{height:100%;object-fit:cover;width:100%}.no-photo-thumb{align-items:center;background:linear-gradient(135deg,var(--gray-100),var(--gray-200));color:var(--gray-400);display:flex;font-size:1.25rem;height:100%;justify-content:center;width:100%}.photo-cell{text-align:center;width:70px}.photo-cell .table-profile-img{display:block;object-fit:cover}.photo-cell .no-photo,.photo-cell .table-profile-img{border:2px solid #fff;border-radius:14px;box-shadow:0 4px 12px #0000001a;height:50px;margin:0 auto;width:50px}.photo-cell .no-photo{align-items:center;background:linear-gradient(135deg,var(--gray-100),var(--gray-200));color:var(--gray-400);display:flex;font-size:1.25rem;justify-content:center}.photo-column{text-align:center;width:70px}.modal-actions{border-top:2px solid var(--gray-100);display:flex;gap:1rem;justify-content:flex-end;margin-top:2rem;padding-top:1.5rem}.reset-password-content{padding:1rem 0}.reset-password-info{background:linear-gradient(135deg,#6366f11a,#8b5cf61a);border-left:4px solid var(--primary);border-radius:12px;margin-bottom:1.5rem;padding:1rem 1.25rem}.reset-password-info strong{color:var(--gray-800)}.reset-password-email{color:var(--gray-500);font-size:.875rem}.dark-mode .reset-password-info{background:linear-gradient(135deg,#6366f126,#8b5cf626)}.dark-mode .reset-password-info strong{color:#f3f4f6}.dark-mode .reset-password-email{color:#9ca3af}.text-center,.text-muted{text-align:center}.text-muted{color:#ffffffb3;font-size:1.125rem;padding:3rem}.mobile-menu-toggle{align-items:center;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#fffffff2;border:none;border-radius:14px;box-shadow:0 8px 25px #00000026;color:var(--gray-700);cursor:pointer;display:none;font-size:1.25rem;height:50px;justify-content:center;left:1.25rem;position:fixed;top:1.25rem;transition:all .3s ease;width:50px;z-index:60}.mobile-menu-toggle:hover{transform:scale(1.05)}.mobile-menu-overlay{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#0009;bottom:0;display:none;left:0;position:fixed;right:0;top:0;z-index:40}.grades-content{animation:fadeIn .3s ease}.grades-filters{background:#fffffff2;border-radius:var(--radius-lg);box-shadow:var(--shadow-md);display:flex;flex-wrap:wrap;gap:1rem;margin-bottom:1.5rem;padding:1.25rem}.grades-filters .filter-group{align-items:center;display:flex;flex-shrink:0;gap:.75rem}.grades-filters .filter-group label{color:var(--gray-700);font-weight:600;min-width:110px;white-space:nowrap}.grades-filters .filter-select{background:#fff;border:2px solid var(--gray-200);border-radius:var(--radius);color:var(--gray-700);cursor:pointer;font-size:.875rem;max-width:220px;min-width:140px;overflow:hidden;padding:.5rem .75rem;text-overflow:ellipsis;transition:all .2s ease;white-space:nowrap}.grades-filters .filter-select:focus{border-color:var(--primary);box-shadow:0 0 0 3px #5d1a1a1a;outline:none}.grades-layout{grid-gap:1.5rem;display:grid;gap:1.5rem;grid-template-columns:320px 1fr;margin-bottom:2rem}.grades-student-panel{background:#fffffff2;border-radius:var(--radius-lg);box-shadow:var(--shadow-md);display:flex;flex-direction:column;max-height:calc(100vh - 280px);overflow:hidden}.grades-student-panel .panel-header{background:linear-gradient(180deg,#fff 0,var(--gray-50) 100%);border-bottom:1px solid var(--gray-100);padding:1.25rem}.grades-student-panel .panel-header h3{align-items:center;color:var(--gray-800);display:flex;font-size:1rem;gap:.5rem;margin-bottom:.75rem}.grades-student-panel .search-box{align-items:center;background:#fff;border:1px solid var(--gray-200);border-radius:var(--radius);display:flex;gap:.5rem;padding:.5rem .75rem}.grades-student-panel .search-box input{border:none;color:var(--gray-700);flex:1 1;font-size:.875rem;outline:none}.grades-student-panel .search-box svg{color:var(--gray-400)}.student-list-grades{flex:1 1;overflow-y:auto;padding:.5rem}.student-list-item{align-items:center;border-radius:var(--radius);cursor:pointer;display:flex;gap:.75rem;margin-bottom:.25rem;padding:.75rem;transition:all .2s ease}.student-list-item:hover{background:var(--gray-50)}.student-list-item.selected{background:linear-gradient(135deg,var(--primary) 0,var(--primary-dark) 100%);color:#fff}.student-list-item.selected .student-id{color:#fffc}.student-avatar-small{align-items:center;background:linear-gradient(135deg,var(--gray-200) 0,var(--gray-300) 100%);border-radius:50%;color:var(--gray-600);display:flex;flex-shrink:0;font-size:.75rem;font-weight:600;height:40px;justify-content:center;overflow:hidden;width:40px}.student-avatar-small img{height:100%;object-fit:cover;width:100%}.student-list-item.selected .student-avatar-small{background:#fff3;color:#fff}.student-info-compact{display:flex;flex-direction:column;overflow:hidden}.student-info-compact .student-name{font-size:.875rem;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.student-info-compact .student-id{color:var(--gray-500);font-size:.75rem}.grades-main-panel{background:#fffffff2;border-radius:var(--radius-lg);box-shadow:var(--shadow-md);min-height:400px;padding:1.5rem}.grades-panel-header{align-items:center;border-bottom:1px solid var(--gray-100);display:flex;justify-content:space-between;margin-bottom:1.5rem;padding-bottom:1rem}.selected-student-info{align-items:center;display:flex;gap:1rem}.student-avatar-large{align-items:center;background:linear-gradient(135deg,var(--primary) 0,var(--primary-dark) 100%);border-radius:50%;box-shadow:0 4px 15px #5d1a1a4d;color:#fff;display:flex;font-size:1.25rem;font-weight:700;height:60px;justify-content:center;overflow:hidden;width:60px}.student-avatar-large img{height:100%;object-fit:cover;width:100%}.selected-student-info h2{color:var(--gray-800);font-size:1.375rem;margin:0}.selected-student-info p{color:var(--gray-500);font-size:.875rem;margin:.25rem 0 0}.gwa-card{background:linear-gradient(135deg,#f8f9fa,#e9ecef);border:1px solid var(--gray-200);border-radius:var(--radius-lg);justify-content:space-between;margin-bottom:1.5rem;padding:1.25rem 1.5rem}.gwa-card,.gwa-info{align-items:center;display:flex}.gwa-info{gap:1rem}.gwa-icon{color:var(--primary);font-size:2rem}.gwa-label{color:var(--gray-500);display:block;font-size:.75rem;font-weight:500;letter-spacing:.05em;text-transform:uppercase}.gwa-value{display:block;font-size:2rem;font-weight:800;line-height:1.2}.gwa-stats{display:flex;gap:2rem}.gwa-stat{text-align:center}.gwa-stat .stat-value{color:var(--gray-800);display:block;font-size:1.5rem;font-weight:700}.gwa-stat .stat-label{color:var(--gray-500);display:block;font-size:.75rem;font-weight:500}.subject-navigation{background:linear-gradient(135deg,#8b45451a,#5d1a1a1a);border:1px solid #8b454533;border-radius:12px;gap:1rem;margin-bottom:1rem;padding:1rem}.nav-arrow,.subject-navigation{align-items:center;display:flex;justify-content:center}.nav-arrow{background:linear-gradient(135deg,var(--primary-red),var(--primary-dark));border:none;border-radius:50%;box-shadow:0 4px 15px #8b45454d;color:#fff;cursor:pointer;height:40px;transition:all .3s ease;width:40px}.nav-arrow:hover:not(:disabled){box-shadow:0 6px 20px #8b454566;transform:scale(1.1)}.nav-arrow:disabled{background:var(--gray-400);box-shadow:none;cursor:not-allowed;opacity:.4}.nav-arrow svg{font-size:1.2rem}.subject-nav-info{align-items:center;display:flex;flex-direction:column;gap:.25rem;min-width:200px}.subject-counter{color:var(--gray-500);font-size:.85rem;font-weight:500}.current-subject-name{color:var(--gray-100);font-size:1.1rem;font-weight:600;text-align:center}.admin-dashboard.light-mode .subject-navigation{background:linear-gradient(135deg,#8b45450d,#5d1a1a0d);border-color:#8b454526}.admin-dashboard.light-mode .subject-counter{color:var(--gray-600)}.admin-dashboard.light-mode .current-subject-name{color:var(--gray-800)}.dark-mode .subject-navigation{background:#1a1a2ef2;border:1px solid #ffffff26}.dark-mode .subject-counter{color:#9ca3af}.dark-mode .current-subject-name{color:#f3f4f6}.dark-mode .nav-arrow{background:linear-gradient(135deg,var(--primary-red),var(--primary-dark));box-shadow:0 4px 15px #8b454566}.dark-mode .nav-arrow:disabled{background:#fff3;color:#fff6}.grades-table{table-layout:fixed;width:100%}.grades-table td:first-child,.grades-table th:first-child{width:15%}.grades-table td:nth-child(2),.grades-table th:nth-child(2){width:35%}.grades-table td:nth-child(3),.grades-table td:nth-child(4),.grades-table th:nth-child(3),.grades-table th:nth-child(4){text-align:center;width:10%}.grades-table td:nth-child(5),.grades-table td:nth-child(6),.grades-table th:nth-child(5),.grades-table th:nth-child(6){text-align:center;width:15%}.grades-table .grade-value{font-size:1rem;font-weight:700}.grades-table .text-center{text-align:center}.grades-table .action-buttons{display:flex;gap:.5rem;justify-content:center}.badge-passed{background:#22c55e26;color:#16a34a}.badge-failed{background:#ef444426;color:#dc2626}.badge-conditional{background:#f9731626;color:#ea580c}.badge-incomplete{background:#6b728026;color:#4b5563}.badge-not-graded{background:#9ca3af26;color:#6b7280}.badge-info{background:#3b82f626;color:#2563eb}.badge-secondary{background:#6b728026;color:#4b5563}.subjects-section{background:#fffffff2;border-radius:var(--radius-lg);box-shadow:var(--shadow-md);padding:1.5rem}.subjects-section .section-header{margin-bottom:1rem}.subjects-section .section-header h3{align-items:center;color:var(--gray-800);display:flex;font-size:1.125rem;gap:.5rem}.subjects-grid{grid-gap:1rem;display:grid;gap:1rem;grid-template-columns:repeat(auto-fill,minmax(280px,1fr))}.subject-card{align-items:center;background:var(--gray-50);border:1px solid var(--gray-100);border-radius:var(--radius);display:flex;justify-content:space-between;padding:1rem 1.25rem;transition:all .2s ease}.subject-card:hover{background:#fff;border-color:var(--primary-light);box-shadow:0 4px 12px #0000000d}.subject-info{display:flex;flex-direction:column;gap:.25rem}.subject-code{color:var(--primary);font-size:.9375rem;font-weight:700}.subject-title{color:var(--gray-700);font-size:.875rem}.subject-units{color:var(--gray-500);font-size:.75rem}.subject-year{background:var(--primary);border-radius:4px;color:#fff;display:inline-block;font-size:.7rem;margin-top:.25rem;padding:.2rem .5rem;width:-webkit-fit-content;width:fit-content}.subject-instructor{color:var(--gray-600);font-size:.75rem;font-style:italic;margin-top:.25rem}.subject-prereq{background:#5d1a1a14;border-radius:4px;color:var(--primary);font-size:.7rem;margin-top:.25rem;padding:.25rem .5rem}.subject-actions{display:flex;gap:.5rem}.grade-modal,.subject-modal{max-width:750px}.grade-modal .form-grid,.subject-modal .form-grid{grid-gap:1rem;display:grid;gap:1rem;grid-template-columns:repeat(2,1fr)}.grade-modal .form-group.full-width,.subject-modal .form-group.full-width{grid-column:span 2}.empty-state.small{padding:2rem}.empty-state.small p{color:var(--gray-500);margin:0}.card-header{margin-bottom:1rem}.card-header h2{align-items:center;color:#fff;display:flex;font-size:1.25rem;gap:.5rem;margin-bottom:.25rem}.card-header p{color:#fff;font-size:.875rem;margin:0}.enrollments-content{padding:1.5rem}.enrollments-content .page-header{margin-bottom:1.5rem}.enrollments-content .page-header h1{color:#fff;font-size:1.75rem;margin-bottom:.25rem}.enrollments-content .subtitle{color:#6b7280;font-size:.9rem}.enrollments-filters{align-items:flex-end;display:flex;flex-wrap:wrap;gap:1rem;margin-bottom:1.5rem}.enrollments-filters .filter-group{display:flex;flex-direction:column;gap:.25rem}.enrollments-filters .filter-group label{color:#6b7280;font-size:.8rem;font-weight:500}.enrollment-modal{display:flex;flex-direction:column;max-height:80vh;max-width:650px}.enrollment-info{background:linear-gradient(135deg,#5d1a1a14,#8b45450d);border:1px solid #5d1a1a1a;border-radius:8px;margin-bottom:1rem;padding:1rem}.enrollment-info .info-row{color:#1a1a2e;font-size:.9rem;margin-bottom:.5rem}.enrollment-info .info-row:last-child{margin-bottom:0}.enrollment-info .info-row strong{color:#5d1a1a}.enrollment-students-list{background:#ffffff80;border:1px solid #e5e7ebcc;border-radius:8px;display:flex;flex:1 1;flex-direction:column;overflow:hidden}.enrollment-students-list .list-header{align-items:center;background:#f9fafbcc;border-bottom:1px solid #e5e7ebcc;display:flex;justify-content:space-between;padding:.75rem 1rem}.enrollment-students-list .list-header h3{color:#1a1a2e;font-size:.95rem;margin:0}.btn-sm{font-size:.8rem;padding:.35rem .75rem}.students-checkbox-list{flex:1 1;max-height:300px;overflow-y:auto;padding:.5rem}.student-checkbox-item{align-items:center;border:1px solid #0000;border-radius:6px;cursor:pointer;display:flex;gap:.75rem;margin-bottom:.25rem;padding:.65rem .75rem;transition:all .2s ease}.student-checkbox-item:hover{background:#5d1a1a0d}.student-checkbox-item.selected{background:#10b9811a;border-color:#10b9814d}.student-checkbox-item.enrolled{background:#9ca3af26;cursor:not-allowed;opacity:.7}.student-checkbox-item input[type=checkbox]{accent-color:#5d1a1a;cursor:pointer;height:18px;width:18px}.student-checkbox-item .student-info{display:flex;flex:1 1;flex-direction:column;gap:.1rem}.student-checkbox-item .student-id{color:#5d1a1a;font-size:.85rem;font-weight:600}.student-checkbox-item .student-name{color:#6b7280;font-size:.8rem}.student-checkbox-item .student-section{background:#6b72801a;border-radius:3px;color:#9ca3af;font-size:.75rem;padding:.1rem .35rem}.student-checkbox-item .enrolled-badge{background:#eab30833;border-radius:4px;color:#a16207;font-size:.7rem;margin-left:auto;padding:.15rem .4rem}.empty-state-small{color:#6b7280;padding:2rem;text-align:center}.selected-count{background:#f9fafbcc;border-top:1px solid #e5e7ebcc;color:#6b7280;font-size:.85rem;padding:.75rem 1rem}.badge-success{background:#10b98126;border:1px solid #10b98133;color:#059669}.enrollment-indicator{background:#10b98126;border-radius:4px;color:#059669;font-size:.7rem;font-weight:400;margin-left:.5rem;padding:.1rem .4rem}.readonly-input{background:#f9fafbcc!important;cursor:not-allowed}@media (max-width:1024px){.dashboard-grid{grid-template-columns:1fr}.dashboard-card.full-width{grid-column:span 1}.stats-cards{grid-template-columns:repeat(2,1fr)}.admin-sidebar{width:260px}}@media (max-width:768px){.mobile-menu-toggle{display:flex}.mobile-menu-overlay.open{animation:modalFadeIn .3s ease;display:block}.admin-sidebar{height:100vh;left:-280px;position:fixed;transition:left .4s cubic-bezier(.16,1,.3,1);width:280px;z-index:50}.admin-sidebar.open{left:0}.admin-main{padding:5rem 1.25rem 1.25rem}.page-header{align-items:flex-start;flex-direction:column;gap:1rem}.page-header h1{font-size:1.5rem}.filters-bar{align-items:stretch;flex-direction:column}.search-box{max-width:none}.form-grid,.stats-cards{grid-template-columns:1fr}.form-group.full-width,.form-section-divider{grid-column:span 1}.modal{border-radius:20px;max-height:85vh;width:95%}.pagination{gap:1rem}.pagination,.profile-image-section{flex-direction:column;text-align:center}.grades-layout{grid-template-columns:1fr}.grades-student-panel{max-height:300px}.grades-filters{flex-wrap:wrap}.gwa-card{gap:1rem;text-align:center}.enrollments-filters,.gwa-card,.gwa-info{flex-direction:column}.enrollments-filters{align-items:stretch}.enrollments-filters .filter-group,.enrollments-filters .filter-group select{width:100%}}@media (max-width:480px){.admin-main{padding:4.5rem 1rem 1rem}.page-header h1{font-size:1.25rem}.btn-primary,.btn-secondary{font-size:.875rem;padding:.75rem 1rem}.grades-filters .filter-group{align-items:flex-start;flex-direction:column;width:100%}.grades-filters .filter-select{max-width:100%;width:100%}.stat-card{padding:1.25rem}.stat-card .stat-value{font-size:1.75rem}.stat-card .stat-icon{font-size:1.5rem;height:48px;width:48px}.data-table-container{-webkit-overflow-scrolling:touch;background:linear-gradient(90deg,#fffffff2 30%,#0000),linear-gradient(270deg,#fffffff2 30%,#0000),linear-gradient(90deg,#00000014,#0000 15px),linear-gradient(270deg,#00000014,#0000 15px);background-attachment:local,local,scroll,scroll;background-position:0,100%,0,100%;background-repeat:no-repeat;background-size:20px 100%,20px 100%,15px 100%,15px 100%;border-radius:16px;overflow-x:auto}.data-table{min-width:650px}.modal{border-radius:0;max-height:100vh;max-width:100%;width:100%}.modal-form,.modal-header{padding:1.25rem}.modal-actions{flex-direction:column}.modal-actions button{width:100%}.dashboard-card{border-radius:16px;padding:1.25rem}}@media (max-width:360px){.admin-main{padding:4rem .75rem .75rem}.page-header h1{font-size:1.125rem}.stat-card .stat-value{font-size:1.5rem}}@media (hover:none) and (pointer:coarse){.btn-icon,.btn-primary,.btn-secondary{min-height:48px}.nav-item{min-height:52px}.form-group input,.form-group select{font-size:16px;min-height:48px}.pagination-buttons button{min-height:48px;min-width:48px}}.image-preview-modal{align-items:center;animation:fadeIn .2s ease;background:#000000f2;bottom:0;cursor:zoom-out;display:flex;justify-content:center;left:0;position:fixed;right:0;top:0;z-index:10000}.image-preview-content{align-items:center;cursor:default;display:flex;flex-direction:column;gap:1rem;max-height:90vh;max-width:90vw;position:relative}.image-preview-content img{animation:zoomIn .3s ease;border-radius:8px;box-shadow:0 25px 100px #00000080;max-height:85vh;max-width:100%;object-fit:contain}.close-preview{align-items:center;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#ffffff1a;border:2px solid #ffffff4d;border-radius:50%;color:#fff;cursor:pointer;display:flex;font-size:1.5rem;height:40px;justify-content:center;position:absolute;right:0;top:-50px;transition:all .2s ease;width:40px}.close-preview:hover{background:#fff3;border-color:#ffffff80;transform:scale(1.1)}.image-preview-name{color:#fff;font-size:1.125rem;font-weight:600;margin:0;text-align:center;text-shadow:0 2px 10px #00000080}@keyframes zoomIn{0%{opacity:0;transform:scale(.8)}to{opacity:1;transform:scale(1)}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.nav-item.theme-toggle{background:linear-gradient(135deg,#fbbf241a,#f59e0b1a);border:1px dashed #fbbf244d;margin-top:auto}.nav-item.theme-toggle:hover{border-color:#fbbf2480}.dark-mode .nav-item.theme-toggle,.nav-item.theme-toggle:hover{background:linear-gradient(135deg,#fbbf2433,#f59e0b33)}.dark-mode .admin-sidebar{background:#1a1a2efa}.dark-mode .sidebar-header{background:linear-gradient(180deg,#1a1a2e,#16213e);border-bottom-color:#ffffff1a}.dark-mode .logo-subtitle,.dark-mode .logo-title{color:#e5e7eb}.dark-mode .nav-item{color:#d1d5db}.dark-mode .nav-item:hover{background:#9d3a3a33}.dark-mode .nav-item.active{background:linear-gradient(90deg,#9d3a3a4d,#0000);color:#f3f4f6}.dark-mode .user-info{background:#ffffff0d}.dark-mode .user-name{color:#f3f4f6}.dark-mode .user-role{color:#9ca3af}.dark-mode .change-password-btn{background:#ffffff1a;border-color:#fff3;color:#e5e7eb}.dark-mode .change-password-btn:hover{background:linear-gradient(135deg,#6366f1,#8b5cf6);border-color:#0000;color:#fff}.dark-mode .admin-main{background:#0000}.dark-mode .page-header h1{color:#f3f4f6}.dark-mode .dashboard-card,.dark-mode .grades-content,.dark-mode .logs-content,.dark-mode .stat-card,.dark-mode .students-content,.dark-mode .subjects-content,.dark-mode .teachers-content{background:#1a1a2ee6;border-color:#ffffff1a}.dark-mode .grades-filters{background:#1a1a2ee6;border:1px solid #ffffff1a}.dark-mode .grades-filters .filter-group label{color:#d1d5db}.dark-mode .grades-filters .filter-select{background:#ffffff1a;border-color:#fff3;color:#e5e7eb}.dark-mode .grades-student-panel{background:#1a1a2ef2;border:1px solid #ffffff1a}.dark-mode .grades-student-panel .panel-header{background:#0003;border-bottom-color:#ffffff1a}.dark-mode .grades-student-panel .panel-header h3{color:#e5e7eb}.dark-mode .grades-student-panel .search-box{background:#ffffff1a;border-color:#fff3}.dark-mode .grades-student-panel .search-box input{background:#0000;color:#e5e7eb}.dark-mode .grades-student-panel .search-box input::placeholder{color:#6b7280}.dark-mode .student-list-item{color:#e5e7eb}.dark-mode .student-list-item:hover{background:#ffffff1a}.dark-mode .student-info-compact .student-id{color:#9ca3af}.dark-mode .grades-main-panel{background:#1a1a2ef2;border:1px solid #ffffff1a}.dark-mode .grades-panel-header{border-bottom-color:#ffffff1a}.dark-mode .selected-student-info h2{color:#f3f4f6}.dark-mode .selected-student-info p{color:#9ca3af}.dark-mode .gwa-card{background:#0000004d;border-color:#ffffff1a}.dark-mode .gwa-stat .stat-label{color:#9ca3af}.dark-mode .data-table-container{background:#1a1a2ef2}.dark-mode .subjects-filters{background:#1a1a2ee6;border:1px solid #ffffff1a}.dark-mode .subjects-filters .filter-group label{color:#d1d5db}.dark-mode .subjects-filters .filter-select{background:#ffffff1a;border-color:#fff3;color:#e5e7eb}.dark-mode .logs-filters{background:#1a1a2ee6;border:1px solid #ffffff1a}.dark-mode .logs-filters .filter-group label{color:#d1d5db}.dark-mode .logs-filters .filter-input,.dark-mode .logs-filters .filter-select{background:#ffffff1a;border-color:#fff3;color:#e5e7eb}.dark-mode .data-table th{background:#ffffff0d;color:#d1d5db}.dark-mode .data-table tr:hover{background:#ffffff0d}.dark-mode .filters-bar select,.dark-mode .search-box input{background:#ffffff1a;border-color:#fff3;color:#e5e7eb}.dark-mode .search-box input::placeholder{color:#6b7280}.dark-mode .modal-content{background:#1a1a2e;border-color:#ffffff1a}.dark-mode .form-group label{color:#d1d5db}.dark-mode .form-group input,.dark-mode .form-group select,.dark-mode .form-group textarea{background:#ffffff0d;border-color:#ffffff26;color:#e5e7eb}.dark-mode .form-group input:focus,.dark-mode .form-group select:focus,.dark-mode .form-group textarea:focus{background:#ffffff14;border-color:var(--primary-light)}.dark-mode .dashboard-card h3{border-bottom-color:#ffffff1a;color:#e5e7eb}.dark-mode .bar-label,.dark-mode .bar-value{color:#d1d5db}.dark-mode .bar-container{background:#ffffff1a}.dark-mode .status-count{color:#e5e7eb}.dark-mode .pagination-header .btn-icon{background:#ffffff1a;border-color:#fff3;color:#e5e7eb}.dark-mode .pagination-header .btn-icon:hover:not(:disabled){background:var(--primary);border-color:var(--primary);color:#fff}.dark-mode .pagination-footer{background:#0003;border-top-color:#ffffff1a}.dark-mode .pagination-pages{color:#9ca3af}.dark-mode .pagination-buttons button{background:#ffffff1a;border-color:#fff3}.dark-mode .pagination-buttons button:hover:not(:disabled){background:#fff3}.logs-content{animation:fadeIn .3s ease}.loading-state{align-items:center;background:#fffffff2;border-radius:var(--radius-xl);box-shadow:var(--shadow-lg);display:flex;flex-direction:column;justify-content:center;padding:4rem 2rem}.loading-state .spinner{animation:spin .8s linear infinite;border:4px solid var(--gray-200);border-radius:50%;border-top-color:var(--primary);height:48px;margin-bottom:1rem;width:48px}.loading-state p{color:var(--gray-600);font-size:.875rem}.empty-state{align-items:center;display:flex;flex-direction:column;justify-content:center;padding:4rem 2rem;text-align:center}.empty-state .empty-icon{color:var(--gray-300);font-size:4rem;margin-bottom:1.5rem}.empty-state h3{color:var(--gray-700);font-size:1.25rem;margin-bottom:.5rem}.empty-state p{color:var(--gray-500);font-size:.875rem}.log-timestamp{display:flex;flex-direction:column;gap:.125rem}.log-date{color:var(--gray-800);font-weight:500}.log-time{color:var(--gray-500);font-size:.75rem}.log-teacher{display:flex;flex-direction:column;gap:.125rem}.teacher-name{color:var(--gray-800);font-weight:500}.teacher-email{color:var(--gray-500);font-size:.75rem}.unknown-user{color:var(--gray-400);font-style:italic}.log-query{color:var(--gray-700);max-width:250px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.results-count{color:var(--primary);font-weight:600}.response-time{background:#10b9811a;border-radius:var(--radius);color:#059669;font-family:Monaco,Consolas,monospace;font-size:.8125rem;padding:.25rem .5rem}.badge-listAll{background:#3b82f61a;color:#3b82f6}.badge-listByYear{background:#8b5cf61a;color:#8b5cf6}.badge-searchStudent{background:#10b9811a;color:#10b981}.badge-getDetails{background:#f59e0b1a;color:#f59e0b}.badge-countStudents{background:#ec48991a;color:#ec4899}.badge-help{background:#6366f11a;color:#6366f1}.badge-greeting{background:#14b8a61a;color:#14b8a6}.badge-default{background:var(--gray-100);color:var(--gray-600)}.dark-mode .loading-state{background:#1a1a2ef2}.dark-mode .loading-state p{color:#9ca3af}.dark-mode .empty-state .empty-icon{color:#4b5563}.dark-mode .empty-state h3{color:#e5e7eb}.dark-mode .empty-state p{color:#9ca3af}.dark-mode .log-date,.dark-mode .teacher-name{color:#e5e7eb}.dark-mode .log-time,.dark-mode .teacher-email{color:#6b7280}.dark-mode .log-query{color:#d1d5db}.dark-mode .data-table-container{background:#ffffff0d;border:1px solid #ffffff1a;box-shadow:0 10px 40px #0000004d}.dark-mode .dashboard-card{background:#ffffff0d;border:1px solid #ffffff1a;box-shadow:0 10px 40px #0003}.dark-mode .dashboard-card:hover{background:#ffffff14;box-shadow:0 15px 50px #0000004d}.dark-mode .stat-card:not(.primary):not(.secondary):not(.accent){background:#ffffff0d;border:1px solid #ffffff1a}.dark-mode .stat-card:not(.primary):not(.secondary):not(.accent) .stat-value{color:#f3f4f6}.dark-mode .stat-card:not(.primary):not(.secondary):not(.accent) .stat-label{color:#9ca3af}.dark-mode .stat-card:not(.primary):not(.secondary):not(.accent) .stat-icon{background:#ffffff1a;color:#e5e7eb}.dark-mode .search-box{background:#ffffff14;border-color:#ffffff26;box-shadow:0 4px 20px #0003}.dark-mode .search-box:focus-within{border-color:var(--primary-light);box-shadow:0 4px 20px #8b454533}.dark-mode .search-box svg{color:#6b7280}.dark-mode .filters-bar select{background:#ffffff14;border-color:#ffffff26;box-shadow:0 4px 20px #0003}.dark-mode .filters-bar select:focus,.dark-mode .filters-bar select:hover{border-color:var(--primary-light)}.dark-mode .data-table th{background:#ffffff14;border-bottom-color:#ffffff1a;color:#9ca3af}.dark-mode .data-table td{border-bottom-color:#ffffff0d;color:#e5e7eb}.dark-mode .data-table tbody tr:hover{background:#ffffff0d}.dark-mode .id-cell,.dark-mode .schedule-day{background:#8b454533;color:#f8a5a5}.dark-mode .schedule-time{color:#9ca3af}.dark-mode .room-badge{background:#8b454533;color:#f8a5a5}.dark-mode .class-number-badge{background:linear-gradient(135deg,#8b454540,#ffffff0d);border-color:#8b45454d;color:#f8a5a5}.dark-mode .section-badge{background:linear-gradient(135deg,#10b98140,#ffffff0d);border-color:#10b9814d;color:#6ee7b7}.dark-mode .section-count-badge{background:#ffffff1a;color:#9ca3af}.dark-mode .group-header-row{background:#ffffff0d;border-top:3px solid var(--primary)}.dark-mode .grouped-row{background:#ffffff05;border-top:2px dashed #0ea5e980}.dark-mode .data-table tbody tr.group-header-row:not(:first-child){border-top:4px solid var(--primary)}.dark-mode .card-header h2{color:#f3f4f6}.dark-mode .card-header p{color:#9ca3af}.dark-mode .enrollments-content .page-header h1{color:#f3f4f6}.dark-mode .enrollments-content .subtitle{color:#9ca3af}.dark-mode .enrollment-info{background:linear-gradient(135deg,#8b454526,#ffffff0d);border-color:#8b454533}.dark-mode .enrollment-info .info-row{color:#e5e7eb}.dark-mode .enrollment-info .info-row strong{color:#f8a5a5}.dark-mode .enrollment-students-list{background:#ffffff0d;border-color:#ffffff1a}.dark-mode .enrollment-students-list .list-header{background:#ffffff14;border-bottom-color:#ffffff1a}.dark-mode .enrollment-students-list .list-header h3{color:#f3f4f6}.dark-mode .student-checkbox-item{color:#e5e7eb}.dark-mode .student-checkbox-item:hover{background:#ffffff0d}.dark-mode .student-checkbox-item.selected{background:#10b98126;border-color:#10b9814d}.dark-mode .student-checkbox-item.enrolled{background:#ffffff0d}.dark-mode .student-checkbox-item .student-id{color:#f8a5a5}.dark-mode .student-checkbox-item .student-name{color:#9ca3af}.dark-mode .student-checkbox-item .student-section{background:#ffffff1a;color:#9ca3af}.dark-mode .student-checkbox-item .enrolled-badge{background:#eab30833;color:#fbbf24}.dark-mode .empty-state-small{color:#9ca3af}.dark-mode .selected-count{background:#ffffff14;border-top-color:#ffffff1a;color:#9ca3af}.dark-mode .badge-success{border-color:#10b9814d}.dark-mode .badge-success,.dark-mode .enrollment-indicator{background:#10b98133;color:#6ee7b7}.dark-mode .enrollment-warning{background:#ef444426!important;border-color:#ef44444d!important;color:#fca5a5!important}.dark-mode .readonly-input{background:#ffffff0d!important}.dark-mode .name-cell .name{color:#f3f4f6}.dark-mode .name-cell .middle-name{color:#6b7280}.dark-mode .pagination{background:linear-gradient(180deg,#1a1a2e00,#1a1a2ecc);border-top-color:#ffffff0d}.dark-mode .pagination-info{color:#9ca3af}.dark-mode .pagination-buttons button{background:#ffffff14;border-color:#ffffff26;color:#e5e7eb}.dark-mode .pagination-buttons button:hover:not(:disabled){background:var(--primary);border-color:var(--primary);color:#fff}.dark-mode .pagination-buttons span{color:#e5e7eb}.dark-mode .btn-refresh{background:#ffffff1a;border-color:#fff3;color:#e5e7eb}.dark-mode .btn-refresh:hover{background:#ffffff26}.dark-mode .btn-secondary{background:#ffffff14;border-color:#ffffff26;color:#e5e7eb}.dark-mode .btn-secondary:hover{background:#ffffff1f;border-color:#ffffff40}.dark-mode .btn-icon.edit{background:#0ea5e926}.dark-mode .btn-icon.duplicate{background:#22c55e26}.dark-mode .btn-icon.qr{background:#8b5cf626}.dark-mode .btn-icon.reset-password{background:#f59e0b26}.dark-mode .btn-icon.delete{background:#ef444426}.dark-mode .badge-success{background:#05966933;border-color:#0596694d}.dark-mode .badge-warning{background:#f59e0b33;border-color:#f59e0b4d}.dark-mode .badge-error{background:#ef444433;border-color:#ef44444d}.dark-mode .badge-info{background:#0ea5e933;border-color:#0ea5e94d}.dark-mode .badge-primary{background:#8b454533;border-color:#8b45454d;color:#f8a5a5}.dark-mode .badge-default{background:#64748b33;border-color:#64748b4d;color:#94a3b8}.dark-mode .bar-container{background:#ffffff14}.dark-mode .bar-label{color:#9ca3af}.dark-mode .bar-value{color:#f3f4f6}.dark-mode .status-item{background:linear-gradient(90deg,#8b45451a,#0000);border-left-color:#b06565}.dark-mode .status-item:hover{background:linear-gradient(90deg,#8b454526,#8b45450d)}.dark-mode .status-count{color:#f3f4f6}.dark-mode .photo-thumbnail{border-color:#ffffff1a}.dark-mode .no-photo-thumb,.dark-mode .photo-cell .no-photo{background:linear-gradient(135deg,#ffffff0d,#ffffff1a);color:#6b7280}.dark-mode .modal{background:#1a1a2e;border:1px solid #ffffff1a}.dark-mode .modal-header{background:#1a1a2e;border-bottom-color:#ffffff1a}.dark-mode .modal-header h2{color:#f3f4f6}.dark-mode .modal-header .close-btn{background:#ffffff14;color:#9ca3af}.dark-mode .modal-header .close-btn:hover{background:#dc2626;color:#fff}.dark-mode .modal-actions{border-top-color:#ffffff1a}.dark-mode .form-section-divider:after,.dark-mode .form-section-divider:before{background:linear-gradient(90deg,#0000,#fff3,#0000)}.dark-mode .form-section-divider span{color:#f8a5a5}.dark-mode .profile-image-section{background:linear-gradient(135deg,#8b45450d,#8b45451a);border-color:#8b45454d}.dark-mode .profile-image-preview{background:#ffffff0d;border-color:#ffffff1a}.dark-mode .profile-image-preview .no-image{background:#ffffff0d;color:#6b7280}.dark-mode .form-group .field-hint,.dark-mode .image-hint{color:#6b7280}.dark-mode .logs-content .data-table-container{background:#ffffff0d}.dark-mode .response-time{background:#10b98126;color:#34d399}.dark-mode .results-count{color:#f8a5a5}.dark-mode .badge-listAll{background:#3b82f633}.dark-mode .badge-listByYear{background:#8b5cf633}.dark-mode .badge-searchStudent{background:#10b98133}.dark-mode .badge-getDetails{background:#f59e0b33}.dark-mode .badge-countStudents{background:#ec489933}.dark-mode .badge-help{background:#6366f133}.dark-mode .badge-greeting{background:#14b8a633}.dark-mode .text-muted{color:#ffffff80}.dark-mode .mobile-menu-toggle{background:#1a1a2ef2;color:#e5e7eb}.dark-mode .btn-danger{background:linear-gradient(135deg,#dc2626,#ef4444);color:#fff}.dark-mode .btn-danger:hover:not(:disabled){background:linear-gradient(135deg,#b91c1c,#dc2626)}.dark-mode .btn-danger-outline{background:#0000;border-color:#f87171;color:#f87171}.dark-mode .btn-danger-outline:hover{background:#f8717126}.dark-mode .checkbox-col input[type=checkbox]{accent-color:#f8a5a5}.dark-mode .data-table tbody tr.selected{background:#f8a5a51a!important}.dark-mode .data-table tbody tr.selected:hover{background:#f8a5a526!important}.pwa-install-banner{animation:slideUp .5s ease-out forwards;background-color:#fff;border:1px solid #e0e0e0;border-radius:12px;bottom:20px;box-shadow:0 4px 15px #00000026;left:50%;max-width:400px;padding:15px;position:fixed;transform:translateX(-50%);width:90%;z-index:9999}@keyframes slideUp{0%{opacity:0;transform:translate(-50%,100%)}to{opacity:1;transform:translate(-50%)}}.pwa-banner-content{align-items:center;display:flex;gap:15px;justify-content:space-between}.pwa-banner-text{display:flex;flex-direction:column;gap:4px}.pwa-banner-text strong{color:#1a73e8;font-size:16px}.pwa-banner-text span{color:#666;font-size:12px;line-height:1.3}.pwa-banner-actions{align-items:center;display:flex;gap:10px}.pwa-btn-install{background-color:#1a73e8;border:none;border-radius:20px;color:#fff;cursor:pointer;font-size:14px;font-weight:600;padding:8px 16px;transition:background-color .2s}.pwa-btn-install:hover{background-color:#1557b0}.pwa-btn-close{align-items:center;background:none;border:none;color:#999;cursor:pointer;display:flex;font-size:24px;justify-content:center;padding:0 5px}.pwa-btn-close:hover{color:#333}
/*# sourceMappingURL=main.4c3803b7.css.map*/