@import"https://fonts.googleapis.com/css2?family=Inter:wght@100..900&display=swap";:root{--primary: #1e40af;--primary-light: #3b82f6;--primary-lighter: #60a5fa;--primary-dark: #1e3a8a;--primary-darker: #1e293b;--secondary: #06b6d4;--secondary-light: #22d3ee;--secondary-dark: #0891b2;--accent-indigo: #6366f1;--accent-indigo-light: #818cf8;--accent-purple: #8b5cf6;--accent-cyan: #06b6d4;--background: #f8fafc;--background-alt: #f1f5f9;--surface: #ffffff;--surface-hover: #f9fafb;--text-primary: #0f172a;--text-secondary: #475569;--text-tertiary: #94a3b8;--text-muted: #cbd5e1;--border-light: #e2e8f0;--border-medium: #cbd5e1;--border-dark: #94a3b8;--success: #10b981;--success-light: #34d399;--success-dark: #059669;--warning: #f59e0b;--warning-light: #fbbf24;--warning-dark: #d97706;--danger: #ef4444;--danger-light: #f87171;--danger-dark: #dc2626;--info: #3b82f6;--info-light: #60a5fa;--info-dark: #2563eb;--white: #ffffff;--black: #000000;--siae-primary-blue: var(--primary);--siae-dark-blue: var(--primary-dark);--siae-bg-white: var(--surface);--siae-bg-card: var(--surface);--siae-bg-hover: var(--surface-hover);--siae-bg-light: var(--background-alt);--siae-text-primary: var(--text-primary);--siae-text-secondary: var(--text-secondary);--siae-border-light: var(--border-light);--siae-border-medium: var(--border-medium);--siae-danger: var(--danger);--siae-success: var(--success);--siae-warning: var(--warning);--siae-dark: var(--text-primary);--bg-blue-light: #dbeafe;--bg-blue-lighter: #eff6ff;--bg-cyan-light: #cffafe;--bg-indigo-light: #e0e7ff;--bg-purple-light: #ede9fe;--bg-success-light: #d1fae5;--bg-warning-light: #fef3c7;--bg-danger-light: #fee2e2;--gradient-primary: linear-gradient(135deg, #1e40af 0%, #3b82f6 100%);--gradient-primary-soft: linear-gradient(135deg, #3b82f6 0%, #60a5fa 100%);--gradient-primary-dark: linear-gradient(135deg, #1e3a8a 0%, #1e40af 100%);--gradient-cyan: linear-gradient(135deg, #06b6d4 0%, #22d3ee 100%);--gradient-indigo: linear-gradient(135deg, #6366f1 0%, #818cf8 100%);--gradient-purple: linear-gradient(135deg, #8b5cf6 0%, #a78bfa 100%);--gradient-success: linear-gradient(135deg, #10b981 0%, #34d399 100%);--gradient-warning: linear-gradient(135deg, #f59e0b 0%, #fbbf24 100%);--gradient-danger: linear-gradient(135deg, #ef4444 0%, #f87171 100%);--gradient-bg-subtle: linear-gradient(135deg, #f8fafc 0%, #e2e8f0 100%);--gradient-bg-academic: linear-gradient(135deg, #eff6ff 0%, #dbeafe 100%);--siae-gradient-primary: var(--gradient-primary);--siae-gradient-success: var(--gradient-success);--glass-bg: rgba(255, 255, 255, .95);--glass-bg-light: rgba(255, 255, 255, .7);--glass-bg-dark: rgba(30, 64, 175, .1);--glass-border: rgba(226, 232, 240, .6);--glass-blur: blur(20px);--overlay-dark: rgba(0, 0, 0, .5);--overlay-darker: rgba(0, 0, 0, .7);--overlay-light: rgba(255, 255, 255, .9);--siae-overlay: var(--overlay-dark);--shadow-xs: 0 1px 2px 0 rgba(0, 0, 0, .05);--shadow-sm: 0 2px 4px 0 rgba(0, 0, 0, .06);--shadow-md: 0 4px 6px -1px rgba(0, 0, 0, .1), 0 2px 4px -1px rgba(0, 0, 0, .06);--shadow-lg: 0 10px 15px -3px rgba(0, 0, 0, .1), 0 4px 6px -2px rgba(0, 0, 0, .05);--shadow-xl: 0 20px 25px -5px rgba(0, 0, 0, .1), 0 10px 10px -5px rgba(0, 0, 0, .04);--shadow-2xl: 0 25px 50px -12px rgba(0, 0, 0, .25);--shadow-blue: 0 4px 12px rgba(30, 64, 175, .3);--shadow-blue-lg: 0 8px 20px rgba(30, 64, 175, .4);--shadow-cyan: 0 4px 12px rgba(6, 182, 212, .3);--shadow-indigo: 0 4px 12px rgba(99, 102, 241, .3);--shadow-success: 0 4px 12px rgba(16, 185, 129, .3);--shadow-warning: 0 4px 12px rgba(245, 158, 11, .3);--shadow-danger: 0 4px 12px rgba(239, 68, 68, .3);--shadow-glow-blue: 0 0 0 3px rgba(59, 130, 246, .1);--shadow-glow-cyan: 0 0 0 3px rgba(6, 182, 212, .1);--shadow-glow-success: 0 0 0 3px rgba(16, 185, 129, .1);--shadow-card: 0 10px 25px -5px rgba(0, 0, 0, .1), 0 4px 6px -2px rgba(0, 0, 0, .05), inset 0 1px 0 rgba(255, 255, 255, .6);--shadow-card-hover: 0 25px 50px -12px rgba(0, 0, 0, .15), 0 8px 16px -4px rgba(0, 0, 0, .1), inset 0 1px 0 rgba(255, 255, 255, .8);--siae-shadow-xs: var(--shadow-xs);--siae-shadow-sm: var(--shadow-sm);--siae-shadow-md: var(--shadow-md);--siae-shadow-lg: var(--shadow-lg);--siae-shadow-glow-blue: var(--shadow-glow-blue);--font-family-sans: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--font-family-mono: "Fira Code", "Courier New", monospace;--font-size-xs: .75rem;--font-size-sm: .875rem;--font-size-base: 1rem;--font-size-lg: 1.125rem;--font-size-xl: 1.25rem;--font-size-2xl: 1.5rem;--font-size-3xl: 1.875rem;--font-size-4xl: 2.25rem;--font-weight-light: 300;--font-weight-normal: 400;--font-weight-medium: 500;--font-weight-semibold: 600;--font-weight-bold: 700;--font-weight-extrabold: 800;--line-height-tight: 1.25;--line-height-normal: 1.5;--line-height-relaxed: 1.75;--spacing-0: 0;--spacing-xs: .25rem;--spacing-sm: .5rem;--spacing-md: 1rem;--spacing-lg: 1.5rem;--spacing-xl: 2rem;--spacing-2xl: 2.5rem;--spacing-3xl: 3rem;--spacing-4xl: 4rem;--siae-spacing-xs: var(--spacing-xs);--siae-spacing-sm: var(--spacing-sm);--siae-spacing-md: var(--spacing-md);--siae-spacing-lg: var(--spacing-lg);--siae-spacing-xl: var(--spacing-xl);--siae-spacing-xxl: var(--spacing-2xl);--radius-none: 0;--radius-sm: .25rem;--radius-md: .5rem;--radius-lg: .75rem;--radius-xl: 1rem;--radius-2xl: 1.5rem;--radius-3xl: 2rem;--radius-full: 9999px;--border-radius-sm: var(--radius-sm);--border-radius-md: var(--radius-md);--border-radius-lg: var(--radius-lg);--border-radius-full: var(--radius-full);--siae-radius-sm: var(--radius-sm);--siae-radius-md: var(--radius-md);--siae-radius-lg: var(--radius-lg);--siae-radius-xl: var(--radius-xl);--siae-radius-full: var(--radius-full);--ease-in: cubic-bezier(.4, 0, 1, 1);--ease-out: cubic-bezier(0, 0, .2, 1);--ease-in-out: cubic-bezier(.4, 0, .2, 1);--ease-bounce: cubic-bezier(.68, -.55, .265, 1.55);--duration-fast: .15s;--duration-base: .3s;--duration-slow: .5s;--transition-fast: all .15s var(--ease-out);--transition-base: all .3s var(--ease-in-out);--transition-slow: all .5s var(--ease-in-out);--transition-bounce: all .3s var(--ease-bounce);--siae-transition-fast: var(--transition-fast);--siae-transition-base: var(--transition-base);--z-base: 0;--z-dropdown: 1000;--z-sticky: 1020;--z-fixed: 1030;--z-modal-backdrop: 1040;--z-modal: 1050;--z-popover: 1060;--z-tooltip: 1070;--breakpoint-sm: 640px;--breakpoint-md: 768px;--breakpoint-lg: 1024px;--breakpoint-xl: 1280px;--breakpoint-2xl: 1536px;--btn-padding-sm: .5rem 1rem;--btn-padding-md: .75rem 1.5rem;--btn-padding-lg: 1rem 2rem;--input-border: 2px solid var(--border-light);--input-border-focus: 2px solid var(--primary);--input-padding: .75rem 1rem;--card-padding: 1.5rem;--card-padding-lg: 2rem;--modal-max-width: 600px;--modal-max-width-lg: 800px;--modal-max-width-xl: 1000px}@keyframes fadeOut{0%{opacity:1}to{opacity:0}}.fade-in{animation:fadeIn .3s ease-in}.fade-out{animation:fadeOut .3s ease-out}@keyframes slideDown{0%{opacity:0;transform:translateY(-30px)}to{opacity:1;transform:translateY(0)}}@keyframes slideLeft{0%{opacity:0;transform:translate(30px)}to{opacity:1;transform:translate(0)}}@keyframes slideRight{0%{opacity:0;transform:translate(-30px)}to{opacity:1;transform:translate(0)}}.slide-up{animation:slideUp .4s cubic-bezier(.4,0,.2,1)}.slide-down{animation:slideDown .4s cubic-bezier(.4,0,.2,1)}.slide-left{animation:slideLeft .4s cubic-bezier(.4,0,.2,1)}.slide-right{animation:slideRight .4s cubic-bezier(.4,0,.2,1)}@keyframes scaleIn{0%{opacity:0;transform:scale(.9)}to{opacity:1;transform:scale(1)}}@keyframes scaleOut{0%{opacity:1;transform:scale(1)}to{opacity:0;transform:scale(.9)}}.scale-in{animation:scaleIn .3s cubic-bezier(.34,1.56,.64,1)}.scale-out{animation:scaleOut .3s cubic-bezier(.4,0,.2,1)}@keyframes bounce{0%,to{transform:translateY(0)}50%{transform:translateY(-10px)}}@keyframes pulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.8;transform:scale(.95)}}.bounce{animation:bounce 1s ease-in-out infinite}.pulse{animation:pulse 2s ease-in-out infinite}@keyframes rotate{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.rotate{animation:rotate 1s linear infinite}.spin{animation:spin 1s linear infinite}@keyframes shimmer{0%{background-position:-1000px 0}to{background-position:1000px 0}}@keyframes glow{0%,to{box-shadow:0 0 5px #4a90e280}50%{box-shadow:0 0 20px #4a90e2cc}}.shimmer{animation:shimmer 2s linear infinite;background:linear-gradient(90deg,#fff0,#ffffff80,#fff0);background-size:1000px 100%}.glow{animation:glow 2s ease-in-out infinite}@keyframes pageEnter{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@keyframes pageExit{0%{opacity:1;transform:translateY(0)}to{opacity:0;transform:translateY(-20px)}}.page-enter{animation:pageEnter .4s cubic-bezier(.4,0,.2,1)}.page-exit{animation:pageExit .3s cubic-bezier(.4,0,.2,1)}@keyframes cardSlideUp{0%{opacity:0;transform:translateY(40px)}to{opacity:1;transform:translateY(0)}}.card-slide-up{animation:cardSlideUp .5s cubic-bezier(.4,0,.2,1)}.stagger-item{opacity:0;animation:slideUp .5s cubic-bezier(.4,0,.2,1) forwards}.stagger-item:nth-child(1){animation-delay:.05s}.stagger-item:nth-child(2){animation-delay:.1s}.stagger-item:nth-child(3){animation-delay:.15s}.stagger-item:nth-child(4){animation-delay:.2s}.stagger-item:nth-child(5){animation-delay:.25s}.stagger-item:nth-child(6){animation-delay:.3s}.stagger-item:nth-child(7){animation-delay:.35s}.stagger-item:nth-child(8){animation-delay:.4s}@keyframes skeletonPulse{0%,to{opacity:1}50%{opacity:.4}}.skeleton{animation:skeletonPulse 1.5s ease-in-out infinite;background:linear-gradient(90deg,#e2e8f0,#f1f5f9,#e2e8f0);background-size:200% 100%;border-radius:var(--border-radius-md)}.spinner{width:40px;height:40px;border:4px solid rgba(74,144,226,.2);border-top-color:var(--siae-primary-blue);border-radius:50%;animation:spin .8s linear infinite}.hover-lift{transition:transform .2s ease,box-shadow .2s ease}.hover-lift:hover{transform:translateY(-4px);box-shadow:0 12px 24px #00000026}.hover-scale{transition:transform .2s ease}.hover-scale:hover{transform:scale(1.05)}.hover-glow{transition:box-shadow .3s ease}.hover-glow:hover{box-shadow:0 0 20px #4a90e280}.animate-once{animation-iteration-count:1!important;animation-fill-mode:forwards!important}.animate-infinite{animation-iteration-count:infinite!important}.animation-delay-1{animation-delay:.1s}.animation-delay-2{animation-delay:.2s}.animation-delay-3{animation-delay:.3s}.animation-delay-4{animation-delay:.4s}.animation-delay-5{animation-delay:.5s}.animation-fast{animation-duration:.2s!important}.animation-normal{animation-duration:.3s!important}.animation-slow{animation-duration:.5s!important}.animation-slower{animation-duration:.8s!important}.app-layout{min-height:100vh;width:100%;max-width:100vw;display:flex;flex-direction:row;margin:0;padding:0;position:relative;box-sizing:border-box;overflow-x:hidden}.app-container{min-height:100vh;width:100%;display:flex;flex-direction:column;margin:0!important;padding:0!important}.mobile-menu-button{position:fixed;top:1rem;left:1rem;z-index:1001;display:flex;align-items:center;justify-content:center;width:48px;height:48px;background:linear-gradient(135deg,var(--primary),#60a5fa);border:none;border-radius:var(--border-radius-lg);color:#fff;cursor:pointer;box-shadow:0 4px 12px #4a90e24d;transition:all .3s cubic-bezier(.4,0,.2,1)}.mobile-menu-button:hover{transform:scale(1.05);box-shadow:0 6px 16px #4a90e266}.mobile-menu-button:active{transform:scale(.95)}@media(min-width:1024px){.mobile-menu-button{display:none}}.main-content{flex:1;width:100%;min-height:100vh;box-sizing:border-box;overflow-x:hidden;transition:margin-left .3s cubic-bezier(.4,0,.2,1)}@media(min-width:1024px){.main-content{margin-left:280px}}.page-container,.dashboard-main,main{min-height:calc(100vh - 60px);padding:1.5rem var(--spacing-xl);max-width:100%;margin:0 auto;width:100%;overflow-x:hidden;box-sizing:border-box}@media(max-width:1023px){.page-container,.dashboard-main,main{padding-top:calc(var(--spacing-xl) + 64px)}}.sidebar{position:fixed;top:0;left:0;width:280px;height:100vh;background:linear-gradient(to bottom,var(--white),rgba(248,250,252,.98));box-shadow:4px 0 16px #0000001a;transition:all .3s cubic-bezier(.4,0,.2,1);z-index:1000;display:flex;flex-direction:column;overflow:hidden;flex-shrink:0}@media(min-width:1024px){.sidebar.collapsed{width:70px}.sidebar.collapsed~.main-content{margin-left:70px}}@media(max-width:1023px){.sidebar{transform:translate(-100%);box-shadow:4px 0 24px #0003}.sidebar.open{transform:translate(0)}.main-content{margin-left:0!important}}.sidebar-overlay{position:fixed;inset:0;background:#0009;z-index:999;animation:fadeIn .3s ease;backdrop-filter:blur(4px)}.sidebar-logo-section{padding:var(--spacing-lg);display:flex;align-items:center;justify-content:center;background:linear-gradient(to bottom,var(--white),rgba(248,250,252,.95));border-bottom:2px solid var(--border-light);min-height:80px;box-shadow:0 2px 8px #0000000d;flex-shrink:0;cursor:pointer;transition:all .3s ease;text-decoration:none}.sidebar-logo-section:hover{background:linear-gradient(to bottom,#f8fafc,#f1f5f9);border-bottom-color:var(--primary);box-shadow:0 4px 12px #2563eb26;transform:translateY(-1px)}.sidebar-logo-section:active{transform:translateY(0)}.sidebar-logo{font-size:2rem;font-weight:800;color:var(--primary);letter-spacing:-.025em;transition:all .3s ease;background:linear-gradient(135deg,var(--primary),#60a5fa);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.sidebar-logo-section:hover .sidebar-logo{background:linear-gradient(135deg,#1e40af,var(--primary));-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;transform:scale(1.05)}.sidebar.collapsed .sidebar-logo{font-size:1.5rem}.sidebar-header{padding:var(--spacing-lg) var(--spacing-md);display:flex;justify-content:space-between;align-items:center;border-bottom:2px solid var(--border-light);background:linear-gradient(135deg,#4a90e20d,#60a5fa05);flex-shrink:0}.sidebar-title{font-size:1.25rem;font-weight:700;color:var(--primary);margin:0;white-space:nowrap;overflow:hidden;transition:opacity .2s ease,width .2s ease}.sidebar.collapsed .sidebar-title{opacity:0;width:0}.sidebar-header-buttons{display:flex;gap:var(--spacing-xs);align-items:center}.sidebar-toggle,.sidebar-close{background:transparent;border:none;cursor:pointer;display:flex;align-items:center;justify-content:center;padding:var(--spacing-xs);border-radius:var(--border-radius-md);color:var(--text-secondary);transition:all .2s ease-in-out;width:36px;height:36px;flex-shrink:0}.sidebar-toggle:hover{background:#4a90e226;color:var(--primary);transform:scale(1.1)}.sidebar-close:hover{background:#ef444426;color:#ef4444;transform:scale(1.1)}.sidebar-nav{flex:1;padding:var(--spacing-md);overflow-y:auto;overflow-x:hidden;display:flex;flex-direction:column;gap:var(--spacing-xs);min-height:0}.sidebar-nav::-webkit-scrollbar{width:6px}.sidebar-nav::-webkit-scrollbar-track{background:transparent}.sidebar-nav::-webkit-scrollbar-thumb{background:#4a90e24d;border-radius:3px}.sidebar-nav::-webkit-scrollbar-thumb:hover{background:#4a90e280}.sidebar-link{display:flex;align-items:center;gap:var(--spacing-sm);padding:var(--spacing-sm) var(--spacing-md);border-radius:var(--border-radius-lg);color:var(--text-secondary);text-decoration:none;font-size:.9375rem;font-weight:500;transition:all .2s ease-in-out;position:relative;white-space:nowrap;overflow:hidden}.sidebar-link:before{content:"";position:absolute;left:0;top:50%;transform:translateY(-50%);width:3px;height:0;background:var(--primary);border-radius:0 var(--border-radius-lg) var(--border-radius-lg) 0;transition:height .3s ease}.sidebar-link:hover{background:#4a90e21a;color:var(--primary);transform:translate(4px)}.sidebar-link:hover:before{height:60%}.sidebar-link.active{background:linear-gradient(135deg,#4a90e226,#60a5fa1a);color:var(--primary);font-weight:600;box-shadow:0 2px 8px #4a90e226}.sidebar-link.active:before{height:80%}.sidebar-link svg{flex-shrink:0;min-width:20px}.sidebar-link span{transition:opacity .2s ease,width .2s ease;overflow:hidden;text-overflow:ellipsis}.sidebar.collapsed .sidebar-link{justify-content:center;padding:var(--spacing-sm)}.sidebar.collapsed .sidebar-link span{opacity:0;width:0;display:none}.sidebar.collapsed .sidebar-link:hover{transform:scale(1.05)}.sidebar-user-section{margin-top:auto;padding:var(--spacing-md);border-top:2px solid var(--border-light);background:linear-gradient(to top,rgba(74,144,226,.03),transparent);flex-shrink:0}.sidebar-user-info{display:flex;align-items:center;gap:var(--spacing-sm);padding:var(--spacing-sm);margin-bottom:var(--spacing-sm);border-radius:var(--border-radius-lg);background:#4a90e20d;transition:all .2s ease}.sidebar.collapsed .sidebar-user-info{justify-content:center;padding:var(--spacing-xs)}.user-avatar{display:flex;align-items:center;justify-content:center;width:40px;height:40px;border-radius:50%;background:linear-gradient(135deg,var(--primary),#60a5fa);color:#fff;flex-shrink:0;box-shadow:0 2px 8px #4a90e24d}.sidebar.collapsed .user-avatar{width:36px;height:36px}.user-details{display:flex;flex-direction:column;gap:2px;min-width:0;flex:1}.sidebar.collapsed .user-details{display:none}.user-details .user-name{font-size:.875rem;font-weight:600;color:var(--text-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.user-details .user-role{font-size:.75rem;font-weight:500;color:var(--primary);text-transform:uppercase;letter-spacing:.5px}.sidebar-logout-btn{width:100%;display:flex;align-items:center;justify-content:center;gap:var(--spacing-sm);padding:var(--spacing-sm) var(--spacing-md);background:linear-gradient(135deg,#ef44441a,#dc26260d);border:2px solid rgba(239,68,68,.2);border-radius:var(--border-radius-lg);color:#dc2626;font-size:.875rem;font-weight:600;cursor:pointer;transition:all .2s ease}.sidebar-logout-btn:hover{background:linear-gradient(135deg,#dc2626,#b91c1c);color:#fff;border-color:#dc2626;transform:translateY(-2px);box-shadow:0 4px 12px #dc26264d}.sidebar.collapsed .sidebar-logout-btn{padding:var(--spacing-sm)}.sidebar.collapsed .sidebar-logout-btn span{display:none}.page-title-container{margin-bottom:var(--spacing-xl)}.page-title{font-size:2rem;font-weight:700;color:var(--text-primary);margin:0 0 var(--spacing-sm) 0;display:flex;align-items:center;gap:var(--spacing-md)}.title-decorator{height:3px;width:70px;background:linear-gradient(90deg,var(--primary),#667eea,transparent);border-radius:var(--border-radius-lg);margin-top:var(--spacing-xs);box-shadow:0 2px 6px #4a90e24d;animation:slideGlow 3s ease-in-out infinite}@keyframes slideGlow{0%,to{opacity:1;transform:scaleX(1)}50%{opacity:.8;transform:scaleX(1.05)}}@media(max-width:1023px)and (min-width:768px){.page-container,.dashboard-main,main{padding:var(--spacing-lg) var(--spacing-lg);padding-top:calc(var(--spacing-lg) + 64px)}.page-title{font-size:1.75rem}}@media(max-width:767px){.page-container,.dashboard-main,main{padding:var(--spacing-md) var(--spacing-md);padding-top:calc(var(--spacing-md) + 64px)}.page-title{font-size:1.5rem}.sidebar{width:85vw;max-width:320px}.mobile-menu-button{top:.75rem;left:.75rem;width:44px;height:44px}}@media(max-width:479px){.page-container,.dashboard-main,main{padding:var(--spacing-sm) var(--spacing-sm);padding-top:calc(var(--spacing-sm) + 64px)}.page-title{font-size:1.25rem}.sidebar{width:90vw;max-width:300px}.mobile-menu-button{width:42px;height:42px}.sidebar-logo{font-size:1.75rem}}.modal-overlay{position:fixed;inset:0;background:#0f172abf;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);display:flex;align-items:center;justify-content:center;z-index:1000;padding:1rem;overflow-y:auto;animation:modalFadeIn .2s cubic-bezier(.4,0,.2,1)}@keyframes modalFadeIn{0%{opacity:0;backdrop-filter:blur(0px)}to{opacity:1;backdrop-filter:blur(8px)}}.modal-content{background:linear-gradient(135deg,#fff,#f8fafc);border-radius:1rem;box-shadow:0 20px 60px #00000026,0 0 0 1px #ffffff1a;width:100%;max-width:500px;max-height:90vh;display:flex;flex-direction:column;position:relative;margin:auto;overflow:hidden;animation:modalSlideIn .3s cubic-bezier(.34,1.56,.64,1)}@keyframes modalSlideIn{0%{opacity:0;transform:translateY(30px) scale(.95)}to{opacity:1;transform:translateY(0) scale(1)}}.modal-content.small-modal,.modal-content.max-w-md{max-width:28rem}.modal-content.large-modal,.modal-content.max-w-3xl{max-width:48rem}.modal-content.max-w-6xl,.modal-content.xl-modal{max-width:72rem;width:95%}.modal-header{display:flex;justify-content:space-between;align-items:center;padding:1.5rem 2rem;border-bottom:2px solid rgba(226,232,240,.8);background:linear-gradient(135deg,#4a90e208,#60a5fa03);flex-shrink:0}.modal-header.form-header{padding:1.75rem 2rem;border-bottom:2px solid rgba(74,144,226,.15);background:linear-gradient(135deg,#4a90e20d,#60a5fa05)}.modal-title{font-size:1.5rem;font-weight:700;color:var(--text-primary);margin:0;display:flex;align-items:center;gap:.75rem}.modal-close-btn,.close-form-btn{background:transparent;border:none;cursor:pointer;color:var(--text-secondary);padding:.5rem;border-radius:var(--border-radius-md);display:flex;align-items:center;justify-content:center;transition:all .2s cubic-bezier(.4,0,.2,1);width:36px;height:36px;flex-shrink:0}.modal-close-btn:hover,.close-form-btn:hover{background:#ef444426;color:#ef4444;transform:scale(1.1) rotate(90deg)}.modal-body{padding:2rem;overflow-y:auto;flex:1;min-height:0}.modal-body::-webkit-scrollbar{width:6px}.modal-body::-webkit-scrollbar-track{background:transparent}.modal-body::-webkit-scrollbar-thumb{background:#4a90e24d;border-radius:3px}.modal-body::-webkit-scrollbar-thumb:hover{background:#4a90e280}.modal-footer,.modal-actions{display:flex;justify-content:flex-end;align-items:center;gap:1rem;padding:1.5rem 2rem;border-top:2px solid rgba(226,232,240,.8);background:#f8fafc80;flex-shrink:0}.form-actions{justify-content:space-between}.modal-btn{padding:.75rem 1.5rem;border:none;border-radius:var(--border-radius-md);font-size:.9375rem;font-weight:600;cursor:pointer;transition:all .2s cubic-bezier(.4,0,.2,1);display:inline-flex;align-items:center;justify-content:center;gap:.5rem;min-width:100px}.modal-btn.cancel{background:var(--bg-light);color:var(--text-secondary);border:2px solid var(--border-medium)}.modal-btn.cancel:hover:not(:disabled){background:var(--bg-hover);color:var(--text-primary);border-color:var(--text-secondary);transform:translateY(-1px)}.modal-btn.save,.modal-btn.primary{background:linear-gradient(135deg,var(--siae-primary-blue),#60a5fa);color:#fff;box-shadow:0 4px 12px #4a90e24d;border:none}.modal-btn.save:hover:not(:disabled),.modal-btn.primary:hover:not(:disabled){box-shadow:0 6px 16px #4a90e266;transform:translateY(-2px)}.modal-btn.danger{background:linear-gradient(135deg,#ef4444,#dc2626);color:#fff;box-shadow:0 4px 12px #ef44444d}.modal-btn.danger:hover:not(:disabled){box-shadow:0 6px 16px #ef444466;transform:translateY(-2px)}.modal-btn:disabled{opacity:.6;cursor:not-allowed;transform:none!important}.modal-form{display:flex;flex-direction:column;gap:1.5rem}.form-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:1.5rem}.modal-input-group{display:flex;flex-direction:column;gap:.5rem}.modal-input-group label{font-size:.875rem;font-weight:600;color:var(--text-primary)}.modal-input-group input,.modal-input-group select,.modal-input-group textarea{padding:.75rem 1rem;border:2px solid var(--border-light);border-radius:var(--border-radius-md);font-size:.9375rem;font-weight:500;color:var(--text-primary);background:#fff;transition:all .2s ease}.modal-input-group input:focus,.modal-input-group select:focus,.modal-input-group textarea:focus{outline:none;border-color:var(--siae-primary-blue);box-shadow:0 0 0 3px #4a90e21a}.modal-input-group textarea{resize:vertical;min-height:100px}.modal-student-info,.modal-info-section{padding:1rem;background:#4a90e20d;border-radius:var(--border-radius-md);border:1px solid rgba(74,144,226,.1);margin-bottom:1.5rem}.modal-student-name,.modal-info-title{font-size:.9375rem;color:var(--text-primary);margin:0 0 .5rem}.modal-instruction,.modal-info-text{font-size:.875rem;color:var(--text-secondary);margin:0}@media(max-width:768px){.modal-overlay{padding:.5rem}.modal-content{max-width:100%;max-height:95vh}.modal-header{padding:1.25rem 1.5rem}.modal-title{font-size:1.25rem}.modal-body{padding:1.5rem}.modal-footer,.modal-actions{padding:1.25rem 1.5rem;flex-direction:column-reverse}.modal-btn{width:100%}.form-grid{grid-template-columns:1fr}}@media(max-width:480px){.modal-header{padding:1rem 1.25rem}.modal-title{font-size:1.125rem}.modal-body{padding:1.25rem}.modal-footer,.modal-actions{padding:1rem 1.25rem}}.confirm-modal .modal-body{text-align:center;padding:2.5rem 2rem}.confirm-modal .modal-icon{width:64px;height:64px;margin:0 auto 1.5rem;display:flex;align-items:center;justify-content:center;border-radius:50%;background:#ef44441a;color:#ef4444}.loading-modal .modal-body{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:3rem 2rem;min-height:200px}.modal-success{border-top:4px solid #22c55e}.modal-error{border-top:4px solid #ef4444}.modal-warning{border-top:4px solid #f59e0b}.modal-info{border-top:4px solid #3b82f6}.stats-card .stats-pie-container{display:flex;flex-direction:column;align-items:center;justify-content:center;width:100%;min-height:220px;margin:0 auto}.stats-pie-labels{margin-top:var(--spacing-md);display:flex;flex-direction:column;align-items:center;gap:var(--spacing-sm)}.stats-card .stats-circle{display:flex;flex-direction:column;align-items:center;justify-content:center;width:100%;margin:0 auto}.card,.stats-card,.content-card{background:var(--white);border-radius:var(--border-radius-lg);padding:var(--spacing-lg);box-shadow:var(--shadow-md);transition:all var(--transition-base);border:1px solid var(--border-light)}.card:hover{box-shadow:var(--shadow-lg);transform:translateY(-2px)}.card-title{font-size:1.25rem;font-weight:600;color:var(--text-primary);margin-bottom:var(--spacing-md);padding-bottom:var(--spacing-sm);border-bottom:2px solid var(--border-light)}.btn,.btn-primary,.btn-secondary,.btn-success,.btn-danger{padding:var(--spacing-sm) var(--spacing-lg);border-radius:var(--border-radius-md);font-weight:600;font-size:.95rem;border:none;cursor:pointer;transition:all var(--transition-base);display:inline-flex;align-items:center;justify-content:center;gap:var(--spacing-sm)}.btn-primary{background:var(--siae-gradient-primary);color:var(--white);box-shadow:var(--shadow-md)}.btn-primary:hover{box-shadow:var(--shadow-lg);transform:translateY(-2px)}.btn-secondary{background:var(--siae-bg-hover);color:var(--text-primary);border:1px solid var(--border-medium)}.btn-secondary:hover{background:var(--border-light)}.btn-success{background:var(--siae-gradient-success);color:var(--white);box-shadow:0 4px 6px #10b9814d}.btn-success:hover{box-shadow:0 6px 8px #10b98166;transform:translateY(-2px)}.btn-danger{background:linear-gradient(135deg,var(--danger) 0%,#DC2626 100%);color:var(--white);box-shadow:0 4px 6px #ef44444d}.btn-danger:hover{box-shadow:0 6px 8px #ef444466;transform:translateY(-2px)}.btn:disabled{opacity:.6;cursor:not-allowed;transform:none!important}.input,.form-input,input[type=text],input[type=email],input[type=password],input[type=date],input[type=number],select,textarea{width:100%;padding:10px 14px;border:1px solid var(--border-medium);border-radius:var(--border-radius-md);font-size:.95rem;font-family:var(--font-family-sans);color:var(--text-primary);background:var(--white);transition:all var(--transition-base)}.input:focus,.form-input:focus,input:focus,select:focus,textarea:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 3px #4a90e21a}.table,.data-table{width:100%;border-collapse:collapse;background:var(--white);border-radius:var(--border-radius-lg);overflow:hidden;box-shadow:var(--shadow-md)}.table thead,.data-table thead{background:var(--siae-gradient-primary)}.table thead th,.data-table thead th{padding:var(--spacing-md);text-align:left;color:var(--white);font-weight:600;font-size:.9rem;text-transform:uppercase;letter-spacing:.5px}.table tbody tr,.data-table tbody tr{border-bottom:1px solid var(--border-light);transition:background-color var(--transition-fast)}.table tbody tr:hover,.data-table tbody tr:hover{background-color:var(--siae-bg-hover)}.table tbody td,.data-table tbody td{padding:var(--spacing-md);color:var(--text-primary);font-size:.95rem}.badge,.tag{display:inline-block;padding:4px 12px;border-radius:var(--border-radius-full);font-size:.85rem;font-weight:600;text-transform:uppercase;letter-spacing:.5px}.badge-primary,.tag-primary{background:var(--siae-light-blue);color:var(--primary)}.badge-success,.tag-success{background:var(--siae-success-light);color:var(--success)}.badge-warning,.tag-warning{background:var(--siae-warning-light);color:var(--warning)}.badge-error,.badge-danger,.tag-danger{background:var(--siae-error-light);color:var(--danger)}.badge-info,.tag-info{background:var(--siae-info-light);color:var(--info)}.modal-overlay{position:fixed;inset:0;background-color:var(--siae-overlay);display:flex;align-items:center;justify-content:center;z-index:1000;padding:var(--spacing-md);overflow-y:auto;animation:fadeIn .2s ease}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.modal-content{background-color:#fff!important;padding:0;border-radius:var(--border-radius-lg);box-shadow:var(--shadow-xl);width:95%;max-width:500px;max-height:95vh;display:flex;flex-direction:column;position:relative;margin:auto;animation:slideUp .3s ease}.modal-content.large-modal{max-width:900px;width:90%}.modal-content.max-w-md{max-width:28rem}.modal-content.max-w-lg{max-width:32rem}.modal-content.max-w-3xl{max-width:48rem}.modal-content.max-w-6xl{max-width:72rem;width:95%}.modal-header{display:flex;justify-content:space-between;align-items:center;padding:var(--spacing-lg) var(--spacing-xl);border-bottom:2px solid var(--border-light);background:linear-gradient(135deg,#4a90e20d,#60a5fa05)}.modal-header.form-header{padding:var(--spacing-xl)}.modal-header .modal-title{margin-bottom:0}.modal-title{font-size:1.5rem;font-weight:700;color:var(--text-primary);margin-top:0;margin-bottom:0;display:flex;align-items:center;gap:var(--spacing-sm)}.close-form-btn{background:none;border:none;padding:var(--spacing-xs);cursor:pointer;color:var(--text-tertiary);line-height:1;border-radius:var(--border-radius-sm);transition:var(--transition-fast)}.close-form-btn:hover{color:var(--text-primary);background-color:var(--siae-bg-light);transform:scale(1.1)}.modal-body{padding:var(--spacing-md);overflow-y:auto;flex:1;min-height:0;max-height:calc(95vh - 80px);background-color:#fff}.form-section-title{font-size:1rem;font-weight:700;color:var(--text-primary);margin:var(--spacing-lg) 0 var(--spacing-md) 0;padding-bottom:var(--spacing-sm);border-bottom:2px solid var(--border-light);display:flex;align-items:center;gap:var(--spacing-sm)}.form-section-title:first-child{margin-top:0}.form-grid-col-2{display:grid;grid-template-columns:repeat(2,1fr);gap:var(--spacing-md);margin-bottom:var(--spacing-md)}.form-grid-col-3,.form-grid-permissions{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--spacing-md);margin-bottom:var(--spacing-md)}@media(max-width:768px){.form-grid-col-2,.form-grid-col-3,.form-grid-permissions{grid-template-columns:1fr}}.modal-input-group{margin-bottom:var(--spacing-md)}.modal-input-group label{display:block;font-size:.875rem;font-weight:600;color:var(--text-primary);margin-bottom:var(--spacing-sm)}.modal-input-group input,.modal-input-group select{width:100%;font-family:var(--font-family-sans);font-size:.95rem;border:2px solid var(--border-light);border-radius:var(--border-radius-md);padding:.75rem 1rem;transition:all var(--transition-base);background-color:var(--siae-bg-light)}.modal-input-group input:focus,.modal-input-group select:focus{outline:none;border-color:var(--primary);background-color:var(--white);box-shadow:0 0 0 3px #4a90e21a}.modal-input-group textarea{width:100%;font-family:var(--font-family-sans);font-size:.9rem;border:2px solid var(--border-light);border-radius:var(--border-radius-md);padding:.75rem 1rem;resize:vertical;min-height:100px;transition:all var(--transition-base);background-color:var(--siae-bg-light)}.modal-input-group textarea:focus{outline:none;border-color:var(--primary);background-color:var(--white);box-shadow:0 0 0 3px #4a90e21a}.checkbox-label{display:flex;align-items:center;gap:var(--spacing-sm);padding:var(--spacing-md);background-color:var(--siae-bg-light);border:2px solid var(--border-light);border-radius:var(--border-radius-md);cursor:pointer;transition:all var(--transition-base);font-size:.9rem;font-weight:600;color:var(--text-primary)}.checkbox-label:hover{background-color:var(--white);border-color:var(--primary);box-shadow:0 2px 8px #4a90e21a}.checkbox-label input[type=checkbox]{width:20px;height:20px;cursor:pointer;accent-color:var(--primary)}.form-feedback{padding:var(--spacing-md);border-radius:var(--border-radius-md);margin-bottom:var(--spacing-lg);display:flex;align-items:center;gap:var(--spacing-sm);font-size:.9rem;font-weight:600}.form-feedback.error{background-color:var(--siae-error-light);color:var(--danger-dark);border-left:4px solid var(--danger)}.form-feedback.success{background-color:var(--siae-success-light);color:var(--success-dark);border-left:4px solid var(--success)}.modal-actions{display:flex;justify-content:flex-end;gap:var(--spacing-md);padding:var(--spacing-lg) var(--spacing-xl);border-top:2px solid var(--border-light);background-color:var(--siae-bg-light)}.modal-btn{padding:.75rem 1.5rem;border:none;border-radius:var(--border-radius-md);font-size:.95rem;font-weight:700;cursor:pointer;transition:all var(--transition-base);display:inline-flex;align-items:center;gap:var(--spacing-sm)}.modal-btn.cancel{background-color:var(--white);color:var(--text-primary);border:2px solid var(--border-medium)}.modal-btn.cancel:hover{background-color:var(--siae-bg-hover);transform:translateY(-1px);box-shadow:var(--shadow-sm)}.modal-btn.save{background:var(--siae-gradient-primary);color:var(--white);box-shadow:0 4px 12px #4a90e24d}.modal-btn.save:hover{box-shadow:0 6px 16px #4a90e266;transform:translateY(-2px)}.modal-btn:disabled{background-color:#9ca3af;cursor:not-allowed;opacity:.6;transform:none!important}.loading-message{text-align:center;padding:var(--spacing-2xl);color:var(--text-secondary);font-size:1.1rem}.empty-state{text-align:center;padding:var(--spacing-2xl);color:var(--text-secondary)}.empty-state-icon{font-size:3rem;margin-bottom:var(--spacing-md);opacity:.5}.empty-state-text{font-size:1.1rem;margin-bottom:var(--spacing-sm)}@media(max-width:1024px){.modal-content.max-w-6xl{width:98%;max-width:95vw}.modal-content.max-w-3xl{width:95%}}@media(max-width:768px){.card,.stats-card,.content-card{padding:var(--spacing-md)}.modal-overlay{padding:var(--spacing-xs)}.modal-content{width:98%;max-height:95vh}.modal-content.max-w-6xl,.modal-content.max-w-3xl{width:98%;max-width:none}.modal-header{padding:var(--spacing-md) var(--spacing-lg)}.modal-body{padding:var(--spacing-md);max-height:calc(95vh - 70px)}.modal-title{font-size:1.25rem}}@media(max-width:480px){.modal-overlay{padding:0}.modal-content{width:100%;max-height:100vh;border-radius:0}.modal-body{max-height:calc(100vh - 60px)}}.stat-card{background:#fffc;backdrop-filter:blur(12px);border-radius:16px;padding:20px;box-shadow:0 4px 20px #0000000d;border:1px solid rgba(255,255,255,.5);text-align:center;transition:all .3s ease}.stat-card:hover{transform:translateY(-4px);box-shadow:0 8px 30px #0000001a}.stat-value{font-size:2rem;font-weight:700;color:#3b82f6;margin-bottom:8px}.stat-label{font-size:.875rem;color:#6b7280;font-weight:500;text-transform:uppercase;letter-spacing:.5px}.card-title-danger{color:#dc2626;display:flex;align-items:center;gap:10px;font-size:1.125rem;font-weight:600}.user-highlight{color:#1f2937;font-weight:600;background:#f3f4f6;padding:2px 8px;border-radius:4px;white-space:nowrap}.modal-body p{line-height:1.6;color:#374151;margin-bottom:12px;font-size:.95rem}.modal-body p:last-child{margin-bottom:0}.modal-body strong{color:#1f2937;font-weight:600}.delete-warning{color:#dc2626!important;font-weight:500!important;margin-top:12px!important;font-size:.9rem!important;line-height:1.5!important}.warning-box{background:#fef3c7;border:1px solid #fbbf24;border-radius:8px;padding:14px;margin-top:16px;display:flex;gap:10px;align-items:start}.warning-box-content{flex:1}.warning-box-title{color:#92400e;font-weight:600;margin:0 0 6px;font-size:.95rem;display:flex;align-items:center;gap:6px}.warning-box-text{color:#92400e;margin:0;font-size:.9rem;line-height:1.5}.info-note{color:#6b7280;font-size:.9rem;margin-top:16px;padding:10px 12px;background:#f9fafb;border-radius:6px;border-left:3px solid #3b82f6}.small-modal{max-width:480px}.small-modal .modal-body{padding:24px}.small-modal .card-title{font-size:1.125rem;font-weight:600}.config-section{margin-bottom:24px}.config-section-header{font-size:1.125rem;font-weight:600;color:#1f2937;margin-bottom:8px}.config-section-description{font-size:.875rem;color:#6b7280;margin-bottom:24px;line-height:1.5}.config-time-input{width:100%;padding:12px 16px;border-radius:8px;border:2px solid #d1d5db;font-size:1rem;font-weight:500;transition:border-color .2s;outline:none;background-color:#fff}.config-time-input:focus{border-color:#3b82f6;box-shadow:0 0 0 3px #3b82f61a}.config-info-box{display:flex;align-items:center;gap:12px;margin-top:12px;padding:12px;border-radius:8px}.config-info-box.min-time{background:#f0fdf4;border:1px solid #86efac}.config-info-box.max-time{background:#fef3c7;border:1px solid #fcd34d}.config-info-content{flex:1}.config-info-title{font-size:.875rem;font-weight:600;margin-bottom:4px}.config-info-box.min-time .config-info-title{color:#166534}.config-info-box.max-time .config-info-title{color:#92400e}.config-info-text{font-size:.8125rem}.config-info-box.min-time .config-info-text{color:#15803d}.config-info-box.max-time .config-info-text{color:#b45309}.config-validation-error{display:flex;align-items:start;gap:12px;padding:12px;background:#fee2e2;border:1px solid #f87171;border-radius:8px;margin-bottom:16px}.config-validation-error-title{font-size:.875rem;color:#991b1b;font-weight:600}.config-validation-error-text{font-size:.8125rem;color:#b91c1c;margin-top:4px}.config-how-it-works{margin-top:24px}.config-how-it-works-container{background:#fff;border:1px solid #e5e7eb;border-radius:12px;overflow:hidden;box-shadow:0 1px 3px #0000001a}.config-how-it-works-header{padding:16px 20px;background:linear-gradient(135deg,#667eea,#764ba2);border-bottom:1px solid #e5e7eb;display:flex;align-items:center;gap:12px}.config-how-it-works-title{margin:0;font-size:1rem;font-weight:600;color:#fff}.config-how-it-works-body{padding:24px;background:#fff}.config-how-it-works-list{margin:0;padding-left:24px;line-height:1.8;color:#374151;font-size:.9375rem}.config-how-it-works-list li{margin-bottom:12px}.config-how-it-works-list li:last-child{margin-bottom:0}.attendance-metrics-container{padding:20px;background:#fff}.metrics-summary-cards{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-bottom:24px}.metric-card{background:linear-gradient(135deg,#f8f9fa,#fff);border:1px solid #e5e7eb;border-radius:12px;padding:16px;text-align:center;transition:all .3s ease}.metric-card:hover{transform:translateY(-2px);box-shadow:0 4px 12px #00000014}.metric-card.metric-primary{background:linear-gradient(135deg,#4f46e5,#6366f1);color:#fff;border:none}.metric-card.metric-success{border-left:3px solid #10B981}.metric-card.metric-warning{border-left:3px solid #F59E0B}.metric-value{font-size:28px;font-weight:700;margin-bottom:6px;line-height:1}.metric-primary .metric-value{color:#fff}.metric-label{font-size:13px;font-weight:600;color:#6b7280;margin-bottom:3px}.metric-primary .metric-label{color:#ffffffe6}.metric-sublabel{font-size:11px;color:#9ca3af}.metric-primary .metric-sublabel{color:#ffffffb3}.layout-compact{margin-bottom:16px}.attendance-compact-container{display:flex;gap:24px;align-items:center}.period-selectors-compact{display:flex;gap:8px;align-items:center}.period-title{font-size:14px;font-weight:600;color:#4f46e5;margin:0;text-transform:uppercase;letter-spacing:.5px}.period-btn-compact{padding:8px 16px;border:1px solid #E5E7EB;background:#fff;border-radius:8px;font-size:14px;font-weight:500;color:#6b7280;cursor:pointer;transition:all .2s ease}.period-btn-compact:hover{border-color:#4f46e5;color:#4f46e5}.period-btn-compact.active{background:#4f46e5;border-color:#4f46e5;color:#fff}.attendance-summary-compact{display:flex;gap:16px;align-items:center;margin-left:auto}.card-title-compact{font-size:16px;font-weight:600;color:#1f2937;margin:0}.percentage-display-compact{display:flex;flex-direction:column;align-items:center;padding:0 20px;border-left:2px solid #E5E7EB;border-right:2px solid #E5E7EB}.percentage-number-compact{font-size:32px;font-weight:700;color:#4f46e5;line-height:1}.percentage-label-compact{font-size:11px;color:#9ca3af;text-transform:uppercase;letter-spacing:.5px}.students-count-compact{font-size:14px;color:#6b7280;margin:0}.students-count-compact strong{color:#1f2937;font-size:18px}.period-buttons-wrapper{display:flex;gap:8px}.custom-date-picker{margin-top:12px;padding:16px;background:#f9fafb;border:1px solid #E5E7EB;border-radius:8px;display:flex;flex-direction:column;gap:12px}.date-input-group{display:flex;flex-direction:column;gap:6px}.date-input-group label{font-size:13px;font-weight:600;color:#374151}.date-input{padding:8px 12px;border:1px solid #D1D5DB;border-radius:6px;font-size:14px;color:#1f2937;background:#fff;transition:border-color .2s ease}.date-input:focus{outline:none;border-color:#4f46e5;box-shadow:0 0 0 3px #4f46e51a}.apply-custom-btn{padding:8px 16px;background:#4f46e5;color:#fff;border:none;border-radius:6px;font-size:14px;font-weight:600;cursor:pointer;transition:background .2s ease}.apply-custom-btn:hover{background:#4338ca}.apply-custom-btn:disabled{background:#d1d5db;cursor:not-allowed}.metrics-chart-wrapper{background:#fff;border:1px solid #e5e7eb;border-radius:12px;padding:20px;margin-bottom:20px}.chart-title{font-size:16px;font-weight:600;color:#1f2937;margin-bottom:16px}.metrics-chart-empty{text-align:center;padding:60px 20px;color:#9ca3af}.custom-tooltip-metrics{background:#000000f2;border:1px solid rgba(255,255,255,.1);border-radius:8px;padding:12px 16px;box-shadow:0 4px 12px #0000004d}.tooltip-date{font-size:12px;color:#fff;font-weight:500;margin-bottom:4px}.tooltip-percentage{font-size:24px;font-weight:700;color:#fff;margin-bottom:4px}.tooltip-detail{font-size:13px;color:#e5e7eb;font-weight:400}.metrics-daily-table{background:#fff;border:1px solid #e5e7eb;border-radius:12px;padding:20px}.table-title{font-size:16px;font-weight:600;color:#1f2937;margin-bottom:12px}.table-scroll{overflow-x:auto;overflow-y:auto;max-height:350px}.daily-data-table{width:100%;border-collapse:collapse}.daily-data-table thead th{position:sticky;top:0;background:#f9fafb;padding:12px 16px;text-align:left;font-size:12px;font-weight:600;color:#6b7280;text-transform:uppercase;letter-spacing:.5px;border-bottom:2px solid #E5E7EB;z-index:10}.daily-data-table tbody tr{border-bottom:1px solid #F3F4F6;transition:background-color .2s}.daily-data-table tbody tr:hover{background-color:#f9fafb}.daily-data-table tbody tr.row-empty{opacity:.5}.daily-data-table td{padding:12px 16px;font-size:14px;color:#374151}.percentage-cell{display:flex;align-items:center;gap:12px}.percentage-badge{display:inline-block;padding:4px 12px;border-radius:12px;font-size:13px;font-weight:600;min-width:50px;text-align:center}.badge-success{background:#d1fae5;color:#065f46}.badge-warning{background:#fef3c7;color:#92400e}.badge-danger{background:#fee2e2;color:#991b1b}.mini-progress{flex:1;height:6px;background:#e5e7eb;border-radius:3px;overflow:hidden}.mini-progress-fill{height:100%;background:linear-gradient(90deg,#4f46e5,#6366f1);border-radius:3px;transition:width .3s ease}@media(max-width:1024px){.metrics-summary-cards{grid-template-columns:repeat(2,1fr)}}@media(max-width:768px){.metrics-summary-cards{grid-template-columns:1fr}.attendance-compact-container{flex-direction:column;align-items:flex-start}.period-selectors-compact{flex-wrap:wrap}.attendance-summary-compact{margin-left:0;width:100%;justify-content:space-around}.metrics-chart-wrapper{padding:16px}.metric-value{font-size:24px}.table-scroll{max-height:300px}}.dashboard-horizontal-layout{display:grid;grid-template-columns:1fr 1fr 1fr;grid-auto-rows:minmax(min-content,max-content);gap:20px;width:100%;max-width:1400px;margin:18px auto 0}.dashboard-horizontal-section{display:flex;flex-direction:column;gap:20px}.attendance-average-section{grid-column:1;grid-row:1;display:flex;flex-direction:column;gap:20px;min-height:420px;max-height:420px}@media(max-width:1200px){.dashboard-horizontal-layout{grid-template-columns:1fr 1fr;gap:20px}.attendance-average-section{grid-column:1 / -1;grid-row:auto}}@media(max-width:768px){.dashboard-horizontal-layout{grid-template-columns:1fr;gap:16px}.attendance-average-section{grid-column:1;grid-row:auto}}.stats-card,.student-groups-nav,.attendance-bar-card{background:linear-gradient(135deg,#fffffff2,#f8fafce6);backdrop-filter:blur(20px);border:1px solid rgba(226,232,240,.6);border-radius:24px;padding:24px;box-shadow:0 10px 25px -5px #0000001a,0 4px 6px -2px #0000000d,inset 0 1px #fff9;transition:all .4s cubic-bezier(.4,0,.2,1);position:relative;overflow:hidden}.stats-card .card-title,.student-groups-nav .card-title,.attendance-bar-card .card-title{font-size:1.25rem;font-weight:700;color:var(--text-primary);margin:0 0 1.25rem;text-align:center;letter-spacing:-.02em}.stats-card:before,.student-groups-nav:before,.attendance-bar-card:before{content:"";position:absolute;top:0;left:0;right:0;height:3px;background:linear-gradient(90deg,var(--siae-primary-blue),#60a5fa)}.stats-card:hover,.student-groups-nav:hover,.attendance-bar-card:hover{transform:translateY(-6px) scale(1.02);box-shadow:0 25px 50px -12px #00000026,0 8px 16px -4px #0000001a,inset 0 1px #fffc;background:linear-gradient(135deg,#fffffffa,#f8fafcf2)}@media(max-width:1200px){.dashboard-horizontal-layout{flex-direction:column;gap:24px;align-items:stretch}.dashboard-horizontal-section{max-width:100%;min-width:0}}.attendance-bar-card{padding:24px;min-height:420px;display:flex;flex-direction:column}.card-header-with-select{display:flex;flex-direction:column;align-items:center;margin-bottom:1rem;gap:.75rem}.card-header-with-select .card-title{margin:0;width:100%}.period-select{padding:10px 40px 10px 16px;font-size:.875rem;font-weight:600;border-radius:12px;border:2px solid rgba(74,144,226,.3);background:#4a90e20d;color:var(--siae-primary-blue);cursor:pointer;transition:all .3s cubic-bezier(.4,0,.2,1);outline:none;width:100%;max-width:200px;appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath fill='%234A90E2' d='M6 9L1 4h10z'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 12px center;text-align:center}.period-select:hover{background:#4a90e21a;border-color:#4a90e280;transform:translateY(-1px);box-shadow:0 4px 12px #4a90e226}.period-select:focus{border-color:var(--siae-primary-blue);background:#4a90e214;box-shadow:0 0 0 3px #4a90e226}.attendance-bar-chart{width:100%;flex:1;min-height:200px;max-height:280px}.dashboard-groups-nav-bar{flex:1;display:flex;flex-direction:column}.dashboard-groups-nav-bar .student-groups-nav{height:100%;display:flex;flex-direction:column}.controls-container{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--siae-spacing-lg)}.mode-selectors{display:flex;flex-wrap:wrap;gap:var(--siae-spacing-sm)}.btn-mode{padding:var(--siae-spacing-sm) var(--siae-spacing-lg);border-radius:var(--siae-radius-lg);font-size:.875rem;font-weight:600;box-shadow:var(--siae-shadow-sm);transition:var(--siae-transition-fast);cursor:pointer;background-color:var(--siae-bg-white);color:var(--siae-text-primary);border:1px solid var(--siae-border-light)}.btn-mode:hover{background-color:var(--siae-bg-light)}.btn-mode.active{background-color:var(--siae-primary-blue);color:var(--siae-bg-white);box-shadow:var(--siae-shadow-glow-blue);border-color:var(--siae-primary-blue)}.btn-filter{display:inline-flex;align-items:center;justify-content:center;border-radius:var(--siae-radius-lg);border:1px solid var(--siae-primary-blue);background-color:var(--siae-bg-blue-light);padding:var(--siae-spacing-sm) var(--siae-spacing-md);font-size:.875rem;font-weight:500;color:var(--siae-text-primary);box-shadow:var(--siae-shadow-xs);transition:var(--siae-transition-fast);cursor:pointer}.btn-filter:hover{background-color:#4a90e233}.btn-filter svg{margin-right:8px}.widgets-grid{display:grid;grid-template-columns:1fr;gap:24px}@media(min-width:768px){.widgets-grid{grid-template-columns:repeat(2,1fr)}}.stats-card{background:linear-gradient(135deg,#fffffff2,#f8fafce6);backdrop-filter:blur(20px);border:1px solid rgba(226,232,240,.6);border-radius:24px;padding:24px;min-height:420px;box-shadow:0 10px 25px -5px #0000001a,0 4px 6px -2px #0000000d,inset 0 1px #fff9;transition:all .4s cubic-bezier(.4,0,.2,1);position:relative;overflow:hidden;display:flex;flex-direction:column;justify-content:flex-start;align-items:stretch;text-align:center}.stats-card:before{content:"";position:absolute;top:0;left:0;right:0;height:3px;background:linear-gradient(90deg,var(--siae-primary-blue),#60a5fa)}.stats-card:hover{transform:translateY(-6px) scale(1.02);box-shadow:0 25px 50px -12px #00000026,0 8px 16px -4px #0000001a,inset 0 1px #fffc;background:linear-gradient(135deg,#fffffffa,#f8fafcf2)}.stats-circle{width:256px;height:256px;border-radius:50%;background-color:#4a90e233;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:16px;border:4px solid rgba(74,144,226,.5);color:var(--siae-dark-blue)}.stats-circle-label{font-size:.75rem;font-weight:600}.stats-circle-number{font-size:3rem;font-weight:800;margin:8px 0}.stats-circle-sublabel{font-size:.875rem;font-weight:600;margin-top:8px}.student-groups-nav{min-height:220px;max-height:none;overflow-y:auto;flex:1}.semesters-container{display:flex;flex-direction:column;gap:24px}.semester-section{padding-bottom:16px;border-bottom:1px solid #e5e7eb}.semester-title{font-size:.875rem;font-weight:700;color:var(--siae-primary-blue);margin-top:0;margin-bottom:12px;text-transform:uppercase;letter-spacing:.05em;display:flex;align-items:center;gap:8px}.group-count{font-size:.75rem;font-weight:600;color:var(--siae-primary-blue);background-color:#4a90e21a;padding:2px 8px;border-radius:12px;text-transform:none;letter-spacing:normal}.no-groups-message{text-align:center;padding:24px;color:var(--siae-text-secondary);font-style:italic}.no-groups-message p{margin:0;font-size:.9rem}.group-buttons{display:flex;flex-wrap:wrap;gap:8px}.group-btn{padding:var(--siae-spacing-xs) var(--siae-spacing-sm);border-radius:var(--siae-radius-md);font-size:.875rem;font-weight:600;background-color:var(--siae-bg-white);color:var(--siae-text-primary);border:2px solid var(--siae-border-light);cursor:pointer;transition:var(--siae-transition-fast);box-shadow:var(--siae-shadow-xs)}.group-btn:hover{background-color:var(--siae-bg-light);border-color:var(--siae-primary-blue);transform:translateY(-1px)}.group-btn.active{background-color:var(--siae-primary-blue);color:var(--siae-bg-white);font-weight:700;box-shadow:var(--siae-shadow-glow-blue);border-color:var(--siae-primary-blue)}.group-attendance-section{margin-top:24px}.group-attendance-card{background:linear-gradient(135deg,#fffffff2,#f8fafce6);backdrop-filter:blur(20px);border:1px solid rgba(226,232,240,.6);border-radius:20px;padding:24px;box-shadow:0 10px 25px -5px #0000001a,0 4px 6px -2px #0000000d,inset 0 1px #fff9;transition:all .4s cubic-bezier(.4,0,.2,1);position:relative;overflow:hidden;height:auto;display:flex;flex-direction:column;align-items:center}.group-attendance-card:before{content:"";position:absolute;top:0;left:0;right:0;height:3px;background:linear-gradient(90deg,var(--siae-primary-blue),#60a5fa)}.group-attendance-card:hover{transform:translateY(-4px) scale(1.01);box-shadow:0 20px 40px -10px #00000026,0 6px 12px -3px #0000001a,inset 0 1px #fffc;background:linear-gradient(135deg,#fffffffa,#f8fafcf2)}.group-attendance-card.layout-split{display:grid;grid-template-columns:1fr;align-items:start;text-align:left}@media(min-width:768px){.group-attendance-card.layout-split{grid-template-columns:1fr 2fr;gap:24px}}.period-selectors{padding:16px;border-bottom:2px solid #f3f4f6}@media(min-width:768px){.period-selectors{border-right:2px solid #f3f4f6;border-bottom:none;height:100%}}.period-title{font-size:.875rem;font-weight:700;color:var(--siae-primary-blue);margin-top:0;margin-bottom:16px;text-transform:uppercase;letter-spacing:.05em}.period-btn{display:block;width:100%;padding:var(--siae-spacing-sm) var(--siae-spacing-md);margin-bottom:var(--siae-spacing-sm);border-radius:var(--siae-radius-md);font-size:.875rem;font-weight:600;background-color:var(--siae-bg-white);color:var(--siae-text-primary);border:2px solid var(--siae-border-light);cursor:pointer;transition:var(--siae-transition-fast);text-align:left;box-shadow:var(--siae-shadow-xs)}.period-btn:hover{background-color:var(--siae-bg-light);border-color:var(--siae-primary-blue);transform:translate(2px)}.period-btn.active{background-color:var(--siae-bg-blue-light);color:var(--siae-primary-blue);font-weight:700;border-color:var(--siae-primary-blue);box-shadow:var(--siae-shadow-glow-blue)}.attendance-details-container{display:flex;flex-direction:column;align-items:center;padding:16px}.card-title.centered-title{text-align:center}.no-group-selected{font-size:1rem;color:var(--siae-text-secondary);margin-top:20px;text-align:center;padding:40px;font-style:italic}.attendance-details{display:flex;flex-direction:column;align-items:center;margin-top:20px}.attendance-percentage-circle{width:180px;height:180px;border-radius:50%;background-color:#4a90e233;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:16px;border:4px solid rgba(74,144,226,.5);color:var(--siae-dark-blue);margin-bottom:20px}.attendance-number{font-size:3rem;font-weight:800;margin:8px 0}.attendance-label{font-size:.875rem;font-weight:600}.total-students-info{font-size:1rem;color:var(--siae-dark);font-weight:500}.total-students-info strong{font-weight:700;color:var(--siae-primary-blue)}.search-bar-container{padding:0 24px 20px}.search-input{width:100%;font-family:Inter,sans-serif;font-size:.875rem;padding:10px 16px;border:1px solid #d1d5db;border-radius:.5rem;box-shadow:0 1px 2px #0000000d;transition:all .2s ease}.search-input::placeholder{color:#9ca3af}.search-input:focus{outline:none;border-color:var(--siae-primary-blue);box-shadow:0 0 0 3px #4a90e24d}.alert-row{display:grid;grid-template-columns:3fr 1fr 1fr 1fr;align-items:center;width:100%;border-bottom:1px solid #f3f4f6}.alert-row:last-child{border-bottom:none}.alert-row--warning{background-color:#fef9c3}.alert-row--danger{background-color:#fee2e2}.alert-row--warning:hover{background-color:#fef08a}.alert-row--danger:hover{background-color:#fecaca}.user-cards-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:var(--siae-spacing-lg);width:100%}.user-card{background-color:#fff;border-radius:.75rem;box-shadow:var(--siae-shadow-md);border:1px solid #f3f4f6;overflow:hidden;height:auto}.user-card-header{background-color:#f9fafb;padding:16px 24px;border-bottom:1px solid #f3f4f6}.user-name{font-size:1.25rem;font-weight:700;color:#000;margin:0}.user-role{font-size:.875rem;font-weight:500;color:var(--siae-primary-blue)}.permission-list{padding:24px}.permission-list-title{font-size:.875rem;font-weight:600;color:#6b7280;margin-top:0;margin-bottom:16px;text-transform:uppercase}.permission-item{display:flex;justify-content:space-between;align-items:center;padding:12px 0;border-bottom:1px solid #f3f4f6}.permission-item:last-child{border-bottom:none}.permission-label{font-size:.875rem;font-weight:500;color:var(--siae-dark)}.toggle-switch{position:relative;display:inline-block;width:50px;height:28px}.slider{position:absolute;cursor:pointer;inset:0;background-color:#ccc;transition:.4s;border-radius:28px}.slider:before{position:absolute;content:"";height:20px;width:20px;left:4px;bottom:4px;background-color:#fff;transition:.4s;border-radius:50%}input:checked+.slider{background-color:var(--siae-primary-blue)}input:focus+.slider{box-shadow:0 0 1px var(--siae-primary-blue)}input:checked+.slider:before{transform:translate(22px)}.breadcrumbs-nav{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--siae-spacing-lg);padding:var(--siae-spacing-sm) var(--siae-spacing-md);background:linear-gradient(135deg,#4a90e20d,#60a5fa05);border-radius:var(--siae-radius-lg);border:1px solid rgba(74,144,226,.15);gap:var(--siae-spacing-md);flex-wrap:wrap}.breadcrumb-back-btn{display:flex;align-items:center;gap:var(--siae-spacing-xs);padding:var(--siae-spacing-xs) var(--siae-spacing-md);background:#fff;border:2px solid var(--siae-primary-blue);border-radius:var(--siae-radius-md);color:var(--siae-primary-blue);font-weight:600;font-size:.9375rem;cursor:pointer;transition:all var(--siae-transition-fast);box-shadow:0 2px 4px #4a90e21a}.breadcrumb-back-btn:hover{background:var(--siae-primary-blue);color:#fff;transform:translate(-4px);box-shadow:0 4px 8px #4a90e233}.breadcrumb-path{display:flex;align-items:center;gap:var(--siae-spacing-xs);color:var(--siae-text-secondary);font-size:.9375rem}.breadcrumb-separator{color:var(--siae-border-medium);font-weight:300}.breadcrumb-current{color:var(--siae-primary-blue);font-weight:600}.student-management-container{display:grid;grid-template-columns:repeat(2,1fr);gap:var(--siae-spacing-xl);width:100%;max-width:1200px;margin:0 auto}.student-management-container.form-active{display:block}.action-trigger-card{background:#fff;border-radius:var(--siae-radius-xl);padding:var(--siae-spacing-xxl);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--siae-spacing-lg);cursor:pointer;transition:all .3s cubic-bezier(.4,0,.2,1);border:2px solid rgba(74,144,226,.15);box-shadow:0 4px 6px #0000000d,0 10px 15px #4a90e21a;min-height:220px;position:relative;overflow:hidden}.action-trigger-card:before{content:"";position:absolute;top:0;left:0;right:0;height:3px;background:linear-gradient(90deg,var(--siae-primary-blue),#60a5fa);transform:scaleX(0);transform-origin:left;transition:transform .3s ease}.action-trigger-card:hover:before{transform:scaleX(1)}.action-trigger-card:hover{transform:translateY(-8px) scale(1.02);box-shadow:0 12px 24px #00000014,0 20px 40px #4a90e226;border-color:var(--siae-primary-blue)}.action-trigger-card:active{transform:translateY(-4px) scale(1.01)}.action-trigger-card.hidden{display:none}.action-trigger-card span{font-size:1.25rem;font-weight:700;color:var(--siae-text-primary);text-align:center;letter-spacing:-.02em;transition:color var(--siae-transition-fast)}.action-trigger-card:hover span{color:var(--siae-primary-blue)}.student-icon,.link-icon,.group-icon,.calendar-icon{color:var(--siae-text-secondary);transition:all .3s ease;filter:drop-shadow(0 2px 4px rgba(0,0,0,.1))}.student-management-card:hover .student-icon{color:var(--siae-primary-blue);transform:scale(1.1)}.link-nfc-card:hover .link-icon{color:#10b981;transform:scale(1.1) rotate(-10deg)}.group-management-card:hover .group-icon{color:#8b5cf6;transform:scale(1.1)}.school-cycle-card:hover .calendar-icon{color:#f59e0b;transform:scale(1.1)}.student-form-card{background:#fff;border-radius:var(--siae-radius-xl);padding:var(--siae-spacing-xl);box-shadow:var(--siae-shadow-lg);border:1px solid var(--siae-border-light);margin-bottom:var(--siae-spacing-xl);animation:slideUp .3s ease}.form-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--siae-spacing-lg);padding-bottom:var(--siae-spacing-md);border-bottom:2px solid rgba(74,144,226,.1)}.form-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:var(--siae-spacing-md);margin-bottom:var(--siae-spacing-lg)}.form-actions{display:flex;justify-content:flex-end;gap:var(--siae-spacing-md);padding-top:var(--siae-spacing-lg);border-top:2px solid var(--siae-border-light)}.action-button{padding:var(--siae-spacing-sm) var(--siae-spacing-lg);border-radius:var(--siae-radius-md);font-weight:600;font-size:.9375rem;cursor:pointer;transition:all var(--siae-transition-fast);display:inline-flex;align-items:center;gap:var(--siae-spacing-xs);border:none}.action-button.save-button{background:linear-gradient(135deg,var(--siae-primary-blue),#60a5fa);color:#fff;box-shadow:0 4px 12px #4a90e24d}.action-button.save-button:hover{transform:translateY(-2px);box-shadow:0 6px 16px #4a90e266}.action-button.clear-button{background:#fff;color:var(--siae-text-secondary);border:2px solid var(--siae-border-medium)}.action-button.clear-button:hover{background:var(--siae-bg-hover);border-color:var(--siae-primary-blue);color:var(--siae-primary-blue)}.action-button:disabled{opacity:.6;cursor:not-allowed;transform:none!important}.action-button.add-button{background:linear-gradient(135deg,#10b981,#059669);color:#fff;box-shadow:0 4px 12px #10b9814d}.action-button.add-button:hover{transform:translateY(-2px);box-shadow:0 6px 16px #10b98166}.action-button.compact{padding:var(--siae-spacing-xs) var(--siae-spacing-md);font-size:.875rem}.group-management-view{background:#fff;border-radius:var(--siae-radius-xl);padding:var(--siae-spacing-xl);box-shadow:var(--siae-shadow-lg);border:1px solid var(--siae-border-light);animation:slideUp .3s ease}.main-section{margin-top:var(--siae-spacing-lg)}.section-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--siae-spacing-lg);padding-bottom:var(--siae-spacing-md);border-bottom:2px solid var(--siae-border-light)}.title-group{display:flex;align-items:center;gap:var(--siae-spacing-sm)}.groups-counter{display:inline-block;padding:.25rem .75rem;background:#4a90e21a;color:var(--siae-primary-blue);border-radius:var(--siae-radius-full);font-size:.875rem;font-weight:600}.no-groups-message{text-align:center;padding:var(--siae-spacing-xxl);color:var(--siae-text-secondary)}.no-groups-message .placeholder-icon{color:var(--siae-border-medium);margin-bottom:var(--siae-spacing-md)}.no-groups-message h4{font-size:1.25rem;color:var(--siae-text-primary);margin-bottom:var(--siae-spacing-sm);font-weight:700}.no-groups-message p{font-size:1rem;color:var(--siae-text-secondary);margin-bottom:var(--siae-spacing-lg)}.groups-by-semester{display:flex;flex-direction:column;gap:var(--siae-spacing-xl)}.semester-section{border-bottom:1px solid var(--siae-border-light);padding-bottom:var(--siae-spacing-lg)}.semester-section:last-child{border-bottom:none}.semester-title-button{width:100%;background:none;border:none;cursor:pointer;padding:var(--siae-spacing-sm) 0;display:flex;justify-content:space-between;align-items:center;transition:all var(--siae-transition-fast)}.semester-title-button:hover{background:#4a90e20d;padding-left:var(--siae-spacing-sm);padding-right:var(--siae-spacing-sm);border-radius:var(--siae-radius-md)}.semester-title{font-size:1.125rem;font-weight:700;color:var(--siae-primary-blue);margin:0;display:flex;align-items:center;gap:var(--siae-spacing-sm)}.semester-count{font-size:.875rem;font-weight:600;color:var(--siae-text-secondary);background:#4a90e21a;padding:.25rem .75rem;border-radius:var(--siae-radius-full)}.semester-chevron{transition:transform var(--siae-transition-fast);color:var(--siae-primary-blue)}.semester-chevron.collapsed{transform:rotate(-90deg)}.semester-content{overflow:hidden;transition:all .3s ease;max-height:5000px;opacity:1}.semester-content.collapsed{max-height:0;opacity:0;margin-top:0}.semester-content.expanded{margin-top:var(--siae-spacing-md)}.groups-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:var(--siae-spacing-md)}.group-card{background:linear-gradient(135deg,#fffffff2,#f8fafce6);border:1px solid var(--siae-border-light);border-radius:var(--siae-radius-lg);padding:var(--siae-spacing-md);box-shadow:var(--siae-shadow-sm);transition:all var(--siae-transition-fast)}.group-card:hover{transform:translateY(-4px);box-shadow:var(--siae-shadow-lg);border-color:var(--siae-primary-blue)}.group-card-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:var(--siae-spacing-sm)}.group-info-section{flex:1}.group-name{font-size:1rem;font-weight:700;color:var(--siae-text-primary);margin:0 0 var(--siae-spacing-xs) 0}.group-badges{display:flex;gap:var(--siae-spacing-xs);flex-wrap:wrap}.group-turno,.group-semestre{display:inline-block;padding:.25rem .75rem;border-radius:var(--siae-radius-full);font-size:.75rem;font-weight:600;text-transform:uppercase}.group-turno{background:#8b5cf61a;color:#8b5cf6}.group-semestre{background:#4a90e21a;color:var(--siae-primary-blue)}.group-actions{display:flex;gap:var(--siae-spacing-xs)}.edit-group-btn,.delete-group-btn{padding:var(--siae-spacing-xs);border:none;background:transparent;cursor:pointer;border-radius:var(--siae-radius-sm);transition:all var(--siae-transition-fast);display:flex;align-items:center;justify-content:center}.edit-group-btn{color:var(--siae-primary-blue)}.edit-group-btn:hover{background:#4a90e21a;transform:scale(1.1)}.delete-group-btn{color:var(--siae-danger)}.delete-group-btn:hover{background:#ef44441a;transform:scale(1.1)}.group-card-body{margin-top:var(--siae-spacing-sm)}.group-warning{font-size:.875rem;color:var(--siae-warning);padding:var(--siae-spacing-xs) var(--siae-spacing-sm);background:#f59e0b1a;border-radius:var(--siae-radius-sm);border-left:3px solid var(--siae-warning)}.cycle-management-wrapper{width:100%}.cycle-management-view{background:#fff;border-radius:var(--siae-radius-xl);padding:var(--siae-spacing-xl);box-shadow:var(--siae-shadow-lg);border:1px solid var(--siae-border-light);animation:slideUp .3s ease}.feature-description{background:#4a90e20d;padding:var(--siae-spacing-md);border-radius:var(--siae-radius-md);border-left:4px solid var(--siae-primary-blue);margin-bottom:var(--siae-spacing-lg)}.feature-description p{margin:0;color:var(--siae-text-secondary);font-size:.9375rem}.cycles-list-section{margin-top:var(--siae-spacing-lg)}@keyframes slideUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@media(max-width:1024px){.student-management-container{max-width:900px}.groups-grid{grid-template-columns:repeat(auto-fill,minmax(240px,1fr))}.form-grid{grid-template-columns:1fr}}@media(max-width:768px){.breadcrumbs-nav{flex-direction:column;align-items:flex-start}.breadcrumb-back-btn,.breadcrumb-path{width:100%;justify-content:center}.student-management-container{grid-template-columns:1fr;max-width:100%;gap:var(--siae-spacing-lg)}.action-trigger-card{min-height:180px;padding:var(--siae-spacing-xl)}.form-actions{flex-direction:column}.action-button{width:100%;justify-content:center}.groups-grid{grid-template-columns:1fr}.section-header{flex-direction:column;align-items:flex-start;gap:var(--siae-spacing-md)}}@media(max-width:480px){.action-trigger-card{padding:var(--siae-spacing-lg);min-height:160px}.action-trigger-card span{font-size:1rem}.student-icon,.link-icon,.group-icon,.calendar-icon{width:48px;height:48px}.breadcrumb-back-btn span{display:none}.breadcrumb-path{font-size:.875rem}.student-form-card,.group-management-view,.cycle-management-view{padding:var(--siae-spacing-md)}.group-card{padding:var(--siae-spacing-sm)}}:root{--users-primary: #3b82f6;--users-primary-dark: #2563eb;--users-success: #10b981;--users-danger: #ef4444;--users-gradient: linear-gradient(135deg, #667eea 0%, #764ba2 100%);--users-glass-bg: rgba(255, 255, 255, .9);--users-glass-border: rgba(255, 255, 255, .2);--users-shadow-sm: 0 2px 4px rgba(0, 0, 0, .05);--users-shadow-md: 0 4px 6px rgba(0, 0, 0, .1);--users-shadow-lg: 0 10px 15px -3px rgba(0, 0, 0, .1)}.users-toolbar{display:flex;justify-content:space-between;align-items:center;gap:1.5rem;margin-bottom:2rem;background:#fff;padding:1.5rem;border-radius:16px;box-shadow:0 2px 8px #0000000d;border:1px solid #f3f4f6;width:100%}.search-container{position:relative;flex:1;min-width:280px;max-width:100%;display:flex;align-items:center}.search-icon{display:none}.search-input-premium{width:100%;padding:.75rem 1rem .75rem 2.75rem;border:2px solid #e5e7eb;border-radius:12px;font-size:.95rem;font-weight:500;color:#1f2937;background:#f9fafb;transition:all .3s ease;outline:none;position:relative;z-index:1}.search-input-premium::placeholder{color:#9ca3af;font-weight:400}.search-input-premium:focus{background:#fff;border-color:var(--users-primary);box-shadow:0 0 0 3px #3b82f61a}.users-grid-container{display:grid;grid-template-columns:repeat(auto-fill,minmax(340px,1fr));gap:1.5rem;width:100%;max-width:1400px;margin:0 auto;padding:.5rem}.users-btn{display:inline-flex;align-items:center;gap:.5rem;padding:.75rem 1.5rem;border:none;border-radius:8px;font-size:.95rem;font-weight:600;cursor:pointer;transition:all .3s ease;box-shadow:var(--users-shadow-sm)}.users-btn:hover{transform:translateY(-2px);box-shadow:var(--users-shadow-md)}.users-btn:active{transform:translateY(0)}.users-btn-primary{background:linear-gradient(135deg,#3b82f6,#2563eb);color:#fff;box-shadow:0 4px 6px #2563eb33}.users-btn-primary:hover{box-shadow:0 6px 12px #2563eb4d}.user-permission-card{background:#fff;border-radius:12px;padding:0;box-shadow:var(--users-shadow-sm);border:1px solid #e5e7eb;transition:all .3s ease;overflow:hidden;display:flex;flex-direction:column}.user-permission-card:hover{transform:translateY(-4px);box-shadow:var(--users-shadow-lg);border-color:var(--users-primary)}.user-info-header{padding:1rem;background:linear-gradient(to right,#f8fafc,#fff);border-bottom:1px solid #e5e7eb;display:flex;align-items:center;gap:1rem}.user-avatar{width:42px;height:42px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:1rem;font-weight:700;color:#fff;box-shadow:0 2px 4px #0000001a;flex-shrink:0}.user-details{flex:1;min-width:0}.user-name{font-size:1rem;font-weight:700;color:#1f2937;margin:0 0 .25rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.user-role-badge{display:inline-block;padding:.25rem .75rem;background:#eff6ff;color:var(--users-primary);border-radius:9999px;font-size:.75rem;font-weight:600;text-transform:uppercase;letter-spacing:.5px;border:1px solid #dbeafe}.user-username{display:block;font-size:.8rem;color:#6b7280;margin-top:.25rem}.permissions-list{padding:1rem;display:grid;grid-template-columns:1fr 1fr;gap:.75rem;flex:1;background:#fff}.permission-toggle-item{display:flex;flex-direction:column;align-items:flex-start;gap:.5rem;padding:.75rem;background:#f9fafb;border-radius:8px;border:1px solid transparent;transition:all .2s ease}.permission-toggle-item:hover{background:#fff;border-color:#e5e7eb;box-shadow:0 2px 4px #00000008}.permission-toggle-label label{font-size:.8rem;font-weight:600;color:#4b5563;cursor:pointer;display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.toggle-switch{position:relative;display:inline-block;width:36px;height:20px;flex-shrink:0}.toggle-switch input{opacity:0;width:0;height:0}.toggle-switch .slider{position:absolute;cursor:pointer;inset:0;background-color:#d1d5db;transition:.3s;border-radius:34px}.toggle-switch .slider:before{position:absolute;content:"";height:16px;width:16px;left:2px;bottom:2px;background-color:#fff;transition:.3s;border-radius:50%;box-shadow:0 1px 2px #0003}.toggle-switch input:checked+.slider{background:var(--users-success)}.toggle-switch input:checked+.slider:before{transform:translate(16px)}.card-actions-group{display:flex;gap:.75rem;padding:.75rem 1rem;border-top:1px solid #e5e7eb;background:#f9fafb}.edit-user-btn,.delete-user-btn-full{flex:1;padding:.5rem;border-radius:6px;font-size:.85rem;font-weight:600;cursor:pointer;transition:all .2s ease;display:flex;align-items:center;justify-content:center;gap:.5rem;border:1px solid transparent}.edit-user-btn{background:#fff;color:var(--users-primary);border-color:#dbeafe}.edit-user-btn:hover{border-color:var(--users-primary);background:#eff6ff}.delete-user-btn-full{background:#fff;color:#6b7280;border-color:#e5e7eb}.delete-user-btn-full:hover{border-color:var(--users-danger);color:var(--users-danger);background:#fef2f2}.loading-message{text-align:center;padding:3rem;color:#6b7280;font-size:1.1rem;font-weight:500}.empty-state{text-align:center;padding:3rem;background:#fff;border-radius:16px;border:2px dashed #e5e7eb;margin-top:2rem}.empty-state svg{color:#9ca3af;margin-bottom:1rem}.empty-state h3{font-size:1.25rem;color:#1f2937;margin-bottom:.5rem;font-weight:700}.empty-state p{font-size:1rem;color:#6b7280;margin-bottom:1.5rem}@media(max-width:1200px){.users-grid-container{grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:1.25rem}}@media(max-width:768px){.users-toolbar{flex-direction:column;align-items:stretch;gap:1rem;padding:1rem}.search-container{min-width:auto;max-width:100%}.users-grid-container{grid-template-columns:1fr;gap:1rem;padding:0}.users-btn{width:100%;justify-content:center}}@media(max-width:480px){.search-input-premium{font-size:.875rem;padding:.625rem 1rem .625rem 2.5rem}.search-icon{left:12px}}.toast-container{position:fixed;top:80px;right:var(--siae-spacing-lg);z-index:10000;display:flex;flex-direction:column;gap:var(--siae-spacing-sm);pointer-events:none;max-width:420px;width:calc(100% - 2 * var(--siae-spacing-lg))}.toast{background:#fff;border-radius:var(--siae-radius-lg);box-shadow:0 4px 12px #0000001a,0 8px 24px #00000014,0 0 0 1px #0000000d;pointer-events:auto;opacity:0;transform:translate(400px);transition:all .3s cubic-bezier(.4,0,.2,1);overflow:hidden;position:relative;min-height:64px;backdrop-filter:blur(10px)}.toast-visible{opacity:1;transform:translate(0)}.toast-exiting{opacity:0;transform:translate(400px) scale(.95)}.toast-content{display:flex;align-items:center;gap:var(--siae-spacing-sm);padding:var(--siae-spacing-md) var(--siae-spacing-lg);position:relative}.toast-icon{flex-shrink:0;display:flex;align-items:center;justify-content:center;width:40px;height:40px;border-radius:var(--siae-radius-full);font-weight:600}.toast-message{flex:1;font-size:.9375rem;font-weight:500;line-height:1.5;color:var(--siae-text-primary);word-break:break-word}.toast-close{flex-shrink:0;background:transparent;border:none;cursor:pointer;display:flex;align-items:center;justify-content:center;padding:var(--siae-spacing-xs);border-radius:var(--siae-radius-md);color:var(--siae-text-secondary);transition:all var(--siae-transition-fast);width:28px;height:28px}.toast-close:hover{background:#0000000d;color:var(--siae-text-primary);transform:scale(1.1)}.toast-progress{position:absolute;bottom:0;left:0;right:0;height:3px;background:#0000000d;overflow:hidden}.toast-progress-bar{height:100%;width:100%;transform-origin:left;animation:toastProgress 5s linear forwards}@keyframes toastProgress{0%{transform:scaleX(1)}to{transform:scaleX(0)}}.toast-success{border-left:4px solid var(--siae-success)}.toast-success .toast-icon{background:linear-gradient(135deg,#10b9811a,#10b9810d);color:var(--siae-success)}.toast-success .toast-progress-bar{background:linear-gradient(90deg,var(--siae-success),#34d399)}.toast-error{border-left:4px solid var(--siae-danger)}.toast-error .toast-icon{background:linear-gradient(135deg,#ef44441a,#ef44440d);color:var(--siae-danger)}.toast-error .toast-progress-bar{background:linear-gradient(90deg,var(--siae-danger),#f87171)}.toast-warning{border-left:4px solid #F59E0B}.toast-warning .toast-icon{background:linear-gradient(135deg,#f59e0b1a,#f59e0b0d);color:#f59e0b}.toast-warning .toast-progress-bar{background:linear-gradient(90deg,#f59e0b,#fbbf24)}.toast-info{border-left:4px solid var(--siae-primary-blue)}.toast-info .toast-icon{background:linear-gradient(135deg,#4a90e21a,#4a90e20d);color:var(--siae-primary-blue)}.toast-info .toast-progress-bar{background:linear-gradient(90deg,var(--siae-primary-blue),#60a5fa)}@media(max-width:768px){.toast-container{right:var(--siae-spacing-md);left:var(--siae-spacing-md);width:auto;max-width:none;top:70px}.toast-content{padding:var(--siae-spacing-sm) var(--siae-spacing-md)}.toast-icon{width:36px;height:36px}.toast-message{font-size:.875rem}}@media(max-width:480px){.toast-container{right:var(--siae-spacing-sm);left:var(--siae-spacing-sm);top:60px}.toast-content{padding:var(--siae-spacing-sm);gap:var(--siae-spacing-xs)}.toast-icon{width:32px;height:32px}.toast-message{font-size:.8125rem}.toast-close{width:24px;height:24px}}.toast:nth-child(1){animation-delay:0s}.toast:nth-child(2){animation-delay:.1s}.toast:nth-child(3){animation-delay:.2s}.toast:hover .toast-progress-bar{animation-play-state:paused}.login-container{display:flex;align-items:center;justify-content:center;width:100%;min-height:100vh;overflow:hidden;background-image:url(/fondo.jpg);background-size:cover;background-position:center;background-attachment:fixed;padding:1.5rem;position:relative}.login-container:before{content:"";position:absolute;inset:0;background:linear-gradient(135deg,#1e40afd9,#3b82f6bf,#6366f1d9);animation:gradientPulse 8s ease-in-out infinite}@keyframes gradientPulse{0%,to{opacity:.85}50%{opacity:.75}}@keyframes slideUp{0%{opacity:0;transform:translateY(30px)}to{opacity:1;transform:translateY(0)}}.login-card{background:#fffffff2;backdrop-filter:blur(20px);padding:2.5rem 3rem;border-radius:1.5rem;box-shadow:0 25px 50px -12px #00000040,inset 0 1px #fffc;width:100%;max-width:450px;text-align:center;border:1px solid rgba(255,255,255,.3);position:relative;z-index:1;animation:slideUp .6s cubic-bezier(0,0,.2,1);overflow:hidden}.login-card:before{content:"";position:absolute;top:0;left:0;right:0;height:5px;background:linear-gradient(135deg,#3b82f6,#60a5fa)}.login-logo{font-size:3rem;font-weight:800;color:#1e40af;letter-spacing:-.025em;margin-bottom:.5rem;text-shadow:0 2px 10px rgba(30,64,175,.2)}.login-title{font-size:1.5rem;font-weight:700;color:#0f172a;margin:auto;line-height:1.4;letter-spacing:-.01em}.login-subtitle{font-size:.875rem;color:#6b7280;margin-top:.25rem;margin-bottom:2rem;font-weight:500;line-height:1.5}.login-form{text-align:left;display:flex;flex-direction:column;gap:1.25rem}.input-group{display:flex;flex-direction:column}.input-group label{font-size:.875rem;font-weight:600;color:#0f172a;margin-bottom:.5rem}.input-group input{font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-size:1rem;padding:.75rem 1rem;border:1px solid #d1d5db;border-radius:.5rem;box-shadow:0 1px 2px #0000000d;transition:all .2s ease;background-color:#fff;color:#0f172a;width:100%}.password-input-wrapper{position:relative;display:flex;align-items:center}.password-input-wrapper input{padding-right:2.5rem}.show-password-button{position:absolute;right:.75rem;background:none;border:none;cursor:pointer;color:#6b7280;display:flex;align-items:center;justify-content:center;padding:.25rem;border-radius:.25rem;transition:color .2s ease}.show-password-button:hover{color:#1e40af;background-color:#1e40af0d}.show-password-button:focus{outline:none;color:#1e40af}.input-group input:focus{outline:none;border-color:#1e40af;background-color:#fff;box-shadow:0 0 0 3px #4a90e24d}.input-group input:hover:not(:focus){border-color:#cbd5e1}.login-button{font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-size:1rem;font-weight:600;color:#fff;background-color:#1e40af;border:none;padding:.75rem;border-radius:.5rem;cursor:pointer;transition:all .2s ease;box-shadow:0 4px 6px -1px #0000001a,0 2px 4px -1px #0000000f;margin-top:.5rem}.login-button:hover{background-color:#1e3a8a;box-shadow:0 8px 20px #1e40af66;transform:translateY(-1px)}.login-button:active{transform:translateY(0)}.login-button:disabled{background-color:#9ca3af;cursor:not-allowed;box-shadow:none;transform:none}.login-error{background-color:#fee2e2;color:#b91c1c;padding:.75rem 1rem;border-radius:.5rem;font-size:.875rem;font-weight:500;text-align:center;animation:shake .4s ease}@keyframes shake{0%,to{transform:translate(0)}25%{transform:translate(-8px)}75%{transform:translate(8px)}}.loading-container{display:flex;align-items:center;justify-content:center;width:100%;min-height:100vh;background-image:url(/fondo.jpg);background-size:cover;background-position:center;background-attachment:fixed;position:relative;overflow:hidden}.loading-container:before{content:"";position:absolute;inset:0;background:linear-gradient(135deg,#1e40afd9,#3b82f6bf,#6366f1d9);animation:gradientPulse 8s ease-in-out infinite}.loading-logo{font-size:6rem;font-weight:900;color:#1e40af;letter-spacing:.05em;position:relative;z-index:1;filter:drop-shadow(0 10px 30px rgba(30,64,175,.3))}.shimmer-animation{animation:shimmer 1.5s infinite linear;background:linear-gradient(90deg,#1e3a8a 25%,#1e40af,#1e3a8a 75%);background-size:400% 100%;-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent}@keyframes shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}@media(max-width:768px){.login-container,.loading-container{padding:1rem}.login-card{padding:2rem 1.75rem;max-width:100%}.login-logo{font-size:2.5rem}.login-title{font-size:1.125rem}.login-subtitle{font-size:.875rem}.loading-logo{font-size:4.5rem}}@media(max-width:480px){.login-card{padding:1.75rem 1.5rem}.login-logo{font-size:2rem}.login-title{font-size:1rem}.login-subtitle{font-size:.8125rem;margin-bottom:1.5rem}.input-group input{padding:.75rem 1rem;font-size:.9375rem}.login-button{padding:.875rem 1.25rem;font-size:.9375rem}.loading-logo{font-size:3.5rem}}@media(max-width:360px){.login-card{padding:1.5rem 1.25rem}.login-logo{font-size:1.75rem}.loading-logo{font-size:3rem}}html{margin:0;padding:0;height:100%;width:100%}body{margin:0;padding:0;height:100%;width:100%;overflow-x:hidden;font-family:Inter,sans-serif;background-color:#f8f9fb;color:#374151;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}*{box-sizing:border-box}@media(max-width:768px){html{-webkit-text-size-adjust:100%;-webkit-tap-highlight-color:rgba(0,0,0,.1)}body{overflow-x:hidden}.sidebar{width:260px!important}.sidebar.collapsed{width:0!important}.card{padding:16px!important;border-radius:12px!important}.users-btn,button{min-height:44px!important;padding:10px 16px!important;font-size:.9rem!important}.users-table-wrapper,.table-wrapper{overflow-x:auto;-webkit-overflow-scrolling:touch}.users-grid-container{padding:12px!important}.stat-card{padding:16px!important}.modal-overlay{padding:0!important}.modal-content{width:100%!important;height:100%!important;max-width:100%!important;max-height:100%!important;border-radius:0!important;margin:0!important}.modal-body{max-height:calc(100vh - 120px)!important}.form-group{margin-bottom:16px!important}.form-input,.form-select{padding:12px!important;font-size:16px!important}.main-content{padding:12px!important}.users-toolbar{padding:12px!important;gap:8px!important}h1{font-size:1.5rem!important}h2{font-size:1.25rem!important}h3{font-size:1.1rem!important}.dashboard-controls-modes-bar{padding:12px!important}.stats-card,.attendance-bar-card{padding:16px!important}.alertas-table-card{padding:12px!important}.recharts-wrapper{max-width:100%!important}}@media(max-width:480px){[style*=gridTemplateColumns]{grid-template-columns:1fr!important}.stat-card{min-width:100%!important}.card{padding:12px!important}.main-content{padding:8px!important}.users-btn{width:100%!important;justify-content:center!important}table{font-size:.85rem!important}th,td{padding:8px 4px!important}.hide-on-small-mobile{display:none!important}}@media(prefers-reduced-motion:reduce){*{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}@media(hover:none)and (pointer:coarse){button,a,.clickable{cursor:default}*:hover{transform:none!important}button:active,.users-btn:active{transform:scale(.98)!important;opacity:.9!important}}
